前一篇文章介绍了fail2ban安装和fail2ban防SSH暴力破解的配置,本文主要介绍Postfix邮件服务器的防护。邮件系统、FTP服务器、SSH服务器等,常会遇到成百上千的试探攻击及暴力破解密码。特别是邮件服务器,邮箱账号被破解了又被拿去发垃圾邮件,会导致IP被拉入垃圾邮件名单,更重要的可能会直接导致gmail、163、qq等的直接退信,影响较大。
查看/var/log/maillog日志,可以看到暴力破解和攻击如下。
| Mar 31 10:35:42 mail postfix/smtpd[6736]: warning: unknown[114.104.40.43]: SASL LOGIN authentication failed: authentication failure | Mar 31 10:36:06 mail postfix/smtpd[6736]: warning: unknown[80.82.78.188]: SASL LOGIN authentication failed: | Mar 30 16:54:24 mail postfix/smtpd[15195]: NOQUEUE: reject: RCPT from unknown[177.11.51.76]: 554 5.7.1 <magic.teste2@bol.com.br>: Relay access denied; from=<svntikozg@SIJITAO.NET> to=<magic.teste2@bol.com.br> proto=ESMTP helo= | Mar 30 20:15:31 mail postfix/smtpd[25904]: NOQUEUE: reject: RCPT from unknown[61.129.185.221]: 450 4.1.8 <kgbzqwvr@sunxj.net>: Sender address rejected: Domain not found; from=<kgbzqwvr@sunxj.net> to=<admin@sijitao.net> proto=ESMTP helo= | Mar 31 00:26:32 mail postfix/smtpd[6614]: NOQUEUE: reject: RCPT from unknown[113.128.221.111]: 450 4.1.8 <limin@maeltop.qiluhospital.com>: Sender address rejected: Domain not found; from=<limin@maeltop.qiluhospital.com> to=<admin@sijitao.net> proto=ESMTP helo= | Mar 31 06:26:54 mail postfix/smtpd[25978]: NOQUEUE: reject: RCPT from unknown[183.193.25.144]: 450 4.1.8 <ayvf@ldkgamssh.net>: Sender address rejected: Domain not found; from=<ayvf@ldkgamssh.net> to=<admin@sijitao.net> proto=ESMTP helo=
配置
创建文件
vi /etc/fail2ban/jail.d/postfix.local
内容类似如下:
[postfix-sasl] enabled = true filter = postfix-sasl action = iptables[name=postfix-sasl, port=smtp, protocol=tcp] logpath = /var/log/maillog maxretry = 10 findtime = 300 bantime = 3600 [postfix] enabled = true filter = postfix action = iptables[name=postfix, port=smtp, protocol=tcp] logpath = /var/log/maillog maxretry = 3 findtime = 86400 bantime = 86400
说明
在postfix.local文件中配置了两个过滤规则,分别是postfix和postfix-sasl。
filter:postfix-sasl、postfix
具体内容可以分别查看以下两个文件。默认fail2ban安装好就已经自带,也可以自己修改添加。
/etc/fail2ban/filter.d/postfix-sasl.conf /etc/fail2ban/filter.d/postfix.conf
action:调用iptables
logpath:默认都是在/var/log/maillog
maxretry、findtime、bantime:这个我定义有点区别,因为邮件服务器是通过认证登录,所以postfix规则中尝试直接中继转发的IP严很多,被封的时间也长。这个根据自己需求定义。
重启
service fail2ban restart
重启后如果看到iptables规则中增加了f2b-postfix和f2b-postfix-sasl,说明配置成功。
Chain f2b-postfix (1 references) target prot opt source destination RETURN all -- 0.0.0.0/0 0.0.0.0/0 Chain f2b-postfix-sasl (1 references) target prot opt source destination RETURN all -- 0.0.0.0/0 0.0.0.0/0
参考连接:http://blog.nbqykj.cn/?p=2559.html