防止 - 大量来自 IP 的失败登录尝试

Dan*_*Dan 6 security linux ssh centos

我正在运行 CentOS 6.3 服务器,目前每 15 分钟左右从我的服务器收到一封标题为“来自 IP 的大量失败登录尝试”的电子邮件。

当然,配置下面的内容应该意味着只有使用(我的静态IP)的人才能尝试登录?

如果是这种情况,这些远程未知用户是在哪里尝试登录生成这些电子邮件的?

当前的安全步骤:

  • 只允许 root 登录 without-password
  • StrictModes yes
  • SSH 密码登录被禁用 - PasswordAuthentication no
  • 使用 SSH 公钥
  • SSH 端口已更改为大于 40k 的数字
  • cPHulk 已配置并正在运行
  • 登录仅限于特定的 IP 地址
  • cPanel 和 WHM 仅限于我的静态 ip

sshd_config

user@static.ip.address
Run Code Online (Sandbox Code Playgroud)

主机允许

ALL : <Static IP>
Run Code Online (Sandbox Code Playgroud)

主机拒绝

ALL : ALL
Run Code Online (Sandbox Code Playgroud)

iptables

iptables -I INPUT -s <Static IP> -p tcp -m tcp --dport 22 -j ACCEPT
iptables -I INPUT -p tcp -m tcp --dport 22 -j REJECT
Run Code Online (Sandbox Code Playgroud)

chu*_*rnd 10

我会做的是使用Fail2Ban 并将其指向您的 ssh 日志文件。这样,如果您从同一 IP 获得指定数量的失败尝试,fail2ban 会自动添加防火墙规则,以在您指定的时间段内丢弃来自这些 IP 的数据包。


cjc*_*cjc 3

使用该配置,sshd 仍将报告失败的尝试,如下所示:

Dec  3 00:56:35 servername sshd[31242]: refused connect from li471-78.members.linode.com (50.116.13.78)
Dec  3 00:56:40 servername sshd[31244]: refused connect from li471-78.members.linode.com (50.116.13.78)
Run Code Online (Sandbox Code Playgroud)

也许您的日志警报正在触发?检查您的日志以验证情况是否如此。

您可以通过更改警报功能的灵敏度/搜索模式来消除这种情况。

您还可以通过使用防火墙阻止除来自您的 IP 地址之外的所有传入 SSH 流量来使其消失。如果您使用防火墙,则 sshd 不会受到任何影响,因此您的日志中也不会出现任何内容。

  • 如果今天只有一个 IP 令您烦恼,您可以执行类似“iptables -I INPUT -s 1.1.1.1 -j DROP”之类的操作来阻止,例如 1.1.1.1。如果是多种IP地址,您可以使用fail2ban作为自动阻止IP的方法。如果你只是想加入白名单,你可以这样做(这是未经测试的,所以小心使用,这样你就不会把自己锁在外面)`iptables -I INPUT -s (your static ip) -j ACCEPT`然后`iptables - A 输入 -p tcp --dport 22 -j DROP`。您可以通过谷歌搜索“iptables ssh brute force”以获取更多信息。 (2认同)
  • 您始终可以通过 iptables 实施速率限制。例如,IPtables 将在一分钟内阻止 10 次尝试。这仅取决于您想要拥有的阈值。谷歌 iptables 速率限制 (2认同)