Modul 10 · 10.4
Završna provjera: Vaš poslužitelj pod povećalom
Modul 10: Ostanite sigurni · Vrijeme čitanja: 10 minuta
Cilj učenja: Nakon ove lekcije moći ćete procijeniti vlastiti poslužitelj pomoću kontrolnog popisa i automatske provjere izvana, znat ćete koje stavke imaju prednost te ćete imati stalan ritam održavanja i kratki dosje poslužitelja.
Ključni pojmovi: kontrolni popis, prioritet, provjera izvana, dosje poslužitelja, ritam održavanja (tjedno, mjesečno, tromjesečno, godišnje), datum prestanka podrške za izdanje, test vraćanja
Od pojedinačnih lekcija do cjeline
U ovom ste tečaju korak po korak postavili poslužitelj: sigurnu prijavu, prava pristupa, ažuriranja, vatrozid, servise, web-stranicu s https, sigurnosne kopije, nadzor i kontejnere. U ovoj posljednjoj lekciji sve ćete objediniti na jednom popisu. Pregledat ćete svoj poslužitelj, pustiti da ga program tečaja provjeri izvana te zapisati kako ćete poslužitelj održavati sljedećih godina.
Poslužitelj nikada nije "gotov". Softver zastarijeva, certifikati istječu, diskovi se pune, izdanja dolaze do kraja životnog vijeka (end of life). Stalan ritam zato je jednako važan kao i prvo postavljanje.
Kontrolni popis, poredan po važnosti
Nije sve jednako hitno. Prođite popis odozgo prema dolje: prvi blokovi sprječavaju najviše nevolja.
Blok 1: nitko ne može tek tako ući (modul 2, 3, 5)
- Prijava samo ključevima;
PasswordAuthentication noiKbdInteractiveAuthentication no, provjereno naredbomsudo sshd -T. - Root se ne prijavljuje lozinkom; radite kao običan korisnik sa sudo ovlastima.
- Baze podataka, predmemorije i klasteri za pretraživanje slušaju na
127.0.0.1; priključci 3306, 5432, 6379, 9200 i 27017 zatvoreni su izvana, i za IPv4 i za IPv6. - Vatrozid koji prema zadanim postavkama zatvara sav dolazni promet; otvoreni su samo priključci koji su Vam potrebni.
- fail2ban radi za SSH (
fail2ban-client status sshd).
Blok 2: sigurnosni propusti se zatvaraju (modul 4)
- Automatska sigurnosna ažuriranja uključena su i provjerena (zapisnik,
apt list --upgradable). - Postoji plan za ponovno pokretanje;
/var/run/reboot-requiredne stoji ondje tjednima. - Izdanje je još podržano; datum prestanka podrške upisan je u Vaš kalendar.
Blok 3: možete se vratiti (modul 8)
- Šifrirane sigurnosne kopije izvan poslužitelja, automatske, s nadzorom.
- Napravljen je test vraćanja i znate koliko vraćanje traje.
- Znate kako napraviti snapshot i otvoriti konzolu.
Blok 4: vanjska strana je ispravna (modul 7)
- A i AAAA zapisi upućuju na Vaš poslužitelj; reverse DNS (PTR) upućuje natrag na isti naziv.
- https s valjanim certifikatom koji se sam obnavlja; http preusmjerava na https.
- HSTS i nekoliko sigurnosnih zaglavlja;
security.txts ispravnom kontaktnom adresom i datumom isteka.
Blok 5: vidite što se događa (modul 6, 8)
- Journal je trajan (persistent); možete čitati zapise od prije ponovnog pokretanja.
- Nadzor izvana (dostupnost, certifikat) i iznutra (disk, servisi), s obavijestima koje stvarno stižu.
systemctl --failedje prazan.
Blok 6: kontejneri pod kontrolom (modul 9, ako koristite Docker)
- Priključci kontejnera na
127.0.0.1ili iza reverse proxyja; nemadocker.socku kontejnerima kojima to zaista nije potrebno. - Volumeni su uključeni u sigurnosnu kopiju; slike (images) se redovito ažuriraju.
- Tajne se nalaze u
.envdatotekama sa strogim pravima pristupa, ne u Gitu.
Provjera izvana
Dio ovog popisa program tečaja može provjeriti izvana, točno onako kako Vaš poslužitelj vidi bilo tko na internetu. Završni zadatak (Z10.4) objedinjuje provjere iz prethodnih zadataka:
| Stavka | Što program radi | Iz lekcije |
|---|---|---|
| SSH | Čita banner s verzijom i pita koje načine prijave Vaš poslužitelj nudi za Vaše korisničko ime; ne prijavljuje se | 2.2 |
| Priključci baza podataka | Samo pokušava uspostaviti vezu prema 3306, 5432, 6379, 9200 i 27017; ništa ne šalje | 5.1 |
| https | Provjerava certifikat (valjan, pouzdan, ispravan naziv) | 7.3 |
| Zaglavlja | Čita HSTS i ostala sigurnosna zaglavlja | 7.4 |
| security.txt | Dohvaća /.well-known/security.txt i provjerava Contact i Expires | 7.4 |
| Kontejner | Traži zaglavlje s Vašim kodom koje postavlja Vaš reverse proxy | 9.4 |
Program ne pokreće ništa na Vašem poslužitelju, ne isprobava lozinke i ne skenira druge priključke. Svaka se adresa može provjeriti samo nekoliko puta na sat. Zeleni rezultat znači: izvana nema najpoznatijih pogrešaka. On ne govori ništa o tome što se događa unutar Vašeg poslužitelja; to je ostatak kontrolnog popisa, a njega prolazite sami.
Dosje poslužitelja
Za svaki poslužitelj napišite kratki dokument koji čuvate izvan poslužitelja (na primjer u upravitelju lozinki ili u zajedničkoj mapi):
- naziv, IP adrese, pružatelj usluge, izdanje i datum prestanka podrške;
- što radi na poslužitelju (servisi, kontejneri, web-stranice) i zašto;
- koji su priključci otvoreni i čemu služe;
- gdje se nalaze sigurnosne kopije, kako ih vraćate i kada je bio posljednji test;
- koje se tajne nalaze na poslužitelju (ne same tajne, nego koje su i gdje se mijenjaju);
- što ste svjesno napravili drukčije od standarda (na primjer prijedlog alata Lynis koji ste preskočili, lekcija 10.1);
- tko ima pristup (koji su ključevi u
authorized_keys).
Ovaj dosje zlata je vrijedan kod incidenta (lekcija 10.3), kod nadogradnje izdanja (lekcija 4.3) i kada netko drugi preuzme upravljanje.
Ritam održavanja
Bez ritma pažnja popušta. Evo primjera za mali poslužitelj; prilagodite ga svojoj situaciji.
| Kada | Što |
|---|---|
| Svaki tjedan | Pregledajte nadzor i obavijesti; systemctl --failed; ponovno pokrenite poslužitelj ako postoji /var/run/reboot-required (ili provjerite je li automatsko ponovno pokretanje uspjelo) |
| Svaki mjesec | apt list --upgradable (je li nešto zapelo?); docker compose pull i up -d za Vaše kontejnere, uz bilješke o izdanju (release notes); prostor na disku; fail2ban-client status; zapisnik s obzirom na upadljive pogreške (journalctl -p err --since "1 month ago") |
| Svako tromjesečje | Test vraćanja sigurnosne kopije; pregled authorized_keys i korisnika (uklonite one koji više ne bi trebali imati pristup); ponovno pokretanje alata Lynis; ponovna završna provjera izvana (zadatak Z10.4) |
| Svake godine | Ažurirajte security.txt (Expires); provjerite datum prestanka podrške za izdanje i isplanirajte nadogradnju; ažurirajte dosje poslužitelja i plan za hitne slučajeve |
Upišite te termine u svoj kalendar. Velik dio možete i automatizirati nadzorom iz lekcije 8.3, ali i dalje morate sami pogledati.
U praksi
Bez obzira na to nalazi li se Vaš poslužitelj kod WebOké ili kod drugog pružatelja usluge: pružatelj se brine za hardver, mrežu i mogućnost izrade snapshota i sigurnosnih kopija, a Vi za sve unutar poslužitelja. Ovaj je tečaj samopomoć: nitko ne gleda Vaš poslužitelj zajedno s Vama. No s ovim kontrolnim popisom, dosjeom i ritmom imate sve što Vam je potrebno da to upravljanje obavljate samostalno i dobro.
Sažetak
- Pregledajte poslužitelj po blokovima: nitko ne može tek tako ući, sigurnosni propusti se zatvaraju, možete se vratiti, vanjska strana je ispravna, vidite što se događa, kontejneri su pod kontrolom.
- Provjera izvana gleda načine SSH prijave, priključke baza podataka, https, zaglavlja, security.txt i zaglavlje Vašeg kontejnera; ostatak provjeravate sami.
- Vodite dosje poslužitelja i čuvajte ga izvan poslužitelja.
- Radite po stalnom ritmu: tjedno, mjesečno, tromjesečno i godišnje.
Kviz
Zadatak
Zadatak Z10.4: Završni zadatak: Vaš poslužitelj izvana. Neka program tečaja u jednom prolazu provjeri Vaš poslužitelj izvana: načine SSH prijave za Vaše korisničko ime, pet priključaka baza podataka, https i zaglavlja Vaše stranice, Vaš security.txt te zaglavlje X-Weboke-Cursus s Vašim kodom na nazivu na kojem radi Vaš kontejner. Uz to ispunite kontrolni popis blokova od 1 do 6 za ono što program ne može vidjeti.
Zadatak O10.4: Vaš ritam održavanja. Izradite vlastiti dosje poslužitelja i ritam održavanja: što radite tjedno, mjesečno, tromjesečno i godišnje, te te termine upišite u svoj kalendar.
Zadatak O10.4: Vaš ritam održavanja
Ovaj zadatak rješavate sami; nitko ga ne provjerava. Označite što ste napravili i označite zadatak kao završen.
Tjedno provjerite ažuriranja i obavijesti; mjesečno napravite malo vraćanje i provjerite pristup (authorized_keys, korisnici); tromjesečno potpunu završnu provjeru; godišnje potpunu ponovnu izgradnju iz sigurnosne kopije i produljenje security.txt.
Vaše kvačice i bilješke ostaju samo u ovom pregledniku; ne šaljemo ih nikamo. Ako ste prijavljeni, u Moji tečajevi čuvamo samo podatak da ste zadatak završili.
Dodatno štivo
- Zaštita Vašeg VPS-a: prvih pet minuta
- HSTS i sigurnosna zaglavlja za Vašu web stranicu
- Strategija izrade sigurnosnih kopija: pravilo 3-2-1 za Vaše vlastito poduzeće
- securitytxt.org (objašnjenje i generator za security.txt): https://securitytxt.org/
- Nizozemski NCSC, izrada strategije sigurnosnog kopiranja (nizozemski izvor, na nizozemskom): https://www.ncsc.nl/back-up/een-back-up-strategie-opstellen
