Montar un servidor FTP en GNU/Linux

Montar un servidor FTP puede parecer una pesadilla, más en GNU/Linux cuando se sabe que hay que manejar comandos para ello. Sin embargo, el proceso no es tan complicado como nos quieren hacer ver algunos fanboys de ciertas marcas que prefiero no mencionar, así que empiezo este tutorial para montar un servidor FTP en GNU/Linux.


Lo primero que hay que hacer es instalar el servicio, cosa que es muy simple. Este se llama vsftpd y hay que instalarlo con el gestor de paquetes de turno.
  • En Fedora: yum install vsfptd
  • En Debian: apt-get install vsfptd

Ya instalado el servicio, tendremos que seguir unos pasos simples para preparar el servidor. Hay que tener en cuenta que cada distribución realiza la instalación a su manera, con lo que es posible que te puedas saltar algunos pasos.

En primer lugar ejecutamos el siguiente comando:
  • cat /etc/group | grep ftp

Si no os sale nada similar a la imagen de abajo.


Tenéis que ejecuta el siguiente comando con permisos de root:
  • groupadd ftp

Después, como root tenemos que crear la shell fantasma /bin/ftp.

Para ello hay que comprobar antes si la ruta de ese shell existe ejecutando el siguiente comando:
  • ls /bin | grep ftp

Si os sale un fichero o una carpeta ftp a secas como me sale a mi, es que está correcto, en caso de no aparecer habrá que crearla con el siguiente comando con permisos de root:
  • mkdir /bin/ftp

Una vez creada la shell, hay que añadirla al sistema, para ello primero comprobaremos el fichero /etc/shells con cat:
  • cat /etc/shells

Si /bin/ftp aparece no tienes que hacer nada, pero en caso de no aparecer la tendrás que añadir con tu editor de texto favorito (vim, nano, Gedit, Kwrite... ) y con permisos de root.

Una vez configurado el sistema para que deje acceder a los usuarios del FTP a través de un cliente, ya podemos configurar el servidor propiamente dicho. El fichero de configuración de vsftpd se localiza en /etc/vsftpd/vsftpd.conf ó en /etc/vsftpd.conf. Tendréis que abrir este fichero con vuestro editor de texto favorito con permisos de root y cambiar los valores a la siguientes líneas. Queda claro que las líneas que están publicadas aquí es cómo deben quedar, en algunos casos tendréis que cambiar el valor de NO a YES, en otros tendréis que descomentar la línea quitando la almohadilla (#) de delante:
  • anonymous_enable=NO
  • local_enable=YES
  • write_enable=YES
  • ascii_upload_enable=YES
  • ascii_download_enable=YES

Una vez modificadas las líneas correspondientes a esos parámetros, añadiremos otras dos líneas.
  • use_localtime=YES
  • seccomp_sandbox=NO

Ya hemos terminado de editar el fichero de configuración del servidor de FTP, con lo que procedemos a añadir un usuario.

Añadir un usuario al servidor de FTP es igual que añadirle un usuario al sistemas de GNU/Linux. Podéis hacer este paso con algún gestor gráfico de usuarios si vuestra distribución dispone de uno, siempre y cuando insertéis los mismos datos. El comando para introducir un usuario al FTP es el siguiente (cabe mencionar que esto también se hace como root):
  • useradd -g ftp -d /home/invitado -c "Invitado del FTP" -s /bin/ftp invitado

Como el comando parece un poco complicado, lo "despiezaremos":
  • useradd: Es el programa para añadir usuarios de toda la vida en GNU/Linux, nada extraordinario.
  • -g ftp: El primer argumento indica a qué grupo pertenecerá el usuario. Al ser un usuario para el FTP, es lógico que vaya al grupo FTP.
  • -d /home/invitado: Es el directorio home del nuevo usuario. Se puede crear el directorio del usuario en cualquier lugar del sistema, yo de hecho lo suelo poner dentro de mi carpeta personal. Es importante que la carpeta raíz del usuario FTP sea de su propiedad y si queréis manipularla con vuestro usuario normal que tenga permisos totales (777).
  • -c "Invitado del FTP": Es un comentario del usuario, generalmente en nuestro usuario normal está compuesto por el nombre real del usuario.
  • -s /bin/ftp: Es la shell del nuevo usuario. Al ser un usuario para el FTP será la shell fantasma /bin/ftp.
  • invitado: Es el nombre del usuario.

Ya hemos creado el usuario, ahora toca asignarle una contraseña con passwd:
  • passwd invitado.

Bien, hecho todo esto ya tendríamos que tener listo todo para poder arrancar nuestro servidor FTP y ponerlo a funcionar. Cabe mencionar que si tenéis algún cortafuegos tenéis que habilitar la excepción para el FTP, porque sino el sistema rechazará todas las conexiones.

Para arrancar el servidor FTP podemos ejecutar uno de estos dos comandos, dependiendo de la distribución que usemos como root:
  • systemctl start vsftpd.service
  • /etc/init.d/vsftpd start

Si usáis Fedora u OpenSuse lo más seguro es que sea el primero. Si usáis CentOS, Debian o Ubuntu lo más seguro es que sea el primero, pero si usáis Arch la cosa cambia, así que tenéis que ejecutar el comando para arrancar servicios de vuestra distribución o bien arrancarlo de forma gráfica si usáis Yast o el Panel de Control de Mageia.

Para iniciar sesión en el FTP tendréis que usar un cliente, como defensor del Open Source recomiendo el consolidado e incombustible FileZilla, para mi el mejor para estos menesteres.

Para iniciar sesión en el servidor tendréis que poner localhost, en el usuario el nombre del usuario creado (en este tutorial, invitado) y en contraseña la misma que le habéis puesto en el comando passwd.

Si queréis que otra persona pueda acceder a vuestro FTP, tenéis que pasarle vuestra IP pública si no está compartiendo red local con vosotros, o vuestra IP dentro de vuestra red local si estáis en la misma LAN.

Bueno, con esto ya podréis montar un servidor FTP casero, os advierto que la velocidad de subida es poca si no compartís LAN, pero resulta una forma más sencilla de poder pasar ficheros de 50 megas, por ejemplo, no muy cómodos de pasar por email u otros servicios, aparte que podréis manejarlo para otras cosas como instalar plugins en los CMS en un LAMP.

Bueno, puede que el tutorial tenga algún error o bien podéis tener dudas, podéis dejar en los comentarios lo que necesitéis consultar.

Comentarios

Entradas populares