Pesquisa de site

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.