Fail2ban
fail2ban 不使用 DROP 塊類型
使用 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了解詳細資訊。