




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
对sendmail的所有功能的简单介绍一.什么是第三方的Mail Relay? 当一台邮件服务器处理一封邮件时,该封邮件的发送者(the sender)和接收者(the recipient)都不是本地用户(local user),即发送者和接收者都处于本地域之外,该邮件服务器对于这封邮件的传送完全属于不相关的第三方,因此Mail Relay被sedmail默认禁止了。这阻止了Spammer利用你的服务器发送垃圾邮件。 二.为什么你要停止第三方的Mail Relay? 如果你的邮件服务器不能有效地控制第三方的mail relay,你应该立刻着手解决这个问题,不要等待spammer 来攻击你的邮件主机,主要是因为: a.大量的垃圾邮件(junk email)可能会使你的邮件系统崩溃。它们占用你的磁盘空间,CPU资源,还可能引发Dos类型攻击(denial of service attack). b.你的组织可能被列入黑名单(backlist)。由于大量垃圾邮件从你的主机发出,其它一些组织或公司可能会不做任何更深的调查就更改设置阻止了从你的主机来的任何邮件,这也将同时阻止从你的站点发到它们的所有正常的商业性邮件,损失不可估量. c.意识到这种攻击将会发生在你身上。不要因为它没有发生就意味着你是安全的。他们每天正用一些自动扫描的工具去扫描网络而寻找那些对他们打开relay功能的邮件主机。他们可能自己写了某个程序正每刻地进行扫描,如果你的邮件主机是易受攻击的,那么扫描到你就是迟早的事情。 三. Sendmail(8.9.3)如何relay你的邮件? 如果发送者和接收者都不属于本地域,sendmail将默认禁止mail relay. 要想使得sendmail relay 你的邮件,可以有下面两种途径,你必须确保发送者或者接收者其中至少有一个属于本地域. a. 本地发送者到外部接收者(local sender to external recipient) b. 外部发送者到本地接收者(external sender to local recipient) = c. 何为本地发送者(local sender)? 当邮件服务器接收到一封从其它机器(如windows pc)发来的邮件时,它首先检查连接进来的主机的域名和 IP地址,注意: 决不是检查这封邮件的信封里的发送者地址(not based on the envelope MAIL FROM address!) (要了解一封邮件的全部信封头信息,参考(/email/headers/headers.html)) 如果你是拨号用户,IP地址当然是你拨到ISP所得到的动态IP地址,然后你的主机名/域名是由你的ISP对你的IP 地址作反向DNS解析出来的主机名/域名, 不过大多数ISP不作这个,因此,sendmail将仅仅记录你连接进来的IP地址,由此判断是否这个地址被允许relay mail.对sendmail 8.9.3来说,最通常的用来检查是否relay邮件的配置文件是/etc/mail/relay-domains,它能对IP地址或域名进行判断是否允许relay. 如果这一步不允许,再检查/etc/mail/access(它能被通过加FEATURE(access_db)到.mc文件再用m4生成/etc/sendmail.cf所激活 附:本文讨论的所有设置都是基于M4宏命令生成的/etc/sendmail.cf) d. 何为本地接收者(local recipient )? 决定接收者邮件地址是否为本地的不是件轻松的事情,sendmail认为类w中的所有主机/域为本地接收者,也就是 /etc/mail/sendmail.cw文件或者/etc/sendmail.cf中的Cw类定义后面列出的所有主机或域名。为了激活对 /etc/mail/sendmail.cw的检查,使用特性Feature(use_cw_file)。但是这还不够,因为这个能被愚弄的,如. 因此sendmail用规则集(ruleset)先移走这个地址的本地部分( local.site)后,如果仍有一些域,则考虑是否能通过relay检查,另外,sendmail也还检查/etc/mail/access 决定是否有项目匹配接收者地址所在的域,根据相应标记确定是否被允许接收。 四. Sendmail 8.9.3: anti-relaying(拒绝传递)怎么工作?a. 如果Mail From:行有下面的参数,sendmail拒绝mail relay:1.发送者的域名不能被解析。这个能用FEATURE(accept_unresolvable_domains)被禁止。 2.非全称的域名。能被用FEATURE(accept_unresolvable_domains)禁止。 3.与access map( /etc/mail/access)中的一项匹配。域名:如spammer.domain reject全称email地址:如spammerdomain reject邮件地址的用户名部分:如spammer reject或者不用reject用error code error textspammer.domain 501 No e-mail from this domain.spammerdomain 501 No e-mail from your address.spammer 501 Get a real address.甚至用DISCARD (接收并安静地删除掉,让发送者感觉象被接收)b.检查接收者。用FEATURE(blacklist_recipients)允许指定access map中不应该接收email的用户。如:badlocaluser 550 Mailbox disabled for this usernamehost.mydomain 550 That host does not accept mailuserotherhost.mydomain 550 Mailbox disabled for this recipient这将禁止发到你本地域中的用户邮件地址badlocalusemydomain和在主机host.mydomain中的任何用户和单个地址 userotherhost.mydomain.注:关于access map的说明:它的默认位置是/etc/mail/access. 每次更新后你必须运行makemap hash /etc/mail/access.db /etc/mail/access ,不需要重启用Sendmail.它可以有以下入口:1.域名2.email地址3.本地用户名部分4.IP地址(完整的或者子网)和以下操作标记:1.OK 接收email,即使被其它规则拒绝了2.RELAY 允许通过该邮件主机relay的域。relay意味着OK3.REJECT 拒绝email并显示内部通用的错误提示4.DISCARD 安静地接收随后取消掉这封邮件5.XYZ some other textXYZ是 RFC 821兼容的错误代码后面跟上一段自定义的错误信息五.常见的两种检查规则1. check_relay 规则(发送者检查):检查主机名和IP地址,当无论什么时候,一台客户通过(E)SMTP连到邮件服务器时该规则被调用。 2. check_rcpt 规则(接收者检查):用于RCPT命令(用来禁止未被授权的relay).该规则禁止了所有的已知的relay诡计。你能#tail -f /var/log/maillog检查是否某个邮件被运用了上述规则。六. Why 550 Relaying Denied? 如果你从你自己的邮件服务器得到了一个错误说550 Relaying Denied,你需要弄清楚为什么,甚至可能你认为这决不应该发生,但是你可能忽略了某些细节,看上去是应该被Relay,但实际上不。看下面的几个例子:1.正确的DNS数据 QAA02454: . we do not relayQAA02454: ruleset=check_rcpt, arg1=,relay=170-51-209. 09, reject=550. we do not relayQAA02454: from=, size=0, class=0, pri=0, nrcpts=0,proto=SMTP, relay=170-51-209. 09这里,主机名为170-51-209.的机器IP地址为09 试着交付一封邮件给,然而,这个被拒绝了,因为接收者不是本地接收者并且发送者的机器170-51-209.(09)也不是本地发送者。2.错误的DNS数据 QAA02454: . Relaying deniedQAA02454: ruleset=check_rcpt, arg1=, relay=3,reject=550 . Relaying deniedQAA02454: from=, size=0, class=0, pri=0, nrcpts=0,proto=SMTP, relay=3这个其实与上面的情况相同,对于IP地址3没有PTR记录被找到,关于这一点有个问题就是:万一你的邮件主机的relay功能仅仅是基于主机/域名进行检查是否为本地发送者,(e.g., FEATURE(relay_entire_domain),那样的话,如果该IP地址是属于你的本地域之内,仍将被你拒绝relay.解决办法是为这个IP地址加PTR记录,也就是反向DNS解析,或者添加到/etc/hosts文件中,再或者添加该IP地址到access map中去(/etc/mail/access)。3.不一致的DNS数据QAA02454: . Relaying deniedQAA02454: ruleset=check_rcpt, arg1=,relay=some.domain (may be forged),reject=550 . Relaying deniedQAA02454: from=, size=0, class=0, pri=0, nrcpts=0,proto=SMTP, relay=some.domain (may be forged)这儿,(may be forged)是个很重要的部分:它说明对于该主机的DNS数据是不一致的,并且主机名不被用来检查是否被允许relay,而仅仅检查IP地址,因此这和第二种情况相同。七. 动态Relay授权控制简介:(DRAC)DRAC是一个后台程序,它动态地为Sendmail更新access map文件,它提供一种方法,就是允许合法的用户通过你的SMTP邮件主机relay mail,同时仍然阻止其它人用它作为Spam Relay.当用户被POP/IMAP服务器认证后其IP地址被立即加入/etc/mail/access允许mail relay.默认地,该IP地址在access map的入口在30分钟后被终止了。这种功能特别是对那些公司有用,它们在各个地方有办事处,外地办事处或出差在外的笔记本用户通过拨入当地ISP,且设置了发送邮件服务器为本公司的SMTP邮件主机时。一般地,Sendmail所能看见的唯一可靠的信息是客户机的主机/域名或IP地址,并且当一个用户是通过拨本地ISP连接到其本公司总部的SMTP邮件服务器时,Sendmail不能分辩你的用户是spammer还是本公司合法员工,如果拨号用户有固定的IP地址/域名,你可以配置sendmail允许他们relay mail.但是大多数情况,特别在中国,拨号用户每次得到的是不同的变化多端的IP地址,因此你不得不告诉用户通过他们本地ISP提供的邮件主机发送邮件.DRAC所用的方法是叫做POP-before-SMTP, 既然POP服务器知道每一个接收邮件的客户机的IP地址,这些IP地址能被收集起来动态构建access map,你可能需要写一个程序来收集这些地址,象上面说的一样,默认保留30分钟然后取消这些IP地址的mail relay. 一般地定期运行makemap程序更新access map.这有两种情况:1. 拨到ISP后先收后发.2. 在发件信(outbox)中有信,拨号后先发后收.第一种情况没有问题,对于第二种情况,需要在连到POP3信箱收信之后邮件才能被发送,第一次发送将被拒绝.第二种情况在被POP3取得认证后,随即access map被更新允许SMTP Mail Relay.八.参考资料:1. Sendmail homepage: htt
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 设备检修安全管理制度
- 设备等级评估管理制度
- 2025年中国家庭影院立体声接收器行业市场全景分析及前景机遇研判报告
- 设计成果运用管理制度
- 评估公司价格管理制度
- 诊所医疗软件管理制度
- 诊所财务制度管理制度
- 贝壳门店分级管理制度
- 财务集中中心管理制度
- 账务实物分开管理制度
- 特种设备“日管控、周排查、月调度”表格
- 美学原理2尔雅满分答案
- MOOC 工程伦理-西南石油大学 中国大学慕课答案
- 小米汽车发布会
- 设计质量管理和保证措施及设计质量管理和质量保证措施
- 国家级社会体育指导员理论考试试题及答案
- 小学科学学法指导
- 充电桩建设项目可行性研究报告
- 第七届全国急救技能大赛(医生组)理论考试题库大全-下部分
- 分级护理制度培训
- 初中物理核心素养培养
评论
0/150
提交评论