Sigurnost Linuxa KAKO
Kevin Fenzi, kevin@scrye.com i Dave Wreski, dave@nic.com
verzija 0.9.11, 1. svibnja 1998.
Ovaj je dokument opcenit pregled sigurnosnih problema s kojima je
suocen administrator Linux sustava. Pokriva opcenitu filozofiju
sigurnosti i vise specificnih primjera boljeg osiguravanja vaseg Linux
sustava od uljeza. Spominju se i drugi izvori informacija i programa
o sigurnosti. NAPOMENA: ovo je beta verzija ovog dokumenta.
Poboljsanja, konstruktivne kritike, dodatke i ispravke zahvalno
prihvacamo. Posaljite 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 paznju autora.
______________________________________________________________________
Sadrzaj
1. Uvod
1.1 Nove verzije ovog dokumenta
1.2 Komentari
1.3 Odricanje
1.4 Informacije o autorskim pravima
2. Pregled
2.1 Sto ce nam sigurnost?
2.2 Koliko je sigurno sigurno?
2.3 Sto pokusavate zastititi?
2.4 Razvijanje sigurnosne politike
2.5 Nacini osiguravanja vaseg sustava
2.5.1 Sigurnost racunala
2.5.2 Sigurnost vase mreze
2.5.3 Sigurnost pomocu opskurnosti
2.6 Organizacija ovog dokumenta
3. Fizicka sigurnost
3.1 Racunalne brave
3.2 BIOS sigurnost
3.3 Sigurnost programa za dizanje
3.4 xlock i vlock
3.5 Otkrivanje fizickih provala
4. Lokalna sigurnost
4.1 Stvaranje novih racuna
4.2 Sigurnost roota
5. Sigurnost datoteka i datotecnog sustava
5.1 Postavljanje umaska
5.2 Dozvole datoteka
5.3 Provjera cjelovitosti pomocu Tripwirea
5.4 Trojanski konji
6. Sigurnost lozinki i enkripcija
6.1 PGP i kriptografija javnih kljuceva
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 uredaji
8. Sigurnost mreze
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 mrezni skeneri
8.6 sendmail, qmail i MTA-ovi
8.7 Denial of Service (poricanje usluga) napadi
8.8 Sigurnost NFS-a
8.9 NIS (bivsi YP)
8.10 Firewallovi
9. Sigurnosne pripreme (prije nego se ukljucite u mrezu)
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 Pracenje logova vaseg sustava
9.5 Primjenite sve nove nadogradnje sustava
10. Sto uciniti tokom i nakon provale
10.1 Narusavanje sigurnosti upravo se odvija
10.2 Narusavanje sigurnosti vec se dogodilo
10.2.1 Zatvaranje rupe
10.2.2 Procjenjivanje stete
10.2.3 Backup, backup, backup!
10.2.4 Pronalazenje uljeza
11. Izvori informacija o sigurnosti
11.1 FTP posluzitelji
11.2 WWW stranice
11.3 Mailing liste
11.4 Knjige -- tiskani materijali za citanje
12. Rjecnik
13. Cesto postavljana pitanja
14. Zakljucak
15. Zahvale
16. Hrvatski prijevod
______________________________________________________________________
11.. UUvvoodd
Ovaj dokument pokriva neke od glavnih problema sigurnosti koji utjecu
na sigurnost Linuxa. Govori se o opcoj filozofiji i resursima na
mrezi.
S problemima sigurnosti preklapa se vise drugih KAKO dokumenata i,
gdje je prikladno, na njih ste upuceni.
Ovaj dokument NIJE svjez popis sigurnosnih rupa. Puno novih stalno se
pojavljuje. Ovaj ce vam dokument reci gdje da potrazite svjeze
informacije i izloziti neke opcenite metode sprecavanja takvih rupa.
11..11.. NNoovvee vveerrzziijjee oovvoogg ddookkuummeennttaa
Nove verzije ovog dokumenta redovito se salju u comp.os.linux.answers.
Takoder se dodaju raznim anonimnim FTP serverima koji takve
informacije arhiviraju, ukljucujuci
.
Ovaj bi dokument trebali moci naci i na Linux WWW stranici na
.
Na kraju, najsvjezije verzije ovog dokumenta trebale bi biti dostupne
u raznim formatima s .
11..22.. KKoommeennttaarrii
Sve komentare, greske, dodatne informacije i kritike svih vrsta
saljite na kevin@scrye.com i dave@nic.com.
NAPOMENA: molimo vas, poruku posaljite obojici. Provjerite da li je u
Subject:-u poruke "Linux", "security" ili "HOWTO" da izbjegnete
Kevinov spam filter.
11..33.. OOddrriiccaannjjee
Za sadrzaj ovih dokumenata ne prihvacamo nikakvu odgovornost. Ideje,
primjere i drugi sadrzaj koristite na svoju odgovornost. Takoder, ovo
je nedovrsena verzija, s mnogim mogucim netocnostima i greskama.
Dosta primjera i opisa koriste Red Hat(TM)-ov sustav pakiranja i
izgled sustava. Vas ne mora biti jednak.
Opisani su samo programi koji se pod odredenim uvjetima mogu koristiti
ili iskusati za osobne svrhe. Vecina 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 slijedecim uvjetima:
· KAKO dokumente moze se reproducirati i distribuirati u cjelosti ili
djelomicno, na mediju fizickom ili elektronickom, dok je ova
obavijest na svim primjercima. Komercijalna distribucija dopustena
je i ohrabrena; medutim, autor bi o takvom distribuiranju zelio
biti obavijesten.
· Svi prijevodi, izvedeni ili sazeti radovi koji ukljucuju Linux KAKO
dokumente moraju biti pod ovom licencom. Dakle, ne smijete
napraviti rad izveden iz KAKO-a i nametati dodatna ogranicenja na
njegovu distribuciju. Iznimke ovim pravilima moguce su pod
odredenim 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 pokusava objasniti neke postupke i cesto koristene
programe koji vas Linux cine sigurnijim. Vazno je da prvo razjasnimo
neke osnovne stvari, da steknete temeljna znanja iz sigurnosti prije
nego pocnemo.
22..11.. SSttoo ccee nnaamm ssiigguurrnnoosstt??
U promijenjivom svijetu globalnih podatkovnih komunikacija, jeftinih
veza na Internet i vrlo brzog razvoja softvera, sigurnost postaje sve
vaznija. Sigurnost je sada osnovna potreba jer je globalno
racunalstvo po prirodi nesigurno. Na primjer, dok vasi podaci idu iz
tocke A u tocku B na Internetu, mozda ce usput proci kroz nekoliko
drugih tocaka, dajuci drugim korisnicima priliku da presrecu, i cak
mijenjaju, vase podatke. Cak i drugi korisnici na vasem sustavu mogu
zlocudno pretvarati vase podatke u nesto nezeljeno. Neodobreni pristup
vasem sustavu mogu dobiti uljezi, takozvani ccrraacckkeerrii, koji zatim
koriste svoje napredne vjestine u imitiranju vas, u kradi podataka od
vas, ili cak onemogucavanju pristupa vasim vlastitim resursima. Ako se
jos uvijek pitate koja je razlika izmedu hhaacckkeerraa i crackera,
procitajte HHooww ttoo BBeeccoommee AA HHaacckkeerr (kako postati haker) Erica S.
Raymonda na .
22..22.. KKoolliikkoo jjee ssiigguurrnnoo ssiigguurrnnoo??
Najprije, imajte na umu da nijedan racunalni sustav nikad ne moze biti
"potpuno siguran". Sve sto mozete je otezati kompromitiranje vaseg
sustava. Za prosjecnog kucnog korisnika Linuxa, ne treba puno da
obicni kreker ostane na lancu. Za velike Linux korisnike (banke,
telekomunikacijske tvrtke, itd.) potrebno je mnogo vise posla.
Drugi faktor kojeg treba uzeti u obzir je da, sto je vas sustav
sigurniji, sigurnost vam sve vise smeta. U tom balansiranju trebate
naci tocku gdje je vas sustav moguce koristiti, ali je jos siguran za
vase potrebe. Na primjer, mogli biste od svih koji se na vas sustav
spajaju telefonskom vezom traziti da vas sustav nazove njih na njihov
kucni broj. To jest sigurnije, ali ako netko nije kod kuce, tesko ce
se logirati. Takoder biste mogli svoj Linux sustav ostaviti bez mreze
ili veze na Internet, ali to vrlo otezava surfanje WWW-om.
Ako ste sustav vece ili srednje velicine, trebali bi razviti
"Sigurnosnu politiku" o tome koliko sigurnosti vas sustav zahtijeva i
kojim se postupkom ona provjerava. Dobro poznati primjer sigurnosne
politike mozete naci na .
Nedavno je osvjezen i sadrzi izvrsnu podlogu za sigurnosnu politiku
vase tvrtke.
22..33.. SSttoo ppookkuussaavvaattee zzaassttiittiittii??
Prije nego pokusate osigurati svoj sustav, trebate odluciti kolika je
prijetnja protiv koje se morate zastititi, koje rizike biste ili ne
biste trebali podnijeti i koliko ce na kraju vas sustav biti ranjiv.
Proucite svoj sustav i saznajte sto i zasto stitite, koliko je to
vrijedno i tko je odgovoran za vase podatke i drugo vlasnistvo.
· Rizik je mogucnost da uljez uspije u pokusaju pristupa vasem
racunalu. Moze li uljez citati, pisati datoteke, ili izvrsavati
programe koji bi vam mogli nastetiti? Moze li vazne podatke
obrisati? Sprijeciti vas ili vasu tvrku da obavite vazne poslove?
Ne zaboravite, netko s pristupom vasem racunu ili sustavu takoder
se moze predstavljati kao vi. Zatim, jedan nesiguran racun na
vasem sustavu moze dovesti do kompromitiranja cijele vase mreze.
Jedan korisnik kojem je dopusteno logiranje preko rhosts datoteke,
ili nesigurna usluga, kao sto je tftp, rizik je koji uljezu
omogucava da "prode kroz vrata". Kada uljez jednom dobije
korisnicki racun na vasem sustavu ili sustavu nekog drugog, moze ga
koristiti za dobivanje pristupa drugom sustavu, ili drugom racunu.
· Obicno vam prijeti netko tko zeli neodobren pristup vasoj mrezi ili
racunalu. Odlucite kome vjerujete dovoljno da ima pristup vasem
racunalu, i koju bi on prijetnju mogao predstavljati. Evo nekoliko
vrsta uljeza. Korisno je misliti na razlicite osobine dok
osiguravate svoje sustave.
ZZnnaattiizzeelljjnnii
Ovu vrstu uljeza zapravo zanima koju vrstu sustava i podataka
imate.
ZZllooccuuddnnii
Ova vrsta uljeza zeli ili srusiti vase sustave, ili unakaziti
vasu WWW stranicu, ili vam drukcije oduzeti vrijeme i novac za
oporavak.
UUlljjeezz kkoojjii ssee hhooccee iissttaaccii
Ova vrsta uljeza pokusava preko vaseg sustava doci do
popularnosti ili slave. Moze vas vazan sustav koristiti za
razglasavanje svoje sposobnosti.
KKoonnkkuurreenncciijjaa
Ove uljeze zanima koje podatke imate na sustavu. Mozda misle da
imate nesto sto bi im dobro doslo financijski ili drugacije.
· Ranjivost opisuje koliko je dobro vase racunalo zasticeno od drugih
mreza i mogucnost neodobrenog pristupa. Sto je na kocki ako netko
provali u vas sustav? Naravno da brige kucnog korisnika dinamickog
PPP-a nisu jednake brigama tvrtke koja svoje racunalo spaja na
Internet ili drugu vecu mrezu. Koliko bi vam vremena trebalo da
ponovo nabavite/napravite izgubljene podatke? Vrijeme ulozeno sada
moze spasiti deset puta vise 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, opcenitu politiku za svoj sustav, koju vasi
korisnici mogu lako razumjeti i postovati. Ona treba zastititi podatke
koje cuvate, kao i privatnost korisnika. Neke stvari koje biste mogli
dodati je tko ima pristup sustavu (moze li moj prijatelj koristiti moj
racun?), kome je dozvoljeno da na sustav instalira softver, tko
posjeduje koje podatke, oporavljanje od katastrofe i prikladno
koristenje sustava.
Opce prihvacena sigurnosna politika pocinje frazom:
Sto nije dozvoljeno zabranjeno je.
To znaci da ako korisniku ne date pristup usluzi, on je ne smije
koristiti dok pristup ne dobije. Provjerite da li to funkcionira na
vasem obicnom korisnickom racunu -- reci "ma ne mogu shvatiti ovaj
problem s dozvolama, idem jednostavno biti root" moze dovesti do vrlo
ocitih sigurnosnih rupa, cak i dosad nepoznatih.
22..55.. NNaacciinnii oossiigguurraavvaannjjaa vvaasseegg ssuussttaavvaa
Ovaj dokument ce govoriti o raznim sredstvima osiguravanja stvari za
koje ste toliko radili: vase lokalno racunalo, podatke, korisnike,
mrezu, cak i vas ugled. Sto ce se dogoditi s vasim ugledom ako uljez
obrise podatke nekog vaseg korisnika? Ili vam unakazi WWW stranice?
Ili objavi poslovne planove vase tvrke za slijedeci kvartal? Ako
planirate mreznu instalaciju, mnogo faktora treba uzeti u obzir prije
dodavanja ijednog racunala.
Cak i ako imate jednostavan PPP racun ili malen sustav, to ne znaci da
uljeze ne zanimate. Veliki, istaknuti sustavi nisu jedine mete --
mnogi uljezi jednostavno zele iskoristiti sto vise sustava bez obzira
na njihovu velicinu. Takoder mogu koristiti sigurnosnu rupu u vasem
sustavu za pristup drugim sustavima kojima ste spojeni.
Uljezi imaju mnogo vremena i mogu izbjeci pogadanje nacina na koji ste
osigurali sustav jednostavnim isprobavanjem svih mogucnosti. Ima jos
nekoliko razloga zbog kojih bi se uljez mogao zanimati za vase sustave
o kojima cemo govoriti poslije.
22..55..11.. SSiigguurrnnoosstt rraaccuunnaallaa
Mozda se najvise brige za sigurnost trosi na pojedina racunala. To
obicno znaci provjeravanje sigurnosti vaseg sustava uz nadu da svi
ostali na mrezi rade isto. Odabir dobrih lozinki, osiguravanje usluga
lokalne mreze vaseg posluzitelja, pazljivo odrzavanje korisnickih
racuna i nadogradnja programa s poznatim sigurnosnim rupama dio su
odgovornosti lokalnog sigurnosnog administratora. Iako je to potpuno
nuzno, postaje tezak zadatak ako vasa mreza racunala postane veca.
22..55..22.. SSiigguurrnnoosstt vvaassee mmrreezzee
Sigurnost mreze potrebna je koliko i sigurnost lokalnog racunala. Uz
vas sustav, ili distribuiranu racunalnu mrezu, Internet, ili stotine,
ako ne i tisuce racunala na istoj mrezi ne mozete racunati na
sigurnost svakog od njih. Provjeravanje dozvola samo provjerenim
korisnicima za koristenje vasih mreznih resursa, gradenje firewalla,
koristenje jake enkripcije i provjere da nema izlozenih ili nesigurnih
racunala na vasoj mrezi sve su dio duznosti mreznog sigurnosnog
administratora.
Ovaj ce dokument govoriti o nekim tehnikama za osiguravanje vaseg
sustava u nadi da vam pokaze neke nacine sprecavanja pristupanja
uljeza u ono sto pokusavate zastititi.
22..55..33.. SSiigguurrnnoosstt ppoommooccuu 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 otezala provala u vas sustav kao root -- osjecaj
sigurnosti je lazan i dovest ce do vrlo neugodnih posljedica. Budite
sigurni da ce svaki napadac na sustav brzo progledati kroz takve
prazne sigurnosne mjere. To sto imate malen sustav ili niste
istaknuti ne znaci da se uljezi nece zanimati za ono sto imate. U
slijedecim dijelovima govorit cemo o onome sto stitite.
22..66.. OOrrggaanniizzaacciijjaa oovvoogg ddookkuummeennttaa
Ovaj dokument podijeljen je na vise dijelova. Oni pokrivaju razne
vrste sigurnosnih problema. Prvi, o fizickoj sigurnosti, govori o
zastiti vaseg racunala od fizickog petljanja. Drugi opisuje kako
zastititi vas sustav od petljanja lokalnih korisnika. Treci, o
datotekama i sigurnosti datotecnog sustava, pokazuje kako namjestiti
datotecne sustave i dozvole na vasim datotekama. Slijedeci, o
sigurnosti preko lozinki i enkripcije, govori o koristenju enkripcije
za bolju sigurnost vaseg racunala i mreze. Sigurnost kernela govori o
mogucnostima kernela koje biste trebali koristiti ili biti svjesni za
sigurniji stroj. Sigurnost mreze opisuje kako bolje osigurati svoj
Linux sustav od napada s mreze. Sigurnosne pripreme govori o
pripremanju vaseg/ih racunala prije nego sto ih umrezite. Slijedeci
dio govori sto 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 zavrsnih
rijeci.
Dvije vazne stvari koje trebate shvatiti citajuci ovaj dokument su:
· Budite svjesni svog sustava. Provjeravajte logove sustava kao sto
je /var/log/messages i pazite na svoj sustav, i
· Drugo, drzite svoj sustav svjezim instaliranjem trenutnih verzija
softvera i nadogradnjama zbog sigurnosnih opasnosti. To ce vas
sustav uciniti znatno sigurnijim.
33.. FFiizziicckkaa ssiigguurrnnoosstt
Prvi "sloj" sigurnosti kojeg trebate uzeti u obzir je fizicka
sigurnost vasih racunalnih sustava. Tko ima izravan fizicki pristup
vasem racunalu? Da li bi trebao? Mozete li zastititi svoje racunalo od
njegova petljanja? Da li biste trebali?
Koliko fizicke sigurnosti trebate za svoj sustav jako ovisi o vasoj
situaciji i/ili financijama.
Ako ste kucni korisnik, vjerovatno vam je ne treba puno (iako cete
mozda htjeti zastititi svoje racunalo od djece ili neugodnih rodaka).
Ako ste u laboratoriju, treba vam poprilicno vise, no korisnici na
racunalima ipak moraju moci raditi. Mnogi od slijedecih dijelova bit
ce od pomoci. Ako ste u uredu, trebat ce vam ili nece osiguravanje
racunala dok ne radite ili dok ste na putu. U nekim tvrtkama
ostavljanjem neosigurane konzole mozete zaraditi otkaz.
Ocite metode fizicke sigurnosti kao sto su brave na vratima,
kablovima, zakljucani kabineti i video kamere sve su dobra ideja, ali
izvan dosega ovog dokumenta. :)
33..11.. RRaaccuunnaallnnee bbrraavvee
Mnoga moderna PC kucista imaju mogucnost "zakljucavanja". To je obicno
brava na prednjem dijelu kucista u kojoj dobiveni kljuc mozete
okrenuti u zakljucani ili nezakljucani polozaj. Brave na kucistima
mogu pomoci u sprecavanju krade vaseg PC-a, ili otvaranja kucista i
izravnog mijenjanja/krade vaseg hardvera. Nekad mogu sprijeciti i
resetiranje vaseg racunala uz dizanje sustava s diskete ili drugog
hardvera.
Te brave rade razlicite stvari, ovisno o podrsci maticne ploce i
konstrukciji kucista. Na mnogim PC-ima napravljene su tako da kuciste
morate slomiti kako bi ga otvorili. Na drugima ne mozete ukljucivati
nove tipkovnice i miseve. Za vise informacija provjerite upute svoje
maticne ploce ili kucista. To ponekad moze biti vrlo korisna
mogucnost, iako su brave obicno niske kvalitete i vrlo ih je lako
otkljucati otpiracem.
Neka kucista (najizrazenije Sparcovi i Macovi) imaju kuku otraga tako
da, ako provucete kabel, napadac mora prerezati kabel ili slomiti
kuciste da bi ga otvorio. Stavljanje sifre ili brave moze biti dobra
odbrana od krade stroja.
33..22.. BBIIOOSS ssiigguurrnnoosstt
BIOS je najniza razina softvera koja konfigurira ili radi s vasim x86
baziranim hardverom. LILO i druge metode dizanja Linuxa pristupaju
BIOS-u kako bi odlucile kako dignuti vase Linux racunalo. Druge
platforme na kojem Linux radi imaju slican softver (OpenFirmware na
Macovima i novijim Sunovima, Sun boot prom, itd.). Preko BIOS-a mozete
sprijeciti napadaca u resetiranju vaseg racunala i mijenjanju vaseg
Linux sustava.
Pod Linuxom/x86 mnogi PC BIOS-i daju vam mogucnost lozinke pri dizanju
sustava. To ne znaci bas puno sigurnosti (BIOS se moze resetirati, ili
maknuti ako netko moze do unutrasnjosti kucista), ali moze posluziti
kao dobra obrana (to jest, potrajat ce i ostaviti tragove petljanja).
Mnogi x86 BIOS-i omogucavaju i odredivanje raznih drugih dobrih
sigurnosnih mjera. Provjerite prirucnik svog BIOS-a ili ga razgledajte
prilikom slijedeceg dizanja. Neki primjeri: iskljucivanje dizanja s
disketa i lozinke za pristup nekim opcijama BIOS-a.
Na Linux/Sparc-u vas SPARC EEPROM moze se namjestiti da zahtijeva
lozinku pri dizanju. To ce mozda usporiti napadaca.
NAPOMENA: Ako imate posluzitelj i stavite lozinku pri dizanju, vas se
stroj nece dizati samostalno. Nemojte zaboraviti da cete morati doci i
dati lozinku cak i kod nestanka struje. ;(
33..33.. SSiigguurrnnoosstt pprrooggrraammaa zzaa ddiizzaannjjee
Razni programi za dizanje Linuxa takoder mogu imati lozinku. Ako
koristite LILO, pogledajte opcije rreessttrriicctteedd i ppaasssswwoorrdd. ppaasssswwoorrdd vam
trazi lozinku pri dizanju. rreessttrriicctteedd ce dopustiti dizanje sustava
_o_s_i_m ako netko odredi opcije na LILO: promptu (kao sto je ssiinnggllee).
Naravno, pri postavljanju svih tih lozinki trebat cete ih i popamtiti.
:) Takoder nemojte zaboraviti da ce one samo usporiti odlucnog
napadaca. To nece sprijeciti da netko digne sustav s diskete i montira
vasu root particiju. Ako koristite sigurnost uz svoj program za
dizanje sustava, mozete odmah i u BIOS-u svog racunala iskljuciti
dizanje s diskete, kao i zastiti ga lozinkom.
Ako netko ima informacije o sigurnosti drugih programa za dizanje,
rado bismo ih culi (grub, silo, milo, linload, itd.).
NAPOMENA: Ako imate posluzitelj i stavite lozinku pri dizanju, vas se
stroj nece dizati samostalno. Nemojte zaboraviti da cete morati doci i
dati lozinku cak i kod nestanka struje. ;(
33..44.. xxlloocckk ii vvlloocckk
Ako s vremena na vrijeme odlutate od svog stroja, lijepo je moci
"zakljucati" svoju konzolu da nitko ne petlja po njoj ili gleda sto
ste radili. Ovo mogu dva programa: xlock i vlock.
xlock zakljucava X prikaz. Trebao bi doci sa svakom Linux
distribucijom koja podrzava X. Za vise opcija provjerite njegovu man
stranicu, ali opcenito mozete pokrenuti xlock iz bilo kojeg xterma na
svojoj konzoli i on ce zakljucati prikaz i traziti lozinku za
otkljucavanje.
vlock je jednostavan mali program kojim zakljucavate neke ili sve
virtualne konzole na svojem Linux stroju. Mozete zakljucati samo onu u
kojoj radite ili sve. Ako zakljucate samo jednu, drugi mogu doci i
koristiti konzolu, ali ne i vas vty dok ga ne otkljucate. vlock dolazi
s Red Hat Linuxom, ali to ne mora vrijediti za vasu distribuciju.
Naravno da ce zakljucavanje konzole sprijeciti petljanje drugih u vas
posao, ali ne sprijecava resetiranje stroja ili prekid vaseg posla na
neki drugi nacin. Takoder ne sprijecava pristup vasem racunalu s
drugog racunala na mrezi i uzrokovanje problema.
33..55.. OOttkkrriivvaannjjee ffiizziicckkiihh pprroovvaallaa
Prva stvar na koju uvijek treba paziti je kad se vas stroj dignuo.
Posto je Linux robustan i stabilan OS, stroj bi se trebao ponovo
dizati kada ga VI spustite za nadogradnje OS-a, izmjenu hardvera ili
nesto slicno. Ako se stroj dignuo bez vaseg sudjelovanja, trebalo bi
se upaliti svjetlo za uzbunu. Mnogi nacini kompromitiranja vaseg
racunala zahtijevaju da ga uljez resetira.
Provjerite znakove petljanja na kucistu i podrucju racunala. Iako
mnogi uljezi iz logova ciste tragove svoga prisustva, dobra je ideja
provjeriti ih i potraziti bilo kakve nejasnosti.
Neke stvari koje trebate provjeriti u logovima:
· Kratki ili nepotpuni logovi.
· Logovi s cudnim oznakama vremena.
· Logovi s netocnim dozvolama ili vlasnistvom.
· Znakovi ponovnog dizanja sustava ili ukljucivanja usluga.
· Nedostajuci logovi.
· su zapisi ili logini iz cudnih mjesta.
O podacima iz logova sustava govorit cemo kasnije.
44.. LLookkaallnnaa ssiigguurrnnoosstt
Slijedeca stvar koju trebate pogledati je osigurnost vaseg 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 pokusaju na svom putu do rootovog racuna. Uz
nedostatke lokalne sigurnosti, zatim mogu "nadograditi" svoj obicni
korisnicki pristup do administratora kroz razne bagove i jadno
namjestene lokalne usluge. Ako svoju lokalnu sigurnost ucinite dobrom,
uljez ce naici na jos jednu prepreku.
Lokalni korisnici mogu uzrokovati dosta stete na vasem sustavu cak i
(posebno) ako su stvarno oni za koje se predstavljaju. Davanje racuna
ljudima koje ne poznajete ili za koje nemate kontaktnih informacija
vrlo je losa ideja.
44..11.. SSttvvaarraannjjee nnoovviihh rraaccuunnaa
Korisnicke racune trebali biste davati zadovoljavajuci samo minimalne
potrebe zadatka koji obavljaju. Ako svom desetgodisnjem sinu date
racun, mozda cete htjeti da on ima pristup samo word procesoru ili
programu za crtanje i ne moze brisati tude podatke.
Nekoliko dobrih pravila procjenjivanja kod dopustanja pristupa drugih
ljudi vasem 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 zbrisite njihov racun kada im vise nije potreban.
Mnogi racuni lokalnih korisnika koji se koriste u provalama sigurnosti
nisu koristeni mjesecima ili godinama. Posto ih nitko ne koristi,
idealno su sredstvo napada.
44..22.. SSiigguurrnnoosstt rroooottaa
Najtrazeniji racun na vasem racunalu je racun administratora. On ima
vlast nad cijelim strojem, a mozda i nad drugim strojevima na mrezi.
Sjetite se da bi rootov racun trebali koristiti samo za vrlo kratke,
odredene zadatke, a uglavnom biti obicni korisnik. Biti root cijelo
vrijeme vrlo vrlo vrlo je losa ideja.
Nekoliko trikova da ne zabrljate svoj vlastiti stroj dok ste root:
· Kada pokrecete neku slozenu naredbu, prvo je pokusajte pokrenuti u
ne-destruktivnom nacinu... Posebno naredbe koje koriste
nadopunjavanje: tj., ako hocete pokrenuti rm foo*.bak, umjesto toga
prvo napisite ls foo*.bak i provjerite da li cete obrisati
nezeljene datoteke. Koristenje naredbe echo umjesto destruktivnih
naredbi takoder ponekad pomaze.
· Neki ljudi misle da tu pomaze touch /-i. Tako ce vas naredbe poput
rm -rf * pitati da li stvarno zelite obrisati sve te datoteke.
(Zato sto vasa ljuska prvo nadopuni datoteku -i koju rm tretira kao
opciju.) To nece pomoci kod rm naredbi bez *. ;(
· Postanite root samo za pojedine posebne zadatke. Ako ne znate kako
nesto napraviti, vratite se u ljusku obicnog korisnika dok niste
_s_i_g_u_r_n_i sto root treba obaviti.
· Staza je vrlo vazna za root korisnika. Naredbena staza, odnosno
PATH varijabla okruzja, odreduje mjesta na kojima ljuska trazi
prorgame. Pokusajte ograniciti stazu za root korisnika sto je vise
moguce i nikad nemojte koristiti ., odnosno "trenutni direktorij",
u svojem PATH-u. Takoder nemojte u PATH-u imati direktorije u koje
se moze pisati jer to omogucava napadacima mijenjanje ili
smjestanje novih izvrsnih datoteka u vasu naredbenu stazu tako da
postanu root slijedeci put kada vi pokrenete tu naredbu.
· Nikad nemojte koristiti rlogin/rsh/rexec (takozvane rr--uuttiilliittiieess)
alate kao root. Oni su podlozni mnogim napadima i vrlo opasni kada
ih pokrece root. Nikad ne stvarajte .rhosts datoteku za roota.
· Datoteka /etc/securetty sadrzi popis terminala s kojih se root moze
logirati. Tu su predefinirane (na Red Hat Linuxu) samo virtualne
konzole (vty-i). Budite vrlo pazljivi kod dodavanja bilo cega
drugog ovoj datoteci. Trebali biste moci logirati se s daljine kao
obicni korisnik, a zatim, ako trebate, su (po mogucnosti preko ssh-
a ili drugog enkriptiranog kanala), tako da nema potrebe za
mogucnoscu izravnog logiranja kao root.
· Uvijek budite spori i odlucni dok ste root. Vasi postupci mogu
utjecati na mnogo stvari. Razmislite prije tipkanja!
· Ako svakako morate dopustiti nekome (po mogucnosti vrlo
provjerenom) nadkorisnicki pristup na vasem racunalu, ima nekoliko
alata koji vam mogu pomoci. sudo omogucava korisnicima da koriste
svoju lozinku za pristup ogranicenom skupu naredbi kao root. Na
primjer, to omogucava korisniku da izbacuje i montira pokretljive
medije na vasem Linux stroju, ali nema drugih root privilegija.
sudo ima i logove svih uspjesnih i neuspjesnih pokusaja pokretanja
tako da mozete otkriti tko je za sto koristio koju naredbu. Zato
sudo dobro radi cak i na mjestima gdje vise ljudi ima pristup rootu
tako da se mogu vidjeti pocinjene promjene. Iako se sudo moze
koristiti za davanje odredenih privilegija odredenom korisniku za
odredene zadatke, ima nekoliko nedostataka. Trebalo bi ga koristiti
samo za ogranicen skup zadataka, kao sto ponovno pokretanje servera
ili dodavanje novih korisnika. Svaki program koji nudi izlaz u
ljusku dat ce korisniku pristup rootu. Na primjer, to vrijedi za
vecinu editora. Takoder, nevin program poput /bin/cat moze se
koristiti za prepisivanje datoteka tako da se pristup rootu moze
zlocudno iskoristavati. sudo smatrajte sredstvom za vodenje racuna
i ne ocekujte da zamijeni roota i uz to bude siguran.
55.. SSiigguurrnnoosstt ddaattootteekkaa ii ddaattootteeccnnoogg ssuussttaavvaa
Nekoliko minuta pripreme i planiranja prije ukljucivanja u mrezu moze
pomoci u zastiti sustava i podataka koji su na njima pohranjeni.
· Ne bi trebalo biti razloga za dopustanje pokretanja SUID/SGID
programa iz korisnickih home direktorija. Za particije na koje mogu
pisati drugi osim roota koristite nosuid opciju u /etc/fstab.
Mozda cete iskoristiti i nodev i noexec na korisnickim home
particijama, kao i na /var, koje zabranjuju izvrsavanje programa i
stvaranje znakovnih ili blok uredaja, koji ionako ne bi trebali
biti potrebni.
· Ako izvozite datotecne sustave preko NFS-a, konfigurirajte
/etc/exports sa sto je vise moguce restriktivnim pristupom. To
znaci nekoristenje metaznakova, nedopustanje pisanja na / i
montiranje samo-za-citanje kad god je moguce.
· Konfigurirajte korisnicki umask za stvaranje datoteka sto
restriktivnije. Uobicajene su vrijednosti 022, 033, te
najogranicenija 077, a dodaju se u /etc/profile.
· Umjesto predefiniranog unlimited stavite granice na zauzece
datotecnog sustava. Ogranicenja po korisniku mozete mijenjati
koristenjem resource-limits PAM modula i /etc/pam.d/limits.conf. Na
primjer, ogranicenja za grupu korisnici mogla bi izgledati ovako:
@korisnici hard core 0
@korisnici hard nproc 50
@korisnici hard rss 5000
Ovo zabranjuje stvaranje core datoteka, ogranicava broj procesa na
50 i koristenje memorije na 5 MB po korisniku.
· Datoteke /var/log/wtmp i /var/run/utmp sadrze zapise o logiranju
svih korisnika sustava. Cjelovitost ove datoteke mora se odrzati
jer se ona preko nje mozete saznati kada i od kamo je korisnik (ili
moguci uljez) usao na vas sustav. Ove datoteke takoder bi trebale
imati dozvole 644, bez utjecaja na normalan rad sustava.
· immutable bit moze se koristiti za sprecavanje slucajnog brisanja
ili prepisivanja datoteke koja mora biti zasticena. Takoder
sprecava simbolicko vezanje na tu datoteku, sto su koristili napadi
brisanja /etc/passwd i /etc/shadow. Za vise informacija o immutable
bitu pogledajte man stranicu chattr(1).
· SUID i SGID datoteke na vasem sustavu moguc su sigurnosni rizik i
pazljivo ih treba pratiti. Zbog toga sto 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
straznji ulaz za slijedeci put, cak i ako je izvorna rupa
zacepljena. Nadite sve SUID/SGID programe na svom sustavu i
pratite njihovo stanje, tako da ste svjesni bilo kakvih promjena
koje bi mogle znaciti moguceg uljeza. Koristite slijedecu naredbu
za trazenje svih SUID/SGID programa na sustavu:
root# find / -type f \( -perm -04000 -o -perm -02000 \)
Slobodno pomocu chmod(1) maknite SUID ili SGID dozvole na sumnjivom
programu, a zatim ih vratite ako bas bude potrebno.
· Datoteke u koje svi mogu pisati, pogotovo datoteke sustava, mogu
biti sigurnosna rupa ako kreker pristupi vasem sustavu i izmijeni
ih. Takoder, direktoriji u koje svi mogu pisati opasni su jer
omogucuju krekeru da po zelji dodaje ili brise datoteke. Za
lociranje svih datoteka u koje svi mogu pisati koristite ovu
naredbu:
root# find / -perm -2 -print
i provjerite zasto svi mogu pisati u njih. Tokom normalnog rada bit
ce nekoliko takvih datoteka, ukljucujuci neke iz /dev i simbolicke
veze.
· Datoteke bez vlasnika takoder mogu pokazati da je uljez pristupio
vasem sustavu. Datoteke koje nemaju vlasnika ili ne pripadaju grupi
mozete naci naredbom:
root# find / -nouser -o -nogroup -print
· Trazenje .rhosts datoteka takoder bi trebalo biti dio vasih
uobicajenih duznosti administratora jer one ne bi smjele biti
dopustene na vasem sustavu. Zapamtite, kreker treba samo jedan
nesiguran racun da mozda dobije pristup vasoj cijeloj mrezi. Sve
.rhosts datoteke na sustavu mozete naci ovom naredbom:
root# find /home -name .rhosts -print
· Na kraju, prije mijenjanja dozvola na bilo kojoj datoteci sustava,
budite sigurni da znate sto radite. Nikad ne mijenjajte dozvole
datoteci jer to izgleda kao lak nacin za rjesavanje problema.
Uvijek odlucite zasto datoteka ima takve dozvole prije nego sto ih
promijenite.
55..11.. PPoossttaavvlljjaannjjee uummaasskkaa
Naredba umask moze se koristiti za mijenjanje predefiniranih dozvola
stvorenih datoteka. To je oktalni komplement zeljenog moda datoteke.
Ako se datoteke stvaraju bez ikakve brige o njihovim dozvolama,
korisnik bi mogao nenamjerno dati dozvole za citanje ili pisanje
nekome tko ih ne bi trebao imati. Tipicni umaskovi su 022, 027 i 077
koji je najrestriktivniji. Obicno se umask postavlja u /etc/profile
tako da vrijedi za sve korisnike sustava. Na primjer, mozda imate red
koji izgleda ovako:
# Postavlja predefinirani umask korisnika
umask 033
Provjerite da li je umask roota 077, sto ce iskljuciti dozvole za
citanje, pisanje ili izvrsavanje drugim korisnicima, osim ako ih
izricito ne promijenite preko chmod(1).
Ako koristite Red Hat i njihov nacin stvaranja ID-ova korisnika i
grupa (UUsseerr PPrriivvaattee GGrroouuppss -- osobne grupe korisnika), za umask je
dovoljno koristiti 002, zahvaljujuci cinjenici da je svaki korisnik u
svojoj grupi.
55..22.. DDoozzvvoollee ddaattootteekkaa
Vazno je osigurati da vase 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 moze biti samo jedan, grupa
moze imati bilo koliko clanova, te svi ostali.
Brzo objasnjenje UNIX dozvola:
VVllaassnniissttvvoo::
Koji korisnik/ci i grupa/e ima/ju kontrolu nad postavljanjem
dozvola za datoteku i njenog roditelja.
DDoozzvvoollee::
Bitovi sposobni za namjestanje ili resetiranje koji omogucuju
odredene vrste pristupa. Dozvole za direktorije mogu imati
drukcije znacenje od jednakih dozvola datoteka.
CCiittaannjjee::
· sposobnost pregledavanja sadrzaja datoteke
· sposobnost pregledavanja direktorija
PPiissaannjjee::
· sposobnost dodavanja podataka ili mijenjanja datoteke
· sposobnost brisanja i micanja datoteka u direktoriju
IIzzvvrrssaavvaannjjee::
· sposobnost pokretanja izvrsne datoteke ili skripte ljuske
· sposobnost trazenja u direktoriju, uz dozvolu za citanje
SSaavvee TTeexxtt atribut: (za direktorije)
Ljepljivi (ssttiicckkyy) bit kod direktorija takoder ima drukcije
znacenje. Ako je postavljen na direktoriju, korisnik smije
brisati samo datoteke koje posjeduje ili za koje ima izricitu
dozvolu za pisanje, cak i kada ima dozvolu za pisanje u
direktorij. Ovo je napravljeno za direktorije poput /tmp u koje
svi mogu pisati, ali gdje nije pozeljno da bilo koji korisnik po
volji brise 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 ukljucen u dozvolama vlasnika i
datoteka izvrsna, 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. Ponasa se kao i SUID, osim sto se
odnosi na grupu. Da bi to imalo ucinka datoteka takoder mora
biti izvrsna.
SSGGIIDD aattrriibbuutt:: ((zzaa ddiirreekkttoorriijjee))
Ako SGID bit ukljucite na direktoriju (preko chmod g+s
direktorij), datoteke stvorene u tom direktoriju imat ce grupu
koju ima direktorij.
VVii vlasnik datoteke
GGrruuppaa
grupa kojoj pripadate
SSvvii
svi na sustavu, osim vlasnika i clanova grupe
Primjer na datoteci:
-rw-r--r-- 1 kevin korisnici 114 Aug 28 1997 .zlogin
1. bit - direktorij? (ne)
2. bit - citanje za vlasnika? (da, za kevina)
3. bit - pisanje za vlasnika? (da, za kevina)
4. bit - izvrsavanje za vlasnika? (ne)
5. bit - citanje za grupu? (da, za korisnici)
6. bit - pisanje za grupu? (ne)
7. bit - izvrsavanje za grupu? (ne)
8. bit - citanje za sve? (da, za sve)
9. bit - pisanje za sve? (ne)
10. bit - izvrsavanje za sve? (ne)
Evo primjera minimalnih polozaja dozvola koji su potrebni za opisane
radnje. Mozda cete htjeti dati vise dozvola, ali ovo pokazuje sto
znace te minimalne dozvole:
-r-------- Vlasniku dopusta citanje datoteke
--w------- Vlasniku dopusta mijenjanje i brisanje datoteke
---x------ Vlasnik moze izvrsiti ovaj program, ali ne skriptu
ljuske, kojoj jos treba dozvola za citanje
---s------ Izvrsit ce se uz UID vlasnika
-------s-- Izvrsit ce se uz GID vlasnika
-rw------T Ne osvjezava se "vrijeme zadnje promjene". Obicno se
koristi za swap datoteke
---t------ Bez ucinka (bivsi 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 - citanje za vlasnika? (da, za kevina)
3. bit - pisanje za vlasnika? (da, za kevina)
4. bit - izvrsavanje za vlasnika? (da, za kevina)
5. bit - citanje za grupu? (da, za korisnici)
6. bit - pisanje za grupu? (ne)
7. bit - izvrsavanje za grupu? (da, za korisnici)
8. bit - citanje za sve? (da, za sve)
9. bit - pisanje za sve? (ne)
10. bit - izvrsavanje za sve? (ne, za sve)
Evo primjera minimalnih polozaja dozvola koji su potrebni za opisane
radnje. Mozda cete htjeti dati vise dozvola, ali ovo pokazuje sto
znace te minimalne dozvole:
dr-------- Sadrzaj se moze pregledati, ali ne se atributi ne
mogu procitati
d--x------ U direktorij se moze uci i koristiti u potpunim
stazama za izvrsavanje
dr-x------ A sada atribute moze citati vlasnik
d-wx------ Sad se datoteke mogu stvarati/brisati, cak i ako
direktorij nije trenutni
d------x-t Sprecava brisanje datoteka od strane drugih korisnika
s mogucnoscu pisanja. Koristi se za /tmp
d---s--s-- Bez ucinka
Konfiguracijske datoteke sustava (obicno u /etc obicno imaju dozvole
640 (-rw-r-----) i posjeduje ih root. Ovisno o sigurnosnim potrebama
vaseg sustava to mozete i promijeniti. Nikad ne ostavljajte dozvolu za
pisanje grupe ili sviju na datoteci sustava. Neke konfiguracijske
datoteke, kao sto je /etc/shadow, trebao bi moci citati 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 nece kao takve izvrsavati. Ma koliko vi mislili da je ona
sigurna, takvu skriptu mogu iskoristiti krekeri za dobivanje
root pristupa.
55..33.. PPrroovvjjeerraa ccjjeelloovviittoossttii ppoommooccuu TTrriippwwiirreeaa
Jos jedan dobar nacin otkrivanja lokalnih (a i mreznih) napada na vas
stroj je provjera cjelovitosti, kao sto je Tripwire. Tripwire
izracunava niz checksumova za sve vase vazne programe i
konfiguracijske datoteke i usporeduje ih s podacima o prijasnjim,
dobro poznatim vrijednostima. Tako ce se pokazati sve promjene
datoteka.
Dobra je ideja instalirati Tripwire na disketu i zatim je fizicki
zastititi od pisanja. Na taj nacin uljezi ne mogu petljati sa samim
Tripwireom ili mijenjati podatke. Kad Tripwire jednom namjestite,
dobro je pokretati ga kao dio vasih normalnih duznosti sigurnosnog
administratora da vidite da li nesto promijenjeno.
Cak mozete dodati crontab zapis koji svake noci pokrece Tripwire s
diskete i salje vam rezultate. Nesto kao:
# postavljamo adresu
MAILTO=kevin
# pokrecemo Tripwire
15 05 * * * root /usr/local/adm/tcheck/tripwire
poslat ce vam izvjestaj svakog jutra u 5:15.
Tripwire je dar s neba za otkrivanje uljeza prije nego sto biste ih
inace primjetili. Posto se na prosjecnom sustavu mijenja mnogo
datoteka, morate pazljivo razlikovati aktivnost krekera i svoj
vlastiti rad.
55..44.. TTrroojjaannsskkii kkoonnjjii
Trojanski konj dobio je ime po poznatoj prijevari iz Homerovog velikog
knjizevnog djela. Ideja je u tome da napravite program ili izvrsnu
datoteku koja izgleda sjajno i koju ce drugi ljudi nabaviti i
pokrenuti kao root. Zatim mozete kompromitirati njihov sustav dok ne
paze. Dok oni misle da program koji su upravo skinuli radi jedno (a to
moze biti i istina), on takoder ponistava osiguranje.
Pazite koje programe instalirate na svoje racunalo. Red Hat nudi MD5
provjeru i PGP potpise, RPM datoteke tako da se mozete uvjeriti da
instalirate pravu stvar. Druge distribucije imaju slicne metode. Nikad
ne pokrecite program za kojeg nemate izvornog koda ili dobro poznatu
izvrsnu datoteku kao root! Malo ce napadaca izvorni kod izloziti oku
javnosti.
Iako to moze biti dosta slozeno, provjerite da li izvorni kod programa
nabavljate s izvornog mjesta distribucije. Ako cete ga pokretati kao
root, provjerite sami ili netko kome vjerujete izvorni kod.
66.. SSiigguurrnnoosstt lloozziinnkkii ii eennkkrriippcciijjaa
Jedna od najvaznijih nacina osiguranja koji se koriste u danasnje
vrijeme su lozinke. Vazno je da vi i svi vasi korisnici imate sigurne,
nepogodive lozinke. Vecina novijih Linux distribucija dolaze s
programom passwd koji ne dopusta lozinke koje je lako pogoditi.
Provjerite da li je vas passwd svjez i da li ima takve mogucnosti.
Dublje ulazenje u temu enkripcije izvan je dosega ovog dokumenta, ali
potreban je barem uvod. Enkripcija je vrlo korisna, mozda cak i
potrebna u ovakvom dobu. Postoji mnogo nacina enkriptiranja podataka,
svaki sa svojim osobinama.
Vecina 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 (obicno) /etc/passwd ili (neuobicajenije) /etc/shadow.
Kada se pokusate logirati, sto god upisete ponovo se enkriptira i
usporeduje s zapisom u datoteci u kojoj su vase lozinke. Ako se slazu,
to mora biti ista lozinka i ulaz vam je dopusten. Iako je DES
dvosmjeran algoritam enkripcije (mozete enkriptirati i dekriptirati
poruku ako imate prave kljuceve) varijanta koju vecina Unixa koristi
jednosmjerna je. Dakle, ne bi trebalo biti moguce obrnuti smjer
enkripcije i dobiti lozinku iz sadrzaja /etc/passwd (odnosno
/etc/shadow).
Napadi grubom silom kao sto je Crack ili John the Ripper (v. dolje)
cesto pogode lozinke ako one nisu dovoljno slucajne. PAM moduli (v.
dolje) omogucavaju koristenje razlicitog nacina enkripcije lozinki
(MD5 ili slicno).
O izabiranju dobre lozinke mozete procitati na
.
66..11.. PPGGPP ii kkrriippttooggrraaffiijjaa jjaavvnniihh kklljjuucceevvaa
Kriptografija javnih kljuceva, koju koristi i PGP, koristi jedan kljuc
za enkripciju i jedan za dekripciju. Tradicionalno, kriptografija
koristi za enkripciju isti kljuc kao i za dekripciju. Taj "osobni
kljuc" mora biti poznat obje strane i na neki nacin sigurno prenesen
od jedne do druge.
Kriptografija javnih kljuceva ponistava potrebu sigurnog prenosenja
kljuca koji se koristi za enkripciju pomocu koristenja dva odvojena
kljuca, javnog kljuca i osobnog kljuca. Javni kljuc svake osobe
dostupan je svakome za enkripciju, no osobni kljuc ima samo ta osoba
kako bi dekriptirala poruke sifrirane tocnim javnim kljucem.
I kriptografija javnih i kriptografija osobnih kljuceva imaju svoje
prednosti -- o tim razlikama govori se u RRSSAA CCrryyppttooggrraapphhyy FFAAQQ,
navedenom na kraju ovog dijela.
PGP (PPretty GGood PPrivacy -- prilicno dobra privatnost) na Linuxu je
dobro podrzan. Verzije 2.6.2 i 5.0 dobro funkcioniraju. Za dobar uvod
u PGP i kako ga koristiti pogledajte PPGGPP FFAAQQ,
. Pazite da uzmete
verziju koja odgovara vasoj zemlji, jer se prema ogranicenjima izvoza
iz SAD-a jaka enkripcija smatra vojnim oruzjem i njeno prenosenje u
elektronskom obliku izvan zemlje je zabranjeno.
Tu je i vodic korak-po-korak u konfiguriranju PGP na Linuxu, koji se
moze naci na
.
Napisan je za medunarodnu verziju PGP-a, ali lako se primjeni na
verziju za SAD. Mozda ce vam trebati i zakrpa za neke od najnovijih
Linux verzija koja se moze naci na
.
Vise informacija o kriptografiji moze se naci u RRSSAA CCrryyppttooggrraapphhyy FFAAQQ
na . Tu cete naci informacije o
stvarima kao sto je "Diffie-Hellman", "kriptografija javnih kljuceva",
"digitalne potvrde", itd.
66..22.. SSSSLL,, SS--HHTTTTPP,, HHTTTTPPSS ii SS//MMIIMMEE
Korisnike cesto zanimaju razlike izmedu raznih sigurnosnih i
enkripcijskih protokola, te njihovo koristenje. Iako ovo nije dokument
o enkripciji, bilo bi dobro da razjasnimo sto je sto i gdje naci vise
informacija.
SSSSLL::
(SSecure SSockets LLayer) metoda je enkripcije koju je razvio
Netscape za sigurnost preko Interneta. Podrzava nekoliko
razlicitih enkripcijskih protokola i omogucava autentifikaciju
klijenta i posluzitelja. SSL radi na razini prijenosa stvarajuci
sigurni kanal podataka i tako moze transparentno enkriptirati
mnoge vrste podataka. To cete najcesce vidjeti pregledavajuci u
Communicatoru siguran dokument sa sigurnog posluzitelja, a sluzi
kao osnova sigurnih komunikacija pomocu Communicatora, kao i
mnoge druge enkripcije podataka Netscape Communicationsa. Vise
informacija moze se naci na
.
Informacije o drugim Netscapeovim sigurnosnim implementacijama i
dobra pocetna tocka za ove protokole nalazi se na
.
SS--HHTTTTPP::
S-HTTP je jos jedan protokol koji omogucava sigurne usluge preko
Interneta. Napravljen je da pruzi povjerljivost, provjerenost,
cjelovitost i nezamjenjivost istovremeno podrzavajuci mehanizme
za rad s vise kljuceva i kriptografske algoritme kroz
pregovaranje opcija izmedu strana umijesanih u svaku
transakciju. S-HTTP je ogranicen 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 poste i drugih tipova poruka preko Interneta. To je
otvoren standard kojeg razvija RSA, pa se nadamo da cemo ga
uskoro vidjeti i na Linuxu. Vise informacija o S/MIME-u moze se
naci na
.
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 mreza, koji takoder
pruza autentifikaciju, cjelovitost, kontrolu pristupa i povjerljivost.
Informacije o IPSEC-u i Internet nacrtu mogu se naci na
. Tamo su i veze
na druge protokole koji rade s kljucevima, te IPSEC mailing lista i
arhive.
Linux implementacija koja se razvija na Sveucilistu Arizone koristi x-
kernel, objektno bazirani okvir za implementiranje mreznih protokola,
a moze se naci na . Najjednostavnije receno, x-kernel je nacin
prenosenja poruka na razini kernela, sto olaksava implementaciju.
Kao i drugi oblici kriptografije, ne distribuira se zajedno s kernelom
zbog ogranicenja u izvozu.
66..44.. SSSSHH,, sstteellnneett
SSH (SSecure SShhell -- sigurna ljuska) i stelnet su programi koji vam
omogucavaju rad na udaljenim sustavima kroz enkriptiranu vezu.
SSH je skup programa koji se koriste kao sigurna zamjena za rlogin,
rsh i rcp. Za enkriptiranje izmedu dva racunala koristi kriptografiju
javnih kljuceva, kao i za provjeru korisnika. Moze se koristiti za
sigurno logiranje na udaljeno racunalo ili kopiranje podataka izmedu
racunala ujedno sprecavajuci napade izmedu (sseessssiioonn hhiijjaacckkiinngg --
otimanje sesije) i DNS ssppooooffiinngg (varanje). Sazimat ce vase veze i
osiguravati X11 veze izmedu racunala. SSH-ove WWW stranice su
.
SSH mozete koristiti i sa svoje Windows radne stanice na svoj Linux
SSH posluzitelj. Ima nekoliko besplatnih Windows implementacija
klijenta, ukljucujuci onu na
, kao i komercijalnu
implementaciju DataFellowsa na .
SSLeay je besplatna implementacija Netscapeovog Secure Sockets Layer
protokola, kao i nekoliko aplikacija, kao sto je Secure telnet, modul
za Apache, nekoliko baza podataka, te nekoliko algoritama ukljucujuci
DES, IDEA i Blowfish.
Koristeci 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 mozete naci pocevsi od SSSSLLeeaayy FFAAQQ, dostupnog na
.
66..55.. PPAAMM -- PPlluuggggaabbllee AAuutthheennttiiccaattiioonn MMoodduulleess
Novije verzije distribucije Red Hat Linux isporucuju se s jedinstvenom
shemom autentifikacije zvanom "PAM". PAM vam omogucava 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 vise informacija.
Samo neke od stvari koje mozete s PAM-om:
· Koristiti nesto sto nije DES za enkripciju svojih lozinki (sto ih
cini tezim za probijanje grubom silom).
· Postaviti ogranicenja koristenja za sve svoje korisnike tako da ne
mogu izvoditi ddeenniiaall ooff sseerrvviiccee napade (broj procesa, kolicina
memorije, itd.).
· Ukljuciti shadow lozinke u letu.
· Odredenim korisnicima dozvoliti da se logiraju samo u odredeno
vrijeme s odredenog mjesta.
Samo nekoliko sati nakon instaliranja i konfiguriranja svog sustava
mozete sprijeciti mnoge napade prije nego sto se i dogode. Na primjer,
koristite PAM za iskljucivanje koristenja .rhosts datoteka na sustavu
u home direktorijima korisnika dodavanjem ovih redova
/etc/pam.d/login:
#
# Korisnicima onemogucavamo rsh/rlogin/rexec
#
login auth required pam_rhosts_auth.so no_rhosts
66..66.. KKrriippttooggrraaffsskkaa IIPP eennkkaappssuullaacciijjaa ((CCIIPPEE))
Najvazniji cilj ovog softvera je pruziti mogucnost sigurne (od
prisluskivanja, kao i analiza prometa, te ubacivanja krivotvorenih
poruka) veze podmreza preko nesigurne paketne mreze kao sto je
Internet.
CIPE (CCryptographic IIPP EEncapsulation) podatke enkriptira na mreznoj
razini. Paketi koji putuju izmedu racunala enkriptirani su.
Enkripcija se izvodi blizu same podrske koja salje i prima pakete.
To je razlicito od SSH-a koji podatke enkriptira na vezi, na razini
socketa. Logicka veza izmedu programa na razlicitim racunalima
enkriptirana je.
CIPE se moze koristiti za ttuunnnneelllliinngg kako bi stvorili VViirrttuuaall PPrriivvaattee
NNeettwwoorrkk (virtualnu privatnu mrezu). Enkripcija na niskom nivou ima
prednost sto moze transparentno raditi izmedu dvije mreze spojene u
VPN, bez ikakvog mijenjanja aplikacija.
Sazeto iz dokumentacije CIPE-a:
IPSEC standardi definiraju skup protokola koje se moze koristiti (medu
ostalim) za izgradnju enkriptiranih VPM-ova. Medutim, IPSEC je
relativno tezak i slozen skup protokola s mnogo opcija, potpune
implementacije jos uvijek se rijetko koriste, a neka pitanja (kao sto
je rad s kljucevima) jos nisu do kraja rijesena. CIPE koristi
jednostavniji pristup u kojem se mnoge stvari (kao sto je izbor
algoritma enkripcije) mogu promijeniti samo pri instalaciji. To
ogranicava prilagodljivost, ali omogucava jednostavnu (i zato
djelotvornu, u kojoj je lako pronaci greske) implementaciju.
Vise informacija moze se naci na
.
Kao i drugi oblici kriptografije, ne distribuira se s kernelom zbog
ogranicenja 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 nacin dokazivanja identiteta drugim posluziteljima
i racunalima razbacanim na mrezi.
Ovu autentifikacija cesto koriste programi kao sto je rlogin kako bi
korisniku omogucili logiranje na druga racunala bez lozinke (umjesto
datoteke .rhosts). Autentifikaciju takoder koristi sustav poste kako
bi se zajamcila isporuka poste pravoj osobi, kao i istinit identitet
posiljatelja.
Ukupni ucinak instaliranja Kerberosa i brojnim drugih programa koji s
njime dolaze je gotovo potpuna eliminacija mogucnosti da korisnik
prevari sustav da je netko drugi. Nazalost, instalacija Kerberosa vrlo
je temeljita i zahtijeva promjene ili zamjene mnogih standardnih
programa.
Vise informacija o Kerberosu moze se naci na
, a izvorni kod na
.
(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 nacin su cuvanja vasih enkriptiranih lozinki
nedostupnim obicnom korisniku. Obicno su te enkriptirane lozinke
pohranjene u datoteci /etc/passwd gdje ih svi mogu procitati. Zatim
mogu pokrenuti programe za pogadanje lozinke i pokusati ju saznati.
Shadow lozinke te informacije pohranjuju u datoteku /etc/shadow koju
mogu citati samo privilegirani korisnici. Da bi shadow lozinke
funkcionirale, svi vasi programi kojima treba pristup informacijama o
lozinci moraju se ponovo kompajlirati kako bi ih podrzavali. PAM (vec
spomenut) vam takoder omogucava da samo ukljucite shadow modul i ne
zahtijeva ponovno kompajliranje izvrsnih datoteka. Ako je to potrebno,
za daljne informacije pogledajte SShhaaddooww PPaasssswwoorrdd HHOOWWTTOO. Dostupan je na
. Sada
je relativno zastario i nije potreban distribucijama koje podrzavaju
PAM.
66..99.. CCrraacckk ii JJoohhnn tthhee RRiippppeerr
Ako iz nekog razloga vas passwd program ne sili tesko pogodive
lozinke, mozda cete htjeti pokrenuti program za razbijanje lozinki i
provjeriti da li su lozinke vasih korisnika sigurne.
Programi za razbijanje lozinki zasnovani su na jednostavnoj ideji.
Isprobaju svaku rijec u rjecniku i zatim njihove varijacije. Svaku
enkriptiraju i provjeravaju da li se slaze s vasom enkriptiranom
lozinkom. Ako da, unutra su.
Vise ih je u divljini... Dva najzapazenija su Crack i John the Ripper
. Zauzet ce vam dosta
procesorskog vremena, ali bi vam trebali reci da li bi napadac mogao
uci koristeci ih, ako ih pokrenete prije njega i obavijestite
korisnike sa slabim lozinkama. Primjetite da bi napadac prije toga
morao iskoristiti neku drugu rupu da bi dobio vasu passwd (Unixov
/etc/passwd) datoteku, ali one su cesce nego sto mislite.
66..1100.. CCFFSS ii TTCCFFSS
CFS (Cryptographic File System -- kriptografski datotecni sustav) je
metoda enkriptiranja cijelog datotecnog sustava koji korisnicima
omogucava pohranjivanje enkriptiranih datoteka. Koristi NFS
posluzitelj koji radi na lokalnom stroju. RPM-ovi se nalaze na
, a vise informacija o tome kako to sve
radi na .
TCFS (Transparent Cryptographic File System -- transparentni...)
poboljsava CFS, dodavajuci vise integracije s datotecnim sustavom,
tako da je proziran korisnicima koji ga koriste. Vise informacija na
.
66..1111.. XX1111,, SSVVGGAA ii ssiigguurrnnoosstt pprriikkaazzaa
66..1111..11.. XX1111
Vazno je da osigurate svoj graficki prikaz kako bi sprijecili napadace
u stvarima kao sto je: krada vasih lozinki dok ih tipkate bez da ste
toga svjesni, citanje dokumenata ili informacija koje citate na svom
ekranu ili cak koristenje rupe za pristup nadkorisnika. Pokretanje X
aplikacija preko mreze takoder moze biti igranje s vatrom koje
omogucuje njuskalima da gledaju cijelu vasu interakciju s udaljenim
sustavom.
X ima vise mehanizama za kontrolu pristupa. Najjednostavniji od njih
zasniva se na imenu racunala. xhost mozete koristiti za odredivanje
racunala kojima je dozvoljen pristup vasem prikazu. To uopce nije
sigurno. Ako netko ima pristup vasem racunalu moze koristiti xhost +
svoje racunalo i lako uci. Takoder, ako dopustate pristup
neprovjerenom stroju, svatko moze gledati vas prikaz.
Ako koristite xdm (XX DDisplay MManager) za logiranje, imate puno bolju
metodu pristupa: MIT-MAGIC-COOKIE-1. Generira se 128-bitni kolacic i
sprema u vasu .Xauthority datoteku. Ako zelite omoguciti pristup svom
prikazu s drugog racunala, koristite naredbu xauth i informacije u
vasoj .Xauthority datoteci kako bi se samo toj vezi dozvolio pristup.
Procitajte X-na-daljinu mini-KAKO, dostupan na
.
Mozete koristiti i ssh (v. ssh, gore) za sigurne X veze. To ima
prednost transparentnosti krajnjem korisniku, a znaci da mrezom kolaju
samo enkriptirani podaci.
Za vise 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 racunala.
66..1111..22.. SSVVGGAA
SVGAlib programi obicno su SUID-root kako bi mogli pristupiti
grafickoj kartici vaseg Linux sustava. To ih cini vrlo opasnima. Ako
se sruse, obicno morate ponovo dignuti racunalo da bi dobili koristivu
konzolu. Provjerite da su SVGA programi koje imate autenticni i da im
se moze barem ponesto vjerovati. Jos bolje, nemojte ih uopce imati.
66..1111..33.. GGGGII
Linux GGI (GGeneric GGraphics IInterface -- projekt opceg grafickog
sucelja) projekt pokusava rjesiti nekoliko problema grafickih sucelja
na Linuxu. GGI ce malen dio video koda pomaknuti u kernel, a zatim
kontrolirati pristup grafickom sustavu. To znaci da ce GGI moci bilo
kada dovesti vasu konzolu u dobro stanje. Takoder ce omoguciti sigurne
kljuceve za upozorenje da na vasoj konzoli ne rade trojanski konji
koji se predstavljaju kao login.
77.. SSiigguurrnnoosstt kkeerrnneellaa
Ovo je opis konfiguracijskih opcija kernela koje se odnose na
sigurnost i objasnjene njihove funkcije i koristenja.
Zbog toga sto kernel kontrolira mrezni rad vaseg racunala, vazno je da
je on vrlo siguran te da mu se ne moze nastetiti. Kako bi sprijecili
neke od najnovijih mreznih napada, trebali biste pokusati odrzati
verziju svog kernela svjezom. Nove kernele mozete naci na
.
77..11.. OOppcciijjee pprrii kkoommppaajjlliirraannjjuu kkeerrnneellaa
IIPP:: DDrroopp ssoouurrccee rroouutteedd ffrraammeess ((CCOONNFFIIGG__IIPP__NNOOSSRR))
Ova bi opcija trebala biti ukljucena. Source routed okviri u
paketu sadrze cijeli put do svog odredista. To znaci da ruteri
kroz koje paket prolazi ne moraju pregledati paket, pa ga samo
proslijeduju. To moze dovesti do ulaska podataka u sustav koji
mozda iskoristavaju sigurnosnu rupu.
IIPP:: FFiirreewwaalllliinngg ((CCOONNFFIIGG__IIPP__FFIIRREEWWAALLLL))
Ova je opcija potrebna samo ako cete konfigurirati svoj stroj
kao firewall, koristiti masquerading ili zelite zastititi svoju
radnu stanicu koja se povezuje modemom od necijeg ulazenja kroz
PPP sucelje.
IIPP:: ffoorrwwaarrddiinngg//ggaatteewwaayyiinngg ((CCOONNFFIIGG__IIPP__FFOORRWWAARRDD))
Ako ukljucite IP forwarding (prosljedivanje), vas Linux sustav u
biti postaje ruter. Ako je vas stroj na mrezi, mozete
proslijedivati podatke s jedne mreze na drugu, i mozda
potkopavati firewall koji je postavljen da to sprijeci. Normalni
dial-up korisnici ovo ce iskljuciti, a ostali bi se korisnici
trebali usredotociti na sigurnosne implikacije. Racunala koja
su firewalli ovo trebaju ukljuceno, zajedno sa softverom za
firewall.
IP prosljedivanje mozete dinamicki ukljucivati naredbom:
root# echo 1 > /proc/sys/net/ipv4/ip_forward
te iskljucivati naredbom:
root# echo 0 > /proc/sys/net/ipv4/ip_forward
Ta datoteka (i mnoge druge datoteke u /proc) uvijek ce 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 pruza informacije o paketima koje je vas firewall
primio, kao sto je posiljatelj, primatelj, port, itd.
IIPP:: aallwwaayyss ddeeffrraaggmmeenntt ((CCOONNFFIIGG__IIPP__AALLWWAAYYSS__DDEEFFRRAAGG))
Inace je ova opcija iskljucena, ali ako postavljate firewall ili
masquerading, trebat cete ju ukljuciti. Kada se podaci salju od
jednog do drugog racunala, nisu uvijek poslani u jednom paketu,
nego fragmentirani u vise komada. Problem s time je sto se broj
porta pohranjuje samo u prvom fragmentu. To znaci da netko moze
ubaciti informacije u ostale pakete za vasu 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 vaseg racunala, zbog cega ga vi morate
ponovo dignuti. Nema razloga da ovo u normalnoj situaciji ne
ukljucite.
PPaacckkeett SSiiggnnaattuurreess ((CCOONNFFIIGG__NNCCPPFFSS__PPAACCKKEETT__SSIIGGNNIINNGG))
Ovo je opcija iz 2.1 serije kernela koja ce za vecu sigurnost
potpisivati NCP pakete. Obicno je mozete ugasiti, ali tu je ako
vam je potrebna.
IIPP:: FFiirreewwaallll ppaacckkeett nneettlliinnkk ddeevviiccee ((CCOONNFFIIGG__IIPP__FFIIRREEWWAALLLL__NNEETTLLIINNKK))
Ovo je stvarno zgodna opcija koja vam omogucava analizu prvih
128 bajtova paketa iz programa u korisnickom prostoru, kako bi
odlucili da li cete primiti ili odbaciti paket na osnovu njegove
valjanosti.
77..22.. KKeerrnneell uurreeddaajjii
Na Linuxu ce vam u osiguranju pomoci i nekoliko blok i znakovnih
uredaja.
Kroz dva uredaja /dev/random i /dev/urandom kernel stalno daje
slucajne podatke.
I /dev/random i /dev/urandom bi trebali biti dovoljno sigurni za
koristenje u generiranju PGP kljuceva, SSH izazova i drugim primjenama
gdje su potrebni sigurni, slucajni brojevi. Napadaci ne bi smjeli moci
predvidjeti slijedeci broj na temelju bilo kojeg pocetnog niza brojeva
iz tih izvora. Ulozeno je mnogo napora u osiguravanju da su brojevi
koje dobijete odatle slucajni u svakom smislu rijeci slucajni.
Jedina je razlika sto /dev/random-u ponestane brojeva i pa morate
cekati da ih se vise nakupi. No, na nekim sustavima, moze dugo cekati
na novi ulaz korisnickih podataka u sustav. Zato prije koristenja
/dev/random morate biti pazljivi. (Mozda je najbolje rjesenje reci
korisniku da udara po tipkovnici dok mu ne kazete "U redu, dosta je"
dok generirate osjetljive kljuceve.)
/dev/random pruza vrlo kvalitetnu entropiju, generiranu mjerenjem
vremena izmedu interruptova i slicno. Ako nema dovoljno komada
slucajnih podataka, blokira se.
/dev/urandom je slican, ali kada je zaliha entropije mala, dat ce vam
kriptografski jaku izmjenu onoga sto ima. To nije sigurno, ali je
dovoljno vecini aplikacija.
Mozda cete citati iz tih uredaja koristeci nesto kao:
root# head -c 6 /dev/urandom | uuencode -
To ce na konzoli ispisati sest slucajnih 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 sto su mi (Daveu) pomogli s ovim.
88.. SSiigguurrnnoosstt mmrreezzee
Sigurnost mreze postaje sve vise vazna jer ljudi na njoj provode sve
vise vremena. Kompromitiranje sigurnosti mreze cesto je puno lakse
nego kompromitiranje lokalne ili fizicke sigurnosti, te puno cesce.
Ima vise dobrih alata koji ce vam pomoci u osiguravanju mreze, a sve
vise ih se isporucuje s Linux distribucijama.
88..11.. SSnniiffeerrii ppaakkeettaa
Jedan od najcescih nacina na koji uljez dobiva pristup vise racunala
na vasoj mrezi je pokretanjem snifera paketa na vec osvojenom
racunalu. Taj "snifer" samo na Ethernet portu slusa stvari kao sto je
"Password", "Login" i "su" u toku paketa i zatim promet koji slijedi
zapisuje. Na taj nacin napadac dobiva lozinke za sustave u koje nije
ni pokusao provaliti. Lozinke u cistom tekstu osobito su ranjive na
takav napad.
PRIMJER: racunalo A je kompromitirano. Napadac instalira snifer.
Snifer zapazi administratora koji se logira u racunalo B s racunala C.
Dobiva osobnu lozinku administratora dok se logira na B. Zatim
administrator pokrece su da bi rijesio neki problem. Sada napadac ima
lozinku za racunalo B. Napon toga administrator nekome dopusta da se s
njegovog racuna logira na racunalo Z na nekoj drugoj mrezi. Sada
napadac ima login/lozinku za racunalo Z.
U danasnja vremena napadac vise ne mora ni kompromitirati racunalo da
bi to izveo, moze jednostavno donijeti i laptop ili PC u zgradu i
prikvaciti se na vasu mrezu.
Koristenje ssh ili drugih metoda enkriptiranja lozinki onemogucava
ovaj napad. Stvari kao sto je APOP za POP racune takoder ga
sprecavaju. (Obicni POP logini vrlo su ranjivi na njega, kao i sve
ostalo sto preko veze salje citljive lozinke.)
88..22.. UUsslluuggee ssuussttaavvaa ii ttccpp__wwrraappppeerrii
Cim svoj Linux sustav stavite na _b_i_l_o _k_o_j_u mrezu, prvo morate
pogledati koje usluge trebate ponuditi. Usluge koje ne morate nuditi
treba iskljuciti tako da se brinete o jednoj stvari manje, a napadaci
imaju manje mjesta za iskoristavanje rupa.
Pod Linuxom ima vise nacina za iskljucivanje usluga. Mozete pogledati
svoju /etc/inetd.conf datoteku i vidjeti koje usluge nudi inetd.
Iskljucite one nepotrebne komentiranjem (stavite # na pocetku reda), a
zatim svom inetd procesu posaljite SIGHUP.
Takoder mozete obrisati (ili zakomentirati) usluge u svojoj
/etc/services datoteci. To znaci da lokalni klijenti takoder nece moci
naci uslugu (tj., ako maknete FTP i pokusate FTP-ati drugo racunalo sa
svoga, dobit cete poruku "usluga nepoznata"). Obicno nema potrebe
brisati usluge jer time ne dobivate nikakvo dodatno osiguranje. Ako
lokalni korisnik zeli koristiti FTP cak i ako ste ga zakomentirali,
mogu samo reci svom klijentu da koristi standardni FTP port i raditi
potpuno normalno.
Neke od usluga koje cete zeljeti ostaviti su:
· FTP
· telnet
· mail, kao sto je POP3 ili IMAP
· identd
· time (vrijeme)
Ako znate da odredeni paket uopce necete koristiti, mozete ga i u
potpunosti obrisati. rpm -e na distribuciji Red Hat obrisat ce cijeli
paket. Na Debianu dpkg vjerojatno obavlja isti posao.
Zatim, stvarno cete zeljeti iskljuciti 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 vaseg
sustava da vidite da li se u tom direktoriju pokrecu posluzitelji koji
nisu potrebni. Datoteke u /etc/rc.d/rcB.d zapravo su simbolicke veze
na direktorij /etc/rc.d/init.d. Ako preimenujete datoteku u
direktoriju init.d, prestat ce vrijediti sve simbolicke veze iz
/etc/rc.d/rcB.d. Ako zelite iskljuciti uslugu samo za odredeni run
level, odgovarajucoj datoteci u ime stavite malo s umjesto velikog S,
kao sto je S45dhcpd.
Ako imate rc datoteke u BSD stilu, programe koji vam nisu potrebni
potrazite u /etc/rc*.
Vecina distribucija Linuxa isporucuje se s tcp_wrapperi, koji
"zamataju" sve vase TCP usluge. inetd poziva tcp_wrapper (tcpd)
umjesto pravog posluzitelja. Zatim tcpd provjerava racunalo koje
zahtijeva uslugu i poziva pravi posluzitelj ili odbija pristup tome
racunalu. tcpd vam omogucava ogranicavanje pristupa vasim TCP
uslugama. Trebali biste napraviti /etc/hosts.allow i dodati samo ona
racunala kojima je potreban pristup uslugama vaseg stroja.
Ako ste kucni korisnik s modemskom vezom, predlazemo vam odbijanje
pristupa svima. tcpd takoder logira neuspjesne pokusaje pristupa
uslugama, tako da saznate kad ste pod napadom. Ako dodate nove usluge,
konfigurirajte ih tako da za TCP koriste tcp_wrapper. Na primjer,
obicni korisnik s modemskom vezom moze sprijeciti spajanje drugih na
njegov stroj zadrzavajuci pritom mogucnost skidanja poste i
uspostavljanja veza na Internet. Ako to zelite, mozete dodati ove
redove svojem /etc/hosts.allow:
ALL: 127
I, naravno, /etc/hosts.deny bi ovako izgledao:
ALL: ALL
sto ce sprijeciti vanjska spajanja na vase racunalo, ali ostaviti
mogucnost unutarnjeg povezivanja na posluzitelje na Internetu.
88..33.. PPrroovvjjeerriittee ssvvoojjee DDNNSS--oovvee
Odrzavanje DNS informacija o svim strojevima na vasoj mrezi svjezim
moze pomoci u povecavanju sigurnosti. U slucaju povezivanja
neodobrenog stroja na vasu mrezu lako cete ga prepoznati po nedostatku
DNS zapisa. Mnoge se usluge mogu konfigurirati da ne prihvacaju veze s
racunala koje nemaju valjane DNS zapise.
88..44.. iiddeennttdd
identd je malen program koji obicno pokrece inetd. On vodi racuna o
tome koji korisnik koristi koju TCP uslugu, a zatim to prijavljuje
onima koji to traze.
Mnogi ljudi ne razumiju korisnost identda, pa ga iskljucuju ili
blokiraju sve vanjske zahtijeve za njega. identd nije tu da pomogne
udaljenim racunalima. Nema nacina na koji mozete saznati da li su
podaci koje ste dobili od udaljenog identda tocni ili ne. U identd
zahtjevima nema autentifikacije.
Zasto bi ga onda pokrenuli? Jer pomaze _v_a_m_a i jos je jedna ispomoc u
pracenju. Ako vas identd nije kompromitiran, onda znate da udaljenim
racunalima govori korisnicko ime ili UID ljudi koji koriste TCP
usluge. Ako se administrator udaljenog stroja obrati vama i kaze da je
taj i taj korisnik pokusavao upasti na njihov stroj, lako mozete
poduzeti mjere protiv tog korisnika. Ako nemate identd, morat cete
proci kroz puno puno logova, saznati tko je bio logiran u to vrijeme,
te opcenito izgubiti puno vise vremena za pronalazenje korisnika.
identd koji se isporucuje s vecinom distribucija konfigurabilniji je
nego sto mnogi misle. Za odredene korisnike ga mozete ugasiti (mogu
napraviti datoteku .noidentd), mozete biljeziti sve identd zahtjeve
(preporucam), cak ga mozete natjerati da vrati UID umjesto korisnickog
imena, ili cak NO-USER.
88..55.. SSAATTAANN,, IISSSS ii ddrruuggii mmrreezznnii sskkeenneerrii
Postoji vise raznih softverskih paketa za skeniranje strojeva i mreza
na osnovu portova i usluga. SATAN i ISS dva su poznatija. Oni se
povezu s ciljnim racunalom (ili svim takvim na mrezi) na svim mogucim
portovima, pokusavajuci saznati koje se tamo nude usluge. Na osnovu
tih informacija mozete naci racunalo ranjivo na odredenu rupu na
posluzitelju.
SATAN (SSecurity AAdministrator's TTool for AAnalyzing NNetworks -- alat
sigurnosnog administratora za analizu mreza) je port skener s WWW
suceljem. Moze se konfigurirati za laganu, srednju ili temeljitu
provjeru na racunalu ili mrezi racunala. Pametno je nabaviti SATAN i
skenirati svoje racunalo ili mrezu i popraviti pronadene probleme.
Budite sigurni da ste SATAN dobili sa sunsitea ili uglednog FTP ili
WWW posluzitelja. Preko mreze se distribuirala trojanska kopija SATAN-
a.
ISS (IInternet SSecurity SScanner) je jos jedan port skener. Brzi je od
SATAN-a i zbog toga bolji za vece mreze. Medutim, SATAN pruza vise
detalja.
Abacus-Sentry je komercijalni port skener s www.psionic.com.
Pogledajte njegovu WWW stranicu za vise informacija:
.
OOttkkrriivvaannjjee ppoorrtt sskkeenneerraa
Postoje neki alati koji ce vas uzbuniti tokom testiranja SATAN-
om, ISS-om ili drugim programima za skeniranje. No, slobodno
koristenje tcp_wrappera i redovito provjeravanje logova dat ce
isti rezultat. Cak i pri najslabijoj jacini SATAN ostavlja
tragove u log datotekama na standardnom Red Hat sustavu.
88..66.. sseennddmmaaiill,, qqmmaaiill ii MMTTAA--oovvii
Jedna od najvaznijih usluga koju mozete ponuditi je posluzitelj poste.
Nazalost, to je i jedna od najranjivijih, zbog broja zadataka koje
obavlja i privilegija koje obicno treba.
Ako koristite sendmail, vrlo je vazno odrzavati verziju svjezom.
sendmail ima dugu, dugu povijest sigurnosnih rupa. Uvijek budite
sigurni da imate najnoviju verziju.
Ako vam je dosta nadogradivanja sendmaila svaki tjedan, mozete se
prebaciti na qmail. qmail je ispocetka oblikovan s paznjom na
sigurnost. Brz je, stabilan i siguran.
88..77.. DDeenniiaall ooff SSeerrvviiccee ((ppoorriiccaannjjee uusslluuggaa)) nnaappaaddii
Kod Denial of Service napada napadac pokusava neki resurs zauzeti
toliko da on nije u stanju odgovarati na dobre zahtjeve, odnosno
uskratiti dobrim korisnicima pristup vasem stroju.
Broj takvih napada u zadnjih je nekoliko godina vrlo porastao. Neki od
najpopularnijih i najnovijih navedeni su dolje. Medutim, novi se
stalno pojavljuju, pa je ovo samo nekoliko primjera. Za svjezije
informacije citajte Linux liste o sigurnosti i bugtraq listu i arhive.
SSYYNN ffllooooddiinngg
SYN flooding (SYN "poplava") je mrezni DoS napad. Iskoristava
"kruzenje" u nacinu na koji se stvaraju TCP veze. Noviji Linux
kerneli (2.0.30 i vise) imaju nekoliko konfigurabilnih opcija za
sprecavanje SYN flood napada koji ljudima onemogucavaju pristup
vasem racunalu ili uslugama. Za pravilnu zastitu u kernelu
pogledajte dio o sigurnosti kernela.
PPeennttiiuumm FF0000FF ggrreesskkaa
Nedavno je otkriveno da niz asembliranih naredbi poslan pravom
Intel Pentium procesuru resetira racunalo. 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 sadrze zaobilaznicu za ovu gresku koja
sprecava rusenje racunala. Kernel 2.0.33 ima bolju verziju
rjesenja i preporuca se prije 2.0.32. Ako radite na Pentiumu,
odmah se nadogradite!
PPiinngg ffllooooddiinngg
Ping flooding je jednostavan DoS napad grubom silom. Napadac
vasem racunalu salje "poplavu" ICMP paketa. Ako to rade s
racunala s boljom propusnoscu mreze od vaseg, vase nece moci
poslati nista na mrezu. Varijacija ovog napada, zvana ssmmuurrffiinngg
vasem stroju salje ICMP pakete s povratnom adresom _v_a_s_e_g stroja,
tako ih je teze otkriti. Vise informacija o smurf napadu mozete
naci na .
Ako ikada budete pod ping flood napadom, koristite alat kao sto
je tcpdump kako bi otkrili odakle paketi dolaze (ili se cini da
dolaze), a zatim s tim informacijama kontaktirajte svog ISP-a.
Ping floodovi najlakse se zaustavljaju na razini rutera ili
koristenjem firewalla.
PPiinngg oo'' DDeeaatthh
Ping o' Death napad rezultat je dolazecih IICCMMPP EECCHHOO RREEQQUUEESSTT
paketa vecih od onog sto moze podnijeti kernel struktura za
pohranjivanje tih podataka. Zbog toga sto slanje jednog velikog
(65 510 bajtova) ping paketa mnogim sustavima uzrokuje njihovo
rusenje ovaj je problem ubrzo rjesen i vise se o njemu ne treba
brinuti.
TTeeaarrddrroopp//NNeeww TTeeaarr
Jedan od najnovijih napada koji iskoristava gresku u kodu za IP
fragmentaciju na Linuxu i Windowsima. Rjesen je u verziji
kernela 2.0.33 i ne zahtijeva odabiranje bilo koje opcije pri
kompajliranju kernela. Cini se da Linux nije ranjiv na newtear
napad.
Vecinu koda koji iskoristava rupe i detaljnije informacije kako rade
mozete naci na koristenjem pretrazivanja.
88..88.. SSiigguurrnnoosstt NNFFSS--aa
NFS (NNetwork FFile SSystem -- mrezni datotecni sustav) je vrlo
rasprostranjen protokol za dijeljenje datoteka. Omogucava
posluziteljima na kojima radi nfsd i mountd da "izvoze" cijele
datotecne sustave drugim strojevima koji imaju podrsku za NFS u svojim
kernelima (ili drukciju podrsku ako to nisu Linuxi). mountd vodi
racune o montiranim datotecnim sustavima u /etc/mtab i moze ih
pokazati preko naredbe showmount.
Mnogi sustavi koriste NFS za posluzivanje home direktorija
korisnicima, tako da nije vazno s kojeg se stroja u tom dijelu
logiraju jer ce uvijek imati svoje datoteke.
U izvozenju datotecnih sustava moguc je manji stupanj "sigurnosti".
Mozete natjerati nfsd da mapira vanjskog root korisnika (UID=0) na
nobody (nitko) korisnika, onemogucavajuci im potpun pristup datotekama
koje se izvoze. Medutim, posto pojedini korisnici imaju svoj pristup
(ili barem isti UID) datotekama, udaljeni se nadkorisnik moze logirati
ili su-ati na njihov racun i imati potpun pristup datotekama. To je
samo mala smetnja napadacu koji ima pristup montiranju vasih udaljenih
datotecnih sustava.
Ako bas morate koristiti NFS, provjerite da li izvozite samo onim
strojevima kojima je to nuzno. Nikad ne izvozite cijeli svoj root
direktorij, izvozite samo potrebne direktorije.
Za vise informacija o NFS-u procitajte NNFFSS HHOOWWTTOO:
.
88..99.. NNIISS ((bbiivvssii YYPP))
NIS (NNetwork IInformation SServices -- mrezna informativna usluga, bivsi
YP) je sredstvo distribuiranja informacija skupini racunala. NIS
master sadrzi informacijske tabele koje pretvara u NIS map datoteke.
Te se mape onda nude preko mreze omogucavajuci NIS klijent strojevima
dobivanje informacija o loginu, lozinki, home direktoriju i ljusci
(sve informacije iz standardnog /etc/passwd). To korisnicima omogucava
mijenjanje lozinke jednom, koje zahvaca sve stroje u NIS domeni.
NIS uopce nije siguran. To nikad nije ni trebao biti. Trebao je biti
jednostavan i koristan. Svatko tko moze pogoditi ime vase NIS domene
(bilo gdje na mrezi) moze dobiti primjerak vase passwd datoteke i
koristiti Crack i John the Ripper na lozinkama vasih korisnika. Moguce
je i prisluskivanje NIS-a i mnoge vrste prljavih trikova. Ako morate
koristiti NIS, budite barem svjesni opasnosti.
Postoji puno sigurnija zamjena za NIS, NIS+. Za vise informacija
pogledajte NNIISS HHOOWWTTOO: .
88..1100.. FFiirreewwaalllloovvii
Firewallovi su sredstvo ogranicavanja protoka informacija u i iz vase
lokalne mreze. Obicno je firewall stroj spojen i na Internet i na vas
LAN, tako da se Internetu iz vaseg LAN-a moze pristupiti samo kroz
njega. Na taj nacin firewall kontrolira sto prolazi vezom izmedu
Interneta i vaseg LAN-a.
Postoji vise vrsta i nacina postavljanja firewalla. Linux strojevi
prilicno su dobri i jeftini firewallovi. Kod za firewall moze se
ugraditi ravno u 2.0 i bolje kernele. ipfwadm, alat u korisnickom
prostoru, omogucava vam mijenjanje u letu tipova mreznog prometa koje
propustate. Odredene vrste mreznog prometa mozete i logirati.
Firewallovi su vrlo korisna i vazna tehnika osiguravanja vase mreze.
Vazno je da shvatite kako nikad ne smijete misliti da, samo zato sto
imate firewall, ne trebate sigurne strojeve iza njega. To je smrtna
greska. Pogledajte vrlo dobar FFiirreewwaallll HHOOWWTTOO na svojoj najsvjezijoj
sunsite arhivi za vise informacija o firewallima pod Linuxom.
Vise informacija takoder se moze naci u IIPP--MMaassqquueerraaddee mmiinnii--HHOOWWTTOO:
-
Vise informacija o ipfwadmu (alatu kojim mozete mijenjati opcije svog
firewalla) moze se naci na njegovoj WWW stranici:
.
99.. SSiigguurrnnoossnnee pprriipprreemmee ((pprriijjee nneeggoo ssee uukklljjuucciittee uu mmrreezzuu))
Dakle, provjerili ste svoj sustav, odlucili da je dovoljno siguran i
spremni ste ga ukljuciti u mrezu. Nekoliko je stvari koje bi sada
trebali obaviti kako bi bili spremni u slucaju da se upad stvarno
dogodi, tako da uljeza brzo mozete onemoguciti 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 rijeci 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 tesko kasnije petljati, a ako
se pravilno pohrani moze trajati dugo vremena). Trake i druge medije
na koje se ponovo moze pisati treba zastiti od pisanja cim je vas
backup potpun i provjeren za sprecavanje petljanja. Osigurajte da su
vasi backupi pohranjeni u sigurnom podrucju iskljucenom iz mreza.
Dobar backup osigurava dobru pocetnu tocku za vracanje sustava u
normalno stanje.
99..22.. IIzzbboorr ddoobbrroogg rraassppoorreeddaa bbaacckkuuppaa
Ciklus od sest traka lako je odrzavati. To se odnosi na cetiri vrpce
tijekom tjedna, jednu za parne petke i jednu za neparne petke. Svaki
dan obavljajte inkrementalni backup, a svaki petak potpuni. Ako
napravite odredene promjene ili sustavu dodate vazne podatke, backup
ce vam dobro doci.
99..33.. BBaacckkuuppiirraajjttee ssvvoojjuu RRPPMM iillii DDeebbiiaann bbaazzuu ppooddaattaakkaa ddaattootteekkaa
U slucaju provale mozete iskoristiti svoju RPM bazu podataka datoteka
kao sto koristite Tripwire, ali samo ako ste sigurni da nije
mijenjana. Kopirajte RPM bazu na disketu i stalno ju drzite izvan
mreze. Debian distribucija vjerojatno ima nesto slicno.
Tocnije, datoteke /var/lib/rpm/fileindex.rpm i
/var/lib/rpm/packages.rpm najvjerojatnije nece stati na jednu disketu.
Sazete bi trebale stati svaka na svoju.
Sada, ako je vas sustav kompromitiran, mozete koristiti naredbu:
root# rpm -Va
za provjeru svake datoteke na sustavu. Pogledajte man stranicu RPM-a
-- postoje neke opcije za manje poruka.
To znaci da ce se, svaki put kada se sustavu doda novi RPM, RPM baza
morati ponovo arhivirati. Vi odlucite sto vam je draze -- prednosti
ili nedostaci.
99..44.. PPrraacceennjjee llooggoovvaa vvaasseegg ssuussttaavvaa
Vrlo je vazno da informacije koje dolaze od sysloga nisu
kompromitirane. Dati dozvole za citanje i pisanje u /var/log samo
ogranicenom broju korisnika dobar je pocetak.
Svakako pratite sto se tamo biljezi, posebno za aauutthh. Visestruki
neuspjesni logini, na primjer, mogu znaciti pokusaj provale.
Gdje cete naci log datoteke ovisi o vasoj distribuciji. Na Linux
sustavu koji slijedi LLiinnuuxx FFiilleessyysstteemm SSttaannddaarrdd, kao sto je Red Hat,
potrazit cete ih u /var/log i tamo provjeravati messages, mail.log i
druge.
Gdje vasa distribucija logira stvari saznat cete u svojoj
/etc/syslog.conf datoteci. To je datoteka koja govori syslogd-u
(demonu za logiranje sustava) gdje da logira razne poruke.
Takoder cete mozda htjeti konfigurirati svoju skriptu ili demon za
rotiranje logova, tako da logovi traju dulje i da imate vise vremena
za njihovo pregledavanje. Na novijim distribucijama Red Hata
pogledajte paket logrotate. Druge distribucije vjerojatno imaju slican
proces.
Ako je s vasim logovima netko petljao, pokusajte saznati kada je
petljanje pocelo i s cim 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 obicno mijenja logove kako bi prikrio tragove, ali svejedno ih
treba provjeravati za cudne stvari. Mozda primjetite kako je uljez
pokusavao uci ili iskoristiti sigurnosnu rupu kako bi dobio rootov
racun. Mozda vidite logove prije nego sto ih uljez stigne izmjeniti.
Trebali biste odvojiti auth od drugih logova, kao sto su pokusaji
koristenja su za zamjenu korisnika, pokusaje logina i druge
informacije o korisnicima.
Ako je to moguce, konfigurirajte syslog da salje kopije svih
najvaznijih podataka na siguran sustav. To ce sprijeciti uljeza u
prikrivanju tragova preko brisanja svojih pokusaja logina/su-a/FTP-
a/itd. Pogledajte man stranicu syslog.conf i opciju @@.
Na kraju, log datoteke su mnogo nekorisnije kada ih nitko ne cita.
Oduzmite si malo vremena svako malo i pogledajte svoje logove, te
probajte shvatiti kako izgleda obican dan. To ce vam pomoci u
uocavanju neobicnih stvari.
99..55.. PPrriimmjjeenniittee ssvvee nnoovvee nnaaddooggrraaddnnjjee ssuussttaavvaa
Vecina korisnika Linuxa instalira s CD-ROM-a. Zbog brzog ritma
sigurnosnih ispravaka, stalno izlaze novi (ispravljeni) programi.
Prije nego sto se povezete s mrezom, pametno je provjeriti FTP
posluzitelj svoje distribucije (na primjer ftp.redhat.com) i nabaviti
sve novije pakete otkad ste primili CD-ROM distribucije. Cesto takvi
paketi sadrze vazne sigurnosne ispravke, pa je pametno instalirati ih.
1100.. SSttoo uucciinniittii ttookkoomm ii nnaakkoonn pprroovvaallee
Dakle, jeste li slijedili neke od ovih (ili drugih) savjeta i otkrili
provalu? Najprije trebate ostati stalozeni. Panicni postupci mogu
uzrokovati vise stete od napadaca.
1100..11.. NNaarruussaavvaannjjee ssiigguurrnnoossttii uupprraavvoo ssee ooddvviijjaa
Uocavanje narusavanja sigurnosti koje se upravo odvija moze biti
napeto. Vasa reakcija imat ce velike posljedice.
Ako je narusavanje kojeg gledate fizicko, vjerojatno ste uocili nekoga
tko je provalio u vas dom, ured ili laboratorij. Trebate obavijestiti
lokalne vlasti. U laboratoriju ste mozda vidjeli kako netko pokusava
otvoriti kuciste ili resetirati stroj. Ovisno o vasem autoritetu i
postupcima, mozete ih zamoliti da prestanu ili pozvati svoje lokalno
osiguranje.
Ako ste uocili lokalnog korisnika koji pokusava narusiti vasu
sigurnost, prvo trebate potvrditi da je on stvarno onaj za kojeg
mislite da je on. Provjerite odakle se logirao. Je li to racunalo s
kojeg se i normalno logiraju? Ne? Onda ga kontaktirajte neelektronskim
sredstvima. Na primjer, pozovite ih telefonom ili odsetajte do
njihovog ureda/doma i razgovarajte s njima. Ako kazu da su logirani,
mozete ih zatraziti da objasne sto su radili ili da to prestanu
raditi. Ako nisu i nemaju blage veze o cemu govorite, taj dogadaj
vjerojatno zahtjeva dodatnu istragu. Pazite na takve dogadaje i
skupite puno informacija prije nego nekoga optuzite.
Ako ste otkrili mreznom narusavanje, najprije (ako mozete) iskljucite
mrezu. Ako su spojeni modemom, iskljucite kabel modema, a ako su
spojeni Ethernetom, iskljucite kabel Etherneta. To ce ih sprijeciti u
daljnjem nanosenju stete, a vjerojatno ce to shvatiti kao problem u
mrezi, a ne razotkrivanje.
Ako ne mozete iskljuciti mrezu (imate vrlo zaposlen posluzitelj ili
nemate fizicku kontrolu nad svojim racunalima), slijedeci najbolji
korak je onemogucavanje veza s uljezovog racunala pomocu tcp_wrappera
ili ipfwadma.
Ako ne mozete iskljuciti sve ljude sa stroja na kojem je uljez, morat
cete se zadovoljiti iskljucivanjem korisnickog racuna. Primjetite da
to nije jednostavno. Morate paziti na .rhosts datoteke, FTP pristup i
hrpu straznjih vrata).
Nakon sto ste ucinili nesto od navedenog (iskljucili mrezu,
onemogucili pristup sa njegovog racunala i/ili iskljucili njegov
racun), morate mu ubiti sve procese i odlogirati ih.
Slijedecih nekoliko minuta morate pazljivo gledati na svoj stroj jer
ce napadac pokusati uci ponovno. Mozda ce koristiti drugi racun i/ili
mreznu adresu.
1100..22.. NNaarruussaavvaannjjee ssiigguurrnnoossttii vveecc ssee ddooggooddiilloo
Uocili ste narusavanje koje se vec dogodilo ili ste ga uocili i
iskljucili (jos bolje) napadaca iz sustava. Sto sad?
1100..22..11.. ZZaattvvaarraannjjee rruuppee
Ako mozete otkriti nacin na koji je napadac usao u vas sustav,
pokusajte zatvoriti rupu. Na primjer, mozda vidite nekoliko zapisa o
FTP-u bas prije nego sto se korisnik logirao. Iskljucite FTP uslugu i
provjerite da li postoji novija verzija ili neka od listi zna
rjesenje.
Provjerite sve svoje log datoteke i pogledajte da li na vasim listama
i stranicama o sigurnosti ima novih rupa koje mozete ispraviti.
Calderine sigurnosne ispravke mozete naci na
. Red Hat jos nije odvojio
sigurnosne ispravke od ispravaka gresaka, no ispravci za njihovu
distribuciju nalaze se na . Vrlo je
vjerojatno da ce, ako je jedna tvrtka izdala sigurnosnu ispravku, to
ubrzo uciniti i ostale.
Ako ne izbacite napadaca, vjerojatno ce se vratiti. Ne samo na vase
racunalo, nego negdje na vasu mrezu. Ako je pokrenuo snifer paketa,
velike su sanse da ima pristup drugim lokalnim strojevima.
1100..22..22.. PPrrooccjjeennjjiivvaannjjee sstteettee
Najprije procjenite stetu. Sto je naruseno? Ako imate provjeru
cjelovitosti kao sto je Tripwire, pokrenite ju i ona ce vam reci. Ako
ne, morat cete sami pogledati sve svoje najvaznije podatke.
Posto je Linux sustave sve lakse i lakse instalirati, mozete svoje
konfiguracijske snimiti na sigurno, obrisati svoj disk/ove i ponovno
instalirati, a zatim vratiti korisnicke datoteke iz backupa i
konfiguracijske datoteke. To ce osigurati nov, cist sustav. Ako morate
spasavati datoteke s kompromitiranog sustava, budite posebno pazljivi
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 vas sustav
kompromitiran, potrebne podatke mozete vratiti s backupa. Naravno,
neki podaci su vrijedni i napadacu, i on ce ga ne samo unistiti, vec i
ukrasti i imati svoje kopije, ali barem cete jos uvijek imati podatke.
Provjerite nekoliko proslih backupa prije nego vratite datoteku s
kojom je petljano. Uljez je mozda kompromitirao vase datoteke prije
puno vremena, a vi ste mogli napraviti mnogo uspjesnih backupa
kompromitirane datoteke!
Narvno, mnostvo je sigurnosnih briga s backupima. Potrudite se da su
na sigurnom mjestu. Budite svjesni tko im ima pristup. (Ako napadac
moze doci do vasih backupa, ima pristup do svih vasih podataka, a da
vi toga niste ni svjesni.)
1100..22..44.. PPrroonnaallaazzeennjjee uulljjeezzaa
U redu, izbacili ste uljeza i sredili sustav, ali jos niste gotovi.
Iako ce vjerojatno vecina uljeza ostati neuhvacena, trebate prijaviti
napad.
Napad prijavite administratoru sustava s kojeg je napadac napao vas
sustav. Mozete ga naci pomocu whois ili internicove baze podataka.
Mozete mu poslati e-mail sa svim primjenjivim zapisima u logu i
datumima i vremenima. Ako ste uocili jos nesto posebno za svog
uljeza, spomenite i to. Nakon sto ste poslali e-mail, trebali biste ga
(ako ste toliko zapeli) i nazvati telefonom. Ako taj administrator
uoci vaseg napadaca, onda on moze kontaktirati administratora sustava
odakle je dosao i tako dalje.
Dobri hakeri cesto koriste mnogo posrednih sustava. Neki (ili mnogi)
od njih mozda ni ne znaju da su napadnuti. Pokusati doci do krekerovog
pocetnog sustava moze biti tesko. Ljubaznim ponasanjem prema
administratorima od njih mozete dobiti puno pomoci.
Takoder biste trebali obavijestiti sigurnosne organizacije kojih ste
dio (CERT ili slicno).
1111.. IIzzvvoorrii iinnffoorrmmaacciijjaa oo ssiigguurrnnoossttii
Tamo vani ima _p_u_n_o dobrih stranica o sigurnosti UNIX-a opcenito i
specificno Linuxa. Vrlo je vazno da se pretplatite na jednu (ili vise)
sigurnosnih mailing listi i pratite sigurnosne ispravke. Vecina takvih
listi ima vrlo malo prometa i vrlo su informativne.
1111..11.. FFTTPP ppoosslluuzziitteelljjii
CERT je CComputer EEmergency RResponse TTeam (skupina za hitnu racunalnu
pomoc). Cesto salju uzbune o trenutnim napadima uz ispravke.
Replay ima arhive mnogih programa za sigurnost. Posto su izvan SAD-a,
ne moraju postovati americka kriptografska ogranicenja.
Matt Blaze je autor CFS-a i sjajan promicatelj sigurnosti.
tue.nl je odlican sigurnosni FTP server u Nizozemskoj.
1111..22.. WWWWWW ssttrraanniiccee
TThhee HHaacckkeerr FFAAQQ je FAQ o hakerima:
COAST arhiva ima velik broj Unix sigurnosnih programa i informacija:
Rootshell.com su odlicne stranice za trazenje rupa koje trenutno
krekeri koriste:
BUGTRAQ objavljuje savjete o sigurnosnim problemima:
CERT, CComputer EEmergency RResponse TTeam (skupina za hitnu racunalnu
pomoc), objavljuje savjete o cestim napadima na Unix platforme:
Dan Farmer je autor SATAN-a i mnogih drugih sigurnosnih alata, a
njegove stranice imaju neke zanimljive ankete o sigurnosti kao i
sigurnosne alate:
The Linux security WWW dobre su stranice za informacije o sigurnosti
Linuxa:
Reptile na svojim stranicama ima dosta dobrih informacija o Linux
sigurnosti:
Infilsec ima engine za ranjivosti koji vam kaze na sto je ranjiva vasa
platforma:
CIAC redovito objavljuje sigurnosne biltene o cestim rupama:
Dobra pocetna tocka za Linux Pluggable Authentication Modules
(ukljucivi moduli za autentifikaciju) moze se naci na
.
1111..33.. MMaaiilliinngg lliissttee
BUGTRAQ: za pretplatu na BUGTRAQ posaljite poruku na
listserv@netspace.org s retkom subscribe bugtraq u tijelu poruke. (Za
arhive pogledajte gore navedeno.)
CIAC: posaljite 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 cciittaannjjee
Postoji vise dobrih knjiga o sigurnosti. Ovaj dio navest ce ih
nekoliko. Uz knjige specificno 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, sijecanj 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.. RRjjeeccnniikk
HHoosstt
Racunalni sustav povezan na mrezu. (racunalo, sustav)
FFiirreewwaallll
Komponenta ili skup komponenti koje ogranicavaju pristup izmedu
zasticene mreze i Interneta ili izmedu drugih skupina mreza.
BBaassttiioonn hhoosstt
Racunalni sustav koji mora biti vrlo osiguran jer je ranjiv na
napade, obicno zato sto je izlozen Internetu i glavna tocka
kontakta korisnika internih mreza. Ime je dobio po vrlo
utvrdenim gradevinama na vanjskim zidovima srednjevjekovnih
dvoraca. Bastioni nadgledaju kriticna podrucja obrane, obicno uz
jake zidove, prostor za dodatne trupe i ponekad korisne lonce
pune kipuceg ulja za obeshrabrivanje napadaca.
DDuuaall--hhoommeedd hhoosstt
Opce namjenski racunalni sustav koji ima barem dva mrezna
sucelja.
PPaacckkeett
Osnovna jedinica komunikacije na Internetu. (paket)
PPaacckkeett ffiilltteerriinngg
Radnja koju obavlja uredaj kako bi selektivno kontrolirao tok
podataka u i iz mreze. Filtri paketa odobravaju ili blokiraju
pakete, obicno tokom njihovog usmjeravanja iz jedne u drugu
mrezu (najcesce iz Interneta u internu mrezu i obratno). Da bi
postigli filtriranje paketa, postavljate skup pravila koji
odreduje vrste paketa (koji su sa ili za odredenu IP adresu ili
port) koje se proslijeduju i koje vrste se blokiraju.
(filtriranje paketa)
PPeerriimmeetteerr nneettwwoorrkk
Mreza dodana izmedu zasticene mreze i vanjske mreze, kako bi
pruzila dodatni sloj sigurnosti. Cesto se naziva DMZ.
PPrrooxxyy sseerrvveerr
Program koji se bavi s vanjskim posluziteljima umjesto internih
klijenata. Klijenti proxya razgovaraju s proxy posluziteljima,
koji odobrene zahtjeve klijenata prenose stvarnim
posluziteljima, a odgovore natrag klijentima.
DDeenniiaall ooff SSeerrvviiccee
Napad kod kojeg napadac zauzima resurse na vasem racunalu za
stvari koje ono ne bi smjelo raditi tako sprecavajuci normalno
koristenje vasih mreznih resursa za potrebne stvari.
BBuuffffeerr oovveerrffllooww
Uobicajeni stil kodiranja nikad ne alocira "dovoljno velike"
buffere i ne provjerava da li je presao njihovu velicinu. Kada
se takvi bufferi prepune, izvrsni program (demon ili set-uid
program) moze se natjerati na neke cudne stvari. Obicno to radi
prepunjavanjem povratne adrese funkcije na stacku da pokazuje na
drugu lokaciju.
IIPP ssppooooffiinngg
IP spoofing je slozen tehnicki napad koji se sastoji od nekoliko
dijelova. To je sigurnosna rupa koja radi tjeranjem racunala da
vjeruju da ste vi netko tko zapravo niste. Opsiran clanak o tome
objavili su daemon9, route i infinity u Phrack Magazine, 48.
broj, 7. godina.
AAuutteennttiiccaattiioonn
Mogucnost saznavanja da su primljeni podaci jednaki podacima
koji su poslani i da je navedeni posiljatelj stvarni
posiljatelj. (autentifikacija)
NNoonn--rreeppuuddiiaattiioonn
Mogucnost primatelja da dokaze kako je posiljatelj nekih
podataka stvarno poslao te podatke, iako posiljatelj poslije
moze poricati da je ikad poslao te podatke. (nezamjenjivost)
1133.. CCeessttoo ppoossttaavvlljjaannaa ppiittaannjjaa
1. Je li sigurnije kompajlirati drajver izravno u kernel umjesto kao
modul? Odgovor: Neki misle da je bolje iskljuciti mogucnost
ucitavanja podrske za uredaje preko modula jer uljez tako moze
ucitati trojanski modul ili sam ucitati modul koji bi utjecao na
sigurnost sustava. Medutim, da bi ucitali modul, morate biti root.
U datoteke modula moze pisati takoder samo root. To znaci 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 ce ucitati modul. Moduli sluze za dinamicko ucitavanje
podrske za odredene uredaje koji se mozda rjede koriste. Na
strojevima koji su posluzitelji ili firewallovi na primjer, to je
vrlo nevjerojatno. Iz tih razloga, za posluzitelje kompajliranje
izravno u kernel ima vise smisla. Takoder, moduli su sporiji od
izravne podrske u kernelu.
2. Logiranje kao root s udaljenog stroja uvijek je neuspjesno.
Odgovor: Procitajte dio o sigurnosti roota. To je ucinjeno namjerno
kako bi se udaljeni korisnici sprijecili u pokusajima spajanja
telnetom na vase racunalo kao root, sto je ozbiljna sigurnosna
rupa. Ne zaboravite, moguci uljezi vrijeme imaju na svojoj strani i
mogu automatski traziti vasu lozinku.
3. Kako da ukljucim shadow lozinke na svom Red Hatu 4.2 ili 5.0?
Odgovor: Shadow lozinke su mehanizam spremanja vasih lozinki u
datoteku koja nije uobicajena /etc/passwd. To ima nekoliko
prednosti. Prva je sto je shadow datoteka, /etc/shadow, citljiva
samo za roota, za razliku od /etc/passwd, koja mora ostati citljiva
za sve. Druga je prednost sto vi kao administrator mozete ukljuciti
ili iskljuciti racune bez da svi znaju stanje racuna drugih
korisnika. Onda se datoteka /etc/passwd koristi za pohranjivanje
imena korisnika i grupa, koje koriste programi kao sto je /bin/ls
za pretvaranje UID-a u odgovarajuce ime korisnika u sadrzaju
direktorija. Datoteka /etc/shadow sadrzi samo korisnicko ime i
njegovu lozinku, te mozda informacije o racunu, kao sto je datum
njegova istjecanja, itd. Ukljuciti shadow lozinke mozete naredbom
pwconv kao root. Trebala bi se pojaviti datoteka /etc/shadow koju
bi trebale koristiti i aplikacije. Posto koristite RH 4.2 ili
bolji, PAM moduli ce se automatski prilagoditi promjeni koristenja
normalne /etc/passwd u shadow lozinke, bez ikakvih drugih promjena.
Posto vas zanima osiguravanje vasih lozinki, mozda ce vas takoder
zanimati generiranje dobrih lozinki na pocetku. Za to mozete
koristiti pam_cracklib modul, dio PAM-a. Vasu lozinku provjerava
protiv Crack librarya kako bi vam otkrio da li ju je prelako
pogoditi iz programa za razbijanje lozinki.
4. Kako da ukljucim Apache SSL prosirenja? Odgovor:
a. Nabavite SSLeay 0.8.0 ili noviji s
.
b. Kompajlirajte, testirajte i instalirajte ga!
c. Nabavite izvorni kod Apache 1.2.5.
d. Nabavite Apache SSLeay prosirenja s
.
e. Otpakirajte ga u direktoriju s izvornim kodom apache 1.2.5 i
zakrpite Apache prema README-u.
f. Konfigurirajte ga i kompajlirajte.
Mozete pogledati i , gdje se nalaze mnogi
vec kompajlirani paketi, i to izvan SAD-a.
5. Kako da radim s korisnickim racunima, ali zadrzim sigurnost?
Odgovor: distribucija Red Hat, posebno 5.0, sadrzi velik broj alata
za mijenjanje svojstava korisnickih racuna.
· 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 korisnickih racuna. Programi groupadd,
groupmod i groupdel cine isto za grupe. Svi ovi programi svjesni
su shadowa -- dakle, ako ukljucite shadow lozinke, koristit ce
/etc/shadow za informacije o lozinkama, ako ne, nece. Za daljnje
informacije pogledajte odgovarajuce man stranice.
6. Kako mogu odredene HTML dokumente zastititi lozinkom koristeci
Apache? Odgovor: Kladim se da niste znali za
, ne? Informacije o autentifikaciji
korisnika mozete naci na
, kao i druge naputke
za sigurnost WWW-a na
.
1144.. ZZaakklljjuuccaakk
Ako se pretplatite na mailing liste za sigurnosne uzbune i pratite
trenutne verzije, mozete jako popraviti sigurnost svoga stroja. Ako
pazite na svoje log datoteke i redovito pokrecete nesto poput
Tripwirea, mozete i vise.
Na kucnom racunalu nije tesko odrzavati razumnu razinu sigurnosti. Na
poslovnim strojevima potrebno je vise napora, ali Linux moze biti
itekako sigurna platforma. Zahvaljujuci prirodi njegovog razvoja,
sigurnosni ispravci izlaze puno brze nego za komercijalne operacijske
sustave, sto Linux cini idealnim kada je sigurnost u pitanju.
1155.. ZZaahhvvaallee
Ove informacije skupljene su iz mnogih izvora. Hvala slijedecim
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 moze se naci na
. Odrzava ga Matej
Vela, mvela@public.srce.hr. Svi su prilozi, primjedbe i prijedlozi
dobrodosli.