背景: #EDF0F5 #FAFBE6 #FFF2E2 #FDE6E0 #F3FFE1 #DAFAF3 #EAEAEF 默认  
阅读新闻

sendmail环境中检测是否存在邮件代理

[日期:2008-03-11] 来源:IBM  作者:IBM [字体: ]
说明:
作为广泛应用的邮件服务器软件,sendmail需要和各种smtp的客户端软件打交道。在这些smtp客户端软件中,有些软件是真正的邮件软件,比如Microsoft Outlook Express;有些是有着特殊目的的应用程序,比如Norton Antivirus。

有些应用程序会截断邮件客户端和sendmail的连接,以“邮件代理”的形式接收客户端的数据,对数据进行处理(比如Norton Antivirus使用这种方式来扫描外出邮件中的病毒),然后转发给sendmail。

这种“邮件代理”程序可能是善意的也可能是恶意的。但是,当sendmail和邮件客户端软件的通信出现问题的时候,应该首先着手检测此类“邮件代理”程序是否存在以便进一步排除它们的影响。

sendmail服务程序具有记录smtp会话的功能,大部分邮件客户端软件也有类似的功能。我们可以通过对比服务器和客户端上的会话记录来判断邮件代理程序是否存在。

首先,您需要用 -X参数运行sendmail:
#startsrc -s sendmail -a"-bd -q 30m -X /tmp/smtp.sessions"

注意:
在一个生产环境中,-X参数可能会产生大量的日志信息。请只在进行测试或故障排除时使用-X参数。

一个典型的客户机-服务器smtp会话会被这样地记录在/tmp/smtp.sessions中:
127184 >>> 220 marshak.austin.ibm.com ESMTP Sendmail Tue, 1 Nov 2005 10:31:22 -0600
127184 <<< HELO IBM8370FEC6B24^M
127184 >>> 250 marshak.austin.ibm.com Hello [9.53.167.160], pleased to meet you
127184 <<< MAIL FROM: <liuqingc@marshak.austin.ibm.com>^M
200898 >>> 250 2.1.0 <liuqingc@marshak.austin.ibm.com>... Sender ok
200898 <<< RCPT TO: <liuqingc@marshak.austin.ibm.com>^M
200898 >>> 250 2.1.5 <liuqingc@marshak.austin.ibm.com>... Recipient ok
200898 <<< DATA^M
200898 >>> 354 Enter mail, end with "." on a line by itself
200898 <<< Message-ID: <000f01c5df01$88a95fd0$a0a73509@austin.ibm.com>^M
200898 <<< From: "internship test" <liuqingc@marshak.austin.ibm.com>^M
200898 <<< To: <liuqingc@marshak.austin.ibm.com>^M
200898 <<< Subject: test^M
200898 <<< Date: Tue, 1 Nov 2005 10:29:06 -0600^M
......

其中"<<<"表示sendmail服务接收到的信息,而">>>"则表示sendmail服务向客户端发送的信息。如果邮件客户端直接和sendmail服务会话,那么在客户端的smtp会话中所记录的文本信息应该和/tmp/smtp.sessions一致。我们可以利用这个特点来检测邮件代理的存在。

让我们用一个例子来说明。
/tmp/smtp.sessions:
127184 >>> 220 marshak.austin.ibm.com ESMTP Sendmail Tue, 1 Nov 2005 10:31:22 -0600
127184 <<< HELO IBM8370FEC6B24^M
127184 >>> 250 marshak.austin.ibm.com Hello [9.53.167.160], pleased to meet you
127184 <<< MAIL FROM: <liuqingc@marshak.austin.ibm.com>^M
200898 >>> 250 2.1.0 <liuqingc@marshak.austin.ibm.com>... Sender ok
200898 <<< RCPT TO: <liuqingc@marshak.austin.ibm.com>^M
200898 >>> 250 2.1.5 <liuqingc@marshak.austin.ibm.com>... Recipient ok
200898 <<< DATA^M
200898 >>> 354 Enter mail, end with "." on a line by itself
200898 <<< Message-ID: <000f01c5df01$88a95fd0$a0a73509@austin.ibm.com>^M
200898 <<< From: "internship test" <liuqingc@marshak.austin.ibm.com>^M
200898 <<< To: <liuqingc@marshak.austin.ibm.com>^M
200898 <<< Subject: test^M
200898 <<< Date: Tue, 1 Nov 2005 10:29:06 -0600^M
200898 <<< X-Priority: 3^M
200898 <<< X-MSMail-Priority: Normal^M
200898 <<< X-Mailer: Microsoft Outlook Express 6.00.2800.1506^M
200898 <<< X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1506^M
200898 <<< ^M
200898 <<< test^M
200898 <<< ^M
200898 <<< ^M
200898 <<< .^M
200898 >>> 250 2.0.0 jA1GVM5200898 Message accepted for delivery


邮件客户端软件的记录:
SMTP: 10:38:54 [rx] 220 marshak.austin.ibm.com ESMTP Sendmail Tue, 1 Nov 2005 10:40:03 -0600
SMTP: 10:38:54 [tx] HELO IBM8370FEC6B24
SMTP: 10:38:54 [rx] 250 marshak.austin.ibm.com Hello [9.53.167.160], pleased to meet you
SMTP: 10:38:54 [tx] RSET
SMTP: 10:38:54 [rx] 250 2.0.0 Reset state
SMTP: 10:38:54 [tx] MAIL FROM: <liuqingc@marshak.austin.ibm.com>
SMTP: 10:38:54 [rx] 250 2.1.0 <liuqingc@marshak.austin.ibm.com>... Sender ok
SMTP: 10:38:54 [tx] RCPT TO: <liuqingc@marshak.austin.ibm.com>
SMTP: 10:38:54 [rx] 250 2.1.5 <liuqingc@marshak.austin.ibm.com>... Recipient ok
SMTP: 10:38:54 [tx] DATA
SMTP: 10:38:54 [rx] 354 Please start mail input.
SMTP: 10:38:54 [tx]
.
SMTP: 10:38:54 [rx] 250 Mail queued for delivery.

我们可以看到,在要求客户端输入邮件信息时,sendmail发出的信息是“354 Enter mail, end with "." on a line by itself”,而邮件客户端收到的信息是“354 Please start mail input.”。由此可知有邮件代理程序存在于邮件客户端与sendmail之间。

如果您的邮件客户端不支持记录smtp会话的功能,您可以采用以下两种方法:
1、使用支持smtp会话记录的客户端进行测试;
2、使用telnet命令连接到sendmail服务器的25端口,手工输入HELO,MAIL FROM,RCPT TO,DATA等命令。
相关网站:企业邮箱 企业邮局 企业邮箱申请 企业邮箱注册 21cn企业邮箱 上海企业邮箱
阅读:
录入:admin

推荐 】 【 打印
上一篇:Linux 上使用Sendmail群集的高可用/可伸缩的Sendmail方法
下一篇:阻止对sendmail邮件服务器的relay恶意攻击
相关新闻      
本文评论       全部评论
发表评论


点评: 字数
姓名:

  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款