Como configurar um servidor FTP Linux para transferências rápidas de arquivos

FTP, ou File Transfer Protocol, é um protocolo padrão para enviar e receber arquivos de servidores remotos. É mais fácil de usar do que alternativas de linha de comando como scp, especialmente com interfaces GUI como FileZilla.
O que é FTP?
Antigamente, os servidores FTP públicos eram uma forma muito comum de disponibilizar arquivos para um grande número de pessoas. Hoje, o FTP ainda existe e é amplamente usado para tarefas administrativas.
Embora alguma forma de FTP CLI seja enviada com a maioria dos principais sistemas operacionais, clientes GUI como o FileZilla tornam o processo de mover arquivos entre servidores tão simples quanto arrastar e soltar do armazenamento local para o armazenamento remoto, ou vice-versa. Todo o tráfego subjacente é tratado usando FTP.

A configuração requer que você instale e configure um servidor FTP, como vsftpd, na máquina remota que deseja acessar.
Deve-se observar que usuários logados via FTP terão acesso ao seu sistema, assim como você. Existem etapas que você pode realizar para atenuar esses riscos, como colocar o acesso na lista de permissões e bloquear os usuários em seus diretórios pessoais.
Instalando o vsftpd
Para começar, instale o vsftpd a partir do gerenciador de pacotes da sua distro. Para sistemas baseados em Debian como Ubuntu, seria de apt:
sudo apt-get install vsftpd
A seguir, você terá que iniciar o serviço e configurá-lo para ser executado no momento da inicialização:
systemctl start vsftpd
systemctl enable vsftpd
O FTP tem dois métodos principais de autenticação:
- FTP anônimo, onde qualquer pessoa pode fazer login sem senha. É usado para compartilhamento público de arquivos e está desabilitado por padrão.
- Login de usuário local, que permite que qualquer usuário em / etc / passwd acesse o FTP usando nome de usuário e senha.
Provavelmente, você desejará ativar o login de usuário local e manter o acesso anônimo desativado. O login no FTP usando sua conta de usuário dará acesso a qualquer coisa que sua conta possa acessar.
Abra /etc/vsftpd. conf em seu editor de texto favorito e altere a seguinte linha para SIM:
write_enable = SIM
Com a reinicialização do vsftpd (systemctl restart vsftpd), agora você deve ser capaz de fazer o login no FTP usando um cliente como o FileZilla ou o CLI em sua máquina pessoal.
Se você deseja habilitar o FTP apenas para usuários específicos, pode colocar o acesso na lista de permissões. Abra /etc/vsftpd. userlist e adicione os nomes de cada conta que deseja ativar em linhas separadas.
nano /etc/vsftpd. userlist
Em seguida, adicione as seguintes linhas a /etc/vsftpd. conf:
userlist_enable = SIM userlist_file = / etc / vsftpd. userlist userlist_deny = NÃO
Isso restringirá o acesso apenas aos usuários definidos no arquivo de lista de usuários e negará todos os outros.
Se você não quiser que os usuários acessem arquivos fora de seu diretório pessoal, você pode colocá-los em uma jaula chroot, o que os impedirá de interagir com quaisquer diretórios de nível superior. Você pode habilitar isso descomentando a seguinte linha em /etc/vsftpd. conf:
chroot_local_user = SIM
Reinicie o vsftpd com systemctl restart vsftpd para aplicar as alterações.
Configurando FTPS
O tráfego de FTP padrão é enviado não criptografado como HTTP. Obviamente, isso não é ótimo, então você deve configurar o vsftpd para criptografar o tráfego com TLS.
Para fazer isso, gere uma nova chave e assine uma solicitação com openssl:
openssl genrsa -des3 -out FTP. key openssl req -new -key FTP. key -out certificate. csr
O vsftpd precisa que a senha seja removida desta chave, então copie a chave e passe-a de volta para o openssl:
cp FTP. key FTP. key. orig openssl rsa -in FTP. key. orig -out ftp. key
Por fim, gere um certificado TLS usando esta chave:
openssl x509 -req -days 365 -in certificate. csr -signkey ftp. key -out mycertificate. crt
Copie a chave e o certificado para / etc / pki / tls / certs /:
cp ftp. key / etc / pki / tls / certs / cp mycertificate. crt / etc / pki / tls / certs
Agora que todos os certificados estão configurados, você pode abrir novamente /etc/vsftpd. conf e adicionar as seguintes linhas:
ssl_enable = SIM allow_anon_ssl = SIM ssl_tlsv1 = SIM ssl_sslv2 = NÃO ssl_sslv3 = NÃO rsa_cert_file = / etc / pki / tls / certs / mycertificate. crt rsa_private_key_file = / etc / skey_file / tlskey / tlskey = HIGH require_ssl_reuse = NO
Reinicie o vsftpd com systemctl restart vsftpd para aplicar as alterações.
Nenhum comentário