Answers:
我使用Fail2ban ; 我用过 Denyhosts,它也运行得很好。我现在更喜欢Fail2ban,因为它具有更高的可配置性,并且能够处理监视多种不同的服务-例如,同时sshd和Web应用程序的登录页面(前提是您记录失败)。
您可能考虑的另一种方法是在中实现LIMIT规则iptables
。不幸的是,除非您要安装Shorewall,否则我将无法为您提供帮助,然后我只是将您引向该站点上的优秀文档,以帮助您配置LIMIT规则以限制某人的暴力行为-强制服务器。
我不喜欢使用任何第三方工具。因此,我结合使用了ssh配置和防火墙设置。使用以下解决方案,攻击者可以在2分钟内生成3次错误登录,否则将被阻止120秒。
1)将以下行添加到 /etc/ssh/sshd_config
MaxAuthTries 1
每个连接只能进行1次登录尝试。重新启动ssh服务器。
2)添加以下防火墙规则
创建一个新链
iptables -N SSHATTACK
iptables -A SSHATTACK -j LOG --log-prefix "Possible SSH attack! " --log-level 7
iptables -A SSHATTACK -j DROP
阻止每个IP地址120秒,这将在120秒内建立三个以上的连接。在进行第四次连接尝试时,该请求将委派给该SSHATTACK
链,该链负责记录可能的ssh攻击并最终删除该请求。
iptables -A INPUT -i eth0 -p tcp -m state --dport 22 --state NEW -m recent --set
iptables -A INPUT -i eth0 -p tcp -m state --dport 22 --state NEW -m recent --update --seconds 120 --hitcount 4 -j SSHATTACK
3)在中查看可能的ssh攻击的日志条目 /var/log/syslog
Dec 27 18:01:58 ubuntu kernel: [ 510.007570] Possible SSH attack! IN=eth0 OUT= MAC=01:2c:18:47:43:2d:10:c0:31:4d:11:ac:f8:01 SRC=192.168.203.129 DST=192.168.203.128 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=30948 DF PROTO=TCP SPT=53272 DPT=1785 WINDOW=14600 RES=0x00 SYN URGP=0
没有与SSH相关的特定软件包来进行设置。但是,您可以安装CSF,即ConfigServer和防火墙。
我建议在文件中进行两个配置更改:/ etc / ssh / sshd_config
限制ssh服务器将同时处理的未认证连接的最大数量。这越小,脚本小子就很难通过多个连接进行并行,协调的破解尝试。编辑sshd_config并将MaxStartups从默认的“ 10”更改为“ 3:50:10”。以冒号分隔的值告诉ssh服务器:“允许3个用户尝试同时登录,并在3个和最多10个之间(最多10个)之间随机增加连接尝试次数”。注意:在具有大量有效ssh用户登录的服务器上,应增加此数目。
减少断开连接前成功登录所允许的最长时间。默认的2分钟是太多时间,无法打开未经身份验证的连接尝试(请参见上文);30秒足以登录:
我将这些IPTables规则用于此目的:
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 300 --hitcount 4 --rttl --name SSH -j DROP
这将仅允许5分钟内从IP地址向端口22发送4个TCP / SYN数据包。如果尝试更多,则将门关闭直到5分钟结束。
-A INPUT -p tcp -m tcp --dport 22 -m limit --limit 48/hour -j ACCEPT
。
您可以将选项放入服务器的sshd_config文件中:
MaxAuthTries
Specifies the maximum number of authentication attempts permitted per
connection. Once the number of failures reaches half this value, additional
failures are logged. The default is 6.