我如何设置fail2ban以便所有讨厌的pop3login尝试都被照顾? 我使用的是Ubuntu 9.04,这里是从Log3发送的邮件中看到的pop3日志的摘录:
LOGIN FAILED, user=Administrador, ip=[::ffff:208.115.212.106]: 8 Time(s) LOGIN FAILED, user=Alfredo, ip=[::ffff:208.115.212.106]: 8 Time(s) LOGIN FAILED, user=Antonio, ip=[::ffff:208.115.212.106]: 6 Time(s) LOGIN FAILED, user=Carmelo, ip=[::ffff:208.115.212.106]: 8 Time(s) LOGIN FAILED, user=access, ip=[::ffff:208.115.212.106]: 7 Time(s) LOGIN FAILED, user=account, ip=[::ffff:208.115.212.106]: 7 Time(s) LOGIN FAILED, user=admin, ip=[::ffff:208.115.212.106]: 5 Time(s) LOGIN FAILED, user=angel, ip=[::ffff:208.115.212.106]: 9 Time(s)
编辑:我认为解决scheme是通过启用快递相关的监狱改变/etc/fail2ban/jail.conf中的设置。 有人可以validation这个?
我不喜欢“fail2ban”,因为它“活在”用户区,并且有很多“移动部分”。 如果你在机器上使用iptables,对来自同一IP地址的新连接进行速率限制是相当简单的。
iptables -A INPUT -p tcp --dport 110 -m state --state NEW -m recent --name pop --rsource --update --seconds 60 --hitcount 5 -j DROP iptables -A INPUT -p tcp --dport 110 -m state --state NEW -m recent --name pop --rsource --set -j ACCEPT
假设你在INPUT链中有更高级的规则来允许通过这些规则的ESTABLISHED连接将会限制传入的新的TCP连接到你的POP3端口(在60秒内超过5)。
fail2ban非常灵活,它可以对任何日志文件中的任何expression式作出反应:在/etc/fail2ban/jail.conf指定查找的地方( logpath ),查找( filter )和做什么( action )。
在你的情况下,你可以尝试现有的filter/etc/fail2ban/filter.d/courierlogin.conf (检查正则expression式,也许你需要修改它)和/etc/fail2ban/action.d/ (请参阅/etc/fail2ban/jail.conf示例)。 例如,如果您使用shorewall:
[pop3] enabled = true filter = courierlogin action = shorewall logpath = /var/log/mail.log
我总是添加已知的好ip到ignoreip ,所以这些地址不被禁止:
[DEFAULT] ignoreip = 127.0.0.1 192.168.0.0/24 SOME.EXTERNAL.IPS