1、实验十一 SMTP和POP协议分析实验十一 SMTP和POP一 实验目的1、 理解 SMTP,POP 协议的基本原理; 2、 理解 SMTP,POP 协议的工作过程; 3、 了解 SMTP,POP 的基本命令格式; 4、 了解应用层协议与传输层协议的关系。二 实验内容1、 学习邮件服务的工作原理; 2、 理解 SMTP 协议和 POP3 协议; 3、 学习 POP3 协议的命令格式和使用方法; 4、 学习 SMTP 协议的命令和使用方法; 5、 学习 Foxmail 的使用方法。三 实验环境 局域网环境,1 台 PC 机,每台 PC 上都安装有Foxmail软件,学生可以进行账号的配置并利用其
2、进行收发邮件的的操作。(由于实验室的操作系统为win7,不自带outlook express,所以在此处用Foxmail客户端来代替 outlook express)。四 实验流程五 实验原理 SMTP 是一种提供可靠且有效电子邮件传输的协议。SMTP 是建模在 FTP 文件传输服务上的一种邮件服务,主要用于传输系统之间的邮件信息并提供来信有关的通知。 默认端口是25,SMTP主要负责邮件的转发。POP 适用于 C/S 结构的脱机模型的电子邮件协议,目前已发展到第三版,称 POP3。脱机模型即不能在线操作,不像 IMAP4(netscape 支持 IMAP4)。默认端口是110,邮件客户端使用
3、pop3协议连接邮件服务器收邮件。SMTP协议帮助每台计算机在发送或中转信件时找到下一个目的地,POP3允许客户端从服务器上接受下载邮件,同时根据客户端的操作删除或者保存在邮件服务器上的邮件。1、 POP3(邮局协议 3) POP 是一个脱机协议,它是一个只有存储转发功能的中间服务器。POP3 是邮局协议的第 3 个版本。POP 协议采用客户/服务器工作模式命令描述USER用来区分用户正在连接的邮箱PASS此命令将邮箱的口令发送给 POP3 服务器,缺省情况用明码文本发送。STAT 请求服务器发问关于邮箱的统计资料,如邮件总数和总字节数LIST访问邮件数量和每个邮件的大小RETR访问由参数标识
4、的邮件标记为删除,由 quit 命令执行RSET服务器将重置所有标记为删除的邮件,用于撤销 DELE 命令NOOP服务器访问一个肯定的响应QUIT更新2、 SMTP(简单的邮件传送协议) SMTP 协议是两个报文传输代理之间的通信协议。它规定了两个相互通信 MTA 之间如何交换信息。SMTP 协议的最大特点是简单,它规定了发送程序和接收程序之间的命令和应答格式。命令描述HELLO发送一个 SMTP 的 HELLO 命令,开始会话。MAIL FROM:此命令开始一个邮件传输处理。RCPT TO:标识邮件接收者的地址。DATA接收 SMTP 将 DATA 命令后面的数据看作邮件内容处理,以,标识数
5、据的结尾REST退出/复位当前的邮件传输。NOOP要求接收 SMTP 仅做 OK 应答,(用于测试)QUIT要求接收 SMTP 返回一个 OK 应答并关闭传输HELP查询服务器支持什么命令注:为回车,换行 应答码描述应答码描述501参数格式错误251用户非本地,将转发向502命令不可实现450要求的邮件操作未完成,邮箱不可用503错误的命令序列550要求的邮件操作未完成,邮箱不可用504命令参数不可实现451放弃要求的操作:处理过程中出错211系统状态或系统帮助响应551用户非本地,请尝试214帮助信息452系统存储不足,要求的操作未执行220服务就绪552过量的存储分配,要求的操作未执行22
6、1服务关闭553邮箱名不可用,要求的操作未执行421服务未就绪354开始邮件输入,以.结束250要求的邮件操作完成554操作失败六 实验步骤步骤一:分析 foxmail 收发电子邮件数据包 1、 打开邮件工具 : foxmail ,按照已经申请的邮箱信息进行配置,例如邮箱为* ,密码为:Test2008,同样选择服务器为pop3服务器:,SMTP服务器:。2、 在主机上打开协议分析仪,点击工具栏上的“过滤器”,“类型过滤器”的下拉列表中选择“SMTP 协议”,如图所示。3、 在 Foxmail中创建一封邮件,发送出去。4、 进行数据捕获,并分析数据包内容,可以看到 SMTP 的命令和参数:图中
7、可以看到 MAIL FROM 命令,并可看到邮箱地址 *;而在图中,则可以看到这是一个携带邮件内容的 DATA 报文。5、 分析其中发送邮件的过程传输层采用什么协议?发送端的目的端口号是多少?代表什么协议?6、 在主机上打开协议分析仪,点击工具栏上的 “过滤器”,在“端口过滤器”的“端口值”中选择“发送/接收”的端口为 110,如图所示。7、 在 Foxmail 中创建一封邮件,发送出去,再使用 Foxmail 工具进行接收;8、 进行数据捕获,并分析数据包内容,可以看到 POP3 协议的命令和参数,如图所示,就是 POP3 协议使用 USER 命令和 PASS 命令在传输邮件的帐号和密码。9
8、、 分析其中接收邮件的过程传输层采用什么协议?使用的端口号是多少,代表什么协议?步骤二:利用“TCP 工具”收发邮件 本步骤的目的是学习 SMTP 协议的命令用法,以及一个邮件发送的过程。 1、 首先要与某个邮件服务器建立一个 TCP 连接,例如:使用步骤一中的 的邮件服务器,可从刚才捕获到的报文中看到其 IP 地址为:202.208.5.81,用户名:2008.test.star,密码为:Test2008,邮件服务器域名:。 1) 首先打开协议分析仪,准备好进行数据包的捕获,然后打开协议分析仪,点击工具栏中的“TCP”按钮; 2) 在弹出的“TCP 连接工具”中填写邮件服务器的 IP 地址(
9、202.208.5.81)及邮件服务器 SMT协议的端口号(25),点击启动,从而建立本机与邮件服务器 SMTP 端口的 TCP 连接,如图 所示。 3) 从协议分析器一端可以捕获到三次握手的过程,如图所示。4) 若连接成功,在接收窗口会显示成功连接的信息: 220 Anti-spa m GT for Coremail System (163com071018) 若不成功,查看 IP 地址和端口号是否有错,再次尝试进行连接,直到成功。2、 用 SMTP 命令编辑发送邮件,捕获数据包并进行分析: 1) 在发送的编辑栏里面编辑发送 SMTP 协议的命令 HELO,参数为发送方的主机名,例如HELO
10、 STAR,如图所示;2) 发送命令 AUTH LOGIN,此命令的含义是要求进行身份认证;3) 邮件服务器返回“334 dXNlcm5hbWU6”,要求主机发送用户名,“dXNlcm5hbWU6”是“username:”的 BASE64 编码; 4) 发送“MjAwOC50ZXN0LnN0YXI=”,这是“2008.test.star”的 BASE64 编码(可以使用 BASE64转换工具将字符转换为 BASE64 编码); 5) 邮 件服 务器 返回“ 334 UGFzc3dvcmQ6”,要 求主 机发 送密 码,“UGFzc3dvcmQ6” 是“Password:”的 BASE64 编码
11、;6) 发送“VGVzdDIwMDg=”,这是“Test2008”的 BASE64 编码;7) 邮件服务器返回“235 Authenti cation successful”,表示身份认证通过;8) 发送“MAIL FROM *”,说明邮件接收方是 * ,邮件服务器返回“250 Mail OK”; 9) 发送“RCPT TO *”,说明邮件发送方是 * (这是一封自己发送给自己的邮件),邮件服务器返回“250 Mail OK”;10) 发送命令“DATA”,说明下面将开始发送的是邮件正文的内容;11) 服务器返回“354 End data with . ”,说明服务器准备接收邮件正文,并要求正
12、文内容以单独的一个“.”结束;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 等格式要求的邮件正文。
13、3、 首先用 Foxmail 工具构造一个邮件发送出去,如图所示,然后关闭 Foxmail工具;4、 建立与 POP3 服务器的 TCP 连接,继续使用 的 POP3 服务器,可从刚才捕获到的报文中看到其 IP 地址为:202.208.5.100,用户名:2008.test.star,密码为:Test2008,邮件服务器域名:1) 首先打开协议分析仪,准备好进行数据包的捕获,然后点击工具栏中的“TCP”按钮; 2) 在弹出的“TCP 连接工具”中填写服务器的 IP 地址(202.208.5.100)及服务器 POP3 协议的端口号(110),点击“启动”,从而建立本机与 POP3 服务器的 T
14、CP 连接,如图所示3) 若连接成功,在接收窗口会显示成功连接的信息(+OK Welcome to coremail Mail Pop3 Server (163coms3d8c1fa079729fb6acc588e66d30360es);若不成功,再次尝试进行连接,直到成功。5、 用 POP3 命令接收邮件,捕获数据包并进行分析:1) 在 发送的 编辑栏 里面编 辑发送 POP 3协议的命令USER, 参数 为邮箱 帐号: USER2008.test.star ; 2) 发送命令 PASS,参数为邮箱密码:PASS Test2008 ; 3) 此时可以看到服务器对油箱帐号的验证已经通过,返回了
15、邮箱内的邮件数量和占用字节数:1 封邮件,大小是 2038 字节,可以用 STAT 命令和 LIST 命令(无参数)再次查看邮箱内邮件的情况; 4) 使用 RETR 命令收邮件,携带参数“1”,表示读取第一封邮件的内容;5) 服务器返回邮件的内容,从中可以看到:From: 2008.test.star *; To: Subject: test 邮件正文内容使用 BASE64 编码,所以无法在 TCP 工具中看明内容;6) 可以使用 DELE 命令删除邮件,携带参数1表示删除第一封邮件;7) 使用命令 QUIT 可以结束会话,断开连接。步骤三:编辑一个 SMTP 报文 1、 在主机上打开协议数据
16、发生器,在工具栏上选择“添加”,会弹出“协议模板”对话框,选择“SMTP 协议模版”,建立一个 SMTP 数据报文,如图所示。2、 填写其中以太网帧头、IP 首部、TCP 首部和 SMTP 报文的内容:填写以太网协议首部信息: 目的物理地址:在地址本中选择实验室网关的 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 协议的类型值)。 填写 I
17、P 协议头信息: 总长度字段:包括 TCP 段内容的总长度,20 IP+20 TCP+34 SMTP = 74;高层协议字段:即上层协议类型为 6(TCP 协议的类型为 6);发送IP地址:在地址本中选择实验主机的IP地址,确认后自动填入主机的IP地址;目标 IP 地址:手工填写邮件服务器的 IP 地址:202.108.5.81;点击工具栏中的校验和按钮计算 IP 头校验和。填写 TCP 协议的各个字段信息:16 位源端口号:任意大于 1024 的数; 16 位目的端口号:25; 32 位序号:选择一个序号(例如:19425898); 32 位确认序号:设置为 0; 首部长度:首部长度设为 5
18、,即长度为 20 字节; 标志位:标志位设为 2,即标志位 SYN=1; 窗口大小:任意,例如填入 32768; 紧急指针:0; 校验和:点击工具栏中的“校验和”按钮计算 TCP 校验和(覆盖 TCP 首部(包含伪首部)和 TCP 数据两部分,计算方法同 UDP 协议一样)。填写 SMTP 协议报文的内容:可填入 SMTP 的常用命令及参数,例如:MAIL FROM 。最终的编辑结果如图所示。 3、 点击工具栏上的“发送”按钮,将编辑好的 SMTP 数据报文发送,可设置循环发送。 4、 在实验主机上运行网络协议分析仪,捕获数据,捕获结果如图 5.4-19 所示,其中可以清晰地看到,这个 TCP
19、 报文的标志位是 SYN,里面携带的是 SMTP 报文,具体的 SMTP 命令及参数是 MAIL FROM *。步骤四:编辑一个 POP3 报文1、 在主机上打开协议数据发生器,在工具栏上选择“添加”,会弹出“协议模板”对话框,选择“POP3 协议模版”,建立一个 POP3 数据报文,如图所示。 2、 填写其中以太网帧头、IP 首部、TCP 首部和 POP3 报文的内容: 填写以太网协议首部信息: 目的物理地址:在地址本中选择实验室网关的 IP 地址(例如:192.168.1.1),确认后自动填入网关的 MAC 地址:00-D0-F8-B5-24-8F;源物理地址:在地址本中选择实验主机(例如
20、:192.168.1.2),确认后自动填入实验主机的MAC 地址:02-00-4C-4F-4F-50;类型或长度:该字段应为 0800(即 IP 协议的类型值)。填写 IP 协议头信息: 总长度字段:包括 TCP 段内容的总长度,20 IP+20 TCP+19 POP3 = 59; 高层协议字段:即上层协议类型为 6(TCP 协议的类型为 6); 发送 IP 地址:在地址本中选择实验主机的 IP 地址,确认后自动填入主机的IP地址; 目标 IP 地址:手工填写 POP3 服务器的 IP 地址:202.108.5.100; 点击工具栏中的校验和按钮计算 IP 头校验和。填写 TCP 协议的各个字
21、段信息: 16 位源端口号:任意大于 1024 的数; 16 位目的端口号:25; 32 位序号:选择一个序号(例如:19425898); 32 位确认序号:设置为 0; 首部长度:首部长度设为 5,即长度为 20 字节; 标志位:标志位设为 2,即标志位 SYN=1; 窗口大小:任意,例如填入 32768; 紧急指针:0; 校验和:点击工具栏中的“校验和”按钮计算 TCP 校验和(覆盖 TCP 首部(包含伪首部)和 TCP 数据两部分,计算方法同 UDP 协议一样)。填写 POP3 协议报文的内容: 可填入 POP3 的常用命令及参数,例如:USER 2008.test.star。最终的编辑结果如图所示。3、 点击工具栏上的“发送”按钮,将编辑好的 POP3 数据报文发送,可设置循环发送。 4、 在实验主机上运行网络协议分析仪,捕获数据,捕获结果如图 所示,其中可以清晰地看到,这个 TCP 报文的标志位是 SYN,里面携带的 POP3 报文,具体的 POP3 命令及参数是USER 2008.test.star。七 思考问题1、 说明为什么要借助 TCP 连接工具才能用网络协议编辑软件编辑 SMTP 协议的命令? 2、 通过实验说明你的电子邮件在网络上传输是安全的吗?为什么?如果不安全,你认为实现邮件安全传输的最好的办法是什么?
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1