频 道 直 达 - 新闻 - 培训 - 软件 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 读书 - 博客 - BBS
51CTO.COM_中国最大的网络技术网站
找资料:

19.7.2 简单的广告邮件抵挡机制

作者: 鸟哥 出处:机械工业出版社华章公司  2007-12-06 19:56    砖    好    评论   进入论坛
阅读提示:《鸟哥的Linux私房菜——服务器架设篇》(第二版)第19章的主要介绍的是以Postfix为主的邮件主机架设。本文主要介绍的是简单的广告邮件抵挡机制。

19.7.2  简单的广告邮件抵挡机制

早期的广告邮件很多都是通过“僵尸”计算机(已经被当作跳板但管理员却没有发现或没有处理的主机)来发送的,这些“僵尸”计算机所发送的信件有个很明显的特征,即它只会尝试传送该封电子邮件一次,不论成功与否,该信件将被移出队列。不过,合法的Mail Server运作流程就如之前分析的一般,在邮件无法顺利寄出时该邮件会暂时放置到队列中一段时间,并一直尝试将信件寄出的操作,默认直到5天后若还是无法寄出才会将信件退回。
根据这个合法与非法的邮件服务器运作流程而发展出一个名为曙光(postgrey)的软件,可以参考下面的几个说明来了解这个软件:

· http://isg.ee.ethz.ch/tools/postgrey/
· http://www.Postfix.org/SMTPD_POLICY_README.html

