UFW 停止 FTP 目录列表

UFW 停止 FTP 目录列表

我的 vsftpd 实例有多个用户可以连接。

用户 1 主目录:/ftp/user1 - 运行正常
用户 2 主目录:/ftp/user2 - 运行正常
用户 3 主目录:/ftp - 运行正常,此用户负责管理其他用户的文件
用户 4(我)主目录 /var/www/html - 启用 UFW 后出现“无法检索目录列表”。

user4 是 /var/ww/html 及其所有内容的所有者。

Filezilla 日志:

Status: Connecting to [ipaddress]:21...
Status: Connection established, waiting for welcome message...
Status: Initializing TLS...
Status: Verifying certificate...
Status: TLS connection established.
Status: Server does not support non-ASCII characters.
Status: Logged in
Status: Retrieving directory listing...
Command:    PWD
Response:   257 "/" is the current directory
Command:    TYPE I
Response:   200 Switching to Binary mode.
Command:    PASV
Response:   227 Entering Passive Mode (ip,ip,ip,ip,159,151).
Command:    LIST
Error:  Connection timed out after 20 seconds of inactivity
Error:  Failed to retrieve directory listing

禁用 UFW 后,连接可按预期工作。

我有更多的规则,但我破坏了一些东西。我重置了 iptables,然后清除了 ufw 规则,并设置了这个。

这台机器上有 2 个适配器,一个连接到我的私人网络,一个面向公众(如果有必要的话)。

default deny incoming
default allow outgoing

ufw status:
Status: active

To                         Action      From
--                         ------      ----
Apache                     ALLOW       Anywhere
21/tcp                     ALLOW       Anywhere
22                         ALLOW       [lanip]/24
5222                       ALLOW       [lanip]/24
Samba                      ALLOW       Anywhere
5269                       ALLOW       [lanip]/24
Apache Full                ALLOW       Anywhere
Apache Secure              ALLOW       Anywhere

我是否遗漏了被动端口的规则?

答案1

将 ftp 客户端切换到主动模式有效,因此它一定是被动端口。

看起来我需要编辑 /etc/vsftpd.conf:

pasv_enable=Yes
pasv_min_port=10100
pasv_max_port=10110

然后:

sudo systemctl restart vsftpd
sudo ufw allow from any to any proto tcp port 10100:10110

编辑:解决了,这个方法奏效了。我要离开这个,因为我找不到好的答案,希望我可以帮助下一个人

相关内容