GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Prácticas recomendadas de seguridad de OpenSSH

SSH (Secure Shell) es un protocolo de red criptográfico para iniciar sesiones de shell basadas en texto en máquinas remotas de forma segura.

OpenSSH es el cliente y servidor SSH estándar utilizado por la mayoría de las distribuciones de Linux. Es una herramienta de conectividad en la que confían la mayoría de los administradores para trabajar en sus servidores Linux y *BSD. OpenSSH cifra todo el tráfico (incluidas las contraseñas) para eliminar eficazmente las escuchas ilegales, el secuestro de conexiones y otros ataques. Entonces, en otras palabras, "OpenSSH garantiza que la conexión a su servidor sea segura". Consulte el artículo de Wikipedia para obtener una excursión detallada sobre SSH.

Este tutorial cubre las mejores prácticas para configurar su servidor SSH de forma segura.

Seguridad OpenSSH

Estas son las seis tareas más importantes para asegurar la configuración de su servidor SSH:

  1. Use una contraseña segura.
  2. Cambie el puerto predeterminado de SSH.
  3. Utilice siempre la versión 2 del protocolo.
  4. Deshabilitar el inicio de sesión raíz.
  5. Limitar el acceso de usuarios.
  6. Utilice la autenticación basada en claves.

Utilice una contraseña segura

Una contraseña es una palabra o cadena de caracteres que se utiliza para la autenticación del usuario para probar la identidad o la aprobación de acceso para obtener acceso a un recurso. Manténgalo en secreto para aquellos a los que no se les permite acceder al servidor. Utilice una contraseña compleja y larga, debe ser fácil de recordar y única para usted, pero no fácil de adivinar para los demás . No use `admin123` o `admin`, etc. que son fáciles de adivinar y no use cumpleaños, el nombre de su esposa, etc. Una buena contraseña también debe contener caracteres especiales como '.!;/' (no solo los caracteres a-c y 0-9). Utilice caracteres en mayúsculas y minúsculas en la contraseña.

Cambiar el puerto predeterminado SSH

La publicación predeterminada del servicio SSH es 22, debe cambiar eso para que sea menos obvio que su servidor está ejecutando un servicio SSH. El archivo de configuración de SSH se encuentra en el directorio /etc/sshd/, debe editar el archivo de configuración /etc/ssh/sshd_config .

nano /etc/ssh/sshd_config

Busque la línea "Puerto":

Port 22

y cámbielo a su número de puerto favorito, ejemplo:1337

Port 1337

Elija un puerto que aún no esté en uso en su servidor. Puede obtener una lista de los puertos que están actualmente en uso con el comando:

netstat -ntap

Este comando da como resultado una lista bastante larga que muestra todos los puertos y conexiones abiertos. Si solo desea verificar si el puerto deseado está disponible, use este comando en su lugar:

netstat -ntap | grep 4422

En este ejemplo, verificaré si el puerto 4422 está libre. Si el comando no devuelve ningún resultado, entonces el puerto está disponible y se puede usar para SSH.

Usar siempre el protocolo 2

SSH tiene dos versiones de protocolo, el antiguo protocolo 1 que es inseguro y el nuevo protocolo 2. Así que siempre use el protocolo 2 para su servidor ssh, es más seguro que el protocolo 1. Más información aquí.

Deshabilitar inicio de sesión raíz

Debe deshabilitar el inicio de sesión directo para el usuario raíz porque hay muchos ataques de fuerza bruta contra el nombre del superusuario raíz. IMPORTANTE:pruebe el inicio de sesión SSH con su usuario no root alternativo que planea usar para los inicios de sesión ssh antes de desactivar la cuenta raíz.

PermitRootLogin no

Después de configurar "PermitRootLogin" en "no", ya no podrá iniciar sesión con la cuenta raíz, aunque use la contraseña correcta para el usuario raíz.

Limitar usuario

Debe agregar un nuevo usuario para iniciar sesión en su servidor. Suponga que ha creado los usuarios ruiko y mikoto para iniciar sesión en su servidor, luego puede agregar la nueva línea:

AllowUsers ruiko mikoto

en /etc/ssh/sshd_config para limitar el acceso SSH a estos usuarios.

Usar autenticación basada en clave

Le recomendé que usara esta opción porque es muy fácil de configurar y más segura que la autenticación basada en contraseña. Primero, debe crear un par de claves públicas y privadas en su computadora local (de escritorio), yo uso Linux para crearlo.

Puede crear el par de claves pública/privada con este comando:

ssh-keygen -t rsa -b 4096

Creará 2 archivos ubicados en el directorio ~/.ssh/, id_rsa como clave privada e id_rsa.pub como clave pública. Si solicita una contraseña, puede dejarla en blanco o escribir su contraseña. Se recomienda usar una contraseña para proteger su clave.

Ahora cargue la clave pública id_rsa.pub a su servidor con el comando ssh-copy-id.

ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

Automáticamente escribirá su clave pública en el archivo ~/.ssh/authorized_keys/ en su servidor.

Ahora regrese a su servidor y edite la configuración de su archivo ssh nuevamente.

nano /etc/ssh/sshd_config

Descomente esta línea:

AuthorizedKeysFile     %h/.ssh/authorized_keys

y finalmente reinicie su servidor ssh:

systemctl restart sshd

Ahora intenta conectarte a tu servidor:

ssh -p '4422' '[email protected]'

Conclusión

OpenSSH es el estándar para el acceso remoto seguro a *servidores similares a Unix, que reemplaza el protocolo telnet sin cifrar. SSH (y su subprotocolo de transferencia de archivos SCP) garantiza que la conexión desde su computadora local al servidor esté cifrada y sea segura. La instalación básica de OpenSSH ya es bastante segura, pero podemos mejorarla siguiendo la guía anterior.


Ubuntu
  1. Cómo instalar el servidor SSH en Ubuntu/Debian con OpenSSH

  2. Mejores prácticas de seguridad del servidor Linux

  3. Mejores prácticas de seguridad del servidor de Windows

  4. Mejores prácticas de seguridad de Wordpress en Linux

  5. ¿Mejores prácticas del servidor Nagios?

Endurecimiento de servidores Linux:mejores prácticas

Cómo instalar OpenSSH en Ubuntu 20.04

Servidor SSH

Cómo instalar el servidor OpenSSH en Ubuntu 20.04 LTS

Configuración del servidor Ubuntu:mejores prácticas de seguridad

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