简单邮件传输协议SMTP分析2011春
简单邮件传输协议SMTP分析
【实验目的】
1、理解SMTP协议的基本原理;
2、理解SMTP协议的工作过程;
3、了解SMTP的基本命令格式;
4、了解应用层协议与传输层协议的关系。
【实验环境】
实验室收发邮件服务器为192。168。2。24并且能够支持SMTP和POP3协议,实验室主机安装有Outlook Express软件,学生可以进行账号的配置,并利用其进行收发邮件的的操作:
邮箱为nxx@netlab.ie ,(注意其中xx=01-40,每位同学取与自己的机器号相同的数字)密码为: 123,配置完成后可看到的邮件帐户属性(注意,帐户名一定要写完整:nxx@netlab.ie)
在Outlook中创建一封邮件,发送出去。
【实验内容】
1、学习邮件服务的工作原理;
2、理解SMTP协议;
3、学习SMTP协议的命令和使用方法;
【实验原理】
见理论教材P76-78
【实验步骤】, 注意以下步骤三为选做内容, 步骤一:利用Outlook发送电子邮件,捕获数据包并分析
1、打开邮件工具:Outlook Express,按照已经申请的邮箱信息进行配置,例如邮箱为2008.test.star@163.com (本实验为n01@netlab.ie),密码为:Test2008(本实验为123),配置完成后可看到的邮件帐户属性为:
图5- 1 在Outlook Express中设置邮箱帐户
2、在主机上打开协议分析仪,点击工具栏上的“过滤器”,“类型过滤器”的下拉列表中选择“SMTP协议”:
图5- 2 设置SMTP协议过滤器
3、在Outlook中创建一封邮件,发送出去。
4、进行数据捕获,并分析数据包内容,可以看到SMTP的命令和参数,图5- 3中可以看到MAIL FROM命令,并可看到邮箱地址 2008.test.star@163.com :
图5- 3 SMTP协议的MAIL FROM命令报文
而在图5- 4中,则可以看到这是一个携带邮件内容的DATA报文:
图5- 4 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- 5所示:
图5- 5 利用TCP工具与邮件服务器建立连接
从协议分析器一端可以捕获到三次握手的过程:
图5- 6 与邮件服务器建立TCP连接的过程
(3、)若连接成功,在接收窗口会显示成功连接的信息:
220 163.com Anti-spam GT for Coremail System (163com[071018])
若不成功,查看IP地址和端口号是否有错,再次尝试进行连接,直到成功。
2、用SMTP命令编辑发送邮件,捕获数据包并进行分析:
(1)、在发送的编辑栏里面编辑发送SMTP协议的命令HELO,参数为发送方的主机
名,例如:HELO STAR:
图5- 7 在TCP工具中编辑发送SMTP命令报文
(2)、发送命令AUTH LOGIN,此命令的含义是要求进行身份认证;
(3)、邮件服务器返回“334 dXNlcm5hbWU6”,要求主机发送用户名,“dXNlcm5hbWU6”是“username:”的BASE64编码;
(4)、发送“MjAwOC50ZXN0LnN0YXI=”,这是“2008.test.star”的BASE64编码(可以使用BASE64转换工具将字符转换为BASE64编码);
(5)、邮件服务器返回“334 UGFzc3dvcmQ6”,要求主机发送密码,“UGFzc3dvcmQ6”是“Password:”的BASE64编码;
(6)、发送“VGVzdDIwMDg=”,这是“Test2008”的BASE64编码;
(7)、邮件服务器返回“235 Authentication successful”,表示身份认证通过;
(8)、发送“MAIL FROM <2008.test.star@163.com>”,说明邮件接收方是2008.test.star@163.com ,邮件服务器返回“250 Mail OK”;
(,)、发送“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
------------------------------------------------------------------------------- 发送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
连接结束
【思考问题】
1、在SMTP协议的传输报文中,是否有携带帐号、密码的报文,
2、通过实验说明你的电子邮件在网络上传输是安全的吗,为什么,如果不安全,你认
为实现邮件安全传输的最好的办法是什么,(查资料选做)