Sigurnost Linuxa KAKO Kevin Fenzi, kevin@scrye.com i Dave Wreski, dave@nic.com verzija 0.9.11, 1. svibnja 1998. Ovaj je dokument opæenit pregled sigurnosnih problema s kojima je suoèen administrator Linux sustava. Pokriva opæenitu filozofiju sigurnosti i vi¹e specifiènih primjera boljeg osiguravanja va¹eg Linux sustava od uljeza. Spominju se i drugi izvori informacija i programa o sigurnosti. NAPOMENA: ovo je beta verzija ovog dokumenta. Pobolj¹anja, konstruktivne kritike, dodatke i ispravke zahvalno prihvaæamo. Po¹aljite svoje poruke i jednom i drugom autoru. Nemojte zaboraviti "Linux", "security" ili "HOWTO" u Subject: liniji svoje poruke kako bi izbjegli spam filtere i brzo dobili pa¾nju autora. ______________________________________________________________________ Sadr¾aj 1. Uvod 1.1 Nove verzije ovog dokumenta 1.2 Komentari 1.3 Odricanje 1.4 Informacije o autorskim pravima 2. Pregled 2.1 ©to æe nam sigurnost? 2.2 Koliko je sigurno sigurno? 2.3 ©to poku¹avate za¹tititi? 2.4 Razvijanje sigurnosne politike 2.5 Naèini osiguravanja va¹eg sustava 2.5.1 Sigurnost raèunala 2.5.2 Sigurnost va¹e mre¾e 2.5.3 Sigurnost pomoæu opskurnosti 2.6 Organizacija ovog dokumenta 3. Fizièka sigurnost 3.1 Raèunalne brave 3.2 BIOS sigurnost 3.3 Sigurnost programa za dizanje 3.4 xlock i vlock 3.5 Otkrivanje fizièkih provala 4. Lokalna sigurnost 4.1 Stvaranje novih raèuna 4.2 Sigurnost roota 5. Sigurnost datoteka i datoteènog sustava 5.1 Postavljanje umaska 5.2 Dozvole datoteka 5.3 Provjera cjelovitosti pomoæu Tripwirea 5.4 Trojanski konji 6. Sigurnost lozinki i enkripcija 6.1 PGP i kriptografija javnih kljuèeva 6.2 SSL, S-HTTP, HTTPS i S/MIME 6.3 Linux x-kernel -- implementacija IPSEC-a 6.4 SSH, stelnet 6.5 PAM - Pluggable Authentication Modules 6.6 Kriptografska IP enkapsulacija (CIPE) 6.7 Kerberos 6.8 Shadow lozinke 6.9 Crack i John the Ripper 6.10 CFS i TCFS 6.11 X11, SVGA i sigurnost prikaza 6.11.1 X11 6.11.2 SVGA 6.11.3 GGI 7. Sigurnost kernela 7.1 Opcije pri kompajliranju kernela 7.2 Kernel ureðaji 8. Sigurnost mre¾e 8.1 Sniferi paketa 8.2 Usluge sustava i tcp_wrapperi 8.3 Provjerite svoje DNS-ove 8.4 identd 8.5 SATAN, ISS i drugi mre¾ni skeneri 8.6 sendmail, qmail i MTA-ovi 8.7 Denial of Service (poricanje usluga) napadi 8.8 Sigurnost NFS-a 8.9 NIS (biv¹i YP) 8.10 Firewallovi 9. Sigurnosne pripreme (prije nego se ukljuèite u mre¾u) 9.1 Napravite potpun backup svoga stroja 9.2 Izbor dobrog rasporeda backupa 9.3 Backupirajte svoju RPM ili Debian bazu podataka datoteka 9.4 Praæenje logova va¹eg sustava 9.5 Primjenite sve nove nadogradnje sustava 10. ©to uèiniti tokom i nakon provale 10.1 Naru¹avanje sigurnosti upravo se odvija 10.2 Naru¹avanje sigurnosti veæ se dogodilo 10.2.1 Zatvaranje rupe 10.2.2 Procjenjivanje ¹tete 10.2.3 Backup, backup, backup! 10.2.4 Pronala¾enje uljeza 11. Izvori informacija o sigurnosti 11.1 FTP poslu¾itelji 11.2 WWW stranice 11.3 Mailing liste 11.4 Knjige -- tiskani materijali za èitanje 12. Rjeènik 13. Èesto postavljana pitanja 14. Zakljuèak 15. Zahvale 16. Hrvatski prijevod ______________________________________________________________________ 11.. UUvvoodd Ovaj dokument pokriva neke od glavnih problema sigurnosti koji utjeèu na sigurnost Linuxa. Govori se o opæoj filozofiji i resursima na mre¾i. S problemima sigurnosti preklapa se vi¹e drugih KAKO dokumenata i, gdje je prikladno, na njih ste upuæeni. Ovaj dokument NIJE svje¾ popis sigurnosnih rupa. Puno novih stalno se pojavljuje. Ovaj æe vam dokument reæi gdje da potra¾ite svje¾e informacije i izlo¾iti neke opæenite metode spreèavanja takvih rupa. 11..11.. NNoovvee vveerrzziijjee oovvoogg ddookkuummeennttaa Nove verzije ovog dokumenta redovito se ¹alju u comp.os.linux.answers. Takoðer se dodaju raznim anonimnim FTP serverima koji takve informacije arhiviraju, ukljuèujuæi <ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/>. Ovaj bi dokument trebali moæi naæi i na Linux WWW stranici na <http://sunstie.unc.edu/mdw/linux.html>. Na kraju, najsvje¾ije verzije ovog dokumenta trebale bi biti dostupne u raznim formatima s <http://scrye.com/~kevin/lsh/>. 11..22.. KKoommeennttaarrii Sve komentare, gre¹ke, dodatne informacije i kritike svih vrsta ¹aljite na kevin@scrye.com i dave@nic.com. NAPOMENA: molimo vas, poruku po¹aljite obojici. Provjerite da li je u Subject:-u poruke "Linux", "security" ili "HOWTO" da izbjegnete Kevinov spam filter. 11..33.. OOddrriiccaannjjee Za sadr¾aj ovih dokumenata ne prihvaæamo nikakvu odgovornost. Ideje, primjere i drugi sadr¾aj koristite na svoju odgovornost. Takoðer, ovo je nedovr¹ena verzija, s mnogim moguæim netoènostima i gre¹kama. Dosta primjera i opisa koriste Red Hat(TM)-ov sustav pakiranja i izgled sustava. Va¹ ne mora biti jednak. Opisani su samo programi koji se pod odreðenim uvjetima mogu koristiti ili isku¹ati za osobne svrhe. Veæina programa dostupna je u potpunosti, s izvornim kodom, pod GNU-olikim uvjetima. 11..44.. IInnffoorrmmaacciijjee oo aauuttoorrsskkiimm pprraavviimmaa Ovaj dokument je (C) 1998. Kevin Fenzi i Dave Wreski, a distribuira se pod slijedeæim uvjetima: · KAKO dokumente mo¾e se reproducirati i distribuirati u cjelosti ili djelomièno, na mediju fizièkom ili elektronièkom, dok je ova obavijest na svim primjercima. Komercijalna distribucija dopu¹tena je i ohrabrena; meðutim, autor bi o takvom distribuiranju ¾elio biti obavije¹ten. · Svi prijevodi, izvedeni ili sa¾eti radovi koji ukljuèuju Linux KAKO dokumente moraju biti pod ovom licencom. Dakle, ne smijete napraviti rad izveden iz KAKO-a i nametati dodatna ogranièenja na njegovu distribuciju. Iznimke ovim pravilima moguæe su pod odreðenim uvjetima; kontaktirajte Linux KAKO koordinatora na dolje danoj adresi. · Ako imate pitanja, kontaktirajte Tima Bynuma, Linux KAKO koordinatora, na linux-howto@sunsite.unc.edu. 22.. PPrreegglleedd Ovaj dokument poku¹ava objasniti neke postupke i èesto kori¹tene programe koji va¹ Linux èine sigurnijim. Va¾no je da prvo razjasnimo neke osnovne stvari, da steknete temeljna znanja iz sigurnosti prije nego poènemo. 22..11.. ©©ttoo ææee nnaamm ssiigguurrnnoosstt?? U promijenjivom svijetu globalnih podatkovnih komunikacija, jeftinih veza na Internet i vrlo brzog razvoja softvera, sigurnost postaje sve va¾nija. Sigurnost je sada osnovna potreba jer je globalno raèunalstvo po prirodi nesigurno. Na primjer, dok va¹i podaci idu iz toèke A u toèku B na Internetu, mo¾da æe usput proæi kroz nekoliko drugih toèaka, dajuæi drugim korisnicima priliku da presreæu, i èak mijenjaju, va¹e podatke. Èak i drugi korisnici na va¹em sustavu mogu zloæudno pretvarati va¹e podatke u ne¹to ne¾eljeno. Neodobreni pristup va¹em sustavu mogu dobiti uljezi, takozvani ccrraacckkeerrii, koji zatim koriste svoje napredne vje¹tine u imitiranju vas, u kraði podataka od vas, ili èak onemoguæavanju pristupa va¹im vlastitim resursima. Ako se jo¹ uvijek pitate koja je razlika izmeðu hhaacckkeerraa i crackera, proèitajte HHooww ttoo BBeeccoommee AA HHaacckkeerr (kako postati haker) Erica S. Raymonda na <http://sagan.earthspace.net/~esr/faqs/hacker- howto.html>. 22..22.. KKoolliikkoo jjee ssiigguurrnnoo ssiigguurrnnoo?? Najprije, imajte na umu da nijedan raèunalni sustav nikad ne mo¾e biti "potpuno siguran". Sve ¹to mo¾ete je ote¾ati kompromitiranje va¹eg sustava. Za prosjeènog kuænog korisnika Linuxa, ne treba puno da obièni kreker ostane na lancu. Za velike Linux korisnike (banke, telekomunikacijske tvrtke, itd.) potrebno je mnogo vi¹e posla. Drugi faktor kojeg treba uzeti u obzir je da, ¹to je va¹ sustav sigurniji, sigurnost vam sve vi¹e smeta. U tom balansiranju trebate naæi toèku gdje je va¹ sustav moguæe koristiti, ali je jo¹ siguran za va¹e potrebe. Na primjer, mogli biste od svih koji se na va¹ sustav spajaju telefonskom vezom tra¾iti da va¹ sustav nazove njih na njihov kuæni broj. To jest sigurnije, ali ako netko nije kod kuæe, te¹ko æe se logirati. Takoðer biste mogli svoj Linux sustav ostaviti bez mre¾e ili veze na Internet, ali to vrlo ote¾ava surfanje WWW-om. Ako ste sustav veæe ili srednje velièine, trebali bi razviti "Sigurnosnu politiku" o tome koliko sigurnosti va¹ sustav zahtijeva i kojim se postupkom ona provjerava. Dobro poznati primjer sigurnosne politike mo¾ete naæi na <http://ds.internic.net/rfc/rfc2196.txt>. Nedavno je osvje¾en i sadr¾i izvrsnu podlogu za sigurnosnu politiku va¹e tvrtke. 22..33.. ©©ttoo ppookkuu¹¹aavvaattee zzaa¹¹ttiittiittii?? Prije nego poku¹ate osigurati svoj sustav, trebate odluèiti kolika je prijetnja protiv koje se morate za¹tititi, koje rizike biste ili ne biste trebali podnijeti i koliko æe na kraju va¹ sustav biti ranjiv. Prouèite svoj sustav i saznajte ¹to i za¹to ¹titite, koliko je to vrijedno i tko je odgovoran za va¹e podatke i drugo vlasni¹tvo. · Rizik je moguænost da uljez uspije u poku¹aju pristupa va¹em raèunalu. Mo¾e li uljez èitati, pisati datoteke, ili izvr¹avati programe koji bi vam mogli na¹tetiti? Mo¾e li va¾ne podatke obrisati? Sprijeèiti vas ili va¹u tvrku da obavite va¾ne poslove? Ne zaboravite, netko s pristupom va¹em raèunu ili sustavu takoðer se mo¾e predstavljati kao vi. Zatim, jedan nesiguran raèun na va¹em sustavu mo¾e dovesti do kompromitiranja cijele va¹e mre¾e. Jedan korisnik kojem je dopu¹teno logiranje preko rhosts datoteke, ili nesigurna usluga, kao ¹to je tftp, rizik je koji uljezu omoguæava da "proðe kroz vrata". Kada uljez jednom dobije korisnièki raèun na va¹em sustavu ili sustavu nekog drugog, mo¾e ga koristiti za dobivanje pristupa drugom sustavu, ili drugom raèunu. · Obièno vam prijeti netko tko ¾eli neodobren pristup va¹oj mre¾i ili raèunalu. Odluèite kome vjerujete dovoljno da ima pristup va¹em raèunalu, i koju bi on prijetnju mogao predstavljati. Evo nekoliko vrsta uljeza. Korisno je misliti na razlièite osobine dok osiguravate svoje sustave. ZZnnaattii¾¾eelljjnnii Ovu vrstu uljeza zapravo zanima koju vrstu sustava i podataka imate. ZZllooææuuddnnii Ova vrsta uljeza ¾eli ili sru¹iti va¹e sustave, ili unakaziti va¹u WWW stranicu, ili vam drukèije oduzeti vrijeme i novac za oporavak. UUlljjeezz kkoojjii ssee hhooææee iissttaaææii Ova vrsta uljeza poku¹ava preko va¹eg sustava doæi do popularnosti ili slave. Mo¾e va¹ va¾an sustav koristiti za razgla¹avanje svoje sposobnosti. KKoonnkkuurreenncciijjaa Ove uljeze zanima koje podatke imate na sustavu. Mo¾da misle da imate ne¹to ¹to bi im dobro do¹lo financijski ili drugaèije. · Ranjivost opisuje koliko je dobro va¹e raèunalo za¹tiæeno od drugih mre¾a i moguænost neodobrenog pristupa. ©to je na kocki ako netko provali u va¹ sustav? Naravno da brige kuænog korisnika dinamièkog PPP-a nisu jednake brigama tvrtke koja svoje raèunalo spaja na Internet ili drugu veæu mre¾u. Koliko bi vam vremena trebalo da ponovo nabavite/napravite izgubljene podatke? Vrijeme ulo¾eno sada mo¾e spasiti deset puta vi¹e vremena poslije ako budete morali ponovno stvoriti podatke koje izgubite. Jeste li u zadnje vrijeme provjerili svoju strategiju backupa i svoje podatke? 22..44.. RRaazzvviijjaannjjee ssiigguurrnnoossnnee ppoolliittiikkee Napravite jednostavnu, opæenitu politiku za svoj sustav, koju va¹i korisnici mogu lako razumjeti i po¹tovati. Ona treba za¹tititi podatke koje èuvate, kao i privatnost korisnika. Neke stvari koje biste mogli dodati je tko ima pristup sustavu (mo¾e li moj prijatelj koristiti moj raèun?), kome je dozvoljeno da na sustav instalira softver, tko posjeduje koje podatke, oporavljanje od katastrofe i prikladno kori¹tenje sustava. Opæe prihvaæena sigurnosna politika poèinje frazom: ©to nije dozvoljeno zabranjeno je. To znaèi da ako korisniku ne date pristup usluzi, on je ne smije koristiti dok pristup ne dobije. Provjerite da li to funkcionira na va¹em obiènom korisnièkom raèunu -- reæi "ma ne mogu shvatiti ovaj problem s dozvolama, idem jednostavno biti root" mo¾e dovesti do vrlo oèitih sigurnosnih rupa, èak i dosad nepoznatih. 22..55.. NNaaèèiinnii oossiigguurraavvaannjjaa vvaa¹¹eegg ssuussttaavvaa Ovaj dokument æe govoriti o raznim sredstvima osiguravanja stvari za koje ste toliko radili: va¹e lokalno raèunalo, podatke, korisnike, mre¾u, èak i va¹ ugled. ©to æe se dogoditi s va¹im ugledom ako uljez obri¹e podatke nekog va¹eg korisnika? Ili vam unakazi WWW stranice? Ili objavi poslovne planove va¹e tvrke za slijedeæi kvartal? Ako planirate mre¾nu instalaciju, mnogo faktora treba uzeti u obzir prije dodavanja ijednog raèunala. Èak i ako imate jednostavan PPP raèun ili malen sustav, to ne znaèi da uljeze ne zanimate. Veliki, istaknuti sustavi nisu jedine mete -- mnogi uljezi jednostavno ¾ele iskoristiti ¹to vi¹e sustava bez obzira na njihovu velièinu. Takoðer mogu koristiti sigurnosnu rupu u va¹em sustavu za pristup drugim sustavima kojima ste spojeni. Uljezi imaju mnogo vremena i mogu izbjeæi pogaðanje naèina na koji ste osigurali sustav jednostavnim isprobavanjem svih moguænosti. Ima jo¹ nekoliko razloga zbog kojih bi se uljez mogao zanimati za va¹e sustave o kojima æemo govoriti poslije. 22..55..11.. SSiigguurrnnoosstt rraaèèuunnaallaa Mo¾da se najvi¹e brige za sigurnost tro¹i na pojedina raèunala. To obièno znaèi provjeravanje sigurnosti va¹eg sustava uz nadu da svi ostali na mre¾i rade isto. Odabir dobrih lozinki, osiguravanje usluga lokalne mre¾e va¹eg poslu¾itelja, pa¾ljivo odr¾avanje korisnièkih raèuna i nadogradnja programa s poznatim sigurnosnim rupama dio su odgovornosti lokalnog sigurnosnog administratora. Iako je to potpuno nu¾no, postaje te¾ak zadatak ako va¹a mre¾a raèunala postane veæa. 22..55..22.. SSiigguurrnnoosstt vvaa¹¹ee mmrree¾¾ee Sigurnost mre¾e potrebna je koliko i sigurnost lokalnog raèunala. Uz va¹ sustav, ili distribuiranu raèunalnu mre¾u, Internet, ili stotine, ako ne i tisuæe raèunala na istoj mre¾i ne mo¾ete raèunati na sigurnost svakog od njih. Provjeravanje dozvola samo provjerenim korisnicima za kori¹tenje va¹ih mre¾nih resursa, graðenje firewalla, kori¹tenje jake enkripcije i provjere da nema izlo¾enih ili nesigurnih raèunala na va¹oj mre¾i sve su dio du¾nosti mre¾nog sigurnosnog administratora. Ovaj æe dokument govoriti o nekim tehnikama za osiguravanje va¹eg sustava u nadi da vam poka¾e neke naèine spreèavanja pristupanja uljeza u ono ¹to poku¹avate za¹tititi. 22..55..33.. SSiigguurrnnoosstt ppoommooææuu ooppsskkuurrnnoossttii Jedna vrsta sigurnosti koju je potrebno raspraviti je "sigurnost preko opskurnosti". To se odnosi na stvari poput mijenjanja imena 'root' u 'toor' kako bi se ote¾ala provala u va¹ sustav kao root -- osjeæaj sigurnosti je la¾an i dovest æe do vrlo neugodnih posljedica. Budite sigurni da æe svaki napadaè na sustav brzo progledati kroz takve prazne sigurnosne mjere. To ¹to imate malen sustav ili niste istaknuti ne znaèi da se uljezi neæe zanimati za ono ¹to imate. U slijedeæim dijelovima govorit æemo o onome ¹to ¹titite. 22..66.. OOrrggaanniizzaacciijjaa oovvoogg ddookkuummeennttaa Ovaj dokument podijeljen je na vi¹e dijelova. Oni pokrivaju razne vrste sigurnosnih problema. Prvi, o fizièkoj sigurnosti, govori o za¹titi va¹eg raèunala od fizièkog petljanja. Drugi opisuje kako za¹tititi va¹ sustav od petljanja lokalnih korisnika. Treæi, o datotekama i sigurnosti datoteènog sustava, pokazuje kako namjestiti datoteène sustave i dozvole na va¹im datotekama. Slijedeæi, o sigurnosti preko lozinki i enkripcije, govori o kori¹tenju enkripcije za bolju sigurnost va¹eg raèunala i mre¾e. Sigurnost kernela govori o moguænostima kernela koje biste trebali koristiti ili biti svjesni za sigurniji stroj. Sigurnost mre¾e opisuje kako bolje osigurati svoj Linux sustav od napada s mre¾e. Sigurnosne pripreme govori o pripremanju va¹eg/ih raèunala prije nego ¹to ih umre¾ite. Slijedeæi dio govori ¹to poduzeti kada otkrijete provalu sustava u toku ili koja se nedavno dogodila. Zatim su nabrojeni drugi izvori informacija o sigurnosti, a na kraju su neka pitanja i odgovori i nekoliko zavr¹nih rijeèi. Dvije va¾ne stvari koje trebate shvatiti èitajuæi ovaj dokument su: · Budite svjesni svog sustava. Provjeravajte logove sustava kao ¹to je /var/log/messages i pazite na svoj sustav, i · Drugo, dr¾ite svoj sustav svje¾im instaliranjem trenutnih verzija softvera i nadogradnjama zbog sigurnosnih opasnosti. To æe va¹ sustav uèiniti znatno sigurnijim. 33.. FFiizziièèkkaa ssiigguurrnnoosstt Prvi "sloj" sigurnosti kojeg trebate uzeti u obzir je fizièka sigurnost va¹ih raèunalnih sustava. Tko ima izravan fizièki pristup va¹em raèunalu? Da li bi trebao? Mo¾ete li za¹tititi svoje raèunalo od njegova petljanja? Da li biste trebali? Koliko fizièke sigurnosti trebate za svoj sustav jako ovisi o va¹oj situaciji i/ili financijama. Ako ste kuæni korisnik, vjerovatno vam je ne treba puno (iako æete mo¾da htjeti za¹tititi svoje raèunalo od djece ili neugodnih roðaka). Ako ste u laboratoriju, treba vam poprilièno vi¹e, no korisnici na raèunalima ipak moraju moæi raditi. Mnogi od slijedeæih dijelova bit æe od pomoæi. Ako ste u uredu, trebat æe vam ili neæe osiguravanje raèunala dok ne radite ili dok ste na putu. U nekim tvrtkama ostavljanjem neosigurane konzole mo¾ete zaraditi otkaz. Oèite metode fizièke sigurnosti kao ¹to su brave na vratima, kablovima, zakljuèani kabineti i video kamere sve su dobra ideja, ali izvan dosega ovog dokumenta. :) 33..11.. RRaaèèuunnaallnnee bbrraavvee Mnoga moderna PC kuæi¹ta imaju moguænost "zakljuèavanja". To je obièno brava na prednjem dijelu kuæi¹ta u kojoj dobiveni kljuè mo¾ete okrenuti u zakljuèani ili nezakljuèani polo¾aj. Brave na kuæi¹tima mogu pomoæi u spreèavanju kraðe va¹eg PC-a, ili otvaranja kuæi¹ta i izravnog mijenjanja/kraðe va¹eg hardvera. Nekad mogu sprijeèiti i resetiranje va¹eg raèunala uz dizanje sustava s diskete ili drugog hardvera. Te brave rade razlièite stvari, ovisno o podr¹ci matiène ploèe i konstrukciji kuæi¹ta. Na mnogim PC-ima napravljene su tako da kuæi¹te morate slomiti kako bi ga otvorili. Na drugima ne mo¾ete ukljuèivati nove tipkovnice i mi¹eve. Za vi¹e informacija provjerite upute svoje matiène ploèe ili kuæi¹ta. To ponekad mo¾e biti vrlo korisna moguænost, iako su brave obièno niske kvalitete i vrlo ih je lako otkljuèati otpiraèem. Neka kuæi¹ta (najizra¾enije Sparcovi i Macovi) imaju kuku otraga tako da, ako provuèete kabel, napadaè mora prerezati kabel ili slomiti kuæi¹te da bi ga otvorio. Stavljanje ¹ifre ili brave mo¾e biti dobra odbrana od kraðe stroja. 33..22.. BBIIOOSS ssiigguurrnnoosstt BIOS je najni¾a razina softvera koja konfigurira ili radi s va¹im x86 baziranim hardverom. LILO i druge metode dizanja Linuxa pristupaju BIOS-u kako bi odluèile kako dignuti va¹e Linux raèunalo. Druge platforme na kojem Linux radi imaju slièan softver (OpenFirmware na Macovima i novijim Sunovima, Sun boot prom, itd.). Preko BIOS-a mo¾ete sprijeèiti napadaèa u resetiranju va¹eg raèunala i mijenjanju va¹eg Linux sustava. Pod Linuxom/x86 mnogi PC BIOS-i daju vam moguænost lozinke pri dizanju sustava. To ne znaèi ba¹ puno sigurnosti (BIOS se mo¾e resetirati, ili maknuti ako netko mo¾e do unutra¹njosti kuæi¹ta), ali mo¾e poslu¾iti kao dobra obrana (to jest, potrajat æe i ostaviti tragove petljanja). Mnogi x86 BIOS-i omoguæavaju i odreðivanje raznih drugih dobrih sigurnosnih mjera. Provjerite priruènik svog BIOS-a ili ga razgledajte prilikom slijedeæeg dizanja. Neki primjeri: iskljuèivanje dizanja s disketa i lozinke za pristup nekim opcijama BIOS-a. Na Linux/Sparc-u va¹ SPARC EEPROM mo¾e se namjestiti da zahtijeva lozinku pri dizanju. To æe mo¾da usporiti napadaèa. NAPOMENA: Ako imate poslu¾itelj i stavite lozinku pri dizanju, va¹ se stroj neæe dizati samostalno. Nemojte zaboraviti da æete morati doæi i dati lozinku èak i kod nestanka struje. ;( 33..33.. SSiigguurrnnoosstt pprrooggrraammaa zzaa ddiizzaannjjee Razni programi za dizanje Linuxa takoðer mogu imati lozinku. Ako koristite LILO, pogledajte opcije rreessttrriicctteedd i ppaasssswwoorrdd. ppaasssswwoorrdd vam tra¾i lozinku pri dizanju. rreessttrriicctteedd æe dopustiti dizanje sustava _o_s_i_m ako netko odredi opcije na LILO: promptu (kao ¹to je ssiinnggllee). Naravno, pri postavljanju svih tih lozinki trebat æete ih i popamtiti. :) Takoðer nemojte zaboraviti da æe one samo usporiti odluènog napadaèa. To neæe sprijeèiti da netko digne sustav s diskete i montira va¹u root particiju. Ako koristite sigurnost uz svoj program za dizanje sustava, mo¾ete odmah i u BIOS-u svog raèunala iskljuèiti dizanje s diskete, kao i za¹titi ga lozinkom. Ako netko ima informacije o sigurnosti drugih programa za dizanje, rado bismo ih èuli (grub, silo, milo, linload, itd.). NAPOMENA: Ako imate poslu¾itelj i stavite lozinku pri dizanju, va¹ se stroj neæe dizati samostalno. Nemojte zaboraviti da æete morati doæi i dati lozinku èak i kod nestanka struje. ;( 33..44.. xxlloocckk ii vvlloocckk Ako s vremena na vrijeme odlutate od svog stroja, lijepo je moæi "zakljuèati" svoju konzolu da nitko ne petlja po njoj ili gleda ¹to ste radili. Ovo mogu dva programa: xlock i vlock. xlock zakljuèava X prikaz. Trebao bi doæi sa svakom Linux distribucijom koja podr¾ava X. Za vi¹e opcija provjerite njegovu man stranicu, ali opæenito mo¾ete pokrenuti xlock iz bilo kojeg xterma na svojoj konzoli i on æe zakljuèati prikaz i tra¾iti lozinku za otkljuèavanje. vlock je jednostavan mali program kojim zakljuèavate neke ili sve virtualne konzole na svojem Linux stroju. Mo¾ete zakljuèati samo onu u kojoj radite ili sve. Ako zakljuèate samo jednu, drugi mogu doæi i koristiti konzolu, ali ne i va¹ vty dok ga ne otkljuèate. vlock dolazi s Red Hat Linuxom, ali to ne mora vrijediti za va¹u distribuciju. Naravno da æe zakljuèavanje konzole sprijeèiti petljanje drugih u va¹ posao, ali ne sprijeèava resetiranje stroja ili prekid va¹eg posla na neki drugi naèin. Takoðer ne sprijeèava pristup va¹em raèunalu s drugog raèunala na mre¾i i uzrokovanje problema. 33..55.. OOttkkrriivvaannjjee ffiizziièèkkiihh pprroovvaallaa Prva stvar na koju uvijek treba paziti je kad se va¹ stroj dignuo. Po¹to je Linux robustan i stabilan OS, stroj bi se trebao ponovo dizati kada ga VI spustite za nadogradnje OS-a, izmjenu hardvera ili ne¹to slièno. Ako se stroj dignuo bez va¹eg sudjelovanja, trebalo bi se upaliti svjetlo za uzbunu. Mnogi naèini kompromitiranja va¹eg raèunala zahtijevaju da ga uljez resetira. Provjerite znakove petljanja na kuæi¹tu i podruèju raèunala. Iako mnogi uljezi iz logova èiste tragove svoga prisustva, dobra je ideja provjeriti ih i potra¾iti bilo kakve nejasnosti. Neke stvari koje trebate provjeriti u logovima: · Kratki ili nepotpuni logovi. · Logovi s èudnim oznakama vremena. · Logovi s netoènim dozvolama ili vlasni¹tvom. · Znakovi ponovnog dizanja sustava ili ukljuèivanja usluga. · Nedostajuæi logovi. · su zapisi ili logini iz èudnih mjesta. O podacima iz logova sustava govorit æemo kasnije. 44.. LLookkaallnnaa ssiigguurrnnoosstt Slijedeæa stvar koju trebate pogledati je osigurnost va¹eg sustava protiv napada lokalnih korisnika. Jesmo li mi to rekli _l_o_k_a_l_n_i_h korisnika? Da. Dobivanje pristupa lokalnom korisniku jedna je od prvih stvari koju uljezi u sustav poku¹aju na svom putu do rootovog raèuna. Uz nedostatke lokalne sigurnosti, zatim mogu "nadograditi" svoj obièni korisnièki pristup do administratora kroz razne bagove i jadno namje¹tene lokalne usluge. Ako svoju lokalnu sigurnost uèinite dobrom, uljez æe naiæi na jo¹ jednu prepreku. Lokalni korisnici mogu uzrokovati dosta ¹tete na va¹em sustavu èak i (posebno) ako su stvarno oni za koje se predstavljaju. Davanje raèuna ljudima koje ne poznajete ili za koje nemate kontaktnih informacija vrlo je lo¹a ideja. 44..11.. SSttvvaarraannjjee nnoovviihh rraaèèuunnaa Korisnièke raèune trebali biste davati zadovoljavajuæi samo minimalne potrebe zadatka koji obavljaju. Ako svom desetgodi¹njem sinu date raèun, mo¾da æete htjeti da on ima pristup samo word procesoru ili programu za crtanje i ne mo¾e brisati tuðe podatke. Nekoliko dobrih pravila procjenjivanja kod dopu¹tanja pristupa drugih ljudi va¹em Linux stroju: · Dajte im minimalne privilegije koje su im potrebne. · Budite svjesni kada/od kamo se logiraju, ili bi se trebali logirati. · Budite sigurni i zbri¹ite njihov raèun kada im vi¹e nije potreban. Mnogi raèuni lokalnih korisnika koji se koriste u provalama sigurnosti nisu kori¹teni mjesecima ili godinama. Po¹to ih nitko ne koristi, idealno su sredstvo napada. 44..22.. SSiigguurrnnoosstt rroooottaa Najtra¾eniji raèun na va¹em raèunalu je raèun administratora. On ima vlast nad cijelim strojem, a mo¾da i nad drugim strojevima na mre¾i. Sjetite se da bi rootov raèun trebali koristiti samo za vrlo kratke, odreðene zadatke, a uglavnom biti obièni korisnik. Biti root cijelo vrijeme vrlo vrlo vrlo je lo¹a ideja. Nekoliko trikova da ne zabrljate svoj vlastiti stroj dok ste root: · Kada pokreæete neku slo¾enu naredbu, prvo je poku¹ajte pokrenuti u ne-destruktivnom naèinu... Posebno naredbe koje koriste nadopunjavanje: tj., ako hoæete pokrenuti rm foo*.bak, umjesto toga prvo napi¹ite ls foo*.bak i provjerite da li æete obrisati ne¾eljene datoteke. Kori¹tenje naredbe echo umjesto destruktivnih naredbi takoðer ponekad poma¾e. · Neki ljudi misle da tu poma¾e touch /-i. Tako æe vas naredbe poput rm -rf * pitati da li stvarno ¾elite obrisati sve te datoteke. (Zato ¹to va¹a ljuska prvo nadopuni datoteku -i koju rm tretira kao opciju.) To neæe pomoæi kod rm naredbi bez *. ;( · Postanite root samo za pojedine posebne zadatke. Ako ne znate kako ne¹to napraviti, vratite se u ljusku obiènog korisnika dok niste _s_i_g_u_r_n_i ¹to root treba obaviti. · Staza je vrlo va¾na za root korisnika. Naredbena staza, odnosno PATH varijabla okru¾ja, odreðuje mjesta na kojima ljuska tra¾i prorgame. Poku¹ajte ogranièiti stazu za root korisnika ¹to je vi¹e moguæe i nikad nemojte koristiti ., odnosno "trenutni direktorij", u svojem PATH-u. Takoðer nemojte u PATH-u imati direktorije u koje se mo¾e pisati jer to omoguæava napadaèima mijenjanje ili smje¹tanje novih izvr¹nih datoteka u va¹u naredbenu stazu tako da postanu root slijedeæi put kada vi pokrenete tu naredbu. · Nikad nemojte koristiti rlogin/rsh/rexec (takozvane rr--uuttiilliittiieess) alate kao root. Oni su podlo¾ni mnogim napadima i vrlo opasni kada ih pokreæe root. Nikad ne stvarajte .rhosts datoteku za roota. · Datoteka /etc/securetty sadr¾i popis terminala s kojih se root mo¾e logirati. Tu su predefinirane (na Red Hat Linuxu) samo virtualne konzole (vty-i). Budite vrlo pa¾ljivi kod dodavanja bilo èega drugog ovoj datoteci. Trebali biste moæi logirati se s daljine kao obièni korisnik, a zatim, ako trebate, su (po moguænosti preko ssh- a ili drugog enkriptiranog kanala), tako da nema potrebe za moguæno¹æu izravnog logiranja kao root. · Uvijek budite spori i odluèni dok ste root. Va¹i postupci mogu utjecati na mnogo stvari. Razmislite prije tipkanja! · Ako svakako morate dopustiti nekome (po moguænosti vrlo provjerenom) nadkorisnièki pristup na va¹em raèunalu, ima nekoliko alata koji vam mogu pomoæi. sudo omoguæava korisnicima da koriste svoju lozinku za pristup ogranièenom skupu naredbi kao root. Na primjer, to omoguæava korisniku da izbacuje i montira pokretljive medije na va¹em Linux stroju, ali nema drugih root privilegija. sudo ima i logove svih uspje¹nih i neuspje¹nih poku¹aja pokretanja tako da mo¾ete otkriti tko je za ¹to koristio koju naredbu. Zato sudo dobro radi èak i na mjestima gdje vi¹e ljudi ima pristup rootu tako da se mogu vidjeti poèinjene promjene. Iako se sudo mo¾e koristiti za davanje odreðenih privilegija odreðenom korisniku za odreðene zadatke, ima nekoliko nedostataka. Trebalo bi ga koristiti samo za ogranièen skup zadataka, kao ¹to ponovno pokretanje servera ili dodavanje novih korisnika. Svaki program koji nudi izlaz u ljusku dat æe korisniku pristup rootu. Na primjer, to vrijedi za veæinu editora. Takoðer, nevin program poput /bin/cat mo¾e se koristiti za prepisivanje datoteka tako da se pristup rootu mo¾e zloæudno iskori¹tavati. sudo smatrajte sredstvom za voðenje raèuna i ne oèekujte da zamijeni roota i uz to bude siguran. 55.. SSiigguurrnnoosstt ddaattootteekkaa ii ddaattootteeèènnoogg ssuussttaavvaa Nekoliko minuta pripreme i planiranja prije ukljuèivanja u mre¾u mo¾e pomoæi u za¹titi sustava i podataka koji su na njima pohranjeni. · Ne bi trebalo biti razloga za dopu¹tanje pokretanja SUID/SGID programa iz korisnièkih home direktorija. Za particije na koje mogu pisati drugi osim roota koristite nosuid opciju u /etc/fstab. Mo¾da æete iskoristiti i nodev i noexec na korisnièkim home particijama, kao i na /var, koje zabranjuju izvr¹avanje programa i stvaranje znakovnih ili blok ureðaja, koji ionako ne bi trebali biti potrebni. · Ako izvozite datoteène sustave preko NFS-a, konfigurirajte /etc/exports sa ¹to je vi¹e moguæe restriktivnim pristupom. To znaèi nekori¹tenje metaznakova, nedopu¹tanje pisanja na / i montiranje samo-za-èitanje kad god je moguæe. · Konfigurirajte korisnièki umask za stvaranje datoteka ¹to restriktivnije. Uobièajene su vrijednosti 022, 033, te najogranièenija 077, a dodaju se u /etc/profile. · Umjesto predefiniranog unlimited stavite granice na zauzeæe datoteènog sustava. Ogranièenja po korisniku mo¾ete mijenjati kori¹tenjem resource-limits PAM modula i /etc/pam.d/limits.conf. Na primjer, ogranièenja za grupu korisnici mogla bi izgledati ovako: @korisnici hard core 0 @korisnici hard nproc 50 @korisnici hard rss 5000 Ovo zabranjuje stvaranje core datoteka, ogranièava broj procesa na 50 i kori¹tenje memorije na 5 MB po korisniku. · Datoteke /var/log/wtmp i /var/run/utmp sadr¾e zapise o logiranju svih korisnika sustava. Cjelovitost ove datoteke mora se odr¾ati jer se ona preko nje mo¾ete saznati kada i od kamo je korisnik (ili moguæi uljez) u¹ao na va¹ sustav. Ove datoteke takoðer bi trebale imati dozvole 644, bez utjecaja na normalan rad sustava. · immutable bit mo¾e se koristiti za spreèavanje sluèajnog brisanja ili prepisivanja datoteke koja mora biti za¹tiæena. Takoðer spreèava simbolièko vezanje na tu datoteku, ¹to su koristili napadi brisanja /etc/passwd i /etc/shadow. Za vi¹e informacija o immutable bitu pogledajte man stranicu chattr(1). · SUID i SGID datoteke na va¹em sustavu moguæ su sigurnosni rizik i pa¾ljivo ih treba pratiti. Zbog toga ¹to ti programi daju posebne privilegije korisniku koji ih je pokrenuo, potrebno je osigurati da se nesigurni programi ne instaliraju. Omiljeni krekerski trik je iskoristiti SUID root programe, a zatim ostaviti SUID program kao stra¾nji ulaz za slijedeæi put, èak i ako je izvorna rupa zaèepljena. Naðite sve SUID/SGID programe na svom sustavu i pratite njihovo stanje, tako da ste svjesni bilo kakvih promjena koje bi mogle znaèiti moguæeg uljeza. Koristite slijedeæu naredbu za tra¾enje svih SUID/SGID programa na sustavu: root# find / -type f \( -perm -04000 -o -perm -02000 \) Slobodno pomoæu chmod(1) maknite SUID ili SGID dozvole na sumnjivom programu, a zatim ih vratite ako ba¹ bude potrebno. · Datoteke u koje svi mogu pisati, pogotovo datoteke sustava, mogu biti sigurnosna rupa ako kreker pristupi va¹em sustavu i izmijeni ih. Takoðer, direktoriji u koje svi mogu pisati opasni su jer omoguæuju krekeru da po ¾elji dodaje ili bri¹e datoteke. Za lociranje svih datoteka u koje svi mogu pisati koristite ovu naredbu: root# find / -perm -2 -print i provjerite za¹to svi mogu pisati u njih. Tokom normalnog rada bit æe nekoliko takvih datoteka, ukljuèujuæi neke iz /dev i simbolièke veze. · Datoteke bez vlasnika takoðer mogu pokazati da je uljez pristupio va¹em sustavu. Datoteke koje nemaju vlasnika ili ne pripadaju grupi mo¾ete naæi naredbom: root# find / -nouser -o -nogroup -print · Tra¾enje .rhosts datoteka takoðer bi trebalo biti dio va¹ih uobièajenih du¾nosti administratora jer one ne bi smjele biti dopu¹tene na va¹em sustavu. Zapamtite, kreker treba samo jedan nesiguran raèun da mo¾da dobije pristup va¹oj cijeloj mre¾i. Sve .rhosts datoteke na sustavu mo¾ete naæi ovom naredbom: root# find /home -name .rhosts -print · Na kraju, prije mijenjanja dozvola na bilo kojoj datoteci sustava, budite sigurni da znate ¹to radite. Nikad ne mijenjajte dozvole datoteci jer to izgleda kao lak naèin za rje¹avanje problema. Uvijek odluèite za¹to datoteka ima takve dozvole prije nego ¹to ih promijenite. 55..11.. PPoossttaavvlljjaannjjee uummaasskkaa Naredba umask mo¾e se koristiti za mijenjanje predefiniranih dozvola stvorenih datoteka. To je oktalni komplement ¾eljenog moda datoteke. Ako se datoteke stvaraju bez ikakve brige o njihovim dozvolama, korisnik bi mogao nenamjerno dati dozvole za èitanje ili pisanje nekome tko ih ne bi trebao imati. Tipièni umaskovi su 022, 027 i 077 koji je najrestriktivniji. Obièno se umask postavlja u /etc/profile tako da vrijedi za sve korisnike sustava. Na primjer, mo¾da imate red koji izgleda ovako: # Postavlja predefinirani umask korisnika umask 033 Provjerite da li je umask roota 077, ¹to æe iskljuèiti dozvole za èitanje, pisanje ili izvr¹avanje drugim korisnicima, osim ako ih izrièito ne promijenite preko chmod(1). Ako koristite Red Hat i njihov naèin stvaranja ID-ova korisnika i grupa (UUsseerr PPrriivvaattee GGrroouuppss -- osobne grupe korisnika), za umask je dovoljno koristiti 002, zahvaljujuæi èinjenici da je svaki korisnik u svojoj grupi. 55..22.. DDoozzvvoollee ddaattootteekkaa Va¾no je osigurati da va¹e datoteke sustava nisu otvorene editiranju korisnika i grupa koji takvu administraciju ne trebaju obavljati. UNIX razdvaja kontrolu pristupa datotekama i direktorijima po tri osobine: vlasnik, grupa i ostali. Vlasnik mo¾e biti samo jedan, grupa mo¾e imati bilo koliko èlanova, te svi ostali. Brzo obja¹njenje UNIX dozvola: VVllaassnnii¹¹ttvvoo:: Koji korisnik/ci i grupa/e ima/ju kontrolu nad postavljanjem dozvola za datoteku i njenog roditelja. DDoozzvvoollee:: Bitovi sposobni za namje¹tanje ili resetiranje koji omoguæuju odreðene vrste pristupa. Dozvole za direktorije mogu imati drukèije znaèenje od jednakih dozvola datoteka. ÈÈiittaannjjee:: · sposobnost pregledavanja sadr¾aja datoteke · sposobnost pregledavanja direktorija PPiissaannjjee:: · sposobnost dodavanja podataka ili mijenjanja datoteke · sposobnost brisanja i micanja datoteka u direktoriju IIzzvvrr¹¹aavvaannjjee:: · sposobnost pokretanja izvr¹ne datoteke ili skripte ljuske · sposobnost tra¾enja u direktoriju, uz dozvolu za èitanje SSaavvee TTeexxtt atribut: (za direktorije) Ljepljivi (ssttiicckkyy) bit kod direktorija takoðer ima drukèije znaèenje. Ako je postavljen na direktoriju, korisnik smije brisati samo datoteke koje posjeduje ili za koje ima izrièitu dozvolu za pisanje, èak i kada ima dozvolu za pisanje u direktorij. Ovo je napravljeno za direktorije poput /tmp u koje svi mogu pisati, ali gdje nije po¾eljno da bilo koji korisnik po volji bri¹e datoteke. Ljepljivi bit prikazuje se kao t u dugom ispisu direktorija. SSUUIIDD aattrriibbuutt:: ((zzaa ddaattootteekkee)) Ovo opisuje sseett--uusseerr--iidd (postavi ID korisnika) dozvole datoteke. Kada je SUID mod pristupa ukljuèen u dozvolama vlasnika i datoteka izvr¹na, procesi koji ju pokrenu dobivaju pristup resursima sustava koje ima vlasnik datoteke. To je uzrok mnogih buffer overflow rupa. SSGGIIDD aattrriibbuutt:: ((zzaa ddaattootteekkee)) Ako je postavljen u dozvolama grupe, taj bit kontrolira sseett-- ggrroouupp--iidd stanje datoteke. Pona¹a se kao i SUID, osim ¹to se odnosi na grupu. Da bi to imalo uèinka datoteka takoðer mora biti izvr¹na. SSGGIIDD aattrriibbuutt:: ((zzaa ddiirreekkttoorriijjee)) Ako SGID bit ukljuèite na direktoriju (preko chmod g+s direktorij), datoteke stvorene u tom direktoriju imat æe grupu koju ima direktorij. VVii vlasnik datoteke GGrruuppaa grupa kojoj pripadate SSvvii svi na sustavu, osim vlasnika i èlanova grupe Primjer na datoteci: -rw-r--r-- 1 kevin korisnici 114 Aug 28 1997 .zlogin 1. bit - direktorij? (ne) 2. bit - èitanje za vlasnika? (da, za kevina) 3. bit - pisanje za vlasnika? (da, za kevina) 4. bit - izvr¹avanje za vlasnika? (ne) 5. bit - èitanje za grupu? (da, za korisnici) 6. bit - pisanje za grupu? (ne) 7. bit - izvr¹avanje za grupu? (ne) 8. bit - èitanje za sve? (da, za sve) 9. bit - pisanje za sve? (ne) 10. bit - izvr¹avanje za sve? (ne) Evo primjera minimalnih polo¾aja dozvola koji su potrebni za opisane radnje. Mo¾da æete htjeti dati vi¹e dozvola, ali ovo pokazuje ¹to znaèe te minimalne dozvole: -r-------- Vlasniku dopu¹ta èitanje datoteke --w------- Vlasniku dopu¹ta mijenjanje i brisanje datoteke ---x------ Vlasnik mo¾e izvr¹iti ovaj program, ali ne skriptu ljuske, kojoj jo¹ treba dozvola za èitanje ---s------ Izvr¹it æe se uz UID vlasnika -------s-- Izvr¹it æe se uz GID vlasnika -rw------T Ne osvje¾ava se "vrijeme zadnje promjene". Obièno se koristi za swap datoteke ---t------ Bez uèinka (biv¹i ljepljivi bit). Primjer na direktoriju: drwxr-xr-x 1 kevin korisnici 114 Aug 28 1997 .zlogin 1. bit - direktorij? (da, s puno datoteka) 2. bit - èitanje za vlasnika? (da, za kevina) 3. bit - pisanje za vlasnika? (da, za kevina) 4. bit - izvr¹avanje za vlasnika? (da, za kevina) 5. bit - èitanje za grupu? (da, za korisnici) 6. bit - pisanje za grupu? (ne) 7. bit - izvr¹avanje za grupu? (da, za korisnici) 8. bit - èitanje za sve? (da, za sve) 9. bit - pisanje za sve? (ne) 10. bit - izvr¹avanje za sve? (ne, za sve) Evo primjera minimalnih polo¾aja dozvola koji su potrebni za opisane radnje. Mo¾da æete htjeti dati vi¹e dozvola, ali ovo pokazuje ¹to znaèe te minimalne dozvole: dr-------- Sadr¾aj se mo¾e pregledati, ali ne se atributi ne mogu proèitati d--x------ U direktorij se mo¾e uæi i koristiti u potpunim stazama za izvr¹avanje dr-x------ A sada atribute mo¾e èitati vlasnik d-wx------ Sad se datoteke mogu stvarati/brisati, èak i ako direktorij nije trenutni d------x-t Spreèava brisanje datoteka od strane drugih korisnika s moguæno¹æu pisanja. Koristi se za /tmp d---s--s-- Bez uèinka Konfiguracijske datoteke sustava (obièno u /etc obièno imaju dozvole 640 (-rw-r-----) i posjeduje ih root. Ovisno o sigurnosnim potrebama va¹eg sustava to mo¾ete i promijeniti. Nikad ne ostavljajte dozvolu za pisanje grupe ili sviju na datoteci sustava. Neke konfiguracijske datoteke, kao ¹to je /etc/shadow, trebao bi moæi èitati samo root, a direktoriji u /etc trebali bi biti barem nedostupni ostalima. SSUUIIDD sskkrriippttee lljjuusskkee SUID skripte ljuske ozbiljan su sigurnosni rizik i zato ih kernel neæe kao takve izvr¹avati. Ma koliko vi mislili da je ona sigurna, takvu skriptu mogu iskoristiti krekeri za dobivanje root pristupa. 55..33.. PPrroovvjjeerraa ccjjeelloovviittoossttii ppoommooææuu TTrriippwwiirreeaa Jo¹ jedan dobar naèin otkrivanja lokalnih (a i mre¾nih) napada na va¹ stroj je provjera cjelovitosti, kao ¹to je Tripwire. Tripwire izraèunava niz checksumova za sve va¹e va¾ne programe i konfiguracijske datoteke i usporeðuje ih s podacima o prija¹njim, dobro poznatim vrijednostima. Tako æe se pokazati sve promjene datoteka. Dobra je ideja instalirati Tripwire na disketu i zatim je fizièki za¹tititi od pisanja. Na taj naèin uljezi ne mogu petljati sa samim Tripwireom ili mijenjati podatke. Kad Tripwire jednom namjestite, dobro je pokretati ga kao dio va¹ih normalnih du¾nosti sigurnosnog administratora da vidite da li ne¹to promijenjeno. Èak mo¾ete dodati crontab zapis koji svake noæi pokreæe Tripwire s diskete i ¹alje vam rezultate. Ne¹to kao: # postavljamo adresu MAILTO=kevin # pokreæemo Tripwire 15 05 * * * root /usr/local/adm/tcheck/tripwire poslat æe vam izvje¹taj svakog jutra u 5:15. Tripwire je dar s neba za otkrivanje uljeza prije nego ¹to biste ih inaèe primjetili. Po¹to se na prosjeènom sustavu mijenja mnogo datoteka, morate pa¾ljivo razlikovati aktivnost krekera i svoj vlastiti rad. 55..44.. TTrroojjaannsskkii kkoonnjjii Trojanski konj dobio je ime po poznatoj prijevari iz Homerovog velikog knji¾evnog djela. Ideja je u tome da napravite program ili izvr¹nu datoteku koja izgleda sjajno i koju æe drugi ljudi nabaviti i pokrenuti kao root. Zatim mo¾ete kompromitirati njihov sustav dok ne paze. Dok oni misle da program koji su upravo skinuli radi jedno (a to mo¾e biti i istina), on takoðer poni¹tava osiguranje. Pazite koje programe instalirate na svoje raèunalo. Red Hat nudi MD5 provjeru i PGP potpise, RPM datoteke tako da se mo¾ete uvjeriti da instalirate pravu stvar. Druge distribucije imaju sliène metode. Nikad ne pokreæite program za kojeg nemate izvornog koda ili dobro poznatu izvr¹nu datoteku kao root! Malo æe napadaèa izvorni kod izlo¾iti oku javnosti. Iako to mo¾e biti dosta slo¾eno, provjerite da li izvorni kod programa nabavljate s izvornog mjesta distribucije. Ako æete ga pokretati kao root, provjerite sami ili netko kome vjerujete izvorni kod. 66.. SSiigguurrnnoosstt lloozziinnkkii ii eennkkrriippcciijjaa Jedna od najva¾nijih naèina osiguranja koji se koriste u dana¹nje vrijeme su lozinke. Va¾no je da vi i svi va¹i korisnici imate sigurne, nepogodive lozinke. Veæina novijih Linux distribucija dolaze s programom passwd koji ne dopu¹ta lozinke koje je lako pogoditi. Provjerite da li je va¹ passwd svje¾ i da li ima takve moguænosti. Dublje ula¾enje u temu enkripcije izvan je dosega ovog dokumenta, ali potreban je barem uvod. Enkripcija je vrlo korisna, mo¾da èak i potrebna u ovakvom dobu. Postoji mnogo naèina enkriptiranja podataka, svaki sa svojim osobinama. Veæina Unixa (ni Linux nije iznimka) za enkriptiranje lozinki primarno koriste jednosmjerni algoritam enkriptiranja zvan DES (DData EEncryption SStandard -- standard enkripcije podataka). Takve enkriptirane lozinke pohranjuju se u (obièno) /etc/passwd ili (neuobièajenije) /etc/shadow. Kada se poku¹ate logirati, ¹to god upi¹ete ponovo se enkriptira i usporeðuje s zapisom u datoteci u kojoj su va¹e lozinke. Ako se sla¾u, to mora biti ista lozinka i ulaz vam je dopu¹ten. Iako je DES dvosmjeran algoritam enkripcije (mo¾ete enkriptirati i dekriptirati poruku ako imate prave kljuèeve) varijanta koju veæina Unixa koristi jednosmjerna je. Dakle, ne bi trebalo biti moguæe obrnuti smjer enkripcije i dobiti lozinku iz sadr¾aja /etc/passwd (odnosno /etc/shadow). Napadi grubom silom kao ¹to je Crack ili John the Ripper (v. dolje) èesto pogode lozinke ako one nisu dovoljno sluèajne. PAM moduli (v. dolje) omoguæavaju kori¹tenje razlièitog naèina enkripcije lozinki (MD5 ili slièno). O izabiranju dobre lozinke mo¾ete proèitati na <http://consult.cern.ch/writeup/security/security_3.html>. 66..11.. PPGGPP ii kkrriippttooggrraaffiijjaa jjaavvnniihh kklljjuuèèeevvaa Kriptografija javnih kljuèeva, koju koristi i PGP, koristi jedan kljuè za enkripciju i jedan za dekripciju. Tradicionalno, kriptografija koristi za enkripciju isti kljuè kao i za dekripciju. Taj "osobni kljuè" mora biti poznat obje strane i na neki naèin sigurno prenesen od jedne do druge. Kriptografija javnih kljuèeva poni¹tava potrebu sigurnog preno¹enja kljuèa koji se koristi za enkripciju pomoæu kori¹tenja dva odvojena kljuèa, javnog kljuèa i osobnog kljuèa. Javni kljuè svake osobe dostupan je svakome za enkripciju, no osobni kljuè ima samo ta osoba kako bi dekriptirala poruke ¹ifrirane toènim javnim kljuèem. I kriptografija javnih i kriptografija osobnih kljuèeva imaju svoje prednosti -- o tim razlikama govori se u RRSSAA CCrryyppttooggrraapphhyy FFAAQQ, navedenom na kraju ovog dijela. PGP (PPretty GGood PPrivacy -- prilièno dobra privatnost) na Linuxu je dobro podr¾an. Verzije 2.6.2 i 5.0 dobro funkcioniraju. Za dobar uvod u PGP i kako ga koristiti pogledajte PPGGPP FFAAQQ, <http://www.pgp.com/service/export/faq/55faq.cgi>. Pazite da uzmete verziju koja odgovara va¹oj zemlji, jer se prema ogranièenjima izvoza iz SAD-a jaka enkripcija smatra vojnim oru¾jem i njeno preno¹enje u elektronskom obliku izvan zemlje je zabranjeno. Tu je i vodiè korak-po-korak u konfiguriranju PGP na Linuxu, koji se mo¾e naæi na <http://mercury.chem.pitt.edu/~angel/LinuxFocus/English/November1997/article7.html>. Napisan je za meðunarodnu verziju PGP-a, ali lako se primjeni na verziju za SAD. Mo¾da æe vam trebati i zakrpa za neke od najnovijih Linux verzija koja se mo¾e naæi na <ftp://sunsite.unc.edu/pub/Linux/apps/crypto>. Vi¹e informacija o kriptografiji mo¾e se naæi u RRSSAA CCrryyppttooggrraapphhyy FFAAQQ na <http://www.rsa.com/rsalabs/newfaq/>. Tu æete naæi informacije o stvarima kao ¹to je "Diffie-Hellman", "kriptografija javnih kljuèeva", "digitalne potvrde", itd. 66..22.. SSSSLL,, SS--HHTTTTPP,, HHTTTTPPSS ii SS//MMIIMMEE Korisnike èesto zanimaju razlike izmeðu raznih sigurnosnih i enkripcijskih protokola, te njihovo kori¹tenje. Iako ovo nije dokument o enkripciji, bilo bi dobro da razjasnimo ¹to je ¹to i gdje naæi vi¹e informacija. SSSSLL:: (SSecure SSockets LLayer) metoda je enkripcije koju je razvio Netscape za sigurnost preko Interneta. Podr¾ava nekoliko razlièitih enkripcijskih protokola i omoguæava autentifikaciju klijenta i poslu¾itelja. SSL radi na razini prijenosa stvarajuæi sigurni kanal podataka i tako mo¾e transparentno enkriptirati mnoge vrste podataka. To æete najèe¹æe vidjeti pregledavajuæi u Communicatoru siguran dokument sa sigurnog poslu¾itelja, a slu¾i kao osnova sigurnih komunikacija pomoæu Communicatora, kao i mnoge druge enkripcije podataka Netscape Communicationsa. Vi¹e informacija mo¾e se naæi na <http://www.consensus.com/security/ssl-talk-faq.html>. Informacije o drugim Netscapeovim sigurnosnim implementacijama i dobra poèetna toèka za ove protokole nalazi se na <http://home.netscape.com/info/security-doc.html>. SS--HHTTTTPP:: S-HTTP je jo¹ jedan protokol koji omoguæava sigurne usluge preko Interneta. Napravljen je da pru¾i povjerljivost, provjerenost, cjelovitost i nezamjenjivost istovremeno podr¾avajuæi mehanizme za rad s vi¹e kljuèeva i kriptografske algoritme kroz pregovaranje opcija izmeðu strana umije¹anih u svaku transakciju. S-HTTP je ogranièen na poseban program koji ga implementira i svaku poruku posebno enkriptira. (iz RRSSAA CCrryyppttooggrraapphhyy FFAAQQ, str. 138) SS//MMIIMMEE - S/MIME, odnosno SSecure MMultipurpose IInternet MMail EExtension, enkripcijski je standard koji se koristi za enkriptiranje elektronske po¹te i drugih tipova poruka preko Interneta. To je otvoren standard kojeg razvija RSA, pa se nadamo da æemo ga uskoro vidjeti i na Linuxu. Vi¹e informacija o S/MIME-u mo¾e se naæi na <http://home.netscape.com/assist/security/smime/overview.html>. 66..33.. LLiinnuuxx xx--kkeerrnneell ---- iimmpplleemmeennttaacciijjaa IIPPSSEECC--aa Uz CIPE i druge oblike enkripcije podataka, za Linux postoji i implementacija IPSEC-a. IPSEC je rezultat napora IETF-a u stvaranju kriptografski sigurnih komunikacija na razini IP mre¾a, koji takoðer pru¾a autentifikaciju, cjelovitost, kontrolu pristupa i povjerljivost. Informacije o IPSEC-u i Internet nacrtu mogu se naæi na <http://www.ietf.org/html.charters/ipsec-charter.html>. Tamo su i veze na druge protokole koji rade s kljuèevima, te IPSEC mailing lista i arhive. Linux implementacija koja se razvija na Sveuèili¹tu Arizone koristi x- kernel, objektno bazirani okvir za implementiranje mre¾nih protokola, a mo¾e se naæi na <http://www.cs.arizona.edu/xkernel/hpcc- blue/linux.html>. Najjednostavnije reèeno, x-kernel je naèin preno¹enja poruka na razini kernela, ¹to olak¹ava implementaciju. Kao i drugi oblici kriptografije, ne distribuira se zajedno s kernelom zbog ogranièenja u izvozu. 66..44.. SSSSHH,, sstteellnneett SSH (SSecure SShhell -- sigurna ljuska) i stelnet su programi koji vam omoguæavaju rad na udaljenim sustavima kroz enkriptiranu vezu. SSH je skup programa koji se koriste kao sigurna zamjena za rlogin, rsh i rcp. Za enkriptiranje izmeðu dva raèunala koristi kriptografiju javnih kljuèeva, kao i za provjeru korisnika. Mo¾e se koristiti za sigurno logiranje na udaljeno raèunalo ili kopiranje podataka izmeðu raèunala ujedno spreèavajuæi napade izmeðu (sseessssiioonn hhiijjaacckkiinngg -- otimanje sesije) i DNS ssppooooffiinngg (varanje). Sa¾imat æe va¹e veze i osiguravati X11 veze izmeðu raèunala. SSH-ove WWW stranice su <http://www.cs.hut.fi/ssh/>. SSH mo¾ete koristiti i sa svoje Windows radne stanice na svoj Linux SSH poslu¾itelj. Ima nekoliko besplatnih Windows implementacija klijenta, ukljuèujuæi onu na <http://guardian.htu.tuwien.ac.at/therapy/ssh/>, kao i komercijalnu implementaciju DataFellowsa na <http://www.datafellows.com>. SSLeay je besplatna implementacija Netscapeovog Secure Sockets Layer protokola, kao i nekoliko aplikacija, kao ¹to je Secure telnet, modul za Apache, nekoliko baza podataka, te nekoliko algoritama ukljuèujuæi DES, IDEA i Blowfish. Koristeæi taj library napravljena je sigurna zamjena za telnet koja enkriptira telnet vezu. Za razliku od SSH-a, stelnet koristi SSL, SSecure SSockets LLayer, koji je razvio Netscape. Secure telnet i Secure FTP mo¾ete naæi poèev¹i od SSSSLLeeaayy FFAAQQ, dostupnog na <http://www.psy.uq.oz.au/~ftp/Crypto/>. 66..55.. PPAAMM -- PPlluuggggaabbllee AAuutthheennttiiccaattiioonn MMoodduulleess Novije verzije distribucije Red Hat Linux isporuèuju se s jedinstvenom shemom autentifikacije zvanom "PAM". PAM vam omoguæava mijenjanje metoda i potreba autentificiranja u letu te enkapsuliranje svih lokalnih autentifikacijskih metoda bez ponovnog kompajliranja ijednog programa. Konfiguracija PAM-a je izvan dosega ovog dokumenta, ali potrudite se i pogledajte WWW stranice PAM-a za vi¹e informacija. <http://www.kernel.org/pub/linux/libs/pam/index.html> Samo neke od stvari koje mo¾ete s PAM-om: · Koristiti ne¹to ¹to nije DES za enkripciju svojih lozinki (¹to ih èini te¾im za probijanje grubom silom). · Postaviti ogranièenja kori¹tenja za sve svoje korisnike tako da ne mogu izvoditi ddeenniiaall ooff sseerrvviiccee napade (broj procesa, kolièina memorije, itd.). · Ukljuèiti shadow lozinke u letu. · Odreðenim korisnicima dozvoliti da se logiraju samo u odreðeno vrijeme s odreðenog mjesta. Samo nekoliko sati nakon instaliranja i konfiguriranja svog sustava mo¾ete sprijeèiti mnoge napade prije nego ¹to se i dogode. Na primjer, koristite PAM za iskljuèivanje kori¹tenja .rhosts datoteka na sustavu u home direktorijima korisnika dodavanjem ovih redova /etc/pam.d/login: # # Korisnicima onemoguæavamo rsh/rlogin/rexec # login auth required pam_rhosts_auth.so no_rhosts 66..66.. KKrriippttooggrraaffsskkaa IIPP eennkkaappssuullaacciijjaa ((CCIIPPEE)) Najva¾niji cilj ovog softvera je pru¾iti moguænost sigurne (od prislu¹kivanja, kao i analiza prometa, te ubacivanja krivotvorenih poruka) veze podmre¾a preko nesigurne paketne mre¾e kao ¹to je Internet. CIPE (CCryptographic IIPP EEncapsulation) podatke enkriptira na mre¾noj razini. Paketi koji putuju izmeðu raèunala enkriptirani su. Enkripcija se izvodi blizu same podr¹ke koja ¹alje i prima pakete. To je razlièito od SSH-a koji podatke enkriptira na vezi, na razini socketa. Logièka veza izmeðu programa na razlièitim raèunalima enkriptirana je. CIPE se mo¾e koristiti za ttuunnnneelllliinngg kako bi stvorili VViirrttuuaall PPrriivvaattee NNeettwwoorrkk (virtualnu privatnu mre¾u). Enkripcija na niskom nivou ima prednost ¹to mo¾e transparentno raditi izmeðu dvije mre¾e spojene u VPN, bez ikakvog mijenjanja aplikacija. Sa¾eto iz dokumentacije CIPE-a: IPSEC standardi definiraju skup protokola koje se mo¾e koristiti (meðu ostalim) za izgradnju enkriptiranih VPM-ova. Meðutim, IPSEC je relativno te¾ak i slo¾en skup protokola s mnogo opcija, potpune implementacije jo¹ uvijek se rijetko koriste, a neka pitanja (kao ¹to je rad s kljuèevima) jo¹ nisu do kraja rije¹ena. CIPE koristi jednostavniji pristup u kojem se mnoge stvari (kao ¹to je izbor algoritma enkripcije) mogu promijeniti samo pri instalaciji. To ogranièava prilagodljivost, ali omoguæava jednostavnu (i zato djelotvornu, u kojoj je lako pronaæi gre¹ke) implementaciju. Vi¹e informacija mo¾e se naæi na <http://www.inka.de/~bigred/devel/cipe.html>. Kao i drugi oblici kriptografije, ne distribuira se s kernelom zbog ogranièenja u izvozu. 66..77.. KKeerrbbeerrooss Kerberos je sustav autentifikacije koji je razvio Athena projekt na MIT-u. Kada se korisnik logira, Kerberos ga autentificira (preko lozinke) i daje mu naèin dokazivanja identiteta drugim poslu¾iteljima i raèunalima razbacanim na mre¾i. Ovu autentifikacija èesto koriste programi kao ¹to je rlogin kako bi korisniku omoguæili logiranje na druga raèunala bez lozinke (umjesto datoteke .rhosts). Autentifikaciju takoðer koristi sustav po¹te kako bi se zajamèila isporuka po¹te pravoj osobi, kao i istinit identitet po¹iljatelja. Ukupni uèinak instaliranja Kerberosa i brojnim drugih programa koji s njime dolaze je gotovo potpuna eliminacija moguænosti da korisnik prevari sustav da je netko drugi. Na¾alost, instalacija Kerberosa vrlo je temeljita i zahtijeva promjene ili zamjene mnogih standardnih programa. Vi¹e informacija o Kerberosu mo¾e se naæi na <http://www.veritas.com/common/f/97042301.htm>, a izvorni kod na <http://nii.isi.edu/info/kerberos/>. (iz SStteeiinn,, JJeennnniiffeerr GG..,, CClliiffffoorrdd NNeeuummaann,, aanndd JJeeffffrreeyy LL.. SScchhiilllleerr.. ""KKeerrbbeerrooss:: AAnn AAuutthheennttiiccaattiioonn SSeerrvviiccee ffoorr OOppeenn NNeettwwoorrkk SSyysstteemmss.."" UUSSEENNIIXX CCoonnffeerreennccee PPrroocceeeeddiinnggss,, DDaallllaass,, TTeexxaass,, zziimmaa 11999988..) 66..88.. SShhaaddooww lloozziinnkkee Shadow lozinke naèin su èuvanja va¹ih enkriptiranih lozinki nedostupnim obiènom korisniku. Obièno su te enkriptirane lozinke pohranjene u datoteci /etc/passwd gdje ih svi mogu proèitati. Zatim mogu pokrenuti programe za pogaðanje lozinke i poku¹ati ju saznati. Shadow lozinke te informacije pohranjuju u datoteku /etc/shadow koju mogu èitati samo privilegirani korisnici. Da bi shadow lozinke funkcionirale, svi va¹i programi kojima treba pristup informacijama o lozinci moraju se ponovo kompajlirati kako bi ih podr¾avali. PAM (veæ spomenut) vam takoðer omoguæava da samo ukljuèite shadow modul i ne zahtijeva ponovno kompajliranje izvr¹nih datoteka. Ako je to potrebno, za daljne informacije pogledajte SShhaaddooww PPaasssswwoorrdd HHOOWWTTOO. Dostupan je na <http://sunsite.unc.edu/LDP/HOWTO/Shadow-Password-HOWTO.html>. Sada je relativno zastario i nije potreban distribucijama koje podr¾avaju PAM. 66..99.. CCrraacckk ii JJoohhnn tthhee RRiippppeerr Ako iz nekog razloga va¹ passwd program ne sili te¹ko pogodive lozinke, mo¾da æete htjeti pokrenuti program za razbijanje lozinki i provjeriti da li su lozinke va¹ih korisnika sigurne. Programi za razbijanje lozinki zasnovani su na jednostavnoj ideji. Isprobaju svaku rijeè u rjeèniku i zatim njihove varijacije. Svaku enkriptiraju i provjeravaju da li se sla¾e s va¹om enkriptiranom lozinkom. Ako da, unutra su. Vi¹e ih je u divljini... Dva najzapa¾enija su Crack i John the Ripper <http://www.false.com/security/john/index.html>. Zauzet æe vam dosta procesorskog vremena, ali bi vam trebali reæi da li bi napadaè mogao uæi koristeæi ih, ako ih pokrenete prije njega i obavijestite korisnike sa slabim lozinkama. Primjetite da bi napadaè prije toga morao iskoristiti neku drugu rupu da bi dobio va¹u passwd (Unixov /etc/passwd) datoteku, ali one su èe¹æe nego ¹to mislite. 66..1100.. CCFFSS ii TTCCFFSS CFS (Cryptographic File System -- kriptografski datoteèni sustav) je metoda enkriptiranja cijelog datoteènog sustava koji korisnicima omoguæava pohranjivanje enkriptiranih datoteka. Koristi NFS poslu¾itelj koji radi na lokalnom stroju. RPM-ovi se nalaze na <http://www.replay.com/redhat/>, a vi¹e informacija o tome kako to sve radi na <ftp://ftp.research.att.com/dist/mab/>. TCFS (Transparent Cryptographic File System -- transparentni...) pobolj¹ava CFS, dodavajuæi vi¹e integracije s datoteènim sustavom, tako da je proziran korisnicima koji ga koriste. Vi¹e informacija na <http://edu-gw.dia.unisa.it/tcfs/>. 66..1111.. XX1111,, SSVVGGAA ii ssiigguurrnnoosstt pprriikkaazzaa 66..1111..11.. XX1111 Va¾no je da osigurate svoj grafièki prikaz kako bi sprijeèili napadaèe u stvarima kao ¹to je: kraða va¹ih lozinki dok ih tipkate bez da ste toga svjesni, èitanje dokumenata ili informacija koje èitate na svom ekranu ili èak kori¹tenje rupe za pristup nadkorisnika. Pokretanje X aplikacija preko mre¾e takoðer mo¾e biti igranje s vatrom koje omoguæuje nju¹kalima da gledaju cijelu va¹u interakciju s udaljenim sustavom. X ima vi¹e mehanizama za kontrolu pristupa. Najjednostavniji od njih zasniva se na imenu raèunala. xhost mo¾ete koristiti za odreðivanje raèunala kojima je dozvoljen pristup va¹em prikazu. To uopæe nije sigurno. Ako netko ima pristup va¹em raèunalu mo¾e koristiti xhost + svoje raèunalo i lako uæi. Takoðer, ako dopu¹tate pristup neprovjerenom stroju, svatko mo¾e gledati va¹ prikaz. Ako koristite xdm (XX DDisplay MManager) za logiranje, imate puno bolju metodu pristupa: MIT-MAGIC-COOKIE-1. Generira se 128-bitni kolaèiæ i sprema u va¹u .Xauthority datoteku. Ako ¾elite omoguæiti pristup svom prikazu s drugog raèunala, koristite naredbu xauth i informacije u va¹oj .Xauthority datoteci kako bi se samo toj vezi dozvolio pristup. Proèitajte X-na-daljinu mini-KAKO, dostupan na <http://meta.mioc.hr/X-na-daljinu.html>. Mo¾ete koristiti i ssh (v. ssh, gore) za sigurne X veze. To ima prednost transparentnosti krajnjem korisniku, a znaèi da mre¾om kolaju samo enkriptirani podaci. Za vi¹e informacija o sigurnosti u X-u pogledajte man stranicu Xauthority. Najsigurnije je koristiti xdm za logiranje na svoju konzolu, a zatim ssh za pokretanje X programa s udaljenih raèunala. 66..1111..22.. SSVVGGAA SVGAlib programi obièno su SUID-root kako bi mogli pristupiti grafièkoj kartici va¹eg Linux sustava. To ih èini vrlo opasnima. Ako se sru¹e, obièno morate ponovo dignuti raèunalo da bi dobili koristivu konzolu. Provjerite da su SVGA programi koje imate autentièni i da im se mo¾e barem pone¹to vjerovati. Jo¹ bolje, nemojte ih uopæe imati. 66..1111..33.. GGGGII Linux GGI (GGeneric GGraphics IInterface -- projekt opæeg grafièkog suèelja) projekt poku¹ava rje¹iti nekoliko problema grafièkih suèelja na Linuxu. GGI æe malen dio video koda pomaknuti u kernel, a zatim kontrolirati pristup grafièkom sustavu. To znaèi da æe GGI moæi bilo kada dovesti va¹u konzolu u dobro stanje. Takoðer æe omoguæiti sigurne kljuèeve za upozorenje da na va¹oj konzoli ne rade trojanski konji koji se predstavljaju kao login. <http://synergy.caltech.edu/~ggi/> 77.. SSiigguurrnnoosstt kkeerrnneellaa 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/>. 77..11.. OOppcciijjee pprrii kkoommppaajjlliirraannjjuu kkeerrnneellaa IIPP:: DDrroopp ssoouurrccee rroouutteedd ffrraammeess ((CCOONNFFIIGG__IIPP__NNOOSSRR)) 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. IIPP:: FFiirreewwaalllliinngg ((CCOONNFFIIGG__IIPP__FFIIRREEWWAALLLL)) 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. IIPP:: ffoorrwwaarrddiinngg//ggaatteewwaayyiinngg ((CCOONNFFIIGG__IIPP__FFOORRWWAARRDD)) 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. IIPP:: ffiirreewwaallll ppaacckkeett llooggggiinngg ((CCOONNFFIIGG__IIPP__FFIIRREEWWAALLLL__VVEERRBBOOSSEE)) Ova opcija pru¾a informacije o paketima koje je va¹ firewall primio, kao ¹to je po¹iljatelj, primatelj, port, itd. IIPP:: aallwwaayyss ddeeffrraaggmmeenntt ((CCOONNFFIIGG__IIPP__AALLWWAAYYSS__DDEEFFRRAAGG)) 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. IIPP:: ssyynn ccooookkiieess ((CCOONNFFIIGG__SSYYNN__CCOOOOKKIIEESS)) SYN napad je DoS (DDenial oof SService -- 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. PPaacckkeett SSiiggnnaattuurreess ((CCOONNFFIIGG__NNCCPPFFSS__PPAACCKKEETT__SSIIGGNNIINNGG)) 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. IIPP:: FFiirreewwaallll ppaacckkeett nneettlliinnkk ddeevviiccee ((CCOONNFFIIGG__IIPP__FFIIRREEWWAALLLL__NNEETTLLIINNKK)) 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. 77..22.. KKeerrnneell uurreeððaajjii 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. 88.. SSiigguurrnnoosstt mmrree¾¾ee Sigurnost mre¾e postaje sve vi¹e va¾na jer ljudi na njoj provode sve vi¹e vremena. Kompromitiranje sigurnosti mre¾e èesto je puno lak¹e nego kompromitiranje lokalne ili fizièke sigurnosti, te puno èe¹æe. Ima vi¹e dobrih alata koji æe vam pomoæi u osiguravanju mre¾e, a sve vi¹e ih se isporuèuje s Linux distribucijama. 88..11.. SSnniiffeerrii ppaakkeettaa Jedan od najèe¹æih naèina na koji uljez dobiva pristup vi¹e raèunala na va¹oj mre¾i je pokretanjem snifera paketa na veæ osvojenom raèunalu. Taj "snifer" samo na Ethernet portu slu¹a stvari kao ¹to je "Password", "Login" i "su" u toku paketa i zatim promet koji slijedi zapisuje. Na taj naèin napadaè dobiva lozinke za sustave u koje nije ni poku¹ao provaliti. Lozinke u èistom tekstu osobito su ranjive na takav napad. PRIMJER: raèunalo A je kompromitirano. Napadaè instalira snifer. Snifer zapazi administratora koji se logira u raèunalo B s raèunala C. Dobiva osobnu lozinku administratora dok se logira na B. Zatim administrator pokreæe su da bi rije¹io neki problem. Sada napadaè ima lozinku za raèunalo B. Napon toga administrator nekome dopu¹ta da se s njegovog raèuna logira na raèunalo Z na nekoj drugoj mre¾i. Sada napadaè ima login/lozinku za raèunalo Z. U dana¹nja vremena napadaè vi¹e ne mora ni kompromitirati raèunalo da bi to izveo, mo¾e jednostavno donijeti i laptop ili PC u zgradu i prikvaèiti se na va¹u mre¾u. Kori¹tenje ssh ili drugih metoda enkriptiranja lozinki onemoguæava ovaj napad. Stvari kao ¹to je APOP za POP raèune takoðer ga spreèavaju. (Obièni POP logini vrlo su ranjivi na njega, kao i sve ostalo ¹to preko veze ¹alje èitljive lozinke.) 88..22.. UUsslluuggee ssuussttaavvaa ii ttccpp__wwrraappppeerrii Èim svoj Linux sustav stavite na _b_i_l_o _k_o_j_u mre¾u, prvo morate pogledati koje usluge trebate ponuditi. Usluge koje ne morate nuditi treba iskljuèiti tako da se brinete o jednoj stvari manje, a napadaèi imaju manje mjesta za iskori¹tavanje rupa. Pod Linuxom ima vi¹e naèina za iskljuèivanje usluga. Mo¾ete pogledati svoju /etc/inetd.conf datoteku i vidjeti koje usluge nudi inetd. Iskljuèite one nepotrebne komentiranjem (stavite # na poèetku reda), a zatim svom inetd procesu po¹aljite SIGHUP. Takoðer mo¾ete obrisati (ili zakomentirati) usluge u svojoj /etc/services datoteci. To znaèi da lokalni klijenti takoðer neæe moæi naæi uslugu (tj., ako maknete FTP i poku¹ate FTP-ati drugo raèunalo sa svoga, dobit æete poruku "usluga nepoznata"). Obièno nema potrebe brisati usluge jer time ne dobivate nikakvo dodatno osiguranje. Ako lokalni korisnik ¾eli koristiti FTP èak i ako ste ga zakomentirali, mogu samo reæi svom klijentu da koristi standardni FTP port i raditi potpuno normalno. Neke od usluga koje æete ¾eljeti ostaviti su: · FTP · telnet · mail, kao ¹to je POP3 ili IMAP · identd · time (vrijeme) Ako znate da odreðeni paket uopæe neæete koristiti, mo¾ete ga i u potpunosti obrisati. rpm -e na distribuciji Red Hat obrisat æe cijeli paket. Na Debianu dpkg vjerojatno obavlja isti posao. Zatim, stvarno æete ¾eljeti iskljuèiti rsh/rlogin/rcp programe, kao i pokretanje logina (koristi ga rlogin), shella (koristi ga rcp) i execa (koristi ga rsh) u /etc/inetd.conf. Ti su protokoli iznimno nesigurni i bili su uzrok mnogih rupa. Trebate provjeriti svoj /etc/rc.d/rcB.d, gdje je B run level va¹eg sustava da vidite da li se u tom direktoriju pokreæu poslu¾itelji koji nisu potrebni. Datoteke u /etc/rc.d/rcB.d zapravo su simbolièke veze na direktorij /etc/rc.d/init.d. Ako preimenujete datoteku u direktoriju init.d, prestat æe vrijediti sve simbolièke veze iz /etc/rc.d/rcB.d. Ako ¾elite iskljuèiti uslugu samo za odreðeni run level, odgovarajuæoj datoteci u ime stavite malo s umjesto velikog S, kao ¹to je S45dhcpd. Ako imate rc datoteke u BSD stilu, programe koji vam nisu potrebni potra¾ite u /etc/rc*. Veæina distribucija Linuxa isporuèuje se s tcp_wrapperi, koji "zamataju" sve va¹e TCP usluge. inetd poziva tcp_wrapper (tcpd) umjesto pravog poslu¾itelja. Zatim tcpd provjerava raèunalo koje zahtijeva uslugu i poziva pravi poslu¾itelj ili odbija pristup tome raèunalu. tcpd vam omoguæava ogranièavanje pristupa va¹im TCP uslugama. Trebali biste napraviti /etc/hosts.allow i dodati samo ona raèunala kojima je potreban pristup uslugama va¹eg stroja. Ako ste kuæni korisnik s modemskom vezom, predla¾emo vam odbijanje pristupa svima. tcpd takoðer logira neuspje¹ne poku¹aje pristupa uslugama, tako da saznate kad ste pod napadom. Ako dodate nove usluge, konfigurirajte ih tako da za TCP koriste tcp_wrapper. Na primjer, obièni korisnik s modemskom vezom mo¾e sprijeèiti spajanje drugih na njegov stroj zadr¾avajuæi pritom moguænost skidanja po¹te i uspostavljanja veza na Internet. Ako to ¾elite, mo¾ete dodati ove redove svojem /etc/hosts.allow: ALL: 127 I, naravno, /etc/hosts.deny bi ovako izgledao: ALL: ALL ¹to æe sprijeèiti vanjska spajanja na va¹e raèunalo, ali ostaviti moguænost unutarnjeg povezivanja na poslu¾itelje na Internetu. 88..33.. PPrroovvjjeerriittee ssvvoojjee DDNNSS--oovvee Odr¾avanje DNS informacija o svim strojevima na va¹oj mre¾i svje¾im mo¾e pomoæi u poveæavanju sigurnosti. U sluèaju povezivanja neodobrenog stroja na va¹u mre¾u lako æete ga prepoznati po nedostatku DNS zapisa. Mnoge se usluge mogu konfigurirati da ne prihvaæaju veze s raèunala koje nemaju valjane DNS zapise. 88..44.. iiddeennttdd identd je malen program koji obièno pokreæe inetd. On vodi raèuna o tome koji korisnik koristi koju TCP uslugu, a zatim to prijavljuje onima koji to tra¾e. Mnogi ljudi ne razumiju korisnost identda, pa ga iskljuèuju ili blokiraju sve vanjske zahtijeve za njega. identd nije tu da pomogne udaljenim raèunalima. Nema naèina na koji mo¾ete saznati da li su podaci koje ste dobili od udaljenog identda toèni ili ne. U identd zahtjevima nema autentifikacije. Za¹to bi ga onda pokrenuli? Jer poma¾e _v_a_m_a i jo¹ je jedna ispomoæ u praæenju. Ako va¹ identd nije kompromitiran, onda znate da udaljenim raèunalima govori korisnièko ime ili UID ljudi koji koriste TCP usluge. Ako se administrator udaljenog stroja obrati vama i ka¾e da je taj i taj korisnik poku¹avao upasti na njihov stroj, lako mo¾ete poduzeti mjere protiv tog korisnika. Ako nemate identd, morat æete proæi kroz puno puno logova, saznati tko je bio logiran u to vrijeme, te opæenito izgubiti puno vi¹e vremena za pronala¾enje korisnika. identd koji se isporuèuje s veæinom distribucija konfigurabilniji je nego ¹to mnogi misle. Za odreðene korisnike ga mo¾ete ugasiti (mogu napraviti datoteku .noidentd), mo¾ete bilje¾iti sve identd zahtjeve (preporuèam), èak ga mo¾ete natjerati da vrati UID umjesto korisnièkog imena, ili èak NO-USER. 88..55.. SSAATTAANN,, IISSSS ii ddrruuggii mmrree¾¾nnii sskkeenneerrii Postoji vi¹e raznih softverskih paketa za skeniranje strojeva i mre¾a na osnovu portova i usluga. SATAN i ISS dva su poznatija. Oni se pove¾u s ciljnim raèunalom (ili svim takvim na mre¾i) na svim moguæim portovima, poku¹avajuæi saznati koje se tamo nude usluge. Na osnovu tih informacija mo¾ete naæi raèunalo ranjivo na odreðenu rupu na poslu¾itelju. SATAN (SSecurity AAdministrator's TTool for AAnalyzing NNetworks -- alat sigurnosnog administratora za analizu mre¾a) je port skener s WWW suèeljem. Mo¾e se konfigurirati za laganu, srednju ili temeljitu provjeru na raèunalu ili mre¾i raèunala. Pametno je nabaviti SATAN i skenirati svoje raèunalo ili mre¾u i popraviti pronaðene probleme. Budite sigurni da ste SATAN dobili sa sunsitea ili uglednog FTP ili WWW poslu¾itelja. Preko mre¾e se distribuirala trojanska kopija SATAN- a. <http://www.trouble.org/~zen/satan/satan.html> ISS (IInternet SSecurity SScanner) je jo¹ jedan port skener. Br¾i je od SATAN-a i zbog toga bolji za veæe mre¾e. Meðutim, SATAN pru¾a vi¹e detalja. Abacus-Sentry je komercijalni port skener s www.psionic.com. Pogledajte njegovu WWW stranicu za vi¹e informacija: <http://www.psionic.com>. OOttkkrriivvaannjjee ppoorrtt sskkeenneerraa Postoje neki alati koji æe vas uzbuniti tokom testiranja SATAN- om, ISS-om ili drugim programima za skeniranje. No, slobodno kori¹tenje tcp_wrappera i redovito provjeravanje logova dat æe isti rezultat. Èak i pri najslabijoj jaèini SATAN ostavlja tragove u log datotekama na standardnom Red Hat sustavu. 88..66.. sseennddmmaaiill,, qqmmaaiill ii MMTTAA--oovvii Jedna od najva¾nijih usluga koju mo¾ete ponuditi je poslu¾itelj po¹te. Na¾alost, to je i jedna od najranjivijih, zbog broja zadataka koje obavlja i privilegija koje obièno treba. Ako koristite sendmail, vrlo je va¾no odr¾avati verziju svje¾om. sendmail ima dugu, dugu povijest sigurnosnih rupa. Uvijek budite sigurni da imate najnoviju verziju. <http://www.sendmail.org/> Ako vam je dosta nadograðivanja sendmaila svaki tjedan, mo¾ete se prebaciti na qmail. qmail je ispoèetka oblikovan s pa¾njom na sigurnost. Brz je, stabilan i siguran. <http://www.qmail.org> 88..77.. DDeenniiaall ooff SSeerrvviiccee ((ppoorriiccaannjjee uusslluuggaa)) nnaappaaddii Kod Denial of Service napada napadaè poku¹ava neki resurs zauzeti toliko da on nije u stanju odgovarati na dobre zahtjeve, odnosno uskratiti dobrim korisnicima pristup va¹em stroju. Broj takvih napada u zadnjih je nekoliko godina vrlo porastao. Neki od najpopularnijih i najnovijih navedeni su dolje. Meðutim, novi se stalno pojavljuju, pa je ovo samo nekoliko primjera. Za svje¾ije informacije èitajte Linux liste o sigurnosti i bugtraq listu i arhive. SSYYNN ffllooooddiinngg SYN flooding (SYN "poplava") je mre¾ni DoS napad. Iskori¹tava "kru¾enje" u naèinu na koji se stvaraju TCP veze. Noviji Linux kerneli (2.0.30 i vi¹e) imaju nekoliko konfigurabilnih opcija za spreèavanje SYN flood napada koji ljudima onemoguæavaju pristup va¹em raèunalu ili uslugama. Za pravilnu za¹titu u kernelu pogledajte dio o sigurnosti kernela. PPeennttiiuumm FF0000FF ggrree¹¹kkaa Nedavno je otkriveno da niz asembliranih naredbi poslan pravom Intel Pentium procesuru resetira raèunalo. To vrijedi za svaki stroj s Pentium procesorom (ne klonovima, niti Pentiumom Pro ili PII), bez obzira na koji operacijski sustav koristi. Linux kernel 2.0.32 i bolji sadr¾e zaobilaznicu za ovu gre¹ku koja spreèava ru¹enje raèunala. Kernel 2.0.33 ima bolju verziju rje¹enja i preporuèa se prije 2.0.32. Ako radite na Pentiumu, odmah se nadogradite! PPiinngg ffllooooddiinngg Ping flooding je jednostavan DoS napad grubom silom. Napadaè va¹em raèunalu ¹alje "poplavu" ICMP paketa. Ako to rade s raèunala s boljom propusno¹æu mre¾e od va¹eg, va¹e neæe moæi poslati ni¹ta na mre¾u. Varijacija ovog napada, zvana ssmmuurrffiinngg va¹em stroju ¹alje ICMP pakete s povratnom adresom _v_a_¹_e_g stroja, tako ih je te¾e otkriti. Vi¹e informacija o smurf napadu mo¾ete naæi na <http://www.quadrunner.com/~chuegen/smurf.txt>. Ako ikada budete pod ping flood napadom, koristite alat kao ¹to je tcpdump kako bi otkrili odakle paketi dolaze (ili se èini da dolaze), a zatim s tim informacijama kontaktirajte svog ISP-a. Ping floodovi najlak¹e se zaustavljaju na razini rutera ili kori¹tenjem firewalla. PPiinngg oo'' DDeeaatthh Ping o' Death napad rezultat je dolazeæih IICCMMPP EECCHHOO RREEQQUUEESSTT paketa veæih od onog ¹to mo¾e podnijeti kernel struktura za pohranjivanje tih podataka. Zbog toga ¹to slanje jednog velikog (65 510 bajtova) ping paketa mnogim sustavima uzrokuje njihovo ru¹enje ovaj je problem ubrzo rje¹en i vi¹e se o njemu ne treba brinuti. TTeeaarrddrroopp//NNeeww TTeeaarr Jedan od najnovijih napada koji iskori¹tava gre¹ku u kodu za IP fragmentaciju na Linuxu i Windowsima. Rje¹en je u verziji kernela 2.0.33 i ne zahtijeva odabiranje bilo koje opcije pri kompajliranju kernela. Èini se da Linux nije ranjiv na newtear napad. Veæinu koda koji iskori¹tava rupe i detaljnije informacije kako rade mo¾ete naæi na <http://www.rootshell.com> kori¹tenjem pretra¾ivanja. 88..88.. SSiigguurrnnoosstt NNFFSS--aa NFS (NNetwork FFile SSystem -- mre¾ni datoteèni sustav) je vrlo rasprostranjen protokol za dijeljenje datoteka. Omoguæava poslu¾iteljima na kojima radi nfsd i mountd da "izvoze" cijele datoteène sustave drugim strojevima koji imaju podr¹ku za NFS u svojim kernelima (ili drukèiju podr¹ku ako to nisu Linuxi). mountd vodi raèune o montiranim datoteènim sustavima u /etc/mtab i mo¾e ih pokazati preko naredbe showmount. Mnogi sustavi koriste NFS za poslu¾ivanje home direktorija korisnicima, tako da nije va¾no s kojeg se stroja u tom dijelu logiraju jer æe uvijek imati svoje datoteke. U izvo¾enju datoteènih sustava moguæ je manji stupanj "sigurnosti". Mo¾ete natjerati nfsd da mapira vanjskog root korisnika (UID=0) na nobody (nitko) korisnika, onemoguæavajuæi im potpun pristup datotekama koje se izvoze. Meðutim, po¹to pojedini korisnici imaju svoj pristup (ili barem isti UID) datotekama, udaljeni se nadkorisnik mo¾e logirati ili su-ati na njihov raèun i imati potpun pristup datotekama. To je samo mala smetnja napadaèu koji ima pristup montiranju va¹ih udaljenih datoteènih sustava. Ako ba¹ morate koristiti NFS, provjerite da li izvozite samo onim strojevima kojima je to nu¾no. Nikad ne izvozite cijeli svoj root direktorij, izvozite samo potrebne direktorije. Za vi¹e informacija o NFS-u proèitajte NNFFSS HHOOWWTTOO: <http://sunsite.unc.edu/mdw/HOWTO/NFS-HOWTO.html>. 88..99.. NNIISS ((bbiivv¹¹ii YYPP)) NIS (NNetwork IInformation SServices -- mre¾na informativna usluga, biv¹i YP) je sredstvo distribuiranja informacija skupini raèunala. NIS master sadr¾i informacijske tabele koje pretvara u NIS map datoteke. Te se mape onda nude preko mre¾e omoguæavajuæi NIS klijent strojevima dobivanje informacija o loginu, lozinki, home direktoriju i ljusci (sve informacije iz standardnog /etc/passwd). To korisnicima omoguæava mijenjanje lozinke jednom, koje zahvaæa sve stroje u NIS domeni. NIS uopæe nije siguran. To nikad nije ni trebao biti. Trebao je biti jednostavan i koristan. Svatko tko mo¾e pogoditi ime va¹e NIS domene (bilo gdje na mre¾i) mo¾e dobiti primjerak va¹e passwd datoteke i koristiti Crack i John the Ripper na lozinkama va¹ih korisnika. Moguæe je i prislu¹kivanje NIS-a i mnoge vrste prljavih trikova. Ako morate koristiti NIS, budite barem svjesni opasnosti. Postoji puno sigurnija zamjena za NIS, NIS+. Za vi¹e informacija pogledajte NNIISS HHOOWWTTOO: <http://sunsite.unc.edu/mdw/HOWTO/NIS- HOWTO.html>. 88..1100.. FFiirreewwaalllloovvii Firewallovi su sredstvo ogranièavanja protoka informacija u i iz va¹e lokalne mre¾e. Obièno je firewall stroj spojen i na Internet i na va¹ LAN, tako da se Internetu iz va¹eg LAN-a mo¾e pristupiti samo kroz njega. Na taj naèin firewall kontrolira ¹to prolazi vezom izmeðu Interneta i va¹eg LAN-a. Postoji vi¹e vrsta i naèina postavljanja firewalla. Linux strojevi prilièno su dobri i jeftini firewallovi. Kod za firewall mo¾e se ugraditi ravno u 2.0 i bolje kernele. ipfwadm, alat u korisnièkom prostoru, omoguæava vam mijenjanje u letu tipova mre¾nog prometa koje propu¹tate. Odreðene vrste mre¾nog prometa mo¾ete i logirati. Firewallovi su vrlo korisna i va¾na tehnika osiguravanja va¹e mre¾e. Va¾no je da shvatite kako nikad ne smijete misliti da, samo zato ¹to imate firewall, ne trebate sigurne strojeve iza njega. To je smrtna gre¹ka. Pogledajte vrlo dobar FFiirreewwaallll HHOOWWTTOO na svojoj najsvje¾ijoj sunsite arhivi za vi¹e informacija o firewallima pod Linuxom. <http://sunsite.unc.edu/mdw/HOWTO/Firewall-HOWTO.html> Vi¹e informacija takoðer se mo¾e naæi u IIPP--MMaassqquueerraaddee mmiinnii--HHOOWWTTOO: <http://sunsite.unc.edu/mdw/HOWTO/mini/IP-Masquerade.html>- Vi¹e informacija o ipfwadmu (alatu kojim mo¾ete mijenjati opcije svog firewalla) mo¾e se naæi na njegovoj WWW stranici: <http://www.xos.nl/linux/ipfwadm/>. 99.. SSiigguurrnnoossnnee pprriipprreemmee ((pprriijjee nneeggoo ssee uukklljjuuèèiittee uu mmrree¾¾uu)) Dakle, provjerili ste svoj sustav, odluèili da je dovoljno siguran i spremni ste ga ukljuèiti u mre¾u. Nekoliko je stvari koje bi sada trebali obaviti kako bi bili spremni u sluèaju da se upad stvarno dogodi, tako da uljeza brzo mo¾ete onemoguæiti i oporaviti se te nastaviti rad. 99..11.. NNaapprraavviittee ppoottppuunn bbaacckkuupp ssvvooggaa ssttrroojjaa Rasprava o metodama backupa i pohranjivanja izvan je dosega ovog dokumenta, ali nekoliko rijeèi vezanih uz backup i sigurnost: Ako na particiji imate manje od 650 MB podataka, CD-R kopiranje podataka je dobra metoda (jer je s njime te¹ko kasnije petljati, a ako se pravilno pohrani mo¾e trajati dugo vremena). Trake i druge medije na koje se ponovo mo¾e pisati treba za¹titi od pisanja èim je va¹ backup potpun i provjeren za spreèavanje petljanja. Osigurajte da su va¹i backupi pohranjeni u sigurnom podruèju iskljuèenom iz mre¾a. Dobar backup osigurava dobru poèetnu toèku za vraæanje sustava u normalno stanje. 99..22.. IIzzbboorr ddoobbrroogg rraassppoorreeddaa bbaacckkuuppaa Ciklus od ¹est traka lako je odr¾avati. To se odnosi na èetiri vrpce tijekom tjedna, jednu za parne petke i jednu za neparne petke. Svaki dan obavljajte inkrementalni backup, a svaki petak potpuni. Ako napravite odreðene promjene ili sustavu dodate va¾ne podatke, backup æe vam dobro doæi. 99..33.. BBaacckkuuppiirraajjttee ssvvoojjuu RRPPMM iillii DDeebbiiaann bbaazzuu ppooddaattaakkaa ddaattootteekkaa U sluèaju provale mo¾ete iskoristiti svoju RPM bazu podataka datoteka kao ¹to koristite Tripwire, ali samo ako ste sigurni da nije mijenjana. Kopirajte RPM bazu na disketu i stalno ju dr¾ite izvan mre¾e. Debian distribucija vjerojatno ima ne¹to slièno. Toènije, datoteke /var/lib/rpm/fileindex.rpm i /var/lib/rpm/packages.rpm najvjerojatnije neæe stati na jednu disketu. Sa¾ete bi trebale stati svaka na svoju. Sada, ako je va¹ sustav kompromitiran, mo¾ete koristiti naredbu: root# rpm -Va za provjeru svake datoteke na sustavu. Pogledajte man stranicu RPM-a -- postoje neke opcije za manje poruka. To znaèi da æe se, svaki put kada se sustavu doda novi RPM, RPM baza morati ponovo arhivirati. Vi odluèite ¹to vam je dra¾e -- prednosti ili nedostaci. 99..44.. PPrraaææeennjjee llooggoovvaa vvaa¹¹eegg ssuussttaavvaa Vrlo je va¾no da informacije koje dolaze od sysloga nisu kompromitirane. Dati dozvole za èitanje i pisanje u /var/log samo ogranièenom broju korisnika dobar je poèetak. Svakako pratite ¹to se tamo bilje¾i, posebno za aauutthh. Vi¹estruki neuspje¹ni logini, na primjer, mogu znaèiti poku¹aj provale. Gdje æete naæi log datoteke ovisi o va¹oj distribuciji. Na Linux sustavu koji slijedi LLiinnuuxx FFiilleessyysstteemm SSttaannddaarrdd, kao ¹to je Red Hat, potra¾it æete ih u /var/log i tamo provjeravati messages, mail.log i druge. Gdje va¹a distribucija logira stvari saznat æete u svojoj /etc/syslog.conf datoteci. To je datoteka koja govori syslogd-u (demonu za logiranje sustava) gdje da logira razne poruke. Takoðer æete mo¾da htjeti konfigurirati svoju skriptu ili demon za rotiranje logova, tako da logovi traju dulje i da imate vi¹e vremena za njihovo pregledavanje. Na novijim distribucijama Red Hata pogledajte paket logrotate. Druge distribucije vjerojatno imaju slièan proces. Ako je s va¹im logovima netko petljao, poku¹ajte saznati kada je petljanje poèelo i s èim je sve izgleda petljano. Postoje li dugi periodi vremena za koje nema podataka? Dobra je ideja provjeriti backup traka (ako ih imate) za izvorne log datoteke. Uljez obièno mijenja logove kako bi prikrio tragove, ali svejedno ih treba provjeravati za èudne stvari. Mo¾da primjetite kako je uljez poku¹avao uæi ili iskoristiti sigurnosnu rupu kako bi dobio rootov raèun. Mo¾da vidite logove prije nego ¹to ih uljez stigne izmjeniti. Trebali biste odvojiti auth od drugih logova, kao ¹to su poku¹aji kori¹tenja su za zamjenu korisnika, poku¹aje logina i druge informacije o korisnicima. Ako je to moguæe, konfigurirajte syslog da ¹alje kopije svih najva¾nijih podataka na siguran sustav. To æe sprijeèiti uljeza u prikrivanju tragova preko brisanja svojih poku¹aja logina/su-a/FTP- a/itd. Pogledajte man stranicu syslog.conf i opciju @@. Na kraju, log datoteke su mnogo nekorisnije kada ih nitko ne èita. Oduzmite si malo vremena svako malo i pogledajte svoje logove, te probajte shvatiti kako izgleda obièan dan. To æe vam pomoæi u uoèavanju neobiènih stvari. 99..55.. PPrriimmjjeenniittee ssvvee nnoovvee nnaaddooggrraaddnnjjee ssuussttaavvaa Veæina korisnika Linuxa instalira s CD-ROM-a. Zbog brzog ritma sigurnosnih ispravaka, stalno izlaze novi (ispravljeni) programi. Prije nego ¹to se pove¾ete s mre¾om, pametno je provjeriti FTP poslu¾itelj svoje distribucije (na primjer ftp.redhat.com) i nabaviti sve novije pakete otkad ste primili CD-ROM distribucije. Èesto takvi paketi sadr¾e va¾ne sigurnosne ispravke, pa je pametno instalirati ih. 1100.. ©©ttoo uuèèiinniittii ttookkoomm ii nnaakkoonn pprroovvaallee Dakle, jeste li slijedili neke od ovih (ili drugih) savjeta i otkrili provalu? Najprije trebate ostati stalo¾eni. Panièni postupci mogu uzrokovati vi¹e ¹tete od napadaèa. 1100..11.. NNaarruu¹¹aavvaannjjee ssiigguurrnnoossttii uupprraavvoo ssee ooddvviijjaa Uoèavanje naru¹avanja sigurnosti koje se upravo odvija mo¾e biti napeto. Va¹a reakcija imat æe velike posljedice. Ako je naru¹avanje kojeg gledate fizièko, vjerojatno ste uoèili nekoga tko je provalio u va¹ dom, ured ili laboratorij. Trebate obavijestiti lokalne vlasti. U laboratoriju ste mo¾da vidjeli kako netko poku¹ava otvoriti kuæi¹te ili resetirati stroj. Ovisno o va¹em autoritetu i postupcima, mo¾ete ih zamoliti da prestanu ili pozvati svoje lokalno osiguranje. Ako ste uoèili lokalnog korisnika koji poku¹ava naru¹iti va¹u sigurnost, prvo trebate potvrditi da je on stvarno onaj za kojeg mislite da je on. Provjerite odakle se logirao. Je li to raèunalo s kojeg se i normalno logiraju? Ne? Onda ga kontaktirajte neelektronskim sredstvima. Na primjer, pozovite ih telefonom ili od¹etajte do njihovog ureda/doma i razgovarajte s njima. Ako ka¾u da su logirani, mo¾ete ih zatra¾iti da objasne ¹to su radili ili da to prestanu raditi. Ako nisu i nemaju blage veze o èemu govorite, taj dogaðaj vjerojatno zahtjeva dodatnu istragu. Pazite na takve dogaðaje i skupite puno informacija prije nego nekoga optu¾ite. Ako ste otkrili mre¾nom naru¹avanje, najprije (ako mo¾ete) iskljuèite mre¾u. Ako su spojeni modemom, iskljuèite kabel modema, a ako su spojeni Ethernetom, iskljuèite kabel Etherneta. To æe ih sprijeèiti u daljnjem nano¹enju ¹tete, a vjerojatno æe to shvatiti kao problem u mre¾i, a ne razotkrivanje. Ako ne mo¾ete iskljuèiti mre¾u (imate vrlo zaposlen poslu¾itelj ili nemate fizièku kontrolu nad svojim raèunalima), slijedeæi najbolji korak je onemoguæavanje veza s uljezovog raèunala pomoæu tcp_wrappera ili ipfwadma. Ako ne mo¾ete iskljuèiti sve ljude sa stroja na kojem je uljez, morat æete se zadovoljiti iskljuèivanjem korisnièkog raèuna. Primjetite da to nije jednostavno. Morate paziti na .rhosts datoteke, FTP pristup i hrpu stra¾njih vrata). Nakon ¹to ste uèinili ne¹to od navedenog (iskljuèili mre¾u, onemoguæili pristup sa njegovog raèunala i/ili iskljuèili njegov raèun), morate mu ubiti sve procese i odlogirati ih. Slijedeæih nekoliko minuta morate pa¾ljivo gledati na svoj stroj jer æe napadaè poku¹ati uæi ponovno. Mo¾da æe koristiti drugi raèun i/ili mre¾nu adresu. 1100..22.. NNaarruu¹¹aavvaannjjee ssiigguurrnnoossttii vveeææ ssee ddooggooddiilloo Uoèili ste naru¹avanje koje se veæ dogodilo ili ste ga uoèili i iskljuèili (jo¹ bolje) napadaèa iz sustava. ©to sad? 1100..22..11.. ZZaattvvaarraannjjee rruuppee Ako mo¾ete otkriti naèin na koji je napadaè u¹ao u va¹ sustav, poku¹ajte zatvoriti rupu. Na primjer, mo¾da vidite nekoliko zapisa o FTP-u ba¹ prije nego ¹to se korisnik logirao. Iskljuèite FTP uslugu i provjerite da li postoji novija verzija ili neka od listi zna rje¹enje. Provjerite sve svoje log datoteke i pogledajte da li na va¹im listama i stranicama o sigurnosti ima novih rupa koje mo¾ete ispraviti. Calderine sigurnosne ispravke mo¾ete naæi na <http://www.caldera.com/tech-ref/security/>. Red Hat jo¹ nije odvojio sigurnosne ispravke od ispravaka gre¹aka, no ispravci za njihovu distribuciju nalaze se na <http://www.redhat.com/errata>. Vrlo je vjerojatno da æe, ako je jedna tvrtka izdala sigurnosnu ispravku, to ubrzo uèiniti i ostale. Ako ne izbacite napadaèa, vjerojatno æe se vratiti. Ne samo na va¹e raèunalo, nego negdje na va¹u mre¾u. Ako je pokrenuo snifer paketa, velike su ¹anse da ima pristup drugim lokalnim strojevima. 1100..22..22.. PPrrooccjjeennjjiivvaannjjee ¹¹tteettee Najprije procjenite ¹tetu. ©to je naru¹eno? Ako imate provjeru cjelovitosti kao ¹to je Tripwire, pokrenite ju i ona æe vam reæi. Ako ne, morat æete sami pogledati sve svoje najva¾nije podatke. Po¹to je Linux sustave sve lak¹e i lak¹e instalirati, mo¾ete svoje konfiguracijske snimiti na sigurno, obrisati svoj disk/ove i ponovno instalirati, a zatim vratiti korisnièke datoteke iz backupa i konfiguracijske datoteke. To æe osigurati nov, èist sustav. Ako morate spa¹avati datoteke s kompromitiranog sustava, budite posebno pa¾ljivi s programima koje vratite jer to mogu biti trojanski konji koje je postavio uljez. 1100..22..33.. BBaacckkuupp,, bbaacckkuupp,, bbaacckkuupp!! Redovit backup dar je s neba za sigurnosne probleme. Ako je va¹ sustav kompromitiran, potrebne podatke mo¾ete vratiti s backupa. Naravno, neki podaci su vrijedni i napadaèu, i on æe ga ne samo uni¹titi, veæ i ukrasti i imati svoje kopije, ali barem æete jo¹ uvijek imati podatke. Provjerite nekoliko pro¹lih backupa prije nego vratite datoteku s kojom je petljano. Uljez je mo¾da kompromitirao va¹e datoteke prije puno vremena, a vi ste mogli napraviti mnogo uspje¹nih backupa kompromitirane datoteke! Narvno, mno¹tvo je sigurnosnih briga s backupima. Potrudite se da su na sigurnom mjestu. Budite svjesni tko im ima pristup. (Ako napadaè mo¾e doæi do va¹ih backupa, ima pristup do svih va¹ih podataka, a da vi toga niste ni svjesni.) 1100..22..44.. PPrroonnaallaa¾¾eennjjee uulljjeezzaa U redu, izbacili ste uljeza i sredili sustav, ali jo¹ niste gotovi. Iako æe vjerojatno veæina uljeza ostati neuhvaæena, trebate prijaviti napad. Napad prijavite administratoru sustava s kojeg je napadaè napao va¹ sustav. Mo¾ete ga naæi pomoæu whois ili internicove baze podataka. Mo¾ete mu poslati e-mail sa svim primjenjivim zapisima u logu i datumima i vremenima. Ako ste uoèili jo¹ ne¹to posebno za svog uljeza, spomenite i to. Nakon ¹to ste poslali e-mail, trebali biste ga (ako ste toliko zapeli) i nazvati telefonom. Ako taj administrator uoèi va¹eg napadaèa, onda on mo¾e kontaktirati administratora sustava odakle je do¹ao i tako dalje. Dobri hakeri èesto koriste mnogo posrednih sustava. Neki (ili mnogi) od njih mo¾da ni ne znaju da su napadnuti. Poku¹ati doæi do krekerovog poèetnog sustava mo¾e biti te¹ko. Ljubaznim pona¹anjem prema administratorima od njih mo¾ete dobiti puno pomoæi. Takoðer biste trebali obavijestiti sigurnosne organizacije kojih ste dio (CERT ili slièno). 1111.. IIzzvvoorrii iinnffoorrmmaacciijjaa oo ssiigguurrnnoossttii Tamo vani ima _p_u_n_o dobrih stranica o sigurnosti UNIX-a opæenito i specifièno Linuxa. Vrlo je va¾no da se pretplatite na jednu (ili vi¹e) sigurnosnih mailing listi i pratite sigurnosne ispravke. Veæina takvih listi ima vrlo malo prometa i vrlo su informativne. 1111..11.. FFTTPP ppoosslluu¾¾iitteelljjii CERT je CComputer EEmergency RResponse TTeam (skupina za hitnu raèunalnu pomoæ). Èesto ¹alju uzbune o trenutnim napadima uz ispravke. <ftp://ftp.cert.org/> Replay ima arhive mnogih programa za sigurnost. Po¹to su izvan SAD-a, ne moraju po¹tovati amerièka kriptografska ogranièenja. <ftp://ftp.replay.com/> Matt Blaze je autor CFS-a i sjajan promicatelj sigurnosti. <ftp://ftp.research.att.com/pub/mab/> tue.nl je odlièan sigurnosni FTP server u Nizozemskoj. <ftp://ftp.win.tue.nl/pub/security/> 1111..22.. WWWWWW ssttrraanniiccee TThhee HHaacckkeerr FFAAQQ je FAQ o hakerima: <http://www.solon.com/~seebs/faqs/hacker.html> COAST arhiva ima velik broj Unix sigurnosnih programa i informacija: <http://www.cs.purdue.edu/coast/> Rootshell.com su odliène stranice za tra¾enje rupa koje trenutno krekeri koriste: <http://www.rootshell.com/> BUGTRAQ objavljuje savjete o sigurnosnim problemima: <http://www.netspace.org/lsv-archive/bugtraq.html> CERT, CComputer EEmergency RResponse TTeam (skupina za hitnu raèunalnu pomoæ), objavljuje savjete o èestim napadima na Unix platforme: <http://www.cert.org/> Dan Farmer je autor SATAN-a i mnogih drugih sigurnosnih alata, a njegove stranice imaju neke zanimljive ankete o sigurnosti kao i sigurnosne alate: <http://www.trouble.org> The Linux security WWW dobre su stranice za informacije o sigurnosti Linuxa: <http://www.aoy.com/Linux/Security/> Reptile na svojim stranicama ima dosta dobrih informacija o Linux sigurnosti: <http://207.237.120.45/linux/> Infilsec ima engine za ranjivosti koji vam ka¾e na ¹to je ranjiva va¹a platforma: <http://www.infilsec.com/vulnerabilities/> CIAC redovito objavljuje sigurnosne biltene o èestim rupama: <http://ciac.llnl.gov/cgi-bin/index/bulletins> Dobra poèetna toèka za Linux Pluggable Authentication Modules (ukljuèivi moduli za autentifikaciju) mo¾e se naæi na <http://www.kernel.org/pub/linux/libs/pam/>. 1111..33.. MMaaiilliinngg lliissttee BUGTRAQ: za pretplatu na BUGTRAQ po¹aljite poruku na listserv@netspace.org s retkom subscribe bugtraq u tijelu poruke. (Za arhive pogledajte gore navedeno.) CIAC: po¹aljite poruku na majordomo@tholia.llnl.gov. U _t_i_j_e_l_u (ne Subject:-u) poruke stavite (jedno ili drugo ili oboje) subscribe ciac- bulletin. 1111..44.. KKnnjjiiggee ---- ttiisskkaannii mmaatteerriijjaallii zzaa èèiittaannjjee Postoji vi¹e dobrih knjiga o sigurnosti. Ovaj dio navest æe ih nekoliko. Uz knjige specifièno o sigurnosti, sigurnost je pokrivena i u dosta drugih knjiga o administriranju sustava. D. Brent Chapman i Elizabeth D. Zwicky: BBuuiillddiinngg IInntteerrnneett FFiirreewwaallllss 1. izdanje, rujan 1995. ISBN: 1-56592-124-0 Simson Garfinkel i Gene Spafford: PPrraaccttiiccaall UUNNIIXX && IInntteerrnneett SSeeccuurriittyy 2. izdanje, travanj 1996. ISBN: 1-56592-148-8 Deborah Russell i G.T. Gangemi, Sr.: CCoommppuutteerr SSeeccuurriittyy BBaassiiccss 1. izdanje, srpanj 1991. ISBN: 0-937175-71-4 Olaf Kirch: LLiinnuuxx NNeettwwoorrkk AAddmmiinniissttrraattoorr''ss GGuuiiddee 1. izdanje, sijeèanj 1995. ISBN: 1-56592-087-2 Simson Garfinkel: PPGGPP:: PPrreettttyy GGoooodd PPrriivvaaccyy 1. izdanje, prosinac 1994. ISBN: 1-56592-098-8 David Icove, Karl Seger i William VonStorch (savjetodavni urednik Eugene H. Spafford): CCoommppuutteerr CCrriimmee AA CCrriimmeeffiigghhtteerr''ss HHaannddbbooookk 1. izdanje, kolovoz 1995. ISBN: 1-56592-086-4 1122.. RRjjeeèènniikk HHoosstt Raèunalni sustav povezan na mre¾u. (raèunalo, sustav) FFiirreewwaallll Komponenta ili skup komponenti koje ogranièavaju pristup izmeðu za¹tiæene mre¾e i Interneta ili izmeðu drugih skupina mre¾a. BBaassttiioonn hhoosstt Raèunalni sustav koji mora biti vrlo osiguran jer je ranjiv na napade, obièno zato ¹to je izlo¾en Internetu i glavna toèka kontakta korisnika internih mre¾a. Ime je dobio po vrlo utvrðenim graðevinama na vanjskim zidovima srednjevjekovnih dvoraca. Bastioni nadgledaju kritièna podruèja obrane, obièno uz jake zidove, prostor za dodatne trupe i ponekad korisne lonce pune kipuæeg ulja za obeshrabrivanje napadaèa. DDuuaall--hhoommeedd hhoosstt Opæe namjenski raèunalni sustav koji ima barem dva mre¾na suèelja. PPaacckkeett Osnovna jedinica komunikacije na Internetu. (paket) PPaacckkeett ffiilltteerriinngg Radnja koju obavlja ureðaj kako bi selektivno kontrolirao tok podataka u i iz mre¾e. Filtri paketa odobravaju ili blokiraju pakete, obièno tokom njihovog usmjeravanja iz jedne u drugu mre¾u (najèe¹æe iz Interneta u internu mre¾u i obratno). Da bi postigli filtriranje paketa, postavljate skup pravila koji odreðuje vrste paketa (koji su sa ili za odreðenu IP adresu ili port) koje se proslijeðuju i koje vrste se blokiraju. (filtriranje paketa) PPeerriimmeetteerr nneettwwoorrkk Mre¾a dodana izmeðu za¹tiæene mre¾e i vanjske mre¾e, kako bi pru¾ila dodatni sloj sigurnosti. Èesto se naziva DMZ. PPrrooxxyy sseerrvveerr Program koji se bavi s vanjskim poslu¾iteljima umjesto internih klijenata. Klijenti proxya razgovaraju s proxy poslu¾iteljima, koji odobrene zahtjeve klijenata prenose stvarnim poslu¾iteljima, a odgovore natrag klijentima. DDeenniiaall ooff SSeerrvviiccee Napad kod kojeg napadaè zauzima resurse na va¹em raèunalu za stvari koje ono ne bi smjelo raditi tako spreèavajuæi normalno kori¹tenje va¹ih mre¾nih resursa za potrebne stvari. BBuuffffeerr oovveerrffllooww Uobièajeni stil kodiranja nikad ne alocira "dovoljno velike" buffere i ne provjerava da li je pre¹ao njihovu velièinu. Kada se takvi bufferi prepune, izvr¹ni program (demon ili set-uid program) mo¾e se natjerati na neke èudne stvari. Obièno to radi prepunjavanjem povratne adrese funkcije na stacku da pokazuje na drugu lokaciju. IIPP ssppooooffiinngg IP spoofing je slo¾en tehnièki napad koji se sastoji od nekoliko dijelova. To je sigurnosna rupa koja radi tjeranjem raèunala da vjeruju da ste vi netko tko zapravo niste. Op¹iran èlanak o tome objavili su daemon9, route i infinity u Phrack Magazine, 48. broj, 7. godina. AAuutteennttiiccaattiioonn Moguænost saznavanja da su primljeni podaci jednaki podacima koji su poslani i da je navedeni po¹iljatelj stvarni po¹iljatelj. (autentifikacija) NNoonn--rreeppuuddiiaattiioonn Moguænost primatelja da doka¾e kako je po¹iljatelj nekih podataka stvarno poslao te podatke, iako po¹iljatelj poslije mo¾e poricati da je ikad poslao te podatke. (nezamjenjivost) 1133.. ÈÈeessttoo ppoossttaavvlljjaannaa ppiittaannjjaa 1. Je li sigurnije kompajlirati drajver izravno u kernel umjesto kao modul? Odgovor: Neki misle da je bolje iskljuèiti moguænost uèitavanja podr¹ke za ureðaje preko modula jer uljez tako mo¾e uèitati trojanski modul ili sam uèitati modul koji bi utjecao na sigurnost sustava. Meðutim, da bi uèitali modul, morate biti root. U datoteke modula mo¾e pisati takoðer samo root. To znaèi da je uljezu potreban pristup rootu da bi ubacio modul. Ako uljez dobije pristup rootu, ima puno ozbiljnijih stvari o kojima treba brinuti nego da li æe uèitati modul. Moduli slu¾e za dinamièko uèitavanje podr¹ke za odreðene ureðaje koji se mo¾da rjeðe koriste. Na strojevima koji su poslu¾itelji ili firewallovi na primjer, to je vrlo nevjerojatno. Iz tih razloga, za poslu¾itelje kompajliranje izravno u kernel ima vi¹e smisla. Takoðer, moduli su sporiji od izravne podr¹ke u kernelu. 2. Logiranje kao root s udaljenog stroja uvijek je neuspje¹no. Odgovor: Proèitajte dio o sigurnosti roota. To je uèinjeno namjerno kako bi se udaljeni korisnici sprijeèili u poku¹ajima spajanja telnetom na va¹e raèunalo kao root, ¹to je ozbiljna sigurnosna rupa. Ne zaboravite, moguæi uljezi vrijeme imaju na svojoj strani i mogu automatski tra¾iti va¹u lozinku. 3. Kako da ukljuèim shadow lozinke na svom Red Hatu 4.2 ili 5.0? Odgovor: Shadow lozinke su mehanizam spremanja va¹ih lozinki u datoteku koja nije uobièajena /etc/passwd. To ima nekoliko prednosti. Prva je ¹to je shadow datoteka, /etc/shadow, èitljiva samo za roota, za razliku od /etc/passwd, koja mora ostati èitljiva za sve. Druga je prednost ¹to vi kao administrator mo¾ete ukljuèiti ili iskljuèiti raèune bez da svi znaju stanje raèuna drugih korisnika. Onda se datoteka /etc/passwd koristi za pohranjivanje imena korisnika i grupa, koje koriste programi kao ¹to je /bin/ls za pretvaranje UID-a u odgovarajuæe ime korisnika u sadr¾aju direktorija. Datoteka /etc/shadow sadr¾i samo korisnièko ime i njegovu lozinku, te mo¾da informacije o raèunu, kao ¹to je datum njegova istjecanja, itd. Ukljuèiti shadow lozinke mo¾ete naredbom pwconv kao root. Trebala bi se pojaviti datoteka /etc/shadow koju bi trebale koristiti i aplikacije. Po¹to koristite RH 4.2 ili bolji, PAM moduli æe se automatski prilagoditi promjeni kori¹tenja normalne /etc/passwd u shadow lozinke, bez ikakvih drugih promjena. Po¹to vas zanima osiguravanje va¹ih lozinki, mo¾da æe vas takoðer zanimati generiranje dobrih lozinki na poèetku. Za to mo¾ete koristiti pam_cracklib modul, dio PAM-a. Va¹u lozinku provjerava protiv Crack librarya kako bi vam otkrio da li ju je prelako pogoditi iz programa za razbijanje lozinki. 4. Kako da ukljuèim Apache SSL pro¹irenja? Odgovor: a. Nabavite SSLeay 0.8.0 ili noviji s <ftp://ftp.psy.uq.oz.au/pub/Crypto/SSL/>. b. Kompajlirajte, testirajte i instalirajte ga! c. Nabavite izvorni kod Apache 1.2.5. d. Nabavite Apache SSLeay pro¹irenja s <ftp://ftp.ox.ac.uk/pub/crypto/SSL/apache_1.2.5+ssl_1.13.tar.gz>. e. Otpakirajte ga u direktoriju s izvornim kodom apache 1.2.5 i zakrpite Apache prema README-u. f. Konfigurirajte ga i kompajlirajte. Mo¾ete pogledati i <http://www.replay.com>, gdje se nalaze mnogi veæ kompajlirani paketi, i to izvan SAD-a. 5. Kako da radim s korisnièkim raèunima, ali zadr¾im sigurnost? Odgovor: distribucija Red Hat, posebno 5.0, sadr¾i velik broj alata za mijenjanje svojstava korisnièkih raèuna. · Programi pwconv i unpwconv mogu se koristiti za pretvaranje u i iz shadow lozinki. · Programi pwck i grpck mogu se koristiti za provjeravanje pravilne organizacije passwd i group datoteka. · Programi useradd, usermod i userdel mogu se koristiti za dodavanje, brisanje i mijenjanje korisnièkih raèuna. Programi groupadd, groupmod i groupdel èine isto za grupe. Svi ovi programi svjesni su shadowa -- dakle, ako ukljuèite shadow lozinke, koristit æe /etc/shadow za informacije o lozinkama, ako ne, neæe. Za daljnje informacije pogledajte odgovarajuæe man stranice. 6. Kako mogu odreðene HTML dokumente za¹tititi lozinkom koristeæi Apache? Odgovor: Kladim se da niste znali za <http://www.apacheweek.com/>, ne? Informacije o autentifikaciji korisnika mo¾ete naæi na <http://www.apacheweek.com/features/userauth>, kao i druge naputke za sigurnost WWW-a na <http://www.apache.org/docs/misc/security_tips.html>. 1144.. ZZaakklljjuuèèaakk Ako se pretplatite na mailing liste za sigurnosne uzbune i pratite trenutne verzije, mo¾ete jako popraviti sigurnost svoga stroja. Ako pazite na svoje log datoteke i redovito pokreæete ne¹to poput Tripwirea, mo¾ete i vi¹e. Na kuænom raèunalu nije te¹ko odr¾avati razumnu razinu sigurnosti. Na poslovnim strojevima potrebno je vi¹e napora, ali Linux mo¾e biti itekako sigurna platforma. Zahvaljujuæi prirodi njegovog razvoja, sigurnosni ispravci izlaze puno br¾e nego za komercijalne operacijske sustave, ¹to Linux èini idealnim kada je sigurnost u pitanju. 1155.. ZZaahhvvaallee Ove informacije skupljene su iz mnogih izvora. Hvala slijedeæim ljudima koji su izravno ili neizravno pridonijeli: · Rob Riggs, rob@DevilsThumb.com · S. Coffin, scoffin@netcom.com · Viktor Przebinda, viktor@CRYSTAL.MATH.ou.edu · Roelof Osinga, roelof@eboa.com · Kyle Hasselbacher, kyle@carefree.quux.soltec.net · David S. Jackson, dsj@dsj.net · Todd G. Ruskell, ruskell@boulder.nist.gov · Rogier Wolff, R.E.Wolff@BitWizard.nl 1166.. HHrrvvaattsskkii pprriijjeevvoodd Najnovija verzija ovog prijevoda mo¾e se naæi na <http://dokumentacija.linux.hr/Sigurnost-KAKO.html>. Odr¾ava ga Matej Vela, mvela@public.srce.hr. Svi su prilozi, primjedbe i prijedlozi dobrodo¹li.