我对此并不专业,但我已经多次在 centos 6+ 上安装 vsftpd,无论有没有 TLS 都能正常工作。但 24 小时以来,我一直无法在全新安装的 Centos 7.1 上让它工作。
我想我已经遵循了网络上现在的所有教程。;)但仍然没有成功。
也许有人能看出我做错了什么?
目前我的/etc/vsftpd/vsftpd.conf
情况如下:
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=NO <-- tried both yes and no
xferlog_std_format=YES
chroot_local_user=YES
listen=YES <-- tried both yes and no
listen_ipv6=NO <-- tried both yes and no
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=NO <-- tried both yes and no
force_local_logins_ssl=NO <-- tried both yes and no
ssl_tlsv1=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/vsftpd/ssl/vsftpd.pem
rsa_private_key_file=/etc/vsftpd/ssl/private/vsftpd.key
每次更改后,vsftpd 都会重新启动并进行测试。检查时,systemctl status vsftpd
它处于活动状态并正在运行。
起初,firewalld 正在运行,我使用 --permanent 打开了端口 21,然后重新加载了 firewalld。然后我将其关闭,但没有成功。
我尝试使用非 root 用户身份登录,通过 SSH 可以正常登录。我尝试过使用和不使用 TLS。感觉好像我漏掉了某个地方的逗号之类的微小而“愚蠢”的东西。
当我尝试连接时,我使用 Mac 的传输。没有 TLS,我收到错误代码 203。使用 TLS 时,错误代码为 157。
如果这两个都设置为YES:
force_local_data_ssl=YES
force_local_logins_ssl=YES
当我尝试不使用 TLS 时,出现错误,提示我需要启用安全连接。所以看起来它在某种程度上是有效的,只是不想让我进入。
对于可能存在的问题有什么建议吗?
答案1
经过更多的研究和尝试,我找到了这个答案: https://www.benscobie.com/fixing-500-oops-vsftpd-refusing-to-run-with-writable-root-inside-chroot/
通过添加这个:
allow_writeable_chroot=YES
我现在可以毫无问题地登录。
但是,再次打开防火墙时 TLS 不起作用。所以目前我只能使用不太安全的 SFTP。如果您知道该问题的解决方案,请添加评论或回复!