`
Jony.Hwong
  • 浏览: 114976 次
  • 来自: ...
社区版块
存档分类
最新评论

论FTP的主动被动和相关的防火墙设置

阅读更多
FTP 分为两类:
  主动FTP(Port FTP),也就是一般的FTP﹔被动FTP(Port FTP)


主动方式的FTP是这样的:客户端从一个任意的非特权端口N(N>1024)连接到FTP服务器的命令端口,也就是21端口。然后客户端开始端口 N+1,并发送FTP命令“port N+1”到FTP服务器。接着服务器会从它自己的数据端口(20)连接到客户端指定的数据端口(N+1)。

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

1. 任何端口到FTP服务器的21端口 (客户端初始化的连接 S<-C)
2. FTP服务器的21端口到大于1024的端口(服务器响应客户端的控制端口 S->C)
3. FTP服务器的20端口到大于1024的端口(服务器端初始化数据连接到客户端的数据端口 S->C)
4. 大于1024端口到FTP服务器的20端口(客户端发送ACK响应到服务器的数据端口 S<-C)
主动方式FTP的主要问题实际上在于客户端。FTP的客户端并没有实际建立一个到服务器数据端口的连接,它只是简单的告诉服务器自己****的端口号,服务器再回来连接客户端这个指定的端口。对于客户端的防火墙来说,这是从外部系统建立到内部客户端的连接,这是通常会被阻塞的。

防火墙设置的例子
建置一个防火墙下的FTP server,使用主动FTP(Port FTP) mode:预设的FTP port:21 以及FTP data port:20
执行以下两行指令,只允许port 21 以及port 20 开放,其它关闭。
iptables -A INPUT -p tcp -m multiport --dport 21,20 -j ACCEPT
iptables -A INPUT -p tcp -j REJECT --reject-with tcp-reset

FTP软件本身的设置

以vsFTP为例子. 修改/etc/vsFTPd/vsFTPd.conf
新增底下两行
listen_port=21
ftp_data_port=20

设置错会出现的情况
FTP client(如cuteFTP)的联机方式不能够选择passive mode,否则无法建立数据的联机。也就是读者可以连上FTP server,但是执行ls、get 等等的指令时,便无法运作。

被动FTP

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

在被动方式FTP中,命令连接和数据连接都由客户端,这样就可以解决从服务器到客户端的数据端口的入方向连接被防火墙过滤掉的问题。当开启一个 FTP连接时,客户端打开两个任意的非特权本地端口(N > 1024和N+1)。第一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连它的数据端口,而是提交 PASV命令。这样做的结果是服务器会开启一个任意的非特权端口(P > 1024),并发送PORT P命令给客户端。然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。

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

1. 从任何端口到服务器的21端口 (客户端初始化的连接 S<-C)
2. 服务器的21端口到任何大于1024的端口 (服务器响应到客户端的控制端口的连接 S->C)
3. 从任何端口到服务器的大于1024端口 (入;客户端初始化数据连接到服务器指定的任意端口 S<-C)
4. 服务器的大于1024端口到远程的大于1024的端口(出;服务器发送ACK响应和数据到客户端的数据端口 S->C)

防火墙设置的例子
建置一个防火墙下的FTP server,使用被动FTP(Port FTP) mode:FTP port:21 以及FTP data port 从9981 到9986。
执行以下两行指令,只允许port 21 以及port 9981-9990 开放,其它关闭。
iptables -A INPUT -p tcp -m multiport --dport 21,9981,9982,9983,9984,9985,9986,9987,9988,9989,9990 -j ACCEPT
iptables -A INPUT -p tcp -j REJECT --reject-with tcp-reset

FTP软件本身的设置
以vsFTP为例子. 修改/etc/vsFTPd/vsFTPd.conf
新增底下四行
listen_port=21
pasv_enable=YES
pasv_min_port=9981
pasv_max_port=9986

设置错会出现的情况
这个例子中,FTP client(如cuteFTP)的联机方式必须选择passive mode,否则无法建立数据的联机。也就是读者可以连上FTP server,但是执行ls,get 等等的指令时,便无法运作。
分享到:
评论

相关推荐

    ftp中主动模式(port)与被动模式(PASV)

    处理防火墙和其他网络连接问题时最常见的一个难题是主动FTP与被动FTP的区别以及如何完美地支持它们。幸运地是,本文能够帮助你清除在防火墙环境中如何支持FTP这个问题上的一些混乱。

    主动FTP与被动FTP-权威解释

    处理防火墙和其他网络连接问题时最常见的一个难题是主动FTP与被动FTP的区别以及如何完美地支持它们。幸运地是,本文能够帮助你清除在防火墙环境中如何支持FTP这个问题上的一些混乱。

    使用防火墙FTP连接外网失败问题

    从网络搜索了不少资料,基本提到了主动和被动连接的问题,还有关于设置端口例外的问题,参照设置后,问题依旧。 后来,经过多方面层层搜索,终于找到了问题的解决方案: 1、控制面板 --- Windows防火墙 --- 例外 ---...

    FTP主动模式和被动模式区别详解

     FTP只通过TCP连接,没有用于FTP的UDP组件.FTP不同于其他服务的是它使用了两个端口, 一个数据端口和一个命令端口(或称为控制端口)。通常21端口是命令端口,20端口是数据端口。当混入主动/被动模式的概念时,数据端口...

    ftp通讯方式以及应用

    处理防火墙和其他网络连接问题时最常见的一个难题是主动FTP与被动FTP的区别,以及如何完美地支持它们。只有搞清楚主动FTP与被动FTP的通信过程,才能更好的把握防火墙的配置及FTP通信故障的排查。

    LINUX FTP设置方法

    ftp工作方式分为两种,一种port主动模式,一种pasv被动模式,是服务主动与被动进行连接。一般ftp服务器都为被动模式 。 20.1.1 vsftp概述 rpm -qc vsftpd /etc/logrotate.d/vsftpd.log /etc/pam.d/vsftpd /*...

    FTP程序上传工具

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

    MATLAB 中的被动模式 FTP:这些文件允许用户在 MATLAB 中使用被动模式 FTP。-matlab开发

    在防火墙后面工作的 FTP 客户端通常使用被动模式 FTP 连接到服务器,以避免防火墙出现问题。 MATLAB 的 ftp 对象没有被动模式功能。 附加文件修改此 MATLAB 类以允许此功能。 这些文件仅使用 MATLAB 使用的 ...

    FTP实验报告.docx

    原因:一般情况下都是采用主动模式,但很多防火墙在设置的时候都是不允许接受外部发起的连接的, 所以主动模式许多时候在内部网络的机器通过防火墙出去时受到了限制,因为从服务器的TCP 20无法和内部网络的客户端...

    浅谈防火墙对FTP的影响及故障排除分析

    更为复杂的是,FTP标准指定了创建数据连接的两种不同方法,即正常(主动)数据连接和被动数据连接。FTP的控制连接总是由客户端首先发起的,主动数据连接是由服务器端发起的,被动数据连接是由客户端发起的。 成功...

    服务器配置与管理论文.docx

    需要设置防火墙开放21端口,并且,还应该开启主动模式的20端口,以及被动模式使用的端口范围,防止数据的连接错误。 2.3账户登录失败。客户端登录FTP服务器时,还有可能会收到"登录失败"的错误提示。 服务器配置与...

    ftp安装笔记

    1 主动模式:20/tcp,服务端主动使用20端口连接客户端(因为连接客户端端口不确定有可能被客户端防火墙阻挡) 2 被动模式:端口随机,服务器在21端口收到客户端请求数据的请求, 自动下放随机端口通知客户端来连接,...

    FTPServer:C ++中的示例FTP服务器

    它支持主动和被动模式。 ##如何设置? ###您需要使用utf-8格式在同一目录中配置文件conf.dat。 要进行编译,您有一个makefile,请使用make。 检查防火墙是否阻止了2121端口! ##测试完成: ls处于活动模式。 ...

    python实现FTP服务器服务的方法

    FTP服务的主动模式和被动模式 在开始之前,先聊一下FTP的主动模式和被动模式,两者的区别 , 用两张图来表示可能会更加清晰一些: 主动模式: 主动模式工作过程: 1. 客户端以随机非特权端口N,就是大于1024的端口...

    Linux-FTP配置说明及安装源文件

    ftp工作方式分为两种,一种port主动模式,一种pasv被动模式,是服务主动与被动进行连接。一般ftp服务器都为被动模式 。 20.1.1 vsftp概述 rpm -qc vsftpd /etc/logrotate.d/vsftpd.log /etc/pam.d/vsftpd /*vsftp的...

    企业级Linux服务攻略

    6.1.3 主动与被动模式 6.1.4 FTP用户分类 6.2 安装FTP服务 6.2.1 vsftp所需软件 6.2.2 vsftp的安装 6.2.3 vsftp相关文档 6.3 常规服务器配置 6.3.1 主配置文件vsftpd.conf 6.3.2 实现匿名用户访问 6.3.3 实现实体...

    linux vsftpd搭建步骤 亲测可用

     2.3 FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。 一、PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。 当...

    Windows平台下的免费SFTP服务端freeSSHd.7z

    windows版的sftp服务端软件,几乎不怎么占用系统资源...一般ftp有主动和被动模式,对边界防火墙和NAT转换的配置比较麻烦。而SFTP只需要一个SSH的TCP 22端口开放就能解决一切问题。 该软件本身就是免费软件,源自官网。

    LINUX网站建设技术指南

    9.6.1 主动式和被动式收信 9.6.2 BBS送信工作原理 9.6.3 安装转信程序innbbsd 第10章 服务器的安全性概述 10.1 服务器安全管理 10.1.1 安全防护的主要内容 10.1.2 Linux系统的文件安全 10.1.3 用户访问安全 10.1.4...

Global site tag (gtag.js) - Google Analytics