Como instalar, configurar e proteger o servidor FTP no RHEL 8
FTP (significa “File Transfer Protocol”) é um protocolo de rede padrão e antigo usado para a transferência de arquivos entre um cliente e um servidor em uma rede de computadores. Ele é construído em uma arquitetura de modelo cliente-servidor, que oferece acesso a arquivos e diretórios através de um cliente FTP, para fazer upload de arquivos para o servidor, bem como baixar arquivos dele.
Em nosso artigo anterior, explicamos como instalar, configurar e proteger o servidor FTP no CentOS/RHEL 7 para a transferência de arquivos de computador entre um cliente e um servidor em uma rede de computadores.
Neste artigo, descreveremos como instalar, configurar e proteger um servidor FTP no RHEL 8 para compartilhamento básico de arquivos entre computadores.
Instale o servidor FTP no RHEL 8
1. Para instalar o pacote FTP seguro, use o seguinte comando dnf.
dnf install vsftpd
2. Quando a instalação for concluída, você precisa iniciar o serviço vsftpd enquanto isso, habilitá-lo para iniciar automaticamente na inicialização do sistema e então verificar o status usando os seguintes comandos systemctl.
systemctl start vsftpd
systemctl enable vsftpd
systemctl status vsftpd
3. Em seguida, você precisa abrir a porta FTP 21 no firewall do sistema para permitir o acesso aos serviços FTP de sistemas externos.
firewall-cmd --zone=public --permanent --add-port=21/tcp
firewall-cmd --zone=public --permanent --add-port=45073/tcp
firewall-cmd --reload
Configure o servidor FTP no RHEL 8
4. Para configurar um servidor FTP, você precisa fazer o backup do arquivo de configuração principal do FTP /etc/vsftpd/vsftpd.conf
usando o seguinte comando de cópia.
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.orig
5. Em seguida, abra o arquivo de configuração usando seu editor de linha de comando favorito.
vi /etc/vsftpd/vsftpd.conf
Defina os seguintes parâmetros com estes valores correspondentes (consulte man vsftpd.conf para obter o significado dos parâmetros de configuração):
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
6. Em seguida, você precisa configurar o FTP para permitir/negar aos usuários o acesso aos serviços FTP com base no arquivo de lista de usuários /etc/vsftpd.userlist.
Por padrão, os usuários listados no arquivo /etc/vsftpd.userlist
têm acesso negado com a opção userlist_deny
definida como YES
, se userlist_enable =SIM
, permite o acesso.
Porém, definir o parâmetro userlist_deny=NO
altera a configuração, o que significa que apenas usuários listados explicitamente em userlist_file=/etc/vsftpd.userlist
terão permissão para fazer login.
Portanto, adicione as seguintes linhas em seu arquivo de configuração vsftpd.conf
(ou se já existir, remova o comentário e defina seus valores conforme mostrado):
userlist_enable=YES # allow access to list of usernames from the userlist_file
userlist_file=/etc/vsftpd.userlist # stores usernames.
userlist_deny=NO
7. Agora adicione as seguintes linhas em seu arquivo de configuração vsftpd.conf
para restringir os usuários de FTP aos seus diretórios iniciais.
chroot_local_user=YES #means local users will be placed in a chroot jail, their home directory after login by default settings.
user_sub_token=$USER
local_root=/home/$USER/ftp
Salve as alterações no arquivo e feche-o.
8. Defina a seguinte regra booleana do SELinux para permitir que o FTP leia/grave arquivos do diretório inicial do usuário.
semanage boolean -m ftpd_full_access --on
9. Por fim, reinicie o serviço vsftpd para afetar todas as alterações que fizemos acima:
systemctl restart vsftpd
Testando servidor FTP no RHEL 8
10. Para testar se a configuração de FTP acima está funcionando bem, comece criando um usuário FTP com o comando useradd e crie uma senha para esse usuário.
useradd -m -c "Tecmint HowTos" -s /bin/bash tecmint
passwd tecmint
11. Em seguida, adicione o usuário tecmint ao arquivo /etc/vsftpd.userlist usando o comando echo da seguinte maneira.
echo "tecmint" | tee -a /etc/vsftpd.userlist
cat /etc/vsftpd.userlist
12. Em seguida, crie o diretório raiz local alternativo para o usuário (tecmint, o seu provavelmente é diferente) e defina as permissões apropriadas neste diretório.
mkdir -p /home/tecmint/ftp
chown nobody:nobody /home/tecmint/ftp
chmod a-w /home/tecmint/ftp
13. Em seguida, crie um diretório dentro do local raiz local, onde o usuário manterá seus arquivos.
mkdir /home/tecmint/ftp/files
chown tecmint:tecmint /home/tecmint/ftp/files
chmod 0700 /home/tecmint/ftp/files/
14. Agora conecte-se ao servidor FTP usando qualquer cliente FTP da seguinte maneira.
ftp [email
Saída de amostra
Connected to 192.168.56.100
220 Welcome to TecMint.com FTP service.
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
É isso! Neste artigo, descrevemos como instalar, configurar e proteger um servidor FTP no RHEL 8. Em nosso próximo artigo, mostraremos como proteger o servidor FTP usando conexões SSL/TLS. Até então, fique conosco.