freeFTPd: Configuración de este servidor FTP, FTPES y SFTP para Windows

Si necesitas configurar un servidor FTP, FTPES o SFTP en sistemas operativos Windows, una alternativa muy recomendable es utilizar el software freeFTPd. Este programa nos permitirá montar un servidor FTP muy configurable, y de manera muy rápida y fácil, sin necesidad de tener amplios conocimientos de redes o sistemas. Este freeFTPd es un software completamente gratuito, y si usamos FTPES o SFTP, tendremos garantizada la seguridad en las comunicaciones al utilizar cifrado de datos.

Instalación de freeFTPd

Para instalar freeFTPd, lo primero que debemos hacer es descargarnos el instalador desde la web oficial de freeFTPD. Una vez descargado, deberemos ejecutar el instalador, y durante la instalación nos preguntará qué componentes deseamos instalar, deberéis elegir la única opción que permite que es “Full installation”, es decir, instalación completa.

Una vez que se ha completado el instalador nos saldrá una ventana emergente diciéndonos que, si queremos crear las claves privada ahora, le debemos responder que sí, de esta forma, podremos conectarnos a través de protocolos seguros como FTPES y SFTP al propio servidor. Seguidamente nos preguntará si queremos arrancar el servicio de freeFTPd, deberemos también responder que sí. Y con esto, ya tendríamos el servidor instalado en nuestro equipo.

Puesta en marcha y configuraciones de freeFTPd

La primera vez que ejecutemos freeFTPd, nos encontraremos una ventana con un menú lateral izquierdo con diferentes opciones, y a la derecha una ventana con la opción seleccionada. Al ser la primera vez que lo ejecutamos, en este caso, sale que el servidor FTP y SFTP están apagados ya que aún no están configurados.

Menús de administración de freeFTPd

Vamos a repasar los diferentes menús empezando de arriba hacia abajo.

Status: En este menú nos muestra la información del estado del servidor FTP y SFTP, además, también podemos ver abajo del todo la versión de servidor que estamos usando. En este caso la versión es la 1.0.13.

FTP: En este menú debemos configurar todas las opciones del FTP, además, se divide en otro submenú llamado SSL, donde deberemos configurar el protocolo FTPES seguro. Vamos a ver que opciones tenemos dentro de FTP.

  • Listen address: En esta opción debemos escoger qué interfaces admitirán el servidor FTP, es decir, podemos elegir, todas las interfaces, solo localhost, o las diferentes direcciones IP todas las tarjetas de red que tengamos configuradas en el equipo.
  • Port: Aquí debemos especificar qué puerto usará el servidor FTP, por defecto viene el puerto 21.
  • Max number of connections: Aquí podemos especificar cuantas conexiones como máximo admitirá nuestro servidor FTP. Si lo dejamos en 0, se considera que no tiene ningún límite de conexiones.
  • Idle timeout: Esta opción sirve para especificar cuantos segundos deben pasar antes de que devuelva un error de timeout. Si lo dejamos en 0, se considera que no tiene ningún límite en cuanto a segundos deben pasar.
  • Greeting message file: Aquí podemos seleccionar un archivo con extensión *.txt, dentro podemos tener escrito un mensaje que le aparecerá al usuario cada vez que se conecte con un cliente al servidor FTP configurado.
  • Goodbye message file: Aquí podemos seleccionar un archivo con extensión *.txt, dentro podemos tener escrito un mensaje que le aparecerá al usuario cuando se desconecte del servidor FTP.
  • FTP root directory: Esta opción sirve para especificar el directorio del servidor FTP.
  • Server status: Nos muestra el estado del servidor. Justo al lado tenemos el botón “Start” para arrancar el servidor en caso de estar parado, o “Stop” para pararlo en caso de que este arrancado. La primera vez que lo arranquemos, si usamos Windows 10 nos saldrá un aviso del firewall para que autoricemos el acceso a freeFTPd.

