asegurar tu servidor ssh

Conoce las mejores formas de asegurar tu servidor SSH

En primera instancia debes asegurar tu servidor SSH, además, asegura también tu conexión SSH de tu sistema operativo Linux, de esta forma protegerá tus datos y todo lo que concierne a dicho sistema.

Igualmente, los administradores y los usuarios domésticos necesitan fortalecer y proteger las computadoras con conexión a internet. Pero SSH puede ser un tanto complejo. Es por ello que te daremos algunas fáciles recomendaciones para ayudarte a proteger tu servidor SSH.

Si quieres saber más de este genial sistema operativo, puedes hacer clic en este artículo que trata sobre cómo clonar un disco duro de Linux con Gparted.

Debes manejar algunos conceptos básicos de seguridad de SSH

asegurar tu servidor ssh

En primer lugar, las siglas en inglés de SSH significan “Secure Shell”. Este nombre se utiliza indistintamente para referirse al protocolo SSH, así como también, a las herramientas de software que permiten a los administradores y usuarios de Linux hacer conexiones seguras a computadoras de forma remota usando este protocolo.

Así pues, se trata de un protocolo encriptado que está diseñado para facilitar una conexión segura a través de una red un tanto insegura, como es el caso del internet mismo. El protocolo SSH en Linux se basa en una versión portable del proyecto OpenSSH.

Se implementa en un modelo clásico de sistema cliente-servidor, con un servidor SSH que acepta conexiones de clientes SSH también. El cliente lo utiliza con el fin de conectarse al servidor y mostrar la sesión al usuario remoto. Dicho servidor acepta la conexión y ejecuta la sesión normalmente. De esta manera es como vas a poder asegurar tu servidor SSH.

Seguramente, si revisas en tu configuración predeterminada, un servidor SSH podrá ver y gestionar las conexiones entrantes en el puerto 22 del Protocolo de Control de Transmisión (TCP). Debido a que este es un puerto estandarizado y bien conocido. Este puerto es un objetivo común para hackers y robots maliciosos.

Estos hackers lanzan bots que escanean un rango de direcciones IP en busca de puertos abiertos. Luego, estos puertos se analizan para ver si existen vulnerabilidades que puedan explotarse. Si estás pensando que estás seguro porque en internet hay objetivos más grandes, mejores e importantes que tú y por eso los hackers no te harán nada, desgraciadamente tenemos que decirte que estás razonando mal.

Los bots no seleccionan objetivos basados en ningún mérito, importancia o posicionamiento; buscan metódicamente sistemas que pueden violar. Así que te estás apuntando a ti mismo como víctima de atasques cibernéticos si no has asegurado tu sistema completamente.

¿Qué es la fricción de seguridad?

La fricción de seguridad puede llamársele a la irritación, en cualquier grado, que los usuarios y otras personas experimentarán cuando vayan a implementar medidas de seguridad.

Todos tenemos recuerdos y podemos haber presenciado que los nuevos usuarios de un sistema informático han preguntado con voz horrorizada si realmente tenían que ingresar una contraseña cada vez que iniciaban sesión en el mainframe. Eso, para ellos, era una fricción de seguridad.

Como curiosidad, la invención de la contraseña se le atribuye a Fernando J. Corbat, otra figura en el panteón de los informáticos. Su trabajo combinado contribuyó a las circunstancias que llevaron al nacimiento de Unix.

La introducción de medidas de seguridad generalmente implica alguna forma de fricción, irritación y frustración para alguien. Debes saber que los dueños de negocios tienen que pagar por ello. Los usuarios de ordenadores pueden tener que cambiar sus prácticas familiares, o recordar otro conjunto de detalles de autenticación.

También, deben agregar pasos adicionales para conectarse con éxito. Los administradores del sistema tendrán un trabajo adicional para implementar y mantener las nuevas medidas de seguridad.

Robustecer y bloquear un sistema operativo similar a Linux o Unix puede involucrarte muy rápidamente. Es así como lo que presentamos en este artículo, es un conjunto de pasos muy fáciles de implementar. Los cuales mejorarán la seguridad de tu computadora sin la necesidad de aplicaciones de terceros y sin revisar a profundidad a través de tu firewall.

