VSFTPD和隐式SSL

我有一个Debian专用服务器,我想使用VSFTPD启用隐式SSL,我很难。

我已经在线阅读,唯一能find的是如何启用SSL,并在手册页列出了一个隐含的ssl命令。 但由于隐式ssl使用第二个侦听器(默认情况下为990),我不知道如何使它在Debian上工作。

有没有人设法得到这个工作?

这是我的configuration:

listen=YES anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 connect_from_port_20=YES pam_service_name=vsftpd ssl_enable=YES allow_anon_ssl=NO force_local_data_ssl=NO force_local_logins_ssl=NO ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO rsa_cert_file=/etc/ssl/certs/vsftpd.pem 

如果我包含Implicit_SSL = YES,服务器甚至不会启动。

谢谢

显然你需要在configuration文件中设置implicit_ssl=YES来获取任何地方。

但是当你这样做的时候,你当然不能启动服务器。 因此,首先要做的是查看服务器的日志,在/var/log/vsftpd.log中(或者可能的话,消息发送到/var/log/user.log或/ var / log / messages,但这不太可能)。

没有看到这一点,我不可能告诉你这个问题实际上是什么,但作为一个疯狂的猜测,我可以说没有find它的服务器SSL证书是一个很好的机会。 其他可能的问题包括权限问题,SELinux故障(如果启用的话),或者vsftpd只是简单的不喜欢你给它的configuration选项 – 这可能是非常挑剔的,这样可以防止你意外将其configuration为不安全状态。 或者不缺乏其他可能性 – 这就是为什么你需要日志。

隐式 – 假定服务器正在期待所有使用SSL进行encryption。 这意味着,当客户端首次连接到服务器时,它将立即在命令连接上协商SSL连接。 通常,隐式连接也位于不同的端口上,例如端口990 。 因此,要以隐式模式运行vsftpd,您需要设置选项

 implicit_ssl=YES listen_port=990 

要么

 implicit_ssl=YES listen_port=21 

并configuration你的ftp客户端使用21端口进行连接。 (例如,当连接到隐式服务器types时,FileZilla客户端默认使用990端口)。

我有一个类似的问题,这是你的configuration应该读取:

 listen=YES anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 connect_from_port_20=YES pam_service_name=vsftpd ssl_enable=YES #The following line enables implicit mode implicit_ssl=YES allow_anon_ssl=NO #This will force secure data connections, not required, but recommended force_local_data_ssl=YES #This will force secure logins, not strictly required, but REALLY recommended force_local_logins_ssl=YES ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO rsa_cert_file=/etc/ssl/certs/vsftpd.pem #The next line is the magic which I suspect will make this work for you. #Some distros require explicit private key designation. You may need to regenerate your #certificate / key pair. A lot of Debian based distros seem to need this step, and will not #start the server without it. rsa_private_key_file=<path to private key>.key 

那为我做了诡计。 另外,因为你正在使用tls,而不是ssl,你的服务器实际上应该在通常的ftp端口上。 现在,大多数客户端默认情况下将端口990连接到ftps连接,但是除非您真的想要在端口990上进行服务,否则您无法做到这一点。不是一个破坏者,只是一个痛苦。 你也可能想要考虑虚拟用户,chroot jailing和被动模式来分别提高安全性,更安全性和易于连接客户端。 欢呼声 – 马蒂亚斯

如果你看看vsftpd的源代码,你会发现包含implicit_ssl的第一个vsftp版本是2.1.0版本,即使更新日志也提到了2.0.7的这个特性!

另外,如果你看看c源代码中的configurationparsing器,你会看到文档是正确的,如果你想启用它,你将不得不写configuration选项全部小写!

例如:implicit_ssl = yes

确保你指定了“implicit_ssl”(全部小写),Implicit_SSL将不起作用,正如你所提到的,服务器甚至不会启动

你确定FTP只在端口990? 如果没有显式设置listen_port则configurationimplicit_ssl应该在端口21上激活ftps。

找出vsftpd正在监听的端口,并尝试通过端口21上的ftps进行连接。

如果仍然没有工作尝试设置debug_ssl=YES并看看你的日志。

另一种可能性是,你有一个debian vsftpd版本,它不支持implicit_ssl 。 你使用的是什么版本的debian和vsftpd? 该选项已被添加到版本2.0.7。