Dentro del menú FTP, tenemos un submenú llamado SSL, donde podemos activar las opciones de usar FTP + SSL y usar FTPS implícito. Tal y como hemos explicado anteriormente en RedesZone, es recomendable usar FTP+SSL (FTPES) pero no FTPS (Implícito). Más abajo tenemos la opción de cargar, mostrar o usar un nuevo certificado.

SFTP: En este menú debemos configurar todas las opciones del servidor SFTP, un protocolo basado en SSH, pero que aquí también lo tenemos disponible. Además, tenemos un submenú llamado Hostkey. Vamos a ver qué opciones tenemos dentro de SFTP, que son las mismas que teníamos en el menú de FTP.

  • Listen address: En esta opción debemos escoger qué interfaces admitirán el servidor SFTP, es decir, podemos elegir, todas las interfaces, solo localhost, o las diferentes direcciones IP todas las tarjetas de red que tengamos configuradas en el equipo.
  • Port: Aquí debemos especificar qué puerto usará el servidor SFTP, por defecto viene el puerto 22, el puerto bien conocido de SSH.
  • Max number of connections: Aquí podemos especificar cuantas conexiones como máximo admitirá nuestro servidor SFTP. Si lo dejamos en 0, se considera que no tiene ningún límite de conexiones.
  • Idle timeout: Esta opción sirve para especificar cuantos segundos deben pasar antes de que devuelva error de timeout. Si lo dejamos en 0, se considera que no tiene ningún límite en cuanto a segundos deben pasar.
  • Greeting message file: Aquí podemos seleccionar un archivo con extensión *.txt, dentro podemos tener escrito un mensaje que le aparecerá al usuario cada vez que se conecte un cliente SFTP al servidor SFTP.
  • Goodbye message file: Aquí podemos seleccionar un archivo con extensión *.txt, dentro podemos tener escrito un mensaje que le aparecerá al usuario cuando se desconecte del servidor SFTP.
  • SFTP root directory: Esta opción sirve para especificar el directorio del servidor SFTP.
  • Server status: Nos muestra el estado del servidor. Justo al lado tenemos el botón Start para arrancar el servidor en caso de estar parado o Stop para pararlo en caso de que este arrancado. La primera vez que lo arranquemos, si usamos Windows 10 nos saldrá un aviso del firewall para que autoricemos el acceso a freeFTPd.

Dentro del menú SFTP, tenemos un submenú llamado Hostkey, este menú es muy importante ya que aquí tenemos las diferentes claves que usará nuestro servidor SFTP.

La primera clave es RSA Key, aquí podemos seleccionar la ubicación de la clave, y nos permite varias opciones como probar la clave, y generar una nueva usando 512 bits, 1024 bits o 2048 bits. Si clicamos en generar una nueva clave, nos aparecerá el explorador de Windows, pidiéndonos dónde queremos guardar la nueva clave. Podemos elegir el lugar que queramos. Una vez guardada se actualizará automáticamente la ubicación en el menú RSA Key.

La segunda clave es DSA Key, aquí también podemos seleccionar la ubicación de la clave, y nos permite varias opciones como probar la clave, y generar una nueva usando 512 bits, 1024 bits o 2048 bits. Si clicamos en generar una nueva clave, nos aparecerá el explorador de Windows, pidiéndonos donde queremos guardar la nueva clave. Podemos elegir el lugar que queramos. Una vez guardada se actualizará automáticamente la ubicación en el menú DSA Key.

