User Tools

Site Tools


freebsd:freebsd_biztonsag

FreeBSD Biztonság

Rendszerbiztonság

terminálok megfigyelése

A watch programmal egy másolatot hozhatunk létre egy terminálról. Ebben a terminálban csak figyelni lehet a munkát nem lehet beavatkozni. Pl, a 2 virtuális terminál figyelése:

% watch ttyv2

Jól jöhet akkor is ez a módszer ha X felületet használunk és kíváncsiak vagyunk a x.org terminálra küldőt üzeneteire. Ctrl+G paranccsal lépünk ki a megfigyelésből.

A root és a személyzeti (staff) fiókok biztosítása

A root által futtatott szerverek és suid/sgid programok biztosítása

A felhasználói fiókok biztosítása

A jelszó fájl biztosítása

A kernel, a memória, a raw device-ok és a fájlrendszer biztosítása

A kernelek legtöbbjében van hálózati 'csomaglehallgató' (sniffing device). FreeBSD alatt ez a 'bpf'. A behatolók gyakran használják ezt a feltört gépeken. Ezt megakadályozandó, kerüljük a bpf eszköz kernelbe fordítását: a DHCP, vagy pflog-ot nem használó rendszernek nincs is szüksége erre.

Kernel szinten tilthatjuk a ctrl+alt+del használatát, a kernelbe elhelyezett options SC_DISABLE_REBOOT beállítással.

Egy ügyes támadó a kldload eszközt használja arra, hogy betöltse saját bpf eszközét vagy más csomaglehallgató programját, mint kernelmodult. Hogy mindezeket kivédjük, a kernelt a legmagasabb biztonsági szinten kell futtatnunk, legalább 1-es szinten. A biztonsági szintet a kern.securelevel kernelváltozó határozza meg, amit az /etc/rc.conf fájlban állíthatunk be a következő két sorral: kern_securelevel=„1” és a kern_securelevel_enable=„YES”. Az 1-es biztonsági szinten a kernel nem enged írni a raw device-okra, illetve az olyan speciális chflags jelzők, mint a 'schg' használata kötelezővé válik. Ezt az opciót futási időben nem lehet állítani, ugyanakkor 0 nagyobb szint esetén sokminden tiltva van, pl: X, installworld, dátum állítás.

Ezekenkívül tilthatjuk, hogy a felhasználok megnézhessék a többi csoport, vagy felhasználó futó processzeit. Ezzel kicsit megnehezítjük az userként behatoló betörő munkáját. Ezeket a tulajdonságokat a security.bsd.see_other_gids és a security.bsd.see_other_uids változok 0-ra állításával érjük el.

További nehezítést jelent a PID-ek véletlenszerű kiosztása. Ezt vagy a sysctrl.conf fájlban elhelyezett kern.randompid=175 beállítással érhetjük el.

A kernelbe forgatott options RANDOM_IP_ID opcióval, és a sysctl.conf-ba elhelyezett net.inet.ip.random_id=1 véletlenszerű ID kerül az IP fejlécbe.

Összességében

kernelconf fájl

device bpf             # a DHCP és a pflog megköveteli, hogy ez az opció a kernelben legyen
options SC_DISABLE_REBOOT
options RANDOM_IP_ID   # ezt a /etc/sysctrl.conf fájlban is be kell állítani párhuzamosan.

/etc/sysctrl.conf

kern.coredump=0
security.bsd.see_other_gids=0
security.bsd.see_other_uids=0
kern.randompid=175     
net.inet.ip.random_id=1    # ezt a kernelbe be kell állítani párhuzamosan. 

/etc/rc.conf

kern_securelevel="1"
kern_securelevel_enable="YES"

A fájlok integritásának ellenőrzése: binárisok, konfigurációs fájlok, stb.

A védelem utolsó és talán a legfontosabb szintje: a detektálás. A rendszer fájljainak ellenőrzése egyetlen elfogadható módon valósítható meg: egy másik, még biztonságosabb rendszerről. Nem nehéz biztonságos rendszert felállítani: egyszerűen nem szabad semmilyen szolgáltatást futtatni rajta. Egy helyben felállított biztonságos rendszerből SSH-n keresztül elérést biztosíthatunk már rendszerek root területeihez. Bár ez biztonsági résnek tűnhet, valamiben azért meg kell bízni, s ameddig valaki nem csinál olyan butaságokat, hogy mindenféle szervert futtat egy adott gépen, összehozható egy biztonságos rendszer.

Naplózás lsd: freebsd naplozás

Hálózatbiztonság

A hálózatvédelemnél is van lehetőségünk biztonságosabbá tenni az alaprendszert. Először is ajánlatos azokat a csomagokat eldobni, melyek olyan portra érkeznek ahova nincs démon indítva. Sajnos ezzel a beállítással lehetnek problémák a hálózati rendszerrel. Ezért ajánlott inkább csomagszüret felrakni helyettük, és mégis inkább 0-ra állítani ezt a két opciót.

Szokás még két ICMP kérést is eldobni biztonsági okokból. A redirect üzeneteket, ez lényegében az amikor egy gép egy routeren (R1), és egy másik routeren (R2) át akar elküldeni egy csomagot, és van közvetlen út a géptől R2-íg, akkor a redirect értesíti a gépet erről az útról. A másik a logolási kérelmek eldobása.

A harmadik beállítása amit szokás elvégezni az azoknak a TCP csomagoknak ez eldobása ahol a syn és a fin bit egyaránt 1. Ez a két bit együtt hálózati csomagban leginkább csak az nmap által generált, az operációs rendszer kitalálására szolgáló scan-ben használatos. A beállításhoz először a kernelbe el kell helyezni a options TCP_DROP_SYNFIN kifejezést, majd a rc.conf fájlban a tcp_drop_synfin=„YES” sort.

Összegezve

Kernel:

options         TCP_DROP_SYNFIN

/etc/sysctl.conf

  net.inet.tcp.blackhole=1        # ha nincs csomagszűrő
  net.inet.tcp.blackhole=2        # ha nincs csomagszűrő

/etc/rc.conf

tcp_drop_synfin="YES"
icmp_drop_redirect="YES"
icmp_log_redirect="YES"

Kapupásztázás

lsd. nmap

SSH

lsd. SSH

denyhosts

lsd. denyhosts

Kapcsolódik

security manual eredetileg Matt Dillon írta, s a FreeBSD 3.1-ben jelent meg, 1998-ban.

freebsd/freebsd_biztonsag.txt · Utolsó módosítás: 2008/10/09 21:55 (külső szerkesztés)