================================记录Start==========================
总是记不住FTP主动和被动模式的区别。放在这里,以备日后查阅。
FTP两种工作模式:主动模式(Active FTP)和被动模式
(一)主动FTP
主动方式的FTP是这样的:客户端从一个任意的非特权端口N(N>1024)连接到FTP服务器的命令端口,也就是21端口。然后客户端开始监听端口N+1,并发送FTP命令“port N+1”到FTP服务器。接着服务器会从它自己的数据端口(20)连接到客户端指定的数据端口(N+1)。
2. FTP服务器的21端口到大于1024的端口。 (服务器响应客户端的控制端口)
3. FTP服务器的20端口到大于1024的端口。(服务器端初始化数据连接到客户端的数据端口)
为了解决服务器发起到客户的连接的问题,人们开发了一种不同的FTP连接方式。这就是所谓的被动方式,或者叫做PASV,当客户端通知服务器它处于被动模式时才启用。
对于服务器端的防火墙来说,必须允许下面的通讯才能支持被动方式的FTP:
2. 服务器的21端口到任何大于1024的端口(服务器响应到客户端的控制端口的连接)
3. 从任何大于1024端口到服务器的大于1024端口(客户端初始化数据连接到服务器指定的任意端口)
命令连接:客户端 >1024端口 -> 服务器 21端口
数据连接:客户端 >1024端口 <- 服务器 20端口
2、被动FTP:
命令连接:客户端 >1024端口 -> 服务器 21端口
数据连接:客户端 >1024端口 -> 服务器 >1024端口
===============================邪恶分割线=========================
为了使大家更明白更明白,这里引用另一篇博文,原文地址:/s/blog_5cdb72780100jwm9.html
(在中指定被动端口范围为4000-4500,下载东西时的截图,下面这张是没有指定端口范围的)
win
一、什么是PASV和PORT方式
(1)PORT其实是Standard模式的另一个名字,又称为Active模式。中文意思是“主动模式。
(2)PASV也就是Passive的简写。中文就是“被动模式。
二、两者不同
不同之处是由于PORT(主动)这个方式需要在接上TCP 21端口后,服务器通过自己的TCP 20来发出数据。并且需要建立一个新的连接来传送档案。而PORT的命令包含一些客户端没用的资料,所以有了PASv的出现。而PASV模式拥有PORT模式的优点,并去掉一些PORT的缺点。PASV运行方式就是当服务器接收到客户端连接请求时,就会自动从端口1024到5000中随机选择一个和客户端建立连接传递数据。由于被动且自动建立连接,容易受到攻击,所以安全性差。
三、常见的FTP客户端软件PORT方式与PASV方式的切换方法
大部分FTP客户端默认使用PASV方式。IE默认使用PORT方式。在大部分FTP客户端的设置里,常见到的字眼都是“PASV”或“被动模式”,极少见到“PORT”或“主动模式”等字眼。因为FTP的登录方式只有两种:PORT和PASV,取消PASV方式,就意味着使用PORT方式。
(1)IE:工具 -> Internet选项 -> 高级 -> “使用被动FTP”(需要IE6.0以上才支持)。
(2)CuteFTP:Edit -> Setting -> Connection -> Firewall -> “PASV Mode” 或File -> Site Manager,在左边选中站点 -> Edit -> “Use PASV mode” 。
(3)FlashGet:工具 -> 选项 -> 代理服务器 -> 直接连接 -> 编辑 -> “PASV模式”。
(4)FlashFXP:选项 -> 参数选择 -> 代理/防火墙/标识 -> “使用被动模式” 或站点管理 -> 对应站点 -> 选项 -> “使用被动模式”或快速连接 -> 切换 -> “使用被动模式”。
vsftpd被动模式配置
二、网络结构
xp(Client)-----[eth0]linux(Firewall)[eth1] --------linux(ftpserve
ip:172.16.0.0/24
三、ftp配置:
# vi /etc/vsftpd/
pasv_enable=YES
pasv_min_port=3000
pasv_max_port=4000
四、防火墙配置
#!/bin/bash
#
echo "1" >/proc/sys/net/ipv4/ip_forward
modprobe
modprobe
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
iptables -t nat -X
iptables -t nat -Z
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD
iptables -t filter -A FORWARD -p tcp -s 172.16.0.0/16 -d 192.168.0.10 --dport 21 -j ACCEPT
iptables -t filter -A FORWARD -p tcp -s 192.168.0.10 --sport 21 -j ACCEPT
iptables -t filter -A FORWARD -p tcp -s 172.16.0.0/16 -d 192.168.0.10 --dport 3000:4000 -j ACCEPT
iptables -t filter -A FORWARD -p tcp -s 192.168.0.10 --sport 3000:4000 -j ACCEPT
iptables -t filter -A FORWARD -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t filter -A FORWARD -p icmp --icmp-type 8 -j ACCEPT
iptables -t filter -A FORWARD -p icmp --icmp-type 0 -j ACCEPT
五、验证:
# 在xp下用ftp命令连接,都是采用主动模式连接,可以采用图形界面的软件,默认一般为被动模式。
# netstat -an|grep
================================记录End==========================