¿Cómo puedo determinar los MAC, cifrados, longitud de clave y KexAlogrithms compatibles con mis servidores ssh?
Necesito crear una lista para una auditoría de seguridad externa. Estoy buscando algo similar a openssl s_client -connect example.com:443 -showcerts
. De mi investigación, ssh
utiliza los cifrados predeterminados que se enumeran en man sshd_config
. Sin embargo, necesito una solución que pueda usar en un script y . Necesito corregirme aquí: puede especificar man sshd_config
no enumere información sobre la longitud de la claveServerKeyBits
en sshd_config
.
Supongo que eso ssh -vv localhost &> ssh_connection_specs.out
devuelve la información que necesito, pero no estoy seguro de si los cifrados enumerados son los cifrados admitidos por el cliente o por el servidor. Además, no estoy seguro de cómo ejecutar esto no interactivo en un script.
¿Hay alguna forma conveniente de obtener SSH
información de conexión?
sshd -T | grep "\(ciphers\|macs\|kexalgorithms\)"
según lo sugerido por @Jakuje, solo funciona en hosts RHEL7, pero no en RHEL6. Terminé usandonmap --script SSH2-hostkey localhost
ynmap --script ssh-hostkey localhost
ssh -vv
genera la funcionalidad admitida como cliente a servidor (ctos) y servidor a cliente (stoc). Sin embargo, parece que esos resultados están limitados a lo que ambas partes admiten, lo que los hace menos útiles para una auditoría de seguridad.Respuestas:
Echas de menos algunos puntos en tu pregunta:
ServerKeyBits
es una opción para la versión 1 del protocolo, que esperamos haya deshabilitado.Los Cifrados, MAC y KexAlgorithms admitidos siempre están disponibles en el manual y esto no tiene nada en común con las longitudes de las claves.
Habilitados Chiphers, MACs y KexAlgorithms son los que se ofrece a partir de la conexión como usted señala. Pero también se pueden obtener de otras maneras, por ejemplo utilizando
sshd -T | grep "\(ciphers\|macs\|kexalgorithms\)"
Para obtener la longitud de la clave de su (s) clave (s) de servidor, puede usar ssh-keygen:
ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub
pero probablemente querrá también los tamaños de los módulos que se ofrecen y usan durante el intercambio de claves, pero realmente depende del método de intercambio de claves, pero también debe ser legible desde la salida de depuración
ssh -vvv host
.fuente
sshd -T | grep "\(ciphers\|macs\|kexalgorithms\)"
solo funcionaban mis hosts RHEL7, pero no RHEL6. Terminé usandonmap --script SSH2-hostkey localhost
ynmap --script ssh-hostkey localhost
Parece que la respuesta en /superuser//a/1219759/173408 también es una respuesta a su pregunta. Cabe en una línea:
Aquí está el resultado en una máquina Debian 9.4 simple con la versión SSH actual:
fuente
PORT STATE SERVICE VERSION 22/tcp filtered ssh
comando con este comando, aunque puedo iniciar sesión en ese mismo servidor a través de ssh.1.2.3.4
con la IP de su servidor?