免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1645 | 回复: 2
打印 上一主题 下一主题

[Mail] 非实时性自动封禁qmail的垃圾邮件来源 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-06-20 18:03 |只看该作者 |倒序浏览
此方法必需预先安装并配置好qmail-scanner,并且启用了syslog来记录qs日志
整个方法需要三个文件,最好将这些文件放到同一个目录。
最后用crontab在恰当的时间执行这个脚本,它会更新tcp.smtp,最后使qmail重载此文件,以达到封禁效果。
注意:
1.调整扫描日志的时间间隔为fromtime=`date "+%b %d"`参数,读者可参考date帮助来修改程序。比如date "+%b %d %H"它将匹配当前小时的日志信息,当然crontal的执行时间一定要注意搭配。
2.spam.awk中的$1>;20表示,单位时间(如上述)内的垃圾邮件数量阀值。

当然,这段程序用perl实现可能更简单。呵呵,献丑了!


autodeny.sh
--------------------------
#!/bin/sh

cd /root/spam
if [ -z tcp.smtp ] ; then

     echo >; tcp.smtp

fi

sed "/^:allow/d" ~vpopmail/etc/tcp.smtp >; tcp.smtp
sh checkspam.sh  >; spamer
awk -f spam.awk spamer >;>; spamerip
for ip in `cat spamerip`
do
      if [ `grep -c $ip tcp.smtp` -le 0 ] ; then
           echo ${ip}:deny >;>; tcp.smtp
      fi
done
echo ":allow" >;>; tcp.smtp
cp tcp.smtp ~vpopmail/etc/tcp.smtp
qmailctl cdb

checkspam.sh
-----------------
#!/bin/sh
fromtime=`date "+%b %d"`
egrep  "$fromtime" /var/log/maillog|egrep  "SPAM-DELETE" |awk '{FS=":"}{print $7}'| awk '{FS="("}{print $2}' |awk '{FS=""}{print $1}' |sort |uniq -c | sort -nr

spam.awk
------------------
BEGIN {
}
{
    if($1>;20) {
         print $2
    }
}

论坛徽章:
0
2 [报告]
发表于 2005-06-20 20:51 |只看该作者

非实时性自动封禁qmail的垃圾邮件来源

原帖由 "xiaoxiaoke"]c $ip tcp.smtp` -le 0  发表:
; then
           echo ${ip}:deny >;>; tcp.smtp
      fi
done
echo ":allow" >;>; tcp.smtp
cp tcp.smtp ~vpopmail/etc/tcp.smtp
qmailctl cdb

checkspam.sh
-------..........


well done good tricks!

过去我在写公安部4号令应付手段时曾经提过用类似的方法的,想不到兄弟用shell就搞定了。赞!

论坛徽章:
0
3 [报告]
发表于 2005-06-21 09:05 |只看该作者

非实时性自动封禁qmail的垃圾邮件来源

yahoo 就是用类似的方法
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP