Anda di halaman 1dari 120

GNU/Linux konferencia

Budapest 2001. szeptember 15.

A kiadvny trdelse a TEX 3.14159 verzijval kszlt, GNU/Linux opercis rendszeren. A TEX az American Mathematical Society bejegyzett vdjegye.

Szerkesztette: Zelena Endre ezelena@lme.linux.hu Linux-felhasznlk Magyarorszgi Egyeslete 1395 Budapest 62, Pf. 432, URL: http://www.lme.hu/ E-mail: info@lme.linux.hu

Minden jog fenntartva. Jelen kiadvnyt, illetve annak rszeit reproduklni, adatrgzt rendszerben trolni, o brmilyen formban vagy eszkzzel elektronikus ton, vagy ms mdon csak ezen kiadvnyra hivatkozssal, a szerz k rsos hozzjrulsval szabad. o

Tartalomjegyzk
Deim goston: Mail szerverek vdelme Fodor Orsolya: Weboldalkszts GNU/Linux alatt Ksa Attila: A Linux vllalati alkalmazsa Ksa Barna: GNU/Linux frtk a rendelkezsre lls s a teljestmny nvelsre Laky Norbert: Vkony kliens technolgia a F vrosi Brsgon o Magosnyi rpd: Nylt forrs fejlesztsi projectek dinamikja Mt Pter: Biztonsgos aktv webkiszolgl ptse Nmeth Lszl: Unix, vagy nem Unix? A Unix loza jvoje a Desktop rendszerek korban Papp Dniel Pintr Zoltn: Frtzsi megoldsok Linux-alap cluster technolgik Psztor Mikls: Digitlis alrssal kapcsolatos eszkzk s veszlyek Scheidler Balzs: Hlzati hatrvdelem eszkzei Sveg Gbor: GIMP, avagy graka unixon Zahemszky Gbor: A BSD vilga Zmb Marcell: Biztonsgos chroot kialaktsa GNU/Linux Opercis rendszeren 7

15 17 29

39 43 53

63 77

81 91 97 101

113

A konferencia tmogati

F tmogat: IBM Magyarorszg o

Tmogatk: AVNET

BalaBit HumanSoft Mission Critical Linux Polygon SuSE Telnet Magyarorszg

El sz o

dvzljk abbl az alkalombl, hogy ismt elrkezett az LME mr-mr hagyomnyos szakmai konferencija, s ezzel egytt elkszlt ez a tbb, mint szz oldalas, a konferencia el adsait tartalmaz kiadvny. o Harmadik alkalommal szervezett egyesletnk szakmai konferencit. Ez a mostani konferencia nem csak el adsai szmt tekintve ms, vagy nagyobb, mint a korbbiak, o hanem remnyeink szerint tartalmban is. Konferencinknak egy el ads erejig vendge lesz Richard M. Stallman, tovbb o tmogatnk jvoltbl eddig nem, vagy csak keveset ltott hardveren is tallkozhatunk kedvenc pingvines rendszernkkel. Remljk az el adsok, workshop-ok, illetve killtsok tallkoznak az n ignyeivel, o s viszontltjuk az LME jv beni rendezvnyein. o Amennyiben krdse, szrevtele, javaslata van, krjk ossza azt meg velnk a konferencin az LME-standjn, vagy a ks bbiekben az info@lme.linux.hu e-mail cmen. o A bevezet vgn csak azt kvnhatjuk, hogy forgassk haszonnal kiadvnyunkat, s o tallkozzunk 2002-ben, egy jabb, nagyszabs Linux-os konferencin!

Tisztelettel, A szervez k o

Mail szerverek vdelme


Deim goston 2001.08.29
Kivonat Az el ads clkit zse, hogy bemutassa a levelez szerverek ellen irnyul lego u o gyakoribb tmadsok formit s az azok ellen hozott intzkedseket. Az el ads elmleti rsze mutatja be a tmad technikkat s azok ellen hozhat o intzkedseket. A gyakorlati rsz clja, hogy bemutassa a vdelem MTA-ra oszott szerept. Az el ads gyakorlati rsznl alkalmazott szerver a postx, de az elo mleti rsznl ismertetett vdelmi mechanizmusok alkalmazhatk ms MTA-val is.

Tartalomjegyzk
1. Bevezets 2. Tmadsok az E-mail cmek megszerzsre 2.1. E-mail cmek begy jtse . . . . . . . . . . . . . . . . . . . . . . . . u 2.2. POP3 s IMAP szerver problmi . . . . . . . . . . . . . . . . . . . 2.3. Cmgy jts a webr l s levelez listkrl . . . . . . . . . . . . . . . . u o o 3. Tmadsok egyb clokbl 3.1. Szerverek tlterhelse . . . . . . . . . . . . . . . . . . . . . . . . . . 4. Egyb szolgltatsok hibi 4.1. Kongurlsi hibk . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2. Open Relay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5. Elmleti rsz sszefoglals 6. Gyakorlati megoldsok 7. Gyakorlati rsz sszefoglals 8 8 8 10 11 11 11 12 12 12 13 13 14

LME

GNU/Linux Konferencia

1. Bevezets
Az els krds, hogy mit tekintnk tmadsnak. A levelez szerverek elleni tmadsok o o nem korltozdnak a szoksos tmadsi formkra, melyeknek clja, hogy a megtmadott gpen rosszindulat programokat futassanak s kiemelt jogosultsgokat szerezzenek azon, uralmat szerezve a rendszer felett. Mivel az elektronikus levelezs mra az zleti let egyik legfontosabb informcikzvett eszkze lett, ezrt a levelek elfogsa o vagy meghamistsa is tmadsi formnak min sl. A levelek eredetisgt s esetleges o mdostsnak felfedezst biztost eszkzk bemutatsa az el adsnak nem clja, o mivel ez legnagyobb rszt valamilyen titkost algoritmus hasznlatt felttelezi. Kitrnk azonban a veszlyek msik vlfajra, a levelek eltrtsre illetve ellopsra, megszerzsre.

2. Tmadsok az E-mail cmek megszerzsre


A levelez rendszerek tbbfle mdon tmadhatk, ezekre mutatok nhny pldt, s o termszetesen az ezek elleni vdekezs lehet sgt is, ahol lehet. o

2.1. E-mail cmek begyujtse


Az els bemutatand tmadsi forma az address harvesting, azaz az email cmek beo gy jtse. Mirt tekintjk ezt tmadsi formnak? Egyrszt mert ugrdeszkt jelent ms u tmadsi formkhoz, msrszt a tmad el tt rgtn megnyit egy lehet sget. Mindeno o napi levelzse sorn bizonyra mindenki tallkozott mr kretlen hirdetssel is postaldjban, mely egy j rura, kedvezmnyre vagy nagy nyeremnyre hvta fel a gyelmt. Ez az gynevezett spam, hivatalos nevn UCE (Unsolicited Commercial E-mail). Br nem kzvetlenl veszlyeztetik felhasznlinkat vagy a rendszert mgis tmadsi formnak tekintheto. Hiszen ha sokszor kapnak az ltalunk kiszolglt domainek illetve felhasznlk kretlen leveleket, akkor lehet, hogy tovbbllnak s ms cg szolgltatsait veszik ignybe. A spam elleni vdekezst egy msik pontban trgyaljuk. Nzzk akkor teht, hogy milyen mdszerekkel lehet az MTA-n keresztl megszerezni a kiszolglt cmeket. A lehet sget kt SMTP parancs biztostja tmad szmra. Ez a kt parancs a VRFY o s az EXPN. Segtsgkkel lehet vgrehajtani az address harvesting nev tmadst. u A VRFY segtsgvel a rendszeren ltez felhasznlk nevt tudjuk megszerezni. A o kapcsolat a kvetkez kppen nz ki: o ago@localhost:~[3]# telnet mail.domain.hu 25 Trying XXX.YYY.ZZZ.TTT... Connected to mail.domain.hu. Escape character is ^]. VR220 mail.domain.hu ESMTP Sendmail 8.9.3/8.8.7; VRFY info 250 mail <info@mail.domain.hu> Ltszik teht, hogy megkaptuk a felhasznl e-mail cmt. Ha a vlasz nemleges volt, teht az e-mail cm nem ltezik, akkor a vlasz a kvetkez kppen nz ki: o ago@localhost:~[3]# telnet mail.domain.hu 25 Trying XXX.YYY.ZZZ.TTT... 8

LME

GNU/Linux Konferencia

Connected to mail.domain.hu. Escape character is ^]. VR220 mail.domain.hu ESMTP Sendmail 8.9.3/8.8.7; VRFY ago 550 ago... User unknown A helyzet azonban lehet mg rosszabb is, ha az EXPN parancs hasznlatt engedlyezzk. Ekkor ugyanis nem csak a rendszer felhasznlinak cmhez juthatnak hozz, hanem az alias fjlban s a virtulis domainek felhasznlit tartalmaz fjlban ltez o cmekhez is. A fenti kt parancs elg knnyen szkriptelheto. Gondoljunk csak bele milyen egyszer olyan Perl-szkiptet rni, mely bejelentkezik a tvoli gp 25-s portjra s ott u sorozatos lekrdezseket hajt vgre. Csak meg kell nzni, hogy milyen vlaszokat ad vissza szerver s a kapott vlaszok alapjn a ltez e-mail cmeket el tudjuk trolni egy o fjlban. A prblt felhasznlneveket vehetjk fjlbl is vagy brute-force mdszerrel is felderthetjk a tvoli gpen rvnyes e-mail cmeket. A megolds teht, hogy az MTA dokumentcijban keressk meg hogyan lehet letiltani a fenti parancsokat. Ekkor egy elutastott krsnek pldul gy kell kinznie: [root@localhost /root]# telnet 0 25 Trying 0.0.0.0... Connected to 0. Escape character is ^]. 220 localhost.localdomain ESMTP Postfix HELO localhost 250 localhost.localdomain VRFY ago 502 VRFY command is disabled Sajnos van olyan mdszer melyet nem lehet kiiktatni. E sajnlatos eredmnyt nem az SMTP protokoll gyengesge, hanem a levl fogads folyamata teszi lehet v. Ha a o telnet parancs segtsgvel ismt nyomon kvetjk a kapcsolatot, akkor ltni fogjuk, hogy hol a gyenge pont. [root@localhost]# telnet 0 25 Trying 0.0.0.0... Connected to 0. Escape character is ^]. 220 localhost.localdomain ESMTP Postfix HELO localhost 250 localhost.localdomain MAIL FROM: valaki@valahol.hu 250 Ok RCPT TO: ago 250 Ok Itt is elg knny elkpzelni egy programot, melynek segtsgvel meg tudjuk szerezni u a vals e-mail cmeket. Csak a 250-el kezd d vlaszokat kell gyelni, hogy a mego o adott mail cmre ezt a vlaszt kaptuk e. Ha igen, csak el kell trolni egy fjlban vagy adatbzisban a neveket. 9

LME

GNU/Linux Konferencia

Ez ellen a mdszer ellen nehz vdekezni, igazbl csak lasstani tudjuk a tmadt. Ez azonban elg lehet. Ha nagyon lassan kapja vissza a vlaszokat s elunja a dolgot vagy mr nem hatkony szmra a mdszer. A vdelemnek teht be kell vonnia egy kls o programot a rendszerbe, mely a prblkozsokat gyeli s tl sok megszakadt kapcsolat vagy csak a cmzett megnevezsig felptett kapcsolat szlelsekor adott ideig letiltja az adott IP-r l rkez krseket, gy ksleltetve a tmadt. Ez az id persze nem o o o tarthat rkk, de ha minden kapcsolat felplsig elg ideig vrakozni knyszerl a tmad, akkor egy id utn a cmek megszerzse olyan lass lesz, hogy mr nem ri o meg vele foglalkozni vagy megn a lebuks veszlye - ami amgy is fennll, ha a tmao dott gp rendszergazdja rendszeresen olvassa a naplfjlokat. Ez tipikusan proxynak val feladat, br nhny MTA a tl sok egy helyrol rkez kapcsolatot kpes lasstani, o ha engedlyezzk ezt a funkcit. Felmerlhet mg egy olyan vdekezsi md, melyhez ismt csak proxy kell. A tmad minden bejelentkezsre pozitv visszajelzst kap. Mirt segt ez? Ha pldul nhny msodperc alatt mintegy 500 rvnyes e-mail cmet kap vissza, akkor taln elgondolkodik azon a tmad, hogy ebb l nagyon nehz lesz kisz rni a valban ltez cmeket. o u o Sajnos ilyen proxyt mg nem lttam, legalbbis GPL vagy BSD licensz t. u Ha azonban eltekintnk attl a m kdsi mdtl, hogy az RCPT TO: utn megadott u megadott e-mail cmet nem ellen rizzk vissza rgtn, akkor mg MTA szintjn is o meg tudjuk ezt a tmadst akadlyozni. Ezt gy lehet elrni, hogy rbrjuk az MTAt, ne ellen rizze le a kapcsolat elejn az e-mail cm helyessgt, hanem csak amikor o mr megprblja a felhasznl levelesldjba menteni a levelet vagy tovbb akarja kldeni azt. A postx, mivel modulris, ezt knnyen elrhet v teszi szmunkra. Egyo szer en kikapcsoljuk a felhasznli nevek ellen rzst a leveleket fogad modulban, u o de ez majd m kdni fog a loklis levlkzvetit dmonnl. gy minden levelet s cu o met elfogad a kapcsolat kezdetn, majd visszakld egy hibazenetet a kldonek, ha a cm nem ltezik a rendszeren. Ez azonban adott esetben megnveli a szerverre nehezed terhelst. Ilyenkor vlasztanunk kell, hogy a hatkonysgot vagy a biztonsgot o helyezzk el trbe. o

2.2. POP3 s IMAP szerver problmi


Msik gyenge pont lehet egy POP3 vagy IMAP szerver. Ezek akr a felhasznl leveleinek megszerzsre is alkalmasak a cmek gy jtsn kv l. A cmek megszerzsnek u u problmja ismt az azonostsnl gykerezik -hiszen az RCPT parancs is gyakorlatilag egy azonosts-, mivel ezt mindenkppen engedlyeznnk kell. A tmads is hasonl, mint az el z pldban, csak most a POP3 vagy IMAP szervert tmadjk. A to o mad r egy szkriptet, ami POP3 protokoll esetben a USER parancsot hvja csak meg s ha az pozitv vlaszt eredmnyez, akkor mris van egy hasznlhat e-mail cme. A megolds ismt csak egy, a sorozatosan hirtelen megszaktott vagy csak bizonyos fzisig eljut kapcsolatokat gyel s az gy viselked klienseket adott ideig letilt proxy o o alkalmazsa. Akrcsak az MTA-nl itt is alkalmazhat lenne egy olyan proxy, mely minden nv lekrdezsre pozitv vlaszt ad vissza. Van olyan tmads a POP3 s IMAP szerverek ellen, mely ellen nem vdene mg egy ilyen proxy sem s valban csak a ksleltets nyjt id leges vdelemet, hacsak nem alo kalmazunk valamilyen hardveres, pldul CryptoCard-os azonostst vagy egyb trkkket. Ez az a tmads, mikor a felhasznl leveleihez akarnak hozzfrni, azokat akarjk megszerezni. Ekkor valszn leg tudjk a felhasznl e-mail cmt s a @ el tti u o nevet felhasznlva prblnak belpni a POP3 szerverre. Egy esetleges prblkozs gy nz ki: 10

LME

GNU/Linux Konferencia

[root@localhost /root]# telnet 0 110 Trying 0.0.0.0... Connected to 0. Escape character is ^]. +OK POP3 localhost.localdomain USER ago +OK User name accepted, password please PASS rosszpasswd -ERR Bad login Ekkor -az emltett hardveres megoldson kv l- csak a ksleltets segt. A krt csku kenthetjk, ha minden zleti vagy fontos magnlevl titkostva van, de ezen mdszerek trgyalsa nem tartozik az el ads trgykrbe. o

2.3. Cmgyujts a webr l s levelez listkrl o o


A nem tl gyakori s nem is tl hatkony mdszerek kz tartozik a cmek weboldalak rl trtno legy jtse. Itt a vdelem abbl llhat, hogy a mailto: HTML tag mg nem u a cmet natvan rjuk, hanem HTML kddal, pldul a @ tag helyett annak HTML kd jt rjuk. Ez a vdelem persze knnyen ttrheto, elg csak egy sed vagy awk szkriptet rni, ami lecserli az sszes tag-et az annak megfelel karakterre. De ez a cmgyujtsi o forma annyira nem hatkony, hogy igazbl ez nem szmt. Az e-mail cmek egyik legnagyobb adatbzisa a levelez listkra feliratkozottak cme. o Csbt lehet a nagyszm cm megszerzse. Az egyetlen vdekezsi md s egyben a leghatkonyabb, ha a lista adminisztrtora csak sajt maga szmra engedlyezi a feliratkozott szemlyek cmnek megtekintst. rtelemszeruen a cmek megszerzse csak a listzst felhasznlk szmra is engedlyez o rendszereken lehetsges.

3. Tmadsok egyb clokbl


Amikor mr nem a cmek megszerzse a cl, akkor egyb tmadsi formk kerlnek el trbe, ezek leggyakrabban a szolgltats ellehetlentst t zik ki clul. Ilyen lehet o u a szerver zenetekkel val bombzsa. Ez tbb clbl is trtnhet. Az egyik ilyen a szerver tlterhelse.

3.1. Szerverek tlterhelse


A mdszerek kzl npszerunek szmt az gynevezett mail bomba, amikor rvnyes felhasznlnak kldenek igen nagy mennyisg levelet. Ennek clja, hogy az MTA u leterhelje a rendszert. Ez ellen gy lehet vdekezni, hogy korltozzuk az egy helyr l rkezett kapcsolatok maximlis szmt s mestersges ksleltetst alkalmazunk. A o postx illetve a qmail rendelkezik ilyen kpessgekel. A szerver tlterhelsnek msik divatos mdja, hogy a rendszert levelek fogadsra alkalmatlann tesszk. Ezt gy lehet elrni a legbiztosabban, hogy folyamatosan, de nem s r egymsutnban megnyitja a tmad a kommunikcit s tbb megabyte mret uu u leveleket kld a cmzetnek. Ha a rendszer rosszul van megtervezve s pldul nincs kln partcin a felhasznlk leveleit trol knyvtrstruktra, el fordulhat, hogy a o fjlrendszer telt dik. A megolds teht a helyes partcionls. Mivel az sem kvntos o llapot, hogy a rendszer ugyan megy, de egyik felhasznl sem kapja meg a leveleit

11

LME

GNU/Linux Konferencia

ezrt kvtkat kell alkalmaznunk. Van olyan LDA, mely kpes ezt lekezelni, de a leggyorsabb s legbiztosabb kvta a fjlrendszeren alkalmazott.

4. Egyb szolgltatsok hibi


Most azon mdszerek kvetkeznek, melyek akkor vlnak lehet v, ha bizonyos szolo gltatsokat elrhet v tesznk, mint pldul a webes levelez fellet. Ha elrhet a weo o o bes fellet s tudjk a felhasznlnevet -ami ltalban a mail cm @ el tti rsze- akkor o ugyangy, mint a pop3 szerver esetn, itt is prblkozhatnak brute-force mdszerrel. Erre kitnoen alkalmas pldul az authforce nev program, mellyel felhasznlinkat is u tesztelhetjk. Persze egy szkript rsa itt sem lehetelen. Ha megvan a felhasznlnvjelsz pros s ismerjk a webes levelez kliens viselkedst, akkor tudjuk automatio zlni a levlkldst ezen keresztl. Viselkeds alatt a program vltozit, hvsait rtjk. Ez ellen a mdszer ellen vagy proxyval vagy msfajta modullal lehet vdekezni, mely adott szm prblkozs utn adott ideig letiltja a prblkozst a forrs IP cmr l. o Tbb olyan lehet sg maradt fent, melyek ismertetsre kerlnek, tbbek kztt az o open-relayek problmi, kongurlsi s protokoll hibk.

4.1. Kongurlsi hibk


Legel sz r nzzk a kongurlsi hibkat, melyek sszefggnek a protokollokkal. Ha o o pldul SQL adatbzisbl vesszk a felhasznlinkat, akkor ha az adatbzis tvoli gpen van s nincs semmilyen titkostott csatornval krbevve, akkor a felhasznlnv s jelsz pros clear-textben jelenhet meg a hlzaton. Ugyanez vonatkozik az LDAP adatbzisokra, br ott van beptett SSL3 tmogats. Viszont a protokollban nemrg talltak hibt, gy alkalmazsa megfontoland. Ezek a hibk viszonylag knnyen kik szblhetoek, ha az adatbzisok kln hlzatik krtyn, kln privt cmtratomnybl vlasztott cmmel rendelkeznek s zikailag is csak a kiszolglval llnak hlzati kap csolatban. Egyb mdon pldul VPN segtsgvel s t zfal szablyokkal is vdhetoek u ezek a szerverek.

4.2. Open Relay


Az elmleti rsz vgn ismerkedjnk meg az open relayek problmival. Az open relay olyan nyitott levelez szerver, mely engedi, hogy rajta keresztl a vilgon brhov kldo hessem a leveleimet. Egy gyakorlati plda. Ha n a domain.hu er s fantzianev doo u main szmra nyjtok levelezsi szolgltatst, akkor rtelemszeruen csak a domain.hu cmre rkez leveleket kell tengednem a vdelmen s trolnom vagy a felhasznl lo tal krt cmre tovbbtanom. Ezek szerint a tamado@gonosz.hu cmr l rkez leveleket nem engedhetem ms cmre, mint a doo o main.hu cmre, ami viszont loklis. Ha a tamado@gonosz.hu rajtam keresztl nem csak a domain.hu cmre tud rni, hanem pldul az valaki@aldozat.hu cmre is, akkor nagy bajban vagyok, mert open relay a szerverem. Mirt nagy baj ez? El szr is, mert a to mad rendelkezsre ll cmekre mind el tudja kldeni a levelet anlkl, hogy a sajt szervert -ha van neki- kockztatn, msodszor pedig, mert hamarosan n sem tudok levelet kldeni sehova, ugyanis egy tiltlistra kerlk. A msik gond nem kzvetlenl rm vonatkozik, de rm is hatssal lehet. Nzzk mir l van sz. Kpzeljk el, hogy a o szerveremen keresztl akrhov lehet levelet kldeni, teht open relay. A tmad kivlaszt egy adott domain-t, mondjuk az aldozat.hu-t. Majd az ldozat.hu felhasznlinak

12

LME

GNU/Linux Konferencia

nevben -amit mondjuk VRFY parancs segtsgvel szerzett meg, mert az aldozat.hu rendszergazdja sem tud rendesen mail szervert kongurlni- leveleket kld ltez ilo letve tbbsgben nem ltez e-mail cmekre. Melyiknek mi rtelme van? Egyrszt a o legtbb felhasznl nem fog rjnni, hogy a levl nem az aldozat.hu felhasznlitl jtt s mondjuk feljelenti oket vagy oket jelentik be open relaynek. Ez termszetesen csak a megrkezett, teht vals e-mail cmekre rkez levelekre vonatkozott. A direkt nem o ltez cmre kldtt levelek vissza fognak pattani, s az aldozat.hu felhasznlinak jn o egy jelents, hogy az ltaluk kldtt levl cmzett ismeretlensge folytn nem kzbesthet . Ha ez elg nagy mennyisgben fordul el , akkor egyrszt fennll a fjlrendszer o o megteltse, ha kvtt alkalmazunk ez ellen akkor pedig a felhasznl postakja telik meg s ez esetben sem tudja a szmra fontos leveleket fogadni. Az rvnyes camzettek kjt is meg lehet telteni s hasonl lesz az eredmny. Ebb l taln ltszik, hogy o nem biztos, hogy a felhasznlink tl boldogok lesznek s vagy ms szolgltat vagy ms rendszergazda utn nznek.

5. Elmleti rsz sszefoglals


Remlem sikerlt meggyoznm mindenkit a dokumentci s a protokollok ismeret nek szksgessgrol. Nhny egyszeru szablyt betartva s a levelezsben rszt vev o alkalmazsok helyes megvlasztsval a hibk s tmadsi pontok elkerlhetoek. Az el ds msodik rsze a gyakorlati alkalmazst vizsglja meg, a postx MTA haszno latt felttelezve. A gyakorlati rsz nem egy teljes kongurct, hanem az ismertetett pontok egy rsznek elkerlst segti el . o

6. Gyakorlati megoldsok
Nzzk a gyakorlati alkalmazst. Ez felttelezi, hogy tudjuk egyedl is teelpteni az alaklamzst s nem vagyunk lustk elolvasni a dokumentcit. A postxet chroot krnyezetben val futtatsra fogjuk belltani, ezzel is nvelve a biztonsgot. Ehhez nincs msra szksgnk, mint egy felteleptett postx-re s a master.cf fjl ismeretre. A master.cf egyik oszlopa a chroot nevet viseli. Amely rtk itt a y bet rtkt veszi u fel, az a chroot jailen bell indul. Mivel a chroot krnyezetben a postx programjai szmra a rendszer fggvnyknyvtrai nem elrhet ek ezrt azokat a fjlokat, melyek o szksgesek a m kdshez, be kell msolnunk a megfelel helyre. A postx forrsu o kdja mellett megtallhat egy LINUX2 nevezet szkript is. Ez elvgzi a szksges u munkt helyettnk. A Debian disztribciban tallhat csomag mr chroot krnyezetben val futtatsra lett felksztve. Ne feledkezznk el az indtszkript mdostsrl sem. A LINUX2 szkript mindenesetre nagy segtsget nyjt. Ha mr teleptettk a postxet, akkor a main.cf-ben a kvetkez sort lltsuk be: o disable_vrfy_command = yes Ezzel megakadlyozzuk a cmek feldertst a szerveren. Ahhoz, hogy korltozzuk a kldheto s fogadhat levelek mrett, a kvetkez sort hasznljuk: o message_size_limit = 10240000 Ez a belltott alaprtk. Brmikor megvltoztathatjuk a mretet, amit bjtban kell megadni. 13

LME

GNU/Linux Konferencia

Ami szintn hasznos lehet sg a postx-ben, az a fejlc s a levltrzs tvizsglsa. Ez o nem klasszikus vrusrt, de sokat tud segteni az internetes frgek korban. A fejlc s a trzs vitzsglatt gyszintn a main.cf fjlban tudjuk belltani: header_checks = regexp:/etc/postfix/header body_checks = regexp:/etc/postfix/body A fjlok tartalma regurlis kifejezseket tartalmaz, de hasznlhatak Perl regulris kifejezsek is. Ekkor a regexp helyett pcre-t kell rni a kongurcis fjlba. A sz rshez u meg kell ismernnk a regulris kifejezseken kvl az e-mailek s a MIME kdolst sajtossgait is. Az open relayek kisz rshez pedig a u maps_rbl_domains = blackholes.mail-abuse.org sort lltsuk be. Ha akarunk ms szervert is megadhatunk persze. Azonban el fordulhat o olyan eset is, hogy be akarunk engedni valakit egy letiltott szerverr l vagy ppenhogy o ki akarunk tiltani egy, a spammerek listjn (mg) nem szerepl szervert. Ehhez a posto x tbbszintu smtp szint sz rst s a klasszikus access fjlt hasznlhatjuk. lltsuk u u be a main.cf-ben (Termszetesen egy sorba rva): smtpd_sender_restrictions = check_sender_access /etc/postfix/access o Ez mr a kldo azonostsnl megfogja vagy ppen engedlyezi a leveleket a kldot l. Az access fjl formtuma a kvetkez : o artatlan@open.relay ACCEPT bunos@domain.nev REJECT @open.relay REJECT A fjl formtum pontos megismershez olvassuk el az access(5) man lapot.

7. Gyakorlati rsz sszefoglals


A gyakorlati rsz nem a teljessgre trekedett, hanem a postx-et hasznl rendszergazdk segtsre trekedett. Mindegyik mail szerverhez elg gondos dokumentci tartozik, nzznk utna az elmleti rszben ismertetett problmk megoldsnak, ha arra lehet sget ad a szoftver. o

14

Weboldalkszts GNU/Linux alatt


Fodor Orsolya <fodorsi@axelero.hu> 2001.08.29.
Kivonat Az el adsom clja: a kliensoldali weboldal-fejleszts folyamatnak s a szkso ges eszkzk s szabvnyok bemutatsa, kifejezetten GNU/Linux krnyezetben. A hallgatsg megismerkedhet a weboldal kialaktshoz szksges eszkzk hasznlatnak alapjaival (pl. HTML-szerkeszt kkel,grakai programokkal, az Ofceo csomagok beptett lehet sgeivel, hasznos segdprogramokkal), az alkalmazott o (megvalstott) szabvnyokkal s az el ads vgn betekintst kaphat a tovbbi o lehet sgeket s tanulnivalkat illet en. o o Mivel a rendelkezsre ll 45+15 perc csak a gyelemfelkeltsre, s a tmba bevezetsre elegend , az el ads vgn sszefoglalom, hogy egy webfejleszt nek o o o milyen programozsi illetve szkriptnyelvi, grakai s egyb ismereteket kell elsajttani ahhoz, hogy prov vlhasson, illetve hogy megtallja a leend feladataio nak legmegfelel bb programozsi nyelvet. o

Tartalomjegyzk
1. A honlaptervezs folyamata (ttekints) 2. Hol tartunk most? 3. Hogyan tovbb? (ttekints) 16 16 16

15

LME

GNU/Linux Konferencia

1. A honlaptervezs folyamata (ttekints)


Tervezsi szempontok

Anyaggyujts, a rendelkezsre ll forrsok elektronikus feldolgozsa (pl. fny kpek szkennelse, szvegbevitel, fjlkonverzik stb.) Grakai tervezs (pl. kpek megrajzolsa, feldolgozsa, mretezse stb.) Kdols, HTML-szerkeszt k s hasznos segdprogramok hasznlata o Tesztels tbb bngszoben (Netscape/Mozilla, Lynx, Opera, Konqeror stb.) Publikls (pl. ftp-vel vagy weben keresztl)

Az el ads kzben a hallgatkkal kzsen megterveznk s elksztnk egy egyszeru o cges honlapot. A grakai tervezsnl kapcsoldunk Sveg Gbor: GIMP cm el au o dshoz.

2. Hol tartunk most?


fontosabb tmogatott szabvnyok az egyes fejleszt eszkzkben s bngszoko ben magyar nyelv hasznlata

3. Hogyan tovbb? (ttekints)


kliensoldali ismeretek (pl. HTML, CSS, JavaScript) specilis lehet sgek s j technolgik (pl. WAP, Flash, XML, Java, streaming o media) szerveroldali ismeretek (pl. Perl/CGI, PHP stb.) adatbziskezelsi alapismeretek (pl. MySQL, PostgreSQL) (web)szerver-zemeltetsi ismeretek (pl. Apache)

A web gyors vltozkonysgnl fogva nehz lenne itt url-ek listjt, web-es olvasnivalt ajnlani, hiszen ami ma ltezik, az holnap mr nem biztos, ami ma rdekes s j, holnapra elavulhat. Emiatt azt a megoldst vlasztottam, hogy az el ads tmjval o kapcsolatos, rendszeresen frisstett listja megtallhat a http://fodorsi.ini.hu oldalon.

16

A Linux vllalati alkalmazsa


Ksa Attila 2001.08.29.
Kivonat Tavaly is volt szerencsm ugyanebben a tmban el adni, ezrt most igyekeztem o olyan anyagot sszelltani, amelyben nem szerepelnek az elmlt vben mr ismertetett cgek. rmmel jelenthetem, hogy sikerlt. Azrt rlk neki, mert ez egyben azt is jelenti, hogy kis haznkban is egyre jobban terjed a Linux.

Tartalomjegyzk
1. F vrosi Oktatstechnolgiai Kzpont o 2. Index.hu Informatikai Rt. 3. Integrity Kft. 4. Interware Kft. 5. Mecsekfuszrt Rt. 6. Mdia 6 Rdi Szeged 7. MT-Telecom Kft. 8. Pcsi Tudomnyegyetem llam- s Jogtudomnyi Kar 9. Pcsi Tudomnyegyetem Linux Konzultcis Kzpontja 10. Prm Communications & Mdia Rt. 11. Vas Megyei Brsg 18 18 19 19 20 20 21 21 23 24 25

17

LME

GNU/Linux Konferencia

1. F vrosi Oktatstechnolgiai Kzpont o


A hasznlt hardver egy HP NetServer LH3, egy darab Pentium II-es, 350 MHz-es processzorral, 256 MB RAM-mal felszerelve. Az opercis rendszer szmra egy 4 GB-os SCSI-UW merevlemez biztostja a helyet, az adatok pedig 5 darab 9 GB-os SCSI-UW merevlemezre vannak bzva, amelyek RAID-5-be vannak szervezve. A hlzati kapcsolatot egy 3Com 3c509B-TX hlzati krtya biztostja. Slackware disztribcin a kvetkez feladatokat oldottk meg: o bels fjlszerver SaMBa, o

webszerver Roxen Challenger, levelez szerver sendmail, o proxy-szerver squid.

Ezek mellett mg aprbb munki is akadnak a gpnek: DNS-szerver, nyomtatszerver, t zfal, dialup-szerver. Az ltala kiszolglt felhasznlk szma krlbell 30. u

2. Index.hu Informatikai Rt.


A http://index.hu/ cmen tallhat webszerver tulajdonkppen 4 gpbol ll jelenleg. 4 darab Compaq dl360-as gpbol alkottak clustert, melyek mindegyike a kvetkez o alkatrszekbol pl fel: kt darab Pentium III-as, 800 MHz-es processzor, 512 MB RAM s gigabites hlzati krtya. Merevlemez nincs egyik gpben sem! Opercis rendszerket s a szksges programokat a fjlszerver megosztott meghajtirl tltik be. A fjlszerver egy Compaq ml530-as gp, egy darab Pentium III-as 933 MHz-es Xeon processzorral, 1 GB RAM-mal, 8 darab 18 GB merevlemezzel s gigabites hlzati krtyval. A merevlemezek megoszlsa a kvetkez : 2x18 GB tkrzve az opeo rcis rendszernek, s 6x18 GB RAID5-be szervezve az adatoknak. NFS-en keresztl szolglja ki a webes felletet biztost gpeket. Egy adatbziskezel -szerver is van a csapatban, egy Intel sitka, kt darab 550 MHzo es Xeon processzorral, 1 GB RAM-mal, 5 darab 9 GB-os merevlemezzel. A hasznlt adatbzisok mrete is tekintlyes: krlbell 4 GB egy-egy tbla mrete, a rekordszm 3 milli krl van. Az is rdekessg, hogy ez rcfol arra a hiedelemre, hogy Intel platformon nem lehet 2 GB-nl nagyobb fjlokat ltrehozni. Ltezik megolds erre a feladatra is. A clusterre visszatrve: tudomsuk szerint Magyarorszgon az egyetlen fellelhet o Cisco localdirectort ok hasznljk. Terhelselosztst vgez a cluster 4 gpe kztt. Attl fggoen, hogy megy-e az adott webszerver s mekkora a terhelse vagy a vlaszideje, osztja ki a berkez krseket. gy elvileg optimlis a gpenknti terhels, s o egy gp kiesse nem ltszik a rendszer m kdsben. Amennyiben valamilyen okbl u kiesne egy gp a clusterb l, pillanatok alatt ki tudnk cserlni, s egy oppy segtsgo vel be is tud bootolni a fjlszerverr l. o A webes fellet el lltsra s kiszolglsra Apache webszervert hasznlnak php, o perl, MySQL s Oracle kiegsztsekkel. A felhasznlk szma krlbell napi 500.000. Ez nagyjbl 0,8-1 GB adatmennyisgnek, s 3 milli tallatnak (hit) felel meg.

18

LME

GNU/Linux Konferencia

A merevlemezek RAID-be szervezshez Mylex RAID vezrl krtykat hasznlo nak. Minden gpen Debian disztribcit alkalmaznak. Figyelemremlt, hogy a rgi rendszer bizonyos rszei is Linuxokon futottak. A squid proxyk s az adatbziskezel k, valamint az egyik webkiszolgl is Linuxos o (volt).

3. Integrity Kft.
A 2000. vi Kzpiskolai Felvteli Rendszer Internetes adatgyujt s feldolgoz szerver o oldali moduljait SuSE Linux szervereken futtatta az Integrity Kft. Hrom fggetlen Internet-kapcsolattal rendelkez szerver fogadta a tbb, mint ezer iskolbl rkez o o adatokat, valamint egy Java-alap adatbzisalkalmazst futtat szerver dolgozta fel a 400.000 rekordnyi adatot. Minden szerveren Linux futott, a gpek IBM Netnity 3000-es s 3500-as szerverek voltak. A rendszer hibtlanul teljestett, ezrt a tervek szerint a jv ben is Linuxon fog futni. o Egy msik feladatuk az INI aldomntirnytsi s regisztrcis szerver, a legnpszer bb hazai ilyen alkalmazs f kiszolglja egy IBM Netnity 5500-as gp, 512 MB u o RAM-mal. Ezen a gpen Linux alatt Java alkalmazsok s SQL adatbziskezel o fut. A Netnity 5500-as magas rendelkezsre llst biztost megoldsait a Linux a hotswap PCI buszok kivtelvel tmogatja, idn azonban vrhatan ez a tmogats is megjelenik. Egy nemrg indult project keretben kzrdek u els sorban llamigazgatsi vo o natkozs informcikat tartalmaz honlapok s adatbzis-alkalmazsok indulnak Linux szervereken. A sorozat els tagja a www.kozjegyzo.hu, tovbbi tagjai a kzeljo v ben jelennek majd meg. A terv az, hogy az v vgre az Interneten t el lehessen o rni a kzjegyz k, a hivatalok, brsgok s gyvdek adatait. o ltalban nem tl er s gpeket alkalmaznak, f knt IBM Netnity 3000-es, 3500o o as gpeket, leger sebb gpk a fent emltett Netnity 5500-as. Inkbb tbb kisebb o gpre igyekeznek sztosztani a feladatot ez is a megbzhatsgot s a stabilitst nveli. Adatbzis s alkalmazskiszolglsi clokra szinte kizrlag Linuxot hasznlnak. Az Integrity tbb, mint 10 Linux-alap gpe, mint webes alkalmazskiszolgl, adatbziskezel , Internet kiszolgl m kdik. T zfal, proxy-szerver, fjlszerver s muno u u kalloms cljra is alkalmaznak Linuxot a kvetkez szoftverekkel: adatbziskezels o PostgreSQL, Interbase, MySQL; fjlszerver SaMBa, nfs; proxy-szerver squid; t zfal TIS; levelezsi listk mailman; webszerver Apache (Roxen Challenger u csak tesztelsre), Deneb (sajt fejleszts , Java-ban kszlt). Vannak sajt fejleszts u u alkalmazsaik, melyeket Java-ban, Perl-ben, PHP-ben s C-ben rtak. Klnlegesebb terleteken is alkalmaznak Linuxot: van egy belptet rendszerk, o amellyel egy vagy tbb Linuxos gp, akr tbb ezer krtys, PIN-kdos, ujjlenyomatolvass helyet kpes vezrelni. A Linuxot megbzhatsga s kis hardverignye miatt vlasztottk ki. A szoftver C nyelven (vezrls) s PHP-ban (webfellet) r dott. Folyamatban vannak klnbz o mr s kapcsol fejlesztsek, melyeket Linux o rendszerre alapoztak.

