10 modulis · 10.4
Galutinė patikra: Jūsų serveris po lupa
10 modulis: Išlikti saugiems · Skaitymo laikas: 10 min.
Mokymosi tikslas: Po šios pamokos galėsite įvertinti savo serverį naudodamiesi kontroliniu sąrašu ir automatine patikra iš išorės, žinosite, kuriems punktams teikti pirmenybę, ir turėsite nuolatinį priežiūros ritmą bei trumpą serverio dosjė.
Pagrindinės sąvokos: kontrolinis sąrašas, prioritetas, patikra iš išorės, serverio dosjė, priežiūros ritmas (kas savaitę, kas mėnesį, kas ketvirtį, kas metus), leidimo palaikymo pabaigos data, atkūrimo bandymas
Nuo atskirų pamokų prie vientisos visumos
Šiame kurse žingsnis po žingsnio paruošėte serverį: saugų prisijungimą, teises, atnaujinimus, užkardą, paslaugas, svetainę su https, atsargines kopijas, stebėseną ir konteinerius. Šioje paskutinėje pamokoje viską sudėsite į vieną sąrašą. Patikrinsite savo serverį, leisite kurso programai pažvelgti į jį iš išorės ir užsirašysite, kaip prižiūrėsite serverį ateinančius metus.
Serveris niekada nebūna "baigtas". Programinė įranga sensta, sertifikatai baigia galioti, diskai prisipildo, leidimams baigiasi palaikymas (end of life). Todėl nuolatinis ritmas yra toks pat svarbus kaip ir pirminė sąranka.
Kontrolinis sąrašas pagal svarbą
Ne viskas vienodai skubu. Eikite per sąrašą iš viršaus į apačią: pirmieji blokai apsaugo nuo daugiausia bėdų.
1 blokas: niekas taip paprastai neįeis (2, 3, 5 moduliai)
- Prisijungiama tik raktais;
PasswordAuthentication noirKbdInteractiveAuthentication no, patikrinta susudo sshd -T. - root neprisijungia slaptažodžiu; dirbate kaip įprastas naudotojas su sudo.
- Duomenų bazės, podėliai ir paieškos klasteriai klausosi
127.0.0.1; prievadai 3306, 5432, 6379, 9200 ir 27017 iš išorės uždaryti, tiek IPv4, tiek IPv6. - Užkarda, kuri pagal numatytuosius nustatymus blokuoja visą įeinantį srautą; atidaryti tik tie prievadai, kurių Jums reikia.
- fail2ban veikia SSH apsaugai (
fail2ban-client status sshd).
2 blokas: spragos užtaisomos (4 modulis)
- Automatiniai saugumo atnaujinimai įjungti ir patikrinti (žurnalas,
apt list --upgradable). - Yra paleidimo iš naujo planas;
/var/run/reboot-requirednebūna ištisas savaites. - Leidimas vis dar palaikomas; palaikymo pabaigos data įrašyta Jūsų kalendoriuje.
3 blokas: galite grįžti atgal (8 modulis)
- Šifruotos atsarginės kopijos už serverio ribų, automatiškai, su stebėsena.
- Atliktas atkūrimo bandymas, ir žinote, kiek laiko trunka atkūrimas.
- Žinote, kaip sukurti momentinę kopiją (snapshot) ir atidaryti konsolę.
4 blokas: išorė tvarkinga (7 modulis)
- A ir AAAA įrašai nukreipti į Jūsų serverį; atvirkštinis DNS (PTR) rodo atgal į tą patį pavadinimą.
- https su galiojančiu sertifikatu, kuris atnaujinamas automatiškai; http peradresuoja į https.
- HSTS ir kelios saugumo antraštės;
security.txtsu veikiančiu kontaktiniu adresu ir galiojimo pabaigos data.
5 blokas: matote, kas vyksta (6, 8 moduliai)
- journal yra nuolatinis; galite skaityti žurnalus, įrašytus prieš paleidimą iš naujo.
- Stebėsena iš išorės (pasiekiamumas, sertifikatas) ir iš vidaus (diskas, paslaugos), su pranešimais, kurie tikrai pasiekia Jus.
systemctl --failedyra tuščias.
6 blokas: konteineriai kontroliuojami (9 modulis, jei naudojate Docker)
- Konteinerių prievadai ant
127.0.0.1arba už atvirkštinio tarpinio serverio (reverse proxy); jokiodocker.sockkonteineriuose, kuriems to tikrai nereikia. - Tomai (volumes) įtraukti į atsargines kopijas; atvaizdai (images) reguliariai atnaujinami.
- Paslaptys laikomos
.envfailuose su griežtomis teisėmis, ne Git.
Patikra iš išorės
Dalį šio sąrašo kurso programa gali patikrinti iš išorės, lygiai taip, kaip Jūsų serverį mato bet kas internete. Baigiamoji užduotis (Z10.4) sujungia ankstesnių užduočių patikras:
| Dalis | Ką daro programa | Iš pamokos |
|---|---|---|
| SSH | Nuskaito versijos banner ir paklausia, kokius prisijungimo būdus Jūsų serveris siūlo Jūsų naudotojo vardui; neprisijungia | 2.2 |
| Duomenų bazių prievadai | Tik bando užmegzti ryšį su 3306, 5432, 6379, 9200 ir 27017; nieko nesiunčia | 5.1 |
| https | Patikrina sertifikatą (galiojantis, patikimas, teisingas pavadinimas) | 7.3 |
| Antraštės | Nuskaito HSTS ir kitas saugumo antraštes | 7.4 |
| security.txt | Atsisiunčia /.well-known/security.txt ir patikrina Contact ir Expires | 7.4 |
| Konteineris | Ieško antraštės su Jūsų kodu, kurią nustato Jūsų atvirkštinis tarpinis serveris | 9.4 |
Programa nieko nevykdo Jūsų serveryje, nebando slaptažodžių ir neskenuoja kitų prievadų. Kiekvieną adresą galima patikrinti tik kelis kartus per valandą. Žalias rezultatas reiškia: iš išorės žinomiausių klaidų nėra. Jis nieko nepasako apie tai, kas vyksta Jūsų serverio viduje; tam skirta likusi kontrolinio sąrašo dalis, kurią patikrinate patys.
Serverio dosjė
Kiekvienam serveriui parašykite trumpą dokumentą ir laikykite jį už serverio ribų (pavyzdžiui, slaptažodžių tvarkyklėje arba bendrame aplanke):
- pavadinimas, IP adresai, paslaugų teikėjas, leidimas ir palaikymo pabaigos data;
- kas veikia (paslaugos, konteineriai, svetainės) ir kodėl;
- kurie prievadai atidaryti ir kam;
- kur laikomos atsarginės kopijos, kaip atkurti, kada buvo paskutinis bandymas;
- kokios paslaptys yra serveryje (ne pačios paslaptys, o kokios jos ir kur jas pakeisti);
- ką sąmoningai padarėte kitaip nei numatyta (pavyzdžiui, Lynis pasiūlymas, kurį praleidote, pamoka 10.1);
- kas turi prieigą (kurie raktai yra
authorized_keys).
Šis dosjė yra aukso vertės įvykus incidentui (pamoka 10.3), atnaujinant leidimą (pamoka 4.3) ir kai administravimą perima kas nors kitas.
Priežiūros ritmas
Be ritmo dėmesys atslūgsta. Štai pavyzdys mažam serveriui; pritaikykite jį savo situacijai.
| Kada | Ką |
|---|---|
| Kas savaitę | Peržiūrėti stebėseną ir pranešimus; systemctl --failed; paleisti iš naujo, jei yra /var/run/reboot-required (arba patikrinti, ar automatinis paleidimas iš naujo suveikė) |
| Kas mėnesį | apt list --upgradable (ar kas nors neužstrigo?); docker compose pull ir up -d Jūsų konteineriams, perskaičius release notes; vieta diske; fail2ban-client status; žurnale ieškoti krintančių į akis klaidų (journalctl -p err --since "1 month ago") |
| Kas ketvirtį | Atsarginės kopijos atkūrimo bandymas; peržiūrėti authorized_keys ir naudotojus (pašalinti tuos, kurie nebeturėtų turėti prieigos); iš naujo paleisti Lynis; pakartoti galutinę patikrą iš išorės (užduotis Z10.4) |
| Kas metus | Atnaujinti security.txt (Expires); peržiūrėti leidimo palaikymo pabaigos datą ir suplanuoti atnaujinimą; atnaujinti serverio dosjė ir avarinį planą |
Įrašykite šiuos momentus į savo kalendorių. Didelę dalį taip pat galite automatizuoti naudodami stebėseną iš pamokos 8.3, tačiau pažiūrėti patiems vis tiek reikia.
Praktikoje
Nesvarbu, ar Jūsų serveris yra WebOké, ar pas kitą paslaugų teikėją: teikėjas pasirūpina aparatine įranga, tinklu ir galimybe kurti momentines bei atsargines kopijas, o Jūs atsakote už viską serverio viduje. Šis kursas skirtas savarankiškam mokymuisi: niekas nestebi Jūsų serverio kartu su Jumis. Tačiau su šiuo kontroliniu sąrašu, dosjė ir ritmu turite viską, ko reikia, kad administravimą atliktumėte savarankiškai ir gerai.
Santrauka
- Tikrinkite serverį blokais: niekas taip paprastai neįeis, spragos užtaisomos, galite grįžti atgal, išorė tvarkinga, matote, kas vyksta, konteineriai kontroliuojami.
- Patikra iš išorės tikrina SSH prisijungimo būdus, duomenų bazių prievadus, https, antraštes, security.txt ir Jūsų konteinerio antraštę; likusią dalį patikrinate patys.
- Tvarkykite serverio dosjė už serverio ribų.
- Dirbkite nuolatiniu ritmu: kas savaitę, kas mėnesį, kas ketvirtį ir kas metus.
Testas (quiz)
Užduotis
Užduotis Z10.4: Baigiamoji užduotis: Jūsų serveris iš išorės. Leiskite kurso programai vienu kartu patikrinti Jūsų serverį iš išorės: SSH prisijungimo būdus Jūsų naudotojo vardui, penkis duomenų bazių prievadus, Jūsų svetainės https ir antraštes, Jūsų security.txt ir antraštę X-Weboke-Cursus su Jūsų kodu tame pavadinime, kuriame veikia Jūsų konteineris. Be to, užpildykite 1-6 blokų kontrolinį sąrašą dalims, kurių programa negali matyti.
Užduotis O10.4: Jūsų priežiūros ritmas. Sudarykite savo serverio dosjė ir priežiūros ritmą: ką darote kas savaitę, kas mėnesį, kas ketvirtį ir kas metus, ir įrašykite šiuos momentus į savo kalendorių.
Užduotis O10.4: Jūsų priežiūros ritmas
Šią užduotį atliekate patys; niekas jos netikrina. Pažymėkite, ką atlikote, ir pažymėkite užduotį kaip atliktą.
Kas savaitę peržiūrėti atnaujinimus ir pranešimus; kas mėnesį atlikti nedidelį atkūrimą ir peržiūrėti prieigą (authorized_keys, naudotojai); kas ketvirtį atlikti visą baigiamąją patikrą; kas metus visiškai atkurti serverį iš atsarginės kopijos ir pratęsti security.txt.
Jūsų pažymėti varneliai ir pastabos lieka tik šioje naršyklėje; niekur jų nesiunčiame. Jei esate prisijungę, skiltyje Mano kursai išsaugome tik tai, kad užduotį atlikote.
Skaitykite daugiau
- VPS apsauga: pirmosios penkios minutės
- HSTS ir saugumo antraštės Jūsų svetainei
- Atsarginių kopijų strategija: 3-2-1 taisyklė Jūsų įmonei
- securitytxt.org (paaiškinimas ir security.txt generatorius): https://securitytxt.org/
- Nyderlandų NCSC, atsarginių kopijų strategijos sudarymas (Nyderlandų šaltinis, nyderlandų k.): https://www.ncsc.nl/back-up/een-back-up-strategie-opstellen
