Comprueba la seguridad de tu servidor SSH y protégelo de ataques

Comprueba la seguridad de tu servidor SSH y protégelo de ataques

Sergio De Luz

El protocolo SSH hoy en día es fundamental para administrar de manera segura los servidores, routers, switches y otro tipo de dispositivos, como controladores Wi-Fi o APs. Este protocolo es uno de los más utilizados debido a que utiliza criptografía simétrica y asimétrica para proporcionar confidencialidad, autenticación e integridad a los datos transmitidos. Hoy en RedesZone os vamos a hablar sobre cómo proteger un servidor SSH con herramientas externas, y también os explicaremos cómo realizar una completa auditoría de seguridad.

Monitoriza logs del servidor SSH para detectar ataques

SSHGuard es un programa que nos permitirá monitorizar los logs de nuestro servidor SSH, para detectar posibles ataques de fuerza bruta contra los usuarios que tengamos permitidos para conectarse a nuestro servidor. Para una buena administración de los sistemas informáticos de una organización, es muy importante monitorizar los logs de diferentes servicios, y gracias a SSHGuard, podremos monitorizarlos para posteriormente detectar ataques y bloquear a los atacantes haciendo uso del firewall del propio sistema operativo.

Este software se encargará de monitorizar los logs en diferentes formatos, concretamente, es capaz de reconocer estos logs en diferentes formatos:

  • macOS
  • metalog
  • multilog
  • raw log files
  • syslog
  • syslog-ng
  • systemd journal

SSHGuard no solamente permite proteger nuestro servidor SSH, sino que también está preparado para escanear, detectar y proteger otros servicios fundamentales en cualquier sistema informático. En un principio solamente era compatible con OpenSSH, pero ha ido evolucionando y actualmente disponemos de todos estos servicios:

  • OpenSSH (Servidor SSH)
  • Sendmail (Servidor de correo)
  • Exim (Servidor de correo)
  • Dovecot (Servidor de correo)
  • Cucipop (Servidor de correo)
  • UWimap (Servidor de correo)
  • vsftpd (Servidor FTP/FTPES)
  • proftpd (Servidor FTP/FTPES)
  • pure-ftpd (Servidor FTP/FTPES)
  • FreeBSD ftpd (Servidor FTP/FTPES)

Cuando SSHGuard lee los logs de los diferentes servicios del sistema, y detecta algún tipo de ataque, automáticamente lo bloqueará utilizando el firewall del sistema operativo. Lógicamente, dependiendo del sistema operativo tendremos un firewall en concreto instalado, actualmente SSHGuard es compatible con los siguientes cortafuegos de sistemas basados en Unix y Linux:

  • FirewallD
  • ipfw
  • IPFILTER
  • netfilter/iptables
  • netfilter/ipset
  • PF
  • tcpd’s hosts.allow
  • IBM AIX’s firewall

Otras opciones interesantes son que podremos crear una lista negra de direcciones IP automáticamente, además, también es capaz de supervisar varios archivos de registro simultáneamente. En caso de utilizar el protocolo IPv6 en tu red profesional o doméstica, estás e enhorabuena porque SSHGuard tiene soporte completo para el protocolo IPv6.

Instalación y puesta en marcha de SSHGuard

Esta gran herramienta para proteger nuestro servidor SSH, está disponible en los principales repositorios de software de distribuciones Linux como Debian, ArchLinux, Ubuntu, OpenSUSE, y también en el sistema operativo FreeBSD basado en Unix. La instalación se debe realizar a través del gestor de paquetes de tu distribución, en caso de no existir, siempre te podrás descargar el software y compilarlo tú mismo, podéis acceder a la web oficial de SSHGuard para acceder a su descarga.

Para la puesta en marcha de SSHGuard lo primero que debes hacer es configurar el sistema de logs en tu servidor. Si no sabes hacerlo, exista una magnífica documentación en la web oficial del software. Después tendrás que configurar ciertos parámetros en el firewall, para que SSHGuard sea capaz de bloquear las direcciones IP de los posibles atacantes que tengamos de manera completamente automática y sin intervención del administrador de redes o sistemas.

Comprueba la seguridad de tu servidor SSH

Si hemos configurado nuestro servidor SSH con la máxima seguridad, tal y como os hemos explicado en RedesZone, no deberías tener ningún problema, sin embargo, nunca está de más comprobar la seguridad de tu servidor con herramientas externas.

Rebex SSH Check

