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