Modulul 10 · 10.4
Verificarea finală: serverul dumneavoastră sub lupă
Modulul 10: Rămâneți în siguranță · Timp de citire: 10 minute
Obiectivul lecției: După această lecție veți putea evalua propriul server cu o listă de verificare și cu un control automat din exterior, veți ști ce puncte au prioritate și veți avea un ritm fix de întreținere și un scurt dosar al serverului.
Noțiuni cheie: listă de verificare, prioritate, control din exterior, dosarul serverului, ritm de întreținere (săptămânal, lunar, trimestrial, anual), data de sfârșit a suportului pentru release, test de restaurare
De la lecții separate la un întreg
În acest curs ați configurat un server pas cu pas: autentificare sigură, permisiuni, actualizări, firewall, servicii, un site cu https, backupuri, monitorizare și containere. În această ultimă lecție puneți totul pe o singură listă. Vă verificați serverul, lăsați programul cursului să se uite din exterior și stabiliți cum veți întreține serverul în anii următori.
Un server nu este niciodată "gata". Software-ul se învechește, certificatele expiră, discurile se umplu, release-urile ajung la end of life. De aceea, un ritm fix este la fel de important ca prima configurare.
Lista de verificare, în ordinea importanței
Nu totul este la fel de urgent. Parcurgeți lista de sus în jos: primele blocuri previn cele mai multe necazuri.
Blocul 1: nimeni nu intră pur și simplu (modul 2, 3, 5)
- Autentificare doar cu chei;
PasswordAuthentication noșiKbdInteractiveAuthentication no, verificate cusudo sshd -T. - Root nu se autentifică cu parolă; lucrați ca utilizator obișnuit cu sudo.
- Bazele de date, cache-urile și clusterele de căutare ascultă pe
127.0.0.1; porturile 3306, 5432, 6379, 9200 și 27017 sunt închise din exterior, pentru IPv4 și pentru IPv6. - Un firewall care închide implicit tot traficul de intrare; sunt deschise doar porturile de care aveți nevoie.
- fail2ban rulează pentru SSH (
fail2ban-client status sshd).
Blocul 2: vulnerabilitățile sunt remediate (modul 4)
- Actualizările automate de securitate sunt activate și verificate (jurnal,
apt list --upgradable). - Un plan pentru reporniri;
/var/run/reboot-requirednu rămâne acolo săptămâni la rând. - Release-ul este încă suportat; data de sfârșit a suportului este în agenda dumneavoastră.
Blocul 3: puteți reveni (modul 8)
- Backupuri criptate în afara serverului, automate, cu monitorizare.
- Ați făcut un test de restaurare și știți cât durează restaurarea.
- Știți cum faceți un snapshot și cum deschideți consola.
Blocul 4: exteriorul este corect (modul 7)
- Înregistrările A și AAAA indică spre serverul dumneavoastră; reverse DNS (PTR) indică înapoi spre același nume.
- https cu un certificat valid care se reînnoiește automat; http redirecționează către https.
- HSTS și câteva antete de securitate; un
security.txtcu o adresă de contact funcțională și o dată de expirare.
Blocul 5: vedeți ce se întâmplă (modul 6, 8)
- Jurnalul (journal) este persistent; puteți citi jurnalele de dinainte de o repornire.
- Monitorizare din exterior (accesibilitate, certificat) și din interior (disc, servicii), cu notificări care chiar ajung la dumneavoastră.
systemctl --failedeste gol.
Blocul 6: containerele sub control (modul 9, dacă folosiți Docker)
- Porturile containerelor sunt pe
127.0.0.1sau în spatele reverse proxy-ului; fărădocker.sockîn containerele care nu au cu adevărat nevoie. - Volumele sunt incluse în backup; imaginile sunt actualizate regulat.
- Secretele se află în fișiere
.envcu permisiuni stricte, nu în Git.
Controlul din exterior
O parte din această listă poate fi verificată de programul cursului din exterior, exact așa cum oricine de pe internet vă vede serverul. Exercițiul final (Z10.4) combină verificările din exercițiile anterioare:
| Componentă | Ce face programul | Din lecția |
|---|---|---|
| SSH | Citește bannerul de versiune și întreabă ce metode de autentificare oferă serverul pentru numele dumneavoastră de utilizator; nu se autentifică | 2.2 |
| Porturile bazelor de date | Încearcă doar o conexiune către 3306, 5432, 6379, 9200 și 27017; nu trimite nimic | 5.1 |
| https | Verifică certificatul (valid, de încredere, nume corect) | 7.3 |
| Antete | Citește HSTS și celelalte antete de securitate | 7.4 |
| security.txt | Preia /.well-known/security.txt și verifică Contact și Expires | 7.4 |
| Container | Caută antetul cu codul dumneavoastră, setat de reverse proxy-ul dumneavoastră | 9.4 |
Programul nu execută nimic pe serverul dumneavoastră, nu încearcă parole și nu scanează alte porturi. Fiecare adresă poate fi verificată doar de câteva ori pe oră. Un rezultat verde înseamnă: din exterior, cele mai cunoscute greșeli lipsesc. Nu spune nimic despre ce se întâmplă în interiorul serverului; aceasta este restul listei de verificare, pe care o parcurgeți dumneavoastră.
Dosarul serverului
Scrieți pentru fiecare server un document scurt, păstrat în afara serverului (de exemplu în managerul de parole sau într-un dosar partajat):
- numele, adresele IP, furnizorul, release-ul și data de sfârșit a suportului;
- ce rulează (servicii, containere, site-uri) și de ce;
- ce porturi sunt deschise și pentru ce;
- unde se află backupurile, cum restaurați, când a fost ultimul test;
- ce secrete se află pe server (nu secretele propriu-zise, ci care sunt și unde se înlocuiesc);
- ce ați făcut în mod conștient altfel decât standardul (de exemplu o sugestie Lynis pe care ați omis-o, lecția 10.1);
- cine are acces (ce chei se află în
authorized_keys).
Acest dosar valorează aur la un incident (lecția 10.3), la un upgrade de release (lecția 4.3) și atunci când altcineva preia administrarea.
Un ritm de întreținere
Fără ritm, atenția slăbește. Iată un exemplu pentru un server mic; adaptați-l situației dumneavoastră.
| Când | Ce |
|---|---|
| În fiecare săptămână | Verificați monitorizarea și notificările; systemctl --failed; reporniți dacă apare /var/run/reboot-required (sau verificați că repornirea automată a funcționat) |
| În fiecare lună | apt list --upgradable (rămâne ceva blocat?); docker compose pull și up -d pentru containere, cu release notes; spațiul pe disc; fail2ban-client status; jurnalul, pentru erori neobișnuite (journalctl -p err --since "1 month ago") |
| În fiecare trimestru | Test de restaurare a unui backup; verificarea authorized_keys și a utilizatorilor (eliminați pe cine nu mai trebuie să aibă acces); rulați din nou Lynis; repetați controlul final din exterior (exercițiul Z10.4) |
| În fiecare an | Actualizați security.txt (Expires); verificați data de sfârșit a suportului pentru release și planificați un upgrade; actualizați dosarul serverului și planul de urgență |
Treceți aceste momente în agenda dumneavoastră. O mare parte poate fi automatizată cu monitorizarea din lecția 8.3, dar verificarea personală rămâne necesară.
În practică
Fie că serverul dumneavoastră se află la WebOké, fie la alt furnizor: furnizorul se ocupă de hardware, de rețea și de posibilitatea de a face snapshoturi și backupuri, iar dumneavoastră de tot ce este în interiorul serverului. Acest curs este de autoinstruire: nimeni nu se uită pe serverul dumneavoastră. Cu această listă de verificare, cu dosarul și cu ritmul aveți însă tot ce vă trebuie pentru a face această administrare singur și bine.
Rezumat
- Verificați-vă serverul pe blocuri: nimeni nu intră pur și simplu, vulnerabilitățile sunt remediate, puteți reveni, exteriorul este corect, vedeți ce se întâmplă, containerele sunt sub control.
- Controlul din exterior verifică metodele de autentificare SSH, porturile bazelor de date, https, antetele, security.txt și antetul containerului; restul îl verificați dumneavoastră.
- Țineți un dosar al serverului, în afara serverului.
- Lucrați după un ritm fix: săptămânal, lunar, trimestrial și anual.
Test (quiz)
Exercițiu
Exercițiul Z10.4: Exercițiul final: serverul dumneavoastră văzut din exterior. Lăsați programul cursului să vă verifice serverul din exterior, dintr-o singură dată: metodele de autentificare SSH pentru numele dumneavoastră de utilizator, cele cinci porturi ale bazelor de date, https și antetele site-ului, fișierul security.txt și antetul X-Weboke-Cursus cu codul dumneavoastră, pe numele unde rulează containerul. Pe lângă aceasta, completați lista de verificare a blocurilor 1 până la 6 pentru ceea ce programul nu poate vedea.
Exercițiul O10.4: Ritmul dvs. de întreținere. Creați-vă propriul dosar al serverului și propriul ritm de întreținere: ce faceți săptămânal, lunar, trimestrial și anual, și treceți aceste momente în agenda dumneavoastră.
Exercițiul O10.4: Ritmul dvs. de întreținere
Acest exercițiu îl faceți singur; nimeni nu îl verifică. Bifați ce ați făcut și marcați exercițiul ca finalizat.
Săptămânal: verificați actualizările și notificările; lunar: o mică restaurare și verificarea accesului (authorized_keys, utilizatori); trimestrial: o verificare finală completă; anual: o reconstruire completă din copia de siguranță și prelungirea security.txt.
Bifele și notițele dumneavoastră rămân doar în acest browser; nu le trimitem nicăieri. Dacă sunteți autentificat, păstrăm în Cursurile mele doar faptul că ați finalizat exercițiul.
Lecturi suplimentare
- Securizarea VPS-ului dumneavoastră: primele cinci minute
- HSTS și headere de securitate pentru site-ul dumneavoastră
- Strategia de backup: regula 3-2-1 pentru propria dumneavoastră companie
- securitytxt.org (explicații și generator pentru security.txt): https://securitytxt.org/
- NCSC-ul olandez, Elaborarea unei strategii de backup (sursă olandeză, în limba neerlandeză): https://www.ncsc.nl/back-up/een-back-up-strategie-opstellen
- Plasarea unui fișier security.txt pe site-ul dumneavoastră
- Mențineți VPS-ul dumneavoastră în siguranță: hardening, Lynis și un program regulat de întreținere
- Curs gratuit Siguranță online pentru antreprenori 9.3: Propria dumneavoastră verificare de securitate și plan
