问题描述
我的目标是在Ubuntu 20.04上创建一个外部ftp服务器。
我的问题: 当我配置SSL证书时,出现(code = exited,Staus = 2 / INVALID ARGUMENT)错误。错误日志并不精确,我至少想知道如何获取有关产生错误的代码的非常详细的报告。
sudo systemctl restart vsftpd.service
sudo systemctl tatus vsftpd. status
结果:
vsftpd.service - vsftpd FTP server
Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled)
Active: Failed (Result: exit-code) since Sat 2020-10-10 20:12:07 AST; 12s ago
Process: 36977 ExecStartPre=/bin/mkdir -p /var/run/vsftpd/empty (code=exited,status=0/SUCCESS)
Process: 36987 ExecStart=/usr/sbin/vsftpd /etc/vsftpd.conf (code=exited,status=2)
当我使用以下方法浏览日志时:
journal ctl -xn
启动作业已成功执行。但是,它紧随消息关闭:
The job identifier is 13036.
Oct 10 20:15:13 username-Aspire-A315-51 sudo[37104]: pam_unix(sudo:session): session closed
Oct 10 20:15:13 username-Aspire-A315-51 systemd[1]: vsftpd.service:
Main process exited,code=exited,status=2/INVALIDARGUMENT
Subject: Unit process exited
我的vsfptd.conf如何设置?
pam_service_name=vsftpd
pasv_enable=Yes
pasv_min_port=10000
pasv_max_port=11000
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1_1=YES
ssl_tlsv1_2=NO
ssl_sslv3=NO
require_ssl_reuse=YES
ssl_ciphers=HIGH
rsa_cert_file=/etc/ssl/certs/vsftpd.crt
rsa_private_key_file=/etc/ssl/private/vsftpd.key
使用SSL_enable = NO配置服务器并且默认的rsa_cert和rsa_key_files如下所示,服务器可以工作:
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
如果对如何生成SSL证书和密钥有任何疑问。这演示了所使用教程中的代码:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.key -out /etc/ssl/certs/vsftpd.crt
我已经多次创建和重新创建SSL证书。我还注释掉了IPv6_enable = YES。
我从以下位置看到了一些注释代码的建议:
/etc/pam.d/vsftpd
这没有效果。
我愿意接受更多建议或帮助。已经几个小时了,日志详细信息的匮乏使得很难对解决方案做出很好的猜测。
解决方法
我已通过 sudo chown root:root /etc/vsftpd.conf 将 /etc/vsftpd.conf 的权限重置为 root:root 现在通过 sudo systemctl restart vsftpd.service 启动 vsftpd 服务器并手动运行它通过 sudo /usr/bin/vsftpd。