SSH / SSHD - 如何设置最大登录尝试次数?

SSH / SSHD - 如何设置最大登录尝试次数?

在 LAMP 环境中设置最大登录尝试次数的最简单方法是什么(通过 yum 安装的 sshd)?是否有软件包或简单的防火墙规则?

答案1

我用Fail2ban;我用过拒绝主机过去,它工作得很好。我现在更喜欢 Fail2ban,因为它更易于配置,并且更能处理监控多个不同的服务——例如,同时监控您的 sshd 和您的 Web 应用程序的登录页面(前提是您记录了故障)。

您可能考虑的另一种方法是在中实现 LIMIT 规则iptables;不幸的是,我无法帮助您,除非您想安装岸墙,然后我会简单地向您指出该网站上关于如何配置 LIMIT 规则的出色文档,以便限制某人暴力破解您的服务器的能力。

答案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.

相关内容