FTP + TLS

É possível adicionar uma camada de segurança ao protocolo FTP ativando a encriptação via TLS. Nem todos os clientes de FTP suportam encriptação, de forma que a mudança criará dificuldades aos usuários menos técnicos, mas, por outro lado, elimina o grande risco do FTP, evitando que as senhas possam ser capturadas durante as conexões.

Presumindo que você já tenha instalado o pacote do Proftpd e feito a configuração básica, o próximo passo é instalar o pacote “openssl”. Ele é usado por diversos outros serviços, por isso é provável que já esteja instalado:

# apt-get install openssl

Em seguida, crie um diretório dentro da pasta “/etc/proftpd” para armazenar os certificados, como em:

# mkdir /etc/proftpd/cert

O próximo passo é gerar os certificados usando o comando “openssl”, como em:

# openssl req -new -x509 -days 3650 -nodes -out \
/etc/proftpd/cert/proftpd.cert.pem -keyout /etc/proftpd/cert/proftpd.key.pem

A opção “-days” especifica o tempo de validade do certificado. Nesse caso, estou gerando um certificado válido por 10 anos para evitar que os clientes passem a receber erros relacionados ao certificado caso ele expire antes que tenha tempo de atualizá-lo. Entretanto, do ponto de vista da segurança, o ideal é gerar certificados válidos por apenas um ano ou dois e substituí-los mais regularmente.

Depois de responder às perguntas feitas durante a geração do certificado (país, estado, cidade, nome da empresa, etc.), serão gerados os arquivos “proftpd.cert.pem” e “proftpd.key.pem” dentro da pasta “/etc/proftpd/cert”, que correspondem ao certificado.

O próximo passo é alterar a configuração do Proftpd de forma que ele ative o uso da encriptação. Abra o arquivo “/etc/proftpd/proftpd.conf” e procure pelas linhas:

<IfModule mod_tls.c>
TLSEngine off
</IfModule>

Para ativar o uso do TLS, você deve substituí-las por:

<IfModule mod_tls.c>
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol SSLv23
TLSOptions NoCertRequest
TLSRSACertificateFile /etc/proftpd/cert/proftpd.cert.pem
TLSRSACertificateKeyFile /etc/proftpd/cert/proftpd.key.pem
TLSVerifyClient off
TLSRequired on
</IfModule>

Note que as opções “TLSRSACertificateFile” e “TLSRSACertificateKeyFile” indicam a localização dos dois arquivos com o certificado. Se você estiver usando uma pasta diferente da “/etc/proftpd/cert” para armazená-los, não esqueça de indicar a localização correta. Outra opção importante é a “TLSRequired”, que determina se o uso da encriptação será obrigatório ou não. Ao usar “TLSRequired on”, como no exemplo, apenas os clientes que tiverem ativado o uso do SSL poderão se conectar ao servidor, enquanto que ao usar “TLSRequired off” a encriptação passa a ser opcional.

Depois de salvar a configuração, reinicie o serviço:

# /etc/init.d/proftpd restart

Para ativar a encriptação no cliente, é necessário usar o protocolo “FTP over SSL”, em vez do protocolo FTP regular. No Filezilla, por exemplo, a opção aparece dentro do Site Manager, ao visualizar as propriedades da conexão:

Ao conectar a partir do cliente, você verá entradas similares a essas no arquivo “/var/log/proftpd/tls.log” (no servidor), sinal de que a encriptação está sendo usada:

Jun 30 12:54:46 mod_tls/2.1.1[2326]: TLSv1/SSLv3 connection accepted, using cipher DHE-RSA-AES256-SHA (256 bits)
Jun 30 12:54:47 mod_tls/2.1.1[2326]: Protection set to Private
Jun 30 12:54:47 mod_tls/2.1.1[2326]: starting TLS negotiation on data connection
Jun 30 12:54:47 mod_tls/2.1.1[2326]: TLSv1/SSLv3 data connection accepted, using cipher DHE-RSA-AES256-SHA (256 bits)
Jun 30 12:54:47 mod_tls/2.1.1[2325]: starting TLS negotiation on data connection

O grande problema é que o FTP over SSL não é suportado por todos os clientes de FTP, o que dificulta seu uso. Em geral, é mais fácil conseguir que os usuários migrem para o SFTP (veja detalhes sobre ele no capítulo sobre o SSH), que é suportado por um número maior de clientes de FTP do que conseguir fazer uma migração completa para o TLS.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X