1 As of vsftpd version 2.0.0, SSL / TLS support is provided.
3 The SSL / TLS support provides the ability to encrypt FTP logins and subsequent
4 commands, as well as the data transfers themselves. The encyption will, for
5 example, stop the stealing of sensitive passwords via network snooping.
7 By default, SSL support is disabled both at compile time and at runtime.
8 Before considering enabling / using SSL support, there are some security
11 - Only enable SSL if absolutely necessary. Enabling SSL will allow attackers
12 to make use of any security problems in the OpenSSL libraries. Note that
13 the OpenSSL libraries are a large quantity of code and have had the occasional
14 security problem in the past.
15 For example, your server might use virtual users to control access to
16 non-sensitive download content. In this case, the passwords might not be
17 worth securing with SSL.
19 - After enabling SSL, consider restricting access to an SSL enabled server
20 where feasible. For example, only the internal network might need access.
23 In order to enable and use SSL support, you need the following:
25 - vsftpd built with OpenSSL support. This is a decision your vsftpd packager
26 made, or if you are building vsftpd yourself, edit "builddefs.h" and change the
27 "#undef VSF_BUILD_SSL" to "#define VSF_BUILD_SSL".
28 - "ssl_enable=YES" in your vsftpd.conf.
29 - A SSL certificate. By default, an RSA certificate is looked for at the
30 location /usr/share/ssl/certs/vsftpd.pem. To get an RSA certificate, either
31 buy one from a certificate authority, or you can create your own self-signed
32 certificate. If you have OpenSSL installed, you may find a "Makefile" in
33 your shared certificates directory, e.g. /usr/share/ssl/certs. In that case,
34 go to that directory and type e.g. "make vsftpd.pem". Then answer the
35 questions you are asked. Alternatively, read the man page for "openssl".
36 - Also be aware of the following SSL related parameters. Read the vsftpd.conf.5
37 manual page to learn about them: allow_anon_ssl, force_local_logins_ssl,
38 force_local_data_ssl, ssl_sslv2, ssl_sslv3, ssl_tlsv1, rsa_cert_file,
39 dsa_cert_file, ssl_ciphers.