WELCOME

2008年12月12日 星期五

防御邮件头欺骗 (Prevent SMTP header from domain spoofing)

下面是一个从程序角度解决的方法:
解决方法二:
对于Exchange 2007,由于使用了新的 Transport Permissions model, 我们可以很容易地控制邮件头的仿冒。Receive Connector 有一个特殊权限 ms-exch-smtp-accept-authoritative-domain-sender 。 这个权限代表了 Accepted Domain 是否能够被用在 SMTP传输过程中的 MAIL 或者 FROM 命令中。由于外部邮件都是通过匿名进来的, 因此,我们只需要把匿名发信者的这个权限去掉,匿名发信者就不再能够用 accepted domain中任意一个域名发信了。

范例命令行:

Get-ReceiveConnector "My Test ReceiveConnector" | Get-ADPermission -user "NT AUTHORITY\Anonymous Logon" | where {$_.ExtendedRights -like "ms-exch-smtp-accept-authoritative-domain-sender"} | Remove-ADPermission


好了,这就搞定了。 这以后,如果再试图用匿名连接来去仿冒 P1, P2, 就会得到“550 5.7.1 Client does not have permissions to send as this sender” 的错误。


解决方法三 是针对 Exchange 2003。
==============================


先尽量满足解决方法一。

在所有Exchange的SMTP VS上,确保 “resolve P2From ”没有被启用。



在全局设置中,创建针对收件人自己域名(比如 *@abc.com)的Sender Filtering,并把这个sender filter在Inbound VS上 enable起来。同时,在全局设置中,启用过滤空邮件头。(注意,这样可能在某种情况下收不到外面来的退信)


在Exchange 2003 里我们一般会设定一到两台桥头堡服务器。推荐把这两个服务器划在一个路由组里,并且创建和其他路由组的路由组连接器。当然,也可以和其他的放在一个路由组里。


另外, 建立两个 SMTP Virtual Server. 一个管 Inbound, 一个管Outbound, 侦听在不同的 IP上。如果分在两台独立的机器上更加好。(两个VS运行在一起,会遇到一个关于event sink的小bug,欧很久没碰exchange 2003了,不知道现在微软解决了没有。)

外网MX记录映射或者邮件网关传送目标需要映射到Inbound SMTP VS上。Inbound SMTP 设定只接受这个IP来的匿名连接。(或者其他可信任的应用的IP)

对Outbound VS需要建立对应的 SMTP connector, 将邮件传输去外网或者邮件网关。对于Outbound VS,需要将在 access中把 匿名连接的设置去掉。并且,这个VS只接受所有从服务器网段来的连接。

沒有留言:

張貼留言