Tutorial: Instale um servidor de FTP seguro em 5 minutos
As distribuições GNU/Linux têm as características perfeitas para implementar os mais diversos serviços de rede. As configurações dos serviços são normalmente realizadas em ficheiros, de uma forma simples e rápida, e a gestão dos próprios serviços é também bastante flexível.
Hoje vamos ensinar a instalar o servidor de FTP ProFTPD no Ubuntu em pouco menos de 5 minutos! Basta que sigam o nosso tutorial.
O ProFTPD é um servidor de FTP Open Source, altamente personalizado e que garante a melhor segurança (se bem configurado). Para instalar o Proftpd Server no Ubuntu basta que sigam os seguintes passos:
Passo 1) Instalar o ProFTPd e OpenSSL
Para começar vamos mudar para a conta root por causa dos privilégios (sudo su). Em seguida procedam à instalação do proftpd e openssl usando o segundo comando:
sudo su apt-get -y install proftpd openssl |
Durante a instalação, o utilizador será questionando de que forma pretendem executar o ProFTPd. Para tal devem escolher a opção Standalone.
Por questões de segurança devem proceder às seguinte alterações no ficheiro /etc/proftpd/proftpd.conf
nano –w /etc/proftpd/proftpd.conf [...] DefaultRoot ~ ServerIdent on "Servidor FTP está pronto" [...] |
A primeira opção define que os utilizadores que se ligam por FTP só podem aceder ao seu directório pessoal. O segundo parâmetro é uma mensagem opcional que é apresentada quando um utilizador se liga ao servidor.
Passo 2) Criar certificados SSL
Para criarem os certificados necessário para usar no TLS (Transport Layer Security) devem usar os seguintes comandos:
Primeiro criem um directório onde vão guardar os certificados
mkdir /etc/proftpd/ssl |
Em seguida usem o seguinte comando para gerar os certificados SSL
openssl req -new -x509 -days 365 -nodes -out /etc/proftpd/ssl/proftpd.cert.pem -keyout /etc/proftpd/ssl/proftpd.key.pem |
Por fim devem definir permissões de leitura e escrita para os certificados criados:
chmod 600 /etc/proftpd/ssl/proftpd.* |
4) Activar o TLS no ProFTPd
Para activar o protocolo TLS no ProFTPd que permitirá ligações seguras dos clientes ao servidor, devem abrir o ficheiro /etc/proftpd/proftpd.conf e incluir a linha:
/etc/proftpd/tls.conf |
Em seguida editamos o ficheiro /etc/proftpd/tls.conf e definimos os seguintes parâmetros:
<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> |
Por fim, para reiniciar o serviço devem usar o comando
systemctl restart proftpd.service |
5) Criar um utilizador
Depois de instalado e configurado correctamente o proftpd vamos criar um utilizador para acesso. Neste caso pretendemos que o utilizador apenas se consiga autenticar por FTP e não por SSH ou terminal. Para isso, no comando useradd, devem incluir a opção --shell /bin/false.
useradd --home /home/pplwareFTP --create-home --shell /bin/false pplwareFTP |
Depois de criado o utilizador definam uma password para o mesmo:
passwd pplwareFTP |
6) Testar
Agora que já temos o serviço configurado e o utilizador criado é hora de testarem o serviço. Para isso usem um cliente de FTP, como por exemplo o Filezilla e criem um perfil com os seguintes dados:
- Host: IP do servidor
- Protocol: FTP
- Encryption: Require explicit FTP over TLS
- Logon Type: Normal
- User: pplwareFTP
- Password: a definida no passo anterior
Se tudo estiver bem definido e não houver erros, devem conseguir ligar-se ao servidor em instantes. Durante a ligação devem ainda receber a informação de que a comunicação está a fazer uso de um certificado de segurança SSL.
E está feito! Como podem ver pela imagem seguinte, conseguimos ligar sem problema ao servidor FTP criado.
Como sempre, esperamos que tenham gostado deste tutorial e que vos seja útil para as mais diversas actividades. Este tutorial funciona na perfeição em qualquer distribuição baseada no Ubuntu, incluindo as distros para Raspberry das quais destacamos o Pipplware. Alguma dúvida ou questão não hesitem em perguntar. Boas instalações!
Este artigo tem mais de um ano
Boas!
Pedro Pinto,
Não percebi a parte do SSL. O servidor está numa intranet ou acessível a partir da internet? Como é conseguido o SSL?
Thanks 🙂
O servidor está numa rede interna… O SSL serve para poder estabelecer uma ligação encriptada (segura)… a criação do certificado é o passo 2..
… eu sei mas a minha questão não era essa. Deixa estar
Boas… sera que funciona no wd my book live??
Boas.
Grande tutorial. Assim que posso irei experimentar na minha “maquina” em casa. No entanto faço a seguinte questão utilizo o CentOS. Posso seguir esse tutorial ou terei que pesquisar outra alternativa?
Isto é para criar uma espécie de servidor caserio?
Se poderem ajudar gostava de saber como atribuir as diretorias as contas dos users.
obrigado
a calhar bem era um servidor openvpn seguro e encriptado
Boas.
Dá para fazer alguma coisa assim com o Windows 7 ou outro?
onde posso descobrir como fazer de modo prático ?
Obrigado
5 min ou 50 min?
Até menos de 5 minutos 🙂
Como vai Pedro Pinto?!
Parabéns pelo artigo!
Mas não consegui colocar para funcionar. Editei o arquivo (tls.conf) tanto com as informações que digitou quando com as informações que estão na imagem. E quando dou o comando (systemctl restart proftpd.service) aparece a mensagem (systemctl: command not found)
No que estou errando?
Obrigado.
Pergunta básica mas tenho de a fazer. Está com o Ubuntu? Experimente /etc/init.d/proftpd start
Estou testando no ElementaryOS 0.3.2 Freya, já que tem como base o Ubuntu 14.04.
Agora está aparecendo a mensagem “550 SSL/TLS required on the control channer” depois que coloco o Usuário e a Senha previamente cadastrada.
service proftpd restart
Para quando o mesmo com CentOS ?
Boas…
Eu obtenho o seguinte erro ao tentar reiniciar o serviço:
Job for proftpd.service failed. See ‘systemctl status proftpd.service’ and ‘journalctl -xn’ for details.
Isso é algum erro na configuração. Usa o comando tail -f /var/syslog para veres onde está o erro.
Pedro Pinto, esse comando não deu nada. Porém abri o ficheiro /var/log/proftpd/proftpd.log e tem lá o seguinte:
2016-05-17 22:55:18,096 narayan proftpd[23045] narayan.narayan: ProFTPD 1.3.5 (stable) (built Tue May 19 2015 11:09:58 UTC) standalone mode STARTUP
2016-05-17 23:09:50,626 narayan proftpd[23045] narayan.narayan: ProFTPD killed (signal 15)
2016-05-17 23:09:50,627 narayan proftpd[23045] narayan.narayan: ProFTPD 1.3.5 standalone mode SHUTDOWN
Uma duvida: se a máquina tiver uma conta de administrador (chamada administrador) e outra de utilizador é necessário utilizar o sudo su ou estando na conta de utilizador pode-se utilizar o su – administrador para ganhar direitos de administração?
Olá.
Vc pode usar o “sudo su” em vez do “root” se o seu usuário tiver Privilégios de Administrador, ou seja, se seu usuário tiver na lista de “Permissões sudoers”.
Uma vez seu usuário estando na lista de Permissões sudoers, vc poderá usar o comando “sudo” sem precisar logar como super usuário “root”.
Caso não saiba dar as permissões sudoers, me mande um e-mail que passo o tutorial.
E-mail: alessandrov7r7@yahoo.com.br
Boas, para o busybox, dá para ter um servidor ftp?
Eu só contigo fazer get/put, com um servidor era mais rapido
Se a idea é ser rápido simples e seguro… porque não sftp…
Mais seguro ainda se for autenticação com private/public-key….
Neste exemplo, e provavelmente na maioria dos casos para LAN vão usar cert self signed, o que tem as suas desvantagens.
Outra vantagem do ssh é que na grande maioria dos casos particularmente linux já está no sistema operativo, não é preciso instalar…
Mesmo que o OpenSSH não esteja instalado basta fazer “sudo apt-get install openssh-server” para ficarmos com SFTP seguro, automático e a funcionar no porto 22, com os utilizadores do Ubuntu a terem acesso com as respectivas passwords (e com a possibilidade, como diz, de usar a private/public key para dispensar a password). Demora 10 segundos…
Pra Windows não tem um tutorial assim?