您好,欢迎来到保捱科技网。
搜索
您的当前位置:首页【协议分析】【简单邮件传输协议SMTP 分析】

【协议分析】【简单邮件传输协议SMTP 分析】

来源:保捱科技网
第五章 应用层协议分析

实验十五 简单邮件传输协议SMTP分析

【实验目的】

1、理解SMTP协议的基本原理; 2、理解SMTP协议的工作过程; 3、了解SMTP的基本命令格式; 4、了解应用层协议与传输层协议的关系。

【实验学时】

2学时

【实验环境】

本实验要求实验室主机能够连接到Internet,具有事先申请好可用的电子邮件帐户,并且能够支持SMTP和POP3协议。

实验室主机安装有Outlook Express软件,学生可以进行账号的配置,并利用其进行收发邮件的的操作。

实验拓扑如图5- 73所示:

图5- 73 实验拓扑图

【实验内容】

1、学习邮件服务的工作原理; 2、理解SMTP协议;

3、学习SMTP协议的命令和使用方法; 4、学习协议编辑软件的使用方法。

171

计算机网络协议原理实验教程

【实验流程】

图5- 74 实验流程图

【实验原理】

SMTP协议是两个报文传输代理之间的通信协议。它规定了两个相互通信MTA之间如何交换信息。SMTP协议的最大特点是简单,它规定了发送程序和接收程序之间的命令和应答格式。

SMTP提供可靠且有效电子邮件传输,是建模在 FTP 文件传输服务上的一种邮件服务,主要用于传输系统之间的邮件信息并提供来信有关的通知。

SMTP 于特定的传输子系统,且只需要可靠有序的数据流信道支持。SMTP 重要特性之一是其能跨越网络传输邮件,即SMTP 邮件中继。通常,一个网络可以由互联网上可通过TCP相互访问的主机、防火墙分隔的 TCP/IP 网络上可通过TCP相互访问的主机,及其它利用非TCP传输层协议的局域网或广域网中的主机组成。使用 SMTP,可实现相同网络上主机之间的邮件传输,也可通过中继器或网关实现某主机与其它网络之间的邮件传输。

SMTP使用的是TCP的端口25。

172

第五章 应用层协议分析

SMTP命令

SMTP 命令是发送于 SMTP 主机之间的 ASCII 信息,可能命令如下表所示:

表5-10 SMTP命令列表

命令

描述

DATA

开始信息写作,DATA命令后面的数据将被看作邮件内容处理,以(回车换行符)标识数据的结尾 EXPN 需要扩展的邮件发送清单 HELO 发送方的主机名 HELP 返回指定命令中的信息

MAIL FROM 在主机上初始化一个邮件会话,指明发送者的地址 NOOP 除服务器响应确认以外,没有引起任何反应 QUIT

终止邮件会话 RCPT TO 指明邮件接收者的地址 RSET

复位当前的邮件连接 SAML FROM 发送邮件到用户终端和邮箱 SEND FROM 发送邮件到用户终端 SOML FROM 发送邮件到用户终端或邮箱 TURN 接收端和发送端交换角色 VRFY

校验用户身份

允许客户端使用基本验证、Windows集成验证(NTLM和AUTH(扩展命令)

Kerberos)与服务器进行身份认证,进行身份认证也是避免SMTP服务器被relay的重要手段

SMTP响应

SMTP响应是从服务器发送到客户端的三位十进制数字,后面可以跟着附加的文本信息,第一位数字的意义如下:

z 2yz:正面完成应答。若第一位数字是2(数字1现在已不使用),表示所请求的命

令已经成功完成,新的命令可以开始;

z 3yz:正面中间应答。若第一位数字是3,表示所请求的命令已被接受,但在完成

请求的命令之前,收件人需要更多的一些信息。

z 4yz:暂时负面完成应答。若第一位数字是4,表示所请求的命令已被拒绝,但差

错条件是暂时的,这个命令可以重新发送。

173

计算机网络协议原理实验教程

z 5yz:永久负面完成应答。若第一位数字是5,表示所请求的命令已被拒绝,且这

个命令不能重新发送。

表5-11 SMTP应答码列表

应答码 211 214 220 221 250 251 354 421 450 451 452

描述

系统状态或系统帮助响应 帮助信息

服务就绪 服务关闭 要求的邮件操作完成

用户非本地,将转发向

开始邮件输入,以”.”结束 服务未就绪

要求的邮件操作未完成,邮箱不可用

放弃要求的操作:处理过程中出错系统存储不足,要求的操作未执行

应答码500 501 502 503 504 550 551 552 553 554

描述

语法错误,不能识别的命令 参数格式错误 命令不可实现 错误的命令序列 命令参数不可实现

