今天心血来潮,研究了下ftp协议,在linux搭建了一个ftp服务器,主要是研究下ftp的主动和被动模式。
简单的说下ftp安装配置吧
ftp服务器:192.168.3.14 linux vsftpd
ftp客户端:windows 7
检查是否有安装ftp
![FTP服务器搭建下的主动模式和被动模式 FTP服务器搭建下的主动模式和被动模式](/default/index/img?u=aHR0cDovL2kyLjUxY3RvLmNvbS9pbWFnZXMvYmxvZy8yMDE3MTIvMDIvY2JmZDlhN2VhYzUxZWYwNTNlZDU5YjI2NDQyOGU1N2IucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2Uvd2F0ZXJtYXJrLHNpemVfMTYsdGV4dF9RRFV4UTFSUDVZMmE1YTZpLGNvbG9yX0ZGRkZGRix0XzEwMCxnX3NlLHhfMTAseV8xMCxzaGFkb3dfOTAsdHlwZV9abUZ1WjNwb1pXNW5hR1ZwZEdrPQ==)
没有安装直接运行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服务器搭建下的主动模式和被动模式 FTP服务器搭建下的主动模式和被动模式](/default/index/img?u=aHR0cDovL2kyLjUxY3RvLmNvbS9pbWFnZXMvYmxvZy8yMDE3MTIvMDIvMjQ2Mzk5NDNlOTY5YWIyZGJkM2Q4NmY2NmMxZjBiOGEucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2Uvd2F0ZXJtYXJrLHNpemVfMTYsdGV4dF9RRFV4UTFSUDVZMmE1YTZpLGNvbG9yX0ZGRkZGRix0XzEwMCxnX3NlLHhfMTAseV8xMCxzaGFkb3dfOTAsdHlwZV9abUZ1WjNwb1pXNW5hR1ZwZEdrPQ==)
[root@jw vsftpd]# cat chroot_list ——添加本地操作系统用户进行认证一行一个帐号
ftpuser
ftptest
修改密码:passwd ftptest
密码为:niceman
重启服务并查看21端口是否侦听
![FTP服务器搭建下的主动模式和被动模式 FTP服务器搭建下的主动模式和被动模式](/default/index/img?u=aHR0cDovL2kyLjUxY3RvLmNvbS9pbWFnZXMvYmxvZy8yMDE3MTIvMDIvYThhNTNjZWFkYTc0NzdjZDhhMzE5ZTFlYWY4NGY1NzIucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2Uvd2F0ZXJtYXJrLHNpemVfMTYsdGV4dF9RRFV4UTFSUDVZMmE1YTZpLGNvbG9yX0ZGRkZGRix0XzEwMCxnX3NlLHhfMTAseV8xMCxzaGFkb3dfOTAsdHlwZV9abUZ1WjNwb1pXNW5hR1ZwZEdrPQ==)
使用lsof查看端口是否侦听
![FTP服务器搭建下的主动模式和被动模式 FTP服务器搭建下的主动模式和被动模式](/default/index/img?u=aHR0cDovL2kyLjUxY3RvLmNvbS9pbWFnZXMvYmxvZy8yMDE3MTIvMDIvMjlkZDM1MWUwMGM2Y2NkZDI2NDM4NjZlMGY5NTI0M2YucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2Uvd2F0ZXJtYXJrLHNpemVfMTYsdGV4dF9RRFV4UTFSUDVZMmE1YTZpLGNvbG9yX0ZGRkZGRix0XzEwMCxnX3NlLHhfMTAseV8xMCxzaGFkb3dfOTAsdHlwZV9abUZ1WjNwb1pXNW5hR1ZwZEdrPQ==)
现在开始访问ftp;注意,访问前请关闭selinux或暂时关闭防火墙,具体深入的ftp服务器配置,请自行百度查看文档,不再赘述。
![FTP服务器搭建下的主动模式和被动模式 FTP服务器搭建下的主动模式和被动模式](/default/index/img?u=aHR0cDovL2kyLjUxY3RvLmNvbS9pbWFnZXMvYmxvZy8yMDE3MTIvMDIvMzg1OGZmNGExMTNmMTlkM2E4ZjYyZjM4OTRlYTdkYmEucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2Uvd2F0ZXJtYXJrLHNpemVfMTYsdGV4dF9RRFV4UTFSUDVZMmE1YTZpLGNvbG9yX0ZGRkZGRix0XzEwMCxnX3NlLHhfMTAseV8xMCxzaGFkb3dfOTAsdHlwZV9abUZ1WjNwb1pXNW5hR1ZwZEdrPQ==)
![FTP服务器搭建下的主动模式和被动模式 FTP服务器搭建下的主动模式和被动模式](/default/index/img?u=aHR0cDovL2kyLjUxY3RvLmNvbS9pbWFnZXMvYmxvZy8yMDE3MTIvMDIvMjIxNjA1ZDBmYTk2NThlNjEwYjdkNjMyZjI2ZjFkYWQucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2Uvd2F0ZXJtYXJrLHNpemVfMTYsdGV4dF9RRFV4UTFSUDVZMmE1YTZpLGNvbG9yX0ZGRkZGRix0XzEwMCxnX3NlLHhfMTAseV8xMCxzaGFkb3dfOTAsdHlwZV9abUZ1WjNwb1pXNW5hR1ZwZEdrPQ==)
安装wireshark
yum install wireshark -y
抓包命令:tshark -ni eth0 -R "ftp"
![FTP服务器搭建下的主动模式和被动模式 FTP服务器搭建下的主动模式和被动模式](/default/index/img?u=aHR0cDovL2kyLjUxY3RvLmNvbS9pbWFnZXMvYmxvZy8yMDE3MTIvMDIvMTA0MmMwZTJhNGFiZDk5YjQ3ZDk5ZGZiMjljOTdhYWIucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2Uvd2F0ZXJtYXJrLHNpemVfMTYsdGV4dF9RRFV4UTFSUDVZMmE1YTZpLGNvbG9yX0ZGRkZGRix0XzEwMCxnX3NlLHhfMTAseV8xMCxzaGFkb3dfOTAsdHlwZV9abUZ1WjNwb1pXNW5hR1ZwZEdrPQ==)
可以发现ftp是明文传输的。
tshark -ni eth0 -R "tcp.dstport eq 21"——抓包控制端口
![FTP服务器搭建下的主动模式和被动模式 FTP服务器搭建下的主动模式和被动模式](/default/index/img?u=aHR0cDovL2kyLjUxY3RvLmNvbS9pbWFnZXMvYmxvZy8yMDE3MTIvMDIvMzk4ZWUwNWNkODU5ZDZlZDY3MjRkZmJmNTA3MzFlMjAucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2Uvd2F0ZXJtYXJrLHNpemVfMTYsdGV4dF9RRFV4UTFSUDVZMmE1YTZpLGNvbG9yX0ZGRkZGRix0XzEwMCxnX3NlLHhfMTAseV8xMCxzaGFkb3dfOTAsdHlwZV9abUZ1WjNwb1pXNW5hR1ZwZEdrPQ==)
接下来说说FTP的两种模式
FTP的主动模式
主动FTP:
![FTP服务器搭建下的主动模式和被动模式 FTP服务器搭建下的主动模式和被动模式](/default/index/img?u=aHR0cDovL2kyLjUxY3RvLmNvbS9pbWFnZXMvYmxvZy8yMDE3MTIvMDIvMjU1ZDJjZDM0MjkyZTQ1YjgwNmY2NzhkMDdjYzJiZjcucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2Uvd2F0ZXJtYXJrLHNpemVfMTYsdGV4dF9RRFV4UTFSUDVZMmE1YTZpLGNvbG9yX0ZGRkZGRix0XzEwMCxnX3NlLHhfMTAseV8xMCxzaGFkb3dfOTAsdHlwZV9abUZ1WjNwb1pXNW5hR1ZwZEdrPQ==)
命令连接:客户端大于1023端口 ——>服务器 21端口
数据连接:客户端 大于1023端口 <——服务器 20端口
客户端使用大于1023的端口建立链接服务器侦听的FTP21命令端口,服务器使用FTP20的数据端口主动链接客户端开放一个大于1023的端口
被动FTP:
![FTP服务器搭建下的主动模式和被动模式 FTP服务器搭建下的主动模式和被动模式](/default/index/img?u=aHR0cDovL2kyLjUxY3RvLmNvbS9pbWFnZXMvYmxvZy8yMDE3MTIvMDIvOGI1MWUxNGQzNWVkZDNiNjQ1MDQ2NWU5ZDI4NzYzODkucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2Uvd2F0ZXJtYXJrLHNpemVfMTYsdGV4dF9RRFV4UTFSUDVZMmE1YTZpLGNvbG9yX0ZGRkZGRix0XzEwMCxnX3NlLHhfMTAseV8xMCxzaGFkb3dfOTAsdHlwZV9abUZ1WjNwb1pXNW5hR1ZwZEdrPQ==)
命令连接:客户端 大于1023端口 ——> 服务器 21端口
数据连接:客户端 大于1023端口 ——> 服务器 >1023端口
客户端仍然使用大于1023的端口链接服务器侦听的FTP21命令控制端口,服务器再开启大于1023的随机端口给客户端进行数据传输,被动模式服务器不再使用20数据端口进行传输。
注意:windows使用IE或者资源管理器打开输入地址ftp://ip访问,是否主动或被动模式取决于这里的配置,看截图;IE——Internet选项——高级
![FTP服务器搭建下的主动模式和被动模式 FTP服务器搭建下的主动模式和被动模式](/default/index/img?u=aHR0cDovL2kyLjUxY3RvLmNvbS9pbWFnZXMvYmxvZy8yMDE3MTIvMDIvMzMyMjE5NTc5ODUwMTdhNDEwYTEzYjYzY2EyZGZhMmIucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2Uvd2F0ZXJtYXJrLHNpemVfMTYsdGV4dF9RRFV4UTFSUDVZMmE1YTZpLGNvbG9yX0ZGRkZGRix0XzEwMCxnX3NlLHhfMTAseV8xMCxzaGFkb3dfOTAsdHlwZV9abUZ1WjNwb1pXNW5hR1ZwZEdrPQ==)
简单的说下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选项——高级
本文转自 rm_rf_d 51CTO博客,原文链接:http://blog.51cto.com/12185273/2046753,如需转载请自行联系原作者