注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

天边云E家 shaoruisky

IT博文共享,知识的海洋

 
 
 

日志

 
 

在Sendmail的MTA中利用Tcpwarpper来拒收垃圾邮件的应用  

2009-07-15 10:03:22|  分类: linux |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

经过一年左右的测试与应用,基本上清楚了这一功能的好处可以用来最有效率地来拒收相当多的一部分垃圾邮件,并且几乎不会占用多少系统资源,今天有必要总结一下分享给需要的朋友。

  Tcpwarpper的原理与概念我想不用多谈了,只要google里一查,有很多基础知识可以查到。目前大部分的Linux/FreeBSD版本的默认安装都会已经把Tcpwarpper编译到系统里,无论是2.4或2.6的kernel里,所以基本上不用担心安装步骤。而Sendmail通常本身已经编译到系统里,系统对其有很好的支持。正因为系统kernel同时支持了Sendmail的用和Tcpwarpper的控制,才使得本文的应用得以实现。不过遗憾的是其它主流的一些邮件软件象postfix、qmail、exim等等都由于自身的daemon并不与系统的kernel结合,所以无法利用tcpwarpper的功能对tcp连接进行控制。

  明白后,其它也可以说这个功能非常简单,主要用到的文件如下:

/etc/resolve.conf

/etc/hosts

/etc/hosts.allow

/etc/hosts.deny

  其中/etc/resolve.conf用于设置localhost的上级DNS解晰服务器IP,可以设置多行不限制,为了让MTA最快最有效地获得IP反向解晰记录,应该尽可能多设置几个,Demo格式为每行:

namerserver 127.0.0.1

namerserver 127.0.0.2

  其中/etc/hosts用于手工设置无法正常获得反向解晰的IP设置,或者是没有反向解晰的IP手工设置hostname。比如有些国外IP连接在系统检查反向解晰时由于网络过慢而time out,如果设置了拒收无反向解晰的SMTP连接的话,可能会造成误拒收。又比如有些IP需要向本机MTA发信,但由于电信或网通的刁难而无法做成反向解晰,如果在这个文件里设置了对应的主机名,系统就会优先认为此IP是有主机名的,而不会因为设置了拒收无反向解晰的SMTP连接而拒收此IP。Demo格式为每行:

127.0.0.1 localhost

127.0.0.2 mail.yourname.com

  其中/etc/hosts.allow用于设置allow或deny指定IP或域的SMTP来源。在这个设置文件里,除非指定deny为拒收,否则默认为allow允许的。Demo格式为每行:

#允许指定IP来源的SMTP发信连接

sendmail:1.1.1.1:allow 

#拒收指定IP来源的SMTP发信连接

sendmail:2.2.2.2:deny

#允许某段IP来源的SMTP发信连接,此为Yahoo的一个IP段

sendmail:206.190.38.:allow

#允许某个IP反向解晰后缀域的发信连接,只要IP的反向解晰记录后缀为以下后缀的都将被允许

sendmail: .google.com

sendmail: .bay0.hotmail.com

sendmail: .yahoo.com

sendmail: .paypal.com

#此项也是最主要的,设置此项后,用于拒收所有无反向解晰的IP发信来源,通常是动态IP或非正规的邮件服务器发垃圾邮件或MX-deliver垃圾邮件送到本机上,就会被直接拒收。由于和其它firewall类的设置类似,此项设置建议放在此文件规则中的最后一项。

sendmail:UNKNOWN:deny

  其中/etc/hosts.deny可用于设置拒收IP反向解晰为指定域的来源,特别用于多数有反向解晰的动态IP地址段,这些来源的垃圾邮件可以很容易在这项规则中被拒收。Demo为每行:

sendmail: .dynamic.163data.com.cn

sendmail: .cn.cndata.com

sendmail: .163data.com.cn

sendmail: .dynamic.cndata.com

sendmail: .tiscali.nl

sendmail: .dsl.krasnet.ru

sendmail: .dsl.onthenet.net

sendmail: .dsl.scrtc.com

sendmail: .dsl.siol.net

sendmail: .dsl.speedlinq.nl