Queremos aclararte que estos pasos no son la última palabra en seguridad SSH, pero te moverán mucho más allá de la configuración predeterminada y sin demasiada fricción. Todo ello para que estés protegido sin necesidad de muchos problemas.

Asegurar tu servidor SSH: usa el protocolo SSH versión 2

asegurar tu servidor ssh

En el año 2006, el protocolo SSH se actualizó de la versión 1 a la versión 2, lógicamente. No hace falta decir que fue una actualización un tanto significativa. Hubo tantos cambios y mejoras, especialmente en torno al cifrado y la seguridad que la versión 2 no es compatible con versiones anteriores compatibles la versión 1.

Así que para evitar conexiones de clientes de la versión 1, puedes estipular que tu ordenador solo aceptará conexiones de clientes de SSH versión 2. Para hacerlo, tienes que editar el archivo:

/etc/ssh/sshd_config.

Siempre que necesites editar este archivo, este es el comando que debes utilizar:

sudo gedit / etc / ssh / sshd_config

 Ahora debes agregar la siguiente línea:

Protocol 2.

Después de esto guarda el archivo. Ahora tienes que reiniciar el proceso del SSH Demon. Este es el comando a usar en cada caso:

sudo systemctl restart sshd

Ahora verifica que la nueva configuración esté vigente. Salta a una computadora diferente e intenta ejecutar el SSH en tu computadora de prueba. Ahora utiliza la opción -1, que es el protocolo 1 para obligar al comando ssh a usar la versión 1 del protocolo.

ssh -1

¡Genial!, tu solicitud de conexión es rechazada. Asegúrate de que todavía puedes conectarte con el protocolo 2. Del mismo modo, utiliza la opción -2, que es el protocolo 2 para probar que la conexión esté establecida.

ssh -2

El hecho de que el servidor SSH solicite nuestra contraseña es una indicación de que la conexión se ha realizado y que estás interactuando con el servidor. De hecho, debido a que los clientes SSH actuales usarán el protocolo 2 de manera predeterminada, no necesitas especificar el protocolo 2 siempre que el cliente esté actualizado.

Solo tienes que teclear en el terminal ssh y la conexión es aceptada. Por lo tanto, solo se rechazan las conexiones de protocolo 1, que son más débiles y menos seguras.

Asegurar tu servidor SSH: evita usar el puerto 22

asegurar tu servidor ssh

El puerto 22 es el puerto estándar para las conexiones SSH. Si utilizas un puerto diferente, agrega un poco de seguridad de incógnito a tu sistema operativo. Debes saber que la seguridad a través de la oscuridad nunca se considera una verdadera medida de seguridad.

En realidad, algunos de los robots de ataque más inteligentes, sondean todos los puertos abiertos y determinan qué servicio están llevando. Todo ello en lugar de depender de una simple lista de búsqueda de puertos y asumir que proporcionan los servicios habituales. Sin embargo, utilizar un puerto no estándar puede ayudar a reducir el ruido y el mal tráfico en el puerto 22.

Para configurar un puerto no estándar, edita tu archivo de configuración SSH:

sudo gedit / etc / ssh / sshd_config

Ahora, elimina el hash # desde el comienzo de la línea «Puerto» y reemplaza el número 22 con el número de puerto que escojas. Guarda tu archivo de configuración y reinicia el  SSH:

sudo systemctl restart sshd

Ahora ve qué qué efecto ha tenido este cambio. En tu computadora, utiliza el comando ssh para conectarte al servidor. El comando ssh usa el puerto 22 por defecto.

ssh

Puedes ver que la conexión es rechazada. Intenta nuevamente y especifica el puerto que colocaste para reemplazar el puerto 22. Debes usar la opción –p, que es de “port” (puerto).

ssh -p nº del puerto que escojas.

Ahora verás que tu conexión es aceptada.

Filtrar conexiones usando TCP wrappers

