Eason

咸鱼咯

proftp pasv模式固定端口设定

很多时候,公网服务器的防火墙策略只允许相当少的一部分端口对外开放,这种环境通常会对采用pasv模式的ftp服务无法正常登陆,报错信息大致如下:

[20:03:27] Winsock 2.2 -- OpenSSL 1.0.1e 11 Feb 2013
[20:03:33] [R] 正在连接到 cyszys.com -> DNS=cyszys.com IP=54.214.176.199 PORT=21
[20:03:33] [R] 已连接到 xxxxx.com
[20:03:33] [R] 220 ProFTPD 1.3.4c Server (ProFTPD) [::ffff:10.252.50.207]
[20:03:33] [R] USER daemon
[20:03:33] [R] 331 Password required for daemon
[20:03:33] [R] PASS (hidden)
[20:03:34] [R] 230 User daemon logged in
[20:03:34] [R] SYST
[20:03:34] [R] 215 UNIX Type: L8
[20:03:34] [R] FEAT
[20:03:34] [R] 211-Features:
[20:03:34] [R]  MDTM
[20:03:34] [R]  MFMT
[20:03:34] [R]  TVFS
[20:03:34] [R]  MFF modify;UNIX.group;UNIX.mode;
[20:03:34] [R]  MLST modify*;perm*;size*;type*;unique*;UNIX.group*;UNIX.mode*;UNIX.owner*;
[20:03:34] [R]  REST STREAM
[20:03:34] [R]  SIZE
[20:03:34] [R] 211 End
[20:03:34] [R] PWD
[20:03:34] [R] 257 "/" is the current directory
[20:03:34] [R] PASV
[20:03:35] [R] 227 Entering Passive Mode (10,252,50,207,198,201).
[20:03:35] [R] 正在打开数据连接 IP: xx.xx.xx.xx 端口: 50889
[20:03:56] [R] 数据 Socket 错误: 连接已超时
[20:03:57] [R] 列表 错误
[20:03:57] [R] 以 PASV 模式连接失败,正在尝试使用 PORT  模式。
[20:03:57] [R] 侦听于端口: 63255,正在等候连接。
[20:03:57] [R] PORT 192,9,143,29,247,23
[20:03:57] [R] 500 Illegal PORT command
[20:03:57] [R] PORT 192,9,143,29,247,23
[20:03:57] [R] 500 Illegal PORT command
[20:03:58] [R] 列表 错误
[20:04:17] [R] QUIT
[20:04:17] [R] 221 Goodbye.
[20:04:18] [R] 已注销: xxxx.com (持续时间: 45 秒)

 

问题原因:

造成这个问题的原因是pasv被动模式时候ftp服务器和客户端商议的数据端口不在防火墙允许的范围内。

解决办法:

解决此问题需要在防火墙中开放少数的几个端口,在实例中我们选择12346-12349这个段落,防火墙端口开放完成后,编辑proftpd.conf文件,在文件最底部加上下列一行:

#########The PASV MODE Firewall allow port ###########
PassivePorts  12346 12349
#########The PASV MODE Firewall allow port ###########

保存后proftpd.conf文件后重启proftpd进程

# service proftpd restart

配置完成后就可以使用ftp客户端通过pasv模式测试访问。

, , , ,

Comments are currently closed.