4. Interware Kft.
Compaq Proliant illetve AlphaServer DS20, ES40-es gpeket hasznlnak Debian Linux alatt. Legnagyobb gpk egy Alphaserver ES40, 1 GB RAM-mal s 36 GB merevle-

19

LME

GNU/Linux Konferencia

mezzel. Ezen jelenleg (tmenetileg) csak krlbell 5.500 felhasznl levelezse fut, de komolyabban is ignybe kvnjk venni a kzeljvoben. Ugyanis gyakorlatilag sokszorosan tl van mretezve mind processzor, mind memria oldalrl. Az tlag szerver Compaq Proliant DL380, 256 MB RAM-mal, krlbell 36 GB merevlemezzel. A Linuxra bzott feladatok a kvetkez k: proxy-szerver squid, webszerver Roxen Chalo lenger, levelez szerver exim + Courier + IMHO, hlzatfelgyelet snmpd + mrtg, o felhasznlk menedzselse MySQL adatbziskezel n keresztl trtnik, DNS szolo gltats bind. Krlbell 5.500 felhasznlt szolglnak ki a Linuxok. Nagyon sok sajt fejleszts webes szoftvert hasznlnak, melyeknek az el lltst megknnytette u o a Linux alatt elrhet programozsi nyelvek s eszkzk b sges trhza. Az sszes o o szerver fontosabb adatainak biztonsgi mentse jelenleg kln szerverre, RAID5-be kttt merevlemezekre trtnik hlzaton keresztl (rsync segtsgvel), de tervezik DLT vsrlst, s ha sikerl, akkor tllnak a szalagra trtno mentsre.

5. Mecsekfuszrt Rt.
Egy Epox KP6-BS alaplapban lv 2 darab 550 MHz-es Pentium III-as processzor, o 2 darab Promise Ultra66 IDE vezrl vel, 256 MB RAM hajtja azt a gpet, amelyo ben 2 darab 6,4 GB-os Western Digital merevlemez helyezkedik el RAID1-be ktve a rendszer szmra, s tovbbi 2 darab 20 GB-os IBM merevlemez szintn RAID1-be ktve az adatoknak. SuSE Linux opercis rendszer gondoskodik a kvetkez proo gramok futtatsrl: f knyvi rendszer Micro Focus Application Server; nagykeo reskedelmi rendszer Sea-Change 2 (iBCS2-vel futtatva); Cobol fejleszt i rendszer o Micro Focus Object Cobol Developer Suite. Az eddigieket krlbell 50 felhasznl hasznlja. Mostanban pedig a StarOfce szerver funkciit prblgatjk, krlbell 5-7 felhasznl szmra. Kisebb alrendszerek futnak mg a rendszeren Dataex for Intel Unix segtsgvel. A programok 200-600 MB-os fjlokkal dolgoznak. Fjlrendszerknt reiserfs-t hasznlnak.

6. Mdia 6 Rdi Szeged


Kt telephelyet (Szeged s Szentes) kt ssze kt Suse Linux, amelyek 166 MHz-es Pentium processzorral, 32 MB RAM-mal s 2 GB-os merevlemezzel felszerelt szmtgpen futnak. Mindkt gpen van webkiszolgl Apache, levelez kiszolgl o qmail, ftpkiszolgl proftpd s ssh a tvoli elrshez. A kt telephely kztt a biztonsgos adatforgalom biztostshoz vpn-t alaktottak ki. Szegeden krlbell 40 felhasznlja van a Linuxos szervernek, Szentesen 10. A gpek 1,5 ve zemelnek, a kiess maximum 10 ra volt ez id alatt. Ennyi is csak a kernelfrisstsek miatt, illetve o kapcsolati problmk miatt jtt ssze. Az zenetrgzt o feladatt is egy Suse Linuxra osztottk. Ebben a gpben egy 133 MHz-es Pentium processzor ketyeg, 32 MB RAM-mal s 2 GB merevlemezzel megtmogatva. Csak szoftveres megoldst nem talltak erre a munkra, ezrt a kvetkez t csinltk: a vgetty call programjhoz ksztettek egy parancsfjlt, ami egy hango krtyn (egy GUS MAX-on) lejtsza az dvzlo zenetet, majd felvtelre kapcsol, s 30 msodpercig rgzt. A modem kimenete r van ktve a hangkrtya bemenetre, a hangkrtya kimenete pedig egy olyan ramkrhz csatlakozik, ami ha a bemenetn jel van, akkor egy rel segtsgvel prhuzamosan egy trafn keresztl csatlako zik a telefonvonalra. gy egy broadcast min sg zenetrgzt ot sikerlt ksztenik. o u

20

LME

GNU/Linux Konferencia

A rgztett zenetek a SaMBa fjlkiszolgln keresztl rhet k el a kvnsgmusor o szerkeszt je szmra. Biztonsgi ments nem kszl ezekr l az zenetekrol, miutn o o lementek az adsban trlsre kerlnek.

7. MT-Telecom Kft.
3 darab Linuxos szerver van a cgnl, mind a hrom Debian Linuxot futtat. 1. Fjlszerver 400 MHz-es Pentium II-es Celeron processzor, 128 MB RAM, 1 darab 4 GB-os s 2 darab 13 GB-os merevlemez, szoftveres RAID-del. A hasznlt alkalmazsok: fjlszerver SaMBa,

fax-szerver Hylafax, DNS-szerver bind, DHCP-szerver DHCP.

2. T zfal 400 MHz-es Pentium II-es Celeron processzor, 64 MB RAM. A haszu nlt alkalmazsok: proxy-szerver squid, pop3-proxy.

Tervezik ftp-proxy s Socks hasznlatt is. 3. Webszerver 500 MHz-es Pentium II-es Celeron processzor, 128 MB RAM. A hasznlt alkalmazsok: webszerver Apache, levelez szerver qmail + vpopmail. o

Tervezik ftp-szerver (proftpd) s Mapguide szerver kialaktst is. Munkallomsknt is hasznlnak Linuxot, irodai alkalmazsok futtatsra, valamint tesztelsre.

8. Pcsi Tudomnyegyetem llam- s Jogtudomnyi Kar


5 darab Linux szervert zemeltetnek: 1. Nyilvnos webszerver Celeron 366 MHz, 256 MB RAM, 2x15 GB merevlemez, 3C905B hlzati krtya; Renegt I (Red Hat 6.1 alap Linux); Apache + stunnel; wuftpd.

21

LME

GNU/Linux Konferencia