TCP Wrappers es una lista de control de acceso, la cual es fácil de entender. Además, te permite permitir y excluir conexiones en función de las características de la solicitud de conexión. Tales como la dirección IP o el nombre de host. Los TCP wrappers deben usarse junto con un firewall y no en lugar de un firewall configurado correctamente. De este modo, puedes ajustar las cosas  mediante el uso de TCP wrappers.

En primer lugar, debes instalar TCP wrappers según la distro de Linux que tengas. Aquí te van dos ejemplos para Manjaro y para Fedora:

Para instalar en Fedora, utiliza este comando:

sudo yum install tcp_wrappers.

Ahora, para que lo instales en Manjaro, debes escribir este comando:

sudo pacman -Syu tcp-wrappers.

Debes saber que hay dos archivos involucrados. Uno tiene la lista permitida y el otro tiene la lista denegada. Edita la lista de accesos denegados usando el siguiente comando:

sudo gedit /etc/hosts.deny

Esto abrirá el editor gedit con el archivo denegado cargado en dicho editor. Ahora, necesitas agregar la siguiente línea en tu terminal:

ALL : ALL

Solo debes guardar el archivo. Esta acción bloquea todo acceso que no haya sido autorizado. Ahora necesitas autorizar las conexiones que quieres aceptar en tu sistema. Para hacer esto, debes editar el archivo para la acción de permitir, el cual es:

sudo gedit /etc/hosts.allow

Este comando se abrirá en un archivo gedit

Nuevamente, este comando abrirá el archivo cargado en el gedit. Has agregado el snombre SSH SSHD, y la dirección IP de la computadora que vas a permitir hacer una conexión. Debes guardar el archivo y luego ve si las restricciones y permisos están vigentes.

Primero, intenta hacer conexión desde un ordenador que no está en el archivo hosts.allow:

 Si ya has probado, verás que la conexión ha sido rechazada. Ahora intenta conectarte desde tu computadora de prueba. Como es de esperar, tu conexión ha sido aceptada.

El ejemplo que te mostramos aquí es un poco exagerado porque solo te puedes conectar con una sola computadora. Del mismo modo, te decimos que TCP wrappers es muy versátil y más flexible que este ejemplo. TCP wrappers admite nombres de host, comodines y máscaras de subred para aceptar conexiones de rangos de direcciones IP.

Utiliza claves SSH en lugar de contraseñas

asegurar tu servidor ssh

Las claves SSH proporcionan un medio seguro para iniciar sesión en un servidor SSH. Las contraseñas se pueden adivinar, descifrar o ingresarlas con fuerza bruta. De este modo, las claves SSH no están abiertas para este tipo de ataques.

Cuando generas claves SSH, creas un par de claves. Una es la clave pública y la otra es la clave privada. La clave pública se instala en los servidores a los que quieres conectarte. La clave privada, como su nombre lo indica, se mantiene segura en tu propio ordenador.

Las claves SSH te permiten realizar conexiones sin una contraseña que sean, contradictoriamente, más seguras que las conexiones que usan autenticación de contraseña.

Cuando realizas una solicitud de conexión, el ordenador remoto usa tu copia de tu clave pública para crear un mensaje cifrado que se envía de vuelta a tu ordenador. Debido a que fue encriptado con tu clave pública, tu ordenador puede desencriptarlo con tu clave privada.

Después, tu ordenador extrae cierta información del mensaje, en particular la ID de la sesión, la cifra (protege) y la envía de vuelta al servidor. Si el servidor puede descifrarlo con tu copia de tu clave pública y si la información dentro del mensaje coincide con lo que te envió el servidor, se confirma que tu conexión proviene de ti y de nadie más.

Aquí, un usuario con claves SSH está haciendo una conexión al servidor en 192.168.4.11. Tenga en cuenta que no se les solicita una contraseña.

Asegurar tu servidor SSH: la última instancia

Por último te dejamos la última opción para estar protegido. Y es que si no necesitas el protocolo SSH ejecutándose en tu ordenador, debes asegurarte de que esté deshabilitado. Y esta es la manera de hacerlo.

sudo systemctl stop sshd

sudo systemctl deshabilitar sshd

Por supuesto, si no abres tu ventana, nadie va a poder entrar y es la mejor manera de asegurar tu servidor SSH.


Deja un comentario