Validatore sshd
Verifica l'hardening SSH- ✓Nessun problema critico rilevato
Introduzione
Il validatore sshd legge una sshd_config incollata e controlla cinque impostazioni che causano più spesso una postura SSH debole: login root, password vuote, autenticazione con password, tentativi di autenticazione e X11 forwarding.
L'obiettivo non è imporre un'ideologia SSH — è far emergere impostazioni che, combinate, determinano se un attaccante può fare brute force o un utente legittimo può chiudersi fuori.
Obiettivo
- Individuare valori PermitRootLogin che consentono il login root diretto.
- Individuare PermitEmptyPasswords attivo, che consente account senza password.
- Avvisare quando PasswordAuthentication resta attiva, raccomandando l'accesso con chiave.
- Segnalare MaxAuthTries superiore a 4 e X11Forwarding attivo senza una necessità dichiarata.
Input
- Un incolla di /etc/ssh/sshd_config (o l'output di sshd -T).
- Le righe di commento e vuote vengono ignorate; vince il primo valore per ogni chiave.
Come funziona
Lo strumento analizza ogni riga in chiave e valore (senza distinzione tra maiuscole e minuscole), tenendo la prima occorrenza di ogni chiave, come fa sshd con il suo file di default.
Poi confronta ogni chiave rilevante con l'aspettativa indurita: permitrootlogin deve essere no, permitemptypasswords deve essere no, passwordauthentication dovrebbe essere no, maxauthtries deve essere 4 o meno e x11forwarding dovrebbe essere no.
Login root e password vuote sono trattati come alta gravità perché rimuovono le due principali barriere alla compromissione remota. I restanti controlli sono avvisi perché il valore ideale dipende dal tuo ambiente.
Esempio testabile
Prova — l'analisi gira localmente nel tuo browser.
Esempio
PermitRootLogin no PasswordAuthentication no PubkeyAuthentication yes PermitEmptyPasswords no MaxAuthTries 4 X11Forwarding no
Output atteso
PermitRootLogin no — OK. PermitEmptyPasswords no — OK. PasswordAuthentication no — OK. MaxAuthTries 4 — OK. X11Forwarding no — OK. Risultato: nessun problema critico rilevato.
Leggere l'output
- Un risultato alto significa che un'impostazione indebolisce attivamente il sistema; correggilo dopo aver confermato il tuo percorso di accesso (un utente con sudo e una chiave funzionante).
- Un avviso è una raccomandazione — ad esempio disabilitare l'autenticazione con password solo dopo aver verificato l'accesso con chiave.
- Testa sempre con una seconda sessione SSH aperta prima di ricaricare sshd: systemctl reload ssh (o service ssh reload).
Rischi
- Disabilitare l'autenticazione con password senza una chiave configurata può chiuderti fuori dal server.
- PermitRootLogin yes invita a un brute force mirato sull'account più prezioso della macchina.
- Modificare sshd_config senza una seconda sessione aperta è il modo classico per perdere l'accesso remoto.
Limiti
- Lo strumento legge solo il testo incollato, non il tuo file di configurazione reale.
- Controlla alcune impostazioni, non un audit SSH completo.
- Non può rilevare metodi di autenticazione mal configurati, host key deboli o problemi di agent SSH.
Riferimenti ufficiali
FAQ
Disabilitare l'autenticazione con password è sempre giusto?
Per i server esposti a internet quasi sempre — ma solo dopo aver verificato il login con chiave da una seconda sessione. In alcuni ambienti gestiti potresti dover mantenere la password auth per una bastion.
Qual è un valore MaxAuthTries sicuro?
CIS raccomanda 4 o meno. Valori più bassi rallentano il brute force ma possono infastidire utenti legittimi con agent mal configurati.
Lo strumento usa la mia sshd_config reale?
No — solo il testo che incolli. La fonte vera è /etc/ssh/sshd_config più i file in /etc/ssh/sshd_config.d/, che puoi combinare con sshd -T.