Moodul 10 · 10.4
Lõppkontroll: kas su server vastab nõuetele
Moodul 10: Turvaliseks jäämine · Lugemisaeg: 10 minutit
Õpieesmärk: Pärast seda õppetundi oskad oma serverit hinnata kontrollnimekirja ja automaatse väliskontrolli abil, tead, millised punktid on esmatähtsad, ning sul on püsiv hoolduse rütm ja lühike serveritoimik.
Põhimõisted: kontrollnimekiri, prioriteet, väliskontroll, serveritoimik, hoolduse rütm (iga nädal, iga kuu, iga kvartal, iga aasta), väljalaske toe lõppkuupäev, taastamise test
Üksikutest õppetundidest tervikuks
Selles kursuses seadistasid serveri samm-sammult: turvaline sisselogimine, õigused, uuendused, tulemüür, teenused, https-iga veebisait, varukoopiad, jälgimine ja konteinerid. Selles viimases õppetunnis paned kõik ühte nimekirja. Vaatad oma serveri üle, lased kursuse programmil seda väljastpoolt kontrollida ja paned kirja, kuidas serverit järgmistel aastatel hooldad.
Server pole kunagi "valmis". Tarkvara vananeb, sertifikaadid aeguvad, kettad täituvad ja väljalasete tugi lõpeb (end of life). Seepärast on püsiv rütm sama tähtis kui esmane seadistus.
Kontrollnimekiri tähtsuse järjekorras
Kõik pole võrdselt kiireloomuline. Käi nimekiri läbi ülevalt alla: esimesed plokid hoiavad ära suurema osa pahandustest.
Plokk 1: keegi ei pääse niisama sisse (moodul 2, 3, 5)
- Sisselogimine ainult võtmetega;
PasswordAuthentication nojaKbdInteractiveAuthentication no, kontrollitud käsugasudo sshd -T. - Root ei logi sisse parooliga; töötad tavakasutajana sudo abil.
- Andmebaasid, vahemälud ja otsinguklastrid kuulavad aadressil
127.0.0.1; pordid 3306, 5432, 6379, 9200 ja 27017 on väljast suletud, nii IPv4 kui ka IPv6 jaoks. - Tulemüür, mis vaikimisi sulgeb kogu sissetuleva liikluse; avatud on ainult need pordid, mida vajad.
- fail2ban töötab SSH jaoks (
fail2ban-client status sshd).
Plokk 2: turvaaugud parandatakse (moodul 4)
- Automaatsed turvauuendused on sisse lülitatud ja kontrollitud (logi,
apt list --upgradable). - Taaskäivitamiseks on plaan;
/var/run/reboot-requiredei püsi seal nädalaid. - Väljalase on veel toetatud; toe lõppkuupäev on su kalendris.
Plokk 3: saad tagasi minna (moodul 8)
- Krüpteeritud varukoopiad väljaspool serverit, automaatselt ja jälgitult.
- Taastamise test on tehtud ja tead, kui kaua taastamine aega võtab.
- Tead, kuidas teha hetktõmmist (snapshot) ja avada konsooli.
Plokk 4: väliskülg on korras (moodul 7)
- A- ja AAAA-kirjed osutavad sinu serverile; pöörd-DNS (PTR) osutab tagasi samale nimele.
- https kehtiva sertifikaadiga, mis uueneb ise; http suunab ümber https-ile.
- HSTS ja mõned turvapäised;
security.txttöötava kontaktaadressi ja aegumiskuupäevaga.
Plokk 5: näed, mis toimub (moodul 6, 8)
- Journal on püsiv; saad lugeda ka enne taaskäivitust kirjutatud logisid.
- Jälgimine väljastpoolt (kättesaadavus, sertifikaat) ja seestpoolt (ketas, teenused), teavitustega, mis ka kohale jõuavad.
systemctl --failedon tühi.
Plokk 6: konteinerid on kontrolli all (moodul 9, kui kasutad Dockerit)
- Konteinerite pordid on aadressil
127.0.0.1või pöördpuhvri taga;docker.sockpole konteinerites, mis seda tegelikult ei vaja. - Köited (volumes) on varukoopias; tõmmiseid (images) uuendatakse regulaarselt.
- Saladused on
.env-failides rangete õigustega, mitte Gitis.
Väliskontroll
Osa sellest nimekirjast saab kursuse programm kontrollida väljastpoolt, täpselt nii, nagu su serverit näeb igaüks internetis. Lõpuülesanne (Z10.4) ühendab varasemate ülesannete kontrollid:
| Osa | Mida programm teeb | Õppetunnist |
|---|---|---|
| SSH | Loeb versioonibännerit ja küsib, milliseid sisselogimisviise su server sinu kasutajanimele pakub; sisse ei logi | 2.2 |
| Andmebaasipordid | Proovib ainult luua ühendust portidega 3306, 5432, 6379, 9200 ja 27017; midagi ei saada | 5.1 |
| https | Kontrollib sertifikaati (kehtiv, usaldusväärne, õige nimi) | 7.3 |
| Päised | Loeb HSTS-i ja teisi turvapäiseid | 7.4 |
| security.txt | Laadib alla /.well-known/security.txt ning kontrollib väljasid Contact ja Expires | 7.4 |
| Konteiner | Otsib sinu koodiga päist, mille lisab su pöördpuhver | 9.4 |
Programm ei käivita su serveris midagi, ei proovi paroole ega skanni teisi porte. Iga aadressi saab kontrollida vaid paar korda tunnis. Roheline tulemus tähendab: väljastpoolt vaadates on tuntumad vead puudu. See ei ütle midagi selle kohta, mis toimub serveri sees; see on ülejäänud kontrollnimekiri ja selle vaatad üle ise.
Serveritoimik
Kirjuta iga serveri kohta lühike dokument ja hoia seda väljaspool serverit (näiteks paroolihalduris või jagatud kaustas):
- nimi, IP-aadressid, teenusepakkuja, väljalase ja toe lõppkuupäev;
- mis seal töötab (teenused, konteinerid, veebisaidid) ja miks;
- millised pordid on avatud ja milleks;
- kus on varukoopiad, kuidas taastada ja millal oli viimane test;
- millised saladused serveris on (mitte saladused ise, vaid millised ja kus neid vahetatakse);
- mida tegid teadlikult vaikeseadetest erinevalt (näiteks Lynise soovitus, mille vahele jätsid, õppetund 10.1);
- kellel on ligipääs (millised võtmed on failis
authorized_keys).
See toimik on kullaväärt intsidendi korral (õppetund 10.3), väljalaske uuendamisel (õppetund 4.3) ja siis, kui keegi teine haldamise üle võtab.
Hoolduse rütm
Ilma rütmita asi soikub. Siin on näide väikese serveri jaoks; kohanda see oma olukorraga.
| Millal | Mida |
|---|---|
| Iga nädal | Vaata üle jälgimine ja teavitused; systemctl --failed; taaskäivita, kui /var/run/reboot-required on olemas (või kontrolli, et automaatne taaskäivitus töötas) |
| Iga kuu | apt list --upgradable (kas midagi jääb rippuma?); docker compose pull ja up -d oma konteineritele koos väljalaskemärkmetega; kettaruum; fail2ban-client status; logist silmatorkavad vead (journalctl -p err --since "1 month ago") |
| Iga kvartal | Varukoopia taastamise test; vaata üle authorized_keys ja kasutajad (eemalda need, kel ei tohiks enam ligipääsu olla); käivita Lynis uuesti; tee väliskontroll uuesti (ülesanne Z10.4) |
| Iga aasta | Uuenda security.txt (Expires); vaata väljalaske toe lõppkuupäeva ja planeeri uuendus; uuenda oma serveritoimikut ja hädaabiplaani |
Pane need hetked oma kalendrisse. Suure osa saad automatiseerida ka õppetunni 8.3 jälgimisega, kuid ise vaatamine on ikka vajalik.
Praktikas
Olgu su server WebOké juures või mõne teise teenusepakkuja juures: pakkuja hoolitseb riistvara, võrgu ning hetktõmmiste ja varukoopiate tegemise võimaluse eest, sina kõige eest, mis on serveri sees. See kursus on iseõpe: keegi ei vaata su serverisse kaasa. Selle kontrollnimekirja, toimiku ja rütmiga on sul aga kõik olemas, et seda haldust iseseisvalt ja hästi teha.
Kokkuvõte
- Vaata oma server üle plokkide kaupa: keegi ei pääse niisama sisse, turvaaugud parandatakse, saad tagasi minna, väliskülg on korras, näed, mis toimub, konteinerid on kontrolli all.
- Väliskontroll vaatab SSH sisselogimisviise, andmebaasiporte, https-i, päiseid, security.txt-i ja su konteineri päist; ülejäänu vaatad üle ise.
- Pea serveritoimikut väljaspool serverit.
- Tööta püsiva rütmiga: iga nädal, iga kuu, iga kvartal ja iga aasta.
Test (quiz)
Ülesanne
Ülesanne Z10.4: Lõpuülesanne: su server väljastpoolt. Lase kursuse programmil oma serverit korraga väljastpoolt kontrollida: SSH sisselogimisviisid sinu kasutajanimele, viis andmebaasiporti, sinu saidi https ja päised, sinu security.txt ning päis X-Weboke-Cursus sinu koodiga nimel, kus su konteiner töötab. Lisaks täida plokkide 1 kuni 6 kontrollnimekiri selle kohta, mida programm näha ei saa.
Ülesanne O10.4: Sinu hoolduse rütm. Koosta oma serveritoimik ja hoolduse rütm: mida teed iga nädal, iga kuu, iga kvartal ja iga aasta, ning pane need hetked oma kalendrisse.
Ülesanne O10.4: Sinu hoolduse rütm
Selle ülesande teed ise, keegi ei kontrolli seda. Märgi ära, mida tegid, ja märgi ülesanne tehtuks.
Iga nädal uuendused ja teavitused üle vaadata; iga kuu teha väike taastamine ja vaadata üle ligipääs (authorized_keys, kasutajad); iga kvartal täielik lõppkontroll; kord aastas täielik ülesehitus varukoopiast ja security.txt pikendamine.
Su linnukesed ja märkmed jäävad ainult sellesse brauserisse, me ei saada neid kuhugi. Kui oled sisse loginud, salvestame Minu kursustes ainult info, et tegid ülesande ära.
Loe edasi
- Oma VPS-i turvamine: esimesed viis minutit
- HSTS ja turvapäised sinu veebilehele
- Varundusstrateegia: 3-2-1 reegel sinu enda ettevõtte jaoks
- securitytxt.org (security.txt selgitus ja generaator): https://securitytxt.org/
- Hollandi NCSC, varundusstrateegia koostamine (Hollandi allikas, hollandi keeles): https://www.ncsc.nl/back-up/een-back-up-strategie-opstellen
