OTOthoTools

Validatore sshd

Verifica l'hardening SSH
Input
Risultato1 risultati
  • 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.