FreeSSHd para Windows, configura un servidor SSH y SFTP fácilmente

FreeSSHd es un completo software que nos permitirá montar en nuestro sistema operativo Windows un servidor SSH y SFTP. Este programa es completamente gratuito, y es la forma más fácil y rápida para levantar un servidor SSH en nuestro equipo, además, en el caso de que quieras transferir archivos de forma segura utilizando AES para la transferencia de archivos, podrás usar el servidor SFTP integrado en este software. Hoy en RedesZone os vamos a explicar cómo descargarlo, instalarlo y utilizarlo, ya que tenemos bastantes opciones de configuración avanzadas, ideal para configurar el servidor con todo detalle.

 

Descarga e instalación

Lo primero que debes hacer es descargar el software FreeSSHd de la página web oficial. Una vez que estés en el menú de descarga del programa, vais a poder ver la versión de FreeSSHd que es la 1.3.1, también podéis descargar el popular servidor FTP muy fácil de instalar y utilizar que se llama FreeFTPd. En la siguiente imagen podéis ver la descarga de ambos software:

El asistente de instalación de este programa es exactamente igual que cualquier otro software. Tenemos que pinchar en «Next», definir la localización de la instalación, si queremos la instalación completa, darle un nombre para la sección de programas, si queremos crear un icono en el escritorio y un resumen de las configuraciones anteriormente realizadas. Finalmente, tenemos que pinchar en la sección de «Install» para proceder con la instalación.

El asistente de instalación nos preguntará si queremos crear las claves privadas para el SSH, pinchamos en «Sí» para crearlas automáticamente y sin que tengamos que hacer nada más. También nos preguntará si queremos utilizar este programa como servicio del sistema, pinchamos en «Sí» para que se inicie con el sistema operativo, de lo contrario, podemos pinchar en «No».

Tal y como podéis ver, la descarga y la instalación de este programa es realmente sencilla. Ahora vamos a ver todas las opciones de configuración que tenemos disponibles en este programa tan completo.

 

Opciones de configuración

En el primer menú de FreeSSDd vamos a encontrarnos el estado del servidor SSH y Telnet, de forma predeterminada, el protocolo Telnet se encuentra desactivado por cuestiones de seguridad, y no os recomendamos activarlo bajo ninguna circunstancia, siempre hay que usar SSH porque todo el tráfico va correctamente cifrado y autenticado.

En la pestaña de «Telnet» podemos configurar dónde queremos que escuche el servidor Telnet, el puerto TCP utilizado, el máximo número de conexiones concurrentes, el timeout en caso de no enviar comandos, y también si queremos poner un mensaje de bienvenida. Finalmente, tenemos la posibilidad de elegir la shell, por defecto es cmd.exe pero también podemos elegir Powershell, además, podemos habilitar Telnet al inicio del programa.

En la pestaña de «SSH» es donde tenemos todo lo relacionado con el protocolo SSH, podemos realizar las siguientes configuraciones:

  • Dirección de escucha: por defecto está escuchando en todas las interfaces de red físicas y virtuales, aquí podemos elegir que solamente escuche en una determinada interfaz.
  • Puerto: por defecto el puerto es el TCP 22, pero podemos cambiarlo al puerto que nosotros queramos.
  • Máximo número de conexiones: si lo dejamos en 0 significa número de conexiones ilimitadas.
  • Idle timeout: el tiempo que espera el servidor hasta cortar la conexión si no intercambiamos datos, por defecto es ilimitado (0).
  • Mensaje de banner: podemos poner un mensaje para los clientes SSH que se conecten al servidor.
  • Command Shell: consola de comandos a utilizar, por defecto es cmd.exe aunque también podemos usar Powershell. Otras opciones son las de iniciar el servidor SSH cuando iniciemos freeSSHd.
  • Keys: podemos configurar nuevas claves criptográficas, ya sean RSA, DSA y también ECDSA si así lo queremos. Lo más recomendable es utilizar las claves ECDSA que son las más seguras y rápidas.