sendmail: .dsl.telepac.pt

sendmail: .dsl.udm.net

sendmail: .dsl.westcall.net

sendmail: .dsl-dynamic.vsi.ru

等等,这些反向解晰的动态IP段的后缀需要不断收集增加,目前我收了一千多个动态域的段,可供大家参考。下载:这是我目前包含一千多动态IP段的hosts.deny文件

  以上是配置文件的格式与内容,通常被这种方式拒收后,垃圾邮件的发件方或退信里会显示的原因为550 access deny。

/var/log/maillog里会显示以上设置的效果。比如:

hosts.allow文件里拒收无反向解晰IP的垃圾邮件来源在maillog里会记录显示为:

Dec 26 16:23:58  sendmail[9380]: lBQ8Nwjv009380: tcpwrappers (unknown, 221.0.141.244) rejection

Dec 26 16:23:59  sendmail[9371]: lBQ8Nxjv009371: tcpwrappers (unknown, 200.50.30.151) rejection

Dec 26 16:24:00  sendmail[9388]: lBQ8O0jv009388: tcpwrappers (unknown, 121.8.49.178) rejection

Dec 26 16:24:01  sendmail[9390]: lBQ8O1jv009390: tcpwrappers (unknown, 221.127.88.110) rejection

hosts.deny文件里拒收有反向解晰的动态IP域会在maillog里记录并显示为:

Dec 26 16:26:29  sendmail[10050]: lBQ8QTjv010050: tcpwrappers (58.69.0.66.pldt.net, 58.69.0.66) rejection

Dec 26 16:26:29  sendmail[10039]: lBQ8QTjv010039: tcpwrappers (58.69.0.66.pldt.net, 58.69.0.66) rejection

Dec 26 16:26:33  sendmail[10030]: lBQ8QXjv010030: tcpwrappers (51.160.60.58.broad.sz.gd.dynamic.163data.com.cn, 58.60.160.51) rejection

Dec 26 16:26:34  sendmail[10061]: lBQ8QYjv010061: tcpwrappers (dsl88-229-61278.ttnet.net.tr, 88.229.239.94) rejection

Dec 26 16:26:35  sendmail[10064]: lBQ8QZjv010064: tcpwrappers (dsl85-104-28393.ttnet.net.tr, 85.104.110.233) rejection

Dec 26 16:26:36  sendmail[10029]: lBQ8Qajv010029: tcpwrappers (195.52.134.219.broad.sz.gd.dynamic.163data.com.cn, 219.134.52.195) rejection

Dec 26 16:26:38  sendmail[10093]: lBQ8Qcjv010093: tcpwrappers (mx-ll-58.147.78-2.tttmaxnet.com, 58.147.78.2) rejection

Dec 26 16:26:39  sendmail[10062]: lBQ8Qdjv010062: tcpwrappers (dsl85-102-21131.ttnet.net.tr, 85.102.82.139) rejection

Dec 26 16:26:39  sendmail[10071]: lBQ8Qdjv010071: tcpwrappers (host80-161-dynamic.17-87-r.retail.telecomitalia.it, 87.17.161.80) rejection

Dec 26 16:26:40  sendmail[10111]: lBQ8Qejv010111: tcpwrappers (pptp77-79-155-229.ufanet.ru, 77.79.155.229) rejection

Dec 26 16:26:40  sendmail[10116]: lBQ8Qejv010116: tcpwrappers (89-138-80-33.bb.netvision.net.il, 89.138.80.33) rejection

Dec 26 16:26:40  sendmail[10114]: lBQ8Qejv010114: tcpwrappers (tx-76-1-73-3.dhcp.embarqhsd.net, 76.1.73.3) rejection

Dec 26 16:26:42  sendmail[10112]: lBQ8Qgjv010112: tcpwrappers (pptp77-79-155-229.ufanet.ru, 77.79.155.229) rejection

  以上方式在MTA方式运行的sendmail服务器非常适用,实际运行下来可拒收80%以上的垃圾邮件,主要是动态IP来源的垃圾邮件。

  评论这张
 
阅读(260)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016