Linux szerver hardening: az alapok

SSH-konfiguráció, jogosultságok, szolgáltatás-minimalizálás és naplózás. Melyik nyolc lépés adja a legnagyobb védelmet egy kiszolgálón.

Egy frissen telepített Linux szerver alapértelmezetten viszonylag jól áll, de néhány beállítás nélkül a támadási felület feleslegesen nagy. Ez a lista arra fókuszál, ami valós kockázatot csökkent, nem a teljes megfelelőségi ellenőrzőlistára.

1. SSH: jelszó helyett kulcs

A jelszavas SSH-bejelentkezés a legtöbb szerveren az első támadási felület: az internetre kitett 22-es porton folyamatosan mennek a próbálkozások.

  • PasswordAuthentication no, kizárólag kulcsos hitelesítés
  • PermitRootLogin no, root belépés tiltva
  • A kulcsok jelszóval védve, és a privát kulcs sosem a szerveren

Ha a szerver internetre néz, érdemes mögé tenni egy ugródeszka-szervert vagy VPN-t, hogy az SSH ne legyen közvetlenül kitett.

2. Szolgáltatás-minimalizálás

Ami nem fut, azt nem lehet megtámadni. Nézze meg, mi hallgat portokon (ss -tulpn), és állítsa le, amire nincs szükség. A tipikus felesleges elemek: régi webszerver, adatbázis, ami csak lokálisan kellene, monitoring ügynökök duplikálva.

3. Csak a szükséges portok

Helyi tűzfal minden szerveren, nem csak a hálózat peremén. Alapértelmezett tiltás, és csak a ténylegesen használt portok engedélyezése, forrás-korlátozással ahol lehet.

Az adatbázis soha ne hallgasson 0.0.0.0-n, ha csak az alkalmazásszerverről érik el.

4. Automatikus biztonsági frissítés

A biztonsági javítások automatikus telepítése kiszolgálón vitatott, de a gyakorlat azt mutatja, hogy a nem frissített rendszer nagyobb kockázat, mint a ritka frissítési hiba. Kompromisszum: automatikus biztonsági frissítés, manuális verzióváltás.

5. Legkisebb jogosultság

  • A szolgáltatások ne fussanak root-ként, hanem dedikált, korlátozott felhasználóval
  • sudo jogosultság csak konkrét parancsokra, ne teljes körűen
  • A sudo használat naplózva

6. Naplózás központi gyűjtéssel

A helyi napló a támadó kezében van. A rendszernaplót külön szerverre vagy SIEM-be kell másolni, mert a gépen maradó nyom törölhető. Ezt a naplózásról szóló cikkünkben részletesen kifejtettük.

Minimum: hitelesítési események, sudo használat, szolgáltatás-indítás, csomagtelepítés.

7. Fájlrendszer-integritás

Egy egyszerű integritás-ellenőrző (AIDE vagy hasonló) jelzi, ha a rendszerbináris vagy a konfiguráció megváltozik. Napi futtatás, és a jelentés menjen máshova, ne a saját gépre.

8. Kötelező hozzáférés-vezérlés

Az SELinux vagy AppArmor korlátozza, mit tehet egy folyamat, akkor is, ha kompromittálódik. A kikapcsolása gyakori reflex hibakeresésnél, és utána senki nem kapcsolja vissza. Érdemesebb a szabályt finomítani.

Egy gyors ellenőrzés: nézze meg, hány szerveren engedélyezett még a jelszavas SSH és a root belépés. A tapasztalat szerint mindig van néhány, jellemzően olyan, amit egy projekt idején állítottak be ideiglenesen.

Konténerek

Ha konténerekben futnak a szolgáltatások, néhány dolog változik:

  • A konténer ne fusson root-ként, és lehetőleg csak olvasható gyökérrel
  • A gazdagép hardeningje továbbra is szükséges, a konténer nem izolációs határ
  • Az image-ek sérülékenység-vizsgálata a folyamat része legyen, ne egyszeri
  • A titkokat ne környezeti változóban adja át, mert az a folyamatlistában látszik

Mit mérjen

  • Hány szerveren engedélyezett a jelszavas SSH
  • Hány szolgáltatás fut root-ként
  • Mennyi idő telik el egy biztonsági javítás megjelenése és telepítése között
  • A naplók hány százaléka jut el a központi gyűjtőbe

Az IT biztonsági szolgáltatásaink között a kiszolgálói alapkonfiguráció kialakítása és felülvizsgálata is szerepel.

Vissza a Tudástárba
Kapcsolódó tartalom

Kapcsolódó tartalom

Kérdése van a témában?

Szakértőink szívesen átbeszélik, mit jelent mindez az Ön szervezetének környezetében.