fail2ban SSH 监狱更改操作 REJECT 到 DROP

fail2ban SSH 监狱更改操作 REJECT 到 DROP

我正在尝试使用fail2ban.

以下是监狱的配置/etc/fail2ban/jail.conf

[sshd]

# To use more aggressive sshd modes set filter parameter "mode" in jail.local:
# normal (default), ddos, extra or aggressive (combines all).
# See "tests/files/logs/sshd" or "filter.d/sshd.conf" for usage example and details.
#mode   = normal
enabled = true
port    = ssh
maxretry = 3
logpath = %(sshd_log)s
backend = %(sshd_backend)s
banaction = iptables-multiport[name=sshd, port=ssh, protocol=tcp]

当我在我的服务器上尝试 3 次 ssh 登录失败后,我们可以看到我的 IP(匿名)已被列入黑名单:

fail2ban-client status sshd
    Status for the jail: sshd
    |- Filter
    |  |- Currently failed: 0
    |  |- Total failed:     3
    |  `- File list:        /var/log/auth.log
    `- Actions
       |- Currently banned: 1
       |- Total banned:     1
       `- Banned IP list:   X.X.X.X

iptables这是配置的规则fail2ban

iptables -S
    -P INPUT ACCEPT
    -P FORWARD ACCEPT
    -P OUTPUT ACCEPT
    -N f2b-sshd
    -A INPUT -p tcp -m multiport --dports 22 -j f2b-sshd
    -A f2b-sshd -s X.X.X.X/32 -j REJECT --reject-with icmp-port-unreachable
    -A f2b-sshd -j RETURN

当我尝试再次登录时,我收到以下消息:ssh: connect to host <hostname_anonymised> port 22: Connection refused

但这是问题,我不想收到icmp port unreachable上面这样的消息,这是一个安全问题。

我希望 fail2ban 默默地 DROP (而不是使用 icmp REJECT )。我尝试更改监狱的配置以指定banaction我想要的,但我找不到正确的参数来告诉jail2banDROP silently而不是REJECT with icmp

我如何配置它fail2ban

答案1

所有iptables动作都有blocktype 范围,可以被覆盖:

  • 在全球范围内action.d/iptables.conf
[Definition]
blocktype = DROP

(对于最新的fail2ban版本的默认上游配置,旧版本和维护版本可能对您用作banaction的操作有不同的包含)

  • 或者在jail.local默认或监狱部分:
[DEFAULT]
banaction = iptables-multiport[blocktype=DROP]
banaction_allports = iptables-allports[blocktype=DROP]

此后不要忘记重新启动fail2ban。

另请注意https://github.com/fail2ban/fail2ban/issues/2217#issuecomment-423248516有关 REJECT 与 DROP 的更多信息。

答案2

要将fail2ban配置为执行静默阻止(DROP)而不是使用ICMP消息拒绝(REJECT),您可以按照以下步骤操作:

/etc/fail2ban/jail.local在文本编辑器中打开该文件。

在 [sshd] 部分中添加或修改以下行以指定所需的阻止操作:

banaction = iptables-multiport[name=sshd, port=ssh, protocol=tcp, action=drop]

此配置指示fail2ban在阻止 SSH 连接时使用丢弃操作而不是默认拒绝操作。

将更改保存到jail.local 文件。

重新启动fail2ban服务以应用新配置:

sudo service fail2ban restart

通过此配置,当阻止 SSH 监狱中的 IP 地址时,fail2ban 将使用丢弃操作,而不是使用 ICMP 消息的拒绝操作。

这将提供一个静默阻止而不发送 ICMP 拒绝消息。

相关内容