首先,了解下ftp关于主动模式和被动模式的原理:如果是内网环境,主机之间一般是不会开启防火墙的,这样就无关主动和被动。但是在生产环境中,ftp服务器和客户端之间一般不止一个防火墙。
FTP协议是需要用到两个TCP连接,一个命令连接,用来在FTP客户端与服务器之间传递命令;另一个是数据链路,用来上传或下载数据。
FTP协议有两种工作模式,PORT模式和PASV模式,中文意思为主动模式和被动模式。
PORT(主动)方式的连接过程:客户端向服务器的FTP端口发送连接请求,服务器接收连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了XXX端口,你过来连接我”,于是服务器从20端口向客户端的XXX端口发送请求,建立一条数据链路来传送数据。
PASV(被动)方式的连接过程:客户端向服务器的FTP端口发送连接请求,服务器接收连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了xxx端口,你过来连接我”,于是客户端向服务器的XXX端口端口发送请求,建立一条数据链路来传送数据。
主动模式:客户端通过21端口请求服务器端,服务器向客户端敲门,客户端开门。
被动模式:客户端通过21端口请求服务器端,客户端向服务器敲门,服务器开门。
在生产环境中使用被动模式:
-
pasv_enable=YES
-
pasv_min_port=21000
-
pasv_max_port=21100
1、默认配置
(1)允许匿名用户和本地用户登录
-
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
-
anonymous_enable=YES
-
#
-
# Uncomment this to allow local users to log in.
-
local_enable=YES
2、一般开启被动模式配置文件修改参数如下:
anonymous_enable=NO # 禁止匿名用户访问
listen=YES # 开启监听
listen_port=2100 # 监听端口为2100
pasv_enable=YES # 开启被动模式
pasv_min_port=21000 # 最小被动端口
pasv_max_port=21100 # 最大被动端口
chroot_local_user=YES # 禁止用户离开主目录
#防火墙添加如下规则:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21000:21100 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2100 -j ACCEPT
一般来说,这样一台简易的ftp服务器就搭建完成了。
如下参数作为参考部分:
listen_port=5021
;命令通道端口,默认为21
listen_data_port=5020
;数据通道端口,默认为20
pasv_enable=YES
;允许被动模式
pasv_min_port=10000
;被动模式使用端口范围
pasv_max_port=10010
local_max_rate=200000
;用户宽带限制 200kps
chroot_local_user=YES
;禁用户离开主目录
listen_address=192.168.0.21
;让他监听ip:192.168.0.21
现在用户的磁盘配合使用quota来实现。
阅读(1742) | 评论(0) | 转发(0) |