GNU/Linux >> Tutoriales Linux >  >> Linux

10 consejos prácticos de fortalecimiento de SSH para proteger su servidor Linux

SSH es uno de los métodos más comunes para acceder a servidores remotos. SSH también es una de las razones más comunes detrás de los servidores Linux comprometidos.

No me malinterpretes. SSH (Secure Shell) es un protocolo bastante seguro por diseño, pero esto no significa que deba dejarlo en la configuración predeterminada.

En este artículo, compartiré algunas formas prácticas de mejorar la seguridad SSH y, por lo tanto, proteger sus servidores Linux.

Consejos para asegurar SSH en servidores Linux

No vaya y siga ciegamente todos los consejos de fortalecimiento de SSH mencionados aquí. Léalos todos y luego vea cuáles se ajustan a sus necesidades. También tenga en cuenta que algunos consejos pueden no ser compatibles con otros.

Por ejemplo, si deshabilita el inicio de sesión SSH basado en contraseña, no es necesario optar por el tipo de solución Fail2Ban.

Si conoce los conceptos básicos de SSH, sabe que los archivos de configuración de SSH se encuentran en /etc/ssh/sshd_config .

La mayoría de los consejos de refuerzo de SSH mencionados aquí requerirán que edite este archivo de configuración. Es por eso que será una buena idea hacer una copia de seguridad del archivo original. También deberá reiniciar el servicio SSH si realiza algún cambio en el archivo de configuración de SSH.

Veamos qué pasos puede seguir para proteger su servidor SSH.

1. Deshabilitar contraseñas vacías

Sí. Es posible tener cuentas de usuario en Linux sin contraseñas. Si esos usuarios intentan usar SSH, tampoco necesitarán contraseñas para acceder al servidor a través de SSH.

Eso es un riesgo de seguridad. Debe prohibir el uso de contraseñas vacías. En el archivo /etc/ssh/sshd_config, asegúrese de establecer la opción PermitEmptyPasswords en no.

PermitEmptyPasswords no

2. Cambiar los puertos SSH predeterminados

El puerto SSH predeterminado es 22 y la mayoría de los scripts de ataque se escriben solo en este puerto. Cambiar el puerto SSH predeterminado debería agregar una capa de seguridad adicional porque la cantidad de ataques (que llegan al puerto 22) puede reducirse.

Busque la información del puerto en el archivo de configuración y cámbielo a algo diferente:

Port 2345

Debe recordar o anotar el número de puerto; de lo contrario, es posible que tampoco acceda a sus servidores con SSH.

3. Deshabilitar inicio de sesión raíz a través de SSH

Para ser honesto, debería estar prohibido usar el servidor como raíz. Es arriesgado y no deja rastro de auditoría. Mecanismos como sudo existen solo por este motivo.

Si tiene usuarios sudo agregados en su sistema, debe usar ese usuario sudo para acceder al servidor a través de SSH en lugar de root.

Puede deshabilitar el inicio de sesión raíz modificando la opción PermitRootLogin y configurándola como no:

PermitRootLogin no

4. Desactivar protocolo ssh 1

Esto es si está utilizando una distribución de Linux anterior. Es posible que algunas versiones anteriores de SSH aún tengan el protocolo SSH 1 disponible. Este protocolo tiene vulnerabilidades conocidas y no debe utilizarse.

Las versiones más nuevas de SSH automáticamente tienen habilitado el protocolo SSH 2, pero no hay daño en verificarlo dos veces.

Protocol 2

5. Configurar el intervalo de tiempo de inactividad

El intervalo de tiempo de inactividad es la cantidad de tiempo que una conexión SSH puede permanecer activa sin ninguna actividad. Tales sesiones inactivas también son un riesgo para la seguridad. Es una buena idea configurar el intervalo de tiempo de inactividad.

El intervalo de tiempo de espera se cuenta en segundos y, de forma predeterminada, es 0. Puede cambiarlo a 300 para mantener un intervalo de tiempo de espera de cinco minutos.

ClientAliveInterval 300

Después de este intervalo, el servidor SSH enviará un mensaje activo al cliente. Si no obtiene una respuesta, la conexión se cerrará y se cerrará la sesión del usuario final.

También puede controlar cuántas veces envía el mensaje vivo antes de desconectarse:

ClientAliveCountMax 2

6. Permitir acceso SSH solo a usuarios seleccionados

Cuando se trata de seguridad, debe seguir el principio de privilegio mínimo. No otorgue derechos cuando no se requiere.

Probablemente tenga varios usuarios en su sistema Linux. ¿Necesita permitir el acceso SSH a todos ellos? Quizás no.

