使用 vsftpd 进行文件传输不适用于 TLS,但适用于未加密的连接

使用 vsftpd 进行文件传输不适用于 TLS,但适用于未加密的连接

我家里有一台 Ubuntu 服务器。

我通过 NAT 重定向从网络外部访问它。我使用端口 3876 连接到 FTP,路由器将此端口重定向到服务器的 IP 和端口 21。

我打开了 Ubuntu 防火墙ufw的以下端口:

OpenSSH                    ALLOW       Anywhere                  
20/tcp                     ALLOW       Anywhere                  
21/tcp                     ALLOW       Anywhere                  
40000:50000/tcp            ALLOW       Anywhere                  
990/tcp                    ALLOW       Anywhere                  
22/tcp                     ALLOW       Anywhere                  
80/tcp                     ALLOW       Anywhere                  
443/tcp                    ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)             
20/tcp (v6)                ALLOW       Anywhere (v6)             
21/tcp (v6)                ALLOW       Anywhere (v6)             
40000:50000/tcp (v6)       ALLOW       Anywhere (v6)             
990/tcp (v6)               ALLOW       Anywhere (v6)             
22/tcp (v6)                ALLOW       Anywhere (v6)             
80/tcp (v6)                ALLOW       Anywhere (v6)             
443/tcp (v6)               ALLOW       Anywhere (v6)    

现在我配置vsftpd常规 FTP 连接并将其添加到我的/etc/vsftpd.conf

listen=NO
listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
pasv_enable=Yes
pasv_min_port=40000
pasv_max_port=50000
allow_writeable_chroot=YES

我可以连接到我的用户并上传和下载文件。

现在我想通过 TLS 做同样的事情,因此我创建了证书,如下所示https://linoxide.com/linux-how-to/configure-vsftpd-sftp-ubuntu/并将其添加到/etc/vsftpd.conf

listen=NO
listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
pasv_enable=Yes
pasv_min_port=40000
pasv_max_port=50000
allow_writeable_chroot=YES

rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO

现在常规 FTP 已禁用,我可以通过 TLS 连接。但我无法上传/下载文件。我不知道为什么或如何配置。

欢迎任何帮助!

答案1

该端口被路由器重定向到服务器的 IP 和端口 21

但是您还需要重定向数据连接的端口 50000–60000 以允许传输。

它可能有效无需 TLS,即使没有重定向,如果路由器很智能,可以根据需要自动打开端口,通过检查 FTP 控制连接。但这行不通使用 TLS,因为控制连接是加密的,路由器无法检查它。

相关内容