使用 fail2ban 多年了,效果很好,想自动化并加强路由器的安全性。
因此我希望 fail2ban 创建一个本地文件,例如,list.txt 文件,其中包含被禁止的 IP 地址列表。
与此类似https://sslbl.abuse.ch/blacklist/sslipblacklist.txt
这样我就可以将其分享到网页上。我的路由器设置为从此类来源导入被阻止的 IP。
那么我该如何做这样的事情呢?有什么想法吗?
答案1
是的,例如,您可以将一个功能添加到位于 /etc/fail2ban/action.d/ 中的现有“操作”,就我而言,我只是将其添加到“iptables-multiport.conf”文件中。
actionban = <iptables> -I f2b-<name> 1 -s <ip> -j <blocktype>
echo '<ip>' >> /path/to/file/ips.txt
答案2
Orphan 的回答是正确的,但我会尝试进一步解释一下。
首先,您应该检查您对哪个监狱感兴趣,然后检查哪一个actionban
与该监狱相关。
该actionban
参数可以在 Fail2ban 的配置文件中找到,但这并不简单。例如,以下配置/etc/fail2ban/jail.local
:
[DEFAULT]
backend = auto
banaction = iptables-multiport
bantime = 1h
[sshd]
enabled = true
logpath = %(sshd_log)s
maxretry = 3
port = 22
对于sshd
jail,没有直接定义,因此采用banaction
默认值。因此,我们应该查看配置文件。如果那里没有明确定义,那么我们应该检查它引用哪个文件。在此示例中,配置文件包括:banaction = iptables-multiport
/etc/fail2ban/action.d/iptables-multiport.conf
actionban
iptables-multiport
[INCLUDES]
before = iptables.conf
这指向/etc/fail2ban/action.d/iptables.conf
,我们最终可以找到 的定义actionban
:
actionban = <iptables> -I f2b-<name> 1 -s <ip> -j <blocktype>
现在,按照 Orphan 的回答,可以修改此行的禁止操作,添加自定义命令:
actionban = <iptables> -I f2b-<name> 1 -s <ip> -j <blocktype>
echo '<ip>' >> /path/to/file/ips.txt
最后,应重新加载 Fail2ban 客户端以应用更改:
fail2ban-client reload