Linux下vsftp虚拟用户配置与主动模式被动模式(2)

大多数的TCP服务是使用单个的连接,一般是客户端向服务器的一个已知端口发起连接,然后使用这个连接进行通讯。但FTP协议却是例外,它使用双向的多个连接 ,而且使用的端口很难预计。

FTP协议连接和端口

一个控制连接(control connection):用于传递客户端和服务器端之间的命令响应。使用TCP 21端口,生存期是整个FTP会话时间。

N个数据连接(data connection):用于传输数据,这种连接是在数据传输时建立的,一旦数据传输完毕就关闭,每次使用的端口也不一定相同。而且,这种数据 连接既可能是客户端发起的,也可能是服务器端发起的。

FTP协议使用一个标准的端口20作为ftp-data端口,但是这个端口只用于连接的源地址是服务器端的情况,在这个端口上根本就没有监听进程。

主动与被动模式

FTP的数据连接和控制连接一般是相反方向,即服务器向客户端发起一个用于数据传输的连接。连接的端口是由服务器端和客户端协商确定的,这就是vsftpd的主动模式(port  mod)。FTP协议的这个特征对iptables防火墙和NAT的配置增加了很多困难。在FTP被动模式(passive mod)下,数据连接是由客户程序发起的,和主动模式相反。

选择模式的原则

客户端没有防火墙时,用主动模式连接即可。

服务器端没有防火墙时,用被动模式即可。

双方都有防火墙时,vsftpd设置被动端口范围,服务器端防火墙打开被动端口范围,客户端用被动模式连接即可。

是否采取被动模式取决于客户程序:

在ftp命令行中使用passive命令就可以关闭/打开被动模式。

在Windows命令行模式下使用ftp命令连接服务器,用的是主动模式。

在浏览器方式下连接ftp服务器,可以修改访问使用模式:

ftp

用FileZilla Client软件连接服务器,在“编辑”-“设置”-“连接”选项内设置使用模式:

ftp2

iptables中配置vsftp的方法 使用主动模式

配置iptables防火墙:

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -p tcp -m multiport --dport 20,21 -m state --state NEW -j ACCEPT 使用被动模式 方法1

加载模块ip_conntrack_ftp,优点:不影响ftp的配置,缺点:客户端会感觉到连接有些延迟。

在/etc/sysconfig/iptables-config中添加:IPTABLES_MODULES="ip_conntrack_ftp"

加载模块:/sbin/modprobe ip_conntrack_ftp

开机启动,在/etc/rc.local添加:/sbin/modprobe ip_conntrack_ftp

注意:如果需要修改FTP 21端口为2121:

在vsftpd.conf中增加:listen_port=2121

加载模块:/sbin/modprobe ip_conntrack_ftp ports=2121

最后需要在iptables开放21端口:

iptables -A INPUT -p tcp --dport 21 -j ACCEPT 方法2

在vsftpd配置文件中配置被动端口,优点:对连接速度没有影响。缺点:限制了客户端并发连接的数量。

在/etc/vsftpd/vsftpd.conf中添加:

pasv_enable=YES pasv_min_port=3000 pasv_max_port=3005

在iptables中开放这段端口:

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT iptables -A INPUT -p tcp --dport 3000:3005 -j ACCEPT 解除SELinux阻止

如果开启了SELinux,执行以下命令:

setsebool -P ftpd_disable_trans 1 service vsftpd restart

更多Vsftpd相关教程见以下内容

Linux CentOS 6.5 下搭建 vsftpd ftp服务器 

CentOS安装vsftpd-3.0.2及安全配置 

openSUSE 13.2/13.1 下安装配置 FTP服务器 vsftpd 

CentOS7基于虚拟用户的vsftpd 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/03868935040c61cad0d274466619a95f.html