Montar un servidor FTP desde 0, con PROFTPD

proftpdQuien haya trabajado como administrador de sistemas o como webmaster de un sitio web, sabe los importante que es el servicio FTP, y lo que facilita el día a día.

PROFTPD es un programa muy potente,  fácil de usar y administrar. Partimos de la base que trabajamos con una máquina GNU/Linux, basada en Debian, ya sea el propio Debian, o Ubuntu o Elementary OS o la que sea.

Desde la línea de comandos sólo tendremos que teclear el siguiente mandato:

  1. apt-get -y update && apt-get -y install proftpd

A mitad de la instalación nos preguntará cómo queremos que se ejecute el servicio, en modo «standalone» o desde inetd. La diferencia entre ambos radica en que desde inetd cada vez que se produzca una nueva conexión se abrirá un nuevo proceso, con la carga del sistema que conlleva. En modo «standalone» el servicio se ejecuta en un proceso independiente, de ésta manera el proceso ya estará iniciado, y no hará falta volverlo a iniciar. Por lo tanto elegimos «standalone».

proftpd-instalar1Al acabar la instalación veremos los siguientes mensajes en nuestra consola:

proftpd-instalar2Una vez instalado lo podemos configurar modificando el archivo .conf , ubicado en /etc/proftpd/proftpd.conf

PROFTPD usará nuestros usuarios locales como usuarios por defecto del servicio. Si queremos podemos crear uno nuevo para que sólo se use para el servicio FTP.

¿Qué nos interesa modificar de éste archivo? Vayamos por partes.

Al principio del archivo nos encontraremos con las siguintes líneas:

ServerName                 «Debian»  # En mi caso, aquí podemos poner un nombre descriptivo de nuestro servidor FTP»

ServerType                   standalone # Podemos standalone o inetd

DeferWelcome            off # Si nos interesa dar un mensaje de bienvenida

Más adelante en el archivo nos encontraremos con una línea muy importante:

#Use this to jail all users in their homes

#DefaultRoot        

Vale, aquí podemos indicar que nuestros usuarios vean al conectarse su home. Para hacer esto descomentaremos la línea:

DefaultRoot

Si por ejemplo queremos que en vez de la home se use la carpeta por defecto de los proyectos webs /var/www, lo indicaremos así:

DefaultRoot                            /var/www

Todo bien hasta éste punto, ahora añadiremos una línea muy importante. Ya que si no lo hacemos nuestros usuarios podrán navegar libremente por todo el servidor.

Procederemos a enjaular a los usuarios dentro de la carpeta indicada, mediante la línea:

DefaultChdir                           /var/www

Otras partes importantes del archivo, son las siguientes:

#Port 21 is the stantdard FTP port.

Port                                       21

Cómo indica la descripción en inglés el puerto por defecto es el 21, si queremos podemos usar otro diferente.

#Set the user and group that the server normally runs at

User                                         ochobits

Group                                       ochobits

Indicamos el usuario y el grupo habitual. ochobits, es un ejemplo de usuario y grupo.

Por normal general no suelo modificar más cosas del archivo de configuración.

Ahora podemos reiniciar el servicio:

  1. service proftpd restart

Existen varios comandos adicionales que nos pueden ser de mucha ayuda:

ftpwho, que nos servirá para ver los usuarios conectados al server FTP

ftptop, similar a ftpwho pero nos da más información y en directo de los usuarios conectados.

Espero haya sido interesante el artículo. No dudéis en preguntar. Si tenéis cualquier duda sobre el servicio os intentaré ayudar.