Ainda que você seja um iniciante em matéria de redes e servidores, estou quase certo de que já tenha ouvido falar em servidor FTP. Pois bem, o protocolo FTP é um dos mais importantes ao funcionamento da Internet como a conhecemos.
Não sei se você parou para pensar no assunto, mas a Web é constituída de um vasto conjunto de protocolos. Cada ação que tomamos online é executada e concluída graças a algum protocolo de rede, pois é assim que os computadores se comunicam com os servidores de serviços.
Por exemplo, quando navegar pelo browser é entendido como “usar a Internet”, na verdade, é o protocolo HTTP em ação. O mesmo ocorre com os emails, cuja transferência se dá pelos protocolos IMAP (ou POP3) e SMTP. Não obstante temos o protocolo TCP/IP, o qual nos concede um endereço de rede.
Seguindo essa linha de raciocínio, qual é a função do servidor FTP? Tendo em vista resolver as suas possíveis dúvidas, o presente conteúdo apresenta o conceito do protocolo e, de quebra, os procedimentos de instalação e configuração. Vamos dar o pontapé inicial?
O que é um servidor FTP?
O protocolo FTP (cuja sigla significa File Transfer Protocol) é um dos mais antigos ainda em uso no mundo. A sua função é sustentar a transferência de arquivos entre dispositivos — e o FTP cumpre a missão de maneira quase irretocável.
Na prática, o que o servidor FTP faz é fornecer acesso a diretórios, os quais são usados pelos usuários que se conectam a ele, e um cliente FTP fica autorizado a baixar os arquivos dos diretórios (ou fazer o upload) diretamente do servidor.
Legal, mas como essa funcionalidade é aproveitada? Um dos serviços que mais utilizam do FTP é o desenvolvimento de páginas da Web. Antes da chegada da computação em nuvem, o FTP server era o método padrão para manter os arquivos online e à disposição dos usuários.
Embora a sua usabilidade seja prática e ainda esteja presente em muitos serviços por aí, não se pode ignorar o fato de que o protocolo existe desde os anos 70, o que faz da segurança um ponto bastante questionável. Você acha que há razão para isso? Vamos prosseguir com o assunto.
O protocolo FTP é seguro?
Em 1971, quando o FTP começou a ser implementado no mundo, a realidade do mundo tecnológico era diferente. Quem assistiu ao filme Piratas do Vale do Silício certamente se lembra de Steve Jobs encarando a programação como arte. Ou seja, muitos conceitos ficaram defasados desde aquela época.
Conforme a preocupação com a disseminação de vírus e malware, instrumentos usados pelos cibercriminosos para abrir brechas de segurança, houve a necessidade de otimizar a segurança do protocolo FTP — que até então carecia de mecanismos de segurança modernos.
Diante do avanço das ameaças digitais, como vírus e malwares, instrumentos primários dos cibercriminosos para abrir brechas de segurança, a Netscape desenvolveu um incrível recurso: o Secure Sockets Layer (vulgo SSL).
Logo, em 1996, o SSL foi incorporado ao FTP, dando origem ao FTPS, substancialmente mais robusto. O próprio HTTP começou a ser convertido para HTTPS, hoje considerado um requisito básico para sites que precisam de blindagem.
Posso entrar em mais detalhes sobre esse assunto futuramente, combinado? A questão é que, atualmente, dispomos de recursos suficientes para criar um servidor FTP seguro e de alto desempenho. Mas como fazê-lo? No próximo tópico apresento um passo a passo.
Como instalar um FTP server rápido e seguro no Linux?
Para instalar um servidor FTP Linux de alta performance e segurança, os especialistas costumam utilizar uma excelente ferramenta chamada vsftpd (Very Secure FTP Daemon).
Trata-se de um servidor para sistemas baseados em UNIX, distribuído sob licença GPL, e que oferece estabilidade, recursos avançados, proteção e muita velocidade. Sendo assim, o nosso primeiro passo é fazer a instalação e configuração do vsftpd no Linux.
Neste tópico, vamos aprender os procedimentos para a distribuição CentOS.
Instalação e configuração do servidor FTP no CentOS
Dando início ao procedimento, abra o terminal do CentOS e digite as linhas de comando, abaixo, para instalar o vsftpd, habilitá-lo e aplicar a sua inicialização automática.
yum install vsftpd systemctl start vsftpd systemctl enable vsftpd
Em seguida, acionando o firewall, libere o acesso de sistemas externos ao servidor FTP por meio da porta 21 (onde o FTP é instalado por padrão). Digite:
firewall-cmd --zone=public --permanent --add-port=21/tcp firewall-cmd --zone=public --permanent --add-service=ftp firewall-cmd –reload
Configurando o vsftpd
A partir de agora faremos a configuração do vsftpd no CentOS. No entanto, antes de prosseguir, faça o backup do arquivo de configuração original, localizado no diretório /etc/vsftpd/vsftpd.conf:
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.orig
Pronto? Então vamos abrir o arquivo em questão e marcar os campos de configuração exatamente como no exemplo, a seguir:
anonymous_enable=NO # desabilita login anônimo local_enable=YES # libera logins locais write_enable=YES # habilita comandos FTP que modifiquem o sistema local_umask=022 # regula a permissão dos usuários locais para criar arquivos dirmessage_enable=YES # permite a exibição de mensagens quando usuários acessam um novo diretório pela primeira vez xferlog_enable=YES # habilita o registro detalhado de downloads e uploads no servidor connect_from_port_20=YES # usa a porta 20, reservada ao armazenamento de dados de FTP, no servidor para diferentes tipos de conexões xferlog_std_format=YES # mantém o padrão de formato do arquivo de registros (log) listen=NO # previne o vsftpd de executar o modo standalone listen_ipv6=YES # faz com que o vsftpd atenda a sockets IPv6 em vez de IPv4 pam_service_name=vsftpd # concede nome ao modulo PAM (Pluggable Authentication Modules) a ser usado pelo serviço vsftpd userlist_enable=YES # permite ao vsftpd carregar listas de usuários tcp_wrappers=YES # ativa os empacotadores TCP
Permitindo userlist
Concluída a etapa anterior, passaremos a configurar o arquivo etc/vsftpd.userlist. O que faremos com ele? Simplesmente, alterar o seu ajuste padrão, o qual nega acesso à lista de usuários autorizados a fazer login no servidor FTP. Marque as opções conforme o exemplo:
userlist_enable=YES userlist_file=/etc/vsftpd.userlist userlist_deny=NO
Finalizando o processo, adicione as duas configurações abaixo para restringir os usuários FTP a seus respectivos diretórios home.
chroot_local_user=YES allow_writable_crhoot=YES
Conclua salvando o arquivo e fechando-o.
Reforçando a segurança com o SELinux
Para efetivamente fazer do servidor FTP um ambiente seguro, vamos habilitar o SELinux para ler arquivos de diretórios home.
setsebool -P ftp_home_dir on semanage boolean -m ftpd_full_access --on # o comando semanage concede permissão para o FTP ler e escrever nos arquivos de diretórios home
systemctl restart vsftpds
Gostou das dicas? Agora você pode colocá-las em prática na montagem do seu próprio servidor FTP e, dentro de pouco tempo, começar a aplicar o conhecimento profissionalmente.
Porém se a sua ideia é agilizar o processo de aprendizagem e tornar-se um profissional Linux de sucesso, conheça agora a página Profissionais Linux!