¿Cuáles son las configuraciones de demonio SSH más difíciles en términos de cifrado, protocolo de enlace u otras configuraciones criptográficas? [duplicar]

27

Trabajo mucho con SSH y SFTP, para ser específico entre dos máquinas, las cuales tienen su puerto SSH abierto en una dirección IP pública.

¿Cuáles son las configuraciones de demonio SSH más duras en términos de cifrado, protocolo de enlace u otras configuraciones criptográficas en 2018?

Me interesan específicamente los protocolos criptográficos. Asegurar SSH con una buena selección de contraseña, buena administración de claves, firewall, etc. está fuera del alcance de lo que estoy preguntando aquí.

Hasta ahora, he encontrado y configurado en ambas máquinas en /etc/ssh/sshd_config :

AuthenticationMethods publickey
Ciphers aes256-cbc
MACs [email protected]
FingerprintHash sha512
#KexAlgorithms

Esto puede considerarse una pregunta de seguimiento de Hardening Seguridad SSH en un servidor Debian 9 que he publicado antes hace algún tiempo. Pero de una manera específica, quiero saber la configuración más alta.

    
pregunta Vlastimil 04.02.2018 - 21:28
fuente

4 respuestas

30

Tiene una buena discusión aquí: enlace

En OpenSSH moderno recomiendan:

KexAlgorithms [email protected],ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha256

Ciphers [email protected],[email protected],[email protected],aes256-ctr,aes192-ctr,aes128-ctr

MACs [email protected],[email protected],[email protected],hmac-sha2-512,hmac-sha2-256,[email protected]

Esta página brinda explicaciones para cada opción: enlace

(no se deje engañar por la fecha codificada en la URL, el documento se actualiza de vez en cuando como puede verse en su "registro de cambios" en enlace )

Contra Logjam, vea el final de enlace :

KexAlgorithms [email protected]
    
respondido por el Patrick Mevzek 04.02.2018 - 22:21
fuente
25
  

Para ser sincero, no entiendo demasiado estas cosas, solo quiero un cifrado sólido y todo

No sé a qué te refieres con "todo", pero si solo quieres un cifrado sólido, no te metas con la configuración predeterminada. Es posible que sean más seguros, pero es más probable que rompas la seguridad en lugar de mejorar. Si no sabes lo que estás haciendo.

Los cifrados de autenticación y negociación son mucho más importantes que el algoritmo simétrico para la seguridad general, y no nos ha dicho nada sobre esto.

Querer saber más es algo bueno, pero el consenso de opinión sobre las cifras más sólidas de febrero de 2018 (al menos cuando se refiere a una versión actualizada de software bien mantenido) es de muy poco valor en comparación con una comprensión del protocolo funciona y cómo la implementación se integra con su sistema operativo.

    
respondido por el symcbean 04.02.2018 - 23:14
fuente
9

La siguiente configuración puede proporcionar un mayor nivel de seguridad al tiempo que mantiene un cierto grado de compatibilidad y reduce la complejidad de la configuración.

ADVERTENCIA: la siguiente configuración no es compatible con todos los clientes

# Change the port number avoid automated attack
Port 2222

# Limit to SSH2 only (the default value)
Protocol 2

# Use RSA and Ed25519 host key only
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ed25519_key

# Turn on Privilege Separation (should be on by default)
UsePrivilegeSeparation sandbox

# No root login, obvious
PermitRootLogin no

# Log the finger print of public key used to login, provide audit trails. Might take up more storage.
LogLevel VERBOSE

# 2 Factor Authentication. User must present a valid public key first, then enter the correct password to login
AuthenticationMethods publickey,password

# How fast you can type your password?
LoginGraceTime 20

# Key Exchange
KexAlgorithms [email protected],diffie-hellman-group-exchange-sha256

# Ciphers
Ciphers [email protected],[email protected],[email protected],aes256-ctr,aes128-ctr

# MACs
MACs [email protected],[email protected],[email protected],

# Only allow specific group member login via SSH
AllowGroups ssh-user

# Renew encryption key every 30 minutes or 1 GB of transferred data (overkill & generate overhead, use with caution, especially on slow network)
#RekeyLimit 1G 1800

Eliminar módulos bajo 3072 bits por seguridad (gracias Mozilla)

awk '$5 >= 3071' /etc/ssh/moduli > /etc/ssh/moduli.tmp && mv /etc/ssh/moduli.tmp /etc/ssh/moduli

La seguridad puede mejorar aún más con más ajustes como el firewall (iptables), fail2ban, el servicio oculto de Tor, el cambio a módulos personalizados y tcpwrapper, pero esos temas están fuera del alcance de esta respuesta. Tenga en cuenta que la configuración no está completa, es posible que necesite otras partes esenciales para que funcione el daemon. Recuerde hacer una copia de seguridad del archivo de configuración original para que pueda retroceder si algo sale mal.

    
respondido por el Hartman 05.02.2018 - 01:31
fuente
3

Le di una respuesta detallada a esto en mi respuesta a ¿Cómo (más) garantizar la seguridad de SSH? y per ssh.com y el OpenSSH changelog parece que las actualizaciones incluyen

  • si prefiere ecdsa a ed25519, esa es una opción en algún software SSH
  • StrictHostKeyChecking tiene más opciones.
  • DisableForwarding es nuevo
  • utilice todas las firmas SHA2, no las firmas SHA1
respondido por el Anti-weakpasswords 04.02.2018 - 23:43
fuente

Lea otras preguntas en las etiquetas