Configuración Avanzada de SSH para Seguridad y Control de Acceso en Servidores Linux

Enviado por Comunidad Wikiteka y clasificado en Informática

Escrito el en español con un tamaño de 6,77 KB

Configuración de SSH para Seguridad y Control de Acceso

Este documento detalla diversas configuraciones esenciales para fortalecer la seguridad de un servidor SSH y gestionar el control de acceso de usuarios. Se enfoca en la modificación del archivo de configuración del demonio SSH, /etc/ssh/sshd_config, y en la creación de usuarios.

Restringir Cuentas de Usuario a Direcciones IP Específicas

Para permitir que usuarios específicos se conecten únicamente desde una o varias direcciones IP determinadas, es necesario configurar la directiva AllowUsers en el archivo /etc/ssh/sshd_config.

  • Abrir el terminal como root: ejecutar sudo -s e introducir la contraseña.
  • Editar el archivo de configuración: gedit /etc/ssh/sshd_config.
  • Añadir o modificar la línea AllowUsers con el formato usuario@IP. Por ejemplo:
    AllowUsers [email protected] [email protected]
  • Guardar los cambios y reiniciar el servicio SSH (ej. sudo systemctl restart sshd o sudo service ssh restart).

Permitir Conexión a Usuarios Específicos desde Cualquier Equipo

Si se desea que determinados usuarios puedan conectarse desde cualquier dirección IP, se utiliza la directiva AllowUsers sin especificar una IP, solo el nombre de usuario.

  • Abrir el terminal como root: ejecutar sudo -s e introducir la contraseña.
  • Editar el archivo de configuración: gedit /etc/ssh/sshd_config.
  • Modificar la línea AllowUsers para incluir los usuarios deseados sin restricciones de IP. Por ejemplo:
    AllowUsers usuario usuario2 usuario3
  • Guardar los cambios y reiniciar el servicio SSH.

Impedir la Conexión del Usuario Root para Prevenir Ataques

Para aumentar la seguridad y prevenir ataques de fuerza bruta dirigidos al usuario root, se recomienda deshabilitar su acceso directo por SSH y, adicionalmente, cambiar el puerto por defecto.

  • Abrir el terminal como root: ejecutar sudo -s e introducir la contraseña.
  • Editar el archivo de configuración: gedit /etc/ssh/sshd_config.
  • Modificar las siguientes directivas:
    • Port 1242 (o cualquier puerto superior a 1024).
    • PermitRootLogin no.
  • Guardar los cambios y reiniciar el servicio SSH.

Modificar el Puerto de Escucha por Defecto del Servidor SSH

El puerto de escucha por defecto para SSH es el 22. Cambiarlo a un puerto no estándar es una medida de seguridad básica para reducir la exposición a escaneos automatizados.

  • Abrir el terminal como root: ejecutar sudo -s e introducir la contraseña.
  • Editar el archivo de configuración: gedit /etc/ssh/sshd_config.
  • Cambiar la directiva Port 22 por el puerto deseado. Por ejemplo:
    Port 2222
  • Guardar los cambios y reiniciar el servicio SSH.

Limitar el Número de Intentos Fallidos de Autenticación

Para mitigar ataques de fuerza bruta, es crucial limitar el número de intentos de autenticación fallidos permitidos antes de desconectar al usuario. Esto se configura con la directiva MaxAuthTries.

  • Abrir el terminal como root: ejecutar sudo -s e introducir la contraseña.
  • Editar el archivo de configuración: gedit /etc/ssh/sshd_config.
  • Añadir o modificar la línea MaxAuthTries, por ejemplo, para permitir solo 2 intentos:
    MaxAuthTries 2
  • Guardar los cambios y reiniciar el servicio SSH.

Función de la Directiva "MaxStartups"

La directiva MaxStartups controla el número de conexiones no autenticadas concurrentes permitidas en el servidor SSH. Esto ayuda a prevenir ataques de denegación de servicio (DoS) al limitar cuántos intentos de conexión pueden estar pendientes simultáneamente.

  • Abrir el terminal como root: ejecutar sudo -s e introducir la contraseña.
  • Editar el archivo de configuración: gedit /etc/ssh/sshd_config.
  • Añadir o modificar la línea MaxStartups. Un valor común es 10:30:60 (10 conexiones no autenticadas, 30% de probabilidad de desconexión si se supera, hasta un máximo de 60).
    MaxStartups 10:30:60
  • Guardar los cambios y reiniciar el servicio SSH.

Conectar con el Usuario "profesor"

Para conectar con un usuario específico, primero debe crearse el usuario en el sistema.

  • Creación del usuario "profesor":
    • Abrir el terminal como root: ejecutar sudo -s e introducir la contraseña.
    • Crear el usuario: adduser profesor. Se le pedirá establecer una contraseña (ej. "123") y otra información.
  • Prueba de conexión:
    • Abrir un nuevo terminal.
    • Conectar vía SSH: ssh profesor@localhost (o la IP del servidor).
    • Introducir la contraseña "123" cuando se solicite.

Conectar con el Usuario "alumno"

El proceso es idéntico al de crear y conectar con el usuario "profesor".

  • Creación del usuario "alumno":
    • Abrir el terminal como root: ejecutar sudo -s e introducir la contraseña.
    • Crear el usuario: adduser alumno. Se le pedirá establecer una contraseña (ej. "123") y otra información.
  • Prueba de conexión:
    • Abrir un nuevo terminal.
    • Conectar vía SSH: ssh alumno@localhost (o la IP del servidor).
    • Introducir la contraseña "123" cuando se solicite.