centos vsftpd修改端口和主动被动模式

2022-05-23 09:56:17 浏览数 (1)

一、简介

  FTP支持两种模式,一种方式叫做Standard (也就是 PORT方式,主动方式),一种是 Passive (也就是PASV,被动方式)。

主动模式和被动模式的区别在于,主动模式下,ftp采用的是20端口传送数据,而被动模式下,ftp采用的是大于1024的随机端口。

1:FTP Port(主动)模式

客户端从一个任意的大于1023(N)的端口连接到FTP服务器的命令端口,也就是21端口。然后客户端开始监听端口N 1,并发送FTP命令“port N 1”到FTP服务器。接着服务器会从它自己的数据端口(20)连接到客户端指定的数据端口(N 1)。针对FTP服务器前面的防火墙来说,必须允许以下通讯才能支持主动方式FTP:任何端口到FTP服务器的21端口 (客户端初始化的连接到FTP服务器);FTP服务器的21端口到大于1023的端口(服务器响应客户端的控制端口);FTP服务器的20端口到大于1023的端口(服务器端初始化数据连接到客户端的数据端口);大于1023端口到FTP服务器的20端口(客户端发送ACK响应到服务器的数据端口)。

2:FTP PAVS(主动)模式

为了解决服务器发起到客户的连接的问题,人们开发了一种不同的FTP连接方式。这就是所谓的被动方式,或者叫做PASV,当客户端通知服务器它处于被动模式时才启用。

在被动方式FTP中,命令连接和数据连接都由客户端,这样就可以解决从服务器到客户端的数据端口的入方向连接被防火墙过滤掉的问题。当开启一个FTP连接时,客户端打开两个任意的本地端口(N >; 1024和N 1)。第一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连它的数据端口,而是提交PASV命令。这样做的结果是服务器会开启一个任意的非特权端口(端口号大于1024),并发送PORT P命令给客户端。然后客户端发起从本地端口N 1到服务器的端口P的连接用来传送数据。对于服务器端的防火墙来说,必须允许下面的通讯才能支持被动方式的FTP。从任何端口到服务器的21端口 (客户端初始化的连接);服务器的21端口到任何大于1023的端口 (服务器响应到客户端的控制端口的连接 );从任何端口到服务器的大于1023端口 (客户端初始化数据连接到服务器指定的任意端口);服务器的大于1023端口到远程的大于1023的端口(出;服务器发送ACK响应和数据到客户端的数据端口)。

被动方式的FTP解决了客户端的许多问题,但同时给服务器端带来了更多的问题。最大的问题是需要允许从任意远程终端到服务器高位端口的连接。幸运的是,许多FTP程序允许管理员指定FTP服务器使用的端口范围。

  因为大部分ftp客户端软件都是被动模式,所以就只介绍被动模式

  1、设置被动模式打开的配置文件

代码语言:javascript复制
#vim /etc/vsftpd/vsftpd.conf

添加或修改以下内容

代码语言:javascript复制
listen_port=10021    
pasv_min_port=          
pasv_max_port=               

  2、然后更改防火策略

代码语言:javascript复制
#vim /etc/sysconfig/iptables

添加以下防火规则

-A INPUT -m state --state NEW -m tcp -p tcp --dport 7721 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 5588:5599 -j ACCEPT

  3、最后重启服务使防火规则生效

代码语言:javascript复制
#service vsftpd restart
#service iptables restart

到这里我们的vsftp正式修改端口到10021

通过 ftp://IP:10021 来指定端口访问

0 人点赞