要取得垃圾邮件连接IP,可以到反垃圾邮件网站上下,不过一般都很大,针对性不强。
这里介绍一个根据自己的服务器LOG生成KILL.INI的方法,供大家参考。
1. 取得服务器LOG
把winmail\log\下的Logyyyy-mm-dd.txt文件下载到本地。
-----LOG片断------------
Tue, 2 Dec 2008 03:03:02 Smtp怬. IP: 118.68.102.231 , Port 22231^M
Tue, 2 Dec 2008 03:03:02 Smtp怬. IP: 118.68.102.231 , Port 22233^M
Tue, 2 Dec 2008 03:03:02 Smtp怬. IP: 118.68.102.231 , Port 22236^M
Tue, 2 Dec 2008 03:03:14 [118.68.102.231] ¹Ø±ÕÁ¬½Ó.^M
Tue, 2 Dec 2008 03:03:14 [118.68.102.231] ¹Ø±ÕÁ¬½Ó.^M
Tue, 2 Dec 2008 03:03:14 [118.68.102.231] ¹Ø±ÕÁ¬½Ó.^M
Tue, 2 Dec 2008 03:03:14 [118.68.102.231] ¹Ø±ÕÁ¬½Ó.^M
Tue, 2 Dec 2008 03:03:52 Smtp怬. IP: 118.68.102.231 , Port 22943^M
-------LOG片断--------
2.思路:
对于在短时间内多次连接的,可以初步认为是垃圾邮件IP。
3.使用如下命令:
cat Log* |grep '\['|awk -F[ '{print $1,$2}'|awk -F] '{print $1}'|awk '{print $6}'|uniq -c|awk '$1>3{print $2}'|sort|uniq -c|awk '$1>3{print $2}'>kill.ini
有点复杂,一条一条命令说一下:
cat Log* 输出所有Log文件
grep '\[' 把含有[的行选出来,[]中是地址
awk -F[ '{print $1,$2}'|awk -F] '{print $1}' 去掉[和]
awk '{print $6}' 只显示IP地址列
uniq -c 对连续的相同IP地址进行计数
awk '$1>3{print $2}' 输出超过3次的地址
sort 对所有IP地址排序
再次应用 uniq 和 awk 对超过3次的IP进行筛选,最后的结果输出到kill.ini
4.把kill.ini拷贝到 winmail目录。
5.重启winwebmail服务。
至此,设置完成,等过一个月,再看看有没有改善。
本文出自 “徒步天下我的梦” 博客,请务必保留此出处http://hiker2008.blog.51cto.com/10867/116776