En esta breve configuración, instalaremos el servidor de archivos FTP en RHEL7 Linux usando vsftpd. Nos apegaremos a la configuración vsftpd predeterminada que permite que las cuentas de usuario en nuestro sistema RHEL7 Linux existente inicien sesión a través de FTP desde una ubicación remota, enumeren y transfieran archivos. Empecemos por la instalación:
Para instalar el servidor FTP en Redhat 7 Linux podemos usar tftp-server
o vsftpd
demonio. En esta guía usamos vsftpd
:
[root@rhel7 ~]# yum install vsftpd
A continuación, podemos iniciar el vsftpd
servicio usando un service
comando:
[root@rhel7 ~]# service vsftpd start Redirecting to /bin/systemctl start vsftpd.service
Para hacer que el inicio del servicio FTP sea persistente después de reiniciar el sistema, use:
[root@rhel7 ~]# systemctl enable vsftpd ln -s '/usr/lib/systemd/system/vsftpd.service' '/etc/systemd/system/multi-user.target.wants/vsftpd.service'
Compruebe y vea si el puerto 21
Esta abierto. No se preocupe si no ve IPv4 de este puerto abierto como enlace IPv6.
[root@rhel7 ~]# netstat -tanp | grep LISTEN
También debemos abrir el puerto del firewall; de lo contrario, veremos el siguiente mensaje de error cuando intentemos conectarnos:
ftp: connect: No route to host ftp>
Para abrir un puerto 21 en Redhat 7 Linux, use los siguientes comandos de Linux. El puerto permanece abierto al público incluso después de reiniciar el sistema:
[root@rhel7 ~]# firewall-cmd --zone=public --add-port=21/tcp --permanent success [root@rhel7 ~]# firewall-cmd --reload success
En este punto, deberíamos poder conectarnos desde un host remoto donde la dirección IP de nuestro servicio FTP es 10.1.1.110
:
$ ftp 10.1.1.110 Connected to 10.1.1.110 (10.1.1.110). 220 (vsFTPd 3.0.2) Name (10.1.1.110:lrendek): rhel7 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp>
La siguiente configuración que debemos realizar es habilitar el módulo iptables ip_conntrack_ftp
de lo contrario, veremos el siguiente mensaje de error que consulta nuestro servidor FTP después de un inicio de sesión exitoso:
ftp> ls 227 Entering Passive Mode (10,1,1,110,166,190). ftp: connect: No route to host ftp>
Como solución temporal usamos modprobe
para cargar el ip_conntrack_ftp
módulo:
[root@rhel7 ~]# modprobe ip_conntrack_ftp
Consulte esta página para obtener una solución más permanente sobre cómo cargar el módulo ip_conntrack_ftp después de reiniciar.
La última configuración que debemos realizar es habilitar el contexto FTP de selinux para los directorios de usuario que se encuentran actualmente en el sistema; de lo contrario, no podremos leer/escribir ni transferir ningún archivo entre el servidor FTP y el cliente FTP:
230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> put ftp-test.txt local: ftp-test.txt remote: ftp-test.txt 227 Entering Passive Mode (10,1,1,110,125,139). 553 Could not create file.
Para habilitar el contexto del directorio de inicio FTP de selinux para permitir comandos de lectura y escritura. Para esto usamos setsebool
comando:
[root@rhel7 ~]# setsebool -P ftp_home_dir=1
Lo anterior establecerá el contexto del directorio de inicio FTP de selinux de forma permanente -P
después de reiniciar.
ftp> put ftp-test.txt local: ftp-test.txt remote: ftp-test.txt 227 Entering Passive Mode (10,1,1,110,174,219). 150 Ok to send data. 226 Transfer complete.
Ahora tiene la configuración de su servidor FTP. Para obtener más opciones de configuración, consulte el archivo de configuración del servidor FTP vsftpd principal /etc/vsftpd/vsftpd.conf
. Al realizar cambios en el archivo de configuración, asegúrese de aplicarlos reiniciando el servicio FTP:
[root@rhel7 ~]# service vsftpd restart Redirecting to /bin/systemctl restart vsftpd.service