我正在尝试为 fail2ban 创建一个过滤器,以识别 UFW 日志中的端口扫描。
我已确认我的禁令操作在其他过滤器上正常工作,但这次无法创建正确的过滤器/正则表达式 - 我确信这将是我的一个愚蠢错误。
我尝试了 fail2ban-regex 实用程序,但未获得任何结果。
我的jail.local
包含:
[ufw-port-scan]
enabled = true
port = all
filter = ufw-port-scan
banaction = ufw-action
logpath = /var/log/ufw.log
maxretry = 10
我尝试创建(放置在/etc/fail2ban/filter.d/ufw-port-scan.conf
)的过滤器如下所示:
[Definition]
failregex = kernel: \[UFW BLOCK\] IN=.* SRC=<HOST>
ignoreregex =
我试图识别的示例行ufw.log
:
Sep 18 21:06:08 trial kernel: [ 3014.939702] [UFW BLOCK] IN=eth0 OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:00:00 SRC=192.168.0.5 DST=192.168.0.10 LEN=44 TOS=0x00 PREC=0x00 TTL=45 ID=36825 PROTO=TCP SPT=50704 DPT=80 WINDOW=1024 RES=0x00 SYN URGP=0
任何指导都将不胜感激 - 谢谢。
答案1
你很接近了。
failregex = .*\[UFW BLOCK\] IN=.* SRC=<HOST>
并可能删除port = all
(可选)
您可以使用 fail2ban-regex 运行测试。例如:
fail2ban-regex /var/log/ufw.log '.*\[UFW BLOCK\] IN=.* SRC=<HOST>'