要求的邮件操作未完成,邮箱不可用 用户非本地,请尝试 过量的存储分配,要求的操作未执行 邮箱名不可用,要求的操作未执行 操作失败

【实验步骤】

步骤一:利用Outlook发送电子邮件,捕获数据包并分析

1、打开邮件工具:Outlook Express,按照已经申请的邮箱信息进行配置,例如邮箱为2008.test.star@163.com ,密码为:Test2008,配置完成后可看到的邮件帐户属性为:

图5- 75 在Outlook Express中设置邮箱帐户

174

第五章 应用层协议分析

2、在主机上打开协议分析仪,点击工具栏上的“过滤器”,“类型过滤器”的下拉列表中选择“SMTP协议”:

图5- 76 设置SMTP协议过滤器

3、在Outlook中创建一封邮件,发送出去。

4、进行数据捕获,并分析数据包内容,可以看到SMTP的命令和参数,图5- 77中可以看到MAIL FROM命令,并可看到邮箱地址 2008.test.star@163.com :

图5- 77 SMTP协议的MAIL FROM命令报文

而在图5- 78中,则可以看到这是一个携带邮件内容的DATA报文:

175

计算机网络协议原理实验教程

图5- 78 SMTP协议中的DATA报文

5、分析其中发送邮件的过程传输层采用什么协议?发送端的目的端口号是多少?代表什么协议?

步骤二:利用“TCP工具”和SMTP命令编辑邮件并发送

本步骤的目的是学习SMTP协议的命令用法,以及一个邮件发送的过程。

1、首先要与某个邮件服务器建立一个TCP连接,例如:使用步骤一中的163.com的邮件服务器,可从刚才捕获到的报文中看到其IP地址为:202.208.5.81,用户名:2008.test.star,密码为:Test2008,邮件服务器域名:163.com。

(1)、首先打开协议分析仪,准备好进行数据包的捕获,然后打开协议分析仪,点击工具栏中的“TCP”按钮;

(2)、在弹出的“TCP连接工具”中填写邮件服务器的IP地址(202.208.5.81)及邮件服务器SMTP协议的端口号(25),点击“启动”,从而建立本机与邮件服务器SMTP端口的TCP连接,如图5- 79所示:

图5- 79 利用TCP工具与邮件服务器建立连接

176

第五章 应用层协议分析

从协议分析器一端可以捕获到三次握手的过程:

图5- 80 与邮件服务器建立TCP连接的过程

(3、)若连接成功,在接收窗口会显示成功连接的信息:

220 163.com Anti-spam GT for Coremail System (163com[071018]) 若不成功,查看IP地址和端口号是否有错,再次尝试进行连接,直到成功。

2、用SMTP命令编辑发送邮件,捕获数据包并进行分析:

(1)、在发送的编辑栏里面编辑发送SMTP协议的命令HELO,参数为发送方的主机名,例如:HELO STAR:

图5- 81 在TCP工具中编辑发送SMTP命令报文

177

计算机网络协议原理实验教程

(2)、发送命令AUTH LOGIN,此命令的含义是要求进行身份认证;

(3)、邮件服务器返回“334 dXNlcm5hbWU6”,要求主机发送用户名,“dXNlcm5hbWU6”是“username:”的BASE编码;

(4)、发送“MjAwOC50ZXN0LnN0YXI=”,这是“2008.test.star”的BASE编码(可以使用BASE转换工具将字符转换为BASE编码);

(5)、邮件服务器返回“334 UGFzc3dvcmQ6”,要求主机发送密码,“UGFzc3dvcmQ6”是“Password:”的BASE编码;

(6)、发送“VGVzdDIwMDg=”,这是“Test2008”的BASE编码;

(7)、邮件服务器返回“235 Authentication successful”,表示身份认证通过; (8)、发送“MAIL FROM <2008.test.star@163.com>”,说明邮件接收方是2008.test.star@163.com ,邮件服务器返回“250 Mail OK”;

(9)、发送“RCPT TO <2008.test.star@163.com>”,说明邮件发送方是2008.test.star@163.com (这是一封自己发送给自己的邮件),邮件服务器返回“250 Mail OK”;

(10)、发送命令“DATA”,说明下面将开始发送的是邮件正文的内容;

(11)、服务器返回“354 End data with .”,说明服务器准备接收邮件正文,并要求正文内容以单独的一个“.”结束;

(12)、发送字符“my email.” (13)、发送字符“.”; (

14

)、

“250 Mail OK queued as

smtp1,C9GowLDLOx2P_9FIJx30JQ==.36538S2 1221722068”,说明邮件正文发送成功;

(15)、发送命令“QUIT”结束这个邮件会话,服务器返回“221 Bye”(从协议分析仪上可以看到四次断开的过程)。

