Pure-FTPd:因受限 iptables INPUT 而随机失败

Pure-FTPd:因受限 iptables INPUT 而随机失败

我在 Debian 10 机器上安装了 Pure-FTPd,该机器iptables以链的默认DROP策略运行INPUTOUTPUT链设置为ACCEPT

问题:如果我尝试连接 FTP 客户端,但有时无法正常工作。它似乎可以随机列出文件夹或失败。通常重试新连接即可。

我的Pure-FTPd 配置了这些端口

$ cat /etc/pure-ftpd/conf/Bind
85.xxx.xxx.xxx,57419

$ cat /etc/pure-ftpd/pure-ftpd.conf | grep Port
# Port range for passive connections - keep it as broad as possible.
PassivePortRange             30000 50000

要打开防火墙上的端口,我使用了:

iptables -A INPUT -p tcp --dport 57419 -j ACCEPT
iptables -A INPUT -p tcp --dport 30000:50000 -j ACCEPT

服务器上的日志:

pure-ftpd]: ([email protected]) [INFO] New connection from 176.x.x.x
pure-ftpd]: ([email protected]) [INFO] TLS: Enabled TLSv1.2 with ECDHE-RSA-AES256-GCM-SHA384, 256 secret bits cipher
pure-ftpd]: ([email protected]) [INFO] testuser is now logged in
// no more output until the client retries a new connection

现在 FTP 客户端将会显示它正在列出一段时间,然后: 在此处输入图片描述

现在,如果我将 iptablesINPUT链设置为ACCEPT一切正常,因此似乎仍有一些端口被阻止,而 Pure-FTPd 会随机尝试使用这些端口,我该如何调试/修复它?

谢谢。

答案1

我设法将此追溯到配置问题。

显然,将端口设置为/etc/pure-ftpd/pure-ftpd.conf是不够的。经过进一步分析,ss -nap | grep pure我发现 pure 试图使用防火墙允许范围之外的端口。

为了解决这个问题,我只需创建一个文件/etc/pure-ftpd/conf/PassivePortRange并在那里设置端口范围。

相关内容