Búsqueda de sitios web

Cómo instalar, configurar y proteger el servidor FTP en RHEL 8


FTP (significa “Protocolo de transferencia de archivos”) es un protocolo de red antiguo y estándar que se utiliza para la transferencia de archivos entre un cliente y un servidor en una red informática. Está construido sobre una arquitectura modelo cliente-servidor, que ofrece acceso a archivos y directorios a través de un cliente FTP, para cargar archivos al servidor y descargarlos desde él.

En nuestro artículo anterior, explicamos cómo instalar, configurar y proteger el servidor FTP en CentOS/RHEL 7 para la transferencia de archivos informáticos entre un cliente y un servidor en una red informática.

En este artículo, describiremos cómo instalar, configurar y proteger un servidor FTP en RHEL 8 para compartir archivos básicos entre computadoras.

Instalar el servidor FTP en RHEL 8

1. Para instalar el paquete FTP seguro, utilice el siguiente comando dnf.

dnf install vsftpd

2. Cuando se complete la instalación, debe iniciar el servicio vsftpd mientras tanto, habilitarlo para que se inicie automáticamente al iniciar el sistema y luego verificar el estado usando los siguientes comandos systemctl.

systemctl start vsftpd
systemctl enable vsftpd
systemctl status vsftpd

3. A continuación, debe abrir el puerto FTP 21 en el firewall del sistema para permitir el acceso a los servicios FTP desde sistemas externos.

firewall-cmd --zone=public --permanent --add-port=21/tcp
firewall-cmd --zone=public --permanent --add-port=45073/tcp
firewall-cmd --reload

Configurar el servidor FTP en RHEL 8

4. Para configurar un servidor FTP, debe realizar una copia de seguridad del archivo de configuración FTP principal /etc/vsftpd/vsftpd.conf usando el siguiente comando de copia.

cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.orig

5. Luego abra el archivo de configuración usando su editor de línea de comando favorito.

vi /etc/vsftpd/vsftpd.conf

Establezca los siguientes parámetros con los valores correspondientes (consulte man vsftpd.conf para conocer el significado de los parámetros de configuración):

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. A continuación, debe configurar FTP para permitir/denegar a los usuarios el acceso a los servicios FTP según el archivo de lista de usuarios /etc/vsftpd.userlist.

De forma predeterminada, a los usuarios enumerados en el archivo /etc/vsftpd.userlist se les niega el acceso con la opción userlist_deny establecida en YES, si userlist_enable =SI, habilita el acceso.

Pero configurar el parámetro userlist_deny=NO altera la configuración, lo que significa que solo los usuarios enumerados explícitamente en userlist_file=/etc/vsftpd.userlist podrán iniciar sesión.

Por lo tanto, agregue las siguientes líneas en su archivo de configuración vsftpd.conf (o si ya existen, descomentelas y establezca sus valores como se muestra):

userlist_enable=YES                   # allow access to list of usernames from the userlist_file
userlist_file=/etc/vsftpd.userlist    # stores usernames.
userlist_deny=NO   

7. Ahora agregue las siguientes líneas en su archivo de configuración vsftpd.conf para restringir a los usuarios de FTP a sus directorios de inicio.

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   	

Guarde los cambios en el archivo y ciérrelo.

8. Establezca la siguiente regla booleana de SELinux para permitir que FTP lea/escriba archivos del directorio de inicio del usuario.

semanage boolean -m ftpd_full_access --on

9. Finalmente reinicie el servicio vsftpd para afectar todos los cambios que hicimos hasta ahora:

systemctl restart vsftpd

Prueba del servidor FTP en RHEL 8

10. Para probar si la configuración FTP anterior está funcionando bien, comience creando un usuario FTP con el comando useradd y cree una contraseña para ese usuario.

useradd -m -c "Tecmint HowTos" -s /bin/bash tecmint
passwd tecmint

11. Luego agregue el usuario tecmint al archivo /etc/vsftpd.userlist usando el comando echo de la siguiente manera.

echo "tecmint" | tee -a /etc/vsftpd.userlist
cat /etc/vsftpd.userlist

12. Luego cree el directorio raíz local alternativo para el usuario (tecmint, el suyo probablemente sea diferente) y establezca los permisos apropiados en este directorio.

mkdir -p /home/tecmint/ftp
chown nobody:nobody /home/tecmint/ftp
chmod a-w /home/tecmint/ftp

13. A continuación, cree un directorio dentro de la ubicación raíz local, donde el usuario guardará sus archivos.

mkdir /home/tecmint/ftp/files
chown tecmint:tecmint /home/tecmint/ftp/files
chmod 0700 /home/tecmint/ftp/files/

14. Ahora conéctese al servidor FTP utilizando cualquier cliente FTP de la siguiente manera.

ftp [email 
Salida de muestra
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

¡Eso es todo! En este artículo, describimos cómo instalar, configurar y proteger un servidor FTP en RHEL 8. En nuestro próximo artículo, mostraremos cómo proteger el servidor FTP mediante conexiones SSL/TLS. Hasta entonces, quédate con nosotros.