问题描述
为了为 xrdp 攻击配置 fail2ban,我需要一些关于正则表达式的帮助。
在 /var/log/xrdp.log
中,我可以看到:
[20201229-12:24:42] [INFO ] Socket 12: AF_INET6 connection received from ::ffff:82.74.118.114 port 55267
所以在 jail.conf
中我添加:
[rdp]
enabled = true
filter = rdp
action = iptables-multiport[name=rdp,port="3389,3390,3391",protocol=tcp]
logpath = /var/log/xrdp.log
maxretry = 5
对于 filter.d/rdp.conf
我写道:
[DeFinition]
failregex = connection received from ::ffff:<HOST> port
ignoreregex =
显然我的正则表达式很糟糕...
有人可以帮我吗? 谢谢
解决方法
您的 failregex 是多余的,因为 <HOST>
是模式 (?:::f{4,6}:)?(?P<host>\S+)
的别名,其中包括 ::ffff:
部分。此外,fail2ban 的默认日期模板不支持日志中的日期格式,因此您必须设置自定义日期模式。
[Definition]
failregex = connection received from <HOST>
ignoreregex =
datepattern = %%Y%%m%%d-%%H:%%M:%%S
根据经验,您应该始终使用 fail2ban-regex
工具测试您的日期模式和正则表达式。