2. Maszkol s router-szerver Pentium 75 MHz, 32 MB RAM, 2x210 MB SCSI merevlemez, EEPRO100, 3c905B s SMC-EZ hlzati krtyk, rack-kivitel (3U magas 19");

Red Hat 6.2 alap Linux; ipchains + ipportfwd + FWTK csomag; bind (DNS-szerver).

3. CD-torony s nyomtat-szerver Celeron 366 MHz, 128 MB RAM, 2x8 GB merevlemez, 3C905B hlzati krtya, 5 darab 8-szoros Sony SCSI CD-ROM; Renegt II (Red Hat 6.1 alap Linux); SaMBa szerver; NFS, YP-kliens.

4. CD-torony, HTTP proxy-szerver s X-alkalmazsszerver Celeron 366 MHz, 128 MB RAM, 2x15 GB IDE merevlemez, 3C905B hlzati krtya, 4 darab 8-szoros Sony SCSI CD-ROM, 2 darab 40-szeres Plextor SCSI CD-ROM, 1 darab Sun DAT; Renegt II (Red Hat 6.1 alap Linux); xdm X-szerver; SaMBa szerver; squid proxy-szerver; NFS, YP-kliens; grakus alkalmazsok: qvwm, fvwm s kde ablakkezel k; o Star Ofce 5.1; Netscape; irc kliensek; Complex jogtr (Kerszv fejleszts ); u

5. levelez szerver s fjlszerver o Pentium II 300 MHz, 256 MB RAM, 2x15 GB IDE merevlemez, 3C905B s SMC-EZ hlzati krtya; Renegt II (Red Hat 6.1 alap Linux); sendmail; Apache + stunnel (kls elrsre); o ssh; NFS, YP-szerver; SaMBa szerver; APC UPS kezels (APC hlzati szerver).

22

LME

GNU/Linux Konferencia

A hlzat: a szerverek kztt 100 Mbit/sec UTP hlzat van (3Com Superstack switchen keresztl). A kliensek fel tbbszrs csillagpont elrendezsu hlzat 100 Mbit/sec gerinc, s 10 Mbit/sec vgponti sebessggel. Az internet-elrs vegszlon trtnik, 10 Mbit/sec sebessggel. Az Internet tovbbszolgltatsa 1 darab mikrohullm brigde-en keresztl 2 Mbit/sec sebessggel, s 4 darab 56 Kbit/sec sebessg u analg modemen keresztl trtnik. A kliensek: 80 darab Windows 95 s 98, Windows 3.11 az irodkban;

30 darab Windows 98 s Linux kliens a laborban; 12 darab X-terminl (NCD, Sun, DEC, vt2000 gyrtmnyok vegyesen) kln laborban; 10 darab vt320 soros terminl, valamint i386 terminlszerver, ez a folyosi levelez rendszer. o

A fentieket kiszolgl szemlyzet 3 f b l ll, 1 rendszergazda s 2 opertor. A o o felhasznlk szma 1470, ebb l krlbell 200 aktv linuxos felhasznl van, a tbbi o SaMBa illetve levelez felhasznl. o Rvidtv fejlesztsi tervek: hardver-oldalrl a bels szerverek s a t zfal cserje rack-kivitel redundns hardverre; o u u a modemes behvszerver b vtse 12 darab 56 Kbit/sec sebessg moo u demre. szoftver-oldalrl kett s port s protokoll t zfalrendszer; o u SQL-alap logolsi rendszer, PostgreSQL s syslog segtsgvel.

9. Pcsi Tudomnyegyetem Linux Konzultcis Kzpontja


Helyileg a Termszettudomnyi Kar Informatika s ltalnos Technika Tanszken tallhat ez a kzpont. Hrom laborban kiszolgli feladatokat ltnak el Linuxok. Minden laborban 12 darab Sun Sparcstation X-terminl van, ezeket szolglja ki a 3 gp, amelyek kt 600 MHz-es Pentium III processzorral, 512 MB RAM-mal s 20 GB merevlemezzel vannak felszerelve. Mindhrom gp alkalmazs-kiszolgli feladatokat lt el, teht ezeken futnak a munkallomsokon hasznlt programok. Fejlesztsi terveik is vannak, a kzeljvoben szeretnnek beszerezni hrom Sun gpet 400 MHz-es processzorral s 512 MB RAM-mal. Az elkpzelsek szerint ezeken is Linux fog futni, fjlkiszolgli s webkiszolgli feladatokat elltva. A t zfal mgtt u ezen gpek egyikre vrna a felhasznlk nyilvntartsa, a jelenlegi llspont szerint NIS segtsgvel. Az elektronikus levelezs is ezekre a gpekre van tervezve, webes felleten, valamint pine segtsgvel. A tvlati tervek kztt szerepel a 2001-es vben egy tven f s labor ltrehozsa, s ECDL tanfolyamok tartsa Linux alatt. A tananyag o kidolgozsa mg htravan, az akkreditci mg nem indult el. 23

LME

GNU/Linux Konferencia

A munkallomsokat jelenleg alapfok Linux-tanfolyamok s (februr elejt l) o rendszergazdai tanfolyamok tartsra hasznljk, valamint az oktatsban nhny dologra pldul C nyelv oktatsra. A jv ben szakprogramok (elektronika, trkpo szet, zika, matematika) is fognak futni, a Star Ofce (vagy taln az Open Ofce) lesz az irodai programcsomag, s termszetesen informatikus-oktats is lesz ezeken a gpeken. Az alkalmazott opercis rendszer neve Renegt II, amely a Red Hat Linux ltaluk ksztett magyartsa.

10.

Prm Communications & Mdia Rt.

5 darab szervert zemeltetnek, melyek kzl a legkisebb egy Pentium II 300 MHzes processzorral, 256 MB RAM-mal, SCSI merevlemezzel, a legnagyobb pedig kt Pentium III 800 MHz-es processzort, 512 MB RAM-ot s 70 GB SCSI merevlemezt tartalmaz. Ez utbbiak egy Intel vezrl segtsgvel hardveresen RAID5-be vannak o ktve. Minden szerveren Debian GNU/Linux fut, s a kvetkez ket nyjtja: o internetes szolgltatsok

dinamikus, adatbzis-alap hr-rendszer, cikkadatbzissal s kapcsoldsokkal; webmail rendszer (PrmPosta); weboldal-genertor (weboldal.com); frum; internetes folder (mappa), kpek s ms fjlok trolsra a szerverkn; egyb, adatbzis-alap szolgltatsok; Adserver a reklmok kiszolglst vgz szoftver; o pop3 s levelez szerver; o DNS-szerver; rendszermonitorozs. a cgirodban ip maszkols; proxy-szerver; levelez szerver. o A fentiek megoldsra a kvetkez f bb programokat alkalmazzk: exim, bind, o o Apache, PostgreSQL s PHP4. A biztonsgi mentsek az Amanda nev szoftver segtu sgvel trtnnek. A felhasznlk szmt a webes szolgltats miatt nehz pontosan megmondani. A Prm-rendszerben regisztrlt felhasznlk szma meghaladja a 80 ezret. A PrmPostt tbb, mint 10 ezer ember hasznlja rendszeresen. Gyakorlatilag az sszes PHP szkript sajt fejleszts , amelyekhez kivl fejleszt u o krnyezetet biztostott a Linux az eszkzeivel. Mivel internetes szerverekrol van sz, mr a munka legelejn vilgoss vlt, hogy a Linux megfelel eszkzket tud nyjtani o a kvnt clok elrshez. Az els dleges cl teht nem az volt, hogy ingyenes rendszert o ptsenek, hanem a hasznlhatsgon volt a hangsly. 24

LME

GNU/Linux Konferencia

11.

Vas Megyei Brsg

Az informatika a kilencvenes vek elejn jelent meg a brsgokon. 1998-ig az Orszgos Igazsgszolgltatsi Tancs megalakulsig a brsgi informatikai fejlesztst a megyei brsgok tbb-kevsb nllan vgeztk, ltalban a maradkelvet kvetve: volt fejleszts, ha maradt r pnz. (A szablyt er st kivtel a cgbrsgok o o orszgos hlzatnak kzponti fejlesztse.) 1992 vgt l a Vas Megyei Brsgon az azid tjt megszokott DOS-NetWare ho o lzat helyett SCO UNIX alap hlzatot helyeztek zembe. Azrt dntttek gy, mert a DOS-os vilg korltai mr kezdtek kirajzoldni, ugyanakkor meggyelhetoek voltak az Internet kibontakozsra utal els jelek. Clszer nek ltszott egy eleve nagyobb o u lehet sgeket engedo, ugyanakkor komoly mlttal, referencikkal rendelkez , de elro o het r rendszer megismerse s megszoksa. Termszetesen azrt kvetelmny volt o a mr meglv szoftverek illeszthet sge is. gy tltk meg, hogy vlasztsukkal nem o o sz ktettk le a mozgsterket: mind a DOS mind a UNIX vilga nyitott el ttk. u o A DOS-Windows 3.1 alap klienseket eleinte SCO-specikus program (PC-Interface) kapcsolta a szerverhez. Ks bb, a kliensek szmnak nvekedsvel ingyenes o (rszben nyitott forrskd) szoftverek hasznlatra trtek t. 1996-ig zemelt ez a rendszer, az SCO lnyegben fjlszerver, nyomtatszerver s CD-szerver (Complex Jogtr) funkcit ltott el. Kzben egy hlzatbovts eredmnyeknt egy msik SCO szervert is zembe helyeztek gy, hogy a kt szerver routerknt is funkcionlt, 3 koax ethernet szegmenst elltva. Linuxszal 1994-tol kezdtek el foglalkozni, egy magnton beszerzett Yggdrasil disztribcit tartalmaz CD segtsgvel (0.99.13-as kernel, X11R5, Postgres 4.1 experimental ELF loader. . . ). Eleinte kliensknt prblgattk, de hamar nyilvnvalv vlt, hogy kezesebb, mint az SCO. 1996-ban jtt el az ideje annak, hogy a szerverekre Linux kerljn, mr Slackware disztribci, 1.2-es sorozat kernellel. (Mindekzben a brsg gazdasgi hivataln bell m kdtt egy az id mlsval egyre szrklo u o NetWare hlzat 8 gppel. Ide UN*X nem tehette be a lbt. . . ) Gykeres vltozs 1998 oszn kvetkezett be. Ekkor minden megyei brsg (az addig informatikra jutott sszegekhez kpest) komoly kzponti forrsokhoz jutott, amelyet a (megye)szkhelyi brsg informatikai fejlesztsre kellett fordtania. gy dntttek, hogy a maximlis kltsghatkonysg elrse rdekben alapvet en Linuxos o rendszert alaktanak ki. Ekkorra mr kezdett beindulni a Linux-thenger, egyre tbb mrtkad folyirat, cg, frum volt knytelen reaglni a Linux-jelensgre, ezltal kezdtk igazolva ltni korbbi UNIX irny dntsk helyessgt. Vgl a rendelkezsre ll 10 milli forintbl a kvetkez t sikerlt kialaktani: o 36 vgpontos tisztn switchelt UTP hlzat (addig hzilag barkcsolt koax ethernetet hasznltak mindenhol);

1 darab szerver (10 GB UWSCSI merevlemez, CD r, CD olvas, 512 MB RAM, 24 GB DAT); 30 darab diskless (merevlemez nlkli) PC (K6-2/300, 64 MB RAM, boot epromos NIC, 15-os monitor); 1 darab hlzati nyomtat (PostScript, A3/A4, 32 lap/perc, duplexer, 3000 lapos adagol); 10 darab szemlyi lzernyomtat (8 lap/perc).

25

LME

GNU/Linux Konferencia

A topolgit gy alaktottk ki, hogy a ler/kezel irodkba 1-1 nyomtatt kzsen o hasznlnak az ott dolgozk. A bri szobkban nincs nyomtat, de a hlzati nyomtat mindenki szmra elrhet (els sorban a jogszablyok nyomtatsra a CD-s Jogtrbl). o o Szoftverknt a SuSe disztribcijt alkalmaztk, kt okbl: egyrszt megtlsk szerint a leginkbb tmogatta az j videovezrl ket, msrszt a bevezetett Applixo Ware irodai szoftver mell ezt kaptk. A klienseket alapvet en ktflekppen lehetne hasznlni: X-terminlknt, illetve o X-es munkallomsknt, attl fggoen, hogy a felhasznli programok a szerveren vagy a kliensen futnak. Ok ez utbbit vlasztottk: gy egyrszt ki van hasznlva a kliens processzornak teljestmnye, msrszt cskken a szerver terhelse, harmadrszt a loklis nyomtats gy nem jelent problmt. Minthogy mg DOS-os szoftvereik is vannak, dosemu-t muszj hasznlniuk, ami szintn ilyen elrendezst kvn. Htrnyknt el kell viselni a swap hinyt s a nagyobb LAN-svszlessg-ignyt. A kvetkez (tbb rszb l ll) nagyobb beruhzsra 1999 oszn kerlt sor. Eko o kor mr a kzpontostott kzbeszerzs keretn bell kzvetlenl jutott a brsg hardver- s szoftvereszkzkhz. Megkrtk a szllt cget, hogy tesztelhessk az ltaluk felknlt gpet a m kdo rendszerben: kiderlt, hogy az Intel alaplap (valu szn leg BIOS problmk miatt) nem volt hajland kezelni a boot-epromos hlzati u krtyt. gy teht az eredeti kongurcit mdostani kellett: msik (olcsbb) alaplapot krtek a gpekbe, merevlemez, oppy, CD s Windows nlkl, viszont gyorsabb processzorral, nagyobb memrival, s t hogy kitltsk a forintkeretet mg kt plusz o gpet s tz lzernyomtatt. (Az eredeti rendelsben egyltaln nem volt nyomtat.) (Kt rdekes trtnet ebb l az id b l: a szllt rtkestsi menedzsere eleinte o o o nem tudta elhinni, hogy nem kell minden gphez (diskless gphez!) OEM Linux. . . Amikor kiderltek az alaplappal kapcsolatos problmk, nehz volt rbeszlni a szlltt a cserre. Komolyan flmerlt bennnk, hogy ha nem megy a boot eprom, krjnk oppy meghajtt a gpekbe, de nylsval a gp belseje fel fordtva, egyszer s mindenkorra bennehagyva a boot-oppyt.) sszesen 6 darab szervert is kaptak volna a vidki brsgok elltsra (1 nagyob bat, 5 kisebbet). Mivel csak kt vidki brsgon van hlzat, az 5-bol 3-at becserltek a szlltnl: helyette krtk a brsg kt szombathelyi plete kztt mikrohullm sszekttets kiptst. A routerek termszetesen kiregedett 486-osok, Linuxszal. . . A nagy szervert a megyei brsgon lltottk munkba, az addigi szerver tartalkknt szolgl illetve az archivlsokat vgzi (naponta DAT-ra, nagyobb peridusok vgn, szoftverfrissts el tt CD-re is). Minthogy minden adat a szerveren van, a o napi mentst egy lpsben, egyszeru scripttel lehet elvgezni. Ezzel a beruhzssal lnyegben Linux-alapon ll a brsgi informatikai rendszer. Egyttal az egyre knosabb vl jogtisztasgi problmt is megoldottk. (Az ApplixWare mellett fokozatosan vezetik be a StarOfce-t.) Id kzben sajt er b l megvalso o o tottk az Internetelrst ISDN-en keresztl, s t a krmendi s a srvri brsgok fel o is van dediklt ISDN adatkapcsolat. 1999 vgn kiplt a brsgok orszgos hlzata is egy Phare projekt keretn bell: minden megyei brsg kapott 16 kbit/s garantlt svszlessg Frame Relay kapu csolatot az OITH irnyba, egy RS/6000 szervert (AIX + Apache + Samba + Oracle InterOfce (14 user)) a bels levelezs szmra s 14 IBM PC-t Windows NT-vel. Mivel o az installlt levelez rendszer m kdse s knyelme nmi kvnnivalt hagyott maga o u utn, a 14 PC-t is inkbb a loklis rendszerbe integrltk, kiiktatva az NT-ket. Az orszgos hlzat IP szmaival val tkzs miatt a loklis rendszert egy (termszetesen Linuxos) t zfallal vlasztottk le az RS/6000-rol, gy, hogy az azon mg fut InterOfu ce szksg esetn elrhet legyen. o 26

LME

GNU/Linux Konferencia

Jelenleg a szerveren a szoksos szerver szoftverek futnak: bootpd, nfs szerver, apache (bels hasznlatra), squid, bind, qmail, postgresql, mars_nwe, stb. A kzeljvoo ben fognak kapni vrusirt szoftvert is, ennek szerepe mg nem tisztzott. . . A szerver szolgltatja a Jogtrat is, de nem CD-r l, hanem a merevlemezrol a gyorsasg rdeko ben. Az 57 regisztrlt felhasznl kzl ltalban egyidejuleg kb. 30-35-t szolgl ki, kellemesen alacsony (0.1 krli) terhelssel. Folyamatosan trtnik a felhasznlk oktatsa az internetes technikkra, a F vrosi Brsg jvoltbl valamennyi felhasznl o kln kltsg nlkl e-levelezhet. Klnlegessgknt: a titkos anyagokat cfs (crypto le system) segtsgvel kdolt formban a szerveren troljk. (Kdols hinyban mobil adathordozt kne hasznlni s pnclszekrnyben trolni.) A klienseken els sorban szvegszerkeszts folyik, valamint a nagyrszt Clippero alap nyilvntartsok vezetse. Ez utbbiak tovbbra is dosemu-bl rhet k el, de o egy-kt szoftver esetn md van a kliens direkt DOS-os indtsra is. Mindkt esetben a kliens gp egyttal mars_nwe kliens is. Mr van nhny programjuk, ami a Linuxos krnyezetre kszlt. Ezek egy rsze nll fejleszts, msik rsze meglv o DOS program helyettest je illetve kiegszt je. (Ez utbbi esetekben a .dbf formj o o adatokat tteszik PostgreSQL al, s gy hasznljk fel.) Terveik kztt szerepel az LDAP bevezetse, pl. authentikci cljra. Minthogy a diskless kliensek mind ugyanazt a passwd s shadow fjlt ltjk, az LDAP alkalmazsa valjban nem srg s, de szeretnnek flkszlni az egyb LDAP-t ignyl szoftveo o rek fogadsra illetve ksztsre. Tervezik tovbbi DOS alap szoftverek kivltst Linuxos illetve multiplatformos szoftverekkel, j programok ksztst a brsgi gyvitel mg elltatlan terleteire, a vidki brsgok adatkapcsolatnak kihasznlst (e mail, adatbzis elrs). Szeretnnek ttrni a bootp-r ol dhcp-re. A fejlesztsek sorn els sorban a Python-PostgreSQL prost hasznljuk. Tekintettel a roppant egyszeru o s knnyen ttekintheto topolgira hlzatfelgyel o szoftvert egyel re nem kvnunk o hasznlni. A felhasznlk tbbsge csak annyit tud a Linuxrl, hogy ms, mint a Windows. Korbban mr tbben hasznltak Windowst, az o esetkben a grakus fellet hasznlata nem jelentett problmt, viszont az alkalmazsok mssga igen. Az els id ko o ben el fordultak vletlen dokumentumtrlsek, ilyenkor a felhasznlk els reakcija o o sokszor az volt, hogy rossz a gp. Akiknek nem volt szmtgpes tapasztalatuk, azoknl a legnagyobb problmt az egr kezelsnek megtanulsa s az rgpes mlt (az 1 s l karakterek, valamint a 0 s az o karakterek sszekeverse, a space billenty s szvegformzs) jelentette. Ok alapszint oktatsban rszesltek, s nhny u u nap alatt belejttek. A fortlyokat pedig mindig egy-egy konkrt eset kapcsn tanuljk meg. Korbban ugyanezek a problmk jelentkeztek a Windowsos krnyezetben is, gy t nik, hogy ezek a krdsek nem rendszerspecikusak. u Magval az opercis rendszerrel csak az informatikusok tallkoznak. Problmk abbl szoktak addni, hogy a .doc vagy .xls llomnyok bevitel utn nem pontosan gy nznek ki, mint egy Windowsos rendszerben. Ha nem lehet ett l eltekinteni, akkor ltao o lban ms formban (pldul .rtf) krik a kldot l az adatokat. Nem okoz klnsebb problmt a oppymeghajtk hinya sem, mert krsre brkinek a oppyn szlltott dokumentumait felteszik a rendszerre. Az irodai rendszerknt hasznlt Applixware menrendszere magyartott, ezzel nincs gond. Szokatlan zenet megjelensekor (mindegy, hogy angol vagy magyar nyelv ), u amikor a felhasznl bizonytalan a helyes vlaszban, akkor inkbb megkrdezi az informatikusokat.

27

28

GNU/Linux frtk a rendelkezsre lls s a teljestmny nvelsre


Ksa Barna <barna_kosa@hp.com> 2001.08.29.
Kivonat A Linux mg gyorsabb el retrst vllalati krnyezetben tbbek kztt kt to nyez htrltatja: kevsb ismertek a magas rendelkezsre llst biztost frt mego oldsok, s egyel re a PC-s hardveren fut Linux nem tud versenyezni a nagy Unix o szerverek sklzhatsgval. Mindkt problmra lteznek klnbz , frtzsi o technolgikra pl megoldsok. Ezek a technolgik mr jl bevltak a Unix o szerverek vilgban, s gyors temben honosodnak meg a GNU/Linux krnyezetben is.

Tartalomjegyzk
1. Bevezet o 2. Magas rendelkezsre llst biztost frtk 2.1. Megosztott diszkeket hasznl frtk . . . . . . . . . . . . . . . . . . 2.2. Megosztott elemek nlkli frtk . . . . . . . . . . . . . . . . . . . . 3. Terhelskiegyenlt frtk o 3.1. Virtulis szerverek . . . . . . . . . . . . 3.2. Egyetlen nagy SMP gpnek ltsz frtk . 3.2.1. Beowulf frtk . . . . . . . . . . 3.2.2. Mosix frtk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 30 31 32 33 33 34 35 36 36 37 38 38

4. Prhuzamos feldolgozst biztost frtk 4.1. MPI alap frtk . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2. Parallel Virtual Machine frt . . . . . . . . . . . . . . . . . . . . . . 5. sszefoglal

29

LME

GNU/Linux Konferencia

1. Bevezet o
A szmtstechnikban a frt (cluster) olyan, tbb gpbol ll kongurcit jelent, ami megsokszorozza az egyes gpek bizonyos tulajdonsgt. A frtzsi technolgikat tbb szempont szerint is osztlyozhatjuk: magas rendelkezsre lls (high availability),

terhels-kiegyenlts (load balancing), prhuzamos feldolgozs (parallel processing).

A legtbb frtzsi technolgia egyszerre tbb kategriba is besorolhat. A magas rendelkezsre lls elrsre kt alapvet megolds alkalmazhat: teljesto mny-kiegyenlto frt (pl. web szerverek esetben) s a hagyomnyos high availability cluster, ami tartalk hardvert s kzs elrs diszkeket tartalmaz. Mindkt megoldsra u szmos nylt forrskd s kereskedelmi szoftver ltezik. A magas rendelkezsre llst biztost frtk leggyakrabban adatbzis- s alkalmazsszervereket vdenek. A Mosix s Beowulf megoldsok olyan ltalnos cl szerver frtk kialaktst teszik lehet v, o amelyeken tetsz leges alkalmazsokat futtathatunk a terhelskiegyenlts s a magas o rendelkezsre lls minden el nyvel. o A teljestmny nvelsre s a prhuzamos vgrehajts tmogatsra tbb nylt forrs frtzsi megolds ltezik, pldul az MPI/LAM s a PVM. Ezek a megoldsok nemcsak Linux alatt m kdnek, ezrt heterogn krnyezetben is alkalmazni lehet u oket. Ilyen mdon igazi szuperszmtgpeket lehet ltrehozni olcs PC-s hardverb l. o A megfelel szint sklzhatsg el felttele a feladatok prhuzamostsa s a prhuo u o zamos programozs. A prhuzamostst f knt a tudomnyos s technikai szmtsok o terletn lehet alkalmazni, de az ltalnos vllalati krnyezetben is tallhat jnhny lehet sg. o

2. Magas rendelkezsre llst biztost frtk


A magas rendelkezsre llst biztost frtk (high availability cluster) megfelel hardo ver redundancia (tbb zikai szerver) s szoftver megoldsok alkalmazsval cskkentik az egyedi meghibsodsi pontok (single point of failure) szmt. A magas rendelkezsre llst biztost frtk els sorban a hardverhibk ellen vdenek, de bizonyos o opercis rendszer- s alkalmazsszintu hibkat is ki tudnak kszblni. A magas ren delkezsre llst tovbb lehet nvelni a megfelel krnyezet kialaktsval (redundns o tpellts s hlzat, krnyezeti felttelek). A magas rendelkezsre llst biztost frtk m kdse az alkalmazsok tkapcsolsn u (failover) alapszik: a meghibsodott gpen fut alkalmazsok tkapcsolnak a rendelkezsre ll tartalk gpekre. A magas rendelkezsre llst biztost frtknek alapvet en o kt fajtja ltezik : megosztott diszkeket hasznl (shared disk) frtk, megosztott elemek nlkli (shared nothing) frtk.

A magas rendelkezsre llst biztost frtk nem hibat r megoldsok, mert meghiuo bsodsok esetn bizonyos szolgltatsok rvid id re megszakadhatnak. Hossz tvon o viszont a rendelkezsre lls rendkvl magas rtkeket rhet el. 30

LME

GNU/Linux Konferencia

2.1. Megosztott diszkeket hasznl frtk


Egy tipikus magas rendelkezsre llst biztost, megosztott diszkeket hasznl (shared disk) frt kongurcijt az 1. bra mutatja.

Ethernet heartbeat Soros heartbeat 1. gp Kzs diszk


2. gp

A csomag

B csomag

A frt kt gpbol ll s mindkett aktv szerepet tlt be: alkalmazsokat futtat s ksz o tvenni a msik gp alkalmazsait. A frt lnyeges jellemz je, hogy a kt gp egy kzs o SCSI buszon vagy Storage Area Network-n keresztl ri el a megosztott diszkeket. A frt megfelel m kdst egy mdostott kernel s dmon processzek biztostjk. A o u frt gpei bizonyos id kznknt gynevezett heartbeat jeleket kldenek egymsnak o LAN-on (tbb hlzati krtyn is lehetsges) vagy soros vonalon keresztl. Amennyi ben a bejvo heartbeat jelek az egyik gpen kimaradnak, a gp gy veszi, hogy a msik gp nem m kdik s megkezd dik a frt jraalakulsi folyamata. Az jraalakult frt u o mr csak egyetlen gpbol ll, amelyik tveszi a meghibsodott gp alkalmazsait. A meghibsodott gp jraindtskor automatikusan, vagy kzi vezrlssel csatlakozik a frthz. A frt indtsa, lelltsa, talaktsa, az alkalmazs-csomagok indtsa s lelltsa egy adott gpen kln parancsokkal lehetsges. A frt megoldsnak helyesen kell kezelnie azokat a helyzeteket is, amikor a kt gp kztt minden kommunikci megszakad. Ebben az esetben egy specilis diszkterletet lehet hasznlni a frt talakulsi folyamatnak vezrlsre. A frt gpein fut, magas rendelkezsre llst ignyl alkalmazsokat gynevezett alo kalmazscsomagokba kell szervezni. Az alkalmazscsomag minden olyan er forrst o tartalmaz, ami az alkalmazsok m kdshez szksges: fjlrendszerek, IP cmek, u fut programok (processzek). Minden egyes alkalmazscsomaghoz hlzati krtynknt legalbb egy mozg IP cm tartozik. Ahhoz, hogy egy alkalmazst egy ilyen frtn futtatni lehessen, meg kell felelnie nhny felttelnek: nem fgghet a host nvt l s semmilyen gp specikus paramtertol (pl. MAC o cm),

az adatok a megosztott diszkterleten kell legyenek.

IP1 IPA

SCSI vagy Fibre Channel

IP2 IPB

Hlzat

1. bra

31

LME

GNU/Linux Konferencia

Minden alkalmazscsomag szmra ltezik egy els dleges gp s egy vagy tbb tartao lk gp. Alapllapotban, amikor a frt minden gpe m kdik, az alkalmazscsomagok u az els dleges gpeken futnak. Amennyiben egy els dleges gp meghibsodik vagy leo o ll, a rajta fut alkalmazscsomagok automatikusan tkerlnek egy tartalk gpre. Az alkalmazscsomagok fontossgnak fggvnyben a tartalk gpen fut alkalmazsokat le lehet lltani, hogy megfelel er forrs (CPU, memria) jusson a kritikus alkalo o mazsoknak. A frt helyes m kdsnek elengedhetetlen felttele a megosztott diszkek biztonsu gos kezelse. Ezt nagyban segtheti a Logical Volume Manager (LVM) hasznlata. A megosztott diszkeken ajnlott naplz fjlrendszert hasznlni (pl. Reiserfs, JFS, XFS). Ellenttben egyb frt megoldsokkal, a magas rendelkezsre llst biztost, megosztott diszkekre pl frt megoldsok esetben csak megfelel , a hardver- s szofto o vergyrtk ltal min stett kongurcik m kdnek helyesen. Ezrt ltalban csak a j o u minosgu, drga hardverkongurcik tmogatottak. A frt kialaktsa s zemeltetse nagymrtkben egyszerusdik, ha megegyezik a gpek hardver- s szoftverkongur cija. A gpek opercis rendszere s patch szintje azonos kell legyen. A leggyakoribbak a kt gpbol ll frtk, de a frtszoftvert l fggoen a gpek szma o ennl nagyobb is lehet. A legismertebb Linux frtszoftverek a mr jl bevlt Unix megoldsok portolt vltozatai, pldul Hewlett-Packard MC/ServiceGuard, Silicon Graphics FailSafe, HighAvailability.Com RSF-1, de nagyon npszeru a Mission Critical Linux Convolo Cluster megoldsa is (http://www.missioncriticallinux.com/ ). A shared disk frtk magas ra s komplexitsa miatt csak olyan alkalmazsok ese tben rdemes hasznlni oket, amikor nem lehetsges tbb azonos szerver egyideju m kdtetse (pl. web szerverek) vagy az adatok replikcija (pl. DNS szerverek). A u leggyakoribb plda a shared disk frtk ltal vdett alkalmazsokra a klnbz o adatbzisszerverek. rdemes megjegyezni, hogy az Oracle Parallel Server fut s tmogatott is tbb GNU/Linux disztribcin is (pldul SuSE http://www.suse.com/ ). A shared disk frtk ltal az alkalmazsok szmra biztostott rendelkezsre lls nagymrtkben fgg az alkalmazsoktl. A meghibsodott gp szlelse s a frt jraalakulsa ltalban kevesebb, mint egy perc, de az alkalmazsok jraindulsa egy hiba utn ennl jval tbb is lehet. Megfelel hardverkongurci esetn (redundns tpegyso gek, sznetmentes tp, RAID diszkrendszerek) Linux frtkkel is elrhet 99,99%-os o rendelkezsre lls. Br a shared disk frtk els dleges feladata a magas rendelkezsre lls biztostsa, az o alkalmazscsomagok kzi vagy automatikus mozgatsval el lehet rni egy bizonyos fok terhelsmegosztst a gpek kztt.

2.2. Megosztott elemek nlkli frtk


A megosztott elemek nlkli frt a kzs diszkeket hasznl frt egy sajtos, egysze r stett s ezrt jval olcsbb vltozatnak tekintheto. Mivel nincs megosztott diszkteu rlet, jval egyszerubb a frt felptse s m kdse. A frtt alkot gpek szma is u jval nagyobb lehet, mint a kzs diszkeket hasznl frt esetben. A frt gpei egymstl teljesen fggetlenl m kdnek s egyms tartalkait kpezik. u Ezrt az alkalmazsok s a hozzjuk tartoz adatok mind az els dleges, mind a tartalk o gpeken meg kell legyenek. Amennyiben az adatok dinamikusan vltoznak, gondoskodni kell az adatok szinkronizcijrl (pl. rsync a fjlok szinkronizlsra). Hasonlan a megosztott diszkeket hasznl frtkhz, a megosztott elemek nlkli frtk gpei is heartbeat jelekkel kommuniklnak egymssal, s virtulis (mozg) IP 32

LME

GNU/Linux Konferencia

cmek tartoznak az alkalmazsokhoz. Mivel nincsenek megosztott diszkek, a gpek kztti tvolsg tetsz legesen nagy lehet. gy lehetosg nylik katasztrfat r megoldsok o uo kialaktsra. A Linux High-Availability Project http://linux-ha.org/ weboldaln rszletes informci tallhat a projekt keretben kifejlesztett megoldsokrl (heartbeat, fake). Szmos linuxos cg indtott sajt projektet ( RedHat Piranha http://ha.redhat.com/, VA Linux UltraMonkey http://ultramonkey.sourceforge.net/ ) ilyen tpus frtmegoldsok kifejlesztsre. A gyakorlatban a megosztott elemek nlkli frtmegoldsokba beptik a dinamikus terhelsmegosztst is, s ezek a megoldsok az alkalmazsok szles skljt kpesek futtatni (pl. fjl-, nyomtat-, web, ftp, mail szerverek).

3. Terhelskiegyenlt frtk o
A terhelskiegyenlto frtk tbbnyire egyszerre oldjk meg a magas rendelkezsre lls s a sklzhatsg problmjt. A legegyszerubb terhelskiegyenlto frtt a DNS segtsgvel lehet megvalstani. Ha egy host nvhez tbb IP cmet rendelnk s a time-to-live paramter rtket kell en o alacsonyra vesszk, akkor a nvfelolds gyakorlatilag vletlenszeruen fogja visszaadni a host nvhez tartoz IP cmeket. Ez megfelel egy primitv terhelsmegosztsnak. A megolds nagy hinyossga, hogy nem biztost semmilyen magas rendelkezsre llst, s nem veszi gyelembe a szerverek tnyleges terhelst. A vals alkalmazsok ig nyeinek megfelel en olyan terhelskiegyenlto frtmegoldsok jelentek meg, amelyek o egyetlen gpknt mutatkoznak az alkalmazsok szmra. Alapvet en ktfajta terhelso kiegyenlto frtmegoldsrl beszlhetnk: virtulis szerverek, amelyek egy virtulis IP cm mgtt tbb valdi szervert jelentenek

egyetlen nagy SMP gpnek ltsz frtk

3.1. Virtulis szerverek


Ezt a frttpust tekinthetjk egy ugyanarra a feladatra specializldott szerverfarmnak, ami egyetlen szerverknt jelenik meg a kls kapcsolatok szmra. Az ilyen tpus frt o sszes gpn azonos alkalmazsok futnak. A linuxos krkben legelterjedtebb terhelskiegyenlto frtmegolds a Linux Virtual Server http://www.linuxvirtualserver.org/. Ez egyetlen virtulis IP cm mg rejti a frt valdi gpeit. A megolds kt rszb l ll: LinuxDirector s a valdi szerverek. A viro tulis IP cmre rkez krseket a LinuxDirector tovbbtja valamelyik valdi gpnek. o A virtulis szerver hrom mdszert hasznlhat az IP alap terhelskiegyenltsre: NAT IP Tunnelling Direct routing

Mindhrom mdszer a Linux kernel mdostst ignyli. A NAT mdszer a teljes odavissza forgalmat a LinuxDirector-on keresztl valstja meg. A msik kt mdszer esetben a virtulis szerverre rkez krseket a LinuxDirector sztosztja a valdi szerveo rek kztt, mg a vlaszokat a valdi szerverek egyenesen a klienseknek kldik vissza. 33

LME

GNU/Linux Konferencia

Mivel a vlaszok mrete nagyobb mint a krsek, ezek a megoldsok jval nagyobb tviteli sebessget tesznek lehet v mint a NAT mdszer. o A Linux Virtual Server tbb algoritmust is hasznlhat a valdi szerverek terhelsnek kiegyenltsre. Az algoritmusok gyelembe veszik, hogy egy adott gp elrhet -e s o hogy a gpen mekkora a terhels. gy megvalsul a valdi szerverek magas rendelke zsre llsa, mert a LinuxDirector csak a m kdo szerverek fel tovbbtja a krseket. u A terhelskiegyenlts is m kdik, mert az jabb krsek a kevsb terhelt szervereku hez rkeznek. A Linux Virtual Server-nek a LinuxDirector az egyetlen egyedi meghibsodsi pontja. Ezrt ha egy teljesen HA megoldst akarunk, kt LinuxDirector-t egy magas rendelkezsre llst biztost frtbe kell kapcsolni. Egy ilyen megoldssal pldul egy rendkvl magas rendelkezsrells s teljestmny webszerver-farm alakthat ki. Mivel u az sszes valdi szerver ugyanazt a tartalmat szolgltatja, a megoldst ki kell egszteni egy hibat r fjlszolgltatssal. Erre a clra a Coda http://www.coda.cs.cmu.edu/ uo elosztott s hibat r fjlrendszer az egyik legjobb megolds. uo

Valdi szerverek

Linux Director Heart beat

tartalk Linux Director

1 krs

Hlzat
3

vlasz

2. bra A 2. brn egyedi meghibsodsi pont nlkli virtulis szerver frt lthat. A kliensr l o rkez krseket a LinixDirector fogadja s osztja szt a megfelel valdi szervernek. o o A valdi szerver a vlaszt kzvetlenl kldi vissza a kliensnek.

3.2. Egyetlen nagy SMP gpnek ltsz frtk


Linux krnyezetben kt olyan megolds is ltezik, amelyik egy tbb gpbol ll frtt egyetlen nagy, SMP architektrj gpnek mutat a felhasznlk s alkalmazsok szmra: a Mosix http://www.mosix.cs.huji.ac.il/ s a Beowulf http://www.beowulf.org/. A kt megolds m kdsi elve nagyon hasonl s kzel ll egy tbbprocesszoros gphez. u Ezrt az alkalmazsok mdosts nlkl ki tudjk hasznlni a frtmegolds nyjtotta el nyket. A CPU teljestmny rendkvli nagy sklzhatsga miatt ezeket a frtket o a High Performance Computing kategriba is sorolhatjuk. 34

LME

GNU/Linux Konferencia

3.2.1.

Beowulf frtk

A NASA berkeiben indult projektet jelenleg a Scyld Computing Corporation: http://www.scyld.com/ folytatja. A Beowulf frt legjabb vltozata nagymrtkben egyszer stette a frt installcijt, m kdst s menedzsmentjt. A Beowulf terminou u lgit hasznlva egy Beowulf frt egy master gpbol s tbb compute gpbol ll. A compute gpek a master gprol bootolnak s a programok kdja a master gpen van trolva. A compute gpek a sajt merevlemezket csak swap terletknt s adatok trolsra hasznljk. gy garantlt, hogy ugyanaz az opercis rendszer s az alkalmazsok verzija a frt minden egyes gpn. A Bproc, a Linux kernel processzmenedzsment-b ovtse, biztostja, hogy a Beowulf frt egyetlen rendszer kpt mutassa. A Bproc lehet v teszi, hogy a frt gpein fut o processzeket a master gprol lehessen ltni s felgyelni. A processzek a master gpen indulnak s a Bproc segtsgvel tkerlnek egy megfelel compute gpre. A o processzek kztti szl -gyerek kapcsolat s a job control rvnyes marad a migrlt o processzekre. A Scyld Beowulf szmos olyan szoftver komponenst tartalmaz, amivel hatkonyan lehet kezelni a frt s a rajta fut alkalmazsok m kdst. Ezek kztt u rdemes megemlteni az MPI s PVM Beowulf frtre optimalizlt vltozatt. Ezek a szoftver komponensek alkalmass teszik a Beowulf frtt a hagyomnyos s a prhuzamos programok hatkony futtatsra. A Beowulf frt mukdsben a master gp jelenti az egyetlen egyedi meghibsodsi pontot. A Beowulf kvetkez verzija mr tbb master gpet is tartalmazhat majd, s o ezekbol ki lehet alaktani egy magas rendelkezsre llst biztost frtt.

processzB

compute gpek
processzB

HA frt master gp
processzA processzA

tartalk master gp

Hlzat

3. bra A 3. bra egy olyan Beowulf frtt mutat be, amelyikben nincsenek egyedi meghibsodsi pontok. A processzeket a master gpen kell elindtani (kzvetlen bejelentkezs vagy remote shell) majd a processz tkerl egy megfelel compute gpre. o

35

LME

GNU/Linux Konferencia

3.2.2.

Mosix frtk

A Mosix szoftvercsomagot a jeruzslemi Hebrew University-n fejlesztettk ki. A Beowulfhoz hasonlan a Mosix is mdostja a Linux kernelt. Mosix krnyezetben ktfajta gp ltezik: szerver s munkalloms. A szerverek mindig rszei a frtnek, a munkallo msok nem mindig. A nagysebessgu hlzatba kttt gpekbol nagyon rugalmasan tbb frtkongurcit is ki lehet alaktani: server-pool - csak a kijellt szerverek alkotjk a frtt, a munkallomsok nem. Processzeket csak gy lehet indtani, hogy bejelentkeznk egy szerverre.

adatprive-pool - a munkallomsok belphetnek a frtbe illetve kilphetnek a frtbol. half-duplex pool - a munkallomsok processzeket kldhetnek a szerverekbol ll frtre, de nem lpnek be.

A Mosix frt m kdse teljesen transzparens az alkalmazsok szmra. gy a Mosix u frt lehet v teszi tetsz leges szekvencilis vagy prhuzamos alkalmazs futtatst, o o fggetlenl attl, hogy a processzek melyik gpen futnak s hogy ms felhasznlk mit csinlnak. A Mosix ltal mdostott kernel a gpek terhelse s a gpeken rendelkezsre ll er forrsok fggvnyben transzparens mdon mozgatja a processzeket a gpek ko ztt. Ezltal nagymrtkben megn a rendszer ltalnos teljestmnye. Egy processz o rviddel a ltrehozsa utn tkerl a frt legmegfelel bb gpre. Ezutn a mdostott o temez gondoskodik a processz mozgatsrl s rendszerterhels optimalizlsrl. o A MOSIX temez je egy komplex algoritmust hasznl, ami gyelembe veszi a gpeo ken rendelkezsre ll er forrsokat (CPU sebessge, memria mennyisge). A fut o processzeket a QPS grakus program segtsgvel lehet felgyelni. A Mosix egy sajt elosztott MFS fjlrendszert hasznl. gy a frt sszes gpe ugyanazt a fjlrendszert ltja. Az MFS nagy el nye, hogy biztostja az MFS fjlrendszer cache o konzisztencijt a gpek kztt. Az MFS megfelel a Direct File System Access (DFSA) szabvnynak.

4. Prhuzamos feldolgozst biztost frtk


A prhuzamos feldolgozs (parallel processing) a modern szmtstechnika egyik specilis terlete. A nagy feladatokat sok apr hasonl feladatra bontva s prhuzamosan vgrehajtva nagymrtkben cskkenthet a programok futsi idejt. A prhuzamos felo dolgozs f knt a rendkvl nagy szmtsi kapacitst ignyl tudomnyos feladatokra o o jellemz . Ezrt ezt a terletet High Performance Computing (HPC) nvvel is jellemzik. o A prhuzamos feldolgozst nagymrtkben tmogatja a Massively Parallel Processors (MPP) architektra. Az elosztott szmtstechnika s a frtzsi technikk fejl dse o lehet v tette, hogy az olcs PC hardverre pl frtk teljestmnyben felvegyk a o o versenyt a nluk nagysgrendekkel drgbb MPP vagy specilis architektrj szuperszmtgpekkel. A prhuzamos feldolgozs sorn az egymssal kooperl feladatok adatokat kell cserljenek egyms kztt. Az adatcserre szmos modellt dolgoztak ki, ezek kzl az egyik legnpszerubb az zenettads (message passing). Az zenettads modell nagy 36

LME

GNU/Linux Konferencia

el nye, hogy egyarnt alkalmazhat SMP vagy MPP architektrj gpeken vagy egy o frt gpein fut feladatok kztt. Az zenettads sorn a kldo s fogad oldal egyttm kdik az adatok kldsben. Az adatokat explicit mdon el kell kldeni az egyik u oldalon s fogadni kell a msikon. zenettadsos mechanizmust hasznlva rendkvl nagy, tbb szz gpbol ll frtket is ltre lehet hozni. A frt teljestmnyt viszont csak megfelel mdon megrt o programokkal lehetsges kihasznlni. Nem minden feladat alkalmas az ilyen nagyfok prhozamos m kdsre. u A kt legelterjedtebb zenettads modellre pl megolds a Message Passing Intero face (MPI) http://www-unix.mcs.anl.gov/mpi/indexold.html s a Parallel Virtual Machine (PVM) http://www.epm.ornl.gov/pvm/pvm_home.html. Mindkt megolds nylt forrskd. A GNU/Linux az egyik legkedveltebb platform az MPI s PVM frtk megvalstsra.

4.1. MPI alap frtk


A Message Passing Interface tulajdonkppen nem egy termk, hanem egy zenettadsi knyvtrspecikci (API) a prhuzamos programok tmogatsra. Jelenleg C, C++ s a Fortran 77 nyelvekhez ltezik MPI specikci. A legutols specikci, az MPI-2 152 fggvnyt tartalmaz. Az albbi kd a jl ismert Hello World C program MPI vltozata. #include <stdio.h> #include "mpi.h" int main(int argc, char **argv) { MPI_Init(&argc, &argv); printf("Hello world\n"); MPI_Finalize(); return 0; } A pldbl jl lthat, hogy a hagyomnyos kdot nagyon egyszeru MPI formra t rni. Az igazi problmt a feladat prhuzamostsa jelenti. Az MPI specikcinak megfelel programokat specilis parancsok segtsgvel kell lefordtani (mpic, mpicc, o mpif ). A legismertebb nylt forrs MPI implementci az mpich, amely megtallhat a http://www-unix.mcs.anl.gov/mpi/mpich/ URL-en. nmagban az mpich nem elg egy frt m kdtetsre. Ezrt szletett meg a Local u Area Multicomputer (LAM) http://www.lam-mpi.org/, mint egy MPI fejleszt s futo tat krnyezet. A LAM lehet v teszi, hogy hlzatba kttt heterogn gpekbol (ko lnbzo CPU s opercis rendszer, MPP, SMP gpek, PC-k) prhuzamos feladatok futtatsra alkalmas frtt hozzunk ltre. A LAM nem alkalmas ltalnos cl (nem MPI) programok futtatsra. A LAM frt indtsa a lamboot paranccsal trtnik. Indulskor a kongurcis fjlban megadott gpeken elindul egy LAM dmon processz. Ezutn az mpirun paranccsal lehet az MPI specikci szerint megrt programokat a frtn elindtani. Az mpirun

37

LME

GNU/Linux Konferencia

parancs a LAM dmonokon keresztl indtja el a futtatand programokat. A vgn a wipe paranccsal a LAM frtt le kell lltani. A LAM lehet v tesz bizonyos fajta hibat rst, de nem nevezhet magas rendelkezsre o u o llst biztost frtnek. A Beowulf tartalmaz egy optimalizlt mpirun programot. gy a Beowulf frt egyarnt hasznlhat hagyomnyos s MPI programok futtatsra.

4.2. Parallel Virtual Machine frt


A Parallel Virtual Machine egy zenettadsos modellre pl , heterogn architekto rj gpekbol ll frt. A hasznlt zenetkldsi mechanizmus hasonlt az MPI-hez. A PVM rendszer kt rszb l ll. Az els a frt minden elemn fut pvmd dmon, ami az o o alkalmazsok szmra szksges virtulis gpet valstja meg. Egy frtn bell tbb felhasznl is ltrehozhat egymst tfed virtulis gpeket. Miutn kialakult a virtuo lis gp, az alkalmazsok a frt brmelyik gprol indthatk. A PVM rendszer msik rszt a PVM interfsz knyvtrak kpezik. Hasonlan az MPI programokhoz, a PVM programok fordtst is egy specilis make paranccsal kell vgezni (aimk). A PVM frt felgyelett a pvm parancssoros vagy az xpvm grakus programmal lehet vgezni. A Scyld Beofulw frt tartalmaz egy optimalizlt PVM-et. gy a Beowulf egy nagyon sokoldal s rendkvl nagy mrtkben sklzhat frt, ami gyakorlatilag minden fajta alkalmazs futtatsra alkalmass teszi.

5. sszefoglal
Az x86-os processzorok egyre nagyobb teljestmnye, a mr rendelkezsre ll IA64 architektra s a nagyszm nylt forrskd vagy kereskedelmi frt szoftver egyre vonzbb teszik a GNU/Linux alap frtket. Gyakorlatilag minden frt tpusra ltezik ilyen megolds. gy rendelkezsre llsban s sklzhatsgban a GNU/Linux kszen ll a vllalati krnyezetek meghdtsra. Br GNU/Linux frt mg nem szerepel a TOP500 Supercomputer http://www.top500.org/ listn, szmos frt installci alapjn ez a platform biztostja a legjobb teljestmny/r tnyez t. o

38

Vkony kliens technolgia a F vrosi Brsgon o


Laky Norbert <lakyn@birosag.hu> 2001.08.30.
Kivonat A XVIII-XIX. Kerleti Brsg j pletbe kltztt 2000 oszn. A beruhzs kapcsn zld mez s beruhzsra nylt lehet sgnk. Ennek sorn elemezve az elo o vrsokat s a trendeket vkony kliens technolgia bevezetse mellet dntttnk.

Tartalomjegyzk
1. Bevezets 2. Tervezs trendek 2.1. Tervezs konklzi . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. Tervezs Mi az, ami elrhet ? . . . . . . . . . . . . . . . . . . . . o 3. Vkony kliensek lehet sgek o 3.1. A Sun Hot Desk technolgija . . . . . . . . . . . . . . . . . . . . . 4. Megvalsts Eszkzk, tapasztalatok 40 40 40 40 41 41 42

39

LME

GNU/Linux Konferencia

1. Bevezets
A XVIII-XIX. Kerleti Brsg j pletbe kltztt 2000 oszn. A beruhzs kapcsn zld mez s beruhzsra nylt lehet sgnk. A brsgok letben a zld mez s o o o beruhzs kt szempontbl is izgalmas: Ilyenkor lehet sget kap az informatika, hogy a fantzija szrnyaljon s valami o jat alkosson.

Ritkn addik egy brsg letben hasonl lehet sg, teht rtkllt kell teo remteni.

2. Tervezs trendek
A beruhzs megtervezsekor meggyeltk a brsgi informatikban szlelhet treno deket. Az albbi rendszereket, elvrsokat elemeztk: 1. A Cgbrsgi rendszer: A Cgbrsgi rendszer (SCO Unix alap PC szerverek, DEC VT terminlok (97db), Soros kbelhlzat, Puritn alfanumerikus fellet, Modern hromrteg alkalmazs) A legfontosabb tapasztalatunk, az erklcsi u amortizci = zikai amortizci, illetve, hogy nincsenek knyszerek! Semmi sem knyszerit bennnket a rendszerelemek folyamatos cserlgetsre. A felhasznlk bartsgosabb felhasznli felletre vgynak. Grakus felhasznli fellet igny! 2. PC-s hlzatok (NetPC): Novell szerverek / Zenworks, IBM AIX szerverek / SAMBA, MS Windows kliensek NetPc-szer alkalmazs! A rgi PC-s op. u rendszerek alkalmatlanok, az j PC-s op.rendszerek modern, nagy kapacits PC-t ignyelnek. A vkony hlzati megoldshoz vastag kliensek szksgesek! 3. Szabadszoftver alap vkony-kliens megoldsok (lsd. ETB konferencia) 4. A F vrosi Brsg elnknek elvrsai: Folyamatos rendelkezsre lls, ino formatikai biztonsg, az erklcsi amortizci ideje kzeltse meg a zikai amortizci idejt, ergonmiai elvrsok, elgedett felhasznlk, olcs zemeltets. Kompatibilis irodai programcsomag, Adatbzisok (Jogtr, Lajstrom, . . . ), E-learning a szakmai kollgiumoknak.

2.1. Tervezs konklzi


A tapasztalatok elemzse sorn az albbiak derltek ki: Minden szmtstechnika alkalmazsunk a vkony technolgik irnyba halad. A felhasznlok 90% nem ignyel vastag klienst!

2.2. Tervezs Mi az, ami elrhet ? o


A kvetkez krds az volt, milyenek a jelenleg elrhet gyri vkony megoldsok? o o Tbb alternatva is knlkozik, ezek: Network Computer (NC) 40

LME

GNU/Linux Konferencia

Windows Terminlok (WBT) (Specilis NC)


SunRay technolgia

3. Vkony kliensek lehet sgek o


Az NC nem egyrtelmu sikertrtnet. gy gondolom azrt, mert hinyzik az NC-khez val versenykpes irodai programcsomag, illetve teljesen j nem tradicionlis technolgit kpvisel. A vilgi blcsessg arra tant, hogy kevsb rt a hrnvnek ha valaki konvencionlis mdon megbukik, mintha nem konvencionlis mdon r el sikert. (Keynes). Ha ezt kizrjuk kt vlasztsunk marad: WBT: konvencionlis MS krnyezet, Sunray: konvencionlis SUN krnyezet (Xwindow, CDE, Gnome, StarfOfce, SmartCard alap azonosts).

Mi a SUN megoldsa a SunRay technolgia mellett dntttnk, a szabad s kompakt irodai krnyezet miatt.

3.1. A Sun Hot Desk technolgija


A SunRay kszlkek a Hot Desk technolgira plnek, ami a gazdasgosabb, meg bzhatbb s biztonsgosabb szmtstechnikai krnyezet irnyba trtno fejl ds mro fldkvnek szmt. Ebben az architektrban csak az marad az asztali gpben, amire a felhasznli fellet megvalstshoz szksg van, azaz a billenty zet, egr s hang, u mint bemenet, illetve kperny s hang, mint kimenet. Minden feldolgozs a httro ben, egy vagy tbb megosztott kzponti szerveren trtnik. Mindaz, ami korbban a felhasznlk munkallomsn futott - legyen az a grakus fellet, felhasznli programok, levelez program - most a szerveren fut. Mivel a programok a szerveren futnak, o lehet v teszi, hogy a felhasznl a munkacsoporton bell brmelyik SunRay berendeo zsr l elrhesse az ppen nyitott applikcis krnyezett. A kimenet s a bemenet tiro nytsa rvn a felhasznli krnyezet pillanatok alatt "thelyezheto" egyik SunRay-rol a msikra. A Sun Solaris opercis rendszeren fut alkalmazsok nagy tbbsge mdosts nlkl kpes futni a SunRay szerveren, mgpedig a virtulis X11 device driver-eken keresztl, amelyek megvalstjk a szoksos ki- s bemeneti eszkzk emulcijt, s alacsonyszint parancsok segtsgvel valstja meg a tvoli eszkzn keresztl a felu hasznli felletet. Mivel a Sun Ray kszlkeken nem trolunk adatokat, gy a berendezs meghibsodsa nem okoz adatvesztst, s t mg a felhasznli fellet, a nyio tott alkalmazsok elvesztst sem, mert azokhoz egy msik (vagy cserlt) Sun Ray eszkzrol azonnal hozz lehet frni. Mivel a Sun Ray nem vesz rszt a programok futtatsban, gy upgrade-re s egyedi teleptsre sincs szksg, amikor a felhasznlk j alkalmazst vesznek hasznlatba. A Hot Desk architektra segtsgvel ki lehet hasznlni, hogy a legtbb felhasznl er forrsignye viszonylag magas cscsok melo lett tlagosan alacsony rtket mutat. A rendszer er forrsainak centralizlsval s az o er forrsok megosztott hasznlatval lnyeges kltsgmegtakarts rhet el gy, hogy o o 41

LME

GNU/Linux Konferencia

a felhasznlk egy nagy teljestmny , jobban kihasznlt rendszerben dolgoznak. Az u er forrsok megosztsbl fakad nyeresget mint ptllagos, a redundacit nvel o o teljestmnyt kltsghatkony mdon visszailleszthetjk a rendszerbe mind tkrzs, mind pedig melegtartalk formjban. (forrs: http://www.sun.hu)

4. Megvalsts Eszkzk, tapasztalatok


A Kispesti Brsg rendszernek paramterei: Cat5e hlzat 100Mbit/sec kapcsolkkal, Sun E250 szerver 2Gigabyte memrival, 55 db Sunray1 kliens - minden br, minden ler, 5 trgyal, 3 db hlzati nyomtat, Openwin Gnome grakus krnyezet, StarOfce, CD-Jogtr, webes fellet hozzfrs a Lajstrom adatokhoz (gyviteli u alkalmazs), interoperbilits a rgi PC-kel s Netware szerverrel. Linux alkalmazs s fjl szerver. Tapasztalatok: A beruhzsi kltsgek konvencionlisak, hiszen teljesen sszevethet k a norml PC-s beruhzsokkal (tapasztalatunk szerint a vkony megolds jelent o o sen olcsbb), az igazi nyeresg azonban az zemeltetsi kltsgek cskkensb l, a o rendszerbol kvetkez szabadsgbl s a felhasznlk elgedettsgbol addik. o

42

Nylt forrs fejlesztsi projectek dinamikja


Magosnyi rpd <mag@lme.linux.hu> 2001.08.24.
Kivonat A nylt forrs fejlesztsi projectek eredmnyessge els sorban a mgttk mego hzd bazr modellnek ksznhetik eredmnyessgket. Az el ads bemutatja o a nylt forrs projectek legfontosabb tulajdonsgait, azok sikerkritriumait s a szokott buktatkat. Az el adst b ven illusztrljk letb l vett pldk is, kztk a o o o Linux-felhasznlk Magyarorszgi Egyeslet is, ami noha nem szoftverfejlesztsi project, azokkal sok m kdsbeli hasonlsgot mutat. u

Tartalomjegyzk
1. Bevezets 2. Project, project management 2.1. A project dencija . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. Nylt forrs projectek . . . . . . . . . . . . . . . . . . . . . . . . . 2.3. A projectmenedzsment cljai . . . . . . . . . . . . . . . . . . . . . . 3. Az let, a vilgmindensg, meg a projectmanagement 3.1. A hacker kultra, avagy a kiindulsi projectkrnyezet 3.2. Technikai krdsek . . . . . . . . . . . . . . . . . . 3.2.1. Tecnikai krdsek s a amewar . . . . . . . 3.2.2. Okos struktrk s buta kd . . . . . . . . . 3.2.3. A j tletek . . . . . . . . . . . . . . . . . . 3.2.4. A szintaktikus cukor . . . . . . . . . . . . . 3.3. Motivcis krdsek . . . . . . . . . . . . . . . . . 3.3.1. A kritikus tmeg . . . . . . . . . . . . . . . 3.3.2. A felhasznlk fontossga . . . . . . . . . . 3.3.3. Release early, release often . . . . . . . . . . 3.3.4. A szemlyes problma varzsa . . . . . . . . 3.3.5. A hozzlls . . . . . . . . . . . . . . . . . 3.3.6. A jtkony dikttor . . . . . . . . . . . . . . 3.3.7. Ha lelpsz, tedd szpen . . . . . . . . . . . . 4. Epilg 44 44 44 44 45 46 47 47 47 48 48 49 49 49 49 50 50 50 50 51 51

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

43

LME

GNU/Linux Konferencia

1. Bevezets
Ebben az el adsban azt prblom meg krljrni, hogy hogyan s mit l m kdnek o o u illetve nem m kdnek azok a tevkenysgek, amik a lelkesedsb l vgzett kzs munu o kra ptenek. Ezt a tevkenysgformt s a mgtte meghzd mechanizmusokat a nylt forrs szoftverfejeztsi projecteken, mint egy informatikus ltal taln legjobban ismert ilyen tevkenysgen keresztl fogjuk vizsglni. Ennek a kalandozsnak a nem titkolt clja annak a krdsnek a boncolgatsa, hogy az LME[11] ltal vgzett munkban a lesz rt tanulsgok hogyan alkalmazhatak, de u nem fogunk elsiklani olyan krdsek mellett sem, amik a nem puszta lelkesedsb l o vgzett szoftverfejlesztsi projectek szmra mutathatnak j utakat. A flrertsek elkerlse vgett szeretnm kijelenteni hogy nem tartom magam mg amat r szociolgusnak sem, nemhogy a tma avatott ismer jnek. Ha az el ao o o dsnak csak annyi eredmnye lesz, hogy a tma irnti rdeklodst felkelti, elrtem a clomat.

2. Project, project management


2.1. A project dencija
A project dencija ltalban az albbi fontos szempontokat szokta tartalmazni: Meghatrozott er forrsokkal operl A project szmra elrhet er forrsok ltao o o lban vgesek, azokat optimlisan kell elosztani. Ezen nincs is mit magyarzni. Meghatrozot clja van A projecteknek meghatrozott cljuk, sikerkritriumaik vannak. A project sikeressgt ezeknek a sikerkritriumoknak az elrse jelzi. Hatridok vannak A projectnek meghatrozott id alatt kell a cljt elrnie. o A fentieken kvl szoks a project dencijhoz hozzvenni annak mretre vonatkoz megktseket: azt szoks mondani, hogy egy rendes project legalbb nhny hnapig tart s tbb szervezeti egysget lel t. Ezt azrt ktik ki, mert a projectmanagement mdszertanok ltal megkvetelt overhead csak ekkora mreteknl kezd kizet d lenni. A mi szempontunkbl ennek azrt nincsen jelent sge, mert mint ltni o o o fogjuk, a nylt forrs szoftverprojectek egy kicsit ms tulajdonsgokkal rendelkeznek.

2.2. Nylt forrs projectek


El szr deniljuk, hogy jelen trgyals szempontjbl mit tekintnk nylt forrs proo jectnek: Nylt forrs projectnek azokat a szoftverfejlesztsi projecteket tekintjk, amikor a fejlesztst nkntes mdon, lelkesedsb l vgzik, s a project termke szabad szoftver. o Lssuk, mik is az ilyen projectek legfontosabb tulajdonsgai: Lelkesedsb l csinljk A project rsztvev i lelkesedsb l, s/vagy sajt problmo o o juk megoldsnak kedvrt vesznek benne rszt.

44

LME

GNU/Linux Konferencia

A hatrid k nem annyira lnyegesek Mivel pnzt nem kapnak rte, az eredmny o sem annyira szmonkrhet o. Ennek egyik megjelensi formja az, hogy a hatrid k nem tl lnyegesek. o Nincs vge A nylt forrs szoftverek folyamatosan fejl dnek. Teht a fejlesztsnek o nincs vge, csak szakaszai vannak. Termszetesen a nylt forrs szoftvert kszt projectek kzl nagyon sok nem tekinto het a fenti denci szerint nylt forrs projectnek, gondoljunk csak azokra a szofto verekre, amiket egy-egy cg alkalmazottai a zetskrt rnak. Ez csupn azt jelenti, hogy a Nylt forrs project elnevezs nem elg pontos. De mivel denilva van az itt alkalmazott jelentse, remlem ez nagyobb flrerts forrsa nem lesz.

2.3. A projectmenedzsment cljai


A projectmenedzsment az a szervezsi tevkenysg, amit azrt vgeznek, hogy a project sikerkritriumai teljesljenek. A projectmenedzsmentet valamilyen mdszertan alapjn szoks vgezni. Ez a mdszertan a nem nylt forrs projecteknl ltal ban formlis, knyvbol megtanulhat. Ilyen mdszertanok a SUMMIT-D[8] vagy a PRINCE[7]. A nylt forrs projecteknek lert mdszertana nincsen (hacsak ESR rsait[1][3][4] nem tekintjk annak), azt f knt hagyomny s szoksok tjn lehet o megtanulni. Gyakorlatilag sikerkritriumok sincsenek, egy project sikeressgt csupn az elkszlt szoftver felhasznltbornak mrete alapjn lehet megbecslni. A projectmenedzsment cljai ltalban az albbiak: Clok dencija, s a rsztvev k irnyban tartsa Egy hagyomnyos projectnl ez o a feladat egyrtelmu: a vezets megadja a clokat, s a sikerkritriumokat, a projectvezets ezt lebontja rszfeladatokra, amiket kioszt. Egy nylt forrs pro jectnl a helyzet egy kicsit ms: az elrendo clokat maguk a project rsztvev i o deniljk, aszerint hogy szmukra mik azok a problmk, amikre megoldst vrnak a projecttol. Ebb l kvetkezik viszont, hogy a rsztvev k irnyban taro o tsa szinte nem is feladat: a project cljai nagyon jl illeszkednek a rsztvev k o egyni cljaira. Itt a feladat a clok dencija helyett a megfelel mrnki dntsek meghozao tala szokott lenni. Ez a munka els rnzsre, s t msodikra sem t nik projecto o u menedzsernek val feladatnak, de kt fontos tnyt vegynk gyelembe: Egyrszt a nylt forrs szoftvereknek az egyetlen sikerkritriuma a felhasznlk szma, ami f knt a szoftver hasznlhatsgtl fgg. Egy nylt forrs projectnl nem o trtnhet meg az, ami a hagyomnyos projecteknl sajnos igen gyakori; a project eredmnye technikai szempontbl elfogadhatatlan, de a projectmanagement a vezets fel kpes a projectet mint sikereset feltntetni. Teht a technikai eredmnyessg a project tllse szempontjbl rendkvl kritikus, gy a felhasznlk, mint a rsztvev k megtartsa miatt. Msrszt a project vezet je a nylt o o forrs szoftvereknl mindig els sorban mrnk, s csak msodsorban projecto menedzser, gy az o rdeklodse is f knt a technikai krdsekre irnyul. o Figyelni hogy a fontos rszletek ne sikkadjanak el A project mdszertanok egyik legfontosabb eleme ppen az, hogy a kvetend feladatok s szempontok rszleteo sen fl vannak sorolva, gy a projectvezet tud puskzni hogy mikre kell gyelo nie. A nylt forrs projecteknl ez a feladat sokkal heurisztikusabbn m kdik: u A gyors fejlesztsi ciklusok miatt egy-egy funkci az elkszlte utn csaknem 45

LME

GNU/Linux Konferencia

azonnal ki van tve a publikus szemlnek, gy az esetleges problmk gyorsan felsznre kerlnek. Az emberek motivlsa az unalmas munkra A hagyomnyos projecteknl ezt a problmt prmiumokkal s az emberek ismtelt krlelsvel szoks megoldani (a krlelst addig kell folytatni, amg unalmasabb nem vlik mint a munka elvg zse maga). A nylt forrs projecteknl ktfle hajtero van (a krlels persze rvid tvon itt is bevlik, de hossz tvon nem felttlenl kizet d ). Az egyik o o az, hogy a rsztvev k sokflesge miatt gyakran lehet tallni olyan embert, aki o szmra az adott munka nem unalmas; akr azrt, mert az elvgzendo munkt jelkpezo problmt nagyon rzi, akr azrt, mert az o kszsgeinek pontosan az adott munka a megfelel szint kihvs. A msik ok az, hogy a nylt forrs o u projectek ajndk-kultrn (gift culture) alapulnak, ahol a legfontosabb zet o eszkz a reputci. Ez azt jelenti, hogy az, akinek a kompetencijba tartozik egy adott feladat elvgzse, annak elhanyagolsrt a sajt reputcijval zet. Ez sok esetben nagyobb hajterot jelent az anyagi javaknl. Munkabeoszts A munka beosztsrl a rsztvev k irnyban tartsnl mr beszlo tnk. A nylt forrs projecteknl a kiemelendo szempont az, hogy a munkabeoszts egy nszablyz, a clok kijellsvel harmonizl folyamat. Legjobban taln a Debian projectnl ltszik ez: az egyes csomagokat azok ptyolgatjk, akik az adott tmt legjobban ismerik, s a funkcionalitsra a legnagyobb szksgk van. Az er forrsok megszerzse, megtartsa A hagyomnyos projectmenedzseri muno knak fontos rsze a project elejn az er forrsok biztostsa, azt kvet en peo o dig ezeknek az er forrsoknak a megtartsrt vvott remnytelen kzdelem:) A o nylt forrs projecteknl a kp egyszerubb, noha a feladat nem kevsb bonyo lult. Itt ugyanis egyetlen er forrs van, ami lnyeges; az emberi tuds. A project o vezet jnek teht a feladata az hogy megfelel mennyisg embert motivljon o o u rsztvtelre a projektben.

3. Az let, a vilgmindensg, meg a projectmanagement


Mint a fentiekbol is lthat, a nylt forrs projectek vezetsnek kt alapvet problo mja a rsztvev k motivlsa s a technikai dntsek meghozatala. o Tovbbmenve, a technikai dntsek meghozatalnak mikntje is a rsztvev k moo tivlsnak egyik nagyon fontos eleme. Ez akkor vlik igazn nyilvnvalv, ha ttekintjk ESR Cathedral and the Bazaar[1] cm rst. Az rsban ESR a sikeres projectmenedzsment 19 alapelvt fektette le. u Ezek kzl 9 direkt mdon a project rsztvev inek motivlsval foglalkozik. A mao radk 10 technikai jelleg alapelv kzl is tbbnek van nem tehnikai jelleg monu u danivalja. Ha ehhez hozzvesszk azt a rendkvl fontos szerepet amit a technikai diszkusszi a rsztvev k motivlsban jtszik, mris lthat az bra. o A tovbbiakban ezt fogjuk boncolgatni, mghozz hrom lpsben. El szr a haco ker kultrban kevsb jratosak kedvrt ttekintjk azt a krnyezetet, amiben a nylt forrs projectek lteznek, majd sorra vesszk a technikai majd a motivcival kapcsolatos krdseket, ESR alapelveit hasznlva szamrvezet knt. o

46

LME

GNU/Linux Konferencia

3.1. A hacker kultra, avagy a kiindulsi projectkrnyezet


A hacker kultra, ahogyan ESR a Homesteading the Noosphere cm rsban[4] u kimutatta, alapvet en egy ajndk-kultra (Gift culture), ami azt jelenti, hogy az egyn o trsadalmi pozcija attl fgg, hogy a kzssgnek mit tud adni. A hacker kultra ltal gyelembe vett javak jrszt virtulisak: szoftver, dokumentci s tuds. Ennek a kultrnak az ltet eleme az Internet. Az internet kommunikcis lehet o o sgei azok, amik lehet v tettk olyan mret szoftverfejlesztsi projectek elindtst, o u mint a Linux Kernel vagy a Debian project. A hackerek s az internet kztt egyfajta szimbizis lelhet fel. Egyrszt a hackerek kztti kommunikci alkalmazkodott az o internet adta lehet sgekhez: a szigor rsbelisg, a metakommunikci korltozott o lehet sgei mind befolysoljk a kommunikcis stlust. Msfel l az internetet a haco o kerek alkottk, s formltk a sajt ignyeiknek megfelel re. o A legfontosabb kommunikcis csatornk az email, levelezsi listk, az nntp news, s az IRC. Az internet mint troleszkz s groupware mdium is szerepel. Erre a clra weboldalakat s ftp site-okat hasznlunk. A hacker kultra legtbb eleme a szoftverfejlesztssel valamilyen mdon kapcsolatba hozhat. Ezek kztt lehetne emleni rengeteg tradcit. Taln legfontosabbak ezek kzl a mi trgyalsunk szempontjbl a projectekkel kapcsolatos tabuk: Nem forkolunk A projectek forkolsa az amikor egy szoftverb l olyan verzit hozo nak ltre, ami a szoftver aktulis fejleszt inek cljaitl eltr mdon m kdik. o o u Ez a fejleszt i bzis szakadsval jr, fjdalmas folyamat. Mivel a folyamat o vgn mindkt vltozat bzisa gyengbb lesz, ilyet csak akkor csinlnak ha felttlenl muszly, s ilenkor is mindenki magyarzkodik meg minden. Kooperlunk a f fejleszt vel A funkcionlis vltoztatsok disztribcija a f fejo o o leszt tudta nlkl gorombasgnak szmt. o A jvrsokat meghagyjuk Valakinek a nevt kitrlni a hozzjrulk listjrl az rintett krse nlkl a legfelhbortbb dolog amit tenni lehet. Az els kt tabu clja egyrtelmuen a m kdo fejleszt i bzis fenntartsa, mg a haro u o madik tabu mutatja a reputci fontossgt. A hackerek trtnetrol rszletesebben a A Brief History of Hackerdom cm u rsban[2] olvashatunk, s a Hacker-howto[5] s a Loginakata[6] nyjthat bepillantst ebbe a kultrba.

3.2. Technikai krdsek


Mivel a technikai krdsek nmagukban nem tl rdekesek, ezrt nem fogom mindet rinteni amik a Cathedral and the Bazaar rsban szerepelnek, csak azokat, amelyek szociolgiai szempontbl tanulsggal szolglnak. Miel tt ezekre rtrnk, a technikai o krdsekrol val egyeztets fontossgt boncolgatom 3.2.1. Tecnikai krdsek s a amewar

A technikai krdsekkel kapcsolatos egyeztets a project letben kt szempontbl fontos: Egyrszt a j technikai dntsek alapozzk meg a kszl szoftver min sgt s az o o elksztshez szksges munka mennyisgt, msrszt a szoftverr l szl diszkusszi o az ami letben tartja a projectet, mivel ez az egyik olyan terlet amivel a project tagja inak rdeklodst fel lehet kelteni s fenntartani. 47

LME

GNU/Linux Konferencia

rdekes meggyelni azt, hogy ez a diszkusszi igen gyakran f ttt hangulat viu tkban cscsosodik ki. Ez olyan szinten igaz, hogy az ehhez nem szokott szemll o szmra riaszt mdon hathat az a md s hevessg ahogyan az egyes krdsek a levelez listn megvitatsra kerlnek. Ez all a szably all gy t nik nincs olyan sikeres o u nylt forrs project ami kivtel. Az LME levelez listjt s az egyesletben vgzett o munkt meggyelve pedig kiderl, hogy ezeknek a amewar-oknak rendkvl er s o motivcis hatsuk van. Egy-egy ilyen utn kt-hrom htig csak gy buzog az let. Sajnos a amewaroknak visszatart erejk is van: esett meg hogy egy nylt szoftvert fejleszt cg azrt nem ksztett nylt fejleszt i listt mert az azon vrhat ao o mewart tlsgosan er s zavar tnyez nek gondoltk. Ugyangy lthat, hogy tbben o o ppen ezek miatt a vitk miatt tvolodtak el az Egyeslettol. A fenti kt effektust gyelembe vve az t nik sszer nek, hogy a levelez listn u u o folyamatos, de lehet leg szls sgmentes forgalmat tartunk fnn. A forgalom katao o lizlsra az Egyesletnl a Keddlog, a fejlesztsi projecteknl a release notes-ok s klnbz o sttuszriportok szolglnak, mg a moderlsra a lista illemtantl kezdve a modertori eszkzk s a spamdb alkalmasak. Abban gy t nik egyetrts van, hogy u emberi modertor beiktatsa az esetek nagy rszben nem a legalkalmasabb megolds: nem csak azrt mert az emberi kzremukds sok er forrs, hanem az ltala bevezetett o ksleltets nha tl lassv teszi a kommunikcit. 3.2.2. Okos struktrk s buta kd

ESR egyik alapelve azt mondja: Az okos adatstruktrk s a buta kd sokkal jobb, mint fordtva. Ennek a mondsnak a technikai alapja az, hogy ha az struktrk okosak, akkor elvgzik azt a munkt, amit egyb esetben a kdnak kellene vgeznie. Ha belegondolunk, az egsz digitlis technika arra pl hogy az anyagot olyan okos struktrkba hajtogatjk, amit l az a buta elektron pont gy grbl hogy mindenfle okos szmto sokat lehessen vele vgezni. Ez a monds az emberi munkra is igaz. Ha a struktrk (itt nyugodtan gondoljunk szervezeti struktrra ppgy mint egy weboldal felptsre) okosan vannak felptve, akkor a dolgokat m kdteto emberek sokka nagyobb hatst tudnak kifejteni. Ennek u egyik oka az, hogy aki csinl valamit, az ezt effektvebben tudja tenni, a msik pedig az hogy olyanok is odafrnek a munkhoz, akiknek egy rosszabb struktra esetn nem lenne hozz elg afnitsuk. Fontos azt tudni, hogy az okos struktra nem felttlenl bonyolult, s t a jl bevlt KISS alapelv szerint (Keep It Simple, Stupid), a o legegyszerubb struktrk a legjobbak. A szervezeti struktra okos felptsre irnyul er fesztsekre az egyesletnl a o csoportok kialaktsa, az azta megszntetett vlasztmny, s a Vnek Tancsa volt a plda. Sajnos ezek kzl sszesen a csoportok voltak azok amikre egyel re nem lehet o azt mondani hogy hamvba holt tlet. Az okosan struktrlt munkakrnyezetre irnyul er feszts a Fordts Segt Rendo o szer (FSR)[12], amelynek clja az, hogy a fordtsi munkkat koordinlja, egyszerubb tegye a fordtk munkjt, s lehet v tegye a bekapcsoldst azoknak is, akik egybo knt csak kevs id vel rendelkeznek erre a clra. o 3.2.3. A j tletek

A kvetkez szmbavett alapelv gy szl: Felismerni a felhasznlk j tleteit majdo nem olyan j, mintha neked lennnek j tleteid. Nha mg jobb is.

48

LME

GNU/Linux Konferencia

n tovbb mennk. A felhasznlk j tleteit felismerni mindig jobb, mert ez azzal jr, hogy a felhasznl gy rzi, hogy foglalkozva van vele. Ezen tl a szoftver a vals felhasznli ignyeket fogja kielgteni. Ha elvonatkoztatunk a szoftverfejlesztst l, a helyzet mg egy kicsit csiszoldik. o Ugyanis egy nem annyira j tlet, ami egy projecttagtl ered, gyakran nagysgrendekkel hatsosabb mint egy nagyon j, ami nem. Ugyanis ha valakinek van egy tlete, knnyen rvehet arra hogy valstsa is meg. o 3.2.4. A szintaktikus cukor

Az utolsnak citlt technikai alapelv: Ha a nyelved sehol sincs a Turing-teljeshez, a szintaktikus cukor a bartod lehet. Azt hiszem ezt a mondst a hacker slangben kevsb jratosak szmra nem rt rtelmezni. ESR itt a kongurcis llomny szintaxisrl beszl. Azt mondja, hogy ha ez a szintaxis egyszeru, akkor kedves tlet lehet olyanra formlni, ami az angol nyelvhez kzelebb ll. Ezzel kt legyet lehet tni egy csapsra. Az egyik ami ESRnek gy t nik nem jutott eszbe, s a mi diszkusszink szmra sem tl lnyeges, az u hogy az gy bevitt redundancia egyszerustheti a kongurcis hibk felismerst. A lnyegesebb elem az hogy gy a kongurci kzelebb fog llni a felhasznl szvhez, s gy jabb elgedett felhasznlkra tesznk szert.

3.3. Motivcis krdsek


A motivci nagyon fontos dolog. A felhasznlk elgedettsgtol fgg ugyanis azok szma. A felhasznlk szmtl fgg az hogy mennyire lesz tesztelve a program, s az is hogy mennyi lesz az aktv fejleszt . Ugyanis az aktv feljeszt k s az sszfelhaszno o lszm arnya egy adott programtpusnl nagyjbl konstansnak tekintheto (most tekintsnk el a programozsi stlusnak s a fejleszt kkel val kapcsolattarts stlusnak o a fejleszt k szmt befolysol hatstl). Ez abbl is ltszik, hogy ESR alapelveinek o majdnem a fele ezzel foglalkozik. Lssuk oket: 3.3.1. A kritikus tmeg

Ha elg nagy a btateszteri s a fejleszt i bzis, szinte minden problma gyorsan be o lesz hatrolvam s nyilvnval lesz valakinek a javts. Ez a szably egy rendkvl fontos fogalomhoz, a kritikus tmeg fogalmhoz kapcsoldik. A kritikus tmeg az a felhasznlmennyisg, ami fltt egy fejleszts nfenntartv vlik. A felhasznlk szmval ugyanis egyenesen arnyos a btateszterek s a fejleszt k szma, s ltezik olyan fejleszt i szm, ami elegendo egyszoftver foo o lyamatos fejl dshez. A sikeres szoftverprojectek tulajdonsga az, hogy elrtk a o kritikus tmeget. Tovbbmenve, a legsikeresebb szoftverproject, a Linux kernel immr azzal a problmval kzd, hogy tl sok a fejleszt , s a fejleszt i tlet, s ez a project o o koordincijban okoz zavarokat, amik persze visszahatnak a min sgre is. o Az egyeslet letben ez gy fogalmazdik meg, hogy ha sok a tag, akkor vrhatan tbb lesz kzlk aktv (az aktv tagok arnya kb tz szzalkra tehet ), s gy o tbbet tudunk tenni a cljainkrt is. 3.3.2. A felhasznlk fontossga

A felhasznlk fejleszt knt val kezelse a legegyszer bb tja a gyors fejlesztsnek s o u az effektv hibakeressnek. 49

LME

GNU/Linux Konferencia

Ha a btateszterekkkel gy bnsz, mint a legfontosabb er forrsoddal, ok ogy vo laszolnak, hogy a legfontosabb er forrsodd vlnak. o Ez a kt alapelv nagyjbl ugyanazt mondja: a felhasznli s a btateszteri krt meg kell nagyon becslni, s akkor nagyon sok terhet levesznek a fejleszt k vllrl. o Ez az alapelv a nem nylt forrs projectek szmra is megszvlelendo. Az egyesletnl a potencilis s vals tagsg az, ami ezt a gyelmet megrdemeln, sajnos eddig nem sikerlt igazn j megoldst tallni a megszltsukra. 3.3.3. Release early, release often

Tedd kzz hamar. Tedd kzz gyakran. s gyelj a felhasznlidra. Ez taln ESR leggyakrabban idzett mondsa. A nylt forrs fejlesztsek egyik mozgatrugja az evolucionlis fejl ds, aminek sebessge legjobban a genercivlo ts sebessgt l fgg. Ha gyakran jnnek ki j verzik, akkor a hibk hamar napfnyre o kerlnek, a fejlesztsi irnyvltsok simk lehetnek, s a felhasznli/fejlesztoi tbor folyamatos izgalomban tarthat. F knt a folytonos izgalomban tarts s az irnyvltsok simasga az ami megszvo lelend a nem szoftverprojecteknl. o 3.3.4. A szemlyes problma varzsa

Minden j szoftver gy kezd dik hogy a fejleszt nek szemlyes problmja tmad. o o Ez az alapelv a szemlyes rintettsg fontossgt emeli ki. Ahhoz hogy valaki bekerljn egy nylt forrs projectbe, szinte ktelez hogy valamirt szemlyes leszo molnivalja legyen egy olyan problmval, ami az adott szoftverhez kapcsoldik. A nem szoftverfejlesztsi projecteknl a levonhat tanulsg az, hogy a project ltal kpviselt gyet a rsztvev k vagy potencilis rsztvev k szemlyes gyv kell tenni. o o Ez az egyesletnl taln a Linuxxal kapcsolatos ismeretekre val hsg kiaknzsval lenne legjobban elrhet , s lehet hogy a motivcis problmk pontosan onnan o fakadnak, hogy az egyeslet tagjai ltal vgzett tevkenysgek nagy rsze a PR s a rendezvnyszervezs tmakrbe esnek, amihez az tlag informatikusnak nincs tlzott afnitsa. Pedig szkpakols kzben lehet a memriamenedzsment rejtelmeir l s a o hlzati hatrvdelem krdseirol beszlgetni:) 3.3.5. A hozzlls

Ha megfelel a hozzllsod, az rdekes problmk megtallnak. o Hogy megoldhass egy rdekes problmt, keress egyet. Ez az alapelv inkbb a projectek rsztvev inek szl, mint azoknak, akik irnytjk o azokat. Egyszeruen arrl szl, hogy a vilg tele van rdekes tennivalkkal, s ha az ember nem ilyed meg azoktl, s keresi oket, rengeteget tanulhat. 3.3.6. A jtkony dikttor

Ha a fejleszts vezet jnek van egy mdiuma ami legalbb olyan j, mint az internet, o s tudja hogyan kell knyszer nlkl vezetni, a sok fej mindenkppen jobb mint egy Ez az alapelv azt mondja, hogy a j vezet nem er vel, hanem meggyozssel veszi o o r a segt it a megfelel lpsek megttelre. Azt hiszem egy lelkesedsb l vllalt felo o o adatnl nem kell ecsetelni ennek a jelent sgt, s a formlis felpts szervezeteknl o u is nyilvnval az ilyen vezetsi stlus el nye. o

50

LME

GNU/Linux Konferencia

3.3.7.

Ha lelpsz, tedd szpen

Ha elveszted az rdekl dsed a program irnt, az utols feladatod tani azt egy hozzo rt rksnek. o Ez a monds nmagrt beszl. Lthatjuk azt a folyamatot, ahogyan Linus a stabil verzival kapcsolatos gyeket tadja Alan Coxnak. Az egyeslet letben pedig meggyelhetjk, hogy az elnkk miutn egy v alatt tele lesz mindenk az egyes lettel, javasolnak egy olyan elnksget, akikbol kinzik hogy tovbb tudjk azt vinni a htukon.

4. Epilg
Az itt felvillantott krdsek a nylt forrs projectek vezetsnek csak nhny aspek tust fedtk le. Technikai krdsekrol direkt nem esett tl sok sz, nem szltam a problmafelolds mechanizmusairl (ezt a problmakrt ESR a Homesteading the Noosphere cm rsban alaposan felboncolja), s sz sem esett arrl a lehet sgr l, u o o hogy esetleg nylt forrs projectekhez is lehetne kszteni mdszertant a SUMMIT-D vagy a PRINCE pldjra. A cl csupn annyi volt, hogy egy kicsit tbbet megtudjunk az LME m kdsrol a nylt forrs projectek pldjn keresztl. u

Hivatkozsok
[1] Eric S. Raymond (ESR): The Cathedral and the Bazaar (http://tuxedo.org/ esr/writings/cathedral-bazaar/cathedral-bazaar/) [2] Eric S. Raymond (ESR): A Brief History of Hackerdom (http://tuxedo.org/ esr/writings/cathedral-bazaar/hacker-history/) [3] Eric S. Raymond (ESR): The Magic Cauldron (http://tuxedo.org/ esr/writings/cathedral-bazaar/magic-cauldron/) [4] Eric S. Raymond (ESR): Homesteading the Noosphere (http://tuxedo.org/ esr/writings/cathedral-bazaar/homesteading/) [5] Eric S. Raymond (ESR): Hogyan vljunk hackerr? (Kovcs Emese fordtsa) (http://lme.linux.hu/forditas/hacker-howto.html) [6] Eric S. Raymond (ESR): Loginakata (http://lme.linux.hu/forditas/loginataka.html) [7] Prince2, site index page. (http://www.prince2.com/) [8] Summit home page:
(http://www.pwcglobal.co.uk/gx/eng/about/svcs/summit/smmthome_allsallgxeng.html) [9] Debian home page (http://www.debian.org/) [10] Kernel Trafc (http://www.zork.net/)

51

LME

GNU/Linux Konferencia

[11] Linux-felhasznlk Magyarorszgi Egyeslete (http://www.lme.hu/) [12] Fordts Segt Rendszer (FSR) o (http://fsr.zope.hu/)

52

Biztonsgos aktv webkiszolgl ptse


Mt Pter 2001. szeptember 3.
Ksznet Borbly Zoltnnak s Kiss Gabriellnak

Tartalomjegyzk
1. Kinek szl ez az el ads? o 2. Az opercis rendszer biztonsgi krdsei 3. Megfelel eszkzk kivlasztsa o 4. Rendszer tervezse gyakorlati szemszgb l o 5. Az aktv tartalom fejlesztse 6. A kiszolgl teleptse, belltsai 7. zemeltetsi krdsek 8. Mr ltez rendszer vdelme o 9. Idegen szavak jegyzke 54 54 56 56 58 58 59 60 60

53

LME

GNU/Linux Konferencia

1. Kinek szl ez az el ads? o


Ezen el ads els sorban azoknak szl, akik felel sek, vagy azok lehetnek egy webo o o szerver biztonsgrt. Az aktv webkiszolglk vdelmrol lesz sz. Mirt? Az Internet leggyakrabban hasznlt nyilvnos rendszerei a webkiszolglk. Egy cg vagy intzmny virtulis letnek kirakatai, melyek a legtbb tmadsnak vannak kitve. Ennek tbb oka is van. Ma mg viszonylag ritka jelensg az irnytott adatrabls, ahol a csibszek kifejezetten egy adott cg adataira plyznak. A weboldalak lecserlse (angol nyelvterleten deface) viszont ltvnyos, ronthat vele egy szervezet megtlse, nyilvnossga miatt el lehet vele dicsekedni. Nem utolssorban a web alap szolgltatsok gyakran hzilag barkcsolt kiszolglval m kdnek, gy nem u ritka a knnyen thatolhat vdelem. Az opercis rendszere gyakran nem clszer en, u szoksjog alapjn van kivlasztva, a rajta fut szerverprogram is gyakran hibs. Ha a kiszolgl tartalmaz aktv lapokat is, az aktivtor ltalban hzilag fejlesztett, biztonsgi szempontbl nem megfelel en tgondolt, gy sokszor lehet v teszi a rendszerbe o o val bejutst. Mivel tmadsnak van kitve sszer biztonsgi rendszereknl alkalmazott mdu szertan szerint terveni s felpteni. Egy ltalnosan hasznlt rendszerben taln megbocsthat, ha hibk lpnek fel, egy biztonsgi rendszernl azonban ez vgzetes lehet. rdemes teht olyan megoldsokra trekedni, amelyek a lehet legkevsb tmadhao tak. Ha nem is adunk a rendszernek tkletes biztonsgot, de elrhetjk azt, hogy olyan nagy energira legyen szksg a rendszer sikeres tmadshoz, hogy az mr ne rje meg.

2. Az opercis rendszer biztonsgi krdsei


Az opercis rendszer belltsai kzvetetten ugyan, de er sen hatssal vannak a bizo tonsgra. A biztonsg a rendszer zikai felptsnl kezd dik. Most nyilvn mino denki arra gondol: Tudom, tudom. A biztonsg rsze az zembiztonsg is. Ebben az esetben azonban sajnos nem ez a helyzet. Mivel a Linux kernelbe kerl meghajtk o fejleszt i nem szksgkppen biztonsgi szakemberek, azokban is lehet hiba. Clo szer megbzhat, gyakran hasznlt eszkzket hasznlni a rendszer felptsnl, gy u kisebb valszn sge van a krtyameghajt hibjbl val behatolsnak. Szksg eseu tn az opercis rendszer hasznlt rsze auditlhat, de ebben az esetben a szksges munkaigny igen nagy. Biztonsgi szempontbl a legfontosabb tnyez a telepts. A disztribcik tero letn a hiedelmek ellenre nincs csodaszer. Vannak biztonsgosabb alapbelltsokkal rendelkez k, de minden Linux disztribci talakthat biztonsgoss kisebb-nagyobb o energia-befektetssel. A rendszer teleptse kzben mindig oda kell gyelni arra, hogy kizrlag a felttlenl szksges binrisok kerljenek a rendszerre. Minden egyes plusz program nveli az eslyt annak, hogy hibs program lesz a rendszeren. Szls sges o esetben akr az is megolds lehet, hogy egy mr l rendszeren egy knyvtrba telepto jk a szksges csomagokat, s abbl valamilyen automatizlt eljrssal generljuk a szerver llomnykszlett. gy a frissts jval nehzkesebb, de a csibszek dolgt jcskn megnehezthetjk. Figyelni kell a rendszer felllsakor elindul szolgltatsokra is. Minden jabb szolgltats tovbb nveli a kompromittlds veszlyt. Legynk vatosak. Bizonyos disztribcik (ilyen pldul a Debian) hajlamosak egy korbban lelltott szolgltatst frissts esetn jra indtandv tenni, ezzel kellemetlen meglepetseket okozva a rendszer fenntartjnak.

54

LME

GNU/Linux Konferencia

A korbban mr emltett meghajthibk elkerlsre s a hatkonyabb m kds u rdekben clszer egyedi fordts kernelt hasznlni. Ha olyan igny merl fel, ameu lyet a hivatalos Linux kernel egyel re nem tmogat (pldul IPSec VPN[5]), akkor o a kernelbe az adott patch is beptheto, de a nem hivatalos kiegsztsek hasznlatt clszer kerlni. Ezen kiegsztsek ugyanis okkal nem kerlnek a hivatalos kernelbe, u ami pedig a leggyakrabban teszteletlensg, vagy valamely komponenssel val sszefrhetetlensg. Elrhet k a kernel biztonsgi lehet sgeit b vt kiegsztsek is (pldul o o o o OW [1], HAP [2], LIDS [3] vagy a grsecurity [4]), ezek hasznlata abban az esetben clszer , ha azok forrsa hiteles. A kernelbe rdemes befordtani a csomagsz r tmou uo gatst is, amely segtsgvel egy er s nulladik vdelmi rteg alakthat ki a rendszer o rszre. Ez lehet v teszi a felesleges szolgltatsok tiltst (gy nem okoz gondot egy o esetleg vletlenl jraindult szolgltats), illetve az engedlyezett szolgltatsok elr het sgnek korltozst (ssh engedlyezse csak az arra kijellt gpekrol). Tovbbi o lehet sg a 2.4-es kernelsorozatnl a DoS s DDoS tmadsok elhrtsa. Ez nem o vdi meg a rendszert az elrhetetlensgtol, hisz a DDoS ppen arra pl, hogy a sok haszontalan krs kiszolglsa kzben a rendszer vagy sszeroppan, vagy a hasznos krsek nem lesznek kiszolglva. Mivel azonban korltozhat a segtsgvel a felplt kapcsolatok szma, gy a rendszert meg lehet vdeni az sszeomlstl, s a tmads befejeztvel a rendszer tovbb zemel. A rendszeren lv setuid s setgid llomnyok szmt a lehet legkisebbre kell koro o ltozni. Az esetek tbbsgben a sudo parancs elegendo, de bizonyos esetekben elrhet akr az is, hogy ne legyen egyetlen ilyen llomny sem. gyelni kell arra, hogy a o rendszeren az llomnyok hozzfrsi jogosultsgai a megfelel ek legyenek. Ez annyit o jelent, hogy olyan llomnyok ne legyenek mindenki ltal olvashatak vagy rhatak, amelyek ltalnos elrsre nincs szksg. Klns gyelmet kell fordtanunk a hlzati dmonokat futtat felhasznlk llomny-hozzfrsi jogaira. A legjobb megolds az egyes rendszerek klnvlasztsa. Ez a legegyszerubben a kernel ltal nyjtott chroot hvssal valsthat meg. Ugyan felmerlhetnek vele szemben biztonsgi problmk, de ezek a kernel nmi mdostsval elfogadhatan biztonsgoss tehet k [2]. o Jval biztosabb megolds valamilyen szmtgp emultor hasznlata. Ilyenek: usermode Linux [6], VMWare [7] vagy az Argante [8]. Ebben az esetben az egyetlen gpen futtatand szolgltatsok nagy biztonsggal szeparlhatk. Ezen megoldsok rszletes ismertetse meghaladja el adsom kereteit. o Ha a rendszer lehet v teszi, be kell hatrolnunk az egyes felhasznlk er forrso o felhasznlst, gy elkerlheto, hogy valamely hlzati kiszolgl tl sok er forrst o hasznljon fel. Krdses azonban, hogy hogyan reagl az adott kiszolglprogram az er forrsigny elutastsra. Ezt minden rendszernl tesztekkel lehet eldnteni. Ha o azonban kiderl egy kiszolglrl, hogy lell abban az esetben, ha nem kap elegendo memrit, akkor is rdemes hatrokat bevezetni. gy ugyanis elkerlheto, hogy egy tvoli, elrhetetlen gpteremben lv rendszer nhny rra, vagy akr vgleg elrheo tetlenn vljon. A msik vglet, hogy a gp jval nagyobb terhelst kpes elviselni, mint azt a kernelben belltott rtkek lehet v teszik (pldul a nyitott FD-k maxio mlis szma kevsnek bizonyulhat egy tbbprocesszoros gpen). Ebben az esetben szksg lehet a kernel kisebb mdostsra is. Az alaprtelmezett rtkek magasabbra lltsval a rendszer m kdse stabilizlhat. u

55

LME

GNU/Linux Konferencia

3. Megfelel eszkzk kivlasztsa o


A rendszer megvalstshoz clszer olyan eszkzket kivlasztani, amelyek tervezu snl a biztonsg szempontjait is gyelembe vettk, helyesen implementltk, s megfelel en leteszteltk. Ezen kittelek megtlse nem egyszeru feladat, az aktv tartalom o fejlesztsnl b vebben szlok rla. ltalnos klszablyok: minl gyakrabban haszo nlt a szerverprogram, annl valszn bb, hogy az esetleges hibkat kisz rtk bel le. u u o Ha egy szerverprogram fejlesztsnl egy elismert biztonsgi guru is tnykedik, akkor nagy az eslye, hogy a rendszer megbzhat. Ha az adott programban korbban tbb slyos hiba kerlt nyilvnossgra, akkor annak hasznlattl clszer eltekinteni. Enu nl tbbet ltalban nem lehet lltani egyetlen programrl sem. Ma mg szinte egyetlen program sem ltezik, amely min stetten biztonsgos. A CC [9] mra szabvnny o vlt, a biztonsgos fejleszts azonban tl nagy plusz er forrs-rfordtst ignyel. Ezt o az er forrst szvesebben hasznlja mindenki a funkcionalits tovbbfejlesztsre, s o valljuk be: a biztonsgos fejleszts s a folyamatos ellen rzs meglehet sen unalmas. o o Az aktv tartalommal br webszolgltat valamilyen adatokat tesz elrhet v. Teo ht a webszerver mellett szksges valamilyen adattrolsi mdszer is. Sajt fejleszts esetn a szksgesre fokozhat a rendszer biztonsga, de ez ltalban komoly er o forrsokat ignyel, klnsen akkor, ha SQL nyelvet is szeretnnk hasznlni. Sajt adatformtum esetn nem hasznlhatak a msok ltal fejlesztett kiegszt eszkzk o sem. Mindent egybevetve valamely ltalnosan hasznlt SQL szerver hasznlata a legsszer bb. u A dinamikus lapoknak kt alapvet tpusa van: a kliens oldalon fut (Java, Jao vaScript, Flash ...) s a szerver oldalon fut. A kliens oldalon fut tartalom a szerver szempontjbl statikus, arra semmilyen kzvetlen veszlyt nem jelent, gy ezzel itt nem foglalkozunk. A szerver oldalon fut dinamikus tartalom azonban komoly gondok forrsa lehet. Az aktivtor ktflekpp futhat: a webszerveren bell vagy az opercis rendszer egy klnll programjaknt (CGI). Mindkt tpus lehet valdi binris (C, C++ stb.), vagy interpreter ltal rtelmezett script. Mivel a rendszerek alatt lv vasak elg er o o sek (ltalban a vonal a sz k keresztmetszet), s a scriptek fejlesztse s mdostsa u sokkal egyszerubb s olcsbb, gy ltalban az utbbit rszestik el nyben. Sok olyan o scriptnyelvet ismernk, amely megfelel aktv tartalom fejlesztsre, azonban ma vio tathatatlanul a legnpszerubb a php. Az aktivtor nyelvnek kivlasztsnl els dleges o szempontnak kellene lennie a biztonsgnak s a kijellt feladatnak, ma azonban inkbb az a jellemz , hogy szoksjog alapjn vlasztanak nyelvet. o

4. Rendszer tervezse gyakorlati szemszgb l o


Ttelezzk fel, hogy rendszernk viszonylag kis mennyisg adatot fog trolni (legu feljebb nhny szz MByte), ezrt btran hasznlhatjuk az egyik legnpszerubb nylt forrs SQL szervert, a PostgreSQL-t. Az ignyeinket tkletesen kielgti, akr bonyolultabb lekrdezsek is knnyen sszellthatk vele, s megfelel hangolssal eleo gendoen gyors is. Mivel a leend rendszer meglehet sen nagy terhelsnek lesz kitve, o o s mert a jail nem ad tkletes levlasztst, ezrt clszer a webszervert s az adatszolu gltatt kln gpre telepteni, s akr tbb adatszervert vagy webszervert is hasznlni. A kt rendszer kz a j reakciido s a viszonylag nagy adatmozgs miatt clszer u nagyobb svszlessg vonalat tervezni. Ha a kt rendszer zikailag egyms mell u tehet , akkor a legolcsbb egy 100Mbs sebessg ethernet kapcsolat. o u

56

LME

GNU/Linux Konferencia

A processzor s a hlzat tlterhelsnek elkerlsre az adatszolgltatn futtatand lekrdezseket a fejleszt kkel optimalizltatni kell. A fejleszt kkel egyeztetve o o a virtulis tervez k arra a megllaptsra jutottak, hogy megfelel ellen rzs mellett a o o o php4 megfelel fejleszt eszkz lesz. Belltsait a biztonsgot szem el tt tartva kell o o o elvgezni (a php sok olyan lehet sget ad, melyek a programozst knyelmetlenebb, o a rendszert biztonsgosabb teszik). Az alkalmazs egyik legkritikusabb pontja a rendszert elr k azonostsnak s joo gosultsgainak krdse. Vegynk egy egyszeru pldarendszert ngy felhasznli szint tel: a webszervert futtat felhasznl (u0)

a rendszer karbantarti s automatizmusai (u1) a viszonteladk (u2) a nvtelen felhasznlk (u3)

s a rendszerben jelen lv adatokat fontossg szerint osszuk ngy szintre (s jelli az o llomnyrendszerben elrhet adatokat, d pedig az adatbzisban megtallhatakat): o a honlap grakai s szveges elemei, a bevezet ash animci (s1) o a termkek adatai (d1) a rendelslista (d2) a raktri rendszer adatai (d3)

Miutn meghatroztuk, hogy milyen felhasznli szintek, s milyen adatok vannak, mr csak a hozzfrsi jogokat kell megfelel en kiosztani. Az albbi tblzatok kt o alapvet en klnbz o llspontot szemlltetnek. o u0 r rw rw rw u1 rw rw rw rw u2 r r rw r u3 r r w -

s1: d1: d2: d3:

1. tblzat. Hibs jogosultsgi tbla u0 r u1 rw rw rw rw u2 r r rw r u3 r r w -

s1: d1: d2: d3:

2. tblzat. Helyes jogosultsgi tbla Vizsgljuk meg, mi a problma az els jogosultsgrendszerrel. Ha a rendszer felo hasznlinak adatokat kell mdostani vagy lekrdezni az adatbzisbl, akkor oda valakinek hozzfrsi jogosultsgra van szksge. Gyakori hibs hozzlls az, hogy 57

LME

GNU/Linux Konferencia

a webszerveren fut aktv tartalom minden adathoz minden hozzfrsi jogot birto kol, s o dnti el, hogy melyik felhasznlnak mit tesz meg. Ez kt problmt vet fel: amennyiben a rendszert meg lehet tveszteni, vagyis nem megfelel az azonostsi o rendszer, akkor a csibsz ms felhasznlknt tud a rendszerhez frni. A komolyabb problma az, hogy akr a webszerverben, akr az aktivtorban van hiba, a csibszek rossz esetben hozz tudnak frni minden adathoz. Mi lehet a megfelel megolds? o Az aktivtornak nem kell ismernie az adatbzis elrshez szksges authentikcis tokent, hiszen neki nem kell elrnie azt. Mikor a felhasznl azonostja magt, va lamilyen formban megadhatja azt (jelsz esetn pldul bekrheto), gy biztostott az adatbzishoz val kapcsolds. Ebben az esetben a felhasznl semmilyen mdon nem tudja rszedni az aktivtort illetktelen m veletre, hiszen annak nincs joga hozz, az u authentikci az adatbzis szinten (is) lezajlik, s ott trtnik az authorizci. A felhasznl biztonsgos azonostsra rdemes egy egyszeru CA sszelltsa (openssl segtsgvel egyszeruen megoldhat), s a jogosult felhasznlknak kiadni egy-egy di gitlis azonostt.

5. Az aktv tartalom fejlesztse


Az aktv webkiszolgl megfelel biztostshoz elengedhetetlen az aktivtor krlteo kint tervezse s fejlesztse. Ha az adott feladat ltszlag nem is indokolja a komoly o energiabefektetst, akkor is rdemes szem el tt tartani az esetleges feltrsbol add o vrhat anyagi s erklcsi krokat. Biztonsgos rendszer fejlesztsben jratlan fejleszt knek javaslom az adott nyelv biztonsgi funkciirl szl lersok s egyb dokuo mentcik alapos tolvasst. A gyakrabban hasznlt nyelvekr l az Interneten elrhet o o olyan sszefoglal, amely az esetleges biztonsgi kockzatokkal foglalkozik. Komolyabb rendszer tervezsnek megkezdse el tt rdemes legalbb tolvasni a CC [9] o kapcsold rszeit. Ha a rendszer fejlesztst nem is tkletesen CC szerint folytatjk, akkor is rvilgt olyan krdsekre, amelyek biztonsgi terleten tapasztalatlan fejleszt k fejben fel sem merltek volna. A tervezsnl gyelembe kell venni, hogy o a rendszer vrhatan mekkora tmadsnak lesz kitve, s ez alapjn kell megtervezni a vdelmi rendszert. A tervben meg kell hatrozni, hogy ki milyen informcikhoz frhet hozz s milyen azonostst hasznl. A rendszer hibat rsr l sem szabad megu o feledkezni. A hibakezels megtervezsnl rzkeny adatok kezelse esetn rdemesebb a biztonsgi rendszereknl hasznlt elveket felhasznlni. Ismeretlen hiba esetn a rendszer inkbb lljon le, mint hibsan m kdjn tovbb. Ilyen esetben rdemes a rendszerbe u o valamilyen nellenorz folyamatot is bepteni, amely kpes rzkelni, ha az adatbzisba idegen adatok jutnak. Javaslom az er s titkostsi eljrsokat hasznlatt, mint o tudjuk, az Internet nem tl biztonsgos. Soha nem szabad megfelel teszt nlkl egy o ilyen rendszert hasznlni. Nem szorosan vett biztonsgi krds, de igen fontos, hogy a rendszer tervezsi s fejlesztsi dokumentcijt minden esetben el kell kszteni vagy kszttetni a ks bbi tovbbfejleszts lehet v ttele rdekben. o o

6. A kiszolgl teleptse, belltsai


A korbban kivlasztott rendszer teleptse meglehet sen egyszeru. Vannak ugyan o disztribcis klnbsgek, nagy ltalnossgban elmondhat azonban, hogy a webszerver tartalmazni fog minden olyan funkcit, amelyet a terjeszt k fontosnak tltek. o

58

LME

GNU/Linux Konferencia

Ezen a belltsok mdostsval sem lehet megnyugtatan vltoztatni, mivel az ilyen nomhangolst csak fordts kzben lehet elvgezni. Javaslom teht a kivlasztott eszkz forrsnak letltst, s a valban hasznlt opcik belltsa utn annak jrafordtst. Amennyiben a rendszer lehet v teszi, fordtsra praktikus a StackGuard [10] o hasznlata, amely bizonyos tmadsok kivitelezst alaposan megnehezti (nem teszi lehetlenn!). Ha elkszlt a futtatand szerverprogram, el kell lltanunk a megfelel o o futsi krnyezetet a szmra. Ez alapesetben az opercis rendszerbol ll, melynek belltsairl korbban szltunk. Ha nagyobb biztonsgra treksznk, a programnak rdemes egy kln futtat krnyezetet sszelltani (jail vagy sandbox). Ez hatalmasat dob a rendszer biztonsgn, hiszen az adott alrendszer kompromittldsa esetn a csibszek jval nehezebben, vagy egyltaln nem tudnak a tbbi alrendszerek ada taihoz frkozni. Itt is gyelmeztetnem kell azonban mindenkit, a jail nem csodaszer. Hibs kivitelezse vagy kernelhiba esetn elrhet ek a kls adatok. Helyes felptse o o tlmutat el adsom keretein [11], a megfelel eljrsokat Zmb Marcell el adso o o ban rszletesen ismerteti. Amennyiben a rendszernk futsra ksz, akkor mr csak a belltsok vannak htra. Ha valaki a cm lttn abban remnykedett, hogy itt ksz mintkat kap, sajnos ki kell brndtsam. Vlemnyem szerint egy m kdo kongurcis plda gyakran rossz u irnyba viszi a lusta vagy elfoglalt rendszerptot. Megtrtnhet, hogy a plda ltal hasznlt belltsok maradnak az les rendszeren is. Mivel azonban a dolgunk egy valban biztonsgos kiszolgl ptse, gy t kell olvasni a teljes rendszer dokumentcit, s mindenkinek egyedi ignyei szerint kell belltania a rendszert. Ha pldul a webszerver modulris felpts , akkor kizrlag azokat a modulokat szabad betlteni, u amelyek valban hasznltak. gy elkerlhetok a nem hasznlt, de hibs modulokon keresztli tmadsok. A rendszer biztonsgi funkciit kitntetett gyelemmel kell tvizsglni s belltani (pldul a php futsi hibk kirsa tilthat). A rendszer naplit rdemes egy tvoli rendszerre is tovbbtani s archivlni, gy a rendszer esetleges kompromittldsa esetn a mentett naplkbl rekonstrulhat a betrs.

7. zemeltetsi krdsek
Miutn a rendszer zemkpess vlt, mr csak arrl kell gondoskodnunk, hogy szervernknek nagy megbzhatsggal zemeljen kell. Ennek megknnytse rdekben lljon itt nhny jtancs. Minden alrendszert (csomagot) rdemes a lehet legutbbi stabil vltozaton tartani, o mivel az j verziban kijavthattak olyan biztonsgi hibkat is, amelyeket mg nem publikltak. Az ltalunk vlasztott rendszerek biztonsgi listit s a BugTraq-et [12] mindenkppen rdemes olvasni, mivel itt lehet legkorbban rteslni a napfnyre kerlt biztonsgi hibkrl. Azok a hibk, amelyeket a csibszek tallnak meg, s nem publiklnak, sajnos folyamatos veszlyt jelentenek a rendszereinkre. Itt legfeljebb annyit tehetnk, hogy az eddigieknek megfelel en megneheztjk a dolgukat, s remnykeo dnk. Ne ltassunk magunkat azzal, hogy a mi rendszernk srthetetlen. A kiszolgls zkken mentessge miatt a rendszer nem adat rszr l ksztsnk o o minden frissts el tt teljes mentst, vagy egy tesztrendszeren prbljuk meg a frisso ts utni llapotot, s csak ezutn kezdjnk az les rendszer frisstsbe. Hatrozzuk meg, hogy milyen gyors a rendszeren lv adatok vltozsi teme, s ksztsnk meno tsi tervet. A mentsi tervet tartsuk be. Tesztrendszeren ksrletezznk a mentsb l o val visszallssal, gy tkletesthetjk a mentsi rendszert, s sszellthatunk egy katasztrfatervet. 59

LME

GNU/Linux Konferencia

A rendszeren lv llomnyok mdostsnak az ellen rzsre hasznljunk valamio o o lyen digitlis ujjlenyomat-ellenorz eszkzt (pldul Tripwire). Ezzel, ha nem is bizto san, de viszonylag nagy biztonsggal eldntheto, hogy a rendszer llomnyai srlteke. Ha igen, megllapthat, hogy mi, s a hibs llomnyok visszallthatak. Valamely kongurcis llomny vagy binris vltozsa esetn azonban srg sen ki kell derteni, o hogy hogyan hatolhatott be az illet a rendszerbe. Ekkor nagy segtsgnkre lesznek a o naplllomnyok. Egy kzepesen terhelt rendszer is olyan mennyisg naplllomnyt llt el , ameu o lyet egy embernek naponta tnzni vagy lehetetlen, vagy nagyon unalmas. A naplk el sz rsre a legegyszerubb megolds a klasszikus Articial Ignorance mdszer, o u amely a mr ismert sorokat kisz ri, gy a naplelemzohz csak a klns tartalm u sorok jutnak el. Ez ugyan adatveszts, mivel a naplk mennyisgbol illetve frekvencijbl is lehet kvetkeztetseket levonni, de itt ez most nem szmt. Ha a csibszek a rendszerbe jutva lecserlik a weblapot, arrl clszer els knt ru o teslni. rdemes olyan rendszert telepteni egy tvoli gpre, amely id nknt ellen rzi o o a f bb oldalak llapott, s azok vltozsa esetn rtestst kld a rendszergazdnak. o Ez statikus tartalom esetn nagyon egyszeru, hiszen az adott lapok helyes tartalmt lemsolva az ellen rzs pofonegyszeruen elvgezheto. A dinamikus tartalm lapok o esetben kiss sszetettebb a helyzet. Ilyen esetben rdemes az aktivtor tervezsnl gyelembe venni az ellen rzs ignyt, s olyan vzjellel ltni el a generlt oldalakat, o amely ellen rizheto, de az esetleges tmadk szmra nehezen rzkelhet . Egy nao o gyon egyszeru megolds lehet pldul, hogy valamely HTML tag minden esetben egy el re meghatrozott mdon kerl az oldalra. Ez a megolds termszetesen nem vd az o adatbzisba vitt hibs adatok ltali deface ellen, de arra is kitallhat megolds.

8. Mr ltez rendszer vdelme o


Azok a mr ltez rendszerek, melyek elksztsnl a fenti szempontok valamelyikt o nem vettk gyelembe, nagyon nehezen vdhetok. Le lehet rni, hogy mi a normlis m kds, ezt t zfallal meg lehet prblni kiknyszerteni, de a rendszer vdelme u u nem lesz tkletes. ltalnossgban elmondhat, hogy az ilyen rendszert rszben vagy egszben jra kell tervezni s fejleszteni. Ezrt rdemes a project elejt l gyelembe o venni a biztonsg szempontjait.

9. Idegen szavak jegyzke


kompromittldott szerver Olyan szerver, amelynek a biztonsgval kapcsolatban krds merlt fel. Ha a valdi behatols nem is bizonythat, a rendszert rdemes jratelepteni vagy er sen szemmel tartani. Szksg esetn a rendszer egyes o kiszolgl programjait is rdemes lecserlni. Mivel a biztonsgtechnikval foglalkoz emberek szakmjukbl addan paranoisok, gy a kompromittldott szerver gyakorlatilag a feltrt rendszer szinonimja. deface A weblap rosszindulat lecserlse valamely nem odaill tartalommal. A csio bszek ezzel bizonytjk a vilgnak, hogy az adott rendszer fltt sikerlt tvennik a hatalmat. aktivtor A szerveroldali dinamikus tartalom meghajtprogramjainak sszefoglal neve. Mivel ez sajt kifejezs, gy a szakirodalomban nem tallhat meg. Az 60

LME

GNU/Linux Konferencia

albbi szszerkezetet helyettesti: a program, amely a weblapot dinamikuss teszi. certicate Digitlis azonost. Egy alrt digitlis kulcsbl s nhny egyb adatbl ll struktra, amely segtsgvel az ssl-re pl protokollok hasznlatnl a kt o kommunikl fl megbzhatan azonosthatja a msik oldalt. authentikci Azonosts. Minimlis szint vdelmi rendszer is authentiklja a felu hasznljt miel tt az brmilyen er forrst ignybe vehet. Az egyik legegyszeo o r bb formja a jelszavas azonosts, bonyolultabbak pldul az S-Key, CCard, u SmartCard, Certicate stb. authorizci Meghatalmazs, felhatalmazs. Ha a rendszer megklnbztet valamilyen hozzfrsi szinteket, akkor a felhasznlt annak azonostsa utn a rendszer felhatalmazza bizonyos er forrsok hasznlatra. Ezek lehetnek llomnyo vagy objektum-hozzfrsi jogosultsgok, belptet rendszer esetn akr egy o ajt kinyitsa.

sandbox

jail

jail Olyan futtat krnyezet, melyben csak egy adott program vagy programcsoport futshoz szksges llomnyok vannak. Hasznlata lehet v teszi az egyes ho lzati dmonok szeparlst. Ha megfelel hozzrtssel lltjk ssze, s a kero nel is megfelel (gyakran kiss mdostani kell), akkor nem lehet kitrni bel le. o o

Hivatkozsok
[1] Az OpenWall project honlapja: http://www.openwall.com [2] A HAP honlapja: http://www.theaimsgroup.com/ hlein/hap-linux [3] Linux Intrusion Detection System http://www.lids.org [4] grsecurity project honlapja http://www.getrewted.net [5] A FreeSWAN project honlapja http://www.freeswan.org [6] User Mode Linux project http://user-mode-linux.sourceforge.net [7] A VMWare honlapja http://www.vmware.com [8] Az Argante project honlapja http://www.argante.org [9] Common Criteria project http://csrc.nist.gov/cc [10] Immunix project: StackGuard http://www.immunix.org [11] Zmb Marcell, Biztonsgos chroot krnyezet kialaktsa III. GNU/Linux Konferencia kiadvnya, LME, [Bp., 2001.] [12] BugTraq levelez lista http://www.securityfocus.com o

61

62

Unix, vagy nem Unix? A Unix loza jv je a Desktop rendszerek o korban


Nmeth Lszl <nemethl@mailbox.hu> 2001.08.30.
Kivonat A Unix loza rsze az tfog (szveges) fjlkezels, a hj, a cs be kthet seo o gdprogramok, a regulris kifejezsek, az eszkzfjlok, s a tbbi. Krds, hogy azok a lehet sgek, amelyeket ezek az eszkzk biztostanak, hogyan lljk meg a o helyket a csillog-villog grakus felletek, illetve alkalmazsok korban?

Tartalomjegyzk
1. A Unix sikere 1.1. Kedvez r/teljestmny arny . . . . . . . . . . . . . . . . . . . . . o 1.2. Hordozhatsg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3. Programozsi krnyezet . . . . . . . . . . . . . . . . . . . . . . . . . 2. Unix-e a Linux? 3. A Unix parancsnyelv 4. Pldk 4.1. Egyszeru pldk . . . . . . . . . . 4.2. KWIC . . . . . . . . . . . . . . . 4.3. Megjegyezheto vletlen jelszavak 4.4. Web-tools . . . . . . . . . . . . . 5. sszefoglals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 64 64 65 65 65 66 66 66 71 72 75

63

LME

GNU/Linux Konferencia

1. A Unix sikere
A Unix opercis rendszer meglep en sikeresnek mondhatk az informatikban: tbb, o mint 30 ve m kdik ugyanazon alapelvek alapjn. Ha a siker okait rtatjuk, a ku vetkez ket kell kiemelnnk: a Unix egy olcs, rendkvli mrtkben hordozhat s o programozhat ltalnos cl opercis rendszer.

1.1. Kedvez r/teljestmny arny o


A gazdasgos, kltsgtakarkos, stb. jelz k is az olcssg pozitv megfogalmazst o jelentik. A Unix assembly vltozata szksgbol egy mr kifutban lv gptpusra, o egy DEC PDP-7-esre kszlt, mivel a Ken Thompson szerezte Space Travel jtk egy menete 75 dollrnyi CPU id t vesztegetett el a modernebb, s leterheltebb GE-635o sn[5]. A PDP-7-es gp kezdetben kivlan megfelelt a jtkra s egy kismret inu teraktv opercis rendszer rsra. Pr vvel ks bb a korszer bb PDP-11-en olyan o u valdi id osztsos rendszer kszlt el, ami tizedre faragta le egy terminl ltestso nek s zemeltetsnek kltsgeit [6], lehet v tve, hogy az egyetemi oktatsban, a o nagy s drga szmtgpkzpontok rnykban is termszetess vljk az informatika.

1.2. Hordozhatsg
Az id osztst tekintve a Unix nem az els opercis rendszer, hiszen Kemny Jnos o o s Thomas Kurtz 1963-ban ksztette el a Dartmouth Time-Sharing System (DTSS) el djt egy GE-235-sn, ami 1964-ben a szintn ltaluk kidolgozott (s nem interpreo tlt, hanem fordtott) BASIC nyelv segtsgvel a hallgatk rendelkezsre llt. 65-ben mr a krnykbeli kzpiskolkba is terminlok kerltek, 66-ban pedig egy ajndk m velet/msodperc) u GE-635-sn kidolgozsra kerlt a DTTS, ami kb. 1 MIPS ( sebessg mellett egyidejuleg 200 felhasznlt tudott kiszolglni [1]. Mg a BASIC nyelv vltozataiban ma is l (Visual Basic), a DTSS-r l ez nem o mondhat el, a legtbb assembly-ben megvalstott rendszerhez hasonlan. 1973-ban Ken Thompson Dennis Ritchie segtsgvel C nyelvre ltette t a Unixot, ezzel elksztve az els hordozhat forrskd opercis rendszert. A C nyelv Deno nis Ritchie m ve. A C gpfggetlen s mgis gpkzeli programrsra szolgl mind a u mai napig (Ritchie s Thompson megunta a programok tvitelvel jr bonyodalmakat). Rosszmjak szerint a Unix igazi sikernek oka ez [7], illetve, hogy az AT&T az akkori monopoltrvnyek miatt nem csinlhatott nagy zletet a Unix-bl: az oktats szmra ingyenesen hozzfrhet o tette a forrskdot, egybknt 99 dollrrt lehetett hozzjutni. Ken Thompson egyetemi kurzusokon sorrl sorra ismertette az opercis rendszer forrskdjt. Az, hogy ezt megtehette jcskn ksznheto a C nyelv megvau lstsnak! A Unix nem csak hordozhatv vlt, hanem rthet v is a szles szakma o szmra. Thompson-t olyan tantvnyok hallgattk, mint Bill Joy (BSD Unix s a Java specikci trsszerz je, az Internetet megalapoz BSD Unix-os TCP/IP implemento ci, valamint a C-shell, NFS, vi, stb. szerz je). A Berkeley egyetem forradalmi BSD o Unix-vltozata is kezdetben a gyenge BSD engedllyel jelent meg, ami lehet v tette o a forrskd szabad felhasznlst [6].

64

LME

GNU/Linux Konferencia

1.3. Programozsi krnyezet


A Unix nem rendelkezik BASIC-szer programnyelvvel, mint a DTSS, vagy mint az u els mikroszmtgpek (a Python jval ks bbi fejleszts). Nem jellemzi az assembly o o hasznlata sem, mgis egyedlllan gazdag programozsi krnyezet. A Basic helyett a hjat, az assembly helyett a C nyelvet talljuk meg egy Unix-ban. Brian Kernighan-t idzve a hj (hj) nem interaktv parancsrtelmez o, hanem valjban egy programnyelv [8]. Magasabbszintu a BASIC-nl is, hiszen utastsai sokszor kln programok: a Unix opercis rendszer segdprogramjai. Az rdemi munka ezen a programozsi nyelven keresztl folyik, ha egy terminl, vagy terminl-emulcis program el tt lnk. Kett s arca van: hiszen teljes mrtkben interaktv lehet, sorono o knt vgrehajtva parancsainkat, vagy pedig ha ezeket egy llomnyba (hjprogram=hj forrskd) rgztjk, akkor kpes egyszerre vgrehajtani azt. A rendszer hasznlata szorosan sszeforrt a programozssal. Tveds azonban azt hinni, hogy ezrt csak programozk kpesek hasznlni. Guido van Rossum, a Pyt hon nyelv kszt jnek fggoben lv Computer Programming for Everybody (CP4E) o o projektje gyakorlatilag mr tbb vtizede megvalsult, pontosabban megvalsulhatott volna a Unix hjjal. Ami hinyzik mg a rendszerbol, s ami igazbl meggtolja, hogy mindenki programozjv vljon egy Unix rendszernek, hogy nincs a kezd k szmra o kell en dokumentlva a rendszer. Magyar nyelven [8] a legteljesebb bevezet a hj o o hasznlatba.

2. Unix-e a Linux?
Mivel vgig Unix-rl beszlnk, felmerl a krds, hogy a Linux mennyiben tekintheto Unix-nak. Linus Torvalds szerint a Linux Unix-szeru, mivel a hordozhatsg miatt van egy Unix-kompatibilis fellete, valamint kialakthat rajta Unix krnyezet a hj-, s a Unix segdprogramokkal, de nem Unix-vltozat, mivel a Linux rendszermag nem tartalmaz BSD Unix-bl rklt kdot [2]. A Linux terjesztsek jelenleg nagymrtkben a Unix-os oldalt tmogatjk a Linuxnak, alaprtelmezett segdprogramoknak tekintve a GNU Unix segdprogramokat (bash hj, textutils, leutils, sh-utils, ndutils, stb.) Kapcsoldva az el z szakasz zr megjegyzshez, szomor, hogy a Linux ero o r l az oldalrl kevss dokumentlt. A Linux terjesztsek alaprtelmezett hjhoz, a o bash-hoz kszlt HOGYAN elkpeszt en szegnyes, a bash kziknyv pedig tl tmr, o hogy brki egyszeruen megtanulja az alapjn a hj hasznlatt.

3. A Unix parancsnyelv
A Unix parancsnyelv, msnven hj kzel egyidos a Unix-szal. A Thompson hj, az eredeti /bin/sh mg a Multics-bl vett t tleteket, de olyan eredeti megoldsokkal b o vlt, mint a csvek, valamint a szablyos kifejezsek felhasznlsa a hjbl meghvhat segdprogramoknl. A cs nem teljesen Unix tallmny: a DTSS kommunikcis fjlai hasonl clt o szolgltak. Mg rgebbrol ismert a szmtstechnikban a korutinok fogalma, amit gyakran megfeleltetnek a cs hlzatba kttt programoknak. Ami egyedlll, az az o egyszeru szintaxis, ahogy ez megvalsthat a Unixban. Tovbb az egyszeruen kezel het fjlrendszer, az tirnytsok, s a hj helyettestsei maximlisan kib vtik a hj o o s a csvek felhasznlsi terlett. 65

LME

GNU/Linux Konferencia

4. Pldk
A kvetkez pldk clja, hogy a Unix loza erejt altmasszk. Az els plda o o szoksos Unix parancsokat mutat be. A msodik plda egy klasszikus szmtstechnikai feladat, a Parnas-fle KWIC indexkszts, amelyet egy egysoros hjprogrammal is megvalstunk. A harmadik megjegyezheto vletlen jelszavak generlst mutatja be. Vgl kib vtjk a Unix segdprogram-kszlett egy angol rtelmez kzisztrral, s o o egy l nyelvi fordtprogrammal. o

4.1. Egyszeru pldk


Ksztsnk lemezkpet egy oppylemezrol: $ cat /dev/fd0 > lemezkp Megtehettk volna ezt a cp paranccsal is, de gy termszetesebb. Msoljuk az alknyvtrakban lv txt llomnyokat egy helyre: o $ cp */*.txt /tmp Konvertljuk a knyvtrban lv llomnyok nevt kisbet sre: o u $ for i in *; do mv $i $(echo -n $i | tr A-Z a-z); done Konvertljuk a knyvtrban lv sszes BMP llomnyt feleakkora szlessg s o u negyedakkora magassg JPG llomnyra: $ for i in *.bmp do convert -geometry 50%:25% $i $(basename $i bmp)gif done

4.2. KWIC
A KWIC (Keyword in Context) mutatk a knyvtrltogatk hasznos segdeszkzei, mivel nem csak azt mutatjk meg, hogy a keresett trgysz milyen m ben fordul el , u o hanem azt is, hogy milyen szvegkrnyezetben. Dave Parnas 1972-es cikke [3] a KWIC egy olyan vltozatt veszi pldnak, ami pl. knyvcmek keresst knnyti meg akkor, ha csak az egyik cmben el fordul szt ismerjk. A pldafeladat lnyege a kveto kez : adott cmeknek a sorozata, minden cm kln sorban kerl elhelyezsre. Minden o egyes sor szavait krkrsen eltolva (vagyis az els szavakat htra kldve) tovbbi o sorokat kpeznk. Egy n-szavas cmb l teht n-1 tovbbi sort kapunk, vgl az sszes o sort bc szerint rendezzk. Parnas emlkezetes kijelentse szerint brmely gyakorlott programoz kt ht alatt megbirkzik ezzel a problmval. Azta persze sokat fejl o dtt a vilg, pl. C++ nyelven 80-90 soros programmal megoldhat a problma [4], ha az adott nyelvnek megfelel mdon programozunk. o Megolds awk-kal Tekintsk a Unix lehet sgeit. Els esetben az awk, mint jl programozhat sorfeldolo o goz jn szmtsba. A kvetkez circ.awk llomnyban trolt program a szabvnyos o bemenetnek minden sorra elvgzi a krkrs eltols-sorozatot, s az eredmnyt kirja a szabvnyos kimenetre: 66

LME

GNU/Linux Konferencia

{ for(i=1; i<=NF; i++) { text = $i for (j=i+1; j<=NF; j++) { text = text " " $j } text = text "," for (j=1; j<i; j++) { text = text " " $j } print text } } A program tesztelshez futtatjuk az llomnyt az awk-kal. $ awk -f circ.awk a b c [Ctrl-D] a b c, b c, a c, a b A pldban a bemenet most a terminl, de persze ha valban hasznlnnk ezt a programot, gyakoribb lenne az ilyen formban trtno meghvs: $ cat cim.txt | awk -f circ.awk > cim.kwic A KWIC poblma megoldshoz mr csak az bcsorrendbe trtno rendezs hinyzik: egyszeruen csak tadjuk a kimenetet a sort programnak: $ awk -f circ.awk | sort c b a [Ctrl-D] a, b c b a, c c b a, Ha a programunk a tesztek sorn m kdokpesnek bizonyult, el is helyezhetjk u egy futtathat llomnyba: #!/bin/sh # Parnas-fle KWIC I. megolds awk { for(i=1; i<=NF; i++) { text = $i for (j=i+1; j<=NF; j++) { text = text " " $j } text = text ","

67

LME

GNU/Linux Konferencia

for (j=1; j<i; j++) { text = text " " $j } print text } } | sort | uniq A forrsban szerepl uniq nem csinl mst, mint egy sort hagy csak meg az ismto l d sorokbl. o o Megolds awk nlkl Az awk hatkony, de a hj mellett megint egy j nyelvet jelent, ami radsul inkbb a C-re emlkeztet, mint a hjra. Keressnk egy msik, bizonyos szempontbl jobb megoldst. A hj rendelkezik egy olyan utastssal, ami nagyban megknnyti a krkrs eltols kivitelezst. Ez a shift, ami az aktulis hjprogram paramtereit tolja el balra (szm paramtert is elfogad az utasts, de erre most nem lesz szksgnk). Kszthetnk egy circ nev hjprogramot, ami a paramtereit krkrsen eltolja: u #!/bin/sh for i do echo $*, $j j="$j $1" shift done Pldul: $ circ a b c a b c, b c, a c, a b Most mr csak ssze kell raknunk a megfelel cs vezetket, ami a Parnas-fle o o KWIC problma el z hz hasonl megoldst jelenti. Ehhez felhasznljuk a xargs o o programot, ami egy szvegfjl sorait paramterknt adja t a megadott programnak. A -l1 kapcsol jelentse, hogy egyszerre csak egy sorbl ksztsen paramterlistt: $ echo A kutya meg a mja | xargs -l1 circ | sort A kutya meg a mja, a mja, A kutya meg kutya meg a mja, A mja, A kutya meg a meg a mja, A kutya Ez a megolds 1020-szor lassabb, mint az el z awk program, mivel a bemenet o o minden egyes sorra meghvunk egy alhjat. Ami miatt mi mgis ezt preferljuk, az az, hogy kicsi s egyszeru, valamint kell en rugalmas ahhoz, hogy knnyedn kisz rjk o u pldul a KWIC listt feleslegesen duzzaszt nvel ket s kt szkat. me a mdostott o o krkrs eltol, a circ2: 68

LME

GNU/Linux Konferencia

#!/bin/sh for i do case $1 in [aA]|[aA]z|[eE]gy|s|vagy);; *) echo $*, $j;; esac j="$j $1" shift done $ echo A kutya meg a mja | xargs -l1 circ2 | sort kutya meg a mja, A mja, A kutya meg a meg a mja, A kutya Mindez hjprogrammal (visszatrve a circ-hez): #!/bin/sh # Parnas-fle KWIC II. megolds xargs -l1 circ | sort | uniq Ha egy hjprogramba szeretnnk sszegezni programjainkat, akkor a kziknyv fellapozsa utn a kvetkez megoldst kapjuk: o #!/bin/sh # Parnas-fle KWIC III. megolds xargs -l1 sh -c for i do echo $*, $j j="$j $1" shift done $0 | sort | uniq Ez a megolds bonyolultabb, mint az el z , mivel egy j kapcsolt kell megjegyezo o nnk (az sh -c kapcsolja), valamint azt, hogy a hj a -c kapcsol megadsa esetn az $0 paramtert (ez rendszerint a hjprogram indtsi nevt tartalmaz vltoz) t lnk o vrja. Mi ide $0-t rtunk, tovbbadva a KWIC hjprogramunk nevt az alhjnak. Mirt bonyoltottuk el KWIC programunkat? Azrt, hogy egy llomnyunk legyen kett helyett, valamint hogy egy sorba rhassuk a Parnas-fle KWIC problma megolo dst (itt most nem ltszik, de megszmolhat, hogy pontosan 80 karakteres a program): #!/bin/sh xargs -l1 sh -c for i; do echo $*, $j; j="$j $1"; shift; done x |sort A tmr egysoros implementci ellenre a II. megolds a legegyszerubb megol ds. Egsztsk ki ezt egy szabvnyos -h, illetve help kapcsolval:

69

LME

GNU/Linux Konferencia

#!/bin/sh # Parnas-fle KWIC kapcsolkkal case $# in 0) xargs -l1 circ | sort | uniq ;; *) case $1 in -h|--help) echo "Parnas-fle KWIC, a bemenet minden sort krkrsen eltol, s rendez program." ;; o *) echo "Hibs paramter" >/dev/stderr ;; esac esac Lthat, hogy kt egymsba gyazott case szerkezettel ksztettnk bartsgosabb hjprogramot. A $# visszaadja a hjprogram paramtereinek a szmt. Ha ez nem nulla, akkor megvizsgljuk, hogy az els paramter -h, vagy help-e, s ebben az eseto ben jelentnk meg lerst. Egybknt pedig a szabvnyos hibakimeneten jelentnk meg egy hibazenetet. Tl szp a menyasszony Ha tesztllomnyokon futtatjuk az awk, s pusztn a hjjal megvalstott KWIC programokat, hamar rjvnk, hogy az utbbi nem tkletes. A fordtott perjelek elt nnek u az adatllomnybl, az els dupla s az egyszeres idz jel pedig a feldolgozs megszao o kadst eredmnyezi. A magyar nyelvben ez nem jelentene problmt, de az angolban az aposztrf knnyedn el fordulhat a cmekben. o A kziknyv fellapozsval kiderl, hogy ez a jelensg a xargs programhoz kthet , s ugyan kikapcsolhat, de akkor a soronknti feldolgozs nem m kdik (az o u egsz bemeno llomnyt egy sorknt van kezelve, hacsak a sorok nem nulla ASCII kd karakterre vgz dnek). Kzben el kerlt egy msik problma is a kziknyvo o b l: ha egy sor szkz, vagy tabultor karakterrel vgz dik, akkor a kvetkez sort is o o o hozzveszi a xargs. Ha a kellemetlen, de tipikus (a hj vd karaktereivel kapcsolatos) problmt meg o akarjuk oldani, a sed sz r hz kell fordulnunk. Egy sed paranccsal levdjk a fordtott uo perjelet, s a kt idz jelet, gy, hogy egy tovbbi fordtott perjelet helyeznk eljk. o Egy msik sed paranccsal pedig a sorvgi szkzket, illetve tabultorokat trljk, elintzve a xargs msik turpissgt: #!/bin/sh # awk kompatibilis KWIC hjprogram sed "s/\(["\"]\)/\\\1/g s/[ ]*$// | xargs -l1 circ | sort | uniq A sed paramterl megadott, szablyos kifejezst tartalmaz mintt (sajnos) trkks mdon kellett levdeni: az egyszeres idz jelet dupla idz jel kztt, a duplt egyo o szeres idz jelek kztt adhatjuk meg. o A pldban a prototpus- s a valdi programkszts hatrn mozogtunk a hjjal: awk s sed nlkl is j prototpust alkottunk, de a minden krlmnyek kztti helyes m kdshez szksg van a sed-re, vagy az awk-ra is. u

70

LME

GNU/Linux Konferencia

4.3. Megjegyezhet vletlen jelszavak o


Fontos biztonsgi szempont a megfelel jelszavak hasznlata. A kvetkez plda mego o jegyezheto vletlen jelszavak el lltst s kezelst taglalja. o A Linux kt olyan eszkzfjllal is rendelkezik, amib l vletlen karaktersorozatot o olvashatunk ki. A /dev/random a megbzhatbb, mivel teljes mrtkben egy entrpiatron alapul. Az entrpiatrat a Linux rendszermag kezeli az eszkzmeghajtk ltal detektlt zaj alapjn. Jellemz je, hogy gyorsan kirl, gy el fordul, hogy sokig vrnak o o a hozz kapcsold folyamatok a karakterekre. A msik eszkzfjl, a /dev/urandom gy oldja meg a vrakoztats problmjt, hogy az entrpiatr kirlse utn egy lvletlenszm-genertorral szolgltatja a vletlen karaktereket. A pldban az utbbit fogjuk hasznlni. Az els feladat, hogy a vezrl , s kiterjesztett ASCII karaktereket is tartalmaz o o karakterfolyamot megsz rjk: u $ tr -cd a-zA-Z0-9 < /dev/urandom FstdW4FiPJDxpLen1sgkQt...[Ctrl-C] A tr sz r t tbbnyire karakterkonverzira (translate) hasznljuk, de a -d kapcsoluo val a megadott karakterek trlsre is lehet sg van vele. A -c kapcsolval a megadott o karaktertartomny komplementerbe es karakterek trlhetok, teht gyakorlatilag egy o olyan sz r t ksztettnk, ami az angol bc bet it, s szmokat szolgltat vletlenuo u szer en. u Ennyi (vgtelen) karakterre nincs szksg a jelszhoz. Az els nyolcat lecsippento hetjk a dd sz r megfelel paramterezsvel: uo o $ tr -cd a-zA-Z0-9 < /dev/urandom | dd ibs=8 count=1 KcjESXBf8+0 records in 0+1 records out Az ibs-t (input buffer size) 8 bjtra lltjuk, s ebb l egyet olvasunk csak be (coo unt=1), majd a cs vezetk befejezi m kdst. o u A hibakimenetet rdemes tirnytani az univerzlis adatnyel be: o $ tr -cd a-zA-Z0-9 < /dev/urandom | dd ibs=1 count=8 2>/dev/null Ltszlag minden kimenet elt nt, mivel hinyzik a sorvge karakter. Egy echo-val u ptolhat. $ tr -cd a-zA-Z0-9 < /dev/urandom | dd ibs=1 count=8 2>/dev/null; echo lsgkCwTl A fenti jelszavak vletlenek, de nem megjegyezhetok. A kvetkez ex forrs egy o olyan lexikai elemz t llt el , ami magas, vagy mly hangrend u, vltakozva magn-, o o illetve mssalhangzt (a magyar tbbjegy eket is) tartalmaz szveget sz r ki a bemeu u netb l: o
/* megjegyezhet szr */ o u o %option noyywrap %s MASSALMAGAS MASSALMELY MAGAN MAGAS MELY MINTA [bcdfghjklmnprstvz]|"cs"|"gy"|"ny"|"sz"|"ty"|"zs"

71

LME

GNU/Linux Konferencia

%% <INITIAL>{MINTA} { printf("%s",yytext); BEGIN(MAGAN); } <MASSALMAGAS>{MINTA} { printf("%s",yytext); BEGIN(MAGAS); } <MASSALMELY>{MINTA} { printf("%s",yytext); BEGIN(MELY); } <MAGAN,MAGAS>[ei] { printf("%s",yytext); BEGIN(MASSALMAGAS); } <MAGAN,MELY>[aou] { printf("%s",yytext); BEGIN(MASSALMELY); } .

Fordtsuk le, s futtassuk: $ flex jelszo.flex $ gcc -o jelszo -lfl lex.yy.c $ tr -cd a-zA-Z0-9 < /dev/urandom | jelszo | dd ibs=1 count=10 2>/dev/null; echo napodanoho A tr-re azrt van szksgnk mg els sorban, hogy nagyobb valszn sggel keo u rljenek tbbjegy mssalhangzk a generlt jelszavakba. u Ksztsnk az el z parancsbl egy hjprogramot jel nven, s generljunk le 10 o o darab megjegyezheto vletlen jelszt: $ for i in seq 10; do jel; done jemezidisi repimepepi tifijipepe hucamugajo kahujakoto ridedejive bucaponugu suganurugo jujajufuto pojojobahu A jelszavak irnikusak, s nem igazn megjegyezhetok mg, de a ex kell en eo xibilis ahhoz, hogy a magyar nyelv nyelvtani szablyait jobban gyelembe vev mego oldst ksztsnk. A kvetkez lps ami itt mr nem kerl megvalstsra egy olyan hjprogram o elksztse, ami nem trolja a jelszavakat, hanem a megadott azonostj felhasznlknak azonnal mdostja a jelszavt (passwd stdin), s kinyomtatja kln oldalra (pr -f ) a jelszavakat.1

4.4. Web-tools
A kvetkez kt hjprogram nem csinl mst, mint hlzati szolgltatsokhoz fr hozz, o s az eredmnyt beilleszti a Unix krnyezetbe. Gyakorlatilag a szegny ember Unix-os XML-RPC/Soap implementciinak is tekinthetjk.
1 Zrt ktrteg indigs leporell ami magba rejti a kinyomtatott jelszt kell en megnyugtatja a u o felhasznlkat.

72

LME

GNU/Linux Konferencia

Merriam-Webster sztr A kvetkez hjprogram a Merriam-Webster sztr hlzati vltozathoz a links (vagy o a lynx) karakteres bngszo segtsgvel fr hozz. #!/bin/bash # Merriam-Webster Dictionary case $# in 0) echo -e "Merriam-Webster Dictionary Usage: mw keyword" ; exit; esac url=http://www.m-w.com/cgi-bin/dictionary links -source $url?book=Dictionary\&va=$1 | grep "^<b>" > /tmp/webster.$$ links -dump /tmp/webster.$$ rm /tmp/webster.$$

Babelsh (SysTran) fordt A kvetkez hjprogram az el z h z hasonl megoldssal a SysTran fordthoz fr o o o o hozz, kihasznlva az Altavista ingyenes szolgltatst. #!/bin/bash i="Babelfish (SysTran) Translator filter human text translating from stdin to stdout Usage: fish [option] < textfile Options: -c English to Chinese -f English to French -g English to German -i English to Italian -j English to Japan -k English to Korean -p English to Portuguese -s English to Spanish -ce Chinese to English -fe French to English -ge German to English -ie Italian to English -je Japan to English -ke Korean to English -pe Portuguese to English -se Spanish to English -fg French to German -gf German to French" lp=en_es case $1 in 73

LME

GNU/Linux Konferencia

-h) echo -e "$i" ; exit ;; -c) lp=en_zh ;; -f) lp=en_fr ;; -g) lp=en_de ;; -i) lp=en_it ;; -j) lp=en_ja ;; -k) lp=en_ko ;; -p) lp=en_pt ;; -s) lp=en_es ;; -ce) lp=zh_en ;; -fe) lp=fr_en ;; -ge) lp=de_en ;; -ie) lp=it_en ;; -je) lp=ja_en ;; -ke) lp=ko_en ;; -pe) lp=pt_en ;; -se) lp=es_en ;; -fg) lp=fr_de ;; -gf) lp=de_fr ;; esac tr " \n<>\&\"" "++++++" > /tmp/fish.$$ url=http://babelfish.altavista.com/tr?doit=done\&urltext= links -source $url"$(</tmp/fish.$$)"\&lp=$lp | sed -n /<td bgcolor="*white"*>/,/<\/td>/p /<textarea[^>]*name="q">/,/^<\/textarea>/p | sed s/<\/*[^>]*>//g rm -f /tmp/fish.$$

