当我们使用Telnet命令连接到对方的邮件服务器 端口时 如果对方是Exchange服务器通常会显示如下的信息 MailSMicrosoftESMTPMAILServicereadyatSun Feb : : + 以上是Exchange 的SMTP标题信息 如果是Exchange的早期版本 则还有可能出现邮件服务器的版本信息 Mic
当我们使用Telnet命令连接到对方的邮件服务器端口时如果对方是Exchange服务器通常会显示如下的信息
MailS Microsoft ESMTP MAIL Service ready at Sun Feb :: + |
以上是Exchange
的SMTP标题信息
如果是Exchange的早期版本
则还有可能出现邮件服务器的版本信息
Microsoft ESMTP MAIL Service Version: ready at Thu Nov :: |
我稍微对上面的SMTP标题信息做下解释
信息的开头为是SMTP的响应代码表示服务已就绪的意思
就是邮件服务器的FQDN名如果是Exchange这里就是Hub Transport Server或者Edge Transport Server的名字
邮件服务器的信息从中我们可以看出对方使用的是Exchange甚至我们还能知道对方版本
日期时间信息
时区设置信息
以上检测出的信息说多不多说少不少尤其是第和第点竟然将邮件服务器的计算机名和邮件服务器的软件及版本暴露出去了让人颇感不放心所以在Hub Transport Server或者Edge Transport服务器上修改默认 SMTP 标题以便服务器名和邮件服务器软件不会被SMTP标题信息泄露出卖就显得很有必要了
在Exchange中修改SMTP标题信息也就是修改接收连接器属性中的Banner参数该值在默认情况下为空用$null 表示当接收连接器上未指定 Banner 参数或使用 $null 值指定 Banner 参数时连接到该接收连接器的远程 SMTP 邮件服务器将收到前面提到的响应信息
MailS Microsoft ESMTP MAIL Service ready at Sun Feb :: + |
如何修改呢?其实很简单
使用 Set
ReceiveConnector cmdlet 或 New
ReceiveConnector cmdlet 中的 Banner 参数可控制 SMTP 标题
在这里我就不new一个接收连接器了
直接通过Set
ReceiveConnector cmdlet以现有的接收连接器做演示
注不能使用 Exchange 管理控制台修改默认 SMTP 标题若要修改 SMTP 标题则必须使用 Exchange 命令行管理程序
要想成功修改必须具备Exchange 组织管理员角色如果是修改边缘传输服务器上的接收连接器必须要有本地管理员权限
打开Exchange命令行管理程序输入SetReceiveConnector 接收连接器名 Banner 自定义的提示信息我的Exchange组织中没有边缘角色Exchange其他角色安装在DC上服务器的FQDN名为所以实际代码应该表示如下:
SetReceiveConnector dc\default dc Banner Welcome to MailSystem of !!! |

注意
如果有边缘传输服务器角色则把dc\default dc替换为实际的名称例如Default internal receive connector
自定义消息中的不能省略这个在RFC文档里面已经定义好了必须遵循否则会看到如图的报错信息
提示消息可以随便定制建议干脆搞个其他邮件服务端迷惑对方例如欢迎使用postfix
修改完成以后我们来telnet 邮件服务器的端口看看效果如图这样我们就将SMTP标题中敏感信息简单的隐藏起来了

图