Modul 10 · 10.4
Végső ellenőrzés: a szervere górcső alatt
Modul 10: Biztonságban maradni · Olvasási idő: 10 perc
Tanulási cél: A lecke végére Ön ellenőrzőlista és egy automatikus külső vizsgálat segítségével értékelni tudja a saját szerverét, tudja, mely pontok élveznek elsőbbséget, és van egy rendszeres karbantartási ütemterve és egy rövid szerverdossziéja.
Kulcsfogalmak: ellenőrzőlista, prioritás, külső vizsgálat, szerverdosszié, karbantartási ütemterv (hetente, havonta, negyedévente, évente), a kiadás támogatásának vége, visszaállítási teszt
Különálló leckékből egységes egész
A tanfolyam során Ön lépésről lépésre beállított egy szervert: biztonságos bejelentkezés, jogosultságok, frissítések, tűzfal, szolgáltatások, https-sel működő webhely, biztonsági mentések, felügyelet és konténerek. Ebben az utolsó leckében mindezt egyetlen listába foglaljuk. Ön átnézi a szerverét, a tanfolyam programjával kívülről is megvizsgáltatja, és rögzíti, hogyan tartja karban a szervert az elkövetkező években.
Egy szerver soha nincs "kész". A szoftverek elavulnak, a tanúsítványok lejárnak, a lemezek megtelnek, a kiadások támogatása megszűnik (end of life). Ezért a rendszeres ütemterv ugyanolyan fontos, mint az első beállítás.
Az ellenőrzőlista, fontossági sorrendben
Nem minden egyformán sürgős. Haladjon a listán fentről lefelé: az első blokkok előzik meg a legtöbb bajt.
1. blokk: senki sem jut be csak úgy (2., 3. és 5. modul)
- Bejelentkezés csak kulccsal;
PasswordAuthentication noésKbdInteractiveAuthentication no, ellenőrizve asudo sshd -Tparanccsal. - A root nem jelentkezik be jelszóval; Ön egyszerű felhasználóként dolgozik, sudo segítségével.
- Az adatbázisok, gyorsítótárak és keresőfürtök a
127.0.0.1címen figyelnek; a 3306, 5432, 6379, 9200 és 27017 portok kívülről zárva vannak, IPv4-en és IPv6-on is. - Tűzfal, amely alapértelmezés szerint minden bejövő forgalmat tilt; csak a szükséges portok vannak nyitva.
- A fail2ban fut az SSH-hoz (
fail2ban-client status sshd).
2. blokk: a biztonsági rések befoltozása (4. modul)
- Az automatikus biztonsági frissítések be vannak kapcsolva és ellenőrizve vannak (napló,
apt list --upgradable). - Van terv az újraindításokra; a
/var/run/reboot-requirednem marad ott hetekig. - A kiadás még támogatott; a támogatás végének dátuma szerepel a naptárában.
3. blokk: van visszaút (8. modul)
- Titkosított biztonsági mentések a szerveren kívül, automatikusan, felügyelettel.
- Elvégzett egy visszaállítási tesztet, és tudja, mennyi ideig tart a visszaállítás.
- Tudja, hogyan készít pillanatképet (snapshot) és hogyan nyitja meg a konzolt.
4. blokk: a külső kép rendben van (7. modul)
- Az A és AAAA rekordok a szerverére mutatnak; a reverse DNS (PTR) ugyanarra a névre mutat vissza.
- https érvényes tanúsítvánnyal, amely magától megújul; a http átirányít a https-re.
- HSTS és néhány biztonsági fejléc; egy
security.txtműködő kapcsolattartási címmel és lejárati dátummal.
5. blokk: látja, mi történik (6. és 8. modul)
- A journal tartós (persistent); az újraindítás előtti naplókat is el tudja olvasni.
- Felügyelet kívülről (elérhetőség, tanúsítvány) és belülről (lemez, szolgáltatások), olyan értesítésekkel, amelyek meg is érkeznek.
- A
systemctl --failedüres.
6. blokk: a konténerek kézben tartása (9. modul, ha Dockert használ)
- A konténerek portjai a
127.0.0.1címen vagy a reverse proxy mögött vannak; nincsdocker.sockazokban a konténerekben, amelyeknek erre nincs valóban szükségük. - A kötetek (volumes) benne vannak a biztonsági mentésben; az image-eket rendszeresen frissíti.
- A titkok szigorú jogosultságú
.env-fájlokban vannak, nem a Gitben.
A külső vizsgálat
A lista egy részét a tanfolyam programja kívülről is ellenőrizni tudja, pontosan úgy, ahogy az interneten bárki látja az Ön szerverét. A záró feladat (Z10.4) a korábbi feladatok ellenőrzéseit egyesíti:
| Elem | Mit csinál a program | Melyik leckéből |
|---|---|---|
| SSH | Kiolvassa a verziót jelző bannert, és lekérdezi, milyen bejelentkezési módokat kínál a szerver az Ön felhasználónevéhez; nem jelentkezik be | 2.2 |
| Adatbázisportok | Csak kapcsolatot próbál nyitni a 3306, 5432, 6379, 9200 és 27017 portra; semmit sem küld | 5.1 |
| https | Ellenőrzi a tanúsítványt (érvényes, megbízható, helyes név) | 7.3 |
| Fejlécek | Kiolvassa a HSTS-t és a többi biztonsági fejlécet | 7.4 |
| security.txt | Lekéri a /.well-known/security.txt fájlt, és ellenőrzi a Contact és Expires mezőt | 7.4 |
| Konténer | Megkeresi az Ön kódját tartalmazó fejlécet, amelyet a reverse proxy állít be | 9.4 |
A program semmit sem futtat az Ön szerverén, nem próbálkozik jelszavakkal, és nem vizsgál más portokat. Minden cím óránként csak néhányszor ellenőrizhető. A zöld eredmény azt jelenti: kívülről nézve a legismertebb hibák nincsenek jelen. Arról viszont semmit sem mond, mi történik a szerveren belül; ez az ellenőrzőlista többi része, amelyet Önnek kell átnéznie.
A szerverdosszié
Minden szerverhez írjon egy rövid dokumentumot, és tárolja a szerveren kívül (például a jelszókezelőjében vagy egy megosztott mappában):
- név, IP-címek, szolgáltató, kiadás és a támogatás vége;
- mi fut rajta (szolgáltatások, konténerek, webhelyek) és miért;
- mely portok vannak nyitva és mire;
- hol vannak a biztonsági mentések, hogyan állít vissza, mikor volt az utolsó teszt;
- milyen titkok vannak a szerveren (nem maguk a titkok, hanem hogy melyek, és hol cserélhetők le);
- miben tért el tudatosan az alapértelmezéstől (például egy Lynis-javaslat, amelyet kihagyott, 10.1. lecke);
- kinek van hozzáférése (mely kulcsok szerepelnek a
authorized_keysfájlban).
Ez a dosszié aranyat ér egy incidensnél (10.3. lecke), egy kiadásfrissítésnél (4.3. lecke), és akkor is, ha valaki más veszi át az üzemeltetést.
Karbantartási ütemterv
Ütemterv nélkül a figyelem lankad. Íme egy példa egy kisebb szerverhez; igazítsa a saját helyzetéhez.
| Mikor | Mit |
|---|---|
| Hetente | A felügyelet és az értesítések átnézése; systemctl --failed; újraindítás, ha ott van a /var/run/reboot-required (vagy annak ellenőrzése, hogy az automatikus újraindítás működött) |
| Havonta | apt list --upgradable (elakadt valami?); docker compose pull és up -d a konténereihez, a kiadási megjegyzések (release notes) alapján; szabad lemezterület; fail2ban-client status; a napló átnézése feltűnő hibák után kutatva (journalctl -p err --since "1 month ago") |
| Negyedévente | Visszaállítási teszt egy biztonsági mentésből; a authorized_keys és a felhasználók átnézése (eltávolítani azokat, akiknek már nem kell hozzáférés); a Lynis újbóli futtatása; a külső záróellenőrzés megismétlése (Z10.4. feladat) |
| Évente | A security.txt frissítése (Expires); a kiadás támogatási végének megtekintése és egy frissítés megtervezése; a szerverdosszié és a vészhelyzeti terv frissítése |
Vegye fel ezeket az időpontokat a naptárába. Sok mindent automatizálhat a 8.3. lecke felügyeleti eszközeivel, de a személyes átnézésre továbbra is szükség van.
A gyakorlatban
Akár a WebOkénál, akár más szolgáltatónál van a szervere: a szolgáltató gondoskodik a hardverről, a hálózatról és a pillanatképek és biztonsági mentések készítésének lehetőségéről, Ön pedig mindenről, ami a szerveren belül történik. Ez a tanfolyam önsegítő jellegű: senki sem figyeli az Ön szerverét. Ezzel az ellenőrzőlistával, a dossziéval és az ütemtervvel viszont minden a kezében van ahhoz, hogy az üzemeltetést önállóan és jól végezze.
Összefoglalás
- Nézze át a szerverét blokkonként: senki sem jut be csak úgy, a rések befoltozása, van visszaút, a külső kép rendben van, látja, mi történik, a konténerek kézben tartása.
- A külső vizsgálat az SSH bejelentkezési módjait, az adatbázisportokat, a https-t, a fejléceket, a security.txt fájlt és a konténerfejlécet nézi; a többit Önnek kell átnéznie.
- Vezessen szerverdossziét, a szerveren kívül.
- Dolgozzon rendszeres ütemterv szerint: hetente, havonta, negyedévente és évente.
Kvíz
Feladat
Z10.4. feladat: Záró feladat: a szervere kívülről. Ellenőriztesse a tanfolyam programjával egyszerre, kívülről a szerverét: az SSH bejelentkezési módjait az Ön felhasználónevéhez, az öt adatbázisportot, a webhelye https-ét és fejléceit, a security.txt fájlt, valamint az Ön kódját tartalmazó X-Weboke-Cursus fejlécet azon a néven, ahol a konténere fut. Emellett töltse ki az 1-6. blokk ellenőrzőlistáját azokra a pontokra, amelyeket a program nem lát.
O10.4. feladat: Az Ön karbantartási ütemterve. Készítse el a saját szerverdossziéját és karbantartási ütemtervét: mit tesz hetente, havonta, negyedévente és évente, és vegye fel ezeket az időpontokat a naptárába.
O10.4. feladat: Az Ön karbantartási ütemterve
Ezt a feladatot saját maga végzi el, senki nem ellenőrzi. Pipálja ki, amit elvégzett, és jelölje meg a feladatot elvégzettként.
Hetente a frissítések és az értesítések átnézése; havonta egy kisebb visszaállítás, valamint a hozzáférések (authorized_keys, felhasználók) átnézése; negyedévente egy teljes záróellenőrzés; évente egy teljes újraépítés a biztonsági mentésből és a security.txt megújítása.
A pipái és jegyzetei csak ebben a böngészőben maradnak meg, sehova nem küldjük el őket. Ha bejelentkezett, a Fiókomban csak azt tároljuk, hogy elvégezte a feladatot.
További olvasnivaló
- A VPS biztonságossá tétele: az első öt perc
- HSTS és biztonsági fejlécek az Ön weboldalához
- Biztonsági mentési stratégia: a 3-2-1 szabály a saját vállalkozás számára
- securitytxt.org (magyarázat és generátor a security.txt fájlhoz): https://securitytxt.org/
- A holland NCSC: biztonsági mentési stratégia kidolgozása (holland nyelvű forrás): https://www.ncsc.nl/back-up/een-back-up-strategie-opstellen
