31.01.2025

Como configurar o acesso ao FTP no CentOS 8

Um servidor FTP é útil para gerenciar sites e compartilhar arquivos. Neste tutorial, configuraremos o acesso ao FTP no CentOS 8 usando o vsftpd.

Instalação e configuração do servidor FTP

Vamos instalar o pacote vsftpd.

dnf install vsftpd

Agora, inicie o serviço.

systemctl start vsftpd

E adicione-o à execução automática.

systemctl enable vsftpd

Abra o arquivo /etc/vsftpd/vsftpd.conf.
Verifique esses parâmetros para ter certeza de que estão com os valores corretos. Atualmente, proibimos o login anônimo e o permitimos para usuários locais. A gravação de FTP também é permitida.

anonymous_enable=NO
local_enable=YES
write_enable=YES

Localize e descomente essa linha para restringir o acesso a tudo, exceto ao diretório inicial.

chroot_local_user=YES

E adicione esta linha ao final do arquivo para conceder acesso para alterar e gravar arquivos via FTP.

allow_writeable_chroot=YES

Agora salve e feche o arquivo e abra /etc/pam.d/vsftpd. Comente esta linha no arquivo:

#auth required pam_shells.so

Se você usar o firewalld, adicione o serviço FTP a ele.

firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload

Reinicie o serviço FTP.

systemctl restart vsftpd

Criação de um usuário para acesso ao FTP

Crie um novo usuário e defina a senha para ele.

useradd newftpuser
passwd newftpuser

Para evitar que ele faça login via ssh, altere seu shell.

usermod --shell /sbin/nologin newftpuser

Usando SSL/TLS para FTP seguro

Você pode usar SSL/TLS para criptografar sua conexão. Para essa finalidade, você pode usar o Let's Encrypt ou um certificado SSL autoassinado.
No arquivo /etc/vsftpd/vsftpd.conf, adicione os caminhos para as chaves e ative a opção ssl_enable.

rsa_cert_file=/etc/letsencrypt/live/domain_name/fullchain.pem
rsa_private_key_file=/etc/letsencrypt/live/domain_name/privkey.pem
ssl_enable=YES

E reinicie o serviço.

systemctl restart vsftpd