ftp主动式连接和被动式连接的却别以及防火墙的设置

简介:

主动式连接:port连接方式即客户端通过ftp的端口(21)和ftp服务器建立连接,形成一条链路,当需要有数据传输的时候,客户端在链路上会用port打开某个端口,并告诉ftp服务器自己打开的端口号,然后ftp服务器就可用通过自己的20端口和客户端的那个端口号进行通讯,建立连接,进行数据传输,防火墙的设置也比较简单,只要控制21端口的连接就可以。

Port模式FTP 客户端首先和FTP服务器的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。 PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。 FTP server必须和客户端建立一个新的连接用来传送数据。


例如: iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 21 -j ACCEPT 就可以让客户端联机了





 

被动式连接:pasv连接方式即客户端通过ftp的端口号和ftp服务器建立连接,形成一条链路,当需要传输数据的时候,服务器会在链路上通过pasv命令打开一个端口,告诉客户端可以通过这个端口建立连接,传输文件,防火墙设置会多一个步骤

 

首先需要修改ftp的配置文件

 

vim /etc/vsftpd/vsftpd.conf

 

pasv_min_port=6000

 

pasv_max_port=6100

 

然后增加防火墙规则

 

iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport -j ACCEPT

 

iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 6000:6100 -j ACCEPT

 

所以,如果你是如果通过代理上网的话,就不能用主动模式,因为服务器敲的是上网代理服务器的门,而不是敲客户端的门
而且有时候,客户端也不是轻易就开门的,因为有防火墙阻挡,除非客户端开放大于1024的高端端口




FTP有两种使用模式:主动和被动。主动模式要求客户端和服务器端同时打开并且监听一个端口以建立连接。在这种情况下,客户端由于安装了防火墙会产生一些问题。所以,创立了被动模式。


被动模式只要求服务器端产生一个监听相应端口的进程,这样就可以绕过客户端安装了防火墙的问题。


一个主动模式的FTP连接建立要遵循以下步骤:

1.客户端打开一个随机的端口(端口号大于1024,在这里,我们称它为x),同时一个FTP进程连接至服务器的21号命令端口。此时,源端口为随机端口x,在客户端,远程端口为21,在服务器。

2.客户端开始监听端口(x+1),同时向服务器发送一个端口命令(通过服务器的21号命令端口),此命令告诉服务器客户端正在监听的端口号并且已准备好从此端口接收数据。这个端口就是我们所知的数据端口。

3.服务器打开20号源端口并且建立和客户端数据端口的连接。此时,源端口为20,远程数据端口为(x+1)。

4.客户端通过本地的数据端口建立一个和服务器20号端口的连接,然后向服务器发送一个应答,告诉服务器它已经建立好了一个连接。

被动模式FTP:

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

在被动方式FTP中,命令连接和数据连接都由客户端发起,这样就可以解决从服务器到客户端的数据端口的入方向连接被防火墙过滤掉的问题。

当开启一个 FTP连接时,客户端打开两个任意的非特权本地端口(N > 1024和N+1)。第一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连它的数据端口,而是提交 PASV命令。这样做的结果是服务器会开启一个任意的非特权端口(P > 1024),并发送PORT P命令给客户端。然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。

对于服务器端的防火墙来说,必须允许下面的通讯才能支持被动方式的FTP:

1. 从任何大于1024的端口到服务器的21端口 (客户端的初始化连接)

2.服务器的21端口到任何大于1024的端口 (服务器响应到客户端的控制端口的连接)

3. 从任何大于1024端口到服务器的大于1024端口 (客户端初始化数据连接到服务器指定的任意端口)

4.服务器的大于1024端口到远程的大于1024的端口(服务器发送ACK响应和数据到客户端的数据端口)










本文转自 chengxuyonghu 51CTO博客,原文链接:http://blog.51cto.com/6226001001/1653664,如需转载请自行联系原作者
目录
相关文章
|
1月前
|
SQL 分布式计算 DataWorks
DataWorks常见问题之dataworks连接FTP服务器失败如何解决
DataWorks是阿里云提供的一站式大数据开发与管理平台,支持数据集成、数据开发、数据治理等功能;在本汇总中,我们梳理了DataWorks产品在使用过程中经常遇到的问题及解答,以助用户在数据处理和分析工作中提高效率,降低难度。
|
8月前
|
Java 数据安全/隐私保护
Java——通过Java代码连接ftp服务器
Java——通过Java代码连接ftp服务器
|
6月前
|
监控 Ubuntu 安全
如何在 Ubuntu Linux 中设置和使用 FTP 服务器?
如何在 Ubuntu Linux 中设置和使用 FTP 服务器?
250 2
如何在 Ubuntu Linux 中设置和使用 FTP 服务器?
|
7月前
|
JavaScript 网络安全
|
7月前
|
安全 Linux 网络安全
百度搜索:蓝易云【服务器安全设置Centos7 防火墙firewall与iptables】
CentOS 7使用的默认防火墙是firewall,它是一种基于Netfilter的用户空间工具,用于管理Linux内核中的iptables规则。为了加强服务器的安全性,可以通过配置CentOS 7防火墙和iptables规则来保护服务器。
106 0
|
3月前
|
网络协议 Shell Linux
系统初始化shell,包括:挂载镜像、搭建yum、设置主机名及IP地址和主机名映射、配置动态IP、关闭防火墙和selinux
系统初始化shell,包括:挂载镜像、搭建yum、设置主机名及IP地址和主机名映射、配置动态IP、关闭防火墙和selinux
37 2
|
4月前
|
Linux 网络安全 Nacos
麒麟v10系统,服务连接nacos提示连接不上9848端口是什么问题呢?服务和nacos都在一台机器,防火墙也都关闭了,telnet9848是ok的,但服务启动时就连不上9848。
麒麟v10系统,服务连接nacos提示连接不上9848端口是什么问题呢?服务和nacos都在一台机器,防火墙也都关闭了,telnet9848是ok的,但服务启动时就连不上9848。
212 1
|
5月前
|
Linux 网络安全
防火墙iptable的设置总结
防火墙iptable的设置总结
35 0
|
7月前
|
监控 安全 网络安全
防火墙的设置主要是为了防范什么
防火墙的设置主要是为了防范什么
|
10月前
|
Linux 网络安全
centos下防火墙设置
centos下防火墙设置
222 0