ProFTPD - 使用 TLS 时无法检索目录列表

gro*_*gor 2 ssl ftp tls directory-listing proftpd

我的 ProFTPD 服务器有问题。

当我尝试使用 TLS 连接到服务器时,我在 MLSD 命令后超时。它仅在我使用 TLS 时发生 - 没有它它可以完美运行。

我检查了这些日志:

proftpd.log - 用户 xxx:登录成功。

tls.log - 接受 TLSv1/SSLv3 连接...保护设置为私有

请问哪里有问题?我可以提供更多信息,请在评论中询问。

编辑:今天我试图将 iptables 的 INPUT 策略设置为 ALLOW ......一切正常......所以问题是防火墙。我应该如何设置 iptables 以与 FTPS 一起使用?

这是我的 iptables 设置:

*filter
:INPUT DROP [930:61159]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [256:26448]
-A INPUT ! -i eth0 -j ACCEPT
-A INPUT -p tcp -m tcp --tcp-flags ACK ACK -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 3 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 11 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 12 -j ACCEPT
-A INPUT -p tcp -m tcp -m multiport --dports 80,443,20,21,25,143,993,110,995,1194 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
COMMIT
Run Code Online (Sandbox Code Playgroud)

Fox*_*Fox 6

问题是, conntrack_ftp 模块,即使它们因为规则而被丢弃,它也允许 ftp 数据连接通过防火墙,它无法分析PASV/PORT命令的加密流。这同样适用于无法从具有加密控制连接的防火墙/nat 后面使用主动模式。

因此,您需要为被动模式设置静态端口(或者如果客户端不在防火墙/nat 后面,则使用主动模式)并添加防火墙规则以接受这些端口上的传入连接。

被动模式的端口是通过PassivePorts指令设置的。

编辑:我应该补充一点,PassivePorts 的数量不仅限制了并行连接的数量,而且还限制了每秒的连接数(读取目录列表和/或文件传输)net.netfilter.nf_conntrack_tcp_timeout_time_wait。所以如果你要传输很多小文件,就多开很多端口吧!