前言
公司要求追踪EMAIL的到达情况,看客户是否收到信还是被某个路由拦截。打算采用Packet级跟踪。因此抓包分析,看有没可能性完成任务。
环境
客户端 windows2003 outlook2003
SMTP服务器 redhat 9 qmail
涉及的软件和命令
tcpdump 和 wireshark 0.99.5
操作过程
分析全程使用服务器上的网卡监视,用tcpdump -w smtp_packet tcp prot 25将smtp端口的数据存入smtp_packet文件,然后用wireshark分析。
发信人: systemadmin@xxxxxxx.com
收信人: pencat@bigcomic.com
主题: test
内容: test
本地IP: 192.168.2.180
SMTP IP: 192.168.2.5
385、386、387 是TCP协议的三次握手,成功之后开始通信,下面是通信流向。
SENDER SMTP
220 xxxx.com ESMTP\r\n
<--------------------------------------------------
EHLO tc4200\r\n
-------------------------------------------------->
250-xxxx.com\r\n
250-PIPELINING\r\n
250
<--------------------------------------------------
MAIL FROM: <systemadmin@xxxx.com>
-------------------------------------------------->
250 ok\r\n
<--------------------------------------------------
RCPT TO: <pencat@bigcomic.com>\r\n
-------------------------------------------------->
250 ok\r\n
<--------------------------------------------------
DATA\r\n
-------------------------------------------------->
354 go ahead\r\n
<--------------------------------------------------
Message Body
-------------------------------------------------->
EOM:
-------------------------------------------------->
250 ok 1191037138 qp 31636\r\n
<--------------------------------------------------
Command: QUIT\r\n
-------------------------------------------------->
通过分析,可以得出结论:采用Packet级的跟踪是无法实现完全跟踪,因为source与destination之间的路由是不透明的, 无法知道在哪个路由除了问题。只能从对方的MAIL SERVER得到一些基本信息,对跟踪毫无帮助,只能另想途径。