Una de las principales y más interesantes formas que tenemos como administradores de entornos de sistemas es usar el protocolo FTP (File Transfer Protocol o Protocolo de Transferencia de Archivos) para las diversas tareas que implican el compartir archivos entre diversos usuarios y equipos. Sabemos que, aunque FTP es un protocolo antiguo, sigue siendo uno de los más usados gracias a sus diversas ventajas:
Como vemos el usar el protocolo FTP nos brinda la posibilidad de tener a mano una herramienta muy práctica para el tema de trasferencias. En este tutorial veremos cómo podemos montar un servidor FTP en CentOS 7.
1. Instalar y configurar archivo vsftpd
En primer lugar, debemos actualizar el sistema para comprobar si hay nuevas mejoras a los paquetes que tenemos instalados y para ello usaremos el siguiente comando:
sudo yum check-update
Sabemos que vsftpd es un servicio que trae por defecto el sistema operativo CentOS 7 y es el que nos da la posibilidad de gestionar todo lo relacionado con el protocolo FTP. Dentro de las principales características que tenemos al usar vsftpd tenemos:
- Conectividad IPv6
- Usuarios virtuales
- Configuraciones IP virtuales
- Posibilidad de encriptación al usar el protocolo SSH para las conexiones
- Gran ancho de banda, entre otras.
Para instalar vsftpd en CentOS 7 usaremos el siguiente comando:
sudo yum -y install vsftpd
Una vez hayamos instalado vsftpd de manera correcta todos los parámetros de configuración del servicio estarán alojados en la siguiente ruta.
/etc/vsftpd/vsftpd.conf
Para ello usaremos el siguiente comando:
mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.org
A continuación, accederemos al archivo de configuración usando el editor nano, para ello ingresamos esta línea y veremos lo siguiente.
sudo nano /etc/vsftpd/vsftpd.conf
El primer cambio a realizar es deshabilitar el acceso al usuario anónimo para incrementar la seguridad de nuestro servidor, para ello vamos a la línea 12 llamada
anonymous_enable=YESy la estableceremos como
anonymous_enable=NO
A continuación, quitamos el comentario (Símbolo #) a la línea 100 la cual se llama chroot_local_user=YES para restringir el acceso al directorio home.
Finalmente vamos al final del archivo y debemos añadir las siguientes líneas que nos permitirán habilitar el modo pasivo y permitir que el chroot sea escribible.
allow_writeable_chroot=YES pasv_enable=Yes pasv_min_port=40000 pasv_max_port=40100
Guardamos los cambios usando la combinación de teclas
Ctrl + O
y salimos del editor usando
Ctrl + X
2. Reiniciar archivo vsftpd en Linux
Cada vez que se realice alguna modificación en el archivo de configuración debemos reiniciar el servicio para que los cambios sean aplicados, para ello usaremos el siguiente comando:
systemctl restart vsftpd.service
Y el siguiente comando nos permitirá iniciar de manera automática vsftpd después del reinicio:
systemctl enable vsftpd.service
3. Permitir acceso del servicio de FTP en el Firewall en CentOS 7
El siguiente paso consiste en permitir que el Firewall habilite el acceso vía FTP y para ello debemos autorizar los puertos por los cuales se realizará la comunicación.
Para ello ingresamos el siguiente comando:
sudo firewall-cmd --permanent --add-service=ftpPosteriormente recargamos el servicio usando el comando
sudo firewall-cmd –reload
Recordemos que SEinux (Security-Enhanced Linux) es un módulo de seguridad que permite aplicar políticas de seguridad para el acceso de los usuarios. Para habilitarlo en CentOS 7 ingresaremos el siguiente comando:
sudo setsebool -P ftp_home_dir onDe esta forma hemos habilitado permisos de FTP dentro de CentOs 7.
4. Crear del usuario para el acceso por FTP a CentOS 7
A continuación, crearemos el usuario ftp_Solvetic el cual será el usuario a utilizar para acceder vía FTP a CentOS 7 y lo crearemos en la ruta /sbin/nologin para evitar que el Shell acceda al servidor.
En este caso ingresaremos lo siguiente:
sudo useradd -m ftp_Solvetic -s /sbin/nologin
Establecemos la contraseña usando el comando passwd.
sudo passwd ftp_Solvetic
En este punto ya podemos conectarnos usando algún cliente como Putty, Filezilla, etc., usando el puerto 21.
Ingresamos nuestras credenciales con el usuario recién creado.
Podemos acceder de forma segura y rápida al servidor FTP en CentOS 7.
5. Instalar y configurar OpenSSH Server en CentOS 7
Otra de las alternativas que tenemos es instalar y configurar SSH en CentOS 7 para acceder desde el puerto 22 y para ello realizaremos lo siguiente.
Para esto ingresaremos el siguiente comando:
sudo yum -y install openssh-server
Una vez descargado e instalado crearemos un grupo para el acceso por FTP, para ello ingresaremos lo siguiente:
sudo groupadd accesoftp (El nombre lo podemos determinar según el criterio nuestro)
Por defecto la ruta donde se almacena la configuración es /etc/ssh/sshd_config por ello abrimos este archivo usando el editor preferido y veremos lo siguiente.
Allí debemos ubicar la línea 142 cuyo nombre es Subsystem sftp /usr/libexec/openssh/sftp-server y debemos comentarla anteponiendo el símbolo #.
Finalmente ingresamos las siguientes líneas en la parte inferior del archivo:
- Subsystem sftp internal-sftp
- Match group accesoftp (Acá ingresamos el nombre del grupo creado)
- ChrootDirectory %h
- X11Forwarding no
- AllowTcpForwarding no
- ForceCommand internal-sftp
Guardamos los cambios y salimos del editor con la siguientes combinaciones. Después reiniciamos el servicio SSH usando el comando:
sudo systemctl restart sshdPara guardar los cambios:
Ctrl + O
Para salir del editor:
Ctrl + X
6. Crear de usuario para acceso vía SSH a CentOS 7
A continuación, crearemos el usuario Solvetic_SSH y le brindaremos acceso al grupo que hemos creado, para ello ingresamos lo siguiente:
useradd -m Solvetic_SSH -s /sbin/nologin -g accesoftp
Procedemos a definir la contraseña del usuario usando el comando passwd.
passwd Solvetic-SSH
El siguiente paso consiste en otorgar los permisos al usuario creado como root al directorio Home y que pueda modificar los mismos, para ello ingresamos los siguientes comandos:
chown root /home/Solvetic_SSH chmod 750 /home/Solvetic_SSH
Una vez otorgados los permisos al usuario vamos a crear un directorio llamado www dentro del directorio Home y para esto ingresaremos lo siguiente:
mkdir /home/Solvetic_SSH/www chown Solvetic_SSH:accesoftp /home/Solvetic_SSH/www
En este caso accedemos desde Fedora 24 al FTP en CentOS 7 y podemos ver que funciona de manera correcta. Basta con ingresar ftp Dirección_IP e ingresar las credenciales respectivas.
Usando estos métodos podemos montar de manera sencilla y práctica un servidor FTP en CentOS 7. Tener montado nuestro servidor FTP nos aporta diversas ventajas a la hora de realizar transferencia de archivos facilitándonos mucho el trabajo. En Windows 10 también existen diferentes formas para crear un servidor FTP, la más útil sin duda es aquella que no necesita de programas externos.
Buscaba esto. Gracias de veras y encima para Centos que era lo que necesitaba. Tengo la versión 6 pero será igual.