SERVIDOR FTP + TLS/SSL – DEBIAN 8

INSTALAÇÃO

# apt-get install proftpd

CONFIGURANDO

Agora abra o arquivo /etc/proftpd/proftpd.conf para configurar o Proftpd, o arquivo básico para uma configuração onde se quer autenticação de usuários seria:

 ServerName "Meu Servidor de FTP"
 ServerType standalone
 DeferWelcome off
 ServerIdent off
 MultilineRFC2228 on
 DefaultServer on
 ShowSymlinks on
 AllowOverwrite on
 DirFakeUser on
 DirFakeGroup on
 TimeoutNoTransfer 600
 TimeoutStalled 600
 TimeoutIdle 1200
 DisplayLogin welcome.msg
 DisplayFirstChdir .message
 ListOptions "-l"
 DenyFilter *.*/
 WtmpLog off
 SystemLog /var/log/proftpd/proftpd.log
 TransferLog /var/log/proftpd/xferlog
 Port 21
 MaxInstances 30
 User proftpd
 Group nogroup
 DefaultRoot ~ 
 Umask 022 022
 AllowOverwrite on
 RequireValidShell off

CRIANDO USUÁRIOS

Com o comando abaixo você cria o usuário, se no campo do arquivo DefaultRoot você especificar um caminho padrão, não é necessário no comando abaixo a opção –home.

# adduser –home /home/ftp/rodrigo –shell /bin/false –no-create-home rodrigo

Não se esqueça de dar permissões para a pasta ftp, para um grupo determinado de usuários ou usuários específicos, seja como for utilize algo do tipo abaixo :
# chown -R rodrigo:rodrigo /home/ftp/rodrigo

CONFIGURAÇÕES ADICIONAIS PARA DISTROS DERIVADAS (UBUNTU)

  • HABILITAR FTP NO FIREWALL (TALVEZ OPCIONAL)

Em testes no Ubuntu 14.04 foi preciso adicionar a porta 21, ou a que estiver utilizando para ficar aberta, ou escutando no firewall. Habilite com o seguinte comando abaixo, troque o 21 pela porta que estiver utilizando:

# iptables -A INPUT -p tcp –dport 21 -j ACCEPT
  • HABILITAR LOGIN SEM SHELL (REALMENTE PRECISO)

Em distribuições derivadas do Debian, você vai precisar adicionar a linha “/bin/false” no final do arquivo /etc/shells para que ele possa ser usado:

# echo “/bin/false” >> /etc/shells

Feito isso, você já conseguirá se logar no servidor usando o login criado.
A senha de acesso ao FTP é a mesma definida na hora de criar o usuário. O Proftpd simplesmente aproveita o sistema de autenticação do sistema. Se você precisar alterar a senha do usuário, use o comando “passwd $USER”.

UTILIZANDO SSL/TLS NA COMUNICAÇÃO

  • CRIANDO CERTIFICADO TLS

Vamos criar uma pasta especifica para colocar o certificado como comando abaixo:

# mkdir /etc/proftpd/ssl

Depois geramos com o seguinte comando:
 # openssl req -new -x509 -days 365 -nodes -out /etc/proftpd/ssl/proftpd.cert.pem -keyout /etc/proftpd/ssl/proftpd.key.pem

Dado o comando, ele pedirá que informe alguns dados como os abaixo, informe de acordo com seu ambiente:
Country Name (2 letter code) [AU]: <-- Entre como o nome do País. Ex.:BR
State or Province Name (full name) [Some-State]:<-- Entre como o Estado Ex.:Paraíba.
Locality Name (eg, city) []:<-- Entre como o nome da cidade. Ex.: João Pessoa
Organization Name (eg, company) [Internet Widgits Pty Ltd]:<-- Nome da organização ou empresa.
Organizational Unit Name (eg, section) []:<-- Unidade organizacional.
Common Name (eg, YOUR name) []:<-- Entre como FQDN Ex.:"server1.example.com").
Email Address []:<-- Endereço de e-mail.
  • HABILITANDO O TLS NO PROFTPd

Abra o arquivo /etc/proftpd/proftpd.conf e descomente a linha abaixo:

Include /etc/proftpd/tls.conf

Crie um arquivo de backup do arquivo /etc/proftpd/tls.conf, gere um novo zerado e edite-o com, seguindo assim os três comando abaixo:

# cp /etc/proftpd/tls.conf /etc/proftpd/tls.conf_orig
# cat /dev/null > /etc/proftpd/tls.conf
# vi /etc/proftpd/tls.conf
<IfModule mod_tls.c>
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol SSLv23
TLSOptions NoCertRequest
TLSRSACertificateFile /etc/proftpd/ssl/proftpd.cert.pem
TLSRSACertificateKeyFile /etc/proftpd/ssl/proftpd.key.pem
TLSVerifyClient off
TLSRequired on
</IfModule>

Se utilizar “TLSRequired on”, como acima, só serão permitidas conexões TLS, se porém deixar comentada, será permitido ambas conexões, TLS e non-TLS, isso dependendo do suporte do cliente FTP.
Depois reinicie o serviço:

/etc/init.d/proftpd restart

Obs.: Sem TLS o FTP pode ser utilizado até em navegadores, porém com TLS utilize clientes que suportem TLS como WinSCP ou FileZilla.

FONTES:

http://wiki.ubuntu-br.org/proftpd
https://www.howtoforge.com/setting-up-proftpd-tls-on-debian-squeeze

Marcado com , ,