Refuerzo de la seguridad SSH en un servidor Debian 9

7

Estoy ejecutando la siguiente versión de GNU / Linux Debian:

cat /etc/issue

dice:

Debian GNU/Linux 9

Usando el siguiente kernel:

uname -r

dice:

4.9.0-2-amd64

Y ejecutando la siguiente versión de OpenSSH:

apt-cache policy openssh-server | grep Installed

dice:

Installed: 1:7.4p1-7

Mi intención es fortalecer la seguridad SSH de un pequeño servidor, ya que necesito tener acceso desde cualquier IP, incluso desde cualquier VPN.

Estos pasos los he hecho hasta ahora:

  1. Deshabilitando el acceso directo a la raíz:

    cat /etc/ssh/sshd_config | grep PermitRootLogin
    

    se establece en:

    PermitRootLogin no
    
  2. Cumplimiento del protocolo SSH versión 2:

    cat /etc/ssh/sshd_config | grep Protocol
    

    se establece en:

    Protocol 2
    
  3. Se ha cambiado el puerto a uno aleatorio, que no escribiré aquí, así que diga 12345:

    cat /etc/ssh/sshd_config | grep Port
    

    se establece en:

    Port 12345
    
  4. He perforado un agujero en el firewall para ello:

    sudo iptables -A INPUT -p tcp -m tcp --dport 12345 -m comment --comment "ssh" -j ACCEPT
    
  5. He generado una nueva clave de 8 kilobits de longitud (soy consciente de la sobrecarga de la CPU y otras desventajas de una clave tan grande):

    ssh-keygen -t rsa -b 8192
    
  6. Luego he verificado las coincidencias de tamaño:

    ll /home/fictional_user/.ssh/id_rsa*
    

    es como debería ser, así como los derechos de acceso:

    -rw------- 1 fictional_user fictional_group 6.3K Mar 16 11:53 /home/fictional_user/.ssh/id_rsa
    -rw-r--r-- 1 fictional_user fictional_group 1.4K Mar 16 11:53 /home/fictional_user/.ssh/id_rsa.pub
    
  7. Agregué esta clave y verifiqué que no hay otra:

    eval 'ssh-agent -s'
    ssh-add
    ssh-add -l
    

    resultados en:

    8192 SHA256:gibberish /home/fictional_user/.ssh/id_rsa (RSA)
    8192 SHA256:gibberish fictional_user@fictional_computer (RSA)
    
  8. He importado la clave a dos máquinas, que mantendrán el servidor:

    ssh-copy-id fictional_user@public_ip -p 12345
    
  9. Luego, deshabilité completamente la autenticación de contraseña:

    cat /etc/ssh/sshd_config | grep PasswordAuthentication
    

    se establece en:

    PasswordAuthentication no
    

Pregunta: ¿Olvidé algo o este es el máximo que puedo hacer?

    
pregunta Vlastimil 16.03.2017 - 15:51
fuente

2 respuestas

5

Hay una serie de cosas que puede hacer:

  • Configure una clave privada que usa un algoritmo de estiramiento de teclas para proteger la frase de contraseña de forzoso brutal.
  • Configure AllowUsers en sshd para que solo las cuentas con nombre puedan obtener acceso
  • Use fail2ban o fwknop para evitar más ataques externos (recuerde que CVE-2008-0166 hizo que los usuarios de Debian generaran solo una de las 32,767 claves posibles)
  • Supervise activamente su máquina para detectar ataques
respondido por el Xiong Chiamiov 16.03.2017 - 16:10
fuente
1

Sólo algunos pensamientos:

  • sshd admite tcpwrappers, esto agrega protección cuando su firewall está inactivo.
  • ¿Su sistema de archivos admite atributos en esas claves públicas? Más bien, hágalos tan solo como sea posible.
  • considere ssh-keysigning para limitar las claves de tiempo que se pueden usar.
respondido por el bbaassssiiee 08.02.2018 - 09:19
fuente

Lea otras preguntas en las etiquetas