![使用 fail2ban 阻止特定端口与阻止所有端口相比如何?](https://linux22.com/image/756586/%E4%BD%BF%E7%94%A8%20fail2ban%20%E9%98%BB%E6%AD%A2%E7%89%B9%E5%AE%9A%E7%AB%AF%E5%8F%A3%E4%B8%8E%E9%98%BB%E6%AD%A2%E6%89%80%E6%9C%89%E7%AB%AF%E5%8F%A3%E7%9B%B8%E6%AF%94%E5%A6%82%E4%BD%95%EF%BC%9F.png)
我正在为我的 EC2 实例设置 fail2ban,每个实例都运行着不同的服务。因此,我正在为每个服务专门配置 jail。我有两个问题(在其他地方找不到答案):
- 如果某个 IP 因在一个端口上的身份验证失败而被 fail2ban 阻止,那么该用户是否仍然能够通过其他开放端口进入?
- 使用此处提到的配置,阻止特定端口与阻止所有端口相比如何?阻止所有开放端口不是更安全吗?因为我最终不希望黑客入侵。
答案1
(假设操作系统是 Linux)
失败2ban是一款制作精良的工具,具有高水平的配置。
在 Linux Ubuntu 上,配置位于/etc/fail2ban
问题 1
jail.conf
除非您更改配置,否则只有针对特定服务提到的端口才会被阻止。
问题2
您也可以封锁所有端口。这取决于您想要的安全级别,但封锁所有端口可能会有缺点。
就我个人而言,我倾向于只阻止被滥用的端口。因为
- 如果其他端口也被滥用(并且它们在 中声明
jail.conf
),它们也会被阻止 - 一些 IP 地址由整个公司或许多人共享;因此,通过阻止所有端口滥用
ssh
,您将阻止该地址上的所有人访问http/s
例如 - 您还可能受到全面封锁的影响。例如,您在使用时犯了几次密码错误
ssh
,然后允许其他访问的另一个端口(例如来自提供商的端口)将无法访问。
要阻止更多或所有端口,您可以修改该jail.conf
文件。
一些默认属性是,(在[DEFAULT]
)
# "bantime" is the number of seconds that a host is banned.
bantime = 10m
# A host is banned if it has generated "maxretry" during the last "findtime"
# seconds.
findtime = 10m
# "maxretry" is the number of failures before a host get banned.
maxretry = 5
# Ports to be banned (Usually should be overridden in a particular jail)
port = 0:65535
即所有端口。
例如[sshd]
(和所有服务)port
被重新定义
[sshd]
port = ssh
您可以简单地注释掉该port
行以恢复默认设置,但我会添加一条注释和一条新的端口行以便于维护(其他人/您在 3 年后)
[sshd]
# 25 Aug 2020 Rohit, block all ports
#port = ssh
port = 0:65535
更改默认设置
您将在action.d
目录中看到可能的操作列表。默认为jail.conf
,
banaction = iptables-multiport
也可以改为
banaction = iptables-allports
这将影响所有未重新定义的服务banaction
。
重新启动 fail2ban
然后重新启动服务,对于 systemd
systemctl restart fail2ban.service
或者
service fail2ban restart
(仅供参考,filter.d
目录列出了每个服务的方式失败2ban检测到入侵企图)
还请查看下面可能提供有价值信息的评论。