Teszteljk le a programjaink m kdst: u


$ webster keyboard 1 : a bank of keys on a musical instrument (as a piano) that usually consists of seven white and five raised black keys to the octave 2 : an assemblage of systematically arranged keys by which a machine or device is operated 3 : a board on which keys for locks are hung $ webster keyboard | fish -i 1: una banca dei tasti su uno strumento musicale (come piano) che consiste solitamente di sette bianchi e di cinque ha sollevato i tasti neri all ottava 2: un raduno dei tasti sistematicamente organizzati da cui una macchina o un dispositivo funzionata 3: una scheda su cui imposta per le serrature appesa $ webster keyboard | fish -i | fish -ie 1: a bank of the keys on a musical instrument (like plan) that it usually consists of seven white men and of five has raised the black keys to the eighth 2: a gathering of the systematically organized keys from which a machine or a device it is worked 3: a card on which tax for the locks it is hung

Az eszkzk m kdnek, az olaszbl visszafordts pedig kell en humoros. u o

74

LME

GNU/Linux Konferencia

5. sszefoglals
A Unix parancsnyelve verhetetlen a mindennapos feladatok automatizlsban, a cs veknek s egyb koncepciinak ksznhetoen egyedlllan robusztus. A gyakorlatban prototpus-kszts szempontjbl sem megvetend , hiszen a prototpus gyakran o tkletes programnak bizonyul, s nem szksges C, vagy egyb programnyelvekhez fordulni.

