Sljedeći dio Prethodni dio Sadržaj

7. Sigurnost kernela

Ovo je opis konfiguracijskih opcija kernela koje se odnose na sigurnost i objašnjene njihove funkcije i korištenja.

Zbog toga što kernel kontrolira mrežni rad vašeg računala, važno je da je on vrlo siguran te da mu se ne može naštetiti. Kako bi spriječili neke od najnovijih mrežnih napada, trebali biste pokušati održati verziju svog kernela svježom. Nove kernele možete naći na ftp://ftp.kernel.org/.

7.1 Opcije pri kompajliranju kernela

IP: Drop source routed frames (CONFIG_IP_NOSR)

Ova bi opcija trebala biti uključena. Source routed okviri u paketu sadrže cijeli put do svog odredišta. To znači da ruteri kroz koje paket prolazi ne moraju pregledati paket, pa ga samo proslijeđuju. To može dovesti do ulaska podataka u sustav koji možda iskorištavaju sigurnosnu rupu.

IP: Firewalling (CONFIG_IP_FIREWALL)

Ova je opcija potrebna samo ako ćete konfigurirati svoj stroj kao firewall, koristiti masquerading ili želite zaštititi svoju radnu stanicu koja se povezuje modemom od nečijeg ulaženja kroz PPP sučelje.

IP: forwarding/gatewaying (CONFIG_IP_FORWARD)

Ako uključite IP forwarding (prosljeđivanje), vaš Linux sustav u biti postaje ruter. Ako je vaš stroj na mreži, možete proslijeđivati podatke s jedne mreže na drugu, i možda potkopavati firewall koji je postavljen da to spriječi. Normalni dial-up korisnici ovo će isključiti, a ostali bi se korisnici trebali usredotočiti na sigurnosne implikacije. Računala koja su firewalli ovo trebaju uključeno, zajedno sa softverom za firewall.

IP prosljeđivanje možete dinamički uključivati naredbom:

root#  echo 1 > /proc/sys/net/ipv4/ip_forward
te isključivati naredbom:
root#  echo 0 > /proc/sys/net/ipv4/ip_forward
Ta datoteka (i mnoge druge datoteke u /proc) uvijek će izgledati duge 0 znakova, ali to zapravo nije istina. Ovo je nova opcija kernela, pa provjerite da li koristite verziju 2.0.33 ili noviju.

IP: firewall packet logging (CONFIG_IP_FIREWALL_VERBOSE)

Ova opcija pruža informacije o paketima koje je vaš firewall primio, kao što je pošiljatelj, primatelj, port, itd.

IP: always defragment (CONFIG_IP_ALWAYS_DEFRAG)

Inače je ova opcija isključena, ali ako postavljate firewall ili masquerading, trebat ćete ju uključiti. Kada se podaci šalju od jednog do drugog računala, nisu uvijek poslani u jednom paketu, nego fragmentirani u više komada. Problem s time je što se broj porta pohranjuje samo u prvom fragmentu. To znači da netko može ubaciti informacije u ostale pakete za vašu vezu, koje tamo ne bi smjele biti.

IP: syn cookies (CONFIG_SYN_COOKIES)

SYN napad je DoS (Denial of Service -- poricanje usluge) napad koji zauzima sve resurse vašeg računala, zbog čega ga vi morate ponovo dignuti. Nema razloga da ovo u normalnoj situaciji ne uključite.

Packet Signatures (CONFIG_NCPFS_PACKET_SIGNING)

Ovo je opcija iz 2.1 serije kernela koja će za veću sigurnost potpisivati NCP pakete. Obično je možete ugasiti, ali tu je ako vam je potrebna.

IP: Firewall packet netlink device (CONFIG_IP_FIREWALL_NETLINK)

Ovo je stvarno zgodna opcija koja vam omogućava analizu prvih 128 bajtova paketa iz programa u korisničkom prostoru, kako bi odlučili da li ćete primiti ili odbaciti paket na osnovu njegove valjanosti.

7.2 Kernel uređaji

Na Linuxu će vam u osiguranju pomoći i nekoliko blok i znakovnih uređaja.

Kroz dva uređaja /dev/random i /dev/urandom kernel stalno daje slučajne podatke.

I /dev/random i /dev/urandom bi trebali biti dovoljno sigurni za korištenje u generiranju PGP ključeva, SSH izazova i drugim primjenama gdje su potrebni sigurni, slučajni brojevi. Napadači ne bi smjeli moći predvidjeti slijedeći broj na temelju bilo kojeg početnog niza brojeva iz tih izvora. Uloženo je mnogo napora u osiguravanju da su brojevi koje dobijete odatle slučajni u svakom smislu riječi slučajni.

Jedina je razlika što /dev/random-u ponestane brojeva i pa morate čekati da ih se više nakupi. No, na nekim sustavima, može dugo čekati na novi ulaz korisničkih podataka u sustav. Zato prije korištenja /dev/random morate biti pažljivi. (Možda je najbolje rješenje reći korisniku da udara po tipkovnici dok mu ne kažete "U redu, dosta je" dok generirate osjetljive ključeve.)

/dev/random pruža vrlo kvalitetnu entropiju, generiranu mjerenjem vremena između interruptova i slično. Ako nema dovoljno komada slučajnih podataka, blokira se.

/dev/urandom je sličan, ali kada je zaliha entropije mala, dat će vam kriptografski jaku izmjenu onoga što ima. To nije sigurno, ali je dovoljno većini aplikacija.

Možda ćete čitati iz tih uređaja koristeći nešto kao:

root#  head -c 6 /dev/urandom | uuencode -
To će na konzoli ispisati šest slučajnih znakova prikladnih za generiranje lozinke.

Za opis algoritma pogledajte /usr/src/linux/drivers/char/random.c.

Hvala Theodoreu Y. Ts'ou, Jonu Lewisu i drugima s Linux-kernel mailing liste što su mi (Daveu) pomogli s ovim.


Sljedeći dio Prethodni dio Sadržaj