GNU/Linux >> Tutoriales Linux >  >> Linux

[Linux]:¡Las 12 principales funciones de seguridad para habilitar en el servidor SSH!

Puede encontrar un par de formas de acceder a un shell (línea de comandos) de forma remota en la mayoría de los sistemas Linux/Unix. Una de las formas más antiguas es usar el programa telnet. ¡Acceder a un shell a través de telnet plantea amenazas de seguridad ya que los mensajes que pasan entre el cliente y el servidor están en texto sin formato! Entonces, cualquiera que pueda "olfatear" la conexión intermedia puede ver su nombre de usuario, contraseña y muchos más. Por estas razones, necesita un programa más sofisticado que telnet para conectarse a un host remoto.

SSH, que es un acrónimo de Secure SHell, fue diseñado y creado para brindar la mejor seguridad al acceder a otra computadora de forma remota. No solo encripta la sesión, sino que también proporciona mejores instalaciones de autenticación, así como funciones como la transferencia segura de archivos, el reenvío de sesiones X, el reenvío de puertos y más para que pueda aumentar la seguridad de otros protocolos. Permitir el inicio de sesión remoto a través de SSH es bueno para fines administrativos, pero puede representar una amenaza para la seguridad de su servidor. A menudo, el objetivo de los ataques de fuerza bruta, el acceso SSH debe limitarse adecuadamente para evitar que terceros obtengan acceso a su servidor. En este artículo veremos cómo asegurar SSH.

Hay dos archivos de configuración "ssh_config" y "sshd_config" en el directorio /etc/ssh/. El archivo ssh_config contiene la configuración relacionada con las conexiones SSH salientes. donde como archivo sshd_config contiene parámetros de configuración que controlan las conexiones SSH entrantes al propio servidor. ~/.ssh/ es el directorio de configuración SSH de los usuarios.

1. Cómo establecer nombres de usuario/contraseñas seguros

¡El servidor SSH en funcionamiento y expuesto al mundo exterior sería el objetivo principal de los ataques de fuerza bruta! Por lo general, un pirata informático buscará el puerto 22 para encontrar máquinas con ssh en ejecución y luego intentará un ataque de fuerza bruta contra él. Con contraseñas seguras, puede rechazar a los piratas informáticos antes de que tengan éxito. Con suerte, ya usa contraseñas seguras, pero si no las usa, intente elegir contraseñas que contengan:

  1. Mínimo de 8 caracteres
  2. Mezcla de letras mayúsculas y minúsculas
  3. Combinación de letras y números
  4. Caracteres no alfanuméricos (por ejemplo, caracteres especiales como ! ” £ $ % ^, etc.)

Si sus usuarios todavía eligen contraseñas débiles, ¡entonces cree nombres de usuario que serían difíciles de adivinar para los piratas informáticos! Esto hace que los piratas informáticos tengan dificultades para adivinar los nombres de usuario sin los cuales no pueden forzar la contraseña (asegúrese de que los usuarios no filtren los nombres de usuario). Evite nombres de usuario comunes como admin, henry, bob, etc.,

2. Cómo deshabilitar el inicio de sesión remoto con contraseñas vacías

Esta característica necesita decirle explícitamente al servidor SSH que no permita el inicio de sesión remoto para cuentas con contraseñas vacías. Usando su editor favorito, abra /etc/ssh/sshd_config archivo y busque las siguientes líneas:

#PermitEmptyPasswords no

Elimina el símbolo # y cambia el no a .

PermitEmptyPasswords yes

Después de la modificación, no olvide reiniciar sshd como se muestra a continuación:

Caution: Follow tip #12 to ensure sshd_config file is error free
/etc/init.d/sshd restart

3. Cómo deshabilitar el inicio de sesión remoto para el usuario raíz en una máquina Linux

Puede ver nuestro artículo anterior: Cómo deshabilitar el inicio de sesión remoto para el usuario raíz en una máquina Linux

4. Cómo permitir que solo usuarios específicos inicien sesión a través de SSH

Puede ver nuestro artículo anterior:cómo permitir o denegar cuentas de usuario específicas para iniciar sesión de forma remota en el servidor Linux.

5. Cómo cambiar el puerto de escucha SSH predeterminado

De forma predeterminada, el servidor SSH escucha las conexiones en el puerto 22. Los atacantes usan un software de exploración de puertos, como nmap, para buscar un puerto abierto. Se recomienda cambiar el puerto SSH a un número superior a 1024, ya que la mayoría de los escáneres de puertos no analizan puertos superiores.

Con su editor favorito, abra el archivo /etc/ssh/sshd_config y busque la línea que dice:

Port 22

Cambie el número de puerto algo como:

Port 2222

después de la modificación, no olvide reiniciar sshd como se muestra a continuación:

Caution: Follow tip #12 to ensure sshd_config file is error free
/etc/init.d/sshd restart

Una vez que se cambia el número de puerto del servidor SSH, puede iniciar sesión de forma remota especificando el número de puerto como se muestra a continuación:

ssh -p 2222 useranme@servername

6. Permitir solo el protocolo SSH 2