Hivatkozsok
[1] A. Colvin: The DTSS Time-Sharing System, http://www.dartmouth.edu/ carlp/dtss.html [2] L. Torvalds: The Linux Edge, in Open Sources: Voices from the Open Source Revolution http://www.oreilly.com/catalog/opensources/book/toc.html [3] D. Parnas: On the criteria to be used in decomposing systems into modules (Communications of the ACM, 15(12):1053-8, dec. 1972), http://www.acm.org/classics/may96/ [4] KWIC Page C++: http://www.infosys.tuwien.ac.at/Staff/gt/KWIC/ [5] Dennis Ritchie: Early Unix history and evolution, http://cm.bell-labs.com/cm/cs/who/dmr/hist.html Klasszikus cikk a Unix els pr vr l. o o [6] Andrew Leonard: BSD Unix: Power to the people, from the code, Salon Free Software Project, http://www.salon.com/tech/fsp/2000/05/16/chapter_2_part_one/ gretes bngszheto knyv rendkvl sok httrinformcival a szabadszoftvermozgalomrl. [7] Eric S. Raymond: Unix conspiracy in Jargon Files, http://www.tuxedo.org/ esr/jargon/html/entry/Unix-conspiracy.html [8] B. Kernighan, R. Pike: A Unix opercis rendszer, 5. burokprogramozs, M szaki u Knyvkiad, Budapest, 1994 A Unix programozs tmjban mg mindig alapm . u

