Come posso elencare MAC, Cipher e KexAlogrithms supportati dal mio server SSH?


19

Come posso determinare i MAC, i cifrari, la lunghezza delle chiavi e i KexAlogrithms supportati supportati dai miei server ssh?

Devo creare un elenco per un controllo di sicurezza esterno. Sto cercando qualcosa di simile a openssl s_client -connect example.com:443 -showcerts. Dalla mia ricerca sshutilizza le cifre predefinite elencate in man sshd_config. Tuttavia ho bisogno di una soluzione che posso usare in uno script e man sshd_confignon elenca le informazioni sulla lunghezza della chiave . Devo correggermi qui: è possibile specificare ServerKeyBitsin sshd_config.

Immagino che ssh -vv localhost &> ssh_connection_specs.outrestituisca le informazioni di cui ho bisogno ma non sono sicuro che le cifre elencate siano le cifre supportate dal client o dal server. Inoltre non sono sicuro di come eseguire questo non interattivo in uno script.

Esiste un modo conveniente per ottenere SSHinformazioni sulla connessione?


3
si è scoperto che sshd -T | grep "\(ciphers\|macs\|kexalgorithms\)"come suggerito da @Jakuje funziona solo su host RHEL7, ma non RHEL6. Ho finito per usare nmap --script SSH2-hostkey localhostenmap --script ssh-hostkey localhost
Henrik Pingel l'

ssh -vvproduce le funzionalità supportate come client to server (ctos) e server to client (stoc). Tuttavia, sembra che tali risultati siano limitati a ciò che entrambe le parti supportano, rendendoli meno utili per un audit di sicurezza.
Moshe,

Risposte:


18

Ti mancano alcuni punti nella tua domanda:

  • Qual è la tua versione di openssh? Può differire un po 'rispetto alle versioni.
  • ServerKeyBits è l'opzione per il protocollo versione 1, che si spera che tu abbia disabilitato!

Supportati cifrari, Mac e KexAlgorithms sono sempre disponibili nel manuale e questo non ha nulla in comune con la lunghezza della chiave.

Enabled Chiphers, Mac e KexAlgorithms sono quelli che vengono offerti utilizzando la connessione come fai notare. Ma possono essere ottenuti anche in altri modi, ad esempio utilizzandosshd -T | grep "\(ciphers\|macs\|kexalgorithms\)"

Per ottenere la lunghezza della chiave delle chiavi del tuo server, puoi usare ssh-keygen: ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub

ma probabilmente vorrai anche le dimensioni dei moduli che vengono offerte e utilizzate durante lo scambio delle chiavi, ma dipende in realtà dal metodo di scambio delle chiavi, ma dovrebbe anche essere leggibile dall'output di debug ssh -vvv host.


1
Grazie. Si è scoperto che ha sshd -T | grep "\(ciphers\|macs\|kexalgorithms\)"funzionato solo i miei host RHEL7, ma non RHEL6. Ho finito per usare nmap --script SSH2-hostkey localhostenmap --script ssh-hostkey localhost
Henrik Pingel l'

1
Anche l'host RHEL6 con l'ultimo aggiornamento di openssh dovrebbe averlo corretto.
Jakuje,

dannazione hai ragione. Ho controllato solo su una VM obsoleta ... grazie
Henrik Pingel

sshd -T offrirà solo informazioni sulle cifre configurate nel file sshd_config, non su ciò che può effettivamente essere aggiunto come supportato dal binario
Daniel J.

10

Come posso determinare i MAC, i cifrari, la lunghezza delle chiavi e i KexAlogrithms supportati supportati dai miei server ssh?

Sembra che la risposta su /superuser//a/1219759/173408 sia anche una risposta alla tua domanda. Si adatta in una riga:

nmap --script ssh2-enum-algos -sV -p 22 1.2.3.4

Ecco l'output su un semplice computer Debian 9.4 con l'attuale versione SSH:

Avvio di Nmap 7.01 (https://nmap.org) alle 22/05/2018 13:40 CEST
Rapporto di scansione Nmap per 1.2.3.4
L'host è attivo (latenza di 0.00024s).
VERSIONE DEL SERVIZIO DI STATO PORTUALE
22 / tcp open ssh OpenSSH 7.4p1 Debian 10 + deb9u3 (protocollo 2.0)
| SSH2-enum-algos:
| algoritmi kex: (10)
| curve25519-sha256
| curve25519-sha256@libssh.org
| ECDH-SHA2-nistp256
| ECDH-SHA2-nistp384
| ECDH-SHA2-nistp521
| Diffie-Hellman-gruppo-scambio-sha256
| Diffie-Hellman-group16-sha512
| Diffie-Hellman-group18-sha512
| Diffie-Hellman-group14-sha256
| Diffie-Hellman-group14-SHA1
| server_host_key_algorithms: (5)
| ssh-rsa
| rsa-sha2-512
| rsa-sha2-256
| ECDSA-SHA2-nistp256
| ssh-ed25519
| algoritmi di crittografia: (6)
| chacha20-poly1305@openssh.com
| AES128-ctr
| AES192-ctr
| AES256-ctr
| aes128-gcm@openssh.com
| aes256-gcm@openssh.com
| mac_algorithms: (10)
| umac-64-etm@openssh.com
| umac-128-etm@openssh.com
| hmac-sha2-256-etm@openssh.com
| hmac-sha2-512-etm@openssh.com
| hmac-sha1-etm@openssh.com
| umac-64@openssh.com
| umac-128@openssh.com
| hmac-sha2-256
| hmac-sha2-512
| HMAC-SHA1
| algoritmi_compressione: (2)
| nessuna
| _ zlib@openssh.com
Informazioni sul servizio: SO: Linux; CPE: cpe: / o: linux: linux_kernel

Rilevamento del servizio eseguito. Si prega di segnalare eventuali risultati errati su https://nmap.org/submit/.
Nmap completata: 1 indirizzo IP (1 host attivo) scansionato in 0,52 secondi

1
Ottengo un PORT STATE SERVICE VERSION 22/tcp filtered sshcon questo comando, anche se posso accedere allo stesso server tramite SSH.
Ehi,

Hai letteralmente usato il comando o l'hai sostituito 1.2.3.4con l'IP del tuo server?
Stéphane Gourichon,

Ho usato l'IP del mio server.
Ehi,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.