Users: En este menú podemos crear, modificar y eliminar usuarios. Para crear un nuevo usuario deberemos clicar en el botón “Add”. Se nos abrirá una nueva ventana donde debemos rellenar los siguientes datos:

  • Login: Aquí debemos poner el nombre del usuario.
  • Authorization: Debemos elegir qué método de inicio de sesión usará, os recomiendo usar la segunda opción “Password Stored as SHA1 hash” ya que el que viene por defecto que es “NT authenticacion”, sirve para iniciar sesión con la cuenta de usuario de Windows. Las demás opciones que podemos elegir son “Password stored” donde se almacenan las credenciales en texto plano, o “Anonymous user account”.
  • Password: Debemos introducir la contraseña que queramos para el usuario que estamos creando. Solo estará activada esta opción si seleccionamos en “Authorization” la opción de “Password stored as SHA1 hash”
  • Password (again): Debemos introducir de nuevo la contraseña que hemos introducido en la casilla anterior.
  • Domain: Podemos especificar un grupo.
  • Home directory: Aquí os aconsejo que lo dejéis como viene por defecto. Esta opción sirve para especificar el directorio “home”, raíz, del usuario que estamos creando.
  • Max transfer rate: Aquí podemos limitar la máxima velocidad en kbps que podrá descargar o cargar el usuario. Si lo dejamos en 0, se considera ilimitado.
  • User can access: Esta opción nos permite especificar que protocolos puede usar el usuario, para eso podemos elegir entre FTP y SFTP o ambos. Nuestro consejo es o dejar ambos, o dejar solo SFTP para garantizar la seguridad.

Para guardar el usuario deberemos clicar en “Apply”, y entonces se guardará.

Para modificar un usuario que tenemos creado, primero debemos seleccionarlo de la lista de usuarios, y, entonces, se nos activará la opción del menú superior llamada “Change”. Si clicamos en “Change” se nos volverá abrir el mismo menú que usamos para crear el usuario.

Para eliminar un usuario que tenemos creado, primero debemos seleccionarlo de la lista de usuarios y entonces se nos activará la opción del menú superior llamada “Remove”. Si clicamos en “Remove” nos aparecerá una ventana preguntándonos si estamos seguros de que deseamos eliminar el usuario seleccionado. Deberemos responder que sí, y se eliminará el usuario seleccionado.

Host restrictions: En esta opción podemos añadir una lista de direcciones IP, que tengan permitido o denegado el acceso al servidor. Dependiendo de la opción escogida, las direcciones IP que tengamos introducidas, podrán acceder al servidor, o tendrán bloqueado el acceso. Por defecto, viene configurado para que no puedan acceder.

Virtual directories: En este apartado podemos ver los directorios que tenemos virtualizados, pudiendo ver su path virtual y su path real.

Si queremos añadir un directorio virtual nuevo, deberemos introducir un nombre de carpeta en el apartado “Folder name”, el nombre del “virtual path” y clicar en el botón “Add” y seleccionar la carpeta real que queremos virtualizar en el path virtual. Una vez realizado nos aparecerá la carpeta en el menú superior. Si queremos eliminar un directorio virtual, lo primero que debemos hacer es seleccionarlo en el menú superior y seguidamente clicar en “Remove”, y automáticamente se nos eliminara.

Logging: En este apartado podemos activar que se guarde un log de todo lo que ocurre en el servidor. Para ello deberemos activar la casilla “Log events”. Una vez activado tenemos varias opciones muy interesantes. La primera es usar un único archivo para el log de los servidores FTP y SFTP, si no activamos esa opción, cada servidor tendrá su log. Es recomendable dejarlo por separado, y que tengamos un log independiente por cada servidor. La segunda opción es que resuelva la dirección IP en vez del nombre de equipo.

Por último, podemos especificar el directorio donde se guarda el archivo log del servidor FTP y FTPS, y también disponemos de un botón para acceder al log del servidor.

Online users: En este último apartado nos aparecerán los usuarios que hay actualmente conectados a nuestro servidor FTP o FTPS, mostrándonos información como su nombre de usuario, su tipo de sesión, y desde cuando están online. Abajo a la derecha, disponemos del botón “Disconnect” que nos permitirá desconectar a un usuario si lo deseamos.

Tal y como habéis visto, estamos ante un servidor compatible con los protocolos FTP y FTPES muy completo en cuanto a opciones, pero muy sencillo a la vez de usar. También debemos destacar el soporte para el protocolo SFTP basado en SSH, por si queremos usarlo en lugar de FTPES.