Instalar y configurar Servidor FTP en Rocky Linux (Red Hat Linux)

Configurar un servidor FTP es un paso fundamental para la gestión de archivos.

Identificación del entorno

Necesitamos saber exactamente sobre qué estamos trabajando.

Nmbre de host

hostname

Sistema Operativo y versión

cat /etc/os-release

Paso 1 Cambio de nombre de host (Hostname)

Para que el sistema reconozca el nuevo nombre de forma permanente y se refleje en los servicios que instalaremos, ejecutar:

sudo hostnamectl set-hostname senati.ftp

Ejecuta nuevamente hostname y verifica el estado general con:

hostnamectl status

Paso 2: Actualización del Sistema y Repositorios

Antes de instalar cualquier servicio (especialmente uno de transferencia de archivos como FTP), es vital asegurarnos de que los índices de paquetes y el sistema base estén al día para evitar conflictos de dependencias.

sudo dnf update -y

Paso 3: Instalación de vsftpd

Vamos a instalar vsftpd (Very Secure FTP Daemon). Es el estándar en entornos RHEL/Rocky Linux por ser ligero, estable y, como su nombre indica, centrado en la seguridad.

sudo dnf install vsftpd -y

Habilitar, iniciar y comprobar servicio:

sudo systemctl enable vsftpd
sudo systemctl start vsftpd
sudo systemctl status vsftpd

Paso 4: Configuración del Firewall (firewalld)

En Rocky Linux, el firewall viene activo por defecto y bloquea cualquier conexión entrante que no hayamos autorizado explícitamente. Necesitamos permitir el tráfico del servicio FTP y recargar la configuración.

Permitir el servicio:

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

Recargar Firewall

sudo firewall-cmd --reload

Verificar el servicio

sudo firewall-cmd --list-services

Paso 5: Creación del Usuario de FTP

Por seguridad, no es recomendable usar el usuario root. Vamos a crear un usuario dedicado para que realice las transferencias de archivos.

Crear usuario y asignar contraseña:

sudo adduser senati
sudo passwd senati

Crear archivo de prueba en carpeta local del usuario ftp:

sudo -u senati touch /home/senati_user/test_ftp.txt

Paso 6: Configuracion

sudo nano /etc/vsftpd/vsftpd.conf

Busca y asegúrate de que estas líneas estén configuradas así (si tienen un # al principio, quítalo para habilitarlas)

  • anonymous_enable=NO (Para que nadie entre sin contraseña).
  • local_enable=YES (Para permitir usuarios del sistema como senati_user).
  • write_enable=YES (Para que el usuario pueda subir archivos, no solo verlos).

Reinicia Servicio:

sudo systemctl restart vsftpd
sudo systemctl status vsftpd

Paso 7: Prueba de Conexión Local

Antes de intentar conectar desde otra computadora, debemos asegurarnos de que el servidor responde a sí mismo. Para esto, usaremos el cliente FTP básico por línea de comandos.

Instalar el cliente FTP:

sudo dnf install ftp -y

Intentar la conexión al localhost

ftp localhost

Paso 8: Configuración de SELinux

Habilitar el acceso a directorios personales. Este comando le dice a SELinux: «Confío en vsftpd para que gestione los archivos según los permisos de Linux que ya configuramos»

sudo setsebool -P ftpd_full_access 1

Confirma que el interruptor está encendido

getsebool ftpd_full_access

Solo para estar 100% seguros de que los archivos creados manualmente tienen la «etiqueta» correcta de SELinux

sudo restorecon -Rv /home/senati

Verificación final del paso:

Intenta entrar una última vez desde la terminal:

  1. ftp localhost
  2. Logueate como senati_user.
  3. Prueba a crear un directorio de prueba estando dentro del FTP: mkdir test_directory

Paso 9: Cconexión externa desde Windows (CMD)

Ejecuta un ping a tu servidor Rocky, en nuestro caso la ip de Rocky es 192.168.56.110:

ping 192.168.56.110

Prueba de conexión desde cmd en Windows

ftp 192.168.56.110

  • Usuario: senati
  • Contraseña: (La que asigaste).

Paso 10: Conectarnos desde explorador de archivos

ftp://192.168.56.110

Ingresar tus credenciales y verificar

Listo, ya tenemos un servidor FTP en Rocky Linux