![vsftp 仅在没有 TLS 的情况下工作](https://linux22.com/image/14435/vsftp%20%E4%BB%85%E5%9C%A8%E6%B2%A1%E6%9C%89%20TLS%20%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E5%B7%A5%E4%BD%9C.png)
你好,我在 ubuntu 20.04 上安装了 vsftpd,一开始我在没有保护的情况下测试了我的 FTP 服务器,它工作得很好!
但是当我使用 TLS 认证时,服务器不再工作,我不知道它是什么,它是什么问题,请帮助我!这是我的认证在vsftpd.conf中的配置
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=YES
user_sub_token=$USER
local_root=/home/$USER/ftp
allow_writeable_chroot=YES
pasv_min_port=10000
pasv_max_port=11000
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=NO
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH
fillezilla 的错误输出是:
Error: The data connection cannot be established: ECONNREFUSED - Connection refused by the server
在日志文件中我得到:
Fri Apr 9 21:30:18 2021 [pid 5390] DEBUG: Client "::ffff:196.178.36.3", "SSL version: TLSv1.3, SSL cipher: TLS_AES_256_GCM_SHA384, not reused, no cert"
输出systemctl status vsftpd
:
vsftpd.service - vsftpd FTP server
Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2021-04-10 08:14:06 UTC; 3h 40min ago
Process: 5466 ExecStartPre=/bin/mkdir -p /var/run/vsftpd/empty (code=exited, status=0/SUCCESS)
Main PID: 5467 (vsftpd)
Tasks: 10 (limit: 2282)
Memory: 4.1M
CGroup: /system.slice/containerd.service/system.slice/vsftpd.service
|-5467 /usr/sbin/vsftpd /etc/vsftpd.conf
|-5483 /usr/sbin/vsftpd /etc/vsftpd.conf
|-5484 /usr/sbin/vsftpd /etc/vsftpd.conf
|-5485 /usr/sbin/vsftpd /etc/vsftpd.conf
|-5486 /usr/sbin/vsftpd /etc/vsftpd.conf
|-5487 /usr/sbin/vsftpd /etc/vsftpd.conf
|-5488 /usr/sbin/vsftpd /etc/vsftpd.conf
|-5490 /usr/sbin/vsftpd /etc/vsftpd.conf
|-5491 /usr/sbin/vsftpd /etc/vsftpd.conf
`-5492 /usr/sbin/vsftpd /etc/vsftpd.conf
Apr 10 08:14:06 VPS systemd[1]: Starting vsftpd FTP server...
Apr 10 08:14:06 VPS systemd[1]: Started vsftpd FTP server.
答案1
问题来自于两行:
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
使用以下行创建 SSL 证书:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.key -out /etc/ssl/certs/vsftpd.pem
编辑您的/etc/vsftpd.conf
:
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.key
然后重新启动vsftpd
:
sudo systemctl restart vsftpd
检查状态:
systemctl status vsftpd
答案2
我发现了以下类似的问题:https://askubuntu.com/questions/1111209/16-04-server-using-vsftpd-using-tls-getting-econnrefused
那里的答案对我有用,那就是,
如果有人遇到同样的问题,删除以下行可以解决我的问题:
ssl_tlsv1=是
ssl_tlsv2=否
ssl_tlsv3=否