Aprendiendo SSH: Buenas prácticas a realizar en un Servidor SSH

Aprendiendo SSH: Buenas prácticas a realizar en un Servidor SSH

Aprendiendo SSH: Buenas practicas a realizar en un Servidor SSH

En este presente, sexto y último post, de nuestra serie de publicaciones sobre Aprendiendo SSH abordaremos de forma práctica, la configuración y uso de las opciones especificadas en el archivo de configuración de OpenSSH que se manejan del lado del servidor SSH, es decir, el archivo «SSHD Config» (sshd_config). Las cuales, abordamos en la entrega anterior.

De manera tal, de que podamos conocer de forma breve, sencilla y directa, algunas de las mejores buenas prácticas (recomendaciones y consejos) a la hora de configurar un Servidor SSH, tanto en el hogar, como en una oficina.

Aprendiendo SSH: Opciones y parámetros del archivo SSHD Config

Aprendiendo SSH: Opciones y parámetros del archivo SSHD Config

Y, antes de iniciar el tema de hoy, sobre las mejores «buenas prácticas a aplicar en las configuraciones de un Servidor SSH», dejaremos algunos enlaces a publicaciones relacionadas, para su posterior lectura:

Aprendiendo SSH: Opciones y parámetros del archivo SSHD Config
Artículo relacionado:
Aprendiendo SSH: Opciones y parámetros del archivo SSHD Config
Aprendiendo SSH: Opciones y parámetros del archivo SSH Config
Artículo relacionado:
Aprendiendo SSH: Opciones y parámetros del archivo SSH Config

Buenas prácticas en un Servidor SSH

Buenas prácticas en un Servidor SSH

¿Qué buenas prácticas aplican a la hora de configurar un Servidor SSH?

A continuación, y basándonos en las opciones y parámetros del archivo «SSHD Config» (sshd_config), antes vistos en el post anterior, estas serían algunas de las mejores buenas prácticas a realizar en cuanto a la configuración de dicho archivo, para asegurar lo mejor posible nuestras conexiones remotas, entrantes y salientes, sobre un determinado Servidor SSH:

Buenas prácticas en un Servidor SSH: Opción AllowUsers

Especificar los usuarios que pueden iniciar sesión SSH con la opción AllowUsers

Dado que, esta opción o parámetro no suele no venir incluida por defecto en dicho archivo, se puede insertar al final del mismo. Haciendo uso de una lista de patrones de nombre de usuario, separados por espacios. De forma tal, de que, si se especifica, el inicio de sesión, entonces solo se permitirá el mismo para las coincidencias de nombres de usuario y host que coincidan con uno de los patrones configurados.

Por ejemplo, tal como se ve a continuación:

AllowUsers *patron*@192.168.1.0/24 *@192.168.1.0/24 *.midominio.com *@1.2.3.4
AllowGroups ssh

Buenas prácticas en un Servidor SSH: Opción ListenAddress

Indicarle a SSH por cuál interfaz de red local escuchará con la opción ListenAddress

Para ello, se debe habilitar (descomentar) la opción ListenAddress, que viene de forma predeterminada con el valor «0.0.0.0», pero en realidad funciona en modo ALL, es decir, escuchar por todas las interfaces de red disponibles. Por ende, luego se debe establecer dicho valor de forma tal, de que se especifique cuál o cuáles direcciones IP locales serán utilizadas por el programa sshd para escuchar peticiones de conexión.

Por ejemplo, tal como se ve a continuación:

ListenAddress 129.168.2.1 192.168.1.*

Buenas prácticas en un Servidor SSH: Opción PasswordAuthentication

Establecer el ingreso por SSH mediante llaves con la opción PasswordAuthentication

Para ello, se debe habilitar (descomentar) la opción PasswordAuthentication, que viene de forma predeterminada con el valor «yes». Y luego, establecer dicho valor como «No», para así exigir la utilización de llaves pública y privada para lograr la autorización de acceso a una máquina en específico. Logrando que, únicamente puedan ingresar los usuarios remotos, desde la o las computadoras, que sean autorizadas previamente. Por ejemplo, tal como se ve a continuación:

PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no
PubkeyAuthentication yes

Buenas prácticas en un Servidor SSH: Opción PermitRootLogin

Desactivar el inicio de sesión como root mediante SSH con la opción PermitRootLogin