Un enfoque aquí sería permitir el acceso SSH a unos pocos usuarios seleccionados y, por lo tanto, restringirlo para todos los demás usuarios.

AllowUsers User1 User2

También puede agregar usuarios seleccionados a un nuevo grupo y permitir que solo este grupo acceda a SSH.

AllowGroups ssh_group

También puede utilizar DenyUsers y DenyGroups para denegar el acceso SSH a determinados usuarios y grupos.

7. Deshabilitar el reenvío X11

El servidor de pantalla X11 o X es el marco básico para un entorno gráfico. El reenvío X11 le permite usar una aplicación GUI a través de SSH.

Básicamente, el cliente ejecuta la aplicación GUI en el servidor pero, gracias al reenvío X11, se abre un canal entre las máquinas y las aplicaciones GUI se muestran en la máquina cliente.

El protocolo X11 no está orientado a la seguridad. Si no lo necesita, debe deshabilitar el reenvío X11 en SSH.

X11Forwarding no

8. Mitigar los ataques de fuerza bruta automáticamente

Para frustrar los ataques de fuerza bruta SSH, puede utilizar una herramienta de seguridad como Fail2Ban.

Fail2Ban comprueba los intentos fallidos de inicio de sesión desde diferentes direcciones IP. Si estos malos intentos cruzan un umbral dentro de un intervalo de tiempo establecido, prohíbe que la IP acceda a SSH durante un cierto período de tiempo.

Puede configurar todos estos parámetros según sus gustos y requisitos. He escrito una guía introductoria detallada sobre el uso de Fail2Ban que deberías leer.

9. Deshabilitar el inicio de sesión SSH basado en contraseña

No importa cuánto lo intente, siempre verá malos intentos de inicio de sesión a través de SSH en su servidor Linux. Los atacantes son inteligentes y los scripts que usan a menudo se encargan de la configuración predeterminada de herramientas similares a Fail2Ban.

Para deshacerse de los constantes ataques de fuerza bruta, puede optar por solo iniciar sesión SSH basado en clave.

En este enfoque, agrega la clave pública de los sistemas cliente remotos a la lista de claves conocidas en el servidor SSH. De esta manera, esas máquinas cliente pueden acceder a SSH sin ingresar la contraseña de la cuenta de usuario.

Cuando tenga esta configuración, puede deshabilitar el inicio de sesión SSH basado en contraseña. Ahora, solo las máquinas de los clientes que tienen las claves SSH especificadas pueden acceder al servidor a través de SSH.

Antes de optar por este enfoque, asegúrese de haber agregado su propia clave pública al servidor y que funcione. De lo contrario, se bloqueará y puede perder el acceso al servidor remoto, especialmente si está utilizando un servidor en la nube como Linode, donde no tiene acceso físico al servidor.

Lea este tutorial detallado para aprender a deshabilitar la autenticación SSH basada en contraseña.

10. Autenticación de dos factores con SSH

Para llevar la seguridad SSH al siguiente nivel, también puede habilitar la autenticación de dos factores. En este enfoque, recibe una contraseña de un solo uso en su teléfono móvil, correo electrónico o a través de una aplicación de autenticación de terceros.

Puede leer acerca de cómo configurar la autenticación de dos factores con SSH aquí.

Conclusión

Puedes ver todos los parámetros de tu servidor SSH usando este comando:

sshd -T

De esta manera, puede ver fácilmente si necesita cambiar algún parámetro para mejorar la seguridad del servidor SSH.

También debe mantener la instalación SSH y el sistema actualizados.

He enumerado algunas formas prácticas de endurecimiento de SSH. Por supuesto, puede haber otras formas de proteger SSH y su servidor Linux. No es posible enumerarlos todos en un solo artículo.

Espero que encuentres estos consejos utiles. Déjame saber qué consejos encuentras útiles.

¿Conoces algún consejo adicional sobre seguridad SSH? ¿Por qué no lo compartes con nosotros en la sección de comentarios?


Linux
  1. 9 cosas que hacer en los primeros 10 minutos en un servidor Linux

  2. 7 pasos para asegurar su servidor Linux

  3. Cómo usar SSH en Linux desde Android

  4. Proteja su servidor Linux con Fail2Ban [Guía para principiantes]

  5. 10 consejos para proteger su servidor web Apache en UNIX/Linux

12 cosas que hacer después de instalar un servidor Linux

Cómo SSH en su servidor Linux desde Windows

Cómo SSH al servidor a través de Linux

Cómo proteger SSH con Fail2Ban

5 prácticas recomendadas de seguridad SSH de Linux para proteger sus sistemas

Cómo proteger correctamente sysctl en Linux:Consejos para reforzar la seguridad