王朝网络
分享
 
 
 

Sendmail反垃圾邮件技术

王朝厨房·作者佚名  2007-01-05
宽屏版  字体: |||超大  

Sendmail曾经是互联网上最灵活,应用最广泛的MTA,几乎在每一种主要类型的UNIX系统中都可以安装配置相应版本的Sendmail。但是由于Sendmail在安全上存在着种种的先天不足(如:必须运行在超级用户权限下、缺乏足够的安全机制、代码漏洞较多及在反垃圾邮件性能上的不足),近两年,Sendmail逐渐被Postfix或Qmail等MTA所取代。不过做为曾经最流行的MTA软件,Sendmail的影响还是不小的,有必要将其反垃圾邮件技术陈述出来,以供大家参考。

注意:如果你因为某些原因还在使用8.8.x版本,我们强烈建议你升级到8.9.3和8.10以上(目前最新版本已经是8.12.9)。

Sendmail反垃圾邮件配置可以从以下几方面进行配置:

配置RELAY_*特性

配置Access_db特性

配置sendmail的SMTP发信认证功能

使用RBL特性

1、配置RELAY_*特性

RELAY_*特性是SENDMAIL反垃圾邮件最基本的配置之一。RELAY在8.9后面的版本包括(8.9)均是默认关闭的,在8.9之前的版本Open-Relay是默认开放的,若你坚持要使用之前老版本,你需要使用SENDMAIL(`promiscuous_relay')特性,才能避免垃圾邮件的困扰。

最常用的方法是通过使用一个文件名为relay-domains(通常在/etc/mail下)的文件来同意某一个特定的域或IP地址通过此台服务器来转发邮件信息。

举例说,/etc/mail/relay-domains内容如下:

128.32

host.mydomain.com

[UNIX:localhost]

在上例中,只有IP地址为128.32.x.x、主机名为host.mydomain.com的主机和主机自己才可以通过这台邮件服务器发送邮件。如果有许多网段需要使用此服务器,只需加在里面就可以了。如果不需要对IP地址进行限制,就不必在Relay-domains文件中放置IP地址,并且在Sendmail.mc宏定义文件中加上(‘promiscuous relay’)特性,就可以不用配置relay-domains文件了。

(`accept_unresolvable_domains')特性:如果在Sendmail.mc中加入下面一行: Feature ('accept_unresolvable_domains') 就可以传递那些域名不能从你的邮件服务器所在主机解析的邮件。当邮件服务器处于防火墙里面时会发生这种情况,所以当邮件服务器处于这种情况时必须使用这个特性,否则有些电子邮件不能送达。使用这个特性后,Sendmail就不会直接去试图解析那些邮件地址,而是把邮件转发到上一级邮件服务器,让其去转发,这样就可以绕过防火墙的屏蔽。

ccept_unqualified_senders特性 :如果在Sendmail.mc中加入Feature(‘accept_unqualified_senders’)特性,就可以使那些没有正确填写发送者地址的邮件发送者,比如在用户邮件地址中填入'aaa'之类地址的用户也能发送邮件。一般来说,这个特性是不开放的。

二Access_db特性

在采取上述措施后如果仍然有邮件垃圾,例如,具有系统合法用户的账号,可直接用此帐号发信,那么就要使用access_db选项来进行控制,可以使用Feature(‘access_db',‘hash /etc/mailaccess')或Feature(‘access_db',‘dbm /etc/mailaccess')特性。两者之间只在访问的数据库类型上有所不同,前一种是哈希表,后一种是传统的数据库类型,选用哪一种都不重要,关键是看系统上安装了哪一种数据库。这样当Sendmail启动后就会去读取名为/etc/mail/access的数据库,这个数据库中存放着邮件接收、发送、转发、拒绝和忽略等信息。一般来说,在使用之前需要手工来生成这个数据库如下:

# makemap hash(dbm) /etc/mail/access

Makemap这个应用程序在Sendmail发布包中是有的。 如果执行成功就会生成一个名为access的数据库。在access文本文件中,数据的输入格式如下:

spammer@aol.com REJECT

cyberspammer.com REJECT

TLD REJECT

192.168.212 REJECT

IPv6:2002:c0a8:02c7 RELAY

IPv6:2002:c0a8:51d2::23f4 REJECT

在这个文件中一共可以有如下7个选项:

ok

relay

reject

discard

skip

###anytext

error:###any text

error D.S.N:### anytext

下面对前4项常用选项作一个简单说明。

(1) ok意味着这个地址或地址区域内的用户邮件将会被这个邮件服务器接收,但不一定会有权转发,即使在这个邮件服务器配置文件中的其他规则不允许发送或接收这些用户的信件。

(2) relay意味着接收发往指定区域或从指定区域过来的邮件,并且允许它从这个SMTP服务器转发。

(3) reject意味着拒绝某一个发送者或区域。

(4) discard意味着直接丢弃这个邮件信息

三.配置sendmail的SMTP认证功能

传统的邮件传送协定 (SMTP)不具备对使用者身份进行认证的功能。要解决这个问题,可配置搭配 cyrus sasl身分认证程序库(SENDMAIL也需要8.10以上的版本),具体实现方法如下:

一、 下载并安装cyrus sasl身分认证程序库;下载地址是

(ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/

.回到工作目录,展开并进入cyrus-sasl-1.5.24.tar.gz目录:

#tar zxvf cyrus-sasl-1.5.24.tar.gz

#cd cyrus-sasl-1.5.24

# ./configure -prefix=/usr --enable-login --with-pwcheck --with-digest

# make

# make install安装完成后,建立一个/var/pwcheck目录,pwcheck程序要用此目录。 接下来必须设置 sendmail 的使用者身分查验方式,这里使用系统帐号与密来进行验证:

# cd /usr/lib/sasl/

# cat > Sendmail.conf

pwcheck_method: shadow

关于 Cyrus SASL 认证程序库更详细的说明,请参阅 Cyrus SASL for System Administrators。 <http://www.sendmail.org/%7Eca/email/cyrus/sysadmin.html>

二、编译和配置sendmail

1.解压sendmail软件到你希望的目录,进入sendmail目录。

在devtools/Site/目录下创建config.site.m4文件,加入如下两行文字,把SMTP认证

功能编译到sendmail中。

APPENDDEF(`confENVDEF', `-DSASL')

APPENDDEF(`conf_sendmail_LIBS', `-lsasl')

2.回到sendmail目录,再进入sendmail目录,开始编译sendmail。

./Build -c(如果不是第一次编译,需要加入-c选项,清除以前的配置)

编译成功后,运行./Build install安装软件。

3.下一步需要改写Sendmail的配置文件。回到上一级目录,再进入cf/cf目录,找到合适

的.mc文件。按照你的要求适当修改,加入如下几行:

TRUST_AUTH_MECH(`LOGIN PLAIN DIGEST-MD5')

define(`confAUTH_MECHANISMS', `LOGIN PLAIN DIGEST-MD5')

FEATURE(`no_default_msa')

DAEMON_OPTIONS(`Port=25, Name=MSA, M=Ea')

说明:"TRUST_AUTH_MECH"的作用是使sendmail不管access文件中如何设置,都能

relay那些通过LOGIN,PLAIN或DIGEST-MD5方式验证的邮件。

"confAUTH_MECHANISMS"的作用是确定系统的认证方式。

4.编译生成/etc/mail/sendmail.cf文件

m4 xxxx.mc >/etc/mail/sendmail.cf,不过记住一定要备份旧的sendmail.cf文件,

否则就可能麻烦了。

5.现在基本上可以了,启动sendmail

sendmail -bd -q20m

在结束服务器端的配置之前,我们还要做一件事,运行pwcheck这个daemon程序,这样才

能完成用户认证功能。

pwcheck &

四 blacklist_recipients特性

若使用blacklist_recipients特性,则意味着有一些服务器上的用户已经不适合再接收邮件,这个选项将全面封锁指定用户或用户群。这个选项还可以对被病毒感染的用户进行有效的隔离。例如:

badlocaluser@ ERROR:550 - Mailbox disabled for this username 错误的用户名

host.mydomain.com ERROR:550 -

That host does not accept mail 此主机不接受邮件

ERROR:550 Mailbox disabled for – 信箱不可用

使用(`dnsbl')特性,我们可以在启动SENDMAIL时将RBL装载进去。一般,SENDMAIL默认为blackholes.mail-abuse.org.提供的列表为其第一黑名单。然,你也可以选择其他的黑名单列表,详情请看http://mail-abuse.org/)

拒绝信息如下:

Rejected: IP-ADDRESS listed at SERVER

where IP-ADDRESS and SERVER are replaced

做为邮件系统管理员,在没有反垃圾邮件网关硬件配置况下,合理的置好MTA,是每个管理员必须做到的事情,除此之外,还应经常对系统资源及系统日志进行检查,发现损耗大量系统资源的发信情况或经常大量发送邮件的用户后应进行特别检查,一经确认,采取应急措施保证服务器运行正常。总之,反垃圾邮件是一项非常艰巨的任务,我们希望整个互联网络联合起来,禁屏蔽垃圾邮件,争取将垃圾圾邮件带给用户的困扰做到最小。

Sendmail使用基础:

Sendmail 是一种通用的 MTA,一直是在UNIX系统中作为缺省的邮件服务器来安装的。实际上,Sendmail也同UNIX其他邮件系统一样,应用程序及配置文件是分开放置的。应用程序则放置在/usr/sbin目录下(可能会随着不同的UNIX版本而略有变化)。Send mail的配置文件叫做Sendmail.cf,通常放置在/etc/mail或/etc/目录下,而且Sendmail.cf已经不象最早的版本需要手工修改生成,完全可以借助引入特性(FEATURE)机制来自动生成我们所需功能的Sendmai.cf。而不必须关心其具体内容。为此我们需要使用匹配系统的Sendmail.mc来产生sendmail.cf文件。

具体用法为如下

进入相应的cf子目录后:

#cp cf/***.mc sendmail.mc

#vi sendmailmc

divert(-1)

# 这里有大量的注释信息,在此省略

divert(0)dnl

VERSIONID(`@(#)subsidiary-v7sun.mc

FEATURE(`remote_mode')dnl

define(`SMART_HOST', `mailhost.$m')

FEATURE(`blacklist_recipients')dnl

DOMAIN(solaris-generic)dnl

MAILER(local)dnl

MAILER(smtp)dnl

用M4宏编辑器生成Sendmail.cf文件,并将此文件放置系统所需目录(/etc/mail/)

# m4 m4/cf.m4 sendmail.mc > /etc/mail/sendmail.cf

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有