使用 fail2ban 阻止特定端口与阻止所有端口相比如何?

使用 fail2ban 阻止特定端口与阻止所有端口相比如何?

我正在为我的 EC2 实例设置 fail2ban,每个实例都运行着不同的服务。因此,我正在为每个服务专门配置 jail。我有两个问题(在其他地方找不到答案):

  1. 如果某个 IP 因在一个端口上的身份验证失败而被 fail2ban 阻止,那么该用户是否仍然能够通过其他开放端口进入?
  2. 使用此处提到的配置,阻止特定端口与阻止所有端口相比如何?阻止所有开放端口不是更安全吗?因为我最终不希望黑客入侵。

答案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检测到入侵企图)

还请查看下面可能提供有价值信息的评论。

相关内容