配置FTP服务器——passive mode
2016-05-01 14:42
585 查看
配置FTP服务器的一个问题
1. 环境
服务器:debian6.0 vsftpd,客户端:Ubuntu10.04,系统自带的ftp客户端
2. 问题
在客户端登录时,输入ls,提示“500 Illegal port command ftp: bind: Address already in use”报错3. 解决方法
修改服务器配置vim /etc/vsftpd.conf
pasv_enable=YES pasv_max_port=10010 pasv_min_port=10090
还需要给防火墙设置一个INPUT fileter,让它允许接收从pasv_min_port到pasv_max_port的包:
sudo iptables -t filter -A INPUT -p tcp --dport 10090:10100 -j ACCEPT
2.客户端使用ftp的passive模式,ftp -p server_ip
4. 原因分析
a. ftp的基本原理ftp是完全基于TCP的,使用两个端口,数据端口和控制端口,一般21是控制端口,20是数据端口。如果是被动模式,数据端口就不是20了。
b. ftp的主动模式
连接建立过程:client从端口N(N>1023)向server的21端口发起连接请求,并发送命令PORT N+1给server, 同时开始监听 N + 1 端口。server收到PORT命令后,从端口20向client端口N + 1 发起连接请求。
step1: client发送PORT 1027;step2:server回复ACK;step3:server主动发起连接; step4: client回复ACK。
上述过程会在客户端这边出现问题,当server主动连接client的1027端口时,在client的防火墙看来,这是外界主动向自己发起连接,这通常会被拦截。
c. ftp的被动模式
为了解决server主动向client发起连接的问题,提出了被动模式。在被动模式中,控制连接和数据连接都是由ftp客户端发起的,因此客户端的防火墙就不会把数据连接拦截。
连接建立过程:
建立连接时,client从端口N连接server的端口21,把PASV命令发送给server,server收到PASV命令后,打开一个端口X,然后给client发送命令PORT X。然后client从端口N+1向sever的端口X发起连接请求。
在step1, client发PASV命令,在step2,server回复PORT 2024, step3, client主动发起连接, step4, server回复ACK。
5. 参考文献
Active FTP vs. Passive FTP, a Definitive Explanation相关文章推荐
- 详解vsftpd搭建ftp和ftps
- Vsftpd 虚拟用户实现公司各部门文件的上传下载
- vsftpd 虚拟用户配置步骤
- VSFTPD配置(匿名――本地用户――虚拟用户)
- 建立基于虚拟用户的VSftpd服务
- vsFTPd 服务器初学者指南
- Linux编译安装vsftpd服务器(本地用户验证方式)
- 用shell脚本防ssh和vsftpd暴力破解的详解讲解
- 阿里云服务器CentOS 6.3下快速安装部署 LAMP 、vsftpd 环境的方法
- Centos 通过 Nginx 和 vsftpd 构建图片服务器的教程(图文)
- ubuntu 匿名ftp服务
- FTP 两种模式的区分 与 Centos 5.5 Vsftpd Pasv模式设置
- CentOS 修改 vsftpd 默认端口21
- vsftpd简单安装
- VSFTPD手册
- VSFTPD相关术语解释
- VSFTPD锁定用户目录
- VSFTPD不能创建文件或者显示不出目录
- RedHat Linux5 上安装vsftpd
- 安全的FTP服务器 vsftpd介绍