Verifica finale: il Suo server alla prova
Modulo 10: Restare al sicuro · Tempo di lettura: 10 minuti
Obiettivo della lezione: Dopo questa lezione saprà valutare il Suo server con una checklist e con un controllo automatico dall'esterno, saprà quali punti hanno la precedenza e avrà un ritmo di manutenzione fisso e un breve dossier del server.
Concetti chiave: checklist, priorità, controllo dall'esterno, dossier del server, ritmo di manutenzione (settimanale, mensile, trimestrale, annuale), data di fine supporto della release, test di ripristino
Dalle singole lezioni a un insieme unico
In questo corso ha configurato un server passo dopo passo: accesso sicuro, permessi, aggiornamenti, firewall, servizi, un sito web con https, backup, monitoraggio e container. In quest'ultima lezione mette tutto in un unico elenco. Verifica il Suo server, lascia che il programma del corso lo controlli dall'esterno e stabilisce come manterrà il server nei prossimi anni.
Un server non è mai "finito". Il software invecchia, i certificati scadono, i dischi si riempiono, le release arrivano a fine vita (end of life). Un ritmo fisso è quindi importante quanto la configurazione iniziale.
La checklist, in ordine di importanza
Non tutto è ugualmente urgente. Percorra l'elenco dall'alto verso il basso: i primi blocchi evitano la maggior parte dei guai.
Blocco 1: nessuno entra senza permesso (moduli 2, 3, 5)
- Accesso solo con chiavi;
PasswordAuthentication noeKbdInteractiveAuthentication no, verificati consudo sshd -T. - Root non accede con una password; Lei lavora come utente normale con sudo.
- Database, cache e cluster di ricerca sono in ascolto su
127.0.0.1; le porte 3306, 5432, 6379, 9200 e 27017 sono chiuse dall'esterno, sia per IPv4 sia per IPv6. - Un firewall che per impostazione predefinita blocca tutto il traffico in entrata; aperte solo le porte di cui ha bisogno.
- fail2ban è attivo per SSH (
fail2ban-client status sshd).
Blocco 2: le falle vengono chiuse (modulo 4)
- Aggiornamenti di sicurezza automatici attivi e verificati (log,
apt list --upgradable). - Un piano per i riavvii;
/var/run/reboot-requirednon resta lì per settimane. - La release è ancora supportata; la data di fine supporto è segnata nella Sua agenda.
Blocco 3: può tornare indietro (modulo 8)
- Backup cifrati fuori dal server, automatici, con monitoraggio.
- Un test di ripristino eseguito, e sa quanto tempo richiede il ripristino.
- Sa come creare uno snapshot e come aprire la console.
Blocco 4: l'esterno è in ordine (modulo 7)
- I record A e AAAA puntano al Suo server; il DNS inverso (PTR) punta di nuovo allo stesso nome.
- https con un certificato valido che si rinnova da solo; http reindirizza a https.
- HSTS e alcuni header di sicurezza; un
security.txtcon un indirizzo di contatto funzionante e una data di scadenza.
Blocco 5: vede cosa succede (moduli 6, 8)
- Il journal è persistente; può leggere i log di prima di un riavvio.
- Monitoraggio dall'esterno (raggiungibilità, certificato) e dall'interno (disco, servizi), con notifiche che arrivano davvero.
systemctl --failedè vuoto.
Blocco 6: container sotto controllo (modulo 9, se usa Docker)
- Porte dei container su
127.0.0.1o dietro il reverse proxy; nessundocker.socknei container che non ne hanno davvero bisogno. - I volumi sono inclusi nel backup; le immagini vengono aggiornate regolarmente.
- I segreti si trovano in file
.envcon permessi restrittivi, non in Git.
Il controllo dall'esterno
Una parte di questo elenco può essere verificata dal programma del corso dall'esterno, esattamente come chiunque su internet vede il Suo server. L'esercizio finale (Z10.4) combina i controlli degli esercizi precedenti:
| Elemento | Che cosa fa il programma | Dalla lezione |
|---|---|---|
| SSH | Legge il banner della versione e chiede quali metodi di accesso il Suo server offre per il Suo nome utente; non effettua l'accesso | 2.2 |
| Porte dei database | Tenta solo una connessione verso 3306, 5432, 6379, 9200 e 27017; non invia nulla | 5.1 |
| https | Verifica il certificato (valido, attendibile, nome corretto) | 7.3 |
| Header | Legge HSTS e gli altri header di sicurezza | 7.4 |
| security.txt | Recupera /.well-known/security.txt e verifica Contact ed Expires | 7.4 |
| Container | Cerca l'header con il Suo codice, impostato dal Suo reverse proxy | 9.4 |
Il programma non esegue nulla sul Suo server, non prova password e non scansiona altre porte. Ogni indirizzo può essere controllato solo poche volte all'ora. Un esito verde significa: dall'esterno gli errori più noti sono assenti. Non dice nulla su ciò che accade all'interno del Suo server; quello è il resto della checklist, e lo verifica Lei stesso.
Il dossier del server
Scriva per ogni server un breve documento, conservato fuori dal server (per esempio nel Suo gestore di password o in una cartella condivisa):
- nome, indirizzi IP, fornitore, release e data di fine supporto;
- che cosa è in esecuzione (servizi, container, siti web) e perché;
- quali porte sono aperte e per quale scopo;
- dove si trovano i backup, come si esegue il ripristino, quando è stato fatto l'ultimo test;
- quali segreti si trovano sul server (non i segreti stessi, ma quali sono e dove vanno sostituiti);
- che cosa ha fatto consapevolmente in modo diverso dallo standard (per esempio un suggerimento di Lynis che ha saltato, lezione 10.1);
- chi ha accesso (quali chiavi sono in
authorized_keys).
Questo dossier vale oro in caso di incidente (lezione 10.3), durante un upgrade di release (lezione 4.3) e quando qualcun altro subentra nella gestione.
Un ritmo di manutenzione
Senza un ritmo, l'attenzione cala. Ecco un esempio per un piccolo server; lo adatti alla Sua situazione.
| Quando | Che cosa |
|---|---|
| Ogni settimana | Controllare monitoraggio e notifiche; systemctl --failed; riavviare se è presente /var/run/reboot-required (o verificare che il riavvio automatico abbia funzionato) |
| Ogni mese | apt list --upgradable (resta in sospeso qualcosa?); docker compose pull e up -d per i Suoi container, con le release notes; spazio su disco; fail2ban-client status; log alla ricerca di errori insoliti (journalctl -p err --since "1 month ago") |
| Ogni trimestre | Test di ripristino di un backup; controllare authorized_keys e gli utenti (rimuovere chi non deve più avere accesso); eseguire di nuovo Lynis; ripetere il controllo finale dall'esterno (esercizio Z10.4) |
| Ogni anno | Aggiornare security.txt (Expires); controllare la data di fine supporto della release e pianificare un upgrade; aggiornare il dossier del server e il piano di emergenza |
Segni questi momenti nella Sua agenda. Gran parte può essere automatizzata anche con il monitoraggio della lezione 8.3, ma controllare di persona resta necessario.
Nella pratica
Che il Suo server si trovi presso WebOké o presso un altro fornitore: il fornitore si occupa dell'hardware, della rete e della possibilità di creare snapshot e backup, Lei di tutto ciò che sta dentro il server. Questo corso è un percorso di autoformazione: nessuno controlla il Suo server al posto Suo. Con questa checklist, il dossier e il ritmo ha però tutto ciò che serve per svolgere questa gestione in autonomia e nel modo giusto.
Riepilogo
- Verifichi il Suo server per blocchi: nessuno entra senza permesso, le falle vengono chiuse, può tornare indietro, l'esterno è in ordine, vede cosa succede, container sotto controllo.
- Il controllo dall'esterno esamina i metodi di accesso SSH, le porte dei database, https, gli header, security.txt e l'header del Suo container; il resto lo verifica Lei stesso.
- Tenga un dossier del server, fuori dal server.
- Lavori con un ritmo fisso: settimanale, mensile, trimestrale e annuale.
Quiz
Esercizio
Esercizio Z10.4: Esercizio finale: il Suo server visto dall'esterno. Lasci che il programma del corso controlli il Suo server dall'esterno in un'unica volta: i metodi di accesso SSH per il Suo nome utente, le cinque porte dei database, https e gli header del Suo sito, il Suo security.txt e l'header X-Weboke-Cursus con il Suo codice sul nome su cui è in esecuzione il Suo container. Compili inoltre la checklist dei blocchi da 1 a 6 per ciò che il programma non può vedere.
Esercizio O10.4: Il Suo ritmo di manutenzione. Crei il Suo dossier del server e il Suo ritmo di manutenzione: che cosa fa ogni settimana, ogni mese, ogni trimestre e ogni anno, e segni questi momenti nella Sua agenda.
Esercizio O10.4: Il Suo ritmo di manutenzione
Questo esercizio lo svolge da sé; nessuno lo verifica. Spunti ciò che ha fatto e segni l'esercizio come completato.
Ogni settimana: controllare aggiornamenti e notifiche; ogni mese: un piccolo ripristino e una verifica degli accessi (authorized_keys, utenti); ogni trimestre: un controllo finale completo; ogni anno: una ricostruzione completa dal backup e il rinnovo di security.txt.
Le Sue spunte e note restano solo in questo browser; non le inviamo da nessuna parte. Se ha effettuato l'accesso, conserviamo in I miei corsi solo il fatto che ha svolto l'esercizio.
Per approfondire
- Proteggere il suo VPS: i primi cinque minuti
- Intestazioni HSTS e di sicurezza per il Suo sito web
- Strategia di backup: la regola del 3-2-1 per la Sua azienda
- securitytxt.org (spiegazione e generatore per security.txt): https://securitytxt.org/
- Il NCSC olandese, Elaborare una strategia di backup (fonte olandese, in neerlandese): https://www.ncsc.nl/back-up/een-back-up-strategie-opstellen