75

76

Frtzsi megoldsok Linux-alap cluster technolgik


Papp Dniel Pintr Zoltn 2001. szeptember 3.
Kivonat Az utbbi id ben Linux alatt is megjelentek olyan frtzses megoldsok, melyek o korbban csak nagygpes rendszerekben voltak elrhet k. Ez a fajta technolgia o az elmlt vekben dinamikusan fejl dtt. o Linux alatt tbbfle frtzses megoldsrl beszlhetnk: Nagy teljestmny tudomnyos-technikai frtzs. Itt a cl az alkalmazs u sklzhatsgnak nvelse. Hlzati terhelsmegoszt frtzs. Ennek clja a nagymter hlzati teru hels megosztsa. Magas rendelkezsrellst nyjt frtzs, zleti alkalmazsok rszre. Clja az alkalmazs rendelkezsrellsnak nvelse. SSI (Single System Image) frtzs. Ez a rendszerer forrsok optimlis kio hasznlst, sklzhatsgt clozza meg.

Tartalomjegyzk
1. Tudomnyos-technikai frtzs (pl. Beowulf-cluster) 1.1. Tulajdonsgok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2. Technikai jellemz k . . . . . . . . . . . . . . . . . . . . . . . . . . . o 2. Terhelsmegoszt frtzs (pl. Linux Virtual Server) 2.1. Tulajdonsgok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. Technikai jellemz k . . . . . . . . . . . . . . . . . . . . . . . . . . . o 78 78 78 78 78 78

3. Nagy rendelkezsrellst (HA - High availability) biztost frtzs (pl. Kimberlite, Convolo) 79 3.1. Tulajdonsgok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 3.2. Technikai jellemz k . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 o 4. SSI (Single System Image) frt (pl. Mosix) 4.1. Tulajdonsgok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2. Technikai jellemz k . . . . . . . . . . . . . . . . . . . . . . . . . . . o 5. HA-frtk fejl dsi szakaszai o 6. sszegzs 7. Hivatkozsok 77 79 79 79 80 80 80

LME

GNU/Linux Konferencia

1. Tudomnyos-technikai frtzs (pl. Beowulf-cluster)


1.1. Tulajdonsgok
Jl prhuzamosthat alkalmazs futtatsa tbb, vagy akr tbb szz szerveren

A felhasznli programnak kell gondoskodnia a prhuzamostsrl Els dlegesen tudomnyos alkalmazsok szmra jelent megfelel megoldst o o zleti alkalmazsok szmra ltalban nem megfelel o

1.2. Technikai jellemz k o


A Beowulf szoftver a prhuzamosan megrt alkalmazs szmra biztost osztott krnyezetet Az adatokat vagy az temez processz vagy egy NFS-szerver szolgltatja o Az alkalmazs vezrlsre ltalban kln munkalloms szolgl Az egyes szerverek kiesse cskkenti a szmtsi kapacitst

2. Terhelsmegoszt frtzs (pl. Linux Virtual Server)


2.1. Tulajdonsgok
Nagy-sklzhatsg web szerverek ptsre szolgl A bejvo hlzati krsek generlta terhels megosztsra szolgl egy webfarmon bell Linux Virtual Server (LVS): a legnpszerubb, nylt forrskd ilyen jelleg imp u lementci Nagy teljestmny, megfelel sklzhatsg, magas rendelkezsrells, kifejeo zetten web-szerverek rszre

2.2. Technikai jellemz k o


A bejvo krseket a terhelsmegoszt fogadja, ez irnytja tovbb a megfelel o web-szerver fel A vlaszokat egybol az gyfl kapja meg Sklzhatsg s nagy rendelkezsrells Redundns terhelsmegosztk Menet kzben kivehet -berakhat web-szerverek o ltalban nincs kzsen hasznlt diszk terlet Viszonylag statikus web-tartalom esetn hasznlhat

78

LME

GNU/Linux Konferencia

3. Nagy rendelkezsrellst (HA - High availability) biztost frtzs (pl. Kimberlite, Convolo)
3.1. Tulajdonsgok
Cl: Tbb szmtgp s perifria sszekapcsolsa olyan mdon, hogy azok egyetlen rendszerknt ltsszanak s ez a rendszer m kdokpes maradjon aku kor is, ha valamelyik komponens meghibsodik.

NSPF - No Single Point of Failure El trtnet: Korbban gyrtfgg o megoldsok szlettek, az adott gyrt hardo verhez kapcsoldan (pl. VMS, TruCluster, SGI Failsafe, IBM Phoenix, NT Wolfpack) Linux alap megoldsok: PC-alkatrszekbol, jval alacsonyabb ron megpthet k o

3.2. Technikai jellemz k o


ltalban kt szerver van sszektve Kzsen hasznlt SCSI vagy bre diszk alrendszer Heartbeat csatornk, quorum eszkz (device) A msik HA-tag lekapcsolsnak lehet sge o Szolgltatsok (service) denilsnak lehet sge o

4. SSI (Single System Image) frt (pl. Mosix)


4.1. Tulajdonsgok
A nagy rendelkezsrellst s a sklzhatsgot clozza meg Optimlis rendszer er forrs kihasznls o Idelis esetben transzparens az alkalmazsok szmra, nem ignyel alkalmazs mdostst

4.2. Technikai jellemz k o


bepl a kernelbe egyetlen rendszernek ltszik kzs fjl s processztbla automatikus processz relokls

79

LME

GNU/Linux Konferencia

5. HA-frtk fejl dsi szakaszai o


tkapcsolsos frtk (Failover Cluster) Egy adott alkalmazs egyszerre csak egy tagon futhat. A frt tagjai gyelik egyms llapott s hiba esetn tveszik a msikon fut alkalmazsokat. Prhuzamos frtk (Parallel Cluster) Az alkalmazs prhuzamosan futhat mindegyik frt tagon. Ehhez az alkalmazs mdostsa szksges. Egyetlen rendszernek ltsz frt (Single System Image) Egyetlen rendszernek ltszik (Egysgestett PID- s fjlrendszer kezels). ltalban nem ignyel alkalmazs mdostst.

6. sszegzs
A Linux-alap cluster megoldsok segtsgvel kisebb mret cgek, alkalmazsok is u rszeslhetnek a cluster technolgia nyjtotta el nykbol. A Beowulffal szuperszmo tgp teljestmnyt hozatunk ki rendszernkb ol, az LVS-sel web-farmokat pthetnk, a HA-clusterek rvn pedig megfelel megbzhatsg platformot nyjthatunk akr o nagyvllalati alkalmazsok szmra is.

7. Hivatkozsok
www.beowulf.org www.linuxvirtualserver.org www.linux-ha.org/LinuxFailSafe www.missioncriticallinux.com ultramonkey.sourceforge.net www.steeleye.com www.redhat.com www.turbolinux.com www.resonate.com www.sistina.com www.mosix.org

80

Digitlis alrssal kapcsolatos eszkzk s veszlyek


Psztor Mikls Pzmny Pter Katolikus Egyetem pasztor@ppke.hu 2001. szeptember 3.

Tartalomjegyzk
1. Mi kze a GNU/Linux-nak a tmhoz? 2. Hogyan is mukdik a digitlis alrs? 2.1. A digitlis alrs s a kzirsos alrs kzti klnbsgek . . . . . . 2.2. Elg-e a digitlis alrs s a titkosts? . . . . . . . . . . . . . . . . 2.3. A digitlis kulcsok kezelsnek problmi . . . . . . . . . . . . . . . 3. Az X.509 alap technolgia 3.1. Nvtveszts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2. Mit garantlhat egy X.509 tanstvny egyltaln? . . . . . . . . . . 4. A CA-k felel ssgvllalsa o 5. Mirt veszlyes ha 1 szemly - 1 nv - 1 kulcs? 5.1. Magnszfrnk fenyegetettsge . . . . . . . . . . . . . . . . . . . . 5.2. Implementcis hibk . . . . . . . . . . . . . . . . . . . . . . . . . 6. GNU/Linux eszkzk 6.1. PGP/GPG . . . . . . . . 6.2. SSH/OpenSSH . . . . . 6.3. OpenSSL . . . . . . . . 6.4. jabb kezdemnyezsek 7. sszfoglals 82 82 82 83 83 84 84 85 85 86 86 87 87 87 88 88 88 89

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

81

LME

GNU/Linux Konferencia

1. Mi kze a GNU/Linux-nak a tmhoz?


A mlt arra tant, hogy ppen a biztonsggal kapcsolatos eszkzkbe ptenek be gyakran hts ajtt. Sok esetet lehet olvasni arrl, hogy pl. egy kormny egy nagy tiszteletben ll msik llambl titkost eszkzt vsrol, amir l utbb kiderl, hogy az o elad vagy annak egy megbzottja szmra kmkedik. Az ilyen esetek elkerlsnek egyik mdja a nylt forrskd programok, GNU/Linux eszkzk hasznlata. Persze ez annyit hasznl, mint egy zr amit az ajtnkra tesznk: blcs dolog, hogy ott van, de nmagban nem garantlja, hogy nem jnnek be. Egy msik kapcsoldsi pont a GNU/Linux szellemisg: az a gyakorlat, hogy gondolkodunk, szeretnk a dolgok belsejbe ltni, keressk a clszer s egyszeru megoldu sokat, nem vagyunk konzumiditk. A digitlis alrs lehet sgeinek felismershez, o veszlyeinek elkerlshez ppen ilyen tulajdonsgok szksgesek.

2. Hogyan is mukdik a digitlis alrs?


A nyilvnos kulcs titkosts elvn alapul. Hagyomnyos titkostsi eljrsnl egyetlen kulcsot kell ismernnk az zenet kdolshoz s dekdolshoz. Nyilvnos kulcs titkostsnl minden egyes felhasznlhoz kt kulcs tartozik: egy titkos, s egy nyilvnos. A titkos s a nyilvnos kulcs szerepe szimmetrikus. Ha N jelli a nyilvnos kulcs alkalmazst, T a titkos kulcst, s x egy kdoland informci, akkor N(T(x))=x s T(N(x))=x Minden felhasznlnak generlnia kell a maga rszre egy nyilvnos/titkos kulcs prt. Ezutn a nyilvnos kulcsot minl szlesebb krben ismertt kell tenni, a titkos kulcsra rtelemszeruen vigyzni kell. Brki, aki titkostott zenetet akar kldeni nem kell mst tegyen, mint a fogad nyilvnos kulcsval kdolnia kell az zenetet. A nyilvnos kulcs ismerete nem segt abban, hogy a titkos kulcsot megfejtsk, ezrt ha egy zenetet valaki nyilvnos kulcsval kdoltunk, akkor mr magunk sem tudjuk azt visszafejteni, csakis a fogad. Ha hitelesteni akarunk egy zenetet, akkor pedig a sajt titkos kulcsunkat hasznl juk. Az zenetbol kpeznk, egy az zenetnl jval rvidebb szmot, amit az zenet ellen rz sszegnek, ujjlenyomatnak is nevezhetnk. Ezt a szmot kdoljuk azuo o tn a sajt titkos kulcsunkkal. A fogad ezt csakis a mi nyilvnos kulcsunkkal tudja kinyitni s gy biztos lehet abban, hogy az zenetet valban mi kldtk. Az zenet ilyen esetben nincs felttlenl kdolva, de mivel az egsz zenet ujjlenyomatt tartalmazza az alrsunk, az zeneten vgrehajtott minden vltoztats, egyetlen vessz cske o beszrsa vagy elhagysa is kiderl a fogad oldalon. Ilyen mdon - hasonlan ahhoz mint amikor alrunk valamit - a hitelestssel nem csak azt garantlhatjuk, hogy kit l o szrmazik az zenet, hanem azt is, hogy az pontosan ugyan az. Ez alkalomadtn - akr csak az alrs - arra is alkalmas, hogy valamit a fejnkre olvassanak, mint ltalunk elismert, vllalt dolgot.

2.1. A digitlis alrs s a kzirsos alrs kzti klnbsgek


Kzrssal kszlt alrsa csak szemlynek lehet, s az tbbnyire egyfajta. Digitlis alrsa (kulcsprja) viszont akrhny lehet minden embernek. S t nem csak emberek o

82

LME

GNU/Linux Konferencia

hanem szmtgpek, programok, szerverek s kliensek, hlzati interfszek vagy mobil telefonok is sajt kulcsprral kszthetnek digitlis alrst. Valjban ez a dolog sokkal gyakoribb mint a szemlyek ltal ksztett digitlis alrs. Egy szemly ltal ksztett digitlis alrs jobban hasonlt egy pecsthez: egy eszkz kell hozz, ami az alr tulajdonban van. Ahhoz, azonban hogy egy szemly egy digitlis alrst ne lehessen hamistani, a titkos kulcst kell vdeni gy, mint egy pecstet. Csakhogy ez sokkal nehezebb: ha egy pecstet ellopnak, az nem marad ott. A titkos kulcs azonban elektronikus informci, msolhat. Egy szemly titkos kulcsa rendszerint valamilyen jelszval vdett. A jelszt illetktelenek kileshetik, megtudhatjk. A szmtgphez hozzfrhetnek stb. Slyosbtja a helyzetet, hogy a legtbben - mg azok is akikt l ez elvrhat lenne -, nagyon keveset rtenek abbl, hogy mi s o hogyan trtnik.

2.2. Elg-e a digitlis alrs s a titkosts?


A Nagy Vllalat digitlis alrsval elektronikus levl jn a titkostva X-hez, X nyilvnos kulcsa segtsgvel titkostva, amely nagy sszeg megrendelst tartalmaz. A u kulcsok hasznlatval semmi visszals nem trtnt. Biztos-e, hogy nincs turpissg? Nem! Lehet, hogy a megrendels nem is X-nek, hanem Y-nak szlt, X eredetileg Y nyilvnos kulcsval titkostotta, de pl. Y egy alkalmazottja leflelte az zenetet, mely gy szlt: Mrcius 20-i rajnlatuknak megfelel en megrendelnk nktol 1000 o darab lekvrzsibbaszt gpet. Az imposztor aztn X nyilvnos kulcsval jra titkostotta az zenetet, melyen ott volt a Nagy Vllalat hiteles digitlis alrsa, s gy tovbbtotta X-nek. Ez a visszals az alattomos tovbbts. A 2001-es Usenix konferencin Don Davis egy egsz el adst szentelt ennek a tmnak. Persze az alattomos tovbbts csak o akkor m kdik, ha az zenet szvegb l nem derl ki, hogy kinek szl. De ha megu o szlts van az zenetben, az mg nem garancia: ha Iluska azt rja egy alrt titkostott levlben, hogy Jancsi szeretlek, akkor Jancsi pl. viccb l alattomos tovbbkldssel o becsaphatja ezzel a levllel egy nvrokont.

2.3. A digitlis kulcsok kezelsnek problmi


Egy nyilvnos kulcs titkosts elvn kszlt digitlis alrs azt garantlja, hogy egy zenet olyan forrsbl szrmazik, ahol a kulcspr titkos rsze az zenet keletkezsekor rendelkezsre llt. Ha a nyilvnos s titkos kulcsok kezelse megfelel , akkor ez o j okot ad arra, hogy felttelezzk: az zenet egy bizonyos szemlyt l, eszkzt l, bio o zonyos tisztsg visel jt l, vagy bizonyos dologra felhatalmazott egyntol szrmazik. o o J okunk van azonban ktelkedni, ha a nyilvnos s titkos kulcs keletkezse, trolsa, tovbbtsa, hasznlata nem megfelel . A legnagyobb problma az, hogy a nem o megfelel kezelst knny ltni, nehz azonban a megfelel t elrni, arra kritriumokat o u o fellltani, szabvnyokat denilni. A digitlis alrsokrl szl cikkeket, s klnsen a hitelestsszolgltatk (Certication Authorityk) reklmait olvasva az a benyomsunk tmadhat, mintha ezen szolgltatsnak magas sznvonala, az ott bevezetett szigor gymenet s kivl technika garantln a digitlis alrs biztonsgt. Nem lehet elgg hangslyozni, hogy ez slyos tveds: a digitlis alrs biztonsga egy lnc, s olyan er s, mint a leggyengbb o

83

LME

GNU/Linux Konferencia

lncszeme. Lehet brmilyen kit n a tanstvny, brmilyen brillins a matematikai u o eljrs, brmilyen sok bites a kulcs amit hasznlunk, ha a digitlis alrshoz tartoz titkos kulcs illetktelenek hasznlhatjk, mit sem r. A illetktelen felhasznl nem felttlenl ember, lehet progam is. ppen ezrt nem szabad fontos digitlis alrst kszteni, vagy ellen rizni olyan gpen, mely hlzatba van ktve, vagy pl. Word is o van rajta teleptve. Egy vrus, vagy hlzati betrs veszlyt jelent nem csak az alr, hanem az alrst ellen rz gpen is. Vlhet , hogy az ilyen vrus, vagy behatol nem o o o fedi fel magt olyan gyorsan, mint pl. egy web szerver esetn: lehetsges, hogy akr hnapokig lappang. Egybknt is vrhat, hogy csak kslekedve jelentkezik a hatsa: megjelenik valahol egy irat, amit a mi nevnkben rtak al s kicsit ms mint amit mi alrni vltnk, ms sszeg szmlt zettnk ki, vagy nyjtottunk be, vagy valamilyen u er forrst a nevnkben hasznltak. Illetve valakir l tvesen azt hisszk, hogy valamit o o alrt, valamilyen szmlt kizetett, vagy benyjtott stb.

3. Az X.509 alap technolgia


Amikor digitlis alrsrl beszlnk, a legtbben az X.509 szabvny tanstvnnyal (certicate) elltott kulcsokkal trtno alrsra gondolnak. Az X.500 a 80-as vekb l o szrmaz CCITT szabvny, mely globlis nvtr ltrehozst clozza. Ennek egy folyomnya az X.509, melyben nevekhez (DN, Distinguished Name) nyilvnos kulcsokat rendelnk. Az X.509 koncepci egyik f eleme a hitelest szervezet (CA, Certication o o Authority), amely tanstja, hogy egy bizonyos nyilvnos kulcs egy bizonyos nvhez tartozik. A hitelest szervezetek (CA-k) hierarchit alkothatnak. X.509 szerint m o u kdnek pl. a TLS (SSL) web szerverek. Egy-egy web szerverhez tartoz kulcsot lehet hitelesteni valamely hitelest szervezetnl, de nem szksges. Az X.509 elkpzelo sekben szerepel egy legfels szint (root) CA, amely ms hitelest ket hitelest, akik o u o jabbakat egszen addig, amg az ppen hasznlt tanstvnyhoz nem jutunk.

3.1. Nvtveszts
Az X.509 alap digitlis alrsok egyik pillre a nv. Minden X.509 tanstvny egy nv-kulcs megfelelst tanst. A gyakorlat azt mutatja, hogy a nevek hasznlata sok zavart okoz, sem nem szksges, sem nem elgsges egy-egy alkalommal. Ha valaki az adbevallst akarja digitlisan benyjtani, akkor nem elg tudnunk, hogy Kovcs Jnos, aki Jszbernyben a Thkly utcban lakik: nincs kizrva, hogy kt Kovcs Jnos is lakik ugyanabban a hzban, pl. apa s a. Mg az sem elg, ha azt tudjuk, hogy az illet a Jszbernyi H t gpgyrban dolgozik: lehet, hogy mindketten ott dolgoznak. o uo Az sincs kizrva, hogy ppen egy csaldban nagy a ksrts, hogy az egyik Kovcs a msik kulcsval visszaljen... Nem egyszer el fordul, hogy pl. tbb Bornemissza van o egy vllalatnl, s a bornemissza@valahol alak cmre kldtt levelek rendszeresen eltvednek. Ha egy magnlevelet gy rosszul cmznk, ltalban kisebb bosszankodssal megsszuk. Ha azonban digitlis alrsban tvednk, akkor nagy kr rhet.

Kell-e valban nv?


Lttuk, hogy a nv alapjn megklnbztetni kulcsokat (tanstvnyokat) nem elgsges. Nem is szksges. Szmos plda van r a hagyomnyos vilgban, hogy elfogadunk egy alrst, de valjban nem rdekel, hogy ki is rta al, nem is fontos a neve. Egy rettsgi bizonytvnyon pldul ott van az rettsgi elnk, az iskola igazgatjnak

84

LME

GNU/Linux Konferencia

az alrsa, de a legtbbszr nem is tudjuk elolvasni. Vits esetben az iskola tudja csak ellen rizni, hogy abban az vben kik is voltak az illetkesek, s az alrs valdi-e. o Hasonl a helyzet pl. a patikban, ahol a orvos ltal alrt receptet mutatunk be: fontos az alrs, de az orvos neve nem. Lehetsges, hogy a fenti kt Kovcs Jnos, apa s a Jszbernyben mind a ketten orvosok, s ha el is tudjuk a recepten olvasni az alrsukat, maga a nv nem szolgl valdi informcival. Ezrt van, hogy a recepteket az alrs nmagban mg nem hitelesti.

3.2. Mit garantlhat egy X.509 tanstvny egyltaln?


Egy tanstvny csak azt garantlhatja, hogy - a fenti pldnl maradva -, egy bizonyos kulcsnak kze volt egy bizonyos pillanatban az egyik Kovcs Jnoshoz. Azt hogy a kulcs titkos prja valaha is Jnos birtokban volt, csak akkor valszn sthet , ha u o o a killt meggyoz dtt rla, hogy al tud rni valamit a megfelel kulccsal. Egyes o tanstvny kibocstk folytatnak is ilyen gyakorlatot: a kulcs tulajdonost felszltjk, hogy - akr a tanst el tt -, rjanak al valamit. Hogy a kulcs milyen eszkzk, vagy o szemlyek birtokban van, volt vagy lesz mg, hogy Jnos egy ks bbi alrskor pl. o nem ntudatlanul hasznlta a kulcsot arra ilyenkor sincs biztostk. Egy tanstvny nem felttlenl garantlja, hogy valaki egy intzmnyt kpvisel, mg akkor sem, ha tanstvny kibocstja ezt is tanstani akarja. 2001 janurjban egy nagy szoftvergyrt vllalat munkatrsaknt kapott valaki egy tanstvnyt az egyik legismertebb CA-tl, amit arra hasznlhatott fel, hogy hibs, vrusos programokat terjesszen mint a cg javtsait. Lsd: http://www.teleconnect.com/article/IWK20010322S0007, vagy http://www.microsoft.com/technet/security/bulletin/MS01-017.asp Ez az eset a CA loza alapelvt rinti: egsz egyszeruen azt bizonytja, hogy nem szabad megbznunk a tanstvnyban. A vals letben az emberek azonossgnak meg o llaptsnl egsz ms mdszereket hasznlunk. Ha arrl akarunk meggyoz dni, hogy pl. Kovcs Jnos valban az, aki ltalnos iskolban mellettnk lt, egy X.509 tanstvnnyal semmire sem megynk, de egy szemlyes beszlgets pillanatok alatt eredmnyre vezethet. Tanstvny helyett is megfelel bb lehet egy telefonbeszlgets, egy o nvjegy amin rajta van a nyilvnos kulcs ujjlenyomata, vagy akr egy knyv vagy jsg ami az ujjlenyomatot kzli.

4. A CA-k felel ssgvllalsa o


A tanstvny hitelest szervezetek (CA-k) tisztban vannak a korltaikkal. Ezrt reko lmaikban s gymenet lersukban (CPS, Certication Practices Statement) azt hang slyozzk, hogy milyen szigoran orztt helyisgekben dolgoznak, milyen szigor az adminisztrci, stb. vakodnak azonban a digitlis alrsokrt felel ssget vllalni, o klnsen anyagi felel ssget. o

Flrevezet szavak o
Ahogy fentebb mr sz volt rla, valjban a digitlis alrs sz is flrevezet : taln o helyesebb lenne digitlis pecstet mondani. De nem csak ez a szhasznlat kelt zavart, tlzott vrakozst. A tanstvny, tanstvny kibocst sz azt sugallja, mintha

85

LME

GNU/Linux Konferencia

egy digitlisan alrt dokumentumrl a kibocst tanstan, hogy hiteles, valban az rta al, aki/ami szerepel az alrsban. Akik rtik, akik vgiggondoltk, hogy err l o sz sincs, azok is knnyen megfeledkezhetnek rla a szhasznlat miatt. Sajnlatos, hogy a trvny is min stett digitlis alrsrl beszl, holott nyilvnval, hogy nem o az alrs min stett, hanem a tanstvnykibocst, aki a digitlis alrsnl hasznlt o kulcsot alrta.

A kzpontosts htrnyai
Az X.509 tanstvnyok vilgban a hitelest k (CA-k) lncolatot alkotnak. Egy tano stvny kibocstjnak tanstvnyt egy msik, magasabb szinten lev hitelest rja o o al, akinek tanstvnyt egy msik s gy tovbb, egy nmagt hitelest legfels bb o o szint hitelest kzpontig. A felttelezs az, hogy ez a legfels root CA egy mindenki u o o ltal tmogatott s elfogadott intzmny. Az let azonban szmtalanszor bizonytotta, hogy az ilyen szerkezet igen srlkeny: egyetlen emberi hiba, netn visszals, egyetlen gyintzsi gyelmetlensg, vagy programhiba risi kvetkezmnyekkel jrhat. Egy kzpontostott struktra htrnya, hogy a hitelest k visszalhetnek lehet sgeiko o kel: nem csak a szolgltats rt srfolhatjk magasra, visszalhetnek pl. azzal, amit egy-egy kulcs hasznlatval kapcsolatos informcik jelenthetnek. A visszavont tanstvnyok listjban (Revocation List) val keresgls naplfjlja informcit szolgltathat pldul egy cg, vagy egy szemly vsrlsi szoksairl. A kzpontostott szervezs htrnya, hogy a hierarchia magas fokn ll hitelest k o titkos kulcsa klnsen csbt clpont lehet a b nzok szmra. Ez abba az irnyba u hat, hogy az ilyen kulcsot gyakran vltsk. A kzponti szerep miatt azonban a kulcs vltsa igen nehzkes: nem csak a gyerek kulcsokat, hanem esetenknt programokat, program kongurcikat is rint. Egy kzpontostott modell csak akkor m kdhet jl, ha tkletesen megbzhatunk a u kzpontban s nem csak a szndkait, hanem a szervezettsgt, gyintzst, technikai felszerelst illet en is. Az letben az osztott, tbb lbon ll, vltozatos rendszerek o bizonyulnak jobbnak s hatkonyabbnak.

5. Mirt veszlyes ha 1 szemly - 1 nv - 1 kulcs?


Az X.509 elkpzelsben minden szemlyhez (szervezethez, szmtgphez, stb.) tartozik egy egyedi nv, s ehhez egy-egy kulcs. Ha ezt a gondolatot sszevetjk az Alkotmnybrsg szemlyi szmmal kapcsolatos dntsvel, azonnal lthatjuk, hogy nem elfogadhat szemlyisgvdelmi, jogi szempontbl sem, hogy ezt a nevet, illetve kulcsot kelljen hasznlni minden egyes elektronikus alrskor. A vals letben is tbbfle azonostnk, igazolvnyunk van. Megszoktuk, hogy klnbz o trsasgokban ms s ms nevnk is lehet. Ha digitlis azonostt kvnunk hasznlni, annak ms slya lesz az tlevelnknl, s a blyeggyujt szakkr tagsgi o igazolvnynl. Ezrt termszetes igny, hogy klnbz o clokra s klnbz o neveken lehessen digitlis alrsra szolgl kulcsunk, tanstvnyunk.

5.1. Magnszfrnk fenyegetettsge


Az a gyakorlat, ami a digitlis alrs hasznlatnak infrastruktrjra kialakulni ltszik a mr emltetteken kvl is tbb veszlyt jelent magnszfrnkra. s nem csak

86

LME

GNU/Linux Konferencia

az Orwell regnyb l ismert rm fenyeget (kulcsunk hasznlatnak nyomonkvetse, o adatgyujts). Nem egy hitelest hatsg maga generlja s osztja is a kulcsot. Ez azt jelenti, o hogy eleve a kibocst birtokban van a titkos kulcs, eleve lehet sge van arra, hogy o megszemlyestse a kulcs tulajdonost. Egyes esetekben (pl. egy-egy munkahelyen) ez megengedhet o lehet, a legtbb esetben azonban elfogadhatatlan. A magyarorszgi X.509 PKI-vel kapcsolatos tervekben felmerl, hogy az sszes hitelest szervezet, azok minden telephelye hasznljon egy kzs tanstvny adatbzist. o Egy ilyen adatbzis - klnsen ms adatokkal kombinlva - risi informciszerz o forrs lehet magnszemlyekr ol, intzmnyekrol, azok szoksairl stb. Mr ma is sok intzmny hasznl hasonlt - pl. internetrol gy jttt adatokat - els sorban marketing u o cllal. Az ilyen cl is kifogsolhat, de semmi biztostk sincs arra, hogy a felhasznls csak marketing clokra korltozdik. Van olyan trekvs is, hogy a generlt kulcs titkos rszt valamilyen biztos helyen, lettben kell tartani (key escrow). Ez szintn indokolt lehet egy-egy munkahelyen, a legtbb esetben azonban ez is elfogadhatatlan veszllyel jr. rdemes klnbsget tenni a titkostsra s a digitlis alrsra szolgl kulcsok kzt. A munkehelyen rdemes a tisztsghez tartoz kulcsokat hasznlni titkostsra, s a szemlyhez tartoz kulcsokat digitlis alrsra. A tisztsghez tartoz kulcsokat van rtelme lettbe helyezni, tbb ember szmra hozzfrhet ov tenni, azok titkos rszr l is biztonsgi msolatot o fenntartani, a szemlyhez tartoz, digitlis alrsra szolgl kulcs titkos rsze viszont maradhat teljesen a magnember hasznlatban s tulajdonban. Illetktelen hasznlat nem csak gy fordulhat el , hogy valaki rossz szndkkal o birtokolja kulcsunkat, vagy pl. a hitelest hatsgnl valaki visszal a lehet sgeivel. o o Gondolnunk kell arra, hogy hiba bzunk meg pldul a f nknkben, annak is lehet o utdja, bartja, a bartjnak is bartja stb. Ha valaki krn a titkos kulcsunkat, ajnlatos gy viselkednnk, mint az reg miniszterelnk, akir l az ismert anekdota szl. Az o jsgrk hiba csorogtak a kapu el tt, ahol a kormny zrt trgyalst folytatott, semo mit sem tudtak meg. Az utoljra tvoz miniszterelnkt meglltja kt kitart atal jsgr. A miniszterelnk krdsre - Uraim, tudnak nk titkot tartani? - a kt atalember buzgn vlaszolja: - Ht hogyne! Az reg vlasza: - n is.

5.2. Implementcis hibk


Amint ltjuk az X.509 szerint hasznlt digitlis alrssal sok elvi baj is van. Mg tbb azonban az implementcikkal. Az egyik legslyosabb, hogy nem kezelik a tanstvny visszavonst, sem a statikus CRL kezelst, sem a dinamikus OCSP, RFC2560 szerintit. ppen ezrt a fent emltett szoftver gyrthoz tartoz tanstvnyt hiba vonta vissza a hitelest , a vrusos szoftverek gy terjedhetnek, hogy a kliensek hitelestett o tanstvnynak ltjk.

6. GNU/Linux eszkzk
Szabadon terjeszthet digitlis alr eszkzk mr rgen hasznlatban vannak. o

6.1. PGP/GPG
ppen 10 ve annak, hogy az els forrskdban is elrhet nyilvnos kulcs titkostst o o s digitlis alrst lehet v tev eszkz a PGP (Pretty Good Privacy) kezdett elterjedni. o o

87

LME

GNU/Linux Konferencia

Els sorban szemlyes dokumentumok, levelek digitlis alrsra sznta alkotja, Phil o Zimmermann. A PGP alrs sok ve rutinszeruen hasznlatos les terleteken: pl. GNU szoftverek hitelestsre s a CERT-ek (Cumputer Emergency Response Team) kommunikcijban. A PGP formtumot azta internet RFC (RFC2440) szabvnyostotta, s tbb implementci szletett. A legjelent sebb s legteljesebb ezek kzl az GPG, a GNU o Privacy Guard. Nem csak kulcsokat, hanem kulcsok hierarchijt kezelhetjk segts gvel. Az alkulcsokat azutn klnbz o clokra hasznlhatjuk. A klasszikus pgp-ben az egyik problma az volt, hogy ha valaki elvesztette a titkos kulcst vagy elfelejtette a jelmondatot, akkor nem volt md arra, hogy a kulcst visszavonja. Az OpenPGP s a GPG mdot ad arra, hogy kijelljnk olyan szemlyt pontosabban kulcsot ami ilyen esetben segt. PGP/GPG kulcsot brki generlhat, hasznlhat. Egy nyilvnos kulcson akrhny alrs lehet. A klcsnsen alrt kulcsok hlt, a PGP bizalmi hlt alkotjk. gy egy nyilvnos kulcs hitelessgt akr tbb tucat alrs tansthatja, s minden felhasznl maga dntheti el, hogy milyen felttelekkel fogad el hitelesnek egy addig nem ltott nyilvnos kulcsot.

6.2. SSH/OpenSSH
Az SSH els sorban tvoli szmtgpekbe val bejelentkezsre szolgl eszkz. Nyilo vnos/titkos kulcspr tartozik felhasznlkhoz, s szmtgpekhez is. SSH-val a szerver s kliens szmtgpeket is digitlis alrs segtsgvel azonostjuk. Ez mdot ad arra, hogy noman (s pl. az IP cmnl biztonsgosabban) szablyozzuk, hogy mely gpekrol szabad bizonyos tevkenysgeket vgezni, s hogy megakadlyozzuk, hogy egy imposztor lecserlje a szervert amin dolgozunk, vagy lehallgats cljbl kzbeiktassa a sajtjt. Nagyszeru eszkz az ssh-agent: lehet v teszi, hogy egyszer azonost o suk magunkat pl. reggel a sajt pc-nken, s aztn a tbbi bejelentkezst mind o vgzi el gy, hogy a szerverekt l kapott kihvst (challange) a mi digitlis alrsunkkal kldi o vissza. Ezt a mdot nevezik SSO-nak (Single Sign On). Mindez vek ta rutinszeruen hasznlt dolog GNU/Linux platformon.

6.3. OpenSSL
Az SSL (Secure Socket Layer) a TCP kapcsolatok titkostsra s digitlis alrsra szolgl protokoll, a Netscape fejlesztse. Internet RFC is vlt bel le (RFC2246), ahol o TLS-nek (Transport Layer Security) nevezik. Els sorban arra hasznlatos, hogy web o szerverek azonostsk magukat a bngszoknl X.509 tanstvnnyal, s a forgalmat a bngszo s a szerver kzt titkostva bonyoltsk. Az OpenSSL alkalmas arra, hogy SSL-t hasznljunk brmilyen programban, pldul a nylt forrskd web szerverekben. Az OpenSSL csomag segtsgvel tanstvnyokat is kszthetnk: hasznlhatjuk az X.509 technolgit kls tanst hatsg (CA) nlkl. Amint arrl fentebb mr sz o volt egy CA tanstvnya nem teszi biztonsgosabb a web szervert, s a kliensek sem felttlenl nyernek vele, ha a szervernk nyilvnos kulcst CA-val aliratjuk.

6.4. jabb kezdemnyezsek


A vilgban szmos kezdemnyezs folyik, mely tl akar lpni az X.509 korltain, htrnyain, els sorban a kulcs kezels terletn. Az SPKI/SDSI (Simple Public Key o

88

LME

GNU/Linux Konferencia

Infrastructure/Simple Distributed Security Infrastructure, RFC2693), vagy a KeyNote Trust Management (RFC2704). Az SPKI nem csak egyszeru, hanem ltalnos is: specilis esetknt tartalmazza az X.509, PGP, SSH szerinti kulcs kezelst is. Md van arra, hogy egy SPKI kulcs ltal kapott jogokat, azoknak egy rszt tovbb delegljuk egy msik kulcs tulajdonosnak. A delegls noman szablyozhat: pl. megmonthatjuk, hogy meddig rvnyes, vagy hogy az jabb tovbbdeleglsra is felhatalmazst adunk-e.

