今天心血来潮,研究了下ftp协议,在linux搭建了一个ftp服务器,主要是研究下ftp的主动和被动模式。
简单的说下ftp安装配置吧
ftp服务器:192.168.3.14 linux vsftpd
ftp客户端:windows 7
检查是否有安装ftp
没有安装直接运行yum install vsftpd -y
修改ftp配置文件
vim /etc/vsftpd/vsftpd.conf
chroot_local_user=YES——是否将所有用户限制在主目录,YES为启用
anonymous_enable=NO ——不允许匿名进行访问
chroot_list_enable=YES——是否启动限制用户的名单 YES为启用
chroot_list_file=/etc/vsftpd/chroot_list——是否限制在主目录下的用户名单
做了以上修改保存
在/etc/vsftpd目录下创建用户认证文件chroot_list并添加本地系统用户进行ftp认证
[root@jw vsftpd]# cat chroot_list ——添加本地操作系统用户进行认证一行一个帐号
ftpuser
ftptest
修改密码:passwd ftptest
密码为:niceman
重启服务并查看21端口是否侦听
使用lsof查看端口是否侦听
现在开始访问ftp;注意,访问前请关闭selinux或暂时关闭防火墙,具体深入的ftp服务器配置,请自行百度查看文档,不再赘述。
安装wireshark
yum install wireshark -y
抓包命令:tshark -ni eth0 -R "ftp"
可以发现ftp是明文传输的。
tshark -ni eth0 -R "tcp.dstport eq 21"——抓包控制端口
接下来说说FTP的两种模式
FTP的主动模式
主动FTP:
命令连接:客户端大于1023端口 ——>服务器 21端口
数据连接:客户端 大于1023端口 <——服务器 20端口
客户端使用大于1023的端口建立链接服务器侦听的FTP21命令端口,服务器使用FTP20的数据端口主动链接客户端开放一个大于1023的端口
被动FTP:
命令连接:客户端 大于1023端口 ——> 服务器 21端口
数据连接:客户端 大于1023端口 ——> 服务器 >1023端口
客户端仍然使用大于1023的端口链接服务器侦听的FTP21命令控制端口,服务器再开启大于1023的随机端口给客户端进行数据传输,被动模式服务器不再使用20数据端口进行传输。
注意:windows使用IE或者资源管理器打开输入地址ftp://ip访问,是否主动或被动模式取决于这里的配置,看截图;IE——Internet选项——高级
简单的说下ftp安装配置吧
ftp服务器:192.168.3.14 linux vsftpd
ftp客户端:windows 7
检查是否有安装ftp
![FTP服务器搭建下的主动模式和被动模式](http://i2.51cto.com/images/blog/201712/02/cbfd9a7eac51ef053ed59b264428e57b.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=&x-oss-process=image/resize,w_1400/format,webp)
没有安装直接运行yum install vsftpd -y
修改ftp配置文件
vim /etc/vsftpd/vsftpd.conf
chroot_local_user=YES——是否将所有用户限制在主目录,YES为启用
anonymous_enable=NO ——不允许匿名进行访问
chroot_list_enable=YES——是否启动限制用户的名单 YES为启用
chroot_list_file=/etc/vsftpd/chroot_list——是否限制在主目录下的用户名单
做了以上修改保存
在/etc/vsftpd目录下创建用户认证文件chroot_list并添加本地系统用户进行ftp认证
![FTP服务器搭建下的主动模式和被动模式](http://i2.51cto.com/images/blog/201712/02/24639943e969ab2dbd3d86f66c1f0b8a.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=&x-oss-process=image/resize,w_1400/format,webp)
[root@jw vsftpd]# cat chroot_list ——添加本地操作系统用户进行认证一行一个帐号
ftpuser
ftptest
修改密码:passwd ftptest
密码为:niceman
重启服务并查看21端口是否侦听
![FTP服务器搭建下的主动模式和被动模式](http://i2.51cto.com/images/blog/201712/02/a8a53ceada7477cd8a319e1eaf84f572.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=&x-oss-process=image/resize,w_1400/format,webp)
使用lsof查看端口是否侦听
![FTP服务器搭建下的主动模式和被动模式](http://i2.51cto.com/images/blog/201712/02/29dd351e00c6ccdd2643866e0f95243f.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=&x-oss-process=image/resize,w_1400/format,webp)
现在开始访问ftp;注意,访问前请关闭selinux或暂时关闭防火墙,具体深入的ftp服务器配置,请自行百度查看文档,不再赘述。
![FTP服务器搭建下的主动模式和被动模式](http://i2.51cto.com/images/blog/201712/02/3858ff4a113f19d3a8f62f3894ea7dba.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=&x-oss-process=image/resize,w_1400/format,webp)
![FTP服务器搭建下的主动模式和被动模式](http://i2.51cto.com/images/blog/201712/02/221605d0fa9658e610b7d632f26f1dad.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=&x-oss-process=image/resize,w_1400/format,webp)
安装wireshark
yum install wireshark -y
抓包命令:tshark -ni eth0 -R "ftp"
![FTP服务器搭建下的主动模式和被动模式](http://i2.51cto.com/images/blog/201712/02/1042c0e2a4abd99b47d99dfb29c97aab.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=&x-oss-process=image/resize,w_1400/format,webp)
可以发现ftp是明文传输的。
tshark -ni eth0 -R "tcp.dstport eq 21"——抓包控制端口
![FTP服务器搭建下的主动模式和被动模式](http://i2.51cto.com/images/blog/201712/02/398ee05cd859d6ed6724dfbf50731e20.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=&x-oss-process=image/resize,w_1400/format,webp)
接下来说说FTP的两种模式
FTP的主动模式
主动FTP:
![FTP服务器搭建下的主动模式和被动模式](http://i2.51cto.com/images/blog/201712/02/255d2cd34292e45b806f678d07cc2bf7.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=&x-oss-process=image/resize,w_1400/format,webp)
命令连接:客户端大于1023端口 ——>服务器 21端口
数据连接:客户端 大于1023端口 <——服务器 20端口
客户端使用大于1023的端口建立链接服务器侦听的FTP21命令端口,服务器使用FTP20的数据端口主动链接客户端开放一个大于1023的端口
被动FTP:
![FTP服务器搭建下的主动模式和被动模式](http://i2.51cto.com/images/blog/201712/02/8b51e14d35edd3b6450465e9d2876389.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=&x-oss-process=image/resize,w_1400/format,webp)
命令连接:客户端 大于1023端口 ——> 服务器 21端口
数据连接:客户端 大于1023端口 ——> 服务器 >1023端口
客户端仍然使用大于1023的端口链接服务器侦听的FTP21命令控制端口,服务器再开启大于1023的随机端口给客户端进行数据传输,被动模式服务器不再使用20数据端口进行传输。
注意:windows使用IE或者资源管理器打开输入地址ftp://ip访问,是否主动或被动模式取决于这里的配置,看截图;IE——Internet选项——高级
![FTP服务器搭建下的主动模式和被动模式](http://i2.51cto.com/images/blog/201712/02/33221957985017a410a13b63ca2dfa2b.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=&x-oss-process=image/resize,w_1400/format,webp)
本文转自 rm_rf_d 51CTO博客,原文链接:http://blog.51cto.com/12185273/2046753,如需转载请自行联系原作者