Sokáig a root felhasználó a Linux rendszerek, így a Debian rendszerek vitathatatlan királyának számított. Bármit megtehetett, mindent felülírhatott. Ez a hatalom azonban óriási felelősséggel is jár, és egy figyelmetlen parancs, vagy egy sikeres támadás komoly károkat okozhatott. Éppen ezért egyre fontosabbá válik a root jogok korlátozása, minimalizálása. Ebben a cikkben a su
parancs korlátozásának rejtelmeibe merülünk el Debian környezetben, hogy biztonságosabbá tegyük rendszereinket.
Miért korlátozzuk a su
parancsot?
🔒 A su
(substitute user) parancs alapvetően arra szolgál, hogy egy felhasználó egy másik felhasználó, tipikusan a root felhasználó nevében futtasson parancsokat. Ez kényelmes, de biztonsági kockázatot is jelent. Ha egy kevésbé jogosult felhasználó megszerezheti a root hozzáférést a su
parancs segítségével, akkor a teljes rendszer veszélybe kerülhet. Ezért van szükség a su
használatának kontrollálására.
Képzeljük el a következőt: Egy munkatársunk, akinek csak a levelezéshez és a dokumentumok szerkesztéséhez van joga, valamilyen módon – mondjuk, egy gyenge jelszó miatt – kompromittálódik. Ha a su
parancs korlátozás nélkül engedélyezett, a támadó könnyen átléphet a root felhasználó szerepébe, és hozzáférhet a kritikus adatokhoz, sőt, akár a teljes rendszert is tönkreteheti. Ezért a minimal privilege elv (a felhasználóknak csak a feltétlenül szükséges jogosultságokat adjuk meg) alkalmazása kulcsfontosságú.
A su
parancs alapértelmezett működése Debian alatt
Alapértelmezetten Debian alatt, a su
parancs használatához a felhasználónak ismernie kell a cél felhasználó, tehát leggyakrabban a root felhasználó jelszavát. Ez önmagában egy bizonyos szintű védelmet nyújt, azonban ez nem elegendő. A jelszavak feltörhetők, és a belső támadások is valós veszélyt jelentenek.
Érdemes megjegyezni, hogy a sudo
parancs egy alternatív módszer a rendszergazdai feladatok elvégzésére. A sudo
lehetővé teszi, hogy a felhasználók bizonyos parancsokat root jogokkal futtassanak, anélkül, hogy közvetlenül a root felhasználóba kellene bejelentkezniük. A sudo
használata általában biztonságosabb, mivel pontosabban szabályozható, hogy mely felhasználók mely parancsokat futtathatják.
A su
parancs korlátozásának módszerei
Több módszer is létezik a su
parancs korlátozására Debian alatt. Ezek a módszerek kombinálhatók is a még hatékonyabb védelem érdekében:
1. PAM (Pluggable Authentication Modules) használata
A PAM egy rugalmas hitelesítési keretrendszer, amely lehetővé teszi a különböző hitelesítési módszerek konfigurálását a rendszerszolgáltatásokhoz. A su
parancs is PAM-ot használ a hitelesítéshez, így a PAM konfigurációs fájlok módosításával korlátozhatjuk a használatát.
Ehhez szerkesszük a /etc/pam.d/su
fájlt. Ebben a fájlban definiáljuk, hogy mely feltételeknek kell teljesülnie ahhoz, hogy a su
parancs sikeres legyen. Például, a következő sor hozzáadásával a wheel
csoporthoz tartozó felhasználókra korlátozhatjuk a su
használatát:
auth required pam_wheel.so use_uid
Ez a sor azt jelenti, hogy a felhasználónak a wheel
csoporthoz kell tartoznia ahhoz, hogy a su
parancs segítségével átválthasson a root felhasználóba. A többi felhasználó számára a su
parancs használata megtagadva lesz.
2. A sulogin
program letiltása
A sulogin
program a rendszerindítás során lehetővé teszi a root felhasználóba való bejelentkezést, ha a rendszer valamilyen oknál fogva nem tud normál módon elindulni. Ez a program potenciális biztonsági kockázatot jelent, ezért letiltható.
A sulogin
letiltásához szerkesszük a /etc/default/sulogin
fájlt, és állítsuk a SULOGIN
változót no
értékre:
SULOGIN=no
Ezzel megakadályozzuk, hogy a rendszerindítás során bárki a root felhasználóba jelentkezzen be a sulogin
segítségével.
3. Auditnaplók használata
Az auditnaplók segítségével nyomon követhetjük a su
parancs használatát, és azonosíthatjuk a potenciális visszaéléseket. Az auditnaplók konfigurálásához használhatjuk az auditd
programot.
Az auditd
konfigurálásához szerkesszük a /etc/audit/audit.rules
fájlt. Például, a következő szabály hozzáadásával naplózhatjuk a su
parancs minden használatát:
-w /usr/bin/su -p x -k su
Ez a szabály azt jelenti, hogy minden alkalommal, amikor a /usr/bin/su
fájl végrehajtásra kerül (-p x
), egy naplóbejegyzés készül a su
kulcsszóval (-k su
). Az auditnaplók a /var/log/audit/audit.log
fájlban találhatók.
Vélemény és tapasztalatok
Saját tapasztalataim alapján a root jogok korlátozása elengedhetetlen a biztonságos rendszerüzemeltetéshez. A su
parancs korlátozása a PAM használatával, valamint a sudo
megfelelő konfigurálása jelentősen csökkentheti a rendszer sebezhetőségét. Fontos azonban, hogy a korlátozások ne akadályozzák a rendszergazdák munkáját, ezért a beállításokat gondosan kell megtervezni.
A biztonság nem egy termék, hanem egy folyamat.
Ez a mondás tökéletesen illik a root jogok kezelésére is. Folyamatosan figyelnünk kell a rendszer biztonságára, és reagálnunk kell a felmerülő fenyegetésekre. Az auditnaplók rendszeres ellenőrzése, a jelszavak biztonságos tárolása, és a szoftverek naprakészen tartása mind hozzájárulnak a rendszer biztonságához.
Konklúzió
A su
parancs korlátozása egy fontos lépés a Debian rendszerek biztonságosabbá tételéhez. A PAM használata, a sulogin
letiltása, és az auditnaplók alkalmazása mind hatékony módszerek a root hozzáférés kontrollálására. Ne feledjük, hogy a biztonság sosem lehet eléggé jó, ezért folyamatosan törekednünk kell a rendszer védelmének javítására. A minimal privilege elv követése, a felhasználók oktatása és a biztonsági intézkedések rendszeres felülvizsgálata mind hozzájárulnak a biztonságos rendszerüzemeltetéshez.