Fail2ban

fail2ban 不使用 DROP 塊類型

  • August 6, 2021

使用 Ubuntu 20.04 LTS,我在 /etc/fail2ban/jail.local 中有這個:

[DEFAULT]
bantime   = 3600
banaction = iptables
blocktype = drop


[sshd]
enabled   = true
protocol  = tcp
port      = ssh
filter    = sshd
logpath   = /var/log/auth.log
maxretry  = 3

但這是我在列出 iptables 規則時看到的:

╰─# iptables -L f2b-sshd -n -v
Chain f2b-sshd (1 references)
pkts bytes target     prot opt in     out     source               destination
  13  1356 REJECT     all  --  *      *       222.187.232.205      0.0.0.0/0            reject-with icmp-port-unreachable
  18  1516 REJECT     all  --  *      *       221.181.185.153      0.0.0.0/0            reject-with icmp-port-unreachable
  17  1064 REJECT     all  --  *      *       222.186.180.130      0.0.0.0/0                  777 55854 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0

問題是它使用 REJECT(使用 ICMP)而不是 DROP。

action.d/iptables.conf 包含以下內容:

# Option:  actionban
# Notes.:  command executed when banning an IP. Take care that the
#          command is executed with Fail2Ban user rights.
# Tags:    See jail.conf(5) man page
# Values:  CMD
#
actionban = <iptables> -I f2b-<name> 1 -s <ip> -j <blocktype>

它是預設的 iptables 操作文件,隨該作業系統版本的官方 fail2ban apt 軟體包一起提供。

還嘗試在下添加“blocktype = drop”

$$ sshd $$但它沒有效果。 我不確定如何調試它,因為 fail2ban 服務不會記錄實際的 iptables 命令。

我錯過了什麼?

要為單個監獄的操作提供一些參數,您必須設置action所有參數(通常也提供在的預設部分中jail.conf),或者在禁止操作的情況下,您可以使用類似的東西:

[some_jail]
banaction = %(known/banaction)s[blocktype=DROP]

關於 DROP vs. REJECT 的主題,討論就像 net-filter 子系統本身一樣古老,雙方都有很多優點/缺點。

有關禁止問題,請參閱https://github.com/fail2ban/fail2ban/issues/2217#issuecomment-423248516了解詳細資訊。

引用自:https://serverfault.com/questions/1073725