La herramienta gratuita y online Rebex SSH Check realizará un escaneo rápido de los algoritmos de intercambio de claves, algoritmos de cifrado simétrico, algoritmo de clave, así como los algoritmos MAC que tenemos actualmente configurados en nuestro servidor SSH. Si hacemos uso de algún algoritmo que actualmente no se considera seguro, nos lo indicará, para posteriormente nosotros configurar el servidor SSH correctamente y quitar este algoritmo de los «permitidos».

Lo primero que tendremos que hacer es entrar en la web oficial, veremos que nos pide tanto nuestra dirección IP o dominio, así como el puerto donde esté escuchando el servidor SSH. Cuando hayamos introducido los datos de nuestro servidor SSH pinchamos en el botón de «TEST».

El proceso de comprobar la seguridad del servidor SSH tarda unos 10 segundos aproximadamente, y nos informará de todos los algoritmos que podemos usar, y si son o no seguros. Por ejemplo, en nuestro caso con el servidor SSH de XigmaNAS con los valores por defecto, obtenemos que la seguridad es sobresaliente, ya que hace uso de todos los algoritmos de cifrado simétrico y asimétricos seguros, descartando la gran mayoría de los antiguos.

Esta herramienta también es capaz de comprobar los algoritmos de clave de servidor, tal y como podéis ver, nos informa que el utilizado con SHA-1 es «seguro» pero ya nos informa que está obsoleto, y que es recomendable utilizar ya siempre SHA2-256 o superior, por lo que en el fichero de configuración podríamos retirar este algoritmo.

También tendremos los algoritmos de cifrado simétrico disponibles, a nosotros solo nos aparece uno porque así lo tenemos definido en el fichero de configuración. Esta herramienta es muy útil también para verificar que efectivamente la configuración de seguridad es como nosotros deseamos.

Por último, también nos indica los algoritmos MAC que tenemos disponible en el servidor SSH, algunos de ellos tal y como podéis ver son considerados como inseguros, por lo que es recomendable retirar su soporte lo antes posible:

Otros datos que es capaz de proporcionarnos este servicio es, si utilizamos algún tipo de compresión, y si la utilizamos, nos dirá de qué tipo es la compresión que tenemos activada en el fichero de configuración del servidor. Por último, también nos informará sobre la clave pública del servidor, incluyendo el fingerprint MD5, SHA2-256 e incluso la clave pública que utilizamos:

Tal y como habéis visto, gracias a esta gran herramienta online completamente gratuita, podremos comprobar de manera fácil y rápida la seguridad de nuestro servidor SSH.

ssh-audit

ssh-audit es una herramienta totalmente gratuita, escrita en Python y que se encargará de escanear la configuración de nuestro servidor SSH, en esta ocasión, no tenemos una herramienta online, sino que la tendremos que ejecutar nosotros en el propio servidor donde queramos comprobar la seguridad de SSH. ssh-audit nos indicará si las diferentes configuraciones que hemos aplicado son seguras, inseguras, o tienen alguna debilidad, ideal para posteriormente realizar cambios en dicho servidor SSH.

Algunas de las principales características de esta herramienta gratuita, es que nos permitirá detectar el banner de inicio de sesión, si estamos usando un protocolo inseguro como SSH1, e incluso si estamos utilizando compresión con librería zlib. También será capaz de verificar los algoritmos de intercambio de claves, la clave pública del host, el cifrado simétrico cuando ya se ha establecido la comunicación, y también los mensajes de autenticación de la información.

Cuando ssh-audit haya analizado todos estos parámetros de manera totalmente automatizada, nos sacará un completo informe indicándonos desde cuándo está disponible una determinada opción, si ha sido eliminada, deshabilitada, si es inseguro, débil o si es seguro. Dependiendo de la severidad de la configuración realizada, podremos ver diferentes colores en los avisos.

ssh_audit_captura

Esta herramienta también nos mostrará la versión de SSH utilizada, además, es compatible con OpenSSH y Dropbear, los dos servidores SSH más utilizados en sistemas operativos y en dispositivos como routers, switches etc. Esta herramienta es más avanzada que la anterior, ya que nos proporcionará una mayor información.

Para usarla, lo único que tenemos que hacer es bajarnos el archivo .py del GitHub oficial de ssh-audit, a continuación lo ejecutaremos como cualquier otra herramienta Python de la siguiente manera:

python ssh-audit.py [-nv] host[:port]

El argumento -n deshabilitará los diferentes colores en la salida de toda la información, y el -v nos mostrará absolutamente toda la información que nos brinda la herramienta.

Tal y como habéis visto, proteger con herramientas externas y comprobar la seguridad de tu servidor SSH es muy fácil. Aunque SSH es un protocolo seguro, es necesario siempre configurarlo correctamente para evitar problemas o ataques.