7. sszfoglals
Az X.509-en alapul PKI egy-egy jl krlhatrolt - akr szles - krben megfelel o lehet (pl. katonasg, hivatalok) de a polgri letben, s az interneten val ltalnos hasznlata tbb mint problematikus. Szerencsre tbb alternatva ltezik: ezek egy rsze mr rgen bevlt, vek ta hasznlatos digitlis alrsra s titkostsra (PGP, SSH). Nhny jabb pedig ppen a kulcs kezels terletn jelent el relpst (SPKI/SDSI). A o digitlis alrsrl szl trvnyt mostanban fogadta el az orszggyuls. Ezrt igen aktulis ma ez a tma. Beszlni, gondolkodni rla, rtve s gyelmesen hasznlni, illetve kszlni a hasznlatra klnsen fontos: nem csak az a veszly fenyeget, hogy hitelesnek hisznk valamit, ami nem az, hanem az is, hogy szemlyek s intzmnyek nagy sszeg beruhzsokkal vlnek olyasmit elrni, amihez inkbb jzan sz, gyeu lem, tanuls s hozzrts kell. A magyarorszgi trvny - ms orszgok trvnyeihez hasonlan -, nem ktelezi el magt semmilyen technolgia, vagy infrastruktra mellett, br tbb ponton egyrtelmu utals van az X.509 PKI-ra. Mindazonltal szabatosan, s ltalnosan a fogalmaz, s a trvny szerint jogilag hatlyosak lesznek ms digitlis alrsok is. Nyilvnval, hogy sem technikailag, sem jogilag nem zrult le a digitlis alrs alkalmazsnak folyamata. A GNU/Linux eszkzk s klnsen az a szellem amit ezek kpviselnek nyilvnvalan sokat lendtenek azon, hogy technikailag jobb, anyagilag kedvez bb, o kevsb veszlyes s nem utols sorban embersgesebb legyen az, ami kialakul.

A tmhoz kapcsold nhny hlzati hely


Ellison C. & Schneier B.: Ten Risks of PKI: What Youre Not Being Told About Public Key Infrastructure, Computer Security Journal, v 16, n 1, 2000 http://www.counterpane.com/pki-risks.html The KeyNote Trust-Management System Version 2 RFC2704 ftp://ftp.sztaki.hu/pub/nic/rfc/rfc2704.txt.Z Ellison C.: Naming and Certicates, Proc. Computers, Freedom & Privacy 2000, at http://www.cfp2000.org/papers/ellison.pdf Simple Public Key Infrastructure (SPKI), RFC2693 ftp://ftp.sztaki.hu/pub/nic/rfc/rfc2693.txt.Z X.509 Internet Public Key Infrastructure: Online Certicate Status Protocol - OCSP, RFC2560 ftp://ftp.sztaki.hu/pub/nic/rfc/rfc2560.txt.Z

89

LME

GNU/Linux Konferencia

Rivest R.L. & Lampson B. (1996): SDSI A Simple Distributed Security Infrastructure, 15 Sep 1996, http://theory.lcs.mit.edu/~rivest/sdsi10.html OpenPGP Message Format, RFC2440 ftp://ftp.sztaki.hu/pub/nic/rfc/rfc2440.txt.Z PGP kulcs szerverek: http://www.rubin.ch/pgp/keyserver.en.html SPKI-hoz kapcsold web lap: http://world.std.com/~cme/html/spki.html Alattomos tovbbtsrl szl cikk: http://world.std.com/~dtd/sign_encrypt/sign_encrypt7.html Az X.509 modell rszletes kritikja: http://www.anu.edu.au/people/Roger.Clarke/II/PKIMisFit.html

90

Hlzati hatrvdelem eszkzei


Scheidler Balzs <bazsi@balabit.hu> 2001.08.14.
Kivonat Napjainkban sajnos egyre kevsb biztonsgos hely a Net. Nhny vvel ezel tt o az Internet mg flig-meddig bizalmi alapon m kdtt, ma mr mindenki gyanaku vssal gyel a klvilgba. Gyakran hallani tizenvesek akciirl, mely sorn nagynev cgek hlzataiba hatolnak be ltszlag klnsebb problma nlkl. E u csnyek sorn slyos millik kerlhetnek s kerlnek veszlybe. Az rott s ratlan sajt persze igyekszik nagy lut varzsolni mindenb l, a sikeres o behatolsok oka azonban leginkbb a nem ltez vagy elgtelen, rosszul kiviteleo zett vagy rosszul zemeltetett hlzati hatrvdelem. El adsomban igyekszem bemutatni a rendelkezsre ll vdelmi technolgikat, o s azt hogy az ltalunk fejlesztett Zorp t zfalrendszer hogyan illeszkedik ebbe a u kpbe.

Tartalomjegyzk
1. Bevezets 2. Bastion hoszt 3. Csomagszur router o 3.1. Egyszeru router . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2. Router s a NAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3. Csomagsz rs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . u 4. Stateful Packet Filter - llapottart csomagszur o 5. Alkalmazsszintu proxy tuzfalak 6. Zorp 7. Zorp a jvoben 92 92 92 93 93 93 94 94 95 95

91

LME

GNU/Linux Konferencia

1. Bevezets
Napjainkban egyre termszetesebb, hogy egy cg internet-kapcsolattal rendelkezik, s valamilyen mdon felhasznlja az Internet szolgltatsait, ilyen mdon beolvasztva azt sajt folyamataiba. gy azonban sajt informatikai infrastruktrja kapcsolatba kerl az Internettel, mely kapcsolatot a cg (s az internet) vdelme rdekben szablyozni kell. A hlzati hatrvdelem feladata, hogy klnbz o vdelmi szint znkat elvlasszon egymstl u olymdon, hogy kztk a kommunikci ramlsa szablyozott krlmnyek kztt, de biztostott legyen. A hatrvdelem legfontosabb feladatait gy sszegezhetjk: a helyi Informatikai Biztonsgi Szablyzatnak megfelel szablyrendszer betaro tatsa.

informciramls biztostsa, a bjtsorozat folyamatos rtelmezsvel s ellen orzsvel. ismeretlen s tiltott elemek thaladsnak megakadlyozsa, ilyen mdon vdve a kt znt egymstl.

Nzzk, hogy ezeket a feladatokat hogy oldottk meg az id k folyamn. o

2. Bastion hoszt
Bastion hoszt neve magyarra nagyon nehezen fordthat le gy, hogy tkrzze az eredeti jelentst. A bastion angolul meger stett terletet jelent, a bastion host kifejezs o pedig egy olyan meger stett szmtgp, mely egy vdett bels hlzat szmra a ho o lzati er forrsok ignybevtelt lehet v teszi. o o A bastion hoszt egy szabvnyos munkalloms, kt hlzati interfsszel, melyek kzl az egyik a bels -, a msik pedig a kls hlzat fel gyel (a kls s bels o o o o elnevezs kizrlag a szemlltetst szolglja, egyszeruen kt znrl van sz). A felhasznlk a sajt munkallomsaikrl gy tudjk ignybevenni a hlzat szolgltatsait, hogy bejelentkeznek a bastion hosztra (akr az X Window akr terminl emultor hasznlatval), majd onnan indtjk a hlzati kliensprogramot (pl: bngsz t). o A bastion hoszt hasznlata egyrszt knyelmetlen, mert az adatok nem kzvetlenl a mi gpnkre rkeznek, msrszt nem is nyjt elegendo biztonsgot, mivel a munkallomsokra rt szoftvereknl nem ez az els dleges szempont. o Termszetesen proaktv kongurcival a veszly cskkenthet , de nem sznteto het meg (pl: ha lehet, akkor szolgltatsok csak a bels interfszen gyelnek, kls n o o o nem). Bastion hoszt alkalmazsakor a bels hlzaton lv szmtgpek IP cmeinek o o kvlrol nem kell cmezhet nek lennie, hiszen minden krs a klvilg fel a bastion o hoszt kls IP-jr l indul. o o

3. Csomagszur router o
Nzzk meg, hogy egy csomagsz r nlkli router milyen mdon valstja meg kt uo alhlzat sszekapcsolst. 92

LME

GNU/Linux Konferencia

3.1. Egyszeru router


A routernek, hasonlan a bastion hoszthoz, legalbb kt hlzati interfsze van, kt k lnbzo kvlrol cmezhet cmtartomnyban. A bels gpek a kls hlzatnak szl o o o csomagokat a routerhez tovbbtjk, ami - sajt routing tblzata alapjn - gondoskodik a csomag tovbbi tjrl. A csomag forrscme - alapesetben - tovbbtskor nem vltozik. A vlaszcsomagok clcme a felad gp IP cmt tartalmazza. Hasonlan az el z o o esethez, a vlaszcsomagok is megrkeznek a routerhez, ami a bels hlzati interfszn o keresztl tovbbtja azt megfelel bels szmtgphez. o o A router a csomagokat IP-szinten tovbbtja, azaz nem foglalkozik az IP feletti TCP, vagy UDP protokollok fejlcvel, azokat kizrlag a kommunikl felek (a bels , o s a kls szmtgp) dolgozzk fel. A vdendo szmtgp teljesen kiszolgltatott o helyzetben van, hiszen a teljes hlzati protokoll stackje elrhet , s akr az opercis o rendszerben, akr az azon fut alkalmazsban lehet olyan hiba, melyet a kls tmad o kihasznlhat. Ez a fellls semmifle vdelmet nem nyjt, hiszen a kt fl kzvetlen kapcsolatban ll egymssal, a router nem dnt csomagok tovbbtsrl vagy eldobsrl.

3.2. Router s a NAT


A vdekezs hatkonyabb ttelben logikus lps az, hogy a bels szmtgpeknek o kvlrol nem cmezhet , hanem bels cmeket osztunk ki. gy a bels gpek kvlrol o o o nem rhet ek el kzvetlenl. o Bellr l kezdemnyezett kapcsolatok esetn a router a kimeno csomagok forrso cmt s portjt trja, a vlaszokat pedig a bels hlzatra tovbbtja. Ezt a technikt o hvjk Network Address Translation-nek vagy NAT-nak. A NAT egy specilis esete, amikor 1:N lekpezst vgznk, ezt hvjk masquerading-nek is. Fontos megjegyeznnk azt, hogy a csomagok a routeren mindkt irnyba - a cm trsn kvl - vltozatlanul tovbbtdnak, azaz az eredeti IP opcik, s fragmentek vltozatlanul tmennek.

3.3. Csomagszurs
Mint ahogy a nevben is benne van, a csomagsz rs lehet v teszi bizonyos csomagok u o eldobst ill. tengedst a csomag fejlcben lv informcik alapjn. o Ez ltalban egy szablyhalmazt jelent, ahol minden szably egy felttelt, valamint egy akcit jell. Ha a berkez csomag megfelel a felttelnek, azon alkalmazni kell o a megadott akcit, mely lehet pldul a csomag tengedse, eldobsa vagy visszautastsa. A felttelben kikthetjk a csomag forrs valamint cl IP cmt, az IP feletti protokoll azonostjt, valamint TCP s UDP protokollok esetn a portszmot. Csomagsz r router alkalmazsa esetn teht lehet sgnk van bizonyos csomauo o gokat tengedni vagy eldobni az alkalmazott cmtartomnyok, valamint portszmok alapjn, viszont ha egy csomag engedlyezett, akkor cmtrson kv l a csomag vlu tozatlanul halad t. Szmos opercis rendszerben fordult el olyan hiba, mely az IP fejlcek rossz o rtelmezsbol addott, a csomagsz r router mr ezekkel szemben is tehetetlen, nem uo beszlve a csomagok adatrszben tmen adatokrl. o

93

LME

GNU/Linux Konferencia

u Tovbbi problma a kizrlag portszm alapjn trtno sz rsben az, hogy nem lehet ellen rizni, hogy egy adott porton tnyleg az adott fels bb szint protokoll halad o o u t (pl. 80-as port esetn HTTP).

4. Stateful Packet Filter - llapottart csomagszur o


A stateful packet lter a csomagsz r router gondolatt fejleszti tovbb, annyiban, uo hogy kpes kt thaladt csomag kztt llapotot tartani, s sszefggseket gyelni. Az SPF t zfalak n. connection tracking technikt hasznlnak, melynek segtsgvel u kpesek a csomagokat kapcsolathoz rendelni, gy a kapcsolaton kvli csomagok automatikusan eldobhatk. Az SPF mr nem csak a csomag fejlce-, hanem tartalma alapjn is hoz dntseket, azaz az egyes protokoll-elemeket is feldolgozza. SMTP protokoll esetn pldul szreveheti, ha a protokollnak nem megfelel krs megy t a csatornn, s ennek kapo csn kpes lpseket tenni (pl. megszaktani a kapcsolatot - ilyen pldul a Cisco PIX t zfala). u Az SPF-ek legnagyobb problmja az, hogy felptsbol kvetkez en az adatcsao tornkat csomagok sorozataknt kezeli, nem pedig bjtfolyamknt, ezrt: a csomagok fejlcei mdosts nlkl kerlhetnek a klienshez, ami problmt okozhat az IP stacknek.

amennyiben a t zfal a mskpp rtelmezi a fragmentlt IP csomagokat, gy elu kpzelheto, hogy mst "lt" a t zfal, s mst a kliens. u nehz az adatfolyamban olyan vltoztatsokat eszkzlni, melyek tlpik a csomaghatrt (pldul tartalomsz rs, jrakdols vagy kdols levtele, stb). u

Tovbbi problma jelentkezik, ha a feldolgozand protokoll bonyolult. Ez knnyen llapottr-robbanshoz vezethet, ami tlthatatlann teheti a protokoll ellen rzst. o sszessgben: az llapottart csomagsz r valamivel nagyobb biztonsgot kpes uo nyjtani egy egyszeru csomagsz r nl. uo

5. Alkalmazsszintu proxy tuzfalak


A proxy t zfalak felptskben kzelebb llnak a bastion hosztokhoz, mint a stateu ful packet lterekhez, ugyanis a proxy t zfal alapvet en nem csomagok tovbbtsu o val foglalkozik. A proxy t zfal egy dediklt szmtgp, specilisan el ksztett, de u o szabvnyos opercis rendszerrel (BSD, Linux) s a szolgltatsok kzvettst vgz o proxy szoftverrel. A t zfal szoftver minden tmogatott protokollra tartalmaz egy n. proxy programot, u mely a bels hlzati csatoln hallgatzik, kapcsolat rkezse esetn pedig kapcsolatot o kezdemnyez a kls oldalon, majd a krseket-vlaszokat ellen rzs utn kzvetti. o o Fontos megjegyeznnk, hogy kt teljesen fggetlen kapcsolatrl van sz, a kt zna kztt csak az adatrsz mozog, az IP/TCP fejlc teljesen jrapl. Lthatjuk, hogy a legtbb lehet sge a proxy t zfalaknak van: ha akarjk kpeo u sek teljes mrtkben feldolgozni egy krst, ami akr tbb MB is lehet, majd, ha az megfelel a helyi biztonsgi szablyzatnak, tovbb engedni azt. Extrm esetben kpesek lehetnek arra is, hogy egy protokollt konvertljanak egy msikra (pl. imap->pop3). Ezt a problmt SPF alkalmazsa esetn sokkal nehezebb megvalstani. 94

LME

GNU/Linux Konferencia

6. Zorp
A Zorp egy alkalmazs szint proxy t zfal, azonban szmos jtst tartalmaz a szokvu u nyos proxy t zfalakhoz kpest: u Modularits: a Zorp a protokollok felptshez hasonlan rekurzv, azaz kpes lekezelni azt, ha egy protokoll begyazott alprotokollt tartalmaz s a begyazott protokollt is ellen rizni kvnjuk. o

Kriptoproxy: a Zorp SSL proxyja kpes a titkostst eltvoltani az SSL-t alkal maz protokollokrl, gy az ilyen adatok is ellen rizhetoek (HTTPS, POP3S, o IMAPS), valamint kpes arra is, hogy az egyik oldalon cleartextben rkez foo lyamot SSL-be csomagolva kldje tovbb a szerver fel. Elemzs mlysge: a proxyk fejlesztse sorn trekedtnk arra, hogy a protokollokat a lehet legrszletesebben elemezzk, gy biztostva a kommunikl felek o klcsns biztonsgt. Kongurci: a kongurci lersnak nyelve egy programozsi nyelv, a Python. Ennek segtsgvel a proxyk m kdse nomhangolhat, szinte minden u protokoll-esemnyre sajt esemnykezel t rhatunk, mellyel beavatkozhatunk a o proxyk m kdsbe. gy pldul a HTTP proxy URL sz rst megvalsthatjuk u u tisztn Pythonban nhny sor megrsval.

A Zorp fejlesztse jelenleg kt gon zajlik: egyrszt a Zorp GPL alatti vltozata, mely szabad szoftverknt letlthet s hasznlhat, msrszt a Zorp Professional, mely o termkknt kaphat. A GPL-es vltozat teljes rtk , a klnbsg els sorban a tmou o gatott protokollok szmban, illetve a csomagols min sgben van. o A tervezett 1.0 kiads a kvetkez proxykat tartalmazza majd: HTTP, FTP, FINo GER, WHOIS, SSL, POP3, IMAP, NNTP, PRINTER, TELNET.

7. Zorp a jv ben o
A Zorp fejlesztse a tovbbiakban a kvetkez k szerint zajlik: o Tovbbi protokollok tmogatsa Menedzsment eszkzk Naplfeldolgoz eszkzk Grakus fellet

95

96

GIMP, avagy graka unixon


Sveg Gbor <gsuveg@sgsystem.com> 2001.08.30.
Kivonat A Unix rendszereket els sorban kiszolglknt ismerhettk meg. Az elmlt vek, o vtizedek sorn a kedvenc rendszernk grakai kpessgei is gyorsan fejl dtek. o Ma mr nyugodtan elmondhatjuk, hogy a unix rendszereken a t lk megszokott o stabilits, megbzhatsg megtartsa mellett, jl hasznlhatjuk grakai feladatokra. Az el adsom els rsznek clja ttekintst adni a szabad unix rendszereken haszo o nlhat grakai lehet sgekr l. Rviden tekintjk a fontosabb programokat, a fejo o l dsi irnyokat. Az el ads msodik rszben a GIMP program bemutatsa sorn o o az ismert s a kevsb ismert lehet sgeit mutatom be. o

Tartalomjegyzk
1. Bevezet o 2. A szmtgpes kpalkots rvid ttekintse 2.1. Mely grakai programokat hasznlhatjuk linux alatt ? 2.1.1. Pixelgrakai programok . . . . . . . . . . . 2.1.2. Vektorgrakai programok . . . . . . . . . . 2.1.3. 3D rajzprogramok . . . . . . . . . . . . . . 98 98 98 98 99 99 99 99 100

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

3. A GIMP 3.1. Rvid bemutat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2. A GIMP tulajdonsgai . . . . . . . . . . . . . . . . . . . . . . . . .

97

LME

GNU/Linux Konferencia

1. Bevezet o
A Unix rendszereket els sorban kiszolglknt ismerjk, a httrben dolgoz sokszor o monitor nlkl hnapokon keresztl lellts nlkl megbzhatan m kdo, kls re u o nem a legszebb gpknt. Szerencsre ez a helyzet az elmlt vek gyors hardver fejl o dsnek s a unix terjedsnek ksznhetoen egyre szebb grakus felleltek (Gnome, KDE, Enlightenment stb.), s alkalmazi programok hasznlhatk alatta. Mra mr elmondhatjuk, hogy a unix felsorakozott a desktop rendszerek kz (is). Termszetesen ez mg nem jelenti azt, hogy a szabad UNIX-ok megel zik a professzionlis grakai o rendszereket. De szerencsre vannak olyan terletek, ahol a szabad unix rendszernk mr jobban megllja a helyt, mint a mregdrga eddig ismert grakai opercis rendszerek. Az el ads clja nem a tbbi opercis rendszer s a grakai alkalmazs vo lemnyezse, hanem els sorban a unixban rejl lehet sgek kihasznlsnak bemutao o o tsa.

2. A szmtgpes kpalkots rvid ttekintse


A szmtgpes kpalkots nagyon rvid mltra tekint vissza, s t az amgy is rvid o szmtgpes trtnelem legrvidebb fejezete is a grak. Az els szmtgpek mg o nem rendelkeztek monitorral sem, majd a ignyek, s a technikai fejl ds eredmnyeo kppen jutottunk el a mai, grakailag rendkvl fejlett szmtgpekhez. Ez a fejl ds o rendkvl gyors, egy v mlva valsznleg nevetve fogunk beszlni a mostani gpek grakai kpessgein. A szmtgpes kpbrzolst tbbflekppen csoportosthatjuk, de egyik kategria sem megfelel . Nagyon nehz a klnfle m vszeti irnyokat, technikkat vagy o u mdszereket kategorizlni, osztlyozni. Nzzk meg milyen osztlyozsok vannak: vektorgraka-pixelgraka, 2D-3D. A tovbbi osztlyokat is felllthatnnk, amiknek meg lenne mind, mind a maga el nye. o De az el adsnak nem ez a clja. o

2.1. Mely grakai programokat hasznlhatjuk linux alatt ?


2.1.1. Pixelgrakai programok (rvid felsorols a teljessg ignye nlkl) 1. GIMP - (szabad unixon) a legelterjedtebb szabad kpszerkeszt program. Az o el ads msodik rszben rszletesen foglalkozom vele. o 2. KDraw - nagyon igretes program. A KDE csomag rsze, de mg fejleszts alatt ll. 3. OpenDraw (StarDraw) - az OpenOfce csomag rsze. A program els sorban o irodai feladarokra kszlt, igy a kpek szerkesztsre nem annyira ajnlott 4. XPaint - egyszeru rajz program. 5. XV - az egyik unix-os rkzld sajnos nem teljesen ingyenes.

98

LME

GNU/Linux Konferencia

2.1.2.

Vektorgrakai programok

1. XFig - egyszerbb vektoros rajzok ksztse 2. Killustrator - a KDE csomag rsze. 3. GYVE (Yellow Vector Editor) - er sen fejleszts alatt o 4. Gill - Gnome Illustrator (korbban SVG) 5. Sketch - igretes vektoros rajzprogram 2.1.3. 3D rajzprogramok

1. Blender - jl, sokrten hasznlhat program, (sajnos a forrskd nem szabad) 2. Moonlight - 3D rajzporgram, er sen fejleszts alatt o 3. PovRay - kicsit kilg a sorbl, de sokak ltal hasznlt program 3. Maya - a Hollywoody stdikban is hasznlt program, nemrg jelent meg a linuxos vltozata (nem ingyenes). A felsorolsbol is ltszik, hogy a graka unixon mg nagyon atal. Kevs jl hasznlhat programot tallhatunk. A felsorols korntsem teljes, sok hasznos, s igretes program kimaradt a listbl. Ebb l a sorbl kilg a GIMP a tulajdonsgaival. o

3. A GIMP
A GIMP megjelense ta szinte minden sszehasonltsban az els helyet foglalja el o a linuxos kpszerkeszt programok kztt. Tudsa, hasznlhatsga elri, nha meg o is el zi a digitlis kpfeldolgozsban s grakban eddig ismert, drga programokat. o Vajon mirt ilyen sikeres a GIMP? Mi a titka a sikernek? Hogyan lehet vele dolgozni? Hogyan lehet a GIMP rejtett tartalkait kihasznlni? Ezekre prblok nagyon rvid bevezetst tenni az el ads sorn. o

3.1. Rvid bemutat


A GIMP a GNU Image Manipulation Program angol szavakbl alkotott mozaiksz, jelentse pedig GNU Kpszerkeszt program. 1995 nyarn a fejlesztst Spencer Kimball o s Peter Mattis kezdte a Berkeley Egyetemen. Fl vvel ks bb a korai prbavltozat o megjelent az Interneten s ezzel elkezd dtt a nagy kaland. Ez a GIMP-vltozat mg o a Motif knyvtrat hasznlta, mely abban az id ben mg kereskedelmi termk volt. o Ez azonban megakadlyozta a linuxos felhasznlk kztt a szles kru elterjedst. Ezrt 1996. jliusban megszletett a GIMP Toolkit (GTK), a GIMP eszkzkszlet. Ekkor csatlakozott sok fejleszt a munkhoz, segtve a tervezst, a fejlesztst s az elo len rzst. Hossz munka utn 1997. februrjban megjelent a 0.99 vltozat. Ez mr o tmogatta a rtegeket (layer) s szmos b vtmny kszlt hozz. Vgl 1998. mjus o 19-n megjelent a hosszadalmas munka gymlcseknt az els megbzhat vltozat: a o GIMP 1.0. A GIMP clja els sorban a szmtgpen felhasznlt kpek szerkesztse, o rajzolsa, mdostsa volt. Mra els sorban a webes felletre sznt grakk elkszto snek kivl eszkzv vlt, de hasznljk programfejleszts sorn a program grakai megjelensnek tervezsre is. Ma mr minden szabadon terjeszthet Linux-rendszer o rsze, de elrhet Win32 s OS/2 alatt is, s t MacOSX alatt is. o o 99

LME

GNU/Linux Konferencia

3.2. A GIMP tulajdonsgai


- Teljes rajzeszkzkszlet: ecset, festkszr, ceruza, toll, msols, elmoss. - Hatkony memriagazdlkods eredmnyeknt a szerkeszthet kp mrett a o szabad httrtr korltozza! - Kezeli a rtegeket (layer) s csatornkat (chanel). - Rendkvl hatkony szntmenet s sznkevers. - A GIMP bels szolgltatsainak elrse a Script-Fu nyelven keresztl. o - Tbblpcsos Visszavons/Visszallts (ennek csupn a szabad httrtr szab korltot). - Korltlan szm, egy id ben megnyithat kp. o - Animcik ksztse. - Tbbek kztt e kpformtumokat tmogatja: gif, jpg, png, xpm, tiff, tga, mpeg, ps, pdf, pcx, bmp, psd. Ezek a kpek betlthetok, menthetok, konvertlhatk a GIMP-pel. - Kijells eszkzk kzl ngyzet, ellipszis, szabad, Bezier-grbe, egybefgg o terletek kijells hasznlata. - Tbb, mint szz beptett b vtmny, valamint a beptett script-fu segtsgvel o korltlanul fejleszthet . o - Egyni ecsetek s kitlt mintk ksztse. o - Digitalizl tbla tmogatsa. - Hatkony a bet kezels. u - Transform eszkzk: elforgats, kicsinyts, nagyts, torzts. - Lapolvas tmogats, kperny kp mentse. o A rvid ttekints utn ksztnk grakkat a GIMP segtsgvel. Az id rvidsge o miatt a program rejtett, kevsb ismert tulajdonsgait mutatom be. A program segitsegevel elkeszitjuk egy weboldal grakai munkit. Megtervezzk az oldalt, ksztnk plasztikus feliratot s tbbfle mdon ksztk gombokat. Zrsknt a GIMP programozsbl, a script-fu programozsrl mutatok pldkat.

100

A BSD vilga
Zahemszky Gbor <ZGabor@BSD.HU> Magyar BSD Egyeslet 2001.08.31.
Kivonat A BSD vilgrl, lozjrl szl majd az el ads, sok rdekessggel a klno bz licenszekr l (XFree86, Perl Apache...), a BSD-rendszerek hasznlatrl s o o hasznlirl.

Tartalomjegyzk
1. Bevezets 2. Az ltalnossgok utn nzznk nhny konkrtumot e rendszerekr l! o 2.1. Fjlrendszerek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. RAID, s vidke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3. Hlzat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4. NAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5. Csomagsz rs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . u 2.6. Forgalomkorltozs, -szablyozs . . . . . . . . . . . . . . . . . . . 2.7. Szoftver Portolhatsg . . . . . . . . . . . . . . . . . . . . . . . . . 2.8. Emulcik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.9. Csomagkezels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.10. Kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.11. Napraksz BSD-k . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. BSD-k hasznlata a vilgban s itthon 3.1. BSD-k elrhet sge . . . . . . . . . . . . . . . . . . . . . . . . . . . o 102 105 105 106 106 107 107 108 108 108 109 110 110 111 111

101

LME

GNU/Linux Konferencia

1. Bevezets
Mi is az a BSD? Els rnzsre valami rondasg, hisz ha egyltaln kpes ezt a nevet o valaki megjegyezni (mr ez se szokott sikerlni, van akik tbbszri nekifutsra is csak BDS-nek hvjk - mint pl. az APEH), akkor is csak az jut eszbe, hogy: valami, ami nagyon hasonlt az LSD-re (ami lehet, hogy j, de nem biztos, hogy leglis), s mg ennl is sokkal jobban emlkeztet a BSA-ra (ami lehet, hogy leglis, de biztos, hogy nem j). Szval BSD. Maga a nv egy rvidts, a Berkeley Software Distribution (azaz Berkeley-i Szoftver Terjeszts) rvidtse. Persze, mint minden rvidts, s azok magyarzata, ez se r tl sokat. gy maradjunk annyiban: ez egy UNIX-verzi elnevezse. Ebbe persze nem megyek bele, hogy most a BSD-k valban UNIX-ok, vagy nem, jogilag nem, gyakorlatilag igen. Ezen a konferencin elhangzik egy el ads, amelynek o cme (UNIX vagy nem UNIX?) azt sejteti, hogy ugyanez a problma fennll a Linux esetben is. (Sajnos a tervezett id beoszts ismeretben mr sose fogom megtudni, kio vve, ha az el ad velem ellenttben gynyru s hasznlhat el adsanyagot kldtt o o a szervez knek a konferenciakiadvny megjelentetshez.) n az egyszerusg kedvo rt UNIX-nak fogom nevezni. Ha egy kicsit megvizsglnnk a BSD mltjt (amihez pl. a Linuxvilg c. lap II/1-es szmban tallhatunk egy kis segtsget), akkor sok minden kiderlne err l az oprendszerr ol, amely 1977-ben (vagy a krl) jelent meg, o s az elmlt nagyjbl 25 vben j pr hasznos funkci itt jelent meg el szr. Ez a o UNIX-verzi j nhny msik rendszer szletshez jrult hozz. Az ismertebbek, ABC sorrendben: AIX - az IBM-t l, HP-UX a HP-t l, SunOS a SUN-tl, s Tru64 o o UNIX (msnven Digital UNIX azaz DEC OSF/1 azaz Ultrix a Compaq-tl, korbban Digital-tl). Ezekrol az vekr l is kell(ene) beszlni, de gyeljnk egyel re a jelenre: o o manapsg a BSD a legtbb hozzrto szmra semmit nem jelent. Jelenleg a kvetkez BSD verzik ismertek - megint ABC-rendben: BSD/OS, Freo eBSD, NetBSD, OpenBSD. Ezek kzl az els kiss kilg a sorbl, ez egy cg keo reskedelmi termke, melyet Intel platformra, els sorban hlzati kiszolglnak, valao mint t zfalakhoz ajnlanak. (A cg neve csak azrt marad ki, mert az utbbi id ben u o a tulajdonoson kvl a neve is igen s r n vltozott.) (Tallkozhatunk egyb nevekkel: uu 386BSD - ez tulajdonkpp mr nem ltezik; Trusted BSD, ami egy biztonsagi dolgokra kihegyezett BSD, a stabil dolgok rendszeresen kerulnek bele a FreeBSD-be.) A FreeBSD, amit n rendszeresen hasznlok, egy eredetileg Intel platformra fej lesztett BSD vltozat, a 386BSD tovbbfejlesztsbol alakult ki. Ez az elrhet o BSD rendszerek kzl taln a legjobb PC-s hardvertmogatssal br. Mint neve is jelzi, szabad. Forrsa is, a hasznlhat binris is ingyenesen elrhet - letlto het a hlrl, megvehet CD-n, s lemsolhat (leglisan) ismer skt l. o o o o

A NetBSD egy olyan BSD vltozat, amelynl egyetlen jl megfoghat cl ltezik: AZ opercis rendszer akar lenni. Legf bb jellemz je, hogy mindenfle o o hardveren kpes m kdni. (Sajnos ez nem igaz, pl. a jelen lev AS400-on nem u o megy, de a felhasznlk zme ltal elrhet vasakat - PC, Amiga, Atari, Mac, o Sun-ok, rgi HP-k, Alpha-k, klnbz o palmtopok - tmogatja.) Vgl az OpenBSD. Eredetileg a NetBSD fejleszt i csapatbl vlt ki nhny o ember, s a legbiztonsgosabb opercis rendszer kifejlesztst t ztk ki clul. u Alapknt az akkori NetBSD-t vettk, s azta igen sokat vltoztattak rajta, els o sorban biztonsggal kapcsolatos dolgokat. (Volt a fejlesztsben egy igen hossz

102

LME

GNU/Linux Konferencia

id szak, amikor gyakorlatilag az j funkcik beptse megllt, s a meglev kd o o igen er teljes auditlson ment keresztl.) o Ebb l a bevezetsb l avatatlan kvlll azt sz ri le, hogy akkor ez egy elgg o o u kusza rendszer, hisz van legalbb 4 klnbz o verzi bel le, elgg eltr clokkal. (Ez o o a 4 azonban nem is sok, ha sszevetjk a klnbz o Linux-terjesztsek - disztribcik - szmval.) A BSD rendszerek azonban kzs alapbl fejl dtek, teht nagyon sok hasonl o (nemegyszer megegyez ) rszt tallhatunk. Az igazsg az, hogy nhny, az egyik, o vagy msik rendszerhez elktelezett fejleszt t kivve, a fejleszt k jelent s rsze nem o o o csak az egyik vagy msik, hanem 2-3 BSD fejlesztsben vesz rszt. Ezek a rszek aztn nyilvn ugyanolyanok, ugyangy m kdnek, s a belltsuk is megegyezik. u Termszetesen, mint a szoftveriparban mindentt, az egyik fejleszt (csapat) ltal o kitallt, megvalstott dolgokat itt is ellopjk a msiktl. Illetve nem lopjk, ugyanis nincs r szksg. A BSD-k egyik igen komoly eltrse a GNU/Linux vilgtl ugyanis a szoftverekhez tartoz engedly (licensz). Mg a GNU/Linux rendszereken hasznlt programok tbbsge a GPL-t (vagy LGPL-t) hasznlja, addig a BSD rendszereken hasznlt programok zme Berkeley-engedly al tartozik. Ez rendszerint komoly vitkat eredmnyez, ugyanis a Berkeley-engedlynek van tbb, sokak - felttelezett szabadsgrzett srt kittel. Ezek kzl nhny: o ezen programokat lehet mdostani anlkl, hogy a mdostst ktelez lenni o kiadni

nem ktelez a forrskdot tadni o pnzrt lehet rulni.

Ezt sokan flrertik, s a Linux- s egyb rendszereket hasznlk egy rsze nhny aprsgot nem lt (az elvakult Linux hv k pedig nem hajlandk ltni). o Egy modern irodai Linux rendszer gyakorlatilag nem ltezik a grakus fellet nlkl (s most nem a GNOME/KDE/??? rendszerekre, hanem az alatta lev o X Window System rtegre gondolok). Ennek legs r bben hasznlt vltozata uu az XFree86 - nem GPL-t hasznl. Akkor teht ne hasznljuk az X-et? Legtbb Linuxos rendszer szerves rszt kpezi a Perl, mely az un. Artistic License (m u vszi engedly?) alapjn terjeszthet . Akkor teht ne hasznljuk a perl-t s az o ezen alapul dolgokat? (Megjegyzendo, hogy a szerz lehet v tette programjo o nak GPL-alap terjesztst is.) De tallhat sok Linux rendszeren Apache, (n)vi, s sok egyb program, mely nem GPL-t hasznl. Teht ezeket se kellene hasznlnunk? Ezek a programok az eltr jogi szablyozs ellenre nem rosszak. (Arrl o nem is beszlve, hogy mg a legelvakultabb Nylt Forrskd-hv ok tbbsge is a Netscape, illetve az Opera bngszot hasznlja, s jval kevesebben vannak a Konqueror illetve a Mozilla rendszeres - s kizrlagos - hasznli.) Senki nem ktelez minket arra, hogy BSD-alap rendszernkn csak BSD-engedlyes programokat hasznljunk, vagy fejlessznk. Ezek a rendszerek is hasznlnak olyan programokat, melyekhez tartoz engedly sokszor szigorbb. s a taln legfontosabb: a felhasznlk zmt nem klnsebben rdeklik a Copyright-problmk. Ha venni kell a programot, veszi, ha lopni lehet, akkor lopja; ha nem kell lopni, mert leglisan juthat hozz pnz nlkl (vagy legalbbis 103

LME

GNU/Linux Konferencia

jval kevesebb pnzrt) akkor leglisan gy jti be; a lnyeg: m kdjn, s azt s u u gy csinlja, ahogy azt kell, s amire a felhasznlja utastja, ne pedig valami mst, kisujjbl kiszopva. (Szerencsre(?) egyre tbben vannak olyanok is, akik egyes cgek irrelis zletpolitikja, bizonyos termkek id nknt a hasznlatot is o megnehezto instabilitsa, illetve a szmtgpes vilgot elraszt levlszemt s vrusradat elleni vdekezs okn szeretnnek vltani.) Trjnk vissza a BSD-khez. A tovbbiakban (mivel csak elgg rg, s elgg keveset hasznltam) a kereskedelmi BSD-t, a BSD/OS-t nem trgyalom. A BSD-k vilga olyan vilg, amely bizonyos terleteken hasonlt, msokban eltr a Linux-vilgtl. Hasonlt abban, hogy: legnagyobb rszben szabad szoftver

tbbsgben megszllott orltek fejlesztik tbb klnbz o, mde elgg hasonl vltozata ltezik jl hasznlhat szerver funkcik elltsra, s lassan de biztosan halad abba az irnyba, hogy hasznlhat alternatva legyen a hozz-nem-rt ok szmra is a jelenleg elterjedt rendszerekkel szemben

Eltrnek: a legtbb BSD rendszernl kimondva, kimondatlanul a szerver kategrit, s sokkal kevsb az otthoni jtsz, internetezo, lmet nz , zent hallgat felhaszo nlt clozzk meg (ezt taln kevsb flrerthetoen valaki egyszer gy fogalmazta meg: az Adaptec RAID-vezrl meghajtprogramja fontosabb, mint az o Opti931-es hangkrty). klnbz o BSD rendszerek vannak ugyan, de nincs tbbfle (pl.) NetBSDterjeszts: ha valaki az 1.5.2-es NetBSD verzit hasznlja, az elgg konkrt dolgot takar, ha nem kezd a rendszergazda orlt rendszertszervezsbe, akkor szinte mindegy, hogy mely vasat vlasztottuk a teleptshez, ugyanazt ugyanott fogjuk tallni. (Ellenttben a legtbb eleve egymstl is klnbz o Linux terjesztst l , amelyeknl a tbb-kevsb ltalnosnak tekintheto dolgokbl o ltalban a telepts kzben el kell dnteni, hogy: melyik vi-hasonmst teleptsk (nvi/elvis/vim/...) melyik levelez szerver programot teleptsk o (sendmail/smail/qmail/postx/exim/...) melyik karakteres levelez klienst teleptsk termszetesen teljesen feo leslegesen, lvn a tbbsg grakus felleten dolgozik (mailx/pine/elm/mutt/mh/nmh/...) melyik hrolvas programot teleptsk, melyik grakus levelez klienst teo leptsk s . t.) ezeknl komolyabb eltrs: a BSD rendszerek fejlesztse a szoftverfejlesztsben eddig elgg jl bevlt kzpontostott mdszert kveti. ltalban jl elhatrolt terletek lteznek, s az ezekhez rt szemlyek csoportja koordinltan dolgozik o 104

