unix ssh 阻止 ipaddress

unix ssh 阻止 ipaddress

我正在一个 unix 服务器上工作,使用 plink 或 session.net(一个打开与服务器的 ssh 连接并运行命令的 C# 模块)通过 ssh 进入机器。

一切都很好,直到周一我们重启机器。现在,每当我尝试使用该程序访问机器时,它都会执行类似禁止我的 IP 地址的操作。

我试过了,vi /etc/hosts.deny但那里什么都没有,我只有读取权限hosts.allow。我不太了解 unix 系统管理,但我确实需要这台计算机停止禁止我的 ipaddress。(我使用的用户名和密码是正确的,因为当我使用 putty 和 winscp 时,服务器不会自动禁止我的 IP。)

谢谢您的帮助。

编辑:

  • 我找到了/sbin/iptables,但是上面说不允许/sbin/iptables -L -v在电脑上以 root 身份执行

  • 我的老板iptables -L -v以 root 身份运行,但那里没有任何关于禁令的信息

  • 我发现,经过一段时间(大约一个小时)后,对我的 IP 地址的禁令或封锁就会解除,但当我登录机器时,禁令或封锁很快就会重新建立

  • rsa 加密和自动登录不能解决问题

  • 重新启动机器确实会导致它允许 1 到 4 个 plink,然后它会拒绝来自 ip 地址的所有新连接

$ cat /etc/*release
20110420_1358
CentOS 版本 5.5(最终版)

$ cat /etc/hosts.deny

hosts.deny 此文件描述了以下主机的名称:
              不允许使用本地 INET 服务,已决定
              由'/usr/sbin/tcpd'服务器。

portmap 行是多余的,但它可以提醒你
新的安全端口映射使用 hosts.deny 和 hosts.allow。特别是
您应该知道 NFS 使用端口映射!

$ 拒绝主机 fail2ban
/usr/bin/which:(/usr/kerberos/bin:/opt/454/bin:/usr/local/bin:/bin:/usr/bin:/home/adminrig/bin)中没有拒绝主机
/usr/bin/which:(/usr/kerberos/bin:/opt/454/bin:/usr/local/bin:/bin:/usr/bin:/home/adminrig/bin)中没有 fail2ban

$ tail --lines=50 /var/log/auth.log /var/log/secure
tail:无法打开“/var/log/auth.log”进行读取:没有此文件或目录
tail:无法打开“/var/log/secure”进行读取:权限被拒绝

答案1

iptables 中有一个类似这样的规则导致它无法工作:

iptables  -I INPUT -p TCP --dport 22 -m state --state NEW -m limit --limit 4/minute --limit-burst 5 -j ACCEPT

答案2

如果错误消息类似于;

Received disconnect from 123.123.123.123: 2: Too many authentication failures for userXXX

那么它实际上并没有禁止你,只是你尝试使用多个 ssh 密钥,你没有使用一些选项在脚本中强制密码验证,例如ssh -o PubkeyAuthentication=no [email protected]

相关内容