我有一个远程 Ubuntu 系统,我从本地系统登录到该系统。昨天我错误地安装了拒绝主机只是在这台远程机器上进行测试,但机器已经有了脑脊液LFD安装后,它们之间似乎出现了某种冲突,从那时起我就无法通过 SSH 或 FTP 进入它来自我的永久 IP,尽管我可以从其他 IP 顺利地通过 SSH 或 FTP 进行连接。
我可以用我的永久 IP 浏览基于这台机器的网站阿帕奇服务器,甚至可以通过PHPmyadmin或从相关 URL 登录其 CMS,因此我说我部分阻塞。
为了解决这个问题,我尝试从托管平台控制台进行操作:
(
sudo apt-get purge denyhosts
sudo apt-get purge fail2ban
sudo apt-get autoremove
sudo sh /etc/csf/uninstall.sh
sudo apt-get install --reinstall openssh-server -y
sudo apt-get install --reinstall iptables -y
sudo iptables -F.
sudo reboot
)
尽管如此,执行此代码块后,我的 IP 仍被部分阻止,无法通过 SSH 或 FTP 进入系统 - 当我使用 WSL Ubuntu 从本地桌面建立 SSH 隧道时:Connection closed by remote host
。
更多细节:
- 我没有将 ftp 或 SSH 端口从 21 或 22 替换为其他端口。
- 我没有手动阻止任何端口上的 IP(但无论如何它似乎被阻止了)。
/var/log/auth.log
除了“连接被拒绝”之外,不包含任何严重错误。
ps ax | grep ssh
:
1379 ? Ss 0:01 /user/sbin/sshd -D
2362 pts/0 S+ 0:00 grep --color=auto ssh
netstat -plnt
:
iptables -nvL
:
我的问题:
在采取上述措施之后,并且图表看起来没有问题,还有哪些原因会导致这种情况?
答案1
问题是由于文件中我的永久 IP 地址被阻止/etc/hosts.deny
。为了解决这个问题,我从我的笔记本电脑上进行了 ssh 操作(因为我无法在托管平台的控制台中从剪贴板复制和粘贴,这非常不舒服且不合逻辑)。
从文件中删除 IP 是有问题的,因为它可能会因配置错误或错误而重新出现,因此要解决这个问题,只需将您的永久 ID 添加到/etc/hosts.allow
(即您的“始终允许”列表)。我直接从控制台这样做(但当然您可以使用文本编辑器或 Filezilla 等 ftp 客户端):
bash -c "echo 'sshd: IP_ADDRESS' >> /etc/hosts.allow"
此解决方案处理 IP 评估:基本上,当您尝试登录远程环境时,首先会检查允许的 IP 列表,如果您的 IP 在允许列表,你进入,如果没有,评估将继续进行拒绝列表,如果你的 IP 在那里 - 你就进不去。要了解更多信息,请参阅此问答环节
完成这些操作后,我就可以从我的永久 IP 顺利地进行 ssh 了。然后我确保安装了脑脊液LFD再次更新所有内容:
apt-get install iptables -y
apt-get install --reinstall openssh-server -y
cd /usr/src && rm -fv csf.tgz
wget https://download.configserver.com/csf.tgz && tar -xzf csf.tgz
cd csf && sh install.sh
sed -i 's/TESTING = "1"/TESTING = "0"/g' /etc/csf/csf.conf
csf -r && perl /usr/local/csf/bin/csftest.pl
apt-get update && apt-get upgrade
笔记:
如果您更喜欢从笔记本电脑而不是托管平台控制台进行更改,但无法从笔记本电脑登录,请确保您的笔记本电脑的 IP 与您的永久 IP 不同。
我确信几个小时后情况会有所不同,也不明白为什么我无法从笔记本电脑登录,但我不知道的是,当我在德国时,我哥哥在我的 IP 上设置了 Wifi(尽管我要求他不要这样做)。这误导我认为任何 IP 都被部分阻止了,但我发现了这一点,并选择了我们的其他 IP 网络,并且可以定期 ssh 以轻松地消除永久 IP 的阻止。