El servidor SSH admite dos protocolos, es decir, 1 y 2. El protocolo anterior 1 está sujeto a problemas de seguridad, incluido el intermediario y las vulnerabilidades de seguridad. El protocolo SSH 2 es más seguro en comparación con el protocolo 1. El servidor SSH en el sistema operativo más reciente viene con el Protocolo 2 habilitado. En caso de que se refiera a múltiples protocolos como se muestra a continuación, cambie para habilitar solo el protocolo 2 como se muestra a continuación:

Con su editor favorito, abra el archivo /etc/ssh/sshd_config y busque la línea que dice:

Protocol 2,1

¡Cambie la línea para que diga solo el protocolo 2!

Protocol 2

Después de la modificación, no olvide reiniciar sshd como se muestra a continuación:

Caution: Follow tip #12 to ensure sshd_config file is error free
/etc/init.d/sshd restart

7. ¿Cómo restringir el inicio de sesión remoto solo a usuarios específicos de una dirección IP específica?

Si está seguro de que su servidor SSH sería utilizado por usuarios de hosts muy específicos. Por ejemplo:el servidor SSH al que acceden solo los usuarios de una LAN de organización, entonces es mejor permitir que los usuarios inicien sesión desde un host específico. Para hacer esto, siga el siguiente procedimiento:

Usando su editor favorito, abra el archivo /etc/ssh/sshd_config y agregue la siguiente línea:

AllowUsers [email protected]

También puede bloquear un rango de IP como se muestra a continuación:

AllowUsers [email protected].*
AllowUsers [email protected].*.*

Después de la modificación, no olvide reiniciar sshd como se muestra a continuación:

Caution: Follow tip #12 to ensure sshd_config file is error free
/etc/init.d/sshd restart

8. ¿Cómo detener los ataques SSH automatizados basados ​​en bots ?

Puede ver nuestro artículo anterior:¿Cómo detener los ataques SSH automatizados basados ​​en bots?

9. Cómo hacer hash de archivos de hosts conocidos

Consulte nuestro artículo anterior: Cómo aplicar hash a archivos de hosts conocidos del directorio ~/.ssh/

10. Cómo configurar el intervalo de tiempo de espera de cierre de sesión inactivo para SSH

¡Los usuarios a menudo inician sesión de forma remota y se olvidan de cerrar la sesión! Una sesión inactiva podría generar un riesgo de seguridad. Los administradores deben establecer un intervalo de tiempo de espera inactivo para cerrar sesión en esas sesiones inactivas. Para configurar el intervalo de tiempo de espera para el cierre de sesión inactivo, siga las siguientes pautas:

Usando su editor favorito, abra /etc/ssh/sshd_config archivo y busque las siguientes líneas:

#ClientAliveInterval 0

Elimine el símbolo # y cambie ClientAliveInterval a 300 (el intervalo de tiempo de espera es en segundos, es decir, 300 segundos =15 minutos). Después de que haya pasado este intervalo, el usuario inactivo se cerrará automáticamente.

ClientAliveInterval 300

Después de la modificación, no olvide reiniciar sshd como se muestra a continuación:

Caution: Follow tip #12 to ensure sshd_config file is error free
/etc/init.d/sshd restart

11. Cómo configurar Log Analyzer para SSH

El registro de la actividad del usuario siempre proporcionará al administrador esa información adicional de la actividad de los usuarios en el servidor. Además de herramientas como LogWatch, puede simplificar su vida al leer todos los registros durante un período de tiempo determinado y crear un informe en un formato legible y fácil de usar.

Usando su editor favorito, abra /etc/ssh/sshd_config archivo y busque las siguientes líneas:

#LogLevel INFO

Quite el símbolo # y reinicie el servicio sshd como se muestra a continuación:

Caution: Follow tip #12 to ensure sshd_config file is error free
/etc/init.d/sshd restart

12. Verifique la configuración de SSH antes de reiniciar el demonio 'sshd'

A medida que realiza cambios en sshd_config , asegúrese de no dejar ningún error. Ejecute el siguiente comando para verificar si sshd_config contiene algún error antes de reiniciar el SSH servidor.

# /usr/sbin/sshd -t

ahora, reinicie el servicio de la siguiente manera:

# /etc/init.d/sshd restart

(o)

# service sshd restart

Linux
  1. Habilite el inicio de sesión raíz SSH en Debian Linux Server

  2. Los 7 mejores consejos para reforzar la seguridad del servidor CentOS 8/RHEL 8

  3. Prácticas recomendadas de seguridad de OpenSSH

  4. Cómo habilitar el servicio SSH en Ubuntu 22.04 LTS

  5. ¿Cómo habilitar el reenvío SSH X11 a través de un servidor adicional?

Cómo instalar el servidor SSH en Ubuntu 20.04

Cómo habilitar el servidor SSH en Ubuntu 22.04

Las 10 características principales de SSH que DEBE conocer para ser más productivo

Uso del reenvío de puertos SSH como herramienta de seguridad en Linux

Cómo habilitar ping en Windows Server 2008 R2

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