此时,使用Outlook Express可以收到这封邮件,不过内容为空,因为发送的内容“my email.”不能解析成包含主题、From、To、Subject、Date等格式要求的邮件正文。

下面是在协议分析仪的TCP工具“数据信息”区域显示的全部交互过程:

正在连接202.108.5.81:25 连接成功!

220 163.com Anti-spam GT for Coremail System (163com[071018]) ------------------------------------------------------------------------------- 发送HELO STAR 发送成功!

250 OK

------------------------------------------------------------------------------- 发送AUTH LOGIN 发送成功!

334 dXNlcm5hbWU6

-------------------------------------------------------------------------------

178

第五章 应用层协议分析

发送MjAwOC50ZXN0LnN0YXI= 发送成功!

334 UGFzc3dvcmQ6

------------------------------------------------------------------------------- 发送VGVzdDIwMDg= 发送成功!

235 Authentication successful

------------------------------------------------------------------------------- 发送MAIL FROM <2008.test.star@163.com> 发送成功!

250 Mail OK

==

------------------------------------------------------------------------------- 发送RCPT TO <2008.test.star@163.com> 发送成功!

250 Mail OK

------------------------------------------------------------------------------- 发送DATA 发送成功!

354 End data with .

------------------------------------------------------------------------------- 发送my email. 发送成功!

------------------------------------------------------------------------------- 发送. 发送成功!

250 Mail OK queued as smtp1,C9GowLDLOx2P_9FIJx30JQ.36538S2 1221722068

-------------------------------------------------------------------------------

发送QUIT 发送成功! 221 Bye 连接结束

步骤三:编辑一个SMTP报文

1、在主机上打开协议数据发生器,在工具栏上选择“添加”,会弹出“网络包模版”对话框,选择“SMTP协议模版”,建立一个SMTP数据报文:

179

计算机网络协议原理实验教程

图5- 82 建立SMTP协议报文

2、填写其中以太网帧头、IP首部、TCP首部和SMTP报文的内容:

z 填写以太网协议首部信息:

¾ 目的物理地址:在地址本中选择实验室网关的IP地址(例如:192.168.1.1),

确认后自动填入网关的MAC地址:00-D0-F8-B5-24-8F;

¾ 源物理地址:在地址本中选择实验主机(例如:192.168.1.2),确认后自动填

入实验主机的MAC地址:02-00-4C-4F-4F-50; ¾ 类型或长度:该字段应为0800(即IP协议的类型值)。 z 填写IP协议头信息:

¾ 总长度字段:包括TCP段内容的总长度,20 IP+20 TCP+34 SMTP = 74; ¾ 高层协议字段:即上层协议类型为6(TCP协议的类型为6);

¾ 发送IP地址:在地址本中选择实验主机的IP地址,确认后自动填入主机的IP

地址192.168.1.2;

¾ 目标IP地址:手工填写邮件服务器的IP地址:202.108.5.81; ¾ 点击工具栏中的“校验和”按钮计算IP头校验和。 z 填写TCP协议的各个字段信息:

¾ 16位源端口号:任意大于1024的数; ¾ 16位目的端口号:25;

¾ 32位序号:选择一个序号(例如:194258); ¾ 32位确认序号:设置为0;

¾ 首度:首度设为5,即长度为20字节; ¾ 标志位:标志位设为2,即标志位SYN=1; ¾ 窗口大小:任意,例如填入32768; ¾ 紧急指针:0;

180

第五章 应用层协议分析

¾ 校验和:点击工具栏中的“校验和”按钮计算TCP校验和(覆盖TCP首部(包

含伪首部)和TCP数据两部分,计算方法同UDP协议一样)。

z 5、填写SMTP协议报文的内容:

可填入SMTP的常用命令及参数,例如:MAIL FROM <2008.test.star@163.com>。

最终的编辑结果如图5- 83所示:

图5- 83 编辑SMTP报文的内容

3、点击工具栏上的“发送”按钮,将编辑好的SMTP数据报文发送,可设置循环发送。 4、在实验主机上运行网络协议分析仪,捕获数据,捕获结果如图5- 84所示,其中可以清晰地看到,这个TCP报文的标志位是SYN,里面携带的是SMTP报文,具体的SMTP命令及参数是MAIL FROM <2008.test.star@163.com>:

图5- 84 捕获编辑的SMTP报文

181

计算机网络协议原理实验教程

【思考问题】

1、在SMTP协议的传输报文中,是否有携带帐号、密码的报文?

2、通过实验说明你的电子邮件在网络上传输是安全的吗?为什么?如果不安全,你认为实现邮件安全传输的最好的办法是什么?

182

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- baoaiwan.cn 版权所有 赣ICP备2024042794号-3

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务