I know that per default FTP is insecure, because it is not encrypted. To avoid this insecure behavior of FTP, I want to set up a TLS encryption in my ProFTPD. Pursuant to this tutorial here: https://www.howtoforge.com/tutorial/install-proftpd-with-tls-on-ubuntu-16-04/ the tls configuration in ProFTPD should look like this:
<IfModule mod_tls.c>
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol TLSv1.2
TLSCipherSuite AES128+EECDH:AES128+EDH
TLSOptions NoCertRequest AllowClientRenegotiations
TLSRSACertificateFile /etc/proftpd/ssl/proftpd.cert.pem
TLSRSACertificateKeyFile /etc/proftpd/ssl/proftpd.key.pem
TLSVerifyClient off
TLSRequired on
RequireValidShell no
</IfModule>
A lot of these directives are self-explanatory, but I still do not know what the directive "TLSVerifyClient" means.
According to the ProFTPD manual:
If off, the module will accept the certificate and establish an SSL/TLS session, but will not verify the certificate.
If on, the module will verify a client's certificate and, furthermore, will fail all SSL handshake attempts unless the client presents a certificate when the server requests one.
But I thought the certificate is coming from the server itself, so why should the server accepts certificate requests from the client?
and my second question, what is the meaning of the "nocertrequest" option of the TLSoption directive?
Conforming to the ProFTPD manual, the function of this option is:
Some FTP clients are known to be buggy when handling a server's certificate request. This option causes the server not to include such a request during an SSL handsh
Here the same question, why would the server send a certificate request to the client, when the server itself have TLS-certificates.