在 LAMP 环境中设置最大登录尝试次数的最简单方法是什么(通过 yum 安装的 sshd)?是否有软件包或简单的防火墙规则?
答案1
答案2
我不喜欢使用任何第三方工具。因此我使用了 ssh 配置和防火墙设置的组合。使用以下解决方案,攻击者可以在 2 分钟内准确产生 3 次错误登录,否则将被阻止 120 秒。
1)将以下行添加到/etc/ssh/sshd_config
MaxAuthTries 1
这将允许每个连接仅尝试登录一次。重新启动 ssh 服务器。
2)添加以下防火墙规则
创建新链
iptables -N SSHATTACK
iptables -A SSHATTACK -j LOG --log-prefix "Possible SSH attack! " --log-level 7
iptables -A SSHATTACK -j DROP
阻止每个在 120 秒内建立超过三个连接的 IP 地址 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
答案3
没有与 SSH 相关的特定软件包可以进行此设置。但是,您可以安装 CSF,即 ConfigServer 和防火墙。
我建议在文件中进行两项配置更改:/etc/ssh/sshd_config
限制 ssh 服务器可同时处理的最大未经身份验证的连接数。该值越小,脚本小子就越难通过多个连接进行并行、协调的破解尝试。编辑 sshd_config 并将 MaxStartups 从默认的“10”更改为“3:50:10”。冒号分隔的值告诉 ssh 服务器“允许 3 个用户同时尝试登录,并随机且逐渐减少 3 到最大 10 之间的连接尝试次数”。注意:在有大量有效 ssh 用户登录的服务器上,应增加该值。
- 默认: MaxStartups 10
- MaxStartups 3:50:10
减少断开连接前允许成功登录的最大时间。默认的 2 分钟对于保持未经身份验证的连接尝试来说太长了(见上文);30 秒足以登录:
- 默认:登录宽限时间 2 分钟
- 登录GraceTime 30
答案4
您可以将一个选项放入服务器的 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.