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.