LME

GNU/Linux Konferencia

ezen. Nincsen olyan egyrtelmuen azonosthat szemly, mint Linus Torvalds, aki az egsz felett orkdik, s akinek szava tulajdonkppen az egyetlen dnto sz a tekintetben, hogy valami igen, vagy nem: a fejleszt k kzs dntse hatrozza o meg, hogy valami a rendszer szerves rszt kpezi-e, vagy marad becserkszend o rendszerfolt (patch) valahol a Hln. a rendszer szerves egsz. Az n rendszerem nem Debian 2.2 (Potato) 2.2.19es kernellel, a libc6-nak a 2.1.3-10-es verzijval, valamint a . . . -val . Nem, az n rendszerem FreeBSD 4.3-RELEASE, ha esetleg nagyon akarom, akkor a szksges biztonsgi foltokkal. s ezt gy a BSD-sek tbbsge rti, s tudja, mit hol keressen.

a csomagkezels (a kereskedelmi BSD/OS-t kivve) egysges s rugalmas. Nem vagy .tar.gz, vagy .rpm, vagy .deb, a hozz tartoz segdprogramokkal. Egyetlen formtum ltezik, ami egybirnt .tar.gz, de termszetesen a csomagkezels mint olyan hasznlathoz szksges funkcik megtallhatk. (Ltszlag nem sokban trnek el az egyes Linux-rendszerek rpm-jei, de legalbbis a linux- s linux-kezd levelez listk, illetve az Index frumain olvashat hozzszlsok o o valamint nmi sajt tapasztalat alapjn ez a csekly eltrs elg sok felhasznl s persze nhny rendszergazda lett meg tudja nehezteni. s ha szerencsnk van, akkor szp lassan el ll ugyanez a deb formval is.) o a legtbb Linux-rendszerrel szemben, a rendszer belltshoz (kernel fordts, szoftverek m kdsnek belltsa, egyebek) egyetlen jl hasznlhat, mde kiu csit nehezen tanulhat kongurl eszkzt lehet csak hasznlni. Neve: vi. Ms nincs! A BSD rendszerekben az alaptelepts (teht ha extra programokat nem teszek fl) nem ad joe-t, emacs-ot, ae-t, nedit-et, s f leg nem ad adott tero jesztsben (s csak ott!) hasznlhat kongurl eszkzt. Er sebb idegzet ek o u esetleg megprblkozhatnak az ed-vel vagy teleptsk fl az ignyelt plusz szvegszerkeszt t, ami valszn leg el refordtott csomagknt megtallhat. o u o

2. Az ltalnossgok utn nzznk nhny konkrtumot e rendszerekr l! o


2.1. Fjlrendszerek
A BSD-kben gyakorlatilag egyetlen fjlrendszer ltezik, ezt a szakirodalomban FFSnek, UFS-nek nevezik. Ez megegyezik a legtbb kereskedelmi UNIX-rendszerben megtallhat fjlrendszerrel, akkor is, ha azokban nevk, esetleg bels szerkezetk o kisebb-nagyobb vltoztatson tesett. Ezt a formtumot kzel 20 ve fejlesztettk ki, s az eltelt id a garancia arra, hogy a fejleszts sorn elkvetett programozi hibk o elt ntek. Stabil, megbzhat darab, melynek fejlesztsekor az adatbiztonsg a teljestu mnynl is fontosabb volt. Ezt els sorban a (rendszer szmra) fontos adatok szinkron o diszkre rsval oldja meg. Ebb l termszetszer leg kvetkezik, hogy alapllapotban o u teljestmnye elmaradhat az ltalnosan elterjedt ext2 fjlrendszert hasznl Linuxokkal szemben, mert az ext2 aszinkron rsmdot hasznl a metaadatok rsakor is ami nagyobb sebessget, viszont srlkenyebb rendszert eredmnyez. A sebessg termszetesen fontos, ezrt a kvetkez lehet sgek adottak azoknak, akik vgya a minl o o nagyobb fjlrendszersebessg elrse.

105

LME

GNU/Linux Konferencia

Stabilan egyel re csak a NetBSD-nek rsze, de ltezik egy LFS-nek (Log Struco tured File System) nevezett, nevb l lthat, naplz fjlrendszer. A szekvencilis o diszkre rs miatt az olvass s rs is gyorsul, mg a naplzs miatt a megbzhatsg is megfelel . o Aki szeret kockztatni, az BSD alatt is bellthatja az aszinkron rst azaz ugyanazt, ami ext2-n alaprtelmezs Vgl, jelenleg mindegyik BSD-nek rsze egy viszonylag j mechanizmus, amit soft-updates-nek neveznek. Nagyon leegyszerustve a dolgot, a rendszer a diszkre rand adatok kztt fggosgi ft pt fel, s ez alapjn dnti el, hogy mely diszkterletet kell kirni. Ennek segtsgvel megmarad a szinkron rsmd stabilitsa, s majdnem az aszinkron rs sebessgt kapjuk. Ez mr ugyanaz a stabilits, mint amit a kereskedelmi UNIX-rendszerekben nha pnzrt, nha szriatartozkknt adott klnbz o naplznak (journaling) nevezett fjlrendszerek (GNU/Linux rendszeren a ReiserFS, az ext3, az SGI-fle XFS, illetve az IBM-fle JFS) nyjtanak, egyetlen htult je a rendszer nem-szablyszer u lellsa utni diszkellen rzs lasssga. (Ezt napo o lz fjlrendszerek esetn azzal kerlik meg, hogy a napl alapjn, csak a legutols mdostsokat ellen rzi a rendszer.) Ez termszetesen komoly htrny, ezrt egy jabb o eszkz jelent meg mostanban: a rendszerindts utni, httrben trtno fjlrendszerellen rzs (background fsck). Azaz miutn a rendszer elindul, egy-kt pillanat mlva o mr hasznlhat a fjlrendszer, a klnbz o inkonzisztencikat a norml m kds kzu ben javtja a rendszer. Az UFS fjlrendszerben a fjlokhoz tartozik nhny specilis jelz . A chags szolo gltats hasonlt az ext2-fjlrendszerben megtallhat, chattr paranccsal llthat dolgokhoz. Bellthat egy fjlra pldul, hogy ne lehessen trlni, vagy ne lehessen semmilyen mdon vltoztatni. Amiben eltr az ext2-s megvalststl, hogy ezekbol a lehet sgekbol kett van: egy, a kznsges felhasznlk (nyilvn a fjl tulajdonosa) o o ltal llthat, s egy, csak a rendszeradminisztrtor ltal llthat pldny. Ez utbbinak van egy igen rdekes tulajdonsga: a kernel specilis belltsa mellett ez utbbi jelz k trlse mg a rendszergazdnak sem engedlyezett. o

2.2. RAID, s vidke


Termszetesen a BSD-k is tmogatjk a klnbz o gyrtk klnbz o RAID-funkcikat nyjt eszkzeit, a nevesebbeket mindenkpp. Ezen tlmenoen, mindegyik BSD-nek rsze egy vagy tbb klnbz o szoftveres megolds. Az els ilyen megvalsts neve o CCD (Concatenated Disk Drives). Ez mindhrom szabad BSD-rendszernek rsze, a RAID0-nak s a RAID1-nek megfelel szolgltatsokat lehet vele elrni. Fejleszo tse tulajdonkppen ll, sajnos bizonyos karbantart funkcik hinyoznak. NetBSD s OpenBSD alatt egy RAIDFrame-nek nevezett rendszer rhet el, amely RAID0-tl o RAID5-ig mindent nyjt (s ezek egymssal is kombinlhatk), termszetesen hotspare tmogatssal. Ennek FreeBSD-re az elmlt hnapban kszlt el az tvitele (portolsa), az rs pillanatban mg nem szerves rsze a rendszernek, csak foltozssal lehet elrni. A FreeBSD rsze egy Vinum nev eszkz, tulajdonkppen ugyanezekkel u a funkcikkal, csak msvalakinek egy msik fejlesztse. (Errol homlyos informcik hallhatk, miszerint portoltk a msik kt BSD-be is, de ott nem rendszertartozkok.)

2.3. Hlzat
Mindhrom szabad BSD A referencia TCP/IP megvalstst hasznlja, mely az el mlt vtizedek alatt elgg kiforrott, gyerekbetegsgeit kinvo programrendszer lett. 106

LME

GNU/Linux Konferencia

Termszetesen mind az IPv4, mind az IPv6 hasznlhat, Magyarorszg els , ksrleti o IPv6-os hlzatt is BSD-s gpek alkottk. Szerencsre mindhrom rendszer ugyanazt az IPv6-os megvalstst ptette rendszerbe, gy ezek kztt csekly eltrs tallhat. A BSD-k szerves rszt kpezi az IPSEC tmogats (IPv4-en is). Hasznlhat IPX/SPX, AppleTalk, valamint NetBSD s OpenBSD alatt nhny manapsg kevsb elterjedten hasznlt hlzati protokoll is, pl. Xerox NS. A SLIP, CSLIP s els sorban a PPP ugyangy rendszertartozk. Mg a SLIP mego valstsban nincs klnbsg, addig OpenBSD-n s FreeBSD-n egy ppp-nek nevezett program (ez egy specilis tun nvre hallgat eszkz segtsgvel, felhasznli programbl intzi a PPP protokollt), mg NetBSD-n s FreeBSD-n egy pppd-nek nevezett, kernel szinten m kdo szoftver hasznlhat. Kt megjegyzs: FreeBSD-n ezek szeu rint kt klnbz o megvalsts is ltezik (ez mg nhny egyb dologgal gy van); ez utbbi pppd megegyezik a Linux-rendszerekben tallhat pppd programmal (mind a kernel-szintu, mind a felhasznli szint rsze ugyanaz). u Az IP, IPX s AppleTalk tmogatson kvl az egyb oprendszerek fjl- s nyomtatmegosztsi protokolljt is tmogatjk, a Samba, a NetAtalk, a MaRS (valszn leg u sokak ltal ismert) programok segtsgvel.

2.4. NAT
A korbbi Linux-kernelekben masquerading-nak nevezett, a hivatalos dokumentcikban NAT (Network Address Translation kb. Hlzati Cmfordts) nvre hallgat funkci is elrhet . FreeBSD-n, NetBSD-n az alaprendszer rsze Darren Reed o iplter nev programcsomagja, melynek egyik funkcija a cmfordts. Ez az utols u OpenBSD verzibl (tulajdonkppen) szemlyes okokbl hivatalosan kikerlt, de a fejleszt je vltozatlanul karbantartja az OpenBSD specikus rszeket, gy gyakorlatilag o ott is hasznlhat. OpenBSD-s fejleszt k g zer vel dolgoznak egy pf-nek nevezett, az o o o iplterrel (legalbb parancssori belltsszinten, egyes hrek szerint kernel programozi fellet-szinten) kompatibilis megvalstson, amely valszn leg az iplter funku ciit tveszi. FreeBSD-n ezen kvl ltezik egy specilis rendszermechanizmus, amit divert socket-nek neveznek (eltrtett hlzati csatlakozs), s ennek, a csomagsz u r nek, s egy natd-nek nevezett felhasznli programnak a segtsgvel is megoldo hat a NAT. (jabb funkci, melynek FreeBSD alatt tbb klnbz o megvalstsa ltezik.)

2.5. Csomagszurs
Az el bb emltettek szinte szrl-szra igazak, ugyanis az iplter (s az OpenBSD-s o pf) els dlegesen csomagsz r k. Azaz NetBSD-n, FreeBSD-n rendszertartozk, mg o uo OpenBSD-hez kls csomag. OpenBSD-ben pf nven egy msik megvalsts rhet o o el hivatalosan. FreeBSD-n szoks szerint ltezik mg egy eszkz, ezt ipfw-nek hvjk (s az 1.x-es Linux-kernelbeli Alan Cox-fle csomagsz r ezen alapult. BSD -> uo Linux, s nem viszont :-) Azta persze sokat vltozott.) Ezek mindegyike, azaz az iplter is, a pf is, s most mr j ideje (mg ha sok FreeBSD felhasznlban nem is tudatosult idig) az ipfw is un. SPF, azaz llapottart csomagsz r (Stateful Packet uo Filter). Ennek lnyege, hogy a ki- be- irnyul csomagokat nem nmagban rtelmezi a rendszer (ami a csomagsz r k alapvet viselkedsi mdja), hanem az esetlegesen kouo o rbban mr thaladt csomagokban tallhat informcikat is gyelembe veszi. Ennek segtsgvel bizonyos szksges hlzati forgalom lnyegesen biztonsgosabb tehet . o

107

LME

GNU/Linux Konferencia

Az jabb Linux-kernelekben (2.4-tol mr a stabilban is) ennek (az SPF-nek) egy nmileg tovbbfejlesztett vltozata tallhat kapcsolatkvets (connection tracking) nven. (B vebben lsd pl. az egyszer mr emlegetett Linuxvilg-ban, az I/1-es szmtl sok o ezer rszen t fut sorozatot. Esetleg az itteni el adsok ...) o

2.6. Forgalomkorltozs, -szablyozs


A Linux-vilgban Trafc shaping nven emlegetett lehet sg alapban csak FreeBSD o alatt tallhat meg, neve dummynet. (Eredetileg hlzati teszt-eszkznek kszlt, innen a lehetetlen elnevezs.) A korbban emltett ipfw segtsgvel llthat be. Ez ltszlag ahhoz vezet, hogy akinek mind csomagsz rsre, mind forgalomkorltozsra u szksge van, az az ipfw-t hasznlja, ezzel szemben az ipfw s az iplter szpen megfrnek egyms mellett, gy akinek kell, megteheti, hogy a kiforrottabbnak tartott iplterrel sz r, s a dummynet segtsgvel fogja vissza a forgalmat. u

2.7. Szoftver Portolhatsg


Mivel a BSD elg rgta ltez rendszer, ezrt a Linux-elotti id kben megrt prograo o mok tekintlyes hnyada problma nlkl, vagy kisebb kozmetikzs utn fordthat s hasznlhat. Az utbbi vek er teljes Linux-centrikussga a kezd (s sajnos nem o o csak a kezd ) gymond UNIX-programozk (helyesebben Linux-programozk) kztt o kiss neheztette a dolgot, de szerencsre ez is javul. Egyre tbben ismerik fel, hogy lteznek Linuxon kvl is egyb rendszerek, s a szabad szoftver kzssgben sem felttlenl htrny, ha az ember nem zrja ki a potencilis felhasznlk egy rszt. Radsul a BSD rendszereknl is fontos a klnbz o (rtelmes) szabvnyok betartsa, gy mindhrom BSD tartja magt pl. a legelterjedtebbnek tekintett POSIX-szabvnyhoz. Mivel a BSD-s tbor sem csekly, itt is vannak olyanok, akik ha tallkoznak egy szmukra fontos vagy rdekes programmal, akkor ha tudnak, segtenek azt az ltaluk preferlt BSD-n is futtathatv tenni (ezzel gyakorlatilag a msik kt BSD is hozzjut); illetve zrt kd program esetn a cgb l vagy a kdot, vagy egy BSD-(ke)n fut binrist o kinyerni.

2.8. Emulcik
Mivel a BSD-k egyel re a kereskedelmi szoftvereket gyrt cgek szmra amolyan o mostohagyerekek (szerencsre egyre tbb kivtel van), nagyon fontos az adott vason fut egyb opercis rendszerek ltal futtathat alkalmazsok BSD alatti futtathatsga. Intel/AMD/... alap PC-n ez mindhrom BSD-n ugyanazt jelenti: els sorban o a mindenki ltal nagyrabecslt M$ cg W* nev szoftverre rt programok, illetve u (szgyen-gyalzat, hogy egy mondatba kerlnek) Linux-ra rt alkalmazsok futtathatsgt. Erre ugyanazokat a lehet sgeket nyjtjk. Egyrszt a feltehet en sokak ltal o o ismert WINE-emultor elrhet BSD-ken is, gy szinte minden windows-os program, o amit a WINE kpes futtatni, fut a BSD-ken. Msrszt mindhrom BSD-nek ltezik Linux-emultora (szakszer en taln jobb u lenne szimultornak nevezni, s t mg ezt is lehetne ragozni), s ennek a kdnak a o segtsgvel Linux-alkalmazsok is futtathatk. S t, a hab a tortn, az egyel re zrt o o kd VMWARE segtsgvel Linux-emulcin fut VMWARE, abban esetleg Windows 2000 vagy Linux vagy ms. (s mivel a Linux-emultor kernel-szintu megvalsts, nem nagyon tapasztalhat az emultorokra jellemz lassuls.) NetBSD-n s FreeBSDo n ltezik nmileg korltozott kpessg SCO UNIX, s elg jl hasznlhat Solaris u 108

LME

GNU/Linux Konferencia

emulci is, OpenBSD-n sajnos nem tudom. A nem PC-platformokon az adott vas eredeti gyrtja ltal fejlesztett oprendszer alkalmazsainak futtatsa tbb-kevsb megoldott (pl. Alpha-kon Tru64-es alkalmazsok.) Jelenleg a FreeBSD az egyetlen, mely tbb processzor hasznlatt tmogatja. A hamarosan megjelen 5.0-s sorozat egyik leglnyegesebb vltoztatsa az ehhez kapcsoo ld rendszerrszekben tallhat. Termszetesen mind a NetBSD, mind az OpenBSD fejleszt k clkit zsei kztt szerepel. o u

2.9. Csomagkezels
Ez a BSD-rendszerek egyik nagy er ssge. FreeBSD s OpenBSD alatt az elnevezo sek megegyeznek, mg a NetBSD egy nmileg eltr (taln mg logikusabb) elnevezst o hasznl. A rendszer szerves rszt kpezo programokon kvl ktfle, azonnal (vagy minimlis er fesztssel) elrhet szoftver ltezik. Az els t csomagnak (package) hvo o o jk. Ez gyakorlatilag a klnbz o Linux-terjesztsek rpm vagy deb csomagjaival megegyez kategria. Ez .tar.gz formj, amelyben valamely program futshoz szksges o fjlok tallhatk, a futtathat, a segdprogramok, a csak hozz tartoz knyvtrfjlok, a dokumentci, stb. A csomagfjlban az adatok a rendszerbeli katalgusstruktrjuknak megfelel formban tallhatk. Ezen kvl specilis nev adatfjlokban nhny, a o u csomag kezelsvel kapcsolatos informci: a telepts el tt, vagy utna vgrehajtand o m veletek; mely ms csomagok meglte szksges; illetve milyen fjlok tartoznak a u csomaghoz ez az informci pldul a csomag eltvoltshoz szksges. Ha egy csomagot flteleptek, akkor a m kdshez szksges egyb csomagokat is automau tikusan flrakja a csomagkezel . A csomagkezel helyben, vagy URL-lel adott, ftp o o protokollal elrhet csomagot kpes telepteni. o A msik lehet sg FreeBSD-ben s OpenBSD-ben port, NetBSD-ben pedig a soko kal logikusabb csomagforrs (package source, pkgsrc) nvre hallgat. (NetBSD-n port nak a rendszer klnbz o vasakon fut verziit nevezik azaz van ARM-port, meg Alpha-port, de az mgetty elrhet csomag, s csomagforrs formjban is.) o Ez egy adott programnl egy kicsi, normlis esetben csak 5-10 fjlt tartalmaz katalgusstruktra. Az itt tallhat fjlok tartalmazzk a program felptshez szksges esetleg letltendo fjlok nevt, forrsnak helyt, a letlts mdjt ftp/http, s a forrsprogrambl a vgrehajthat el lltshoz szksges utastsokat. Ha valamio lyen szmunkra szksges program el fordtott binris csomagknt nem ltezik, akkor o teleptse sszesen kt utastst ignyel: # cd /usr/ports/audio/mpg123 # make install Ez el szr letlti a forrst (illetve ha a forrs mr rendelkezsre ll, s megfelel o o helyen van ez FreeBSD alatt pl. a /usr/ports/distles knyvtr , akkor a letlts elmarad), a letlts utn kicsomagolja egy tmeneti knyvtrba, a program fordtshoz esetleg szksges javtsokat automatikusan elvgzi, lefuttatja a ./congure-t (s javt a vgeredmnyen), ha erre szksg van, lefordtja a lerfjlokban szerepl bellto soknak megfelel en, fltelepti a rendszerbe, elkszt egy csomaglert (hogy ks bb a o o csomagkezel parancsokkal lehessen kezelni), s ksz. Mivel gy a fordts szemete a o rendszerben marad, ltalban e helyett a # make install clean javasolt. Ez takart is maga utn. Ha valakit zavar, hogy a letlts, a foltozs, a fordts rendszergazdai jogokkal trtnik, akkor lehet: 109

LME

GNU/Linux Konferencia

$ $ $ #

cd /usr/ports/audio/mpg123 make all su(do) make install clean

formban is. Tovbbi lehet sgknt lehet csak a letltsig, vagy csak a foltozsig o menni a: $ make fetch $ make patch parancsokal. Ez utbbi els sorban olyankor javasolt, ha valaki sajt belltsokkal o szeretn fordtani, nem pedig azokkal, melyeket az adott csomag elkszt je jnak lt. o Termszetesen a lerkban a portok esetn is megtallhatk a klnbz o fggosgek, gy egy csomag el lltsa minden esetben fltelepti a program hasznlathoz o szksges egyb szoftvereket. Mint az vrhat, ezeket a fggosgeket a rendszer szmon tartja, gy a csomagkezel parancsok szablyos hasznlatakor nem llhat el az, o o hogy leszednk egy feleslegesnek tlt programot, amelyre egy msiknak szksge van. (FreeBSD alatt van kt furcsa csomag: KDE s GNOME, ezek olyan csoma gok, melyek egyedl csomagfgg osgeket tartalmaznak, gy egyszerustve ezeknek a rendszereknek a teljes s konzisztens teleptsst.)

2.10.

Kernel

A BSD rendszerek kernelje monolitikus. Hasonlan a Sun, Compaq, HP vagy ppen Linux rendszerekhez, BSD alatt is lehet un. modulokat hasznlni. Ezt NetBSD s OpenBSD alatt az LKM (Loadable Kernel Module), mg FreeBSD alatt az ennl egy fokkal tbbet nyjt KLD (Kernel Loadable Driver?) nvre hallgat szolgltats nyjtja. A rendszer bizonyos paramterei a kernel jrafordtsval, msok az un. sysctl mechanizmus segtsgvel, futs kzben vltoztathatk. Ez utbbi Linux-alatt is ltezik, de BSD-k alatt nem a /proc matatst jelenti a sysctl. Ltezik egy szolgltats, amely legalbbis nv alapjn szintn ismer s lehet: gy o hvjk, security level (vdelmi szint). Ez egy kernel vltozn kersztl szablyozhat (termszetesen sysctl-lel), ezt a vltozt mg a rendszergazda is csak nvelheti, cskkenteni nincs joga. Ennek a szintnek a belltsai sok, a rendszer biztonsgra veszlyes m veletet tiltanak. Adott szint fltt, a rendszergazdnak nincs joga a fjl-jelz ket u o trlni (chags), nincs joga a csomagsz r szablyrendszern vltoztatni, a diszk periuo frikhoz kzvetlenl hozznylni, s hasonlk. Ezen lehet sgek fktelen hasznlato val el lehet lltani igen biztonsgos, de f knt kezelhetetlenl nehzkes rendszereket o o ezeket feltrni aztn a valdi hozzrto szmra szinte kihvs lesz, de ktsgtelen, hogy napjaink tlag cracker-je valszn leg csak bambn nz. u

2.11.

Napraksz BSD-k

Mivel a BSD-k elgg szorosan sszetartoznak tekintik a kernelt, a rendszerknyvt rakat s a klnbz o felhasznli programokat, ezrt a klnbz o j verzik elrsre is kialakult egy viszonylag egysges mechanizmus. Nincs olyan, hogy izgatottan vrjuk a legjabb kernelt, esetleg az j libutils csomagot, s csak ezeket frisstjk. Az egsz rendszer CVS (Concurrent Versioning System) fban troldik, s gyakorlatilag

110

LME

GNU/Linux Konferencia

az egsz rendszert egyszerre lehet csak frissteni. Ebb l kvetkez en nem sok esly o o van arra, hogy frisstjk egy adott funkci kernelbeli rszt, de megfeledkeznk a felhasznli rtegr l. A BSD-knl hasonlan a Linux-kernelhez prhuzamosan kt o fejlesztsi g ltezik. A fejleszt i g (Current) tartalmazza az jdonsgokat, ez vihao ros tempban szokott vltozni, id nknt teljesen hasznlhatatlan gyakorlatilag csak o akkor javasolt hasznlni, ha valakinek van r kln lete. A stabil vltozat lassabban halad, ide a fejleszt i gban mr stabilnak min sl dolgok kerlnek, pr hetes, hnao o o pos tesztels utn. A stabil gat egy adott pillanatban befagyasztjk, ilyenkor kizrlag a mr benne lev dolgok javtsa kerl bele, majd tnak engedik az ekkor release-nek o nevezett vltozatot. Ez ltalban CD-n megvsrolhat, illetve CD-image formjban letlthet . Nha kisebb mret rszekre sztszedett formban is hozz lehet jutni. o u

3. BSD-k hasznlata a vilgban s itthon


The Matrix Walnut Creek CDROM/Wind River a vilg legnagyobb forgalm ftp-szervere FTPSEARCH Yahoo! IPv6 magyar hl FTP.FSN.HU Magyarorszg valszn leg legnagyobb szabadszoftver szervere u c3 (freemail) Datanet Matv Axelero (MatvNET)

3.1. BSD-k elrhet sge o


WWW.FreeBSD.ORG WWW.NetBSD.ORG WWW.OpenBSD.ORG . . . s ezek WWW.orszgrvidts.xxxBSD.ORG -formja: pl. WWW.HU.FreeBSD.ORG WWW.xxxBSD.HU WWW.BSD.HU

111

112

Biztonsgos chroot kialaktsa GNU/Linux Opercis rendszeren


Zmb Marcell 2001.08.30.
Kivonat Az el ads clja rszletesen bemutatni egy, a Unix rendszereken rendelkezsre ll o chroot rendszerhvs, rpl alkalmazs, illetve a hozztartoz krnyezet biztono sgos kialaktst, hasznlatt.

Tartalomjegyzk
1. Mi az a chroot? 2. A chroot alkalmazs biztonsgos hasznlata 3. Chroot krnyezet kialaktsa 4. Szksges knyvtrszerkezet kialaktsa 5. Alkalmazsok, rendszerknyvtrak (libek) 6. Jogosultsgok, mount opcik 7. Chrootok fajti 8. Kls krnyezet o 9. Mi ellen nem vd a chroot? 10. Egyb megoldsok 114 114 114 115 115 115 116 116 117 117

113

LME

GNU/Linux Konferencia

1. Mi az a chroot?
A mindennapokban a chroot ltalban valamilyen npszerubb nevn jelenik meg, pl dul: jail, sandbox, subsystem s gy tovbb. Chroot alatt ltalban hrom dolgot szoktunk rteni: - a chroot rendszerhvst [1]

- a chroot alkalmazst [2] - illetve a chroot krnyezetet.

A chroot rendszerhvs feladata a gykrknyvtr megvltoztatsa, a chroot alkalmazs pedig ehhez a feladathoz nyjt egy egyszeru felletet. Ha nem programozi szemmel vizsgljuk a krdst, gyakorlatilag az els kett egynek tekintheto. o o Eredetileg az init hasznlta a gykrknyvtr belltsra, ez a feladata ma mr megsz nt, inkbb mint lehetsges biztonsgi kiegszts tlti be feladatt. u A chroot alkalmazs legalbb egy paramtert vr, ez az j gykrknyvtr elrsi tja, msodik paramterknt a futtatand parancsot vrja, amennyiben ez nincs megadva, gy a SHELL krnyezeti vltozban tallhat belltst prblja meg futtatni, ha nincs SHELL krnyezeti vltoz, ebben az esetben a /bin/sh-t ksrli meg futtatni. A chroot rendszerhvshoz, gy a chroot alkalmazshoz is rendszergazdai jogosultsg (de legalbb cap_chroot [3]) szksges. A chroot ltal megvalstott vdelem alapja a lerendszer szint levlaszts: a futu tatni kvnt alkalmazs, alrendszer krl egy kell en kicsiny, minimlis krnyezetet o lehet kialaktani, amely nem tartalmaz felesleges alkalmazsokat, hibalehetosgeket.

2. A chroot alkalmazs biztonsgos hasznlata


cd /new chroot . /bin/ls Fontos: A gykrknyvtr vltsa el tt clszer az aktulis knyvtrt az j gyo u krre (vagy az al) lltani, ellenkez esetben elg egyszeru mdon ki lehet jutni a rgi o gykrbe. (chroot break [4] )

3. Chroot krnyezet kialaktsa


- ldd [5] Megmutatja az ELF formtum alkalmazsok rendszerknyvtrakhoz (libekhez) val fggst, pl.: ldd /bin/bash - ld.so [6] Dinamikus fordt/betlt o alkalmazs, els dleges feladata a szksges o rendszerknyvtrak betltse a futtatni kvnt alkalmazs szmra. Ezen funkcija mellett azonban az ldd-hez hasonl feladatra is hasznlhat. Pl.: /lib/ldlinux.so.2 list /bin/bash - strace [7] Segtsgvel nyomon kvethet az adott alkalmazs m kdse vagy o u ppen nem m kdse, hasznos eszkz lehet ismeretlen alkalmazs jailesitsekor. u

114

LME

GNU/Linux Konferencia

4. Szksges knyvtrszerkezet kialaktsa


A chroot krnyezetekrol ltalban elmondhat, hogy a kvetkez knyvtrakat nagy o valszn sggel tartalmazzk: /bin /etc /lib /tmp /var, illetve ez alatt /var/run s gy u tovbb. A megvalstand krnyezett l fggoen szksgess, illetve feleslegess vlo hatnak knyvtrak, ezt az adott cl szabja meg. Ha az alkalmazs dokumentcijban emltett knyvtrakat ltrehozzuk a jailben, nagy valszn sggel ezt a problmt elu kerlhetjk. Amennyiben az alkalmazs mgsem m kdik tkletesen, gy a strace u segtsgvel ltalban kidertheto a hiba oka. Pl.: strace -o log -f /usr/bin/apache ...

5. Alkalmazsok, rendszerknyvtrak (libek)


rdemes odagyelni az alkalmazs ltal ignyelt llomnyokra, rendszerknyvtrakra, esetleges kiegszt alkalmazsokra, sok esetben a hasznlni kvnt eszkz kpessge o meghaladja az ltalunk vele szemben tmasztott ignyeket. Pldul mi csak egy egyszer statikus webszervert szeretnnk, de az apache ennl jval tbbet tud. Tapaszu taltabb unixosok megprblhatjk az ignyeknek megfelel re szabni az alkalmazs o tudsszintjt, vagy ha tkletess tenni nem is tudjk, legalbb a felesleges funkcikat eltvolthatjk az alkalmazsbl. (./congure [8] without-... disable-..., vagy vi main.c :) Egy alkalmazs fggosgeinek megismersre alkalmas eszkzk a fentebb bemutatott ldd s ld-linux.so. Fontos: sem az ldd, sem az ld-linux.so nem mutat meg bizonyos fggosgeket, ezek a fggosgek pedig az .n. nss (Name Service Switch) rendszerknyvtrak, ennek oka, hogy ezekre nem az alkalmazs hivatkozik, hanem maga a glibc [9].

6. Jogosultsgok, mount opcik


ltalban olyan alkalmazsokat helyeznk jailbe, melyek biztonsgos m kdsben u nem bzunk tlsgosan, ezrt is clszer minden eszkzzel nvelni a jailen belli bizu tonsgot. Nhny tlet ennek megvalstsra: Chmod [10]: - ltalban sem a knyvtraknak, a jailen belli alkalmazsoknak, rendszerknyvtraknak (libeknek) nem kell olvashatnak, listzhatnak lennie. - Az irhat le-ok, knyvtrak ne legyenek olvashatak.

Chattr [11]: - A jailen bell a csak olvashat/futtathat llomnyokra clszer u az immutable aget feltenni. - Az rhat llomnyok trlsnek megneheztsre jl hasznlhat az append only ag. Mount [12] opcik: - A chroot krnyezeten bell ne legyen set[ug]id llomny, az esetlegesen odakerl set[ug]id alkalmazsok futtatst a nosuid mount opcival meggtolhatjuk. o - A jailben eszkzle-t nem clszer tartani, mivel azok segtsgvel igen knnyen u ki lehet trni az elzrt krnyezetbol, az esetlegesen odakerl eszkzle-ok haszo nlatt a nodev opcival histhatjuk meg.

115

LME

GNU/Linux Konferencia

Ahhoz, hogy ezen opcikat hasznlhassuk, a chroot krnyezetet kln partcira kell elhelyezni. Egy nem csak jailben kvethet egyszeru szably alkalmazsval too vbb fokozhat a rendszer srthetetlensge: ahonnan fut alkalmazs, oda nem lehet rni, ahova lehet rni, onnan nem futhat alkalmazs. me: mount /dev/hdc1 -o nodev,nosuid,ro /jail/exec mount /dev/hdc2 -o nodev,nosuid,noexec,rw /jail/write Fontos: a noexec opci elg knnyen megkerlheto az ld-linux.so hasznlatval, pl: /lib/ld-linux.so /jail/write/bash

rdekessg: chroot krnyezet ksztsekor rdemes elgondolkodni a statikusan fordtott alkalmazsok hasznlatn. (gcc [13])

7. Chrootok fajti
ltalban ktfle chroot krnyezetet alkalmaznak jelenleg. Az els , amikor az alkalo mazs a chroot krnyezeten kvlrol indul, majd adott feladatok elvgzse utn a jailen bell tevkenykedik (szp magyarsggal bechrootol). A msodik forma, amikor az alkalmazs mr eleve a chroot krnyezetben kezdi meg m kdst. Mindkt esetnek megvannak az el nyei, illetve htrnyai. Az els u o o esetben a futtatott alkalmazs s annak indt/bellt llomnyai nincsenek a jailben, gy a tmad nem tudja azokat megszerezni, azonban a chroot m velet elvgzsnek u sikeressge az alkalmazstl fgg. A msodik esetben az alkalmazsnak nincsen szksge a chroot elvgzshez, azonban az indtshoz, valamint futtatshoz szksges valamennyi llomny megtallhat a jailben.

8. Kls krnyezet o
A chroot krnyezet kialaktshoz hozztartozik annak elhelyezse valamely m kdo u rendszeren. Ez is legalbb akkora krltekintst ignyel, mint az el z feladatok. No o hny ezen feladatok kzl. Syslog [14]. Ha tudni szeretnnk, mi trtnik a jailen bell, valamilyen formban ki kell onnan juttatni a naplbejegyzseket, semmi esetre se vlasszuk a jailen belli le-ba trtno naplzst, mivel a jail esetleges tmadhatsga esetn a napl trlheto/mdosthat lesz. Clszer bb megolds a syslogd unix socketen u vagy hlozaton keresztli hasznlata. (Esetleg egy chrootolt syslogd :) Ulimitek [15]. Ha nem szeretnnk, hogy a jailben fut alkalmazs teljes egszben magval rnthassa rendszernket, gy clszer a PAM ltal nyjtott er forrsu o korltozst alkalmazni [limits.conf]. (rdekes krds a jailen bell hasznlt uid krdse is, azaz hogy a jailen bell hasznlt uid ltezzen-e a kls rendszeren.) o Indt/lellt [16] scriptek. Ezek mdostsa ltalban nem tl nehz feladat, azonban rdemes tbb id t sznni rjuk. (Nzzk csak meg egy chrootolt alkalo mazs krnyezeti vltozit: Pl.: cat /proc/[chroot-olt-alkamazs-pid]/environ)

116

LME

GNU/Linux Konferencia

9. Mi ellen nem vd a chroot?


Sajnos szmtalan ilyen dolog van, de ezen problmk egyb megoldssal jrszt kisz ru het ek, illetve kockzatuk cskkenthet . Kt csoportra bontva, ha rootknt (sic!), vagy o o ha norml felhasznlknt fut az alkalmazs. Az els esetben mondhatni semmit l o o sem vd, amennyiben az alkalmazs rvehet valamilyen mdon kls kd futtatsra, o o gy nagyon nehz azt megvdeni brmit l is. Norml felhasznlknt fut alkalmao zs esetn j esllyel megvdi rendszernket a kls tmadstl, itt rendszer alatt ne a o chrootot rtsk, hanem az azt befogad hostot. Nhny veszly [17], ami ellen tnyleg nem vd: Stack exec, ptrace, shm, localhoston gyel alkalmazsok elrhet sge, o o er forrsok. . . o

10.

Egyb megoldsok
- hap [18] patch - capability tools: lcap [19], lids [20]

Egyb megoldsok/kiterjesztsek a chroot biztonsgnak nvelsre:

Hivatkozsok
[1] man 2 chroot [2] man 8 chroot [3] ftp://ftp.guardian.no/pub/free/linux/capabilities/capfaq.txt [4] chroot break: http://www.bpfh.net/simes/computing/chroot-break.html [5] man 1 ldd [6] man 8 ld.so [7] man 1 strace [8] http://www.gnu.org/software/autoconf/autoconf.html [9] http://www.gnu.org/software/glibc/ [10] : man 1 chmod [11] : man 1 chattr [12] man 5 fstab [13] http://gcc.gnu.org [14] man 8 syslogd [15] http://www.kernel.org/pub/linux/libs/pam/, man limits.conf [16] man start-stop-daemon

117

LME

GNU/Linux Konferencia

[17] http://www.theaimsgroup.com/hlein/hap-linux/ [18] http://www.theaimsgroup.com/hlein/hap-linux/ [19] http://www.netcom.com/spoon/lcap/ [20] http://medusa.fornax.sk/

118

LME

GNU/Linux Konferencia

Jegyzetek

119

LME

GNU/Linux Konferencia

Jegyzetek

120

Anda mungkin juga menyukai