ProFTPD: O significado do “TLS Verify Client” e “NoCertRequest” na configuração do TLS

3

Eu sei que por padrão o FTP é inseguro, porque não é criptografado. Para evitar esse comportamento inseguro do FTP, desejo configurar uma criptografia TLS no meu ProFTPD. De acordo com este tutorial aqui: link a configuração do tls em O ProFTPD deve ter esta aparência:

 <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>

Muitas dessas diretivas são autoexplicativas, mas ainda não sei o que significa a diretiva "TLSVerifyClient".

De acordo com o manual da ProFTPD:

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.

Mas achei que o certificado está vindo do próprio servidor, então por que o servidor deve aceitar pedidos de certificado do cliente?

e minha segunda pergunta, qual é o significado da opção "nocertrequest" da diretiva TLSoption?

Em conformidade com o manual ProFTPD, a função desta opção é:

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

Aqui a mesma pergunta, por que o servidor enviaria uma solicitação de certificado para o cliente, quando o próprio servidor tiver certificados TLS.

    
por Wubi 19.02.2017 / 18:50

2 respostas

2

A diretiva TLSVerifyClient é sobre como autenticar clientes ( ou seja "auth de cliente" ou "auth mútua"); ele é usado para determinar se mod_tls solicitará um certificado do cliente e se esse certificado fornecido pelo cliente deve ser válido ( TLSVerifyClient on ) ou não ( TLSVerifyClient optional ). Alguns sites desejam usar um certificado fornecido pelo cliente para controle de acesso; somente clientes apresentando um certificado de uma CA confiável pelo servidor seriam permitidos, por exemplo.

A implementação original de mod_tls sempre incluiria uma solicitação para o certificado do cliente, independentemente da configuração TLSVerifyClient . Assim, houve o "NoCertRequest" TLSOption , para desabilitar essa solicitação de certificado de cliente. Agora, no entanto, o NoCertRequest TLSOption foi preterido em favor de usar somente a configuração TLSVerifyClient ; veja Bug # 4213 .

Espero que isso ajude!

    
por 19.02.2017 / 19:20
2

Para um protocolo mais seguro, você pode considerar o uso de SFTP (que o proftpd suporta). O SFTP é executado por SSH, portanto, totalmente criptografado. Você pode encontrar esta questão relacionada útil. Este tutorial em configurando o proftpd para usar o SFTP também pode ajudar.

    
por 08.04.2017 / 09:32