postgrey主要的功能是在记录发信来源,若发信来源同一封信第一次寄来时,postgrey默认会抵挡它,并且将来源地址记录起来,在约5分钟后,若该信件又传来一次时,则该信件会被收下来。如此则可以杜绝非法邮件服务器单次发送的问题。但对于您确定合法的主机则可以开放所谓的白名单(whitelist)来优先通过而不予抵挡。所以,它主要是按照如下方式进行操作的(参考http://projects.puremagic.com/greylisting/whitepaper.html)。

(1)确认发信来源是否在白名单中,若是则予以通过。

(2)确认收信者是否在白名单中,若是则予以通过。

(3)确定这封信是否已经被记录起来,放行的依据如下:

· 若无此信件的记录,则将发信地址记录起来,并将信件退回。

· 若有此信件的记录,但是记录的时间尚未超过指定的时间(默认5分钟),则依旧退回信件。

· 若有信件的记录,且记录时间已超过指定的时间,则予以通过。

不过为了快速实现postgrey的记录能力,所以数据库系统又是不可避免的选择。postgrey是由perl写成的,您可能也需要加入很多相关的perl模块。总之至少需要如下软件。

· BerkeleyDB:包括db4、db4-utils、db4-devel等软件。

· Perl:使用yum install perl即可。

· Perl模块:perl-Net-DNS是CentOS提供的,其他没有提供的可以到http://rpmfind.net/搜索下载。

除了可使用yum来安装的软件之外,其他的软件鸟哥下面作了链接,您可以直接下载:

· FTP://rpmfind.net/linux/dag/redhat/el4/en/i386/dag/RPMS/ perl-BerkeleyDB-0.31-1.el4. rf.i386.rpm。
· FTP://rpmfind.net/linux/dag/redhat/el4/en/i386/dag/RPMS/ perl-IO-Multiplex-1.08-3. el4.rf.noarch.rpm。
· FTP://rpmfind.net/linux/dag/redhat/el4/en/i386/dag/RPMS/perl-Net-Server-0.94-1.el4.rf. noarch.rpm。
· http://www.lfarkas.org/linux/packages/centos-4/i386/RPMS/ postgrey-1.27-0.noarch. rpm。

使用“rpm -ivh*.rpm”将下载的4个RPM安装即可。然后就可尝试启动postgrey:

[root@linux ~]# /etc/init.d/postgrey
[root@linux ~]# netstat -anlp | grep grey
unix  2 … /var/spool/Postfix/postgrey/socket

由于Postfix需要连接到postgrey进行一些名单的确认,而且两者连接的方式除了网络IP之外,传统的Unix socket也是可以连接的。由于传统socket不需要额外启动网络联机的端口,鸟哥认为这样也比较符合本机的操作,所以我们使用这一版postgrey的默认unix socket来连接。接下来需要修改Postfix的main.cf,方法如下。

[root@linux ~]# vi /etc/Postfix/main.cf
# 如果曾经有过这个设置值,请对它进行修改,否则请自行增加下面的字样
SMTPd_recipient_restrictions=
     permit_mynetworks
     reject_unauth_destination
     check_policy_service unix:/var/spool/Postfix/postgrey/socket
# 重点是最后那一行,即指定使用unix socket来连接到postgrey
# 后续还有一些广告邮件的抵挡机制,特别建议将这个postgrey的设置值写在最后
# 因为它可以算是最后一个检验的机制

[root@linux ~]# /etc/init.d/Postfix restart
[root@linux ~]# chkconfig postgrey on

然后可以从外台主机寄一封信给自己这台邮件服务器,记得去日志文件内查一查(/var/log/Maillog),应该会出现类似的信息:

Nov 27 15:17:09 linux Postfix/SMTPd[16132]:NOQUEUE:reject:
RCPT from sun.linux.tsai[192.168.1.101]: 
450: Recipient address rejected: Greylisted,see
http://isg.ee.ethz.ch/tools/postgrey/help/linux.vbird.tsai.html;
from=to=dmtsai@linux.vbird.tsai
proto=ESMTP helo=

这表示postgrey已经开始顺利运行了,并且来源主机的相关记录也已经记载在 /var/spool/Postfix/postgrey/目录下了。如此一来Postfix将可以通过postgrey来抵挡一些莫名其妙的广告邮件了。

不过postgrey也是有缺点的,由于postgrey默认会先将信件退回去,所以您的信件就可能会发生延迟的问题,延迟的时间可能是数分钟到数小时,这要由MTA的设置而定。如果想要让某些信任的邮件主机不需要经过postgrey的阻止机制时,就需要开放白名单了。

白名单的开启也很简单,直接编写/etc/Postfix/postgrey_whitelist_Clients文件即可。假设要让鸟哥的邮件主机可以自由的将信寄到您的MTA的话,那么您可以在这个文件内加入如下代码:

[root@linux ~]# vi /etc/Postfix/postgrey_whitelist_Clients
Mail.vbird.idv.tw
sun.linux.tsai
# 将主机名称写进去

[root@linux ~]# /etc/init.d/postgrey restart

如果您还有更多信任的主机,将它写入此文件中即可。那它就可以略过postgrey的分析了。更高级的用法需要靠您自己去发掘了。

【责任编辑:董书 TEL:(010)68476606】

回书目   上一节   下一节
专题
Linux——从菜鸟到高手
垃圾邮件新对策:远程定制托管服务
全面抵御垃圾邮件
Linux/Solaris服务器的安全配置
电子邮件安全
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 最 大 的 网 络 技 术 网 站 ·
技 术 成 就 梦 想
订阅技术快讯
电子杂志下载
名称:SQL Server数据库管理精品黄皮书
简介:书中文章经过精挑细选,便于用户能根据自己的实际工作和学习,快速在本书寻找到相关资料。内容涵盖了SQL Server的安装与升级、语句查询、数据备份和恢复、自动化任务、数据同步、数据字典、安全和预防、性能和优化、集群等各方面应用信息,以及DBA管理人员在数据库管理工作中
名称:2007路由技术大全
简介:《2007路由技术大全》由51CTO.com网站特别策划制作,该书包括路由器技术、路由器产品、路由器配置、安全设置、路由器故障处理、路由器密码恢复,以及广大网友在实践使用中的心得经验和技巧文章,内容注重实用性,适用于初学者入门,也适合多年从业者提高,是一本实践和理论完
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。
浏览器的战国时代
浏览器的战国时代
ARP攻击防范与解决方案
ARP攻击防范与解决方案
NAC安全访问控制
NAC安全访问控制
· NAC安全访问控制
· 网络布线测试仪器
· Windows Server 2008专..
· Windows远程桌面应用
· 网络故障排除宝典
· 运营商封堵ADSL共享 中..
· 解析35岁技术人的价值..
· 世纪枭雄比尔盖茨的王..
· 主流品牌防火墙配置
· ASP.NET开发教程
· 超级计算机TOP500专题
· Vista SP1对决XP SP3
· SQL Server 2008/2005..
· 程序员如何成长?
· C#技术开发指南
· 虚拟化技术还有点“虚”
ARP攻击防范与解决方案
ARP攻击防范与解决方案
SQL Server 2008/2005全解
SQL Server 2008/2005全解
SOA 面向服务架构
SOA 面向服务架构
· SOA 面向服务架构
· SQL Server 2008/2005..
· Apache技术专题
· 三层交换技术专题
· SQL Server入门到精通
· Windows远程桌面应用
· C#技术开发指南
· Apache技术专题
· Windows集群服务应用
· C#技术开发指南
· 国际文档格式标准开战
· 路由器设置与口令恢复
· Linux 集群技术专题
· PHP开发应用手册
· SOA 面向服务架构
· 企业数据恢复指南
ARP攻击防范与解决方案
ARP攻击防范与解决方案
SQL Server 2008/2005全解
SQL Server 2008/2005全解
SQL Server入门到精通
SQL Server入门到精通
· SQL Server入门到精通
· SQL Server 2008/2005..
· SOA 面向服务架构
· Apache技术专题
· C#技术开发指南
· 三层交换技术专题
· Apache技术专题
· C#技术开发指南
· Windows远程桌面应用
· 企业数据恢复指南
· Windows集群服务应用
· 路由器设置与口令恢复
· Linux 集群技术专题
· SOA 面向服务架构
· 了解统一威胁管理(UTM)..
· 反垃圾邮件技术应用