Elérhetőség: http://www.lids.org Itt nem tárgyalom a LIDS rendszer működési elvét, ezt mindenki megértheti a dokumentációból. Olvassuk el a csomaghoz adott README és design fájlokat, továbbá töltsük le a Web-oldalról az egyéb dokumentációkat is. A rendszer lényege végül is az, hogy korlátozzuk a root felhasználó jogait, így a behatoló a megfelelő jelszó és hatástalanító módszer nélkül nem tud kárt tenni a rendszerünkben, hiába szerezte meg a root jogosultságokat.
Töltsük le a kernelverziónkhoz megfelelő csomagot. Lépjünk be az /usr/src/linux könyvtárba. Csomagoljuk ki a fájlt. Foltozzuk meg a kernelt:
patch -p1 < lids-0.9.5b/lids-0.9.5b-2.2.16.diff
Fordítsuk le a démont: cd lids-0.9.5b/lidsadm-0.9; make
Készítsünk el egy jelszót: lidsadm -P A kiírt kódot mentsük le, vagy írjuk le, később kelleni fog.
Lépjünk vissza a kernelforrás könyvtárába, majd make menuconfig vagy make xconfig paranccsal (haladóknak ajánlom a .config fájl kézzel való szerkesztését) indítsuk el a kernel konfigurációjának beállítását.
Kernel konfiguráció:
Keressük meg a vége felé lévő Linux Intrusion Detection System menüpontot. Itt az azonos nevű első pontot válasszuk “y”-nek. Ekkor megnyílik a lehetőség a többi funkció közötti válogatásban is.
- Hang up console when raising a security alert: ezzel lefagyasztaná a konzolt biztonsági riadó esetén. Ezt NE válasszuk ki, mert a konzol biztonságban lesz (remélhetőleg) és távolról fogjuk menedzselni a rendszert.
- Security alert when execing unprotected programs before sealing LIDS: Ha a LIDS indítása előtt elindult egy program (mely ez esetben nincs védve), akkor fújjon riadót. Ezt válasszuk ki, mert ez azt jelentheti, hogy valaki mégis betört és programot telepített a rendszerbe
- Do not execute unprotected programs before sealing LIDS: Ne futtassa a nem védett programokat a LIDS indítása előtt. Ezzel vigyáznunk kell, mert ekkor lehet, hogy fel sem áll a rendszerünk, ezért inkább hagyjuk ki.
- Enable init children lock feature: Ekkor minden olyan program, mely az init program gyermeke, le lesz védve pl. kilövés ellen. Vagyis ha a behatoló root jogosultságokat is szerzett, mégse tudja leállítani és újraindítani a szolgáltatásokat, démonokat. Ezt jelöljük meg.
- Try not to flood logs: Ez az opció vigyáz arra, hogy ha ugyanaz az üzenet kerül nagyon sokszor a naplófájlba, ezzel előbb utóbb tele lehet tölteni a /var partíciót. Az opció segítségével az azonos ismétlődő üzenetek kiszűrhetőek. Jelöljük meg.
- Allow switching LIDS protections: Ekkor menet közben ki és bekapcsolhatjuk a védelmet. Mivel távkarbantartást végzünk, erre szükségünk van. Válasszuk ki. Adjuk meg a mezőbe a kódolt jelszót, növeljük meg a jelszópróbálgatás számát 3-ról, mondjuk 5-re. (Én pl. könnyen félregépelem a jelszavaimat.)
- Allow remote users to switch LIDS protections: Ekkor távolról is kikapcsolhatjuk a védelmet, nem csak a konzolról. Válasszuk ki.
- Allow any program to switch LIDS protection: Ez veszélyes ne válasszuk ki.
- Allow reloading config file: Újraolvashatja a konfig’ fájlját. Ez hasznos lehet, ha menet közben kell megváltoztatnunk a beállításait. Válasszuk ki.
- Port scanner detector in kernel: Kernelszintű portscan érzékelés. Válasszuk ki.
- Send security alert over network: A riadó elküldését nem bízza a helyi levelezőre, hanem saját maga képes üzenni. Válasszuk ki.
- Hide klids kernel thread: Minden LIDS-hez tartozó programrész elrejtése. A behatoló észre sem veszi, hogy ez a rendszer fut. Válasszuk ki.
- Remote IP: annak a gépnek az IP címe (hexa formában), ahová a jelentést küldeni akarjuk. (Adjuk meg pl. annak gépnek az IP címét, amely permanensen elérhető és rendelkezik egy levelező-szerverrel.) Az IP cím egyes decimális tagjait számoljuk át hexadecimális formába, és fordított sorrendbe írjuk be ebbe a mezőbe.
- Use generic mailer pseudo-script: Kérjük-e a LIDS -féle levelező script-et, vagy sajáttal rendelkezünk. Válaszunk: Igen. A lenti mezőkbe adjuk meg a forrásgép nevét vagy IP címét., a küldő e-mail címét, a fogadó e-mail címét és a levél témáját. A mi esetünkben ez pl. így nézhet ki: alfa.boresszormegyar.hu, root@alfa.boresszormegyar.hu, rgazda@gyakranolvasom.hu, “Betörés az Alfán!”
Mentsük el az új konfigurációt, fordítsuk le a kernelt (pl. a make-kpg paranccsal). Vigyük át a kernel csomagot, a lidsadm-0.9 könyvtárban lévő lidsadm (/sbin-be) és a lidsadm.1.gz (/usr/local/man/man1-be) fájlokat a szervergépre. A kernel csomagot telepítsük, majd állítsuk be úgy a lilo.conf-ot, hogy egyelőre ne ez legyen a default kernel. Másoljuk be a két fájlt a fent megadott könyvtárakba. Most létre kell hoznunk az /etc/lids.conf fájlt. Ezt úgy tehetjük meg, hogy a lenti parancsokból készítünk egy shell-script-et:
/root/rules.lids:
lidsadm -A -o /boot -j READ # ezeket a könyvtárakat ro-ba tesszük
lidsadm -A -o /usr -j READ
lidsadm -A -o /etc -j READ
lidsadm -A -o /lib -j READ
lidsadm -A -o /bin -j READ
lidsadm -A -o /sbin -j READ
lidsadm -A -o /var/log -j APPEND #ehhez a loghoz csak írni lehet
lidsadm -A -s /usr/sbin/logrotate -o /var/log -j WRITE # kivéve a logrotate
# Biztosítani kell, hogy az upsd is le tudja állítani a rendszert:
lidsadm -A -s /sbin/shutdown -o UMOUNT -j INHERIT
lidsadm -A -s /sbin/shutdown -o KILL -j INHERIT
lidsadm -A -s /sbin/shutdown -o HD -j INHERIT
Természetesen a fenti listát ízlés szerint bővíthetjük, miután elolvastuk a dokumentációt. Futtassuk le.
Létre kell hoznunk egy indító script-et is. (Figyeljünk arra is, hogy a fájl futtatható legyen!) /etc/init.d/lids:
#! /bin/sh
echo "Starting LIDSadm..."
/sbin/lidsadm -I -- -CAP_SYS_MODULE -CAP_SYS_RAWIO -CAP_SYS_ADMIN \
-CAP_SYS_PTRACE -CAP_NET_ADMIN -CAP_SYS_TIME -CAP_SYS_RESOURCE \
-CAP_LINUX_IMMUTABLE -CAP_KILL -CAP_SYS_TTY_CONFIG \
+INIT_CHILDREN_LOCK +RELOAD_CONF
Helyezzünk el indító linket az /etc/rc[2-5].d szintekre. Lényeg, hogy ez legyen a legutoljára elinduló démon, ezért adjunk neki S99, vagy Sz előtagot. Ha minden jól ment, indítsuk újra a gépet és válasszuk a LIDS-t tartalmazó kernelt.
Ha minden jól ment, és nem akadályoztuk meg a rendszer normális indítását, akkor jelentkezzünk be root-ként és adjuk ki a lidsadm -V parancsot. Ez kilistázza a jelenleg érvényes szigorítások beállításait. Ha lokálisan az adott shell-re és gyermekfolyamataira ki akarjuk kapcsolni a védelmet (hogy tudjunk változtatni, karbantartani), adjuk ki ezt a parancsot: lidsadm -S -- -LIDS Ekkor a jelszó megadása után “hagyományos” módon tehetjük dolgunkat.
Ha a védett fájloknak megváltozik a helye a lemezen, adjuk ki a lidsadm -U parancsot, mely frissíti a konfigurációs állományt.
Mindenesetre teszteljük le a rendszer működését: jelentkezzünk be root-ként, majd csináljunk tiltott dolgokat és figyeljük, naplózza-e a rendszer tevékenységünket.
Érdemes továbbá rendszeresen frissíteni a LIDS szoftverünket, mert igaz, már közel van az 1.0-s verzióhoz, még sok hibát javítanak ki rajta.