En la pestaña de «Authentication» tenemos la ubicación de las claves criptográficas públicas que se intercambiarán con los clientes, también tenemos la posibilidad de configurar la autenticación basada en contraseña (deshabilitada, permitida o requerida), además, también tenemos la posibilidad de configurar la autenticación de clave pública. En «Encryption» tenemos los diferentes cifrados que permitimos a los clientes SSH, lo más seguro es utilizar AES en cualquiera de sus versiones, el resto de algoritmos de cifrado simétrico no os recomendamos usarlo, porque son inseguros o no lo suficientemente seguros para algo tan importante como el protocolo SSH. En la sección de «Tunneling» tenemos la posibilidad de habilitar el local port forwarding y también el remote por forwarding, esto nos permitirá hacer túneles SSH que es como una especie de VPN pero usando el protocolo SSH en lugar de una red privada virtual tipo OpenVPN o Wireguard. En el menú de «SFTP» es donde tenemos la ruta de la carpeta que nos aparecerá al conectarnos con cualquier cliente SFTP como FileZilla.

La gestión de los usuarios es uno de los aspectos más importantes, en este caso, en la sección de «Users» es donde podemos agregar, cambiar o eliminar los diferentes usuarios que tengamos. Al agregar un nuevo usuario, tenemos que introducir el nombre, el tipo de autorización (autenticación NT, contraseña o clave pública para el SSH únicamente). También podemos configurar si queremos que el usuario utilice la shell, use el SFTP o el Tunneling. Generalmente se debe dar permisos de Shell y SFTP, aunque de forma opcional también puedes hacer túneles SSH.

En la sección de «Host restrictions» tenemos la posibilidad de permitir solamente las direcciones IP que tengamos en el listado, podemos configurar wildcard sin problemas. También podemos configurar la lista negra, todas las IP de la lista serán bloqueadas automáticamente. En la pestaña de «Logging» tenemos la posibilidad de configurar los registros del programa freeSSHd, e incluso podemos resolver las direcciones IP en hostnames para facilitar la lectura de los registros. En el menú de «Online Users» tenemos la posibilidad de ver en tiempo real qué usuario o usuarios están actualmente conectados al servidor SSH del programa.

Ahora que ya hemos visto todas las opciones de configuración del programa, y hemos creado un usuario para conectarnos de forma local o remota a nuestro ordenador con el servidor SSH, os vamos a enseñar cómo conectarnos con el popular programa PuTTY.

 

Conexión a SSH y SFTP

PuTTY es uno de los programas más populares y usados para cliente SSH, cliente Telnet e incluso también para conectarnos por consola a un router o switch. En nuestro caso, hemos introducido la dirección IP privada del ordenador donde hemos configurado freeSSHd como servicio del sistema, también hemos introducido el número de puerto, el 22, el puerto predeterminado. El nombre de usuario y clave sí lo hemos tenido que configurar, y proporcionar permisos de «Shell» y también de «SFTP» tal y como os hemos explicado anteriormente.

Al conectarnos nos indicará que debemos aceptar la clave pública, y que no se reconoce dicha clave porque nunca nos hemos conectado, que tengamos cuidado al aceptar la clave. Una vez aceptada, procedemos a introducir el nombre de usuario y contraseña que hemos dado de alta anteriormente en el programa, una vez que nos conectemos, ya podremos ver la terminal (cmd.exe) vía SSH en nuestro cliente PuTTY.

El proceso para conectarnos vía SFTP es similar, en este caso podemos usar un programa como WinSCP que soporta el protocolo SCP y SFTP, o bien utilizar el popular programa FileZilla Client que también soporta SFTP. En este caso, introducimos la dirección sftp://IP, ponemos el nombre de usuario y contraseña que hemos creado anteriormente, el número de puerto 22 y pinchamos en «Conexión rápida». Una vez que nos hemos conectado, podremos ver el árbol de directorios y proceder con la copia de los archivos.

Tal y como habéis visto, la conexión de un cliente SSH y SFTP al servidor configurado con FreeSSHd es muy fácil y rápida, tan solo necesitaremos configurar ciertos parámetros en el servidor para que los clientes se conecten fácilmente y sin problemas.

¡Sé el primero en comentar!