Modul 10 · 10.1
Hardening és CIS-elvek
Modul 10: Biztonságban maradni · Olvasási idő: 11 perc
Tanulási cél: A lecke után el tudja magyarázni, mi a hardening és milyen elvek állnak mögötte, tudja, mik a CIS Benchmarks és hogyan használja őket körültekintően, és a Lynis segítségével rendszerezetten át tudja vizsgálni a szerverét.
Kulcsfogalmak: hardening (rendszerkeményítés), támadási felület, minimális telepítés, minimális jogosultságok (least privilege), többrétegű védelem (defense in depth), CIS Benchmarks, Level 1 és Level 2, CIS Controls, Lynis, hardening index, AppArmor, SELinux, sysctl, időszinkronizálás
Mi a hardening?
Egy frissen telepített Debian vagy Ubuntu meglehetősen biztonságos, de úgy készült, hogy minél több helyen működjön. A hardening (rendszerkeményítés) azt jelenti, hogy a szervert pontosan az Ön felhasználási módjához igazítja: minden megszűnik, amire nincs szüksége, és minden szigorúbb lesz, ami szigorúbb lehet, anélkül hogy a saját szolgáltatásai elromlanának.
Az előző modulokban ezt már lépésről lépésre megtette: SSH kulcsokkal (modul 2), egy hétköznapi felhasználó sudo jogosultsággal (modul 3), automatikus frissítések (modul 4), tűzfal és fail2ban (modul 5), saját felhasználók alatt futó szolgáltatások (modul 6). Ez a lecke keretbe foglalja ezeket a különálló intézkedéseket, így láthatja, mi hiányzik még.
Négy elv
1. Kicsi támadási felület. Ami nincs, az nem tud elromlani. Minden telepített szolgáltatás, minden nyitott port, minden fiók lehetséges belépési pont (lecke 5.1). Telepítsen minimálisan, és takarítsa el, amit már nem használ:
anna@web1:~$ systemctl list-units --type=service --state=running
anna@web1:~$ sudo ss -tulpn
anna@web1:~$ apt list --installed | wc -lHa olyan szolgáltatás fut, amelyet nem ismer, derítse ki, mit csinál (lecke 6.1). Ha nincs rá szüksége, távolítsa el a csomagot.
2. Minimális jogosultságok. Minden felhasználó és minden program csak a szükséges jogosultságokat kapja meg (lecke 3.2). Ne végezzen napi munkát root felhasználóként, a szolgáltatások fussanak saját felhasználók alatt, az adatbázis-felhasználók csak a saját adatbázisukhoz kapjanak jogot, és soha ne használjon chmod 777 beállítást.
3. Többrétegű védelem. Induljon ki abból, hogy egy intézkedés kudarcot vall. Egy adatbázis, amely csak a 127.0.0.1 címen figyel, és tűzfal mögött van, és erős jelszóval rendelkezik, akkor is biztonságos marad, ha a három közül az egyik véletlenül kiesik. Ezt nevezik defense in depth elvnek.
4. Tudni, mi történik. A hardening nemcsak lezárást jelent, hanem rálátást is: megőrzött naplókat (lecke 6.2), riasztó felügyeletet (lecke 8.3) és biztonsági mentéseket, amelyekkel vissza tud térni (modul 8). Ezek nélkül csak akkor veszi észre a betörést, amikor már késő.
A CIS Benchmarks
A Center for Internet Security (CIS) egy amerikai nonprofit szervezet, amely a CIS Benchmarks dokumentumokat készíti: termékenként részletes listákat ajánlott beállításokkal, amelyeket a biztonsági szakma önkéntesei állítanak össze. Több mint száz ilyen létezik, a Debian Linuxhoz és az Ubuntu Linuxhoz is, verziónként. A pdf-fájlok nem kereskedelmi célra ingyenesen letölthetők, egy fiók létrehozása után.
Egy Linuxra vonatkozó benchmark több száz ajánlást tartalmaz, mindegyikhez magyarázattal, ellenőrzési móddal és beállítási móddal. Az ajánlások profilokba vannak sorolva:
- Level 1: alapintézkedések, amelyeket viszonylag gyorsan be lehet vezetni, egyértelmű biztonsági előnnyel, anélkül hogy a szerver sokkal kevésbé lenne használható. A legtöbb szervernél ez a cél.
- Level 2: további intézkedések olyan környezetekhez, ahol a biztonság az elsődleges szempont (többrétegű védelem). Funkciókba vagy sebességbe kerülhetnek, és maga a CIS szerint kárt is okozhatnak, ha gondatlanul alkalmazzák őket.
Linuxnál külön profilok vannak szerverekhez és munkaállomásokhoz.
Példák egy Linux-benchmark témáira: külön partíciók a /tmp és a /var/log számára, nem használt fájlrendszerek és hálózati protokollok kikapcsolása, időszinkronizálás, auditnaplózás, SSH-beállítások (ezek közül sokat a 2.2-es leckéből ismer), jelszószabályzat, fontos fájlok jogosultságai és a tűzfal.
A Benchmarks mellett léteznek a CIS Controls is (jelenleg 8.1-es verzió): ezek nem termékenkénti beállítások, hanem egy egész szervezetre vonatkozó, tizennyolc intézkedéscsoportból álló lista, például "szoftverleltár", "sérülékenységek kezelése" és "adatok helyreállítása". Egyetlen szerverhez a Benchmarks hasznosabbak; a Controls akkor segítenek, ha az egész vállalkozásán gondolkodik.
Használja körültekintően a benchmarkot
A benchmark nem egy gomb, amelyet egyszerűen megnyom. Néhány szabály:
- Előbb értse meg, csak utána alkalmazza. Minden ajánláshoz tartozik magyarázat. Ha nem érti, miért szükséges, egyelőre ne alkalmazza.
- Egyszerre egy dolgot, és teszteljen. Egy szigorú kernel- vagy hálózati beállítás tönkreteheti az alkalmazását. Készítsen pillanatképet (snapshot), változtasson meg egy dolgot, és ellenőrizze, hogy minden működik-e még.
- Nem minden Önnek szól. Egy meglévő VPS-en egy külön
/var/log-partícióra vonatkozó ajánlás nehezen valósítható meg, és kevés haszonnal jár. Válasszon tudatosan, és jegyezze fel, miért nem valósít meg valamit. - Legyen óvatos az internetről származó kész hardening-szkriptekkel, amelyek egyszerre "mindent a CIS-ből" alkalmaznak. Úgy módosíthatják az SSH-t, a tűzfalat vagy a naplókat, hogy kizárja magát, és utána már nem tudja, mi változott.
Lynis: audit belülről
A Lynis a CISOfy ingyenes, nyílt forráskódú (GPL) programja, amely belülről vizsgálja át a szerverét, és témánként figyelmeztetéseket és javaslatokat ad. Önmagában semmit nem változtat meg, csak jelentést készít.
anna@web1:~$ sudo apt install lynis
anna@web1:~$ sudo lynis audit system
...
-[ Lynis 3.x Results ]-
Warnings (1):
----------------------------
! Found one or more vulnerable packages. [PKGS-7392]
Suggestions (34):
----------------------------
* Consider hardening SSH configuration [SSH-7408]
- Details : AllowTcpForwarding (set YES to NO)
...
Lynis security scan details:
Hardening index : 66 [############# ]
Tests performed : 262Így olvassa az eredményt:
- A Warnings (figyelmeztetések) olyan dolgok, amelyeket valóban meg kell néznie, például ismert sérülékenységű csomagok (ilyenkor függő frissítései vannak, lecke 4.1).
- A Suggestions (javaslatok) tanácsok. Sok közülük hasznos, néhány nem illik az Ön szerveréhez. Ha például a
AllowTcpForwardingkikapcsolását javasolja, az tönkreteszi az SSH-alagutakat (lecke 2.3). Válasszon tudatosan. - Minden üzenethez tartozik egy szögletes zárójelben álló kód, például
[SSH-7408]. Ezzel keresheti meg a/var/log/lynis.lognaplóban, pontosan mit vizsgált a program. - A hardening index egy legfeljebb 100-as szám. Iránymutató, nem pedig hajszolandó pontszám. A módosításai utáni növekedés azt mutatja, hogy halad előre; a 100 nem cél.
A disztribúciója csomagforrásában lévő Lynis-verzió kissé elmaradhat a legújabbtól. Egy első audithoz ez nem jelent problémát.
További három téma röviden
- Az AppArmor és a SELinux további biztonsági rétegek a kernelben, amelyek programonként rögzítik, mit tehet az adott program. A Debian és az Ubuntu az AppArmort használja, alapértelmezetten bekapcsolva; az AlmaLinux és a Rocky a SELinuxot. Ne kapcsolja ki őket "mert valami nem működik": keresse meg az üzenetet a journalban, és célzottan oldja meg a problémát.
- A sysctl a kernel beállításait módosítja, például a hálózatra vonatkozóan. A Debian és az Ubuntu alapértékei ésszerűek. Ha valamit módosítani szeretne, tegye egy saját fájlba a
/etc/sysctl.d/könyvtárban (a Debian 13 már nem olvassa a/etc/sysctl.conffájlt). - Idő: egy rossz idővel futó szerver használhatatlanná teszi a naplókat, és érvénytelennek tekinthet tanúsítványokat. Ellenőrizze a
timedatectlparanccsal, hogy a kimenetben "System clock synchronized: yes" szerepel-e.
A gyakorlatban
A WebOké-nál, ahogy más VPS-szolgáltatóknál is, a szerveren belüli biztonságot Ön kezeli: a szolgáltató gondoskodik a hardverről, a hálózatról és a virtualizációs platformról. Ez a tanfolyam önsegítő jellegű: senki nem figyeli a szerverét. Egy hardening-kör előtt készítsen pillanatképet a panelen, és tudja, hogyan nyithatja meg a konzolt, ha mégis kizárná magát.
Összefoglalás
- A hardening azt jelenti, hogy a szervert a saját felhasználási módjához igazítja: ami nem szükséges, az megszűnik, ami lehet, az szigorúbb lesz.
- Négy elv: kicsi támadási felület, minimális jogosultságok, többrétegű védelem és rálátás arra, mi történik.
- A CIS Benchmarks termékenként több száz ajánlást adnak Level 1 (alap) és Level 2 (szigorú) profilokban; alkalmazza őket megértéssel, egyszerre egy lépést téve.
- A Lynis belülről vizsgálja át a szerverét, és figyelmeztetéseket, javaslatokat és egy hardening indexet ad; önmagában semmit nem változtat meg.
- Az AppArmort/SELinuxot ne kapcsolja ki; a saját kernelbeállítások a
/etc/sysctl.d/könyvtárba kerülnek; ellenőrizze az időszinkronizálást.
Kvíz
Feladat
Feladat O10.1: Biztonsági audit a Lynis segítségével. Készítsen pillanatképet, telepítse a Lynist a szerverére, és futtassa a sudo lynis audit system parancsot. Jegyezze fel a hardening indexet, az összes figyelmeztetést és öt javaslatot. Válasszon ki három javaslatot, amelyet megvalósít, és egyet, amelyet tudatosan nem valósít meg, az indoklással együtt. Ezután futtassa újra az auditot, és jegyezze fel az új indexet.
O10.1. feladat: Biztonsági audit a Lynis segítségével
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.
Először a figyelmeztetések (többnyire függőben lévő frissítések). Hasznos: szigorúbb SSH-beállítások, automatikus frissítések, a nem használt szolgáltatások eltávolítása. Jó ok valaminek a kihagyására: AllowTcpForwarding, ha alagutakat használ. Az index iránymutató, nem cél.
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
- CIS Benchmarks (áttekintés, a Debianhoz és az Ubuntuhoz is): https://www.cisecurity.org/cis-benchmarks
- CIS Controls: https://www.cisecurity.org/controls
- Lynis, dokumentáció: https://cisofy.com/documentation/lynis/
- A holland NCSC, Beginnen met cybersecurity (holland nyelvű forrás): https://www.ncsc.nl/beginnen-met-cybersecurity
