小编Pie*_*e D的帖子

iptables 暂时丢弃最近连接失败的 IP

我想降低在 linux 系统上成功进行 ssh 攻击的可能性。唯一打开的端口是 22(我对其他所有端口都使用端口转发),当然我确保 ssh 只接受基于密钥对的登录(无密码)。

失败的 ssh 登录尝试(输出last -f /var/log/btmp)的数量相当大(正如任何打开端口 22 的人所期望的那样),因此在过去 2 年多的时间里,我一直依赖基于 iptables 的解决方案的变体,这些解决方案经常被提到阻止ssh 攻击,例如数百次失败的 ssh 登录

这种方案的一个令人讨厌的缺点是它限制了每段时间内来自一个 ip 地址的新连接数,无论来自该 ip 的先前连接是否成功,无论它们是否尝试以同一用户身份登录或不是。想象一个脚本,它包含六个rsync来自国外的命令,用于更新该服务器上的各个区域:它通常会达到“新连接限制”并在中间某处失败。如果路由器后面的多个用户(显示为相同的 IP 地址)或多或少同时连接到我的服务器上,情况也是如此。

所以,我想知道,如果不诉诸解析/var/log文件,是否可以使用以下策略来实现iptables

  1. 接受已建立的连接
  2. 允许来自先前成功连接的新连接
  3. 将连接失败的 IP 放入监狱一段时间

奖励积分:

  1. 与上面相同,但允许/监禁特定user@ip而不是每个人@ip

并试图遏制僵尸网络攻击:

  1. 在 ssh 尝试失败后,暂时将用户(无论他从哪个 IP 连接)入狱。

iptables linux-networking

6
推荐指数
1
解决办法
692
查看次数

标签 统计

iptables ×1

linux-networking ×1