今天发现Qmail邮件系统的maillog里面有大量的“user not found”信息,通过下面的日志不难发现,是来自同一IP的很多不同的用户连接Qmail邮件系统认证失败的信息。黑客试图通过这种方式来破解Qmail邮件系统的用户名和密码,从而来发送大量的垃圾邮件和病毒邮件。
大量的并发连接会消耗Qmail系统的性能,甚至在严重的时候会造成正常邮件无法发送和接收,即出现连接SMTP超时情况。通过Linux的Iptables封杀掉这些IP地址即可,下面是我写的Iptables的脚本,如有错误,请多多指正。
脚本的逻辑结构大致是:分析统计系统maillog日志,取出攻击者的IP地址,然后和服务器的Iptables脚本(iptables.sh)作对比,如果该IP地址没有在iptables.sh里面,添加一条DROP的策略到iptables.sh,然后发送一份邮件给系统管理员,并重新加载iptables.sh。
下面测试一下这个脚本的运行效果,手动执行一下这个脚本。
[root@mail sh]# sh add_badip_iptables.sh
查看一下badip.txt文件,里面添加的是被攻的IP地址信息。
查看系统管理员的邮箱里面也成果收到用户的报警邮件。
同时发现Iptables.sh脚本文件也成功添加DROP记录。
最后用iptables -L查看已经把这些IP成功添加到Linux系统的Iptables防火墙策略里面,并且给DROP掉了。
最后添加crontab,每隔10分钟让系统自动执行。
总结:建议在所有的邮件系统上面都应该有这样的防范措施,另外,邮件运维人在员在设置邮箱用户名的时候尽量避免test,salse,test01这样的用户名,很容易被黑客猜测到,同时设置的邮箱密码应该符合大写,小写,数字和特殊字符的组合。