Para ello, se debe habilitar (descomentar) la opción PermitRootLogin, que viene de forma predeterminada con el valor «prohibit-password». Sin embargo, si se desea que de forma total, no se permita que un usuario root arranque una sesión SSH, el valor adecuado a configurar es «No». Por ejemplo, tal como se ve a continuación:

PermitRootLogin no

Buenas prácticas en un Servidor SSH: Opción Port

Cambiar el puerto por defecto de SSH con la opción Port

Para ello, se debe habilitar (descomentar) la opción Port, que viene de forma predeterminada con el valor «22». Sin embargo, es vital cambiar dicho puerto a cualquier otro disponible, para así, mitigar y evitar el número de ataques, manuales o de fuerza bruta, que puedan hacerse por dicho puerto hartamente conocido. Es importante asegurarse que, dicho nuevo puerto está disponible y puede ser usado por las demás aplicaciones que van a conectarse a nuestro servidor. Por ejemplo, tal como se ve a continuación:

Port 4568

Otras útiles opciones a establecer

Otras útiles opciones a establecer

Por último, y dado que, el programa SSH es demasiado amplio, y en la entrega anterior ya abordamos más a detalles cada una de las opciones, a continuación solo mostraremos algunas opciones más, con algunos valores que pudieran llegar a ser adecuados en múltiples y variados casos de uso.

Y estas son las siguientes:

  • Banner /etc/issue
  • ClientAliveInterval 300
  • ClientAliveCountMax 0
  • LoginGraceTime 30
  • LogLevel INFO
  • MaxAuthTries 3
  • MaxSessions 0
  • MaxStartups 3
  • PermitEmptyPasswords No
  • PrintMotd yes
  • PrintLastLog yes
  • StrictModes Yes
  • SyslogFacility AUTH
  • X11Forwarding yes
  • X11DisplayOffset 5

Nota: Téngase en cuenta que, dependiendo del nivel de experiencia y experticia del o los SysAdmins y los requerimientos de seguridad de cada plataforma tecnológica, muchas de estas opciones pueden con todo derecho y lógica variar de formas muy distintas. Además, de que otras opciones mucho más avanzadas o complejas pueden llegar a habilitarse, por ser útiles o necesarias en diferentes entornos de operación.

Otras buenas prácticas

Entre otras buenas practicas a implementar en un Servidor SSH podemos mencionar las siguientes:

  1. Configurar una notificación de advertencia por correo para informar sobre todas o determinadas conexiones SSH.
  2. Proteger el acceso SSH a nuestros servidores contra ataques de fuerza bruta haciendo empleo de la herramienta Fail2ban.
  3. Chequear periódicamente con la herramienta Nmap en los servidores SSH y otros, en búsqueda de posibles puertos abiertos no autorizados o requeridos.
  4. Reforzar la seguridad de la plataforma informática mediante la instalación de un IDS (Sistema de Detección de Intrusiones) y un IPS (Sistema de Prevención de intrusiones).
Aprendiendo SSH: Opciones y parámetros de configuración
Artículo relacionado:
Aprendiendo SSH: Opciones y parámetros de configuración – Parte I
Artículo relacionado:
Aprendiendo SSH: Instalación y archivos de configuración

Resumen: Banner post 2021

Resumen

En resumen, con esta última entrega sobre «Aprendiendo SSH» finalizamos el contenido explicativo sobre todo lo relacionado con OpenSSH. Seguramente, en un corto tiempo, estaremos compartiendo un poco más de conocimiento esencial sobre el protocolo SSH, y con respecto a su uso por consola mediante Shell Scripting. Así que, esperamos que estas «buenas practicas en un Servidor SSH», hayan aportado mucho valor, tanto en lo personal como lo profesional, a la hora de utilizar GNU/Linux.

Si te ha gustado esta publicación, no dejes de comentarla y de compartirla con otros. Y recuerda, visitar nuestra «página de inicio» para explorar más noticias, además de unirte a nuestro canal oficial de Telegram de DesdeLinux, o este grupo para más información sobre el tema de hoy.


2 comentarios, deja el tuyo

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   Lhoqvso dijo

    Espero con ansias la segunda parte de este artículo donde te extiendas más sobre el último punto:

    Reforzar la seguridad de la plataforma informática mediante la instalación de un IDS (Sistema de Detección de Intrusiones) y un IPS (Sistema de Prevención de intrusiones).

    Gracias!!

    1.    Linux Post Install dijo

      Saludos, Lhoqvso. Estaré pendiente para su realización. Gracias por visitarnos, leer nuestros contenidos y comentar.