10 consejos útiles de refuerzo de SSH para proteger su servidor Linux

¿Cómo va eso? soy Enrique. Os traigo un nuevo post sobre el sistema operativo mas molón. Un placer linuxeros.

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

No me malinterpretes. SSH (Secure Shell) es un protocolo de diseño bastante seguro, pero eso 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 así proteger sus servidores Linux.

Consejos para proporcionar SSH en servidores Linux

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

Por ejemplo, si deshabilita un inicio de sesión SSH basado en contraseña, no necesita usar una solución Fail2Ban.

Si está familiarizado con los conceptos básicos de SSH, sabrá 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. Por lo tanto, sería 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 SSH.

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

1. Desactive las contraseñas en blanco

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

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

PermitEmptyPasswords no

2. Cambie los puertos SSH predeterminados

El puerto SSH predeterminado es 22 y la mayoría de las comprobaciones de los scripts de ataque se escriben solo alrededor de ese puerto. Cambiar el puerto SSH predeterminado debería agregar una capa adicional de protección, ya que la cantidad de ataques (que llegan al puerto 22) puede disminuir.

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

Port 2345

3. Deshabilite el inicio de sesión de root a través de SSH

Para ser honesto, el uso del servidor como raíz debería estar deshabilitado. Esto es arriesgado y no deja rastro de auditoría. Un mecanismo como sudo existe solo por esta razón.

Si se han agregado usuarios sudo a su sistema, debe usar este usuario sudo para acceder al servidor a través de SSH en lugar de root.

Puede deshabilitar el inicio de sesión de root cambiando la opción PermitRootLogin y configurándola en no:

PermitRootLogin no

4. Deshabilite el protocolo ssh 1

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

Las versiones más nuevas de SSH incluyen automáticamente el Protocolo SSH 2, pero no hay nada de malo en verificarlo dos veces.

Protocol 2

5. Configure el intervalo de espera inactivo

El intervalo de inactividad es el tiempo durante el cual la conexión SSH puede permanecer activa sin ninguna actividad. Estas sesiones inactivas también suponen un riesgo para la seguridad. Es una buena idea configurar el intervalo de espera inactivo.

El intervalo de espera se cuenta en segundos y el valor predeterminado es 0. Puede cambiarlo a 300 para guardar un intervalo de espera de cinco minutos.

ClientAliveInterval 300

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

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

ClientAliveCountMax 2

6. Permita el acceso SSH solo a los usuarios seleccionados

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

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

El enfoque aquí sería permitir el acceso SSH a varios usuarios seleccionados y, por lo tanto, restringirlo a todos los demás usuarios.

AllowUsers User1 User2

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

AllowGroups ssh_group

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

7. Deshabilitar el reenvío X11

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

En general, 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 de X11 a SSH.

X11Forwarding no

8. Mitigación automática de ataques de fuerza bruta

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 superan el umbral dentro de un intervalo de tiempo especificado, deniega el acceso IP a SSH durante un cierto período de tiempo.

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

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

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

Para deshacerse de los constantes ataques de fuerza bruta, solo puede seleccionar una entrada SSH basada 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, estas 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 según la contraseña. Ahora solo las máquinas cliente que tienen las claves SSH especificadas tienen acceso al servidor a través de SSH.

Antes de elegir este enfoque, asegúrese de agregar su propia clave pública al servidor y funciona. De lo contrario, quedará bloqueado y es posible que pierda 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 cómo deshabilitar la autenticación basada en contraseña SSH.

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. Con este enfoque, recibirá una contraseña de un solo uso en su teléfono móvil, correo electrónico o mediante una aplicación de autenticación de terceros.

Puede leer sobre 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 actualizado el sistema y la instalación de SSH.

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

Espero que estos consejos le resulten útiles. Dime qué consejos te son útiles.

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

El Blog lo hacemos para ayudar y servir de ayuda a la comunidad Linux. Esperamos que os guste.

Leave a Reply