一、现象描述
==============================================================================================
通过Exchange发送到公网的邮件,我们查看邮件头的时候,邮件头中会显示邮件路由的所有SMTP路径。这些路径中记录是邮件经过的所有SMTP服务器,这些路径中包含了服务器的FQDN和IP地址。而内部的服务器FQDN和IP地址这些信息泄露到公网不利于服务器安全(个人建议可以保留邮件头信息。下图显示的是默认请下发送邮件到163邮箱后,查看邮件头能够查看到内部Exchange服务器的FQDN和IP信息。如图。
通过了解发现,发送到公网邮件的邮件头中之所以会显示内部Exchange服务器的FQDN和IP地址信息,是因为在发送连接器中默认开启了
Ms-Exch-Send-Headers-Routing 权限(Exchange发送到公网的邮件都是使用的是NT AUTHORITY\ANONYMOUS LOGON 验证方式),Ms-Exch-Send-Headers-Routing 会在邮件头中显示所有SMTP服务器的FQDN信息。
发送连接器的权限说明如下:
发送连接器权限 |
说明 |
ms-Exch-Send-Exch50 |
此权限允许会话发送包含 EXCH50 命令的邮件。如果未授予此权限,并且发送了包含 EXCH50 命令的邮件,则服务器将发送邮件,但不包含 EXCH50 命令。 |
Ms-Exch-Send-Headers-Routing |
此权限允许会话发送所有接收的头保持不变的邮件。如果未授予该权限,则服务器将删除所有接收的头。 |
Ms-Exch-Send-Headers-Organization |
此权限允许会话发送所有组织头保持不变的邮件。组织标头均以 X-MS-Exchange-Organization- 作为开头。如果未授予该权限,发送服务器将删除所有组织标头。 |
Ms-Exch-Send-Headers-Forest |
此权限允许会话发送所有林头保持不变的邮件。林头全部以 X-MS-Exchange-Forest- 作为开头。如果未授予该权限,发送服务器将删除所有林头。 |
在Exchange服务器上通过如下命令获取发送连接器的权限:
Get-SendConnector | Get-ADPermission | Where-Object{$_.ExtendedRights -like "*Routing*"} | fl name,user,*right*
二、具体操作
=======================================================================
我们如果要设置Exchange发送到公网的邮件隐藏内部Exchange的服务器信息,我们可以进行如下设置:
1、使用如下命令,删除接收连接器的ms-Exch-Send-Headers-Routing权限
操作如下:
Get-SendConnector "To 163.com" | Remove-ADPermission -AccessRights Extendedright -ExtendedRights ms-Exch-Send-Headers-Routing -User "NT AUTHORITY\ANONYMOUS LOGON"
2、设定发送连接器的响应FQDN
接下来,设置发送连接器的响应FQDN,这个FQDN将显示在邮件头。可以自定义显示的名称。下面的发送连接器To 163.com直接发送邮件到Internet。具体设置如图:
三、显示效果
==============================================================
1、给163.com发送一封测试邮件查看显示的邮件头效果
我们看到邮件头中显示的是mx.contoso.com,为我们在发送连接器上设置的FQDN。
2、下面让Exchange发送到163.com的邮件通过Office 365的EOP进行转发
通过Office 365转发后的邮件头显示效果,在邮件头中只显示了Exchange出口的公网IP地址信息,而不包含内部Exchange服务器信息。