Hardening di SSH e autenticazione basata su chiavi
Disabiliti l’autenticazione tramite password, configuri le coppie di chiavi, limiti l’accesso con AllowUsers e utilizzi fail2ban.
Hardening di SSH e autenticazione basata su chiavi è una lezione Cyber Security Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cyber Security Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cyber Security Academy include 4 lezioni in totale.
Perché la sicurezza di SSH è importante
SSH è il principale protocollo di amministrazione remota per i server Linux. Un server SSH configurato in modo errato è uno dei punti di ingresso più comuni per gli aggressori: è esposto a Internet e preso di mira continuamente da bot che eseguono attacchi brute-force.
Generare una coppia di chiavi SSH
L'autenticazione basata su chiavi è più sicura di quella tramite password. Generi una coppia di chiavi:
ssh-keygen -t ed25519 -C "your_email"
# Creates ~/.ssh/id_ed25519 (private) and id_ed25519.pub (public)
# Never share the private keyInstallare le chiavi pubbliche
Copi la chiave pubblica sul server:
ssh-copy-id user@server
# Or manually:
cat ~/.ssh/id_ed25519.pub >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keysDisabilitare l'autenticazione tramite password
Quando l'autenticazione basata su chiavi funziona, disabiliti l'accesso tramite password per eliminare il rischio di attacchi brute-force:
# In /etc/ssh/sshd_config:
PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
sudo systemctl restart sshdCambiare la porta SSH predefinita
Spostare SSH dalla porta 22 riduce il rumore delle scansioni automatizzate. È una forma di security through obscurity: non costituisce una vera difesa, ma riduce la quantità di messaggi nei log. Aggiorni sempre le regole del firewall in modo che corrispondano alla nuova porta.
# /etc/ssh/sshd_config
Port 2222
# Then update firewall:
ufw allow 2222/tcp
ufw delete allow 22/tcpLimitare l'accesso SSH per utente/IP
Limiti quali utenti possono utilizzare SSH e da quali origini:
# /etc/ssh/sshd_config
AllowUsers alice bob
AllowGroups sshusers
# Or restrict by source IP in /etc/hosts.allow:
sshd: 192.168.1.0/24Timeout e limiti di accesso SSH
Riduca la superficie di esposizione con limiti per le sessioni e i tentativi:
# /etc/ssh/sshd_config
ClientAliveInterval 300 # disconnect idle sessions after 5 min
ClientAliveCountMax 2
MaxAuthTries 3 # max password attempts
LoginGraceTime 30 # seconds to authenticateUtilizzare fail2ban
fail2ban monitora i file di log e blocca gli indirizzi IP che mostrano schemi dannosi, ad esempio un numero eccessivo di accessi SSH non riusciti. Aggiorna dinamicamente le regole del firewall per bloccare gli aggressori.
apt install fail2ban
# /etc/fail2ban/jail.local:
[sshd]
enabled = true
maxretry = 3
bantime = 3600Agente SSH e inoltro delle chiavi
Agente SSH conserva in memoria la chiave privata decrittografata, così non è necessario reinserire la passphrase a ogni accesso. L'inoltro dell'agente (ssh -A) fa passare la chiave attraverso più server intermediari: lo utilizzi con cautela, perché un server intermedio compromesso potrebbe sottrarre la chiave dal socket dell'agente.
Autenticazione a due fattori per SSH
Aggiunga TOTP a SSH con il modulo PAM di Google Authenticator per una protezione aggiuntiva, anche quando si utilizza l'autenticazione basata su chiavi. Per accedere sono necessari sia la chiave SIA un OTP basato sul tempo.
Verificare la configurazione SSH
Verifichi la configurazione SSH con:
sshd -T | grep -E "passwordauth|permitroot|pubkeyauth|port"
# Check who is connected:
ss -tnp | grep :22
whoVerifica rapida: hardening di SSH
Quale impostazione di sshd_config deve essere configurata su no per eliminare gli attacchi brute-force basati su password contro SSH?
Riepilogo della lezione
Hardening di SSH: utilizzi chiavi Ed25519, disabiliti l'autenticazione tramite password, disabiliti l'accesso root, cambi la porta 22, limiti AllowUsers, imposti timeout per l'inattività e installi fail2ban. Non condivida mai le chiavi private. Esegua l'audit con sshd -T. L'inoltro dell'agente è comodo, ma rischioso sugli host non attendibili.
Impara Cyber Security Academy con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 76
- Lezioni
- 303
Domande Frequenti
La lezione «Hardening di SSH e autenticazione basata su chiavi» è gratuita?
Sì — il testo completo di «Hardening di SSH e autenticazione basata su chiavi» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cyber Security Academy, passa a CoddyKit PRO. Il corso Cyber Security Academy include 4 lezioni in totale.
Cosa imparerò in «Hardening di SSH e autenticazione basata su chiavi»?
Disabiliti l’autenticazione tramite password, configuri le coppie di chiavi, limiti l’accesso con AllowUsers e utilizzi fail2ban. Eserciti Cyber Security Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Cyber Security Academy?
Non è richiesta alcuna esperienza precedente. Cyber Security Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «Hardening di SSH e autenticazione basata su chiavi»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Cyber Security Academy?
Sì. Ogni lezione Cyber Security Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Permessi e proprietà dei file
- Gestione di utenti e gruppi
- Hardening di SSH e autenticazione basata su chiavi
- Regole firewall con iptables e UFW