使用静态 IP 的 fail2ban

使用静态 IP 的 fail2ban

如果您从静态 IP 连接,运行 fail2ban 来保护您的 SSH 连接有什么意义吗?

据我所知,运行 fail2ban 意味着您实际上向黑客开放了端口 22,因为它在您的 iptables 中放置了一个条目,以允许来自任何 IP 的端口 22 连接。然后它可能会根据您的 jail 设置禁止它们,但改为使用以下 iptables 条目不是更安全吗?

Chain INPUT (policy ACCEPT)  
1 ACCEPT     tcp  --  {**mystaticIP**}         0.0.0.0/0           tcp dpt:22  
2 REJECT     tcp  --  0.0.0.0/0                0.0.0.0/0           reject-with icmp-host-prohibited  

**OR** maybe this option, with fail2ban, is safer?

Chain INPUT (policy ACCEPT)  
1 fail2ban-SSH  tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:22  
...  
Chain fail2ban-SSH (1 references)  
1 REJECT     all  --  0.0.0.0/0               0.0.0.0/0           reject-with icmp-host-prohibited

jail.local 设置 ignoreip = 127.0.0.1/8 {静态IP}

答案1

将应用程序的访问权限限制在特定的受信任 IP 子集总是比将其开放给全世界的风险更小。考虑一下您提出的 SSH 示例。Fail2ban 可能会减慢暴力破解 SSH 服务器的尝试。它的用例通常是针对必须从整个互联网访问的系统。这很有用,但如果 SSH 存在漏洞,则无济于事。

使用 iptables 阻止数据包到达您的 SSH 守护程序将阻止恶意流量到达它。它还可以阻止来自世界各地的暴力破解尝试。除非您的某个受信任 IP 首先被攻陷或以其他方式用作反射点,否则此控制比 fail2ban 更有效。

答案2

这在某种程度上是基于观点的,但我认为如果你可以将对服务的访问限制到一组特定的 IP 并阻止其他所有 IP,那么这比像这样的服务更可取fail2ban,因为你也可以防止对该服务的理论上的攻击。

完全有可能,有一天有人发现 OpenSSH 中存在一个漏洞,如果满足某些条件,就会授予访问权限。Fail2ban 不会阻止这种情况,但如果攻击者甚至无法从其 IP 连接,您仍然受到保护。

相关内容