Download as pdf or txt
Download as pdf or txt
You are on page 1of 141

Hadarics Klmn

A Debian GNU/Linux, mint Hlzati opercis rendszer

2009

Tartalomjegyzk
1. Jogi nyilatkozat, tmogats....................................................................6 2. Bevezets............................................................................................7 3. A Debian GNU/Linux..............................................................................8 3.1. A disztribci eredete s jellemzi.....................................................8 3.2. A Debian szabad szoftverekre vonatkoz irnyelvei (Debian Free Software Guidelines DFSG)...................................................................8 3.3. Trsadalmi szerzds a Szabad szoftver kzssggel.........................9 3.4. Debian - Az univerzlis opercis rendszer........................................10 3.5. A Debian GNU/Linux verzii............................................................10 4. A Debian GNU/Linux teleptsi folyamata................................................12 4.1. Elkszlet a teleptsre.................................................................12 4.1.1. A teleptshez szksges informcik.........................................12 4.1.2. A telepts clja......................................................................13 4.1.3. A Debian GNU/Linux 5.0 ltal tmogatott architektrk................13 4.2. A telepts mdszerei.....................................................................14 4.2.1. A telept CD/DVD-k fajti........................................................15 4.3. A telept program indtsa.............................................................15 4.4. A telepts lpsei.........................................................................16 4.5. A telept CD felptse..................................................................17 4.6. A Debian GNU/Linux csomagkezelse...............................................17 4.6.1. A csomagok fajti, a csomagnv felptse.................................17 4.6.2. A csomagok egymshoz val viszonya, llapotaik........................19 4.6.3. A csomagkezels szempontjbl fontos knyvtrak, fjlok............20 4.6.4. A csomagkezels parancsai......................................................23 5. A diszk adminisztrci s parancsai........................................................29 5.1. A diszkkezels s lehetsgei..........................................................29 5.2. A Szoftveres RAID (md).................................................................30 5.3. Az LVM........................................................................................33 5.4. Egy RAID1-et, illetve LVM2-t egyttesen hasznl rendszer teleptse. .36 5.5. A diszk particionls s a fjlrendszer ltrehozs...............................38 5.5.1. A diszk particionls................................................................38 5.5.2. A fjlrendszer ltrehozs..........................................................39 5.6. A fjlrendszerek ellenrzse s csatlakoztatsa.................................41 5.6.1. A fjlrendszer ellenrzse.........................................................41 5.6.2. Fjlrendszer csatlakoztatsa.....................................................41 5.7. A fjlrendszerek tmretezse........................................................43 5.7.1. Fjlrendszer mretnek a nvelse............................................43 5.7.2. Fjlrendszer mretnek a cskkentse.......................................44 5.8. A fjlrendszerekhez kapcsold konfigurcis fjlok...........................44 6. Sajt kernel fordtsa...........................................................................47 6.1. Elkszletek a kernel fordtshoz..................................................47 6.1.1. Mikor szksges kernelt fordtani?.............................................47 6.1.2. A kernel fordts szksgletei...................................................48 6.1.3. A kernel forrs elksztse s foltozsa.....................................49 6.2. A hardver eszkzk s szoftver szksgletek vizsglata......................50 6.2.1. A VMware virtulis gp hardver paramterei...............................50 6.3. A kernel konfigurlsa....................................................................52
3

6.3.1. A konfigurls lehetsgei s a hasznlt jellsi mdok................52 6.3.2. A konfigurls menpontok szerint............................................54 6.4. A konfigurls nhny fontos belltsa............................................63 6.5. Fordts elzetes konfigurci alapjn..............................................64 6.6. Kernel fordts Debian mdra.......................................................67 7. Felhasznl adminisztrci s a PAM......................................................68 7.1. A felhasznl adminisztrci parancsai.............................................68 7.2. A PAM (Pluggable Authentication Modules)........................................71 8. A TCP/IP alap hlzat belltsa...........................................................75 8.1. A hlzati bellts folyamata..........................................................75 8.2. A hlzati belltsa a /etc/network/interfaces alapjn........................76 8.3. A hlzat belltshoz kapcsold parancsok...................................77 8.4. A nvfelolds konfigurcija............................................................79 8.5. A hlzat mkdsnek tesztelse...................................................80 8.6. A hlzat megfigyelshez kapcsold parancsok..............................81 9. A hlzati biztonsgrl dihjban...........................................................85 10. Fontosabb hlzati szolgltatsok Debian GNU/Linux opercis rendszerben .............................................................................................................87 10.1. Az OpenSSH...............................................................................87 10.1.1. Az SSH protokolljai................................................................88 10.1.2. Az SSH fontosabb hitelestsi lehetsgei.................................89 10.1.3. Az SSH-hoz kapcsold fontosabb parancsok............................89 10.1.4. Az SSH kiszolgl nhny konfigurcis lehetsge....................90 10.1.5. Az SSH kliens hasznlata........................................................91 10.1.6. Fjltvitel scp s sftp hasznlatval.........................................92 10.2. Web szerver hasznlata Linuxon....................................................93 10.2.1. Az Apache jellemzi...............................................................93 10.2.2. Az Apache teleptse forrskdbl............................................94 10.2.3. Az Apache knyvtrai s parancsai..........................................95 10.2.4. Az Apache nhny konfigurcis direktvja..............................97 10.2.5. A Debian csomagban elrhet Apache 2.2 teleptse................104 10.3. FTP szerver hasznlata Debian GNU/Linux opercis rendszerben.....105 10.3.1. Az FTP protokoll fontosabb jellemzi......................................105 10.3.2. A ProFTPD (Professional File Transfer Protocol Daemon) jellemzi .....................................................................................................106 10.3.3. A ProFTPD nhny konfigurcis direktvja............................107 10.4. A Samba...................................................................................111 10.4.1. A Samba legfontosabb jellemzi............................................111 10.4.2. A Samba nhny konfigurcis direktvja..............................113 10.5. A MySQL...................................................................................117 10.5.1. A MySQL szerver legfontosabb jellemzi.................................118 10.5.2. A MySQL szerver teleptse binris archvumbl.......................118 10.5.3. A MySQL knyvtrai s parancsai..........................................119 10.5.4. A MySQL nhny konfigurcis direktvja..............................119 10.5.5. A MySQL jogosultsgi rendszere............................................121 10.5.6. Adatbzis mentse s visszalltsa MySQL-ben.......................124 10.6. Levelez szerver hasznlata Linuxon............................................124 10.6.1. Az e-mail kldssel kapcsolatos fogalmak s problmk............124 10.6.2. Az Postfix...........................................................................125 10.6.3. A Postfix nhny konfigurcis direktvja...............................128
4

10.6.4. A Postfix adminisztrcis parancsai........................................129 10.7. Tzfal hasznlata Linuxon...........................................................130 10.7.1. A tzfalak ltalnos jellemzi, tpusaik, elvek..........................130 10.7.2. A kernel szint tzfal...........................................................131 10.7.3. Az iptables parancs hasznlata, paramterei...........................134 10.7.4. A tzfal mkdshez szksges kernel opcik........................140 11. Irodalomjegyzk..............................................................................141 11.1. Knyvek, kiadvnyok.................................................................141 11.2. Internetes hivatkozsok..............................................................141

1. Jogi nyilatkozat, tmogats


Hadarics Klmn, mint szerz nyilatkozom, hogy ez a m a sajt tapasztalatom s munkm eredmnye, a benne foglaltak senkinek a szerzi jogait nem srtik. Ezen m (jegyzet) a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Licence (CC-BY-NC-SA) felttelei szerint rhet el s terjeszthet. A licence elrhet a http://creativecommons.org/licenses/by-nc-sa/3.0/legalcode webcmen. A magyar nyelv magyarzata tbbek kztt megtekinthet a: http://creativecommons.org/licenses/by-sa/3.0/deed.hu http://hu.wikipedia.org/wiki/CC#Creative_Commons-licencek webcmeken. A jegyzettel kapcsolatban mindenfle pt jelleg kritikt, szrevtelt, szvesen fogadok a kami@mail.duf.hu e-mail cmen. Amennyiben j gondolod, hogy ez az ismeretanyag, amit ezen mben megkaptl rtkes, krlek a lehetsgeidhez mrten tmogass. Az gy befolyt sszeget ezen ismeretanyag bvtsre, korszerstsre fogom fordtani. Amennyiben tmogatni szeretnl, akkor ltogass el a http://kami.duf.hu/debian_jegyzet weboldalra. Itt lesznek informcik arrl, hogy a tmogatsodat hogyan juttathatod el hozzm. A tmogatssal kapcsolatban szintn rdekldhetsz a kami@mail.duf.hu email cmen. Az elz webcmen a jegyzet aktualizlt kiadsai szintn elrhetek lesznek. Elre ksznm mindenkinek a tmogatst, j kedvet az olvasshoz, sok sikert az letben, s kssn mindenki j bartsgot a Debian GNU/Linux opercis rendszerrel. Dunajvros, 2010.10.13. Hadarics Klmn kami@mail.duf.hu

2. Bevezets
A Debian GNU/Linux opercis rendszer az egyik legrgebbi Linux terjeszts. Nagyon sok helyen elszeretettel hasznljk hlzati szolgltatsok, hlzat menedzselsi feladatok elltsra. Ezen m elssorban olyan informatikus hallgatknak s olyan szemlyeknek szl, akik mr rendelkeznek tapasztalatokkal, hasznltak mr desktop opercis rendszerknt Linuxot. A jegyzetben gyakorlati, rendszeradminisztrtori szempontbl igyekszem bemutatni a Debian GNU/Linuxot s nhny elterjedt hlzati szolgltatst. Felttelezem, hogy az olvas rendelkezik ltalnos ismeretekkel a szmtgp hlzatokrl s a TCP/IP alap kommunikcirl. Mivel a Linux a ltt a szmtgp hlzatoknak ksznheti, ezrt ezt gy igyekszik meghllni, hogy mindenfle hlzati feladathoz kszlnek alkalmazsok. Ezen alkalmazsok szma akkora, hogy bemutatni mindet s ezeknek a lehetsgeit remnytelen vllalkozs lenne. A jegyzet felptst tekintve tbb egymstl rszben fggetlenthet rszt tartalmaz. Az els rszben a Debian GNU/Linux verzit, irnyelveit mutatom be. Ez utn kvetkezik teleptsnek folyamatnak az ttekintse s a csomagkezel struktrjnak s parancsainak a bemutatsa. Egy rendszer megbzhat mkdsnek s rugalmassgnak alappillre a jl megvlasztott diszk kezelsi mdszer. Fontos az adatok redundns trolsa, az adatok elrsnek sebessge s az egyes partcik tmretezhetsge. Ebben a fejezetben a szoftveres RAID s a LVM lehetsgeit s parancsait mutatom be. A Linux opercis rendszer magjnak, a kernelnek az ismerete is nagyon fontos a rendszer mkdse szempontjbl. A jegyzetben bemutatom a kernelfordts folyamatt s fbb konfigurcis opcikhoz magyarzatokat fzk. A fejezet tolvassa utn kpesnek kell lenni egy gp esetben mkd kernel fordtsra. A telepts s a kernelfordts utn rviden ismertetem a PAM lehetsgeit s a felhasznlk adminisztrcijt. A tovbbiakban pedig a TCP/IP alap hlzat belltsnak bemutatsval folytatom. A jegyzetben nhny hlzati szolgltatst emeltem ki, amelyeket rszletesen bemutatok a konfigurlssal egytt. A szolgltatsok vlasztsnl figyelembe vettem az egyes programok npszersgt s termszetesen a szemlyes tapasztalataimat is. Igyekszem az alkalmazsokat a gyakorlati oldalrl megkzelteni s a biztonsgi szempontbl fontos aspektusokat kln hangslyozni. Az alkalmazsok esetben ltalban nem a telepts a legizgalmasabb krds. Nagyon sok esetben csomagbl az egyes alkalmazsok telepthetek. Sokkal rdekesebb krds, hogy az alkalmazsok hogyan tudnak egyttmkdni, milyen lehetsgek vannak arra, hogy egyttesen ellssk egy informatikai rendszer feladatait. A jegyzet tartalma alapjn, remlem mindenki kpes lesz a hlzat s a hlzati szolgltatsok teleptsre Debian GNU/Linux opercis rendszerben. Kpesek lesznk Linux alap rendszerek teleptsre, menedzselsre, integrcijra. Ezen a terleten is rvnyes a nvszerverek esetben hasznlt elv, hogyha nem tudok valamit, akkor megkrdezem attl, aki tudja vagy csinlt mr ilyet. Fontos dolog, hogy ha valami nem mkdik elsre, prbljunk meg a hiba okra rjnni (sok esetben a Google segthet) s megtallni r a megfelel megoldst. A logikus, kvetkezetes gondolkodst elsajttva, problmamegold kpessgnket tovbbfejlesztve kpesek lesznk a Linux tetszleges md hasznlatra.

3. A Debian GNU/Linux
3.1. A disztribci eredete s jellemzi
A Debian a legkorbbi Linux disztribcik egyike. 1993 augusztusban Ian Murdock indtotta tjra a GNU szellemben. A projekt nevt a felesg (Debora) neve utn kapta. A Deb s a Ian sszekapcsolsbl szletett meg a Debian nv. A disztribci jelenleg a legnagyobb nem kereskedelmi terjesztsek kz tartozik. Legfontosabb jellemzi: teljesen ingyenes s sajt szabad szoftver irnyelvekkel rendelkezik szmtalan nkntes fejleszt tartja karban fejlett csomagkezel rendszerrel rendelkezik s sok binris formban elrhet csomaggal (kb. 22600 az 5.0 esetben) a felhasznlkkal val viszonyt a Debian trsadalmi szerzds rja

3.2. A Debian szabad szoftverekre vonatkoz irnyelvei (Debian Free Software Guidelines DFSG)
1. Szabad terjeszts A Debian sszetevinek licence senkit sem korltozhat abban, hogy a szoftvert klnbz forrsokbl szrmaz programokbl felptett szoftverdisztribcik sszetevjeknt eladja vagy tovbbadja. Az ilyen jelleg eladsokra vonatkozan a licenc semmifle szabadalmi vagy egyb dj megfizetst nem kvetelheti meg. 2. Forrskd A programnak tartalmaznia kell a forrskdot, s a lefordtott vltozat mellett engedlyeznie kell a forrskd terjesztst is. 3. Leszrmazott munkk A licencnek lehetv kell tennie a mdostsokat s leszrmazott munkk ksztst, s engedlyeznie ezek terjesztst az eredeti szoftver licencvel megegyez licenc hatlya alatt. 4. A szerz forrskdjnak srtetlensge A licenc korltozhatja a forrskd mdostott forminak terjesztst, de csak abban az esetben, ha emellett lehetv teszi patch fjlok egyttes terjesztst a forrskddal, amelynek segtsgvel a program mdostsa elvgezhet a fordts sorn. A licencnek kifejezetten engedlyeznie kell a mdostott forrsbl sszelltott szoftver terjesztst. A licenc megkvetelheti, hogy a leszrmazott munkk neve vagy verziszma az eredeti szoftvertl eltrjen. (Ez egy kompromisszum. A Debian csoport arra buzdt minden szerzt, hogy ne korltozzk se a forrs-, se a binris fjlok mdostst.) 5. Mentessg a szemlyekkel vagy csoportokkal szembeni diszkrimincitl A licenc semmilyen szemllyel vagy csoporttal szemben nem alkalmazhat megklnbztetst. 6. Mentessg a felhasznlsi terletekkel szembeni diszkrimincitl A licenc senkit nem korltozhat abban, hogy a programot egy adott felhasznlsi terleten alkalmazza. Pldul nem korltozhatja egy adott
8

program zleti vagy gnkutatsban val felhasznlst. 7. Licenc terjesztse A programra vonatkoz jogoknak gy kell vonatkoznia mindenkire, akik hozzjutnak a programhoz, hogy ne legyen szksg tovbbi licenc elfogadsra. 8. A licenc nem lehet a Debianra jellemz A programra vonatkoz jogok nem fgghetnek attl, hogy a program a Debian rsze vagy sem. Ha a programot a Debian rendszertl elklntve hasznljk fel vagy terjesztik, de ez a programlicencnek megfelel mdon trtnik, akkor a programhoz hozzjutk mindegyiknek azonos jogokkal kell rendelkeznie azokhoz kpest, akik a Debian rendszerrel egytt jutottak a programhoz. 9. A licenc nem rinthet ms szoftvereket A licenc nem tartalmazhat a licenc szoftverrel egytt szlltott szoftverekre vonatkoz korltozsokat. Pldul a licenc nem hatrozhatja meg, hogy a vele azonos adathordozn tallhat programok mindegyiknek szabad szoftvernek kell lennie. 10. Pldalicencek A GPL, a BSD s az Artistic licenceket szabad licencnek tekintjk.

3.3. Trsadalmi szerzds a Szabad szoftver kzssggel


1. A Debian 100%-ig szabad szoftver marad Meggrjk, hogy a Debian GNU/Linux disztribcit megtartjuk teljes egszben szabad szoftvernek. Mivel a szabad szoftver kifejezsnek tbbfle rtelmezse is van, a ksbbiekben azt is felvzoljuk, hogy milyen irnyelvek segtsgvel dntjk el a szoftverekrl, hogy szabad szoftverek-e. Tmogatjuk azokat a felhasznlkat, akik Debian disztribcin nem szabad szoftvereket fejlesztenek vagy hasznlnak, de a rendszer sohasem fog nem szabad szoftvertl fggeni. 2. Mindent visszajuttatunk a Szabad szoftver kzssgnek Ha j sszetevket runk a Debian rendszerhez, akkor ezeket szabad licenc hatlya al helyezzk. Mindig a lehet legjobb rendszer ltrehozsra treksznk, ezrt szabad szoftverek szles krben elterjedhetnek. A hibajavtsokat, tovbbfejlesztseket s felhasznli krseket eljuttatjuk a rendszernkben tallhat szoftverek illetkes szerzinek. 3. Nem rejtjk el a problmkat A teljes hibajelentsi adatbzisunk folyamatosan elrhet lesz a nyilvnossg szmra. A felhasznlk ltal elektronikusan leadott jelentsek azonnal lthatv vlnak msoknak. 4. A prioritst a felhasznlink s a szabad szoftverek jelentik A lpseinket a felhasznlink s a szabad szoftverek kzssge fogja irnytani, az rdekeiket helyezzk eltrbe. Tmogatjuk a felhasznlknak a tbbfle szmtstechnikai krnyezetben val mkdssel kapcsolatos ignyeit. Nem akadlyozzuk meg, hogy kereskedelmi szoftverek kszljenek a Debian rendszerekre, s azt is engedlyezzk msoknak, hogy a Debianbl s tovbbi kereskedelmi szoftverekbl rtk nvelt disztribcikat hozzanak ltre anlkl, hogy ezrt fizetnik kelljen. Ezen clok elrse rdekben 100%-ig szabad, kivl minsg szoftverekbl integrlt rendszert nyjtunk brmely olyan jogi korltozs nlkl, amely

megakadlyozn a disztribci ilyen jelleg felhasznlst. 5. A szabad szoftverekre vonatkoz szabvnyainknak nem megfelel programok Tudomsul vesszk, hogy bizonyos felhasznlinknak olyan programokra van szksgk, amelyek nem felelnek meg a Debian szabad szoftverekre vonatkoz irnyvonalaknak. Az ilyen szoftverek szmra hoztuk ltre az FTP archvumok contrib s non-free terleteit. Ezen knyvtrakban tallhat szoftverek nem rszei a Debian rendszernek, br be vannak lltva a Debian alatti hasznlathoz. A CD-gyrtknak ajnljuk az itt tallhat szoftvercsomagok licenceinek ttekintst annak meghatrozshoz, hogy terjeszthetik-e az adott szoftvert az ltaluk forgalomba hozott CD-ken. Ennek megfelelen, br a nem szabad szoftverek nem kpezik a Debian rszt, tmogatjuk hasznlatukat, s a nem szabad szoftvercsomagok szmra is biztostunk infrastrukturlis htteret (pldul a hibakvetsi rendszert s klnfle levelezsi listkat).

3.4. Debian - Az univerzlis opercis rendszer


A Debian projektben rsztvev szemlyek clja hogy egy szabadon hasznlhat opercis rendszert hozzanak ltre. A legtbb alapvet alkalmazs a GNU projektbl szrmazik. A Debian jelenleg a Linux kernel kr pl. ppen ezrt, amikor az opercis rendszerre hivatkozunk, helyesebb, hogyha Debian GNU/Linuxnak mondjuk. A Debian fejleszts azonban nem korltozdik kizrlag a Linux kernel kr. Vannak pldul a Hurd mikrokernelre (Debian GNU/Hurd), vagy a NetBSD kernelre (Debian GNU/NetBSD) alapul fejlesztsek is. Amikor Debiant mondunk, akkor ltalban a Debian GNU/Linuxra gondolunk.

3.5. A Debian GNU/Linux verzii


A Debian verzikat a verziszm mellett egy kdnvvel (fantzianvvel) is jellemezhetjk (az 1.0 kivtelvel). Ezek a kd nevek a Toy Story cm animcis filmbl erednek.
A Debian GNU/Linux verzii s kd neveik: 1. sz. tblzat Verzi 1.0 1.1 1.2 1.3 2.0 2.1 2.2 3.0 3.1 4.0 5.0 6.0 Megjelens ideje 1995 1996 jnius 1996 december 1997 jnius 1998 jlius 1999 mrcius 2000 augusztus 2002 jlius 2005 jnius 2007 prilis 2009 februr ? 10 Kdnv Buzz Rex Bo Hamm Slink Potato Woody Sarge Etch Lenny Squeeze

Verzi -

Megjelens ideje -

Kdnv Sid

A Debian a terjesztsek esetben a kvetkez elnevezseket is hasznlja: stable: a mindenkori stabil vltozat (jelenleg a Lenny), amely hasznlata ajnlott. A kiadst egy hossz tesztelsi fzis elzi meg. Nem minden esetben tartalmazza a legjabb programokat. testing: a tesztels alatt lv vltozat (jelenleg a Squeeze). Ide kerlnek azok az alkalmazsok, amelyek a kvetkez stabil disztribciban benne lesznek. unstable: a legfrissebb programokat tartalmazza. (Sid a kdneve, amely nem vltozik.) Egyltaln nem garantlt, hogy az alkalmazs mkdni is fog. Tapasztalt felhasznlknak ajnlott. oldstable: amikor megjelenik egy j stabil kiads, akkor a korbbi stabil kiadst jelenti Ezek az elnevezsek a gyakorlatban szimbolikus linkeket jelentenek. A linkek pedig a kdnvvel megegyez nev knyvtrra mutatnak. A verzi vltozs (j, stabil megjelense) csak szimbolikus link lltst kvetel meg. Van arra is lehetsg, hogy n. kevert Debian disztribcit hasznljunk. Ez annyit jelenthet pldul, hogy bizonyos csomagokat a stabil verzibl, mg msokat a testing, vagy az unstable verzibl hasznlunk. Ebbl elg sok fggsgi problma addhat, hiszen ltalban az egyes kiadsok klnbz GLIBC verzikra plnek.

11

4. A Debian GNU/Linux teleptsi folyamata


4.1. Elkszlet a teleptsre
Az opercis rendszer telepts nagy hatssal lehet a szmtgp tovbbi llapotra, hasznlhatsgra. ltalnos szablyknt elmondhat, hogy mieltt nekiltnnk a teleptsnek, mentsk le az sszes fontos adatunkat a diszkjeinkrl. Abban az esetben, hogyha valaki nem ismeri megfelel mlysgben a telept programot, vletlenl is hibzhat. Ekkor pedig akr tbb ves munkja is elveszhet. 4.1.1. A teleptshez szksges informcik A telepts elkezdse eltt a hardverrel s a hlzati belltsokkal tisztban kell lennnk. Tovbb a teleptend rendszerrel kapcsolatban nhny dolgot tisztznunk kell, meg kell terveznnk. Ezek kzl a legfontosabbak: A hardver eszkzk tpusai, lehetsgeik. Mieltt a teleptsnek nekiltunk, tudnunk kell a hardver eszkzk tpusait, illetve ezek paramtereit. Ajnlott megnzni, hogy az adott eszkzk Linux kompatibilisek-e. Ezt a lpst a hardver eszkzk megvsrlsa eltt a legjobb eldnteni. A hlzati paramterek. A hlzati rendszergazdtl krhetnk a Linux szerver szmra IP cmet, illetve tudhatjuk meg tle a hlzat tovbbi paramtereit. A tovbbiakban felttelezem, hogy TCP/IP alap hlzatot hasznlunk, illetve IPv4-et. Az j rendszer felhasznlsi terlete, a rendszer mkdse szempontjbl szksges szolgltatsok. Ez befolysolja pldul a lemezek particionlst, az alkalmazand elveket a redundns adattrolsra vonatkozan. A fjlrendszerek kpessgei. Vannak olyan feladatok, amely esetben nem elhanyagolhat szempont a fjlrendszer vlaszts sem. Ez azokra az esetekre igaz elssorban, ahol a rendszer I/O terhelse kifejezetten nagy lesz, s jelents teljestmnyklnbsg addhat a fjlrendszer tpus fggvnyben. Biztonsgi, zemeltetsi megfontolsok. Mr a telepts eltt evidens, hogy a rendszert a ksbbiekben zemeltetni is kell. ppen ezrt nem rt megtervezni a rendszeres s idszakos mentsek mdjt s mdszereit. Kell tervezssel egyszersthetjk s hatkonny tehetjk a biztonsgi mentseket. Az elz szempontok figyelembevtelvel hatroznunk kell a lemezek particionlsra vonatkozan. Egy smt kell definilnunk, amelyben rgztjk az egyes partcik sorrendjt, mrett, s a hasznlni kvnt fjlrendszert.

12

Minta a particionlsra: 2. sz. tblzat

Partci /dev/sda1 /dev/sda2 /dev/sda5 /dev/sda6 /dev/sdb1 /dev/sdb2 /dev/sda5,/dev/sdb1 RAID1

Tpus ext3 swap RAID xfs RAID xfs xfs

Mret 100MB 500MB 2500MB fennmarad 2500MB fennmarad 2500 MB

Csatlakoztatsi pont /boot /tmp /var /

Abban az esetben, hogyha a hardver eszkzt tbb architektra is tmogatja, fontos dnts, hogy melyiket hasznljuk. Jelenleg ilyenre lehetsgnk van a PCk esetben. Vlaszthatjuk a hagyomnyos x86 (i386) 32 bites architektrt, de az jabb processzorokon mkdik az x86_64 (amd64) 64 bites is. Vigyzzunk arra, hogy ne keverjk ssze az ia64 (64 bites Itanium) s az x86_64 architektrt. Azok az jabb Intel processzorok (pl.: Core2, Quad Core, ...), amelyek tmogatjk a 64 bites zemmdot (EMT64), azok esetben csak az x86_64 architektrt hasznlhatjuk, az ia64-et nem. A Debian telept CD-k letltsekor pedig az amd64-et kell vlasztanunk. A Debian 5.0 esetben ltezik 64 bites opercis rendszer is. A legtbb 32 bites alkalmazs elrhet ez alatt is. Azokkal a programokkal lehet gond, amelyeknek nem hozzfrhet a forrskdja, s csak binris formban rhetk el. Ilyen pldul az Acrobat Reader vagy a Adobe Flash, amelyeknek csak 32 bites verzii lteznek. Jelenleg nem rhet el stabil 64 bites Java plugin a Mozilla/Firefox/Iceweasel bngszk al. 4.1.2. A telepts clja A telepts megkezdse eltt fontos dolog, hogy tisztban legynk az egsz folyamat cljval. Ha egyszern akarjuk megfogalmazni, akkor mondhatjuk azt, hogy az elzetes tervben meghatrozott sma szerint kell egy Linux opercis rendszernek megjelennie a cl szmtgpen. Ez annyit jelent, hogy valamilyen mdszerrel a cl szmtgpen ltre kell hozni a szksges fjlrendszereket, s adott mdiumrl (pl.: CD, DVD, hlzat, msik HDD, floppy?, USB pendrive, ) kell fjlokat tmsolni, kicsomagolni s a szksges belltsokat megtenni. Miutn ez bekvetkezett, kpess kell tenni az j rendszert, hogy kls segtsg nlkl kpes legyen elindulni s a tovbbiakban mkdni. 4.1.3. A Debian GNU/Linux 5.0 ltal tmogatott architektrk Jelenleg tbbfle architektrra vonatkozan elrhet s telepthet a Debian GNU/Linux CD segtsgvel.

13

Architektrk, amelyekre ltezik telept CD: 3. sz. tblzat Debian architektra alpha arm amd64 i386 ia64 hppa mips mipsel powerpc s390 sparc Szmtgp (CPU) tpus Compaq (HP) Alpha AXP ARM (begyazott rendszerek) 64 bites AMD, Intel EM64T Intel x86 32 bit (IA-32) Intel 64 bit (Itanium, IA-64) HP PA-RISC SGI (big-endian) Digital DECstations and Cobalt Qube/RaQ (little-endian) Power Macintosh, IBM pSeries IBM S/390 SUN Sparc, UltraSparc

A tovbbiakban csak az IA-32 (i386, x86) architektrra val teleptst fogom bemutatni, a tbbi architektrhoz tartoz telept lehetsgeitl, belltsaitl eltekintek.

4.2. A telepts mdszerei


A telepts elvgzsre teht tbbfle mdszer ltezik. A tovbbiakban csak azokat a mdszereket ismertetem, amelyek nem jrnak az adott gp sztszedsvel. Ezen mdszerek kzl a legfontosabbak: telept CD/DVD segtsgvel telept indtsa kls USB eszkzrl telept indtsa hlzatrl telept indtsa floppy segtsgvel (manapsg mr nem jellemz) Amennyiben az adott szmtgpen mr teleptve van egy Linux opercis rendszer, akkor megoldhat az is, hogy ennek a felhasznlsval teleptnk egy msik lemezre vagy partcira egy rendszert. A debootstrap parancs segtsgvel egy elrhet Debian tkrszerverrl telepthet az opercis rendszer valamilyen csatlakoztatott knyvtr al. ltalban teht a telept programot hvjuk segtsgl az opercis rendszer teleptshez. A Debian GNU/Linux esetben ekkor a kvetkez trtnik: az elzekben ismertetett mdok valamelyikn elindul egy kernel s egy minimlis Linux opercis rendszer. a telept programot az elindult opercis rendszer futtatja, amely segtsgvel a teleptsi feladat kivitelezhet A teleptvel kapcsolatban fontos megemlteni, hogy nem biztos, hogy a kernel sszes lehetsgt tmogatja. Ez elssorban a mg ksrleti fzisban lv tmogatsokra vonatkozik. A telept segtsgvel helyi illetve hlzati csomagokat (package) is elrhetnk. gy akr a legjabb elrhet csomagokat telepthetjk fel, amelyek korbbi biztonsgi hibkat mr nem tartalmaznak. A Debian 5.0 esetben minden

14

csomag el van ltva digitlis alrssal. A magasabb szint csomagkezel alkalmazsokkal (pl.: apt-get, dselect, aptitude, ) csak olyan csomagok telepthetk, amelyek a fejlesztk hivatalos alrsval rendelkeznek. 4.2.1. A telept CD/DVD-k fajti A Debian telept CD-k, DVD-k hivatalos helye a http://cdimage.debian.org. Ajnlott azonban valamelyik tkrszervert hasznlni a letltshez. A magyar tkrszerver az ftp://ftp.hu.debian.org. Innt klnbz formtumokban tlthetjk le a teleptt: ISO kpfjlok (iso9660 image) formjban. A teljes disztribci az 5.0 i386 esetben 5 db ISO DVD vagy 31 db ISO CD formjban rhet el. Ezek ftp vagy http segtsgvel letlthetk. Bittorrent fjlok is elrhetk, vagyis a fjlcserl protokoll segtsgvel is megoldhat az ISO fjlok letltse. Jigdo segtsgvel is beszerezhetk a telept CD-k. A jigdo egy alkalmazs, amely kpes tbb klnbz tkrhelyrl tlteni a CD egyes rszeit, majd pedig sszelltani az ISO fjlt. Fontos dolog, hogy amennyiben a teleptend gp rendelkezik hlzati kapcsolattal, akkor nem kell felttlenl az sszes CD-t vagy DVD-t letlteni. Az elsn rajta vannak azok a csomagok, amelyek minden esetben szksgesek. A tovbbiakat pedig telepthetjk hlzat felhasznlsval. Miutn az ISO fjlokat letltttk, ajnlott az psgk ellenrzse. Ezt gy tehetjk meg, hogy elsknt letltjk a hozzjuk kapcsold MD5 vagy SHA1 ellenrz sszeget tartalmaz fjlokat. Ezek utn pedig az md5sum vagy a sha1sum parancs segtsgvel (-c kapcsol) ellenrizzk, hogy ezek igazak-e a letlttt fjlokra. A kvetkez ISO fjlok rhetk el (pl: i386 5.0 release 3 esetben): debian-503-i386-CD-1.iso: telept Gnome grafikus krnyezettel (full CD) debian-503-i386-kde-CD-1.iso: telept KDE grafikus krnyezettel debian-503-i386-xfce+lxde-CD-1.iso: telept XFCE s LXDE grafikus krnyezettel debian-503-i386-netinst.iso (kb. 150MB): csak egy alaprendszert tartalmaz, s a hlzati teleptshez szksges csomagokat debian-503-i386-businesscard.iso (kb. 36MB): az alaprendszert is hlzatrl tlti le

4.3. A telept program indtsa


A Debian GNU/Linux 5.0 teleptje kapott egy j indul kpernyt (splash screen) s boot ment. Itt egyszeren, menbl mdon vlaszthatunk a teleptsi mdok kztt. Telepthetnk karakteres s grafikus fellet hasznlatval, s az 'Advanced options' menpont alatt egyb mdokon is indthatjuk a teleptst. A 'Help' menpont kivlasztsa utn megkapjuk a korbbi verzikbl jl ismert teleptsi felletet, s lerst. Itt az F1-F10 gombok segtsgvel megtekinthetnk egy rvid sgt a telept hasznlatrl. A legfontosabb informcikat a harmadik oldal (F3) tartalmazza. Itt kerl ugyanis lersra, hogy a telept milyen paramterek segtsgvel indthat. A Debian 5.0 teleptjnek indtsi lehetsgei: install: A alaprtelmezett (egyszer) teleptsi md karakteres felleten. A telept program sok esetben alaprtelmezett belltsokkal dolgozik.
15

Pldul a hlzat konfigurlsa esetben felttelezi, hogy van DHCP szerver a hlzatban, s ennek a segtsgvel prblja a hlzati krtyt konfigurlni. installgui: Az elzvel megegyez teleptsi md, csak nem karakteres, hanem grafikus felleten. expert: Szakrtknek val teleptsi md. Ebben az esetben a telepts folyamatba teljes mrtkben beavatkozhatunk. A telept sokkal bbeszdbb, mint az alaprtelmezett md esetben. Itt addik arra lehetsg, hogy megvlasszuk a betltend kernel modulokat, s a telept opcionlis bvtmnyeit felhasznljuk. expertgui: Az elzvel megegyez teleptsi md, csak nem karakteres, hanem grafikus felleten. rescue: Ez a md nem teleptsre, hanem egy korbban felteleptett rendszer elrsre szolgl. Ennek a felhasznlsval elrhetjk az adott partcin lv fjljainkat, s kszthetnk rluk msolatot. Illetve amennyiben a rendszernk valamilyen oknl fogva nem kpes elindulni, akkor a problmt orvosolhatjuk. rescuegui: az elzvel megegyez a feladata, csak nem karakteres, hanem grafikus felleten.

Brmelyik menpont esetben egy kernel indul el. Amennyiben szeretnnk a kernelnek parancssorban paramtereket tadni, akkor ezt egyszeren az indtsi md utn begpelhetjk. pl.: install acpi=off A teleptnek szl specilis boot paramterek tadsra is van lehetsgnk. Ilyen pldul: netcfg/disable_dhcp=true, amely egyszer mdban letiltja a DHCP hasznlatt bootkbd=hu, magyar billentyzet kiosztssal indtja el a teleptt az angol helyett.

4.4. A telepts lpsei


Nyelv, billentyzet kioszts, helyi belltsok (locales) definilsa CD-ROM rzkelse s csatolsa Telept sszetevk betltse CD-rl Hlzati hardver feldertse Hlzat konfigurlsa Lemezek szlelse Lemezek particionlsa Idzna s ra belltsa Felhasznlk s jelszavaik felvtele Alaprendszer (Base System) teleptse A csomagkezel belltsa Szoftvervlaszts s telepts A GRUB (LILO) rendszerbetlt lemezre teleptse

Expert mdban knnyen megfigyelhetjk a teleptsi lpseket. Az egyszer md ugyanis bizonyos lpseket nem mutat, vagy sszevon ms lpsekkel. Az
16

elz listban csak azokat a lpseket soroltam fel, amelyeket rendszerint hasznlunk. Vannak azonban ezeken tl is lehetsgek, de ezeket ltalban specilis szitucikban (pl.: ellenrzs, hibakeress, opcionlis lehetsgek) hasznljuk.

4.5. A telept CD felptse


A tovbbiakban a debian-503-i386-CD-1.iso fjl felptst fogom bemutatni. A CD gykerben a kvetkez fontosabb knyvtrakat s fjlokat tallhatjuk: Knyvtrak: .disk

dists/lenny doc install.386 isolinux pics pool tools

lemezinformcik. pl.: verziszm, CD tpus, elrhet telept komponensek (udeb fjlok) a lemezen tallhat Debian verzi kln alknyvtrban teleptsi kziknyv s FAQ dokumentumok klnbz nyelveken, az aktulis kiads vltozsai, kpessgei (release notes) a telept indulshoz szksges kernel s initrd image a telept fmenje, a telept esetben hasznlt rendszerbetlt (isolinux) belltsai png formtumban a Debian logo s a telept ltal hasznlt egyb kpek a CD-n elrhet csomagok rendszerezve rgebbi, fknt DOS-os eszkzk a Linux indtshoz rvid lers a disztribcirl ms opercis rendszerekbl a lers automatikus indtsa a CD-n tallhat fjlokra vonatkozan MD5 ellenrz sszeg

Fjlok: README.{txt,html} autorun.{inf,bat}

md5sum.txt

Szimbolikus link: debian nev szimbolikus link, amely a .-ra mutat

4.6. A Debian GNU/Linux csomagkezelse


4.6.1. A csomagok fajti, a csomagnv felptse A Debian sajt csomagformtumot hasznlt a disztribcihoz tartoz csomagok esetben. Ezt hvjuk DEB csomagnak (.deb), amely a Unix ar fjlformtumt kveti. Egy csomag nevnek felptse a kvetkez szablyokat kveti: <package>_<versionnumber>-<revisionnumber>_<arch>.deb Az elz sor esetben az egyes rszek jelentse a kvetkez: <package> a csomag rvid neve. Amikor egy szoftver rsze lesz a Debian-nak, akkor kap egy egyedi nevet. Ez ltalban a ksbbiekben sem vltozik meg. <versionnumber> a csomagban lv szoftver verziszma, amely alapjn a csomag kszlt
17

<revisionnumber> a csomag mdostsakor, javtsakor az rtke nvekszik. Nemcsak szmot, hanem karakterlncot is tartalmazhat, amely a Debian verzira is utal egyben. <arch> az architektra, amely esetben a csomag telepthet bash_3.2-4_i386.deb vagy php5-xsl_5.2.6.dfsg.1-1+lenny4_i386.deb

pl.:

Az <arch> mez esetben specilis rtket jell az all. A csomagok kztt vannak olyanok, amelyek nem klnbznek architektrnknt. Ezeket hvhatjuk architektra fggetlen csomagoknak. Teht ezek olyan fjlokat tartalmaznak (tipikusan belltsok, dokumentcik), amelyek esetben teljesen felesleges lenne az architektrnknti trols s megklnbztets. A Debian csomagok kapcsn beszlhetnk a kvetkez fjlokrl, formtumokrl: .deb binris csomag (lehet architektra fggetlen) .dsc forrs csomag (debian source): a csomagkszts irnytsra hasznlatos .orig.tar.gz: egy program adott verzijnak eredeti forrskdja tar.gz formtumban .diff.gz: a fejlesztk ltal vgrehajtott mdostsok gzippel tmrtve diff fjlknt Lehetsges az, hogy egy forrskdbl ne csak egy, hanem tbb binris jjjn ltre. Ez leggyakrabban olyankor szokott elfordulni, amikor tbb is ugyanarra a szoftverre pl, annak adott rszt felhasznlja. Ebben az pldul a szoftver egy rszt belerakjk egy shared library-be. Majd csomagot ettl teszik fggv. csomag csomag esetben a tbbi

Amennyiben egy DEB csomagot kicsomagolunk, a kvetkez rszeit klnbztethetjk meg: csomag fejrsz: a csomagra vonatkoz vezrl s egyb informcik, parancsfjlok (DEBIAN) csomag tartalom: a csomagban lv fjlok abszolt elrsi tvonallal (CONTENT) A csomag teht annyival tbb, mint egy archvum, hogy van arra lehetsg, hogy parancsfjlok segtsgvel akcikat hajtsunk vgre. Ennek a segtsgvel kivitelezhet, hogy amikor pldul a csomagot teleptjk, akkor rgtn a rendszerhez hozz is igaztjuk. gy az j program, vagy modul rgtn a teleptst kveten hasznlhatv vlik. Egy csomag esetben a fejrszben a kvetkez parancsfjlok lehetsgesek: preinst telepts (kicsomagols) eltt postinst telepts (kicsomagols) utn prerm trls eltt postrm trls utn A parancsfjlok mellett minden egyes csomag fejrszben tallhatunk egy 'md5sums' nev fjlt, amely az MD5 ellenrz sszegeket tartalmazza. Emellett taln a legfontosabb fjl, a 'control' nevet viseli (A tovbbiakban Debian Control File). Ebben tallhatjuk a csomag vezrl informciit.
18

Plda egy Debian Control File-ra:


Package: mc Version: 2:4.6.2~git20080311-4 Architecture: i386 Maintainer: Debian MC Packaging Group <pkg-mcdevel@lists.alioth.debian.org> Installed-Size: 6252 Depends: libc6 (>= 2.7-1), libglib2.0-0 (>= 2.16.0), libgpm2 (>= 1.20.4), libslang2 (>= 2.0.7-1) Suggests: mime-support, perl, zip, unzip, bzip2, links | w3m | lynx, arj, file, xpdf, dbview, odt2txt Section: utils Priority: optional Homepage: http://www.ibiblio.org/mc/ Description: midnight commander - a powerful file manager GNU Midnight Commander is a text-mode full-screen file manager. It uses a two panel interface and a subshell for command execution. It includes an internal editor with syntax highlighting and an internal viewer with support for binary files. Also included is Virtual Filesystem (VFS), that allows files on remote systems (e.g. FTP, SSH, SMB servers) and files inside archives to be manipulated like real files.

Az egyes mezk jelentse a kvetkez: Package: a csomag rvid neve Version: a csomagban lv program verziszma s revziszma Architecture: a csomag architektrja Maintainer: a karbantart neve s e-mail cme Installed-Size: teleptst kveten a csomag tartalmnak mrete kBjtban Depends: a csomag fggsgei (elfelttelei) Suggests: a csomag javaslatai ms csomagok teleptsre Conflicts: tkzs ms (korbbi) csomagokkal Replaces: a csomag helyettest ms csomagokat Section: a csomag besorolsa (szekcija) Priority: a csomag fontossga Homepage: a program weboldala Description: a csomag rvid, clratr lersa 4.6.2. A csomagok egymshoz val viszonya, llapotaik Az elz alfejezetben bemutattam a DEB csomagok legfontosabb jellemzit, csomagok elnevezshez kapcsold szablyokat, konvencikat. Termszetesen a csomagokra, mint egy nagy rendszer apr elemeire kell tekintennk. Ezek az elemek azonban nem fggetlenthetk egymstl, hanem szoros kapcsolatok lehetnek kztk. Tegyk fel, hogy A s B egy-egy Debian csomag. Ebben az esetben a kvetkez lehet a kett csomag viszonya: A and B independent: A s B fggetlen egymstl. A depends B: A csomag fgg B-tl. Az 'A' csomag mkdshez felttlenl szksges, hogy B teleptve legyen. A recommends B: A csomag javasolja B-t. Pldul az mc segtsgvel csak akkor tudunk belenzni a bzip2-vel tmrtett fjlokban, hogyha a bzip2 teleptve van.
19

A suggests B: Mivel a B csomag hasonl feladatot lt el, mint az A csomag, ezrt lehet, hogy adott feladatra a B csomagot knnyebben lehet felhasznlni. A conflicts B: A s B tkzik egymssal. Ez annyit jelent, hogy egyidejleg a kt csomag nem telepthet. Ennek az oka lehet pldul az, hogy ugyanaz a fjl tallhat meg mindkettben. A replaces B: A helyettesti B-t. Egy korbban ltez B csomag helyett egy j csomag (A) kerlt a disztribciba. A provides B: A csomag tartalmazza B-t. Az A csomagban benne van mindaz, ami B-ben megtallhat. A pre-depends B: Elzetes fggsg jelzse klnbz specilis programknyvtrakra vonatkozan.

4.6.3. A csomagkezels szempontjbl fontos knyvtrak, fjlok Mivel nagyon sok csomag rhet el Debian GNU/Linux opercis rendszerben, ezrt fontos, hogy megfelelen legyenek ezek a csomagok rendszerezve. A rendszerezs esetben az egyik fontos szempont a csomagok felhasznlsra vonatkoz lehetsgek: main: A DFSG-ben szerepl szabad licenceknek megfelel szoftverbl ksztett csomagok. contrib: Azon csomagok, amelyekben lv szoftverek megfelelnek a Debian szabad licencnek, csak fggnek olyan csomagtl (szoftvertl), amely nem felel meg ennek. non-free: Azok a csomagok, amelyekben lv szoftverekre vonatkozan a fejlesztk olyan kiktseket tettek, amely nem kompatibilis a Debian szabad licenccel. Egy msik rendszerezsi szempont az architektra. Ennek megfelelen a kvetkez knyvtrakat definilhatjuk: binary-all: az sszes architektrra rvnyes csomag binary-<arch>: az adott architektrhoz tartoz csomagok, ahol <arch> egy a Debian ltal tmogatott architektra pl.: i386 vagy amd64 source: a csomag forrskdjait, s a csomagksztshez hasznlt fjlokat tartalmazza Mivel nagyszm a csomag, ezrt egy harmadik rendszerezsi szempont a csomag besorolsa felhasznlsi szempontbl. Ez a besorols jelenik meg a Debian Control File Section mezjben.

20

A csomagok esetben hasznlt szekci elnevezsek: 4. sz. tblzat Nv admin comm devel doc editors electronics embedded games gnome graphics hamradio interpreters kde libdevel libs mail math misc net news oldlibs otherosfs perl python science shells sound tex text utils web x11 adminisztrci (alacsony szint) kommunikci fejleszti (include) fjlok dokumentci szvegszerkesztk elektronikai alkalmazsok begyazott rendszerekhez kthet csomagok jtkok, oktatsi cl csomagok GNOME grafikus fellethez kapcsold csomagok kpszerkeszt, megjelent s grafikai alk. amatr rdizshoz kapcsold csomagok interpreterek (rtelmezk) KDE grafikus fellethez kapcsold csomagok dinamikus program-knyvtrak fejleszti fjljai dinamikus program-knyvtrak elektronikus levelezs matematikai programok egyb, a tbbi szekciba nem sorolhat csomagok hlzathoz kapcsold csomagok hrcsoportok, hrolvass (network news) rgebbi (libc5-hz) tartoz program-knyvtrak ms opercis rendszerek fjljaihoz, fjlrendszereihez val hozzfrs PERL modulok PYTHON modulok tudomnyos kutats parancsrtelmezk hang kelts, zene lejtszs a tex (fknt matematikusok ltal kedvelt) szvegszerkeszt bvtmnyei szvegfeldolgozs hasznos segdprogramok WWW szolgltatshoz kapcsold csomagok X11 grafikus krnyezethez kapcsold csomagok Tartalom

21

A Debian az elz hrom szempont figyelembevtelvel a kvetkez knyvtrakat s fjlokat hasznlja a csomagok s a csomagokra vonatkoz jellemzk trolsra: Csomagok jellemzinek trolsa: dists a csomagok disztribcihoz val rendelse etch lenny contrib main binary-<arch> ... binary-i386 Release Packages, Packages.bz2, Packages.gz source Release Sources, Sources.bz2, Sources.gz non-free Release, Release.gpg squeeze stable, testing, unstable szimbolikus linkek az adott verzira Az elz felsorols a hasznlt knyvtrstruktrt mutatja be. Alhzssal jelltem az alknyvtrakat. A dists knyvtrban teht a disztribci elnevezsei tallhatk s/vagy a rjuk utal hivatkozsok is. A legfontosabb teht, hogy adott csomag melyik disztribcihoz tartozik. Egy szinttel beljebb talljuk a licenc szerinti csoportostst. Ezen bell pedig az architektrnknt trtn sztvlasztst. Ily mdon teht egy fa struktrt lehet felrajzolni, amelynek a dists/etch/main/binary-i386 s a dists/etch/main/source ga lett teljes mrtkben bemutatva a felsorolsban. A smban a knyvtrak mellett az albbi fjlok hasznlatosak: Release: az aktulis kiadsra vonatkoz informcik, illetve a nyilvntartsban hasznlt fjlokra vonatkozan ellenrz sszegek Release.gpg: a Release fjlhoz tartoz alrs Packages:az adott rszfba tartoz sszes binris csomag vezrl informcii egyetlen fjlban (illetve ez tmrtve is megtallhat) + csomagonknt a csomag helyre vonatkoz hivatkozs Sources: az adott rszfba tartoz sszes forrs csomag vezrl informcii egyetlen fjlban (illetve ez tmrtve is megtallhat) + csomagonknt a csomag helyre vonatkoz hivatkozs A Packages fjlban teht benne van a csomagokban lv vezrl informci, amely ki van egsztve egyb mezkkel. Ez a korbbiakban pldaknt bemutatott mc csomag esetben a kvetkez:

22

Filename: pool/main/m/mc/mc_4.6.2~git20080311-4_i386.deb Size: 2140246 MD5sum: 088161530e6e78915cf097cf9af361ab

A csomag elrsi tvonalt, mrett, s MD5 ellenrz sszegt is tartalmazza. A Packages fjl frissthet a csomagokban lv vezrl informcik, illetve a csomagok elrhetsgnek egyttes megadsval. A Sources fjl jellegt tekintve hasonlt a Packages fjlra. Annyi a klnbsg, hogy nem a binris csomagok jellemzit, hanem a forrscsomagok jellemezit tartalmazza. Csomagok trolsa: pool a csomagok helye contrib main 2 ... lib* ... m m-tx ... mc mc_4.6.1-6_i386.deb ... mytop ... z non-free A csomagok trolsa is egy hierarchikus fa struktrban trtnik. A trols mdja fggetlenthet a disztribcitl, gy csak a licenc szerint vannak a csomagok sztvlogatva. Ezen bell pedig a csomag els karaktere (betje) szerint tovbbi alknyvtrakat tallunk. A legutols szint a hierarchiban a csomag neve. Ezen bell tallhatjuk meg a csomagot a korbban definilt nv konvencinak megfelelen. Az elz felsorols a pool/main/m/mc rszft mutatja be, az elgazsoknl utalva az egyb lehetsgekre. A csomagok effle trolsnak egyik fontos elnye, hogy egy helyen lehet trolni a klnbz terjesztsekhez (stable, testing, unstable) tartoz csomagokat. Az elz pldnl maradva az sszes mc nev csomag a pool/main/m/mc knyvtron bell lesz megtallhat. A msik f elny, hogy knnyen lehet szeparlni az egyes csomagokat s azokat kln adathordozra elhelyezni. Ez a folyamat egyszer msolssal s a Packages fjlok jra gyrtsval megvalsthat. 4.6.4. A csomagkezels parancsai A jl megtervezett csomaghierarchihoz kell, hogy tartozzanak olyan alkalmazsok, amelyek segtsgvel a csomagok kezelse knnyen kivitelezhet.

23

Egy csomagkezel alkalmazs legfontosabb feladatai: a csomagok psgnek s digitlis alrsnak ellenrzse a csomagok jl ttekinthet listzsa az egyszer telepts, frissts, eltvolts megvalstsa a csomagok kzti fggsgek, tkzsek figyelse az elrhet csomagok listjnak frisstse A Debian GNU/Linux alap csomagkezelje a dpkg. Ennek a segtsgvel parancssorbl megvalsthatk a csomagokkal kapcsolatos mveletek, st akr a csomag ltrehozsa is.

A parancs fontosabb lehetsgei:


dpkg -i | --install <package_file> # csomag teleptse dpkg --unpack <package_file> # csomag kicsomagolsa dpkg --configure <package> # csomag belltsa dpkg -r | --remove <package> # csomag trlse dpkg -P | --purge <package> # csomag trlse konfigurcival egytt dpkg -p | --print-avail <package> # csomag jellemzinek megjelentse dpkg -l | --list <name-pattern> # csomagok listzsa nv alapjn dpkg -L | --listfiles <package> # csomag tartalmnak listzsa dpkg -S | --search <name-pattern> # keress csomagok tartalmban fjlnv illeszkeds alapjn dpkg get-selections > <package-list> # teleptett csomagok listzsa dpkg --clear-selections # a csomag kivlaszts trlse dpkg set-selections < <package-list> # csomagok kijellse teleptsre

Az elzekben felsorolt parancsok esetben a paramterek jelentse: <package> # egy csomag rvid neve <package_file> # egy csomag teljes neve a .deb kiterjesztssel egytt <name-pattern> # keressi minta <package-list> # tetszleges fjl, amely a csomagok neveit s llapotaikat tartalmazza A dpkg parancs az elzeken kvl mg nagyon sok lehetsggel rendelkezik. Pldul a parancs segtsgvel lehetsges sajt csomag ksztse is. Elssorban olyankor hasznlatos, amikor egyedileg trtnik csomagok teleptse vagy eltvoltsa. Egy csomag teleptsekor a kvetkez trtnik : a csomag vezrl informciinak kiszedse a csomagbl amennyiben a csomagnak egy korbbi vltozata teleptve rendszerben, akkor a korbbi csomag prerm szkriptjnek futtatsa a csomagban lv preinst szkript futtatsa, hogyha ltezik a csomag tartalmnak a kicsomagolsa (a rgi fjlok mentse)
24

van

amennyiben a csomagnak egy korbbi vltozata teleptve volt rendszerben, akkor a korbbi csomag postrm szkriptjnek futtatsa az j csomag konfigurcis fjljainak kicsomagolsa a csomagban lv postinst szkript futtatsa, hogyha ltezik

A dpkg parancs esetben definilhatunk klnbz llapotokat. Ezek lehetnek a kivlasztssal sszefggek, illetve ettl fggetlenek. Az llapot mindegyik csomagra jellemz. A kivlasztstl fggetlen llapotok: installed a csomag sikeresen kicsomagolva s konfigurlva lett half-installed a csomag teleptse elkezddtt, de nem fejezdtt be not-installed a csomag nincs teleptve unpacked a csomag sikeresen kicsomagolva lett, de nincs konfigurlva half-configured a csomag konfigurlsa elkezddtt, de nem fejezdtt be config-files csak a csomaghoz tartoz konfigurcis fjlok lteznek a csomag esetben A kivlaszts segtsgvel adhatjuk meg, hogy egy csomag egy mvelet elvgzse utn msik llapotba kerljn. Itt a kvetkez lehetsgek vannak: install a csomag teleptsre van kijellve deinstall a csomag trlsre van kijellve (a konfigurcis fjlok nem trldnek) purge a csomag trlsre van kijellve a konfigurcis fjlokkal egytt hold a csomag jelenlegi llapotnak a megtartsa Debian GNU/Linux rendszerben lteznek a dpkg-re pl magasabb szint csomag kezelk (frontend-ek). Ezek kzl a leggyakrabban hasznlt az APT (Advanced Packaging Tools). Az APT segtsgvel van arra lehetsgnk, hogy hlzati csomag forrsokat hasznljunk. Az APT esetben fontos konfigurcis fjl a /etc/apt/sources.list. Ebben a fjlban adhatjuk meg, hogy milyen hlzati erforrsokbl akarunk csomagokat telepteni. A fjl egy sornak felptse a kvetkez smt kveti: type uri distribution section1 section2 ... Az egyes mezk jelentse a kvetkez: type: az erforrs tpust jelenti, rtke a deb vagy a deb-src lehet. A deb utal a binris csomagok lelhelyre, a deb-src a forrscsomagokra. uri: tetszleges URI (Uniform Resource Identifier) distribution: egy disztribci vagy vltozat neve section[12...]: csomagok licenc szerinti csoportja Pldk erforrs megadsra: deb file:/mnt/package/debian stable main contrib non-free deb ftp://ftp.hu.debian.org/debian/ lenny main non-free contrib deb http://kami.duf.hu/debian/ lenny main contrib non-free deb http://security.debian.org/ lenny/updates main contrib non-free
25

Az APT esetben hasznlhatjuk az albbi helyi s hlzati erforrsokat: file cdrom ftp http Amennyiben teht szeretnnk elrni egy APT erforrst, els lpsben a megfelel bejegyzst kell elhelyeznnk a /etc/apt/sources.list nev fjlba. Amennyiben szeretnnk sajt tkrszervert ltrehozni, azt egyszeren megtehetjk a debmirror parancs hasznlatval. A parancs kpes arra, hogy adott helyrl a paramterknt tadott disztribcit tkrzze egy adott gpre. debmirror -v --method=ftp --passive \ -a i386,amd64 -d lenny -s main \ --progress --host=ftp.hu.debian.org /mnt/data/debian Az elz parancs az i386, illetve az amd64 architektra esetben a lenny disztribcihoz tartoz main csoportba sorolhat csomagokat tlti le ftp-n keresztl az ftp.hu.debian.org-rl. Amennyiben ellltjuk a csomagok trolsnl bemutatott mdon az egyes knyvtrakat s fjlokat, abban az esetben mris kszen van a csomag lelhely. Ezt pedig egyszeren megoszthatjuk egy web szerver vagy egy ftp szerver felhasznlsval. Ahhoz, hogy csomagokat rjnk el APT forrsbl, szksgnk van az apt-get parancsra. Az apt-get parancs fontosabb lehetsgei: apt-get update # csomag cache frisstse apt-get upgrade # j csomagok teleptse apt-get dselect-upgrade # j csomagok teleptse a dselect parancshoz hasonlan apt-get dist-upgrade # disztribci frisstse apt-get install <package> # adott csomag teleptse apt-get remove <package> # adott csomag trlse (konfigurcit nem) apt-get remove purge <package> # adott csomag trlse konfigurcis fjlokkal egytt apt-get source <package> # forrs csomag letltse s kicsomagolsa apt-get clean # letlttt csomagok trlse Miutn az APT forrsokat belltottuk, utna szksges az apt-get update parancs hasznlata. A parancs letlti a belltott forrsok esetben a Packages s a Sources fjlokat. Ezutn van arra lehetsg, hogy az jonnan belltott helyekrl teleptsnk vagy a rendszernket frisstsk.

26

Az APT mkdst befolysolhatjuk a /etc/apt/apt.conf segtsgvel. APT::Default-Release "5.0"; Acquire { http { Proxy "http://proxy.duf.hu:3128"; Proxy::kami.duf.hu "DIRECT" }; ftp { Passive "true"; }; }; APT::Cache-Limit 16777216; Abban az esetben, hogyha sok APT bejegyzsnk van elfordul, hogy meg kell nvelnnk a cache mrett. A pldban 16MB-ra van belltva a cache mrete. Bellthatjuk, hogy milyen http proxy-t hasznljon a hlzati csomagok elrshez, illetve mely szerverek esetben ne hasznlja a proxy-t. Van arra is lehetsgnk, hogy n. kevert disztribcit hasznljunk. Ez annyit jelent, hogy bizonyos csomagokat a stable, msokat a testing s/vagy az unstable elemei kzl vlasztunk. Ebben az esetben fontos lehet az elsbbsgi sorrend fellltsa az egyes disztribcik elemei kztt. Ezt a /etc/apt/preferences fjl segtsgvel tehetjk meg. Package: * Pin: release a=lenny Pin-Priority: 1000 Package: * Pin: release a=squeeze Pin-Priority: 900 Package: * Pin: release a=sid Pin-Priority: 800 Ebben az esetben az sszes csomagra vonatkozan lltjuk a prioritst. A lennyben lv csomagok rendelkeznek a legnagyobb prioritssal, a squeeze ennl kevesebb, a sid (unstable) csomagjai pedig a legkevesebbel. Termszetesen a mkdshez az kell, hogy az adott disztribcikra utal hivatkozsok legyenek a /etc/apt/sources.list-ben. Az apt-get parancs esetben megadhatjuk azt is teleptskor, hogy melyik disztribcibl vegye a csomagokat (amennyiben tbb is van az APT forrsok kztt). apt-get -t squeeze install mc Az APT-hez kapcsoldik meg nhny tovbbi parancs:

apt-cache apt-cdrom: apt-file apt-key

csomag cache manipulci, csomag keress telept CD/DVD felismertetse csomag keress s listzs a csomagok ellenrzsnl hasznlt kulcsok kezelse

27

Az apt-get mellett egyb eszkzk is lteznek a csomagok menedzselsre. Az egyik ilyen alkalmazs a dselect. Ez kpes egyttmkdni az APT-vel, ugyanazokat a forrsokat tudjuk felhasznlni mindkt esetben. A dselect esetben egy menbl vlaszthatjuk ki az elvgzend tevkenysgeket: 0. 1. 2. 3. 4. 5. 6. [E]lrs [F]risst [V]laszt [T]elept [B]ellt [L]eszeds [K]ilps Vlassz elrsi mdot Frissti az elrhet csomagok listjt, ha lehetsges. Csomagok vlasztsa Krt csomagok teleptse, frisstse. Belltatlan csomagok belltsa. Nem kvnt szoftverek eltvoltsa. Kilps a dselect programbl.

A program esetben ajnlott az egyes menpontokon a felsorolt sorrendben vgigmenni. Annyi elnye van az apt-get paranccsal szemben, hogy itt egyb parancs nlkl el tudjuk olvasni az adott csomagra vonatkoz lers mezt, amely alapjn eldnthetjk, hogy szksgnk van-e az adott csomagra. Miutn a csomagkezel megfelel mdon konfigurlva lett, gy elrhetjk a rendelkezsre ll csomagokat. Ahhoz, hogy a rendszernk kpes legyen adott hlzati feladatok elltsra ahhoz a megfelel csomagok teleptsre van szksgnk. Illetve termszetesen ezeket a szoftvereket a sajt felhasznlsi ignynek megfelelen konfigurlnunk kell.

28

5. A diszk adminisztrci s parancsai


5.1. A diszkkezels s lehetsgei
Egy rendszer teleptse eltt dntennk kell a diszkjeink felhasznlsa fell. A knyvtr hierarchia egyes rszei klnbz mret partcikat ignyelnek. A pontos mretek termszetesen fggnek az adott felhasznlsi terlettl. Amikor egy smt terveznk, akkor legalbb a kvetkez knyvtrakat clszer figyelembe venni a teleptse esetben:

/ /boot /home /usr /tmp /var

mrete legalbb nhny GB (mrete fgg attl, hogy a felhasznli programokat kln helyre rakjuk-e) max. 100 MB, a kernel, initrd s a boot loader szmra szksges hely a felhasznlk adatai szmra fenntartott hely igny szerint a felhasznli programok szmra fenntartott hely igny szerint tmeneti fjlok trolsa, legalbb 500 MB javasolt, felhasznls fggvnye vltoz adatok, napl fjlok, igny szerint

Termszetesen dnthetnk gy, hogy az elzekben felsorolt knyvtrakat nem kln partcikra helyezzk, hanem bizonyosakat sszevonunk. Vigyznunk kell azonban arra, nehogy htrnyosan befolysoljk egyms mkdst. Nhny plda, amely igazolja a partcik kln vlasztst: A /var-t clszer kln vlasztani a /-tl, nehogy a naplfjlok kitltsk a teljes partcit, s ebben az esetben nem lehetsges semmilyen j program teleptse, vagy brmilyen fjl ltrehozsa. A /tmp mretnek kellen nagynak kell lenni, hogy a klnbz tmeneti fjloknak elegend helyet biztostson. Vigyzni kell vele is, mert knnyen megtelhet. A felhasznlk knyvtrai is clszer kln vlasztani, mert ellenkez esetben az adott lemez nagy rszt kitlthetik az felhasznlink dolgai, s esetleg kevs hely marad az alkalmazsaink szmra. Amellett, hogy figyelembe vesszk az egyes knyvtrak mret ignyeit, figyelnnk kell a virtulis memria (swap) mretre is. ltalnos szablyt nehz mondani a mret megvlasztsra vonatkozan. ltalban legalbb annyit, mint a fizikai memria, de nem tbbet, mint a fizikai memria ktszerese. A mai memria mretek s rak mellett ezzel nem rdemes sprolni. A nagyobb mret memria nagyon megdobja a rendszer teljestmnyt, s csak nagyon ritkn lesz szksge a rendszernek a trcserre. A diszk kezels esetben megklnbztethetnk klnbz mdszereket: csak fizikai ktetek (partcik) hasznlata. Ebben az esetben hagyomnyos mdon partcikat hozunk ltre, s ezek csatlakoztatjuk. ltrehozunk fizikai kteteket, de ezeket nem kzvetlenl hasznljuk. A Debian esetben van arra lehetsg, hogy titkostott fjlrendszert hasznljunk. Ebben az esetben az adatok titkostva kerlnek a partcira,
29

s csak megfelel jelsz vagy kulcs megadsa utn rhetk el. A kernel device mapper specilis eszkze (dm-crypt) segtsgvel rhetjk el a rajta lv adatokat. LVM (Logical Volume Management) hasznlata. Ebben az esetben a fizikai ktetekbl ktetcsoportokat kpeznk, majd ezeket felosztjuk logikai ktetekre. Ezeket a logikai kteteket hasznljuk az adataink trolsra. Fontos elnye, hogy a logikai ktetek tmretezhetk. Szoftveres RAID (md) hasznlata. A Linux lehetv teszi azt, hogy tbb fizikai ktetet sszefogjunk, s szoftveres ton megoldjuk a redundns adattrolst. EVMS (Enterprise Volume Management System) hasznlata. A Debian teleptje ezt a specilis mdszert nem tmogatja. Akr parancssoros, ncurses alap, vagy grafikus felleten keresztl is megoldhat a segtsgvel a diszk adminisztrci. Kpesen vagyunk a RAID illetve LVM logikai kteteket is felhasznlni a lemezkezels sorn. Fknt sok diszket tartalmaz robusztus rendszerek esetben ajnlott.

5.2. A Szoftveres RAID (md)


A RAID (Redundant Array of Independent Disk) egy fontos technolgia az adatok trolsa esetben. A szmtgpekben lev merevlemez knnyen s gyakran meghibsodhat. Ezrt fontos, hogy az adataink ne csak egy eszkzn, hanem tbb helyen legyenek trolva. A RAID a redundns trols mellett az I/O mveletek gyorstsra is kivlan alkalmas. A RAID-nek ltezik hardveres s szoftveres megvalstsa is. A hardveres implementci esetben a vezrlkrtya feladata a RAID tmb kezelse s a prhuzamos rsi mveletek vgrehajtsa. Legfbb elnye, hogy ebben az esetben a lemez I/O mvelet nem terheli a CPU-t. Htrnya viszont az, hogy az ilyen krtyk ra szzezer forint fltt kezddik. A RAID-nek ltezik szoftveres megvalstsa is. Ebben az esetben az opercis rendszer egy sszetevjnek a feladata, hogy megvalstsa a RAID funkciit. A Linux kernel esetben az MD (Multiple Device) driver ltja el ezt a feladatot. A RAID esetben klnbz szinteket (RAID level) definilhatunk:

RAID 0 (striping): A merevlemezt vagy partcit meghatrozott mret rszekre (svokra) bontjuk. A RAID 0 esetben felvltva trtnik ezen svok sszefslse. gy az adatok trolsa egyszerre tbb eszkzre trtnik. Ezltal az I/O mveletek gyorsulsra szmthatunk. A RAID 0 azonban nem biztost hibatrst. Ezrt ha az eszkzeink kzl brmelyik meghibsodik, akkor az adatunk egy rsze elvsz. RAID 1 (mirroring): Ebben az esetben trtnik az adatok dupliklt trolsa. Ehhez legalbb kett diszk szksges (ajnlott, hogy egyformk legyenek). Ebben az esetben az eszkzk trolsi kapacitsa nem addik ssze gy, mint a RAID0 esetben. A RAID1 tmb belltsa utn egy diszk kapacitsnak megfelel terlet lesz elrhet. A RAID1 esetben az olvassi sebessg megnhet, hiszen tbb lemezrl az olvass egyszerre megtehet. Az rsi mvelet esetben azonban nem eredmnyez gyorsulst. Egy meghajt meghibsodst kpes tllni.

30

RAID 4 (striped set with dedicated parity): Ebben az esetben tbb merevlemez egymstl fggetlenl mkdik. Legalbb hrom diszkre van szksgnk a megvalstshoz. Az egyik diszken trtnik a parits informcik trolsa. Lemez meghibsods esetben ennek a felhasznlsval lehetsges az adatok visszalltsa. Olvassi sebessge j, viszont az rsi mvelet esetben a parits diszk jelenti a szk keresztmetszetet. RAID 5 (striped set with distributed parity): Hasonlan mkdik, mint a RAID 4, azzal a klnbsggel, hogy a parits informcik nem egyetlen diszken, hanem az sszesre sztosztva troldnak. gy kikszbli a parits meghajt ltal jelentett szk keresztmetszetet. Legalbb hrom meghajt szksges hozz, s kett meghajtnyi trol kapacitst biztost. Az egyik legelterjedtebb RAID szint, mivel egyszerre biztostja a redundns trolst, illetve az olvassi sebessg tbbszrzst. RAID 6 (striped set with dual distributed parity): Annyiban klnbzik a RAID 5 -tl, hogy ebben az esetben a paritst nemcsak soronknt, hanem oszloponknt is kpezik. gy hrom diszk esetben is csak egy meghajtnyi kapacitst biztost, viszont a segtsgvel kett merevlemez meghibsods is kikszblhet. A tbbletkltsgek miatt nem terjedt el. RAID 1+0 vagy RAID 10 (mirrored striping): Ebben az esetben legalbb ngy eszkzre van szksgnk. Elszr prban kettt-kettt RAID1-be kapcsolunk, majd a ezeket kapcsoljuk ssze RAID0-v. Ezltal tvzzk a RAID0 s a RAID1 elnyeit. Kett (nem tetszleges) diszk meghibsodst is elvisel.

Az elz felsorolsban nem kerlt bele az sszes RAID szint, csak azok, amelyek a Linux kernel esetben lteznek, s felhasznlhatk. Ezek mellett ltezik pldul RAID 2, 3, 50 is. A telept kernele az elz felsorolsban szerepl szintek kzl csak a RAID 0,1,5,6,10 szinteket tmogatja. A RAID esetben nhny fontos fogalommal tisztban kell lennnk: szinkronizls: Amennyiben a RAID1 tmb valamelyik eleme meghibsodik, gy a hibs merevlemezt ptolni kell. Miutn megtrtnt a ptlsa fontos, hogy a msik diszk tartalma r kerljn. Amg a kt diszk kztt a szinkronizci folyik, nem clszer I/O ignyes folyamatokat futtatni, mert ez nmagban is megterhel a gp szmra. tartalk (spare) diszk: A RAID0 kivtelvel van arra lehetsg, hogy a mkd winchesterek mell elhelyezznk egy tartalk diszket. Ez alapesetben nincsen hasznlatban. Szerepe akkor fontos, amikor valamelyik diszknk meghibsodik. Ebben az esetben, a tartalk eszkz a meghibsodott helybe lphet, s megkezddhet a diszk szinkronizlsa s beptse a RAID-be. RAID llapot: Ez utal a RAID illetve a benne lv eszkzk mkdsre. A clean llapot jelenti, hogy minden rendben mkdik. Amikor egy diszk meghibsodik, akkor a rendszer tovbbra is mkdik, de tkerl dirty llapotba. Amennyiben a hibs diszket eltvoltottuk, gy degraded llapotban kerlnk. Ahhoz, hogy szoftveres RAID-et hasznljunk, szksgnk van az mdadm nev
31

csomagra, illetve a benne lv ugyanolyan nev parancsra. Plda RAID hasznlatra az mdadm parancs segtsgvel RAID1 tmb ltrehozsa mdadm -create -verbose /dev/md0 -level=1 -raid-devices=2 /dev/sd[cd] --spare-devices=1 /dev/sde RAID lelltsa mdadm -stop /dev/md0 Eszkz eltvoltsa mdadm -fail /dev/md0 /dev/sdc mdadm -remove /dev/md0 /dev/sdc Eszkz hozzadsa mdadm -add /dev/md0 /dev/sdc A RAID-ben lv tjkozdhatunk: eszkzk llapotrl a /proc/mdstat fjl alapjn

Personalities : [raid1] md0 : active raid1 sdc[0] sdd[1] 4194240 blocks [2/2] [UU] Az adott md eszkzre vonatkoz belltsokat megtekinthetjk: mdadm -detail /dev/md0
/dev/md0: Version Creation Time Raid Level Array Size Device Size Raid Devices Total Devices Preferred Minor Persistence Update Time State Active Devices Working Devices Failed Devices Spare Devices : : : : : : : : : : : : : : : 00.90.03 Wed Feb 27 07:37:10 2008 raid1 4194240 (4.00 GiB 4.29 GB) 4194240 (4.00 GiB 4.29 GB) 2 2 2 Superblock is persistent Sat Mar clean 2 2 0 0 8 00:24:43 2008

UUID : b17bc19f:8da2da7b:fab91c8b:5e7c77de Events : 0.2 Number 0 1 Major 8 8 Minor 32 48 RaidDevice State 0 active sync 1 active sync /dev/sdc /dev/sdd

32

A szoftveres RAID egy olcs megolds arra, hogy adatainkat redundns mdon troljuk. ppen ezrt hasznlata brmilyen telepts esetben javasolt, ahol rendelkezsre ll tbb diszk. Elssorban SATA vagy SCSI diszkekkel ajnlott hasznlni, az IDE esetben gyakran tapasztalhatunk pldul sebessgbeli problmkat.

5.3. Az LVM
Az LVM egy magasabb absztrakcis rteget definil, mint a hagyomnyos diszkek vagy partcik. A Linux kernel Device mapper tmogatsa teszi lehetv a hasznlatt. A 2.6-os kernelekben az LVM2 tmogats rhet el. Ahhoz, hogy a logikai ktetkezelst hasznljuk szksgnk van userspace-beli binrisokra (lvm2 nev csomag). Az LVM mkdnek megrtshez definilnunk kell fogalmakat, rvidtseket: PE (Physical Extent): adott eszkz vagy partci egy elre meghatrozott mret rsze. Egy fizikai ktet tbb azonos mret ilyen egysgre bonthat. PV (Physical Volume): fizikai ktet (partci) VG (Volume Group): ktet csoport. Egy vagy tbb fizikai ktet egyestsvel kpezhet. LV (Logical Volume): logikai ktet, amely egy ktetcsoporton bell helyezkedhet el LE (Logical Extent): egy logikai ktet elre meghatrozott mret rsze
/dev/sda1 PE PE PE PE PE /dev/sda2 PE PE PE PE /dev/sdb PE PE PE PE PE PE

Physical Volumes

vgmain

Volume Group(s)

LE LE LE lvroot

LE LE LE LE LE lvhome

LE LE LE LE lvusr

LE LE LE lvvar

Logical Volumes

Minta logikai ktetkezelsre 1. sz. bra

Az elz bra bemutatta, hogy a logikai ktetek s a fizikai ktetek hogyan kapcsoldnak egymshoz. Az LVM legfontosabb elnyei, tulajdonsgai: tbb lemez sszefzhet egy nagy mret ktett a ktetcsoportok mkds kzben tmretezhetk, j diszkek adhatk a ktetcsoporthoz, illetve meglvk vehetk el belle

33

a logikai ktetek tmretezhetk jabb LE-k hozzadsval vagy elvtelvel lehetsges n. pillanatfelvtel (snapshot) ksztse a logikai ktetekrl, amelyet az LVM2 esetben rni is s olvasni is lehet a logikai ktetek thelyezhetk mkds kzben msik fizikai ktetre a logikai kteteket svokra lehet bontani s ezeket a RAID0-hoz hasonlan el lehet osztani a fizikai ktetek kztt egy logikai ktetet lehet tkrzni, s ezzel a RAID1-hez hasonl mkdst lehet elrni van arra is lehetsg, hogy ktetcsoportokat osszunk tbb rszre vagy tbbet egyestsnk. Ebben az esetben felttel az, hogy a ktetcsoporton bell ne legyenek hozzrendelt logikai ktetek.

Az LVM hasznlata egyszersti s hatkonyabb teszi a lemezkezelst fleg abban az esetben, amikor sok diszkkel rendelkeznk. A rendszernk sebessgt befolysolja az, hogy milyen a viszony a fizikai illetve a logikai ktetek kztt. A lineris lekpezs (linear mapping) esetben egy logikai ktet els rsze egy fizikai kteten tallhat, mg a msodik fele egy msik fizikai kteten. Vagyis tekinthetnk r gy, mint kett fizikai partci egyms utn trtn sszefzse. gy knnyen elfordulhat, hogy a lemezeink kzl csak az egyik dolgozik, a msik nem vgez semmilyen mveletet adott fjl rskor vagy olvasskor. A svokra val lekpezs (striped mapping) esetben a logikai ktet egyms utn kvetkez rszei nem egy diszkrl kerlnek ki, hanem felvltva a rendelkezsre ll fizikai ktetek kzl. Ez jelents mrtkben javthatja a rendszernk teljestmnyt. A kvetkezkben szeretnk bemutatni egy pldt LVM hasznlatra: A partcik s eszkzk felhasznlsi smjnak megtervezse Fizikai ktetek ltrehozsa: pvcreate /dev/sda2 /dev/sdb Ktetcsoport(ok) ltrehozsa: vgcreate vg1 /dev/sda2 /dev/sdb Ktetcsoport(ok) frisstse: /etc/init.d./lvm restart Logikai ktetek ltrehozsa: lvcreate -L 5g -n vol1 vg1 Fjlrendszer ltrehozsa: mkfs.ext3 /dev/mapper/vg1_vol1 Fjlrendszer csatlakoztatsa: mount /dev/mapper/vg1_vol1 /mnt/vol1 Az LVM-el kapcsolatban fontos megemlteni, hogy nem biztost redundns adattrolst. ppen ezrt a gyakorlatban valamilyen hibatr RAID szinttel egytt ajnlott hasznlni. Egy logikai ktet maximlis mrete 2.6-os kernel esetben 32 bites rendszerben 16TB, 64 bites rendszerben pedig 8EB. A szoftveres RAID esetben gyakorlatilag az mdadm parancs segtsgvel meg tudjuk oldani a RAID-el kapcsolatos mveleteket. Ezzel szemben az LVM2 esetben tbb parancsunk is van. A parancsokat csoportosthatjuk aszerint, hogy fizikai ktetekhez, ktetcsoportokhoz vagy logikai ktetekhez kapcsoldnak. A parancsok nevbl erre egyszeren kvetkeztethetnk.

34

A fizikai ktetekhez kapcsold parancsok: pvs: fizikai ktetekre vonatkoz informcik sszegzse pvscan: fizikai ktetek keresse a diszkeken pvdisplay: fizikai ktetek jellemzinek megtekintse pvcreate: fizikai ktet ltrehozsa pvchange: fizikai ktet attribtumainak megvltoztatsa pvmove: PE-k mozgatsa msik fizikai ktetre pvremove: fizikai ktet megszntetse. Ez utn a partci mr nem hasznlhat az LVM-el. pvresize: fizikai ktet tmretezse (miutn pl. az fdisk-el a partcit tmreteztk) A ktetcsoportokhoz kapcsold parancsok: vgs: ktetcsoportokra vonatkoz informcik sszegzse vgscan: ktetcsoportok keresse a diszkeken vgdisplay: jellemzinek megtekintse vgcreate: ktetcsoport ltrehozsa vgchange: ktetcsoport attribtumainak megvltoztatsa vgrename: ktetcsoport tnevezse vgsplit: ktetcsoport kt rszre val hastsa vgmerge: kett ktetcsoport egyestse vgextend: ktetcsoport mretnek nvelse vgreduce: ktetcsoport mretnek cskkentse vgck: ktetcsoportra vonatkoz metaadatok ellenrzse vgmknodes: a /dev knyvtrban a ktetcsoportokhoz tartoz eszkzfjlok ltrehozsa vgconvert: LVM1 ktet konvertlsa LVM2 ktett vgexport: ktetcsoport elrejtse vgimport: rejtett ktetcsoport jra ismertt ttele vgremove: ktetcsoport trlse A logikai ktetekhez kapcsold parancsok: lvs: logikai ktetekre vonatkoz informcik sszegzse lvscan: logikai ktetek keresse a diszkeken lvdisplay: logikai ktetek jellemzinek megtekintse lvcreate: logikai ktet ltrehozsa lvchange: logikai ktet attribtumainak megvltoztatsa lvrename: logikai ktet tnevezse lvextend: logikai ktet mretnek nvelse lvreduce: logikai ktet mretnek cskkentse lvresize: logikai ktet tmretezse lvconvert: logikai ktet konvertlsa (linear, mirror, snapshot mdok kztt) lvremove: logikai ktet megszntetse A parancsok neveibl ltszik, hogy a fejlesztk egy elre definilt smt kvettek a parancsok neveinek meghatrozsakor.

35

5.4. Egy RAID1-et, illetve LVM2-t egyttesen hasznl rendszer teleptse


Amikor egy rendszert teleptnk nem tudjuk pontosan azt, hogy az j rendszert mire fogjuk hasznlni a ksbbiekben. Elfordulhat az, hogy a hasznlt fizikai partcik mrett nem megfelelen vlasztjuk meg. Az elz fejezet alapjn lthatjuk, hogy az LVM segtsgvel az effle problmk kikszblhetek. St egyes fjlrendszerek esetben megoldhat az is, hogy mkds kzben tmretezzk a fjlrendszert. Tegyk fel, hogy rendelkeznk ngy darab diszkkel, amelyeket a /dev/sda, /dev/ sdb, /dev/sdc, /dev/sdd eszkzfjlokon keresztl rhetnk el. A diszkek mrete s tpusa legalbb pronknt megegyezik. A /dev/sda s a /dev/sdb eszkzk kett partcira lennnek osztva: /dev/sda1 100M RAID tpus (FD) /dev/sda2 fennmarad szabad hely RAID tpus (FD) A /dev/sdc s /dev/sdd nem lenne particionlva, hanem csak RAID1-be sszekapcsolva. A /dev/sda1 a /dev/sdb1-el lenne RAID1-be kapcsolva, a /dev/sda2 pedig a /dev/sdb2-vel. Ez utbbi pedig LVM segtsgvel ssze lenne kapcsolva a /dev/sd[cd]-bl kpzett RAID1-el. A Debian 5.0 telept menrendszere nem tmogatja azt, hogy diszkeket hasznljunk partcis tbla nlkl. Azonban parancsok segtsgvel ez is kivitelezhet. Teleptsk a Debian GNU/Linux 5.0-t a szoksos mdon, majd jussunk el a telept menbl a Lemezek particionlsa men pontig (De ezt mg ne futtassuk.). Ajnlott expert mdban vgezni a teleptst. Ebben az esetben az elzekben definilt smt nem a telept segtsgvel, hanem parancsok felhasznlsval fogjuk megoldani. ALT-F2 billentykombincival tvlthatunk egy msodik virtulis konzolra, ahol ENTER megnyomsra kapunk egy root shellt. Itt a kvetkez parancsokkal az elzekben definilt sma kivitelezhet:

fdisk /dev/sda a kett partci ltrehozsa s tpusnak belltsa FDre (RAID auto detect) sfdisk -d /dev/sda | sfdisk /dev/sdb a /dev/sda diszken lv partcis tbla tmsolsa /dev/sdb eszkzre mknod /dev/md0 b 9 0 mknod /dev/md1 b 9 1 mknod /dev/md2 b 9 2 mivel nem lteznek az egyedi md eszkzknek megfelel fjlok, ezrt azokat ltre kell hozni chmod 660 /dev/md[0-2] chown root.6 /dev/md[0-2] a ltrehozott eszkzfjlok tulajdonjognak s jogosultsgainak belltsa. Mivel a disk nev csoport itt mg nem ltezik, ezrt a GID-jt hasznlom. modprobe dm-mod modprobe raid1 a Device mapper s a RAID1 tmogats betltse mdadm -create /dev/md0 -level=1 -raid-devices=2 /dev/sd[ab]1 mdadm -create /dev/md1 -level=1 -raid-devices=2 /dev/sd[ab]2
36

mdadm -create /dev/md2 -level=1 -raid-devices=2 /dev/sd[cd] hrom RAID1 ltrehozsa pvcreate /dev/md[12] fizikai ktet ltrehozsa a RAID1 eszkzkn vgcreate vgmain /dev/md[12] a kt fizikai ktetbl a vgmain ktetcsoport ltrehozsa lvcreate -L 2000m -n lvroot vgmain lvcreate -L 1000m -n lvvar vgmain lvcreate -L 500m -n lvswap vgmain hrom logikai ktet ltrehozsa a vgmain ktetcsoporton bell. Az els neve lvroot, mrete 2000MB. A msodik neve lvvar, mrete 1000MB. A harmadik neve lvswap, mrete 500MB. Miutn ezeket a parancsokat kiadtuk, ALT-F1 megnyomsval visszavlthatunk a telept menjbe. Amikor a Lemezek particionlsa ment kivlasztjuk, akkor a telept automatikusan rzkeli a parancsok segtsgvel ltrehozott RAID-et, illetve logikai kteteket. gy csak annyi a dolgunk, hogy az egyes logikai kteteknl kivlasszuk a felhasznls mdja esetben a megfelel fjlrendszert, s ezutn a tbbi szoksos teleptsi lpst elvgezzk. A /dev/md0 legyen a /boot-ban csatlakoztatva, a /dev/mapper/vgmain-lvroot (vgmain ktetcsoporton belli lvroot logikai ktet) pedig a / fjlrendszer. A /dev/ mapper/vgmain-lvvar a /var al legyen csatlakoztatva, a /dev/mapper/vgmainlvswap pedig virtulis memriaknt legyen hasznlva. Miutn a telepts befejezdtt, s az j rendszer elindult, egy dolog van mg htra. Alaprtelmezsknt a telept a GRUB-ot az els diszk (/dev/sda) MBRjbe teleptette. Felteszem, hogy ennl a krdsnl nem vltoztattuk meg a telept ltal felajnlott belltst. Abban az esetben, hogyha a /dev/sda eszkznk meghibsodna, akkor a rendszer nem lenne kpes nllan elindulni, mivel a GRUB csak a /dev/sda eszkz elejre lett teleptve. Azrt, hogy a rendszernk ez ellen is vdve legyen a /dev/sdb eszkz esetben is teleptennk kell a GRUB-ot. Ezt pldul a kvetkez mdon tehetjk meg: Bejelentkeznk root-knt a mkd rendszerbe. Kiadjuk a grub parancsot, ezzel elindul a grub shell. Ezutn pedig a kvetkez parancsokat kell kiadnunk: device (hd0) /dev/sdb root (hd0,0) setup (hd0) Miutn ez vgrehajtdott, utna kilphetnk a grub shell-bl a quit paranccsal. A grub esetben a device paranccsal mdostottuk, hogy melyik eszkz legyen a hd0. Ez egszen addig marad rvnyben, amg ki nem lpnk a grub shellbl. A root paranccsal adjuk meg, hogy melyik diszk melyik partcijra telepljn a GRUB. A GRUB 0-tl kezdi az elsdleges partcik sorszmozst, nem pedig 1tl ahogyan a Linux kernel. Ennlfogva a GRUB ide helyezi a sajt fjljait, amelyek a setup parancs kiadsa utn msoldnak erre a helyre, illetve a GRUB a diszk MBR-jbe telepl. (Mivel RAID1 van, ezrt a GRUB fjljai mr amgy is elrhetk ebben a knyvtrban.) A teleptett rendszernk teht megvalstja a redundns adattrolst, s a logikai
37

ktet kezelst egyszerre. Amellett, hogy tbbszrsen vannak trolva az adataink, arra is van lehetsgnk, hogy kihasznljuk az LVM adta lehetsgeket, elnyket.

5.5. A diszk particionls s a fjlrendszer ltrehozs


5.5.1. A diszk particionls Amikor egy winchestert szeretnnk hasznlni akkor nem felttlenl egyben szeretnnk ltni a teljes diszket. ppen ezrt az eszkzt tbb rszre, partcira oszthatjuk. A lemezen lv partcikat jellemzit a partcis tbla trolja. Ennek a tpusa is tbbfle lehet. Mi a tovbbiakban csak az msdos tpus partcis tblval fogunk foglalkozni. A lemezek particionlsnak alapvet eszkze az fdisk parancs. fdisk device Az fdisk parancs indtsa utn a paramterknt tadott blokkos eszkzn lehetsges a partcis tbla mdostsa. Miutn a parancs elindul, akkor egy sajt felletet biztost a parancsok begpelshez. Az itt elrhet fontosabb parancsok: a: a boot flag (aktv vagy nem aktv) vltoztatsa egy partci esetben c: DOS kompatibilis md ki-be kapcsolsa d: partci trlse sorszm alapjn l: az ismert partci tpusok listzsa m: az elrhet parancsok listjnak kirsa n: j partci ltrehozsa o: res partcis tbla ltrehozsa p: a partcis tbla jelenlegi llapotnak kirsa q: kilps ments nlkl t: partci tpusnak mdostsa sorszm s tpuskd alapjn v: a partcis tbla ellenrzse w: a vltozsok mentse Az fdisk-nek ltezik egy ncurses alap frontend-je (cfdisk). Ez annyit jelent, hogy karakteres kpernyn men-vezrelt mdon kpesek vagyunk a partcis tbla manipulcijra. Ennlfogva a legtbb ember szmra jval knyelmesebb a hasznlata. A program annyit tesz, hogy az egyes menbeli esemnyeknek megfelelen fdisk parancsokat hoz ltre, majd ezeket futtatja le az fdisk segtsgvel. Az sfdisk parancs szintn a partcis tbla manipulcijra hasznlhat. Legfontosabb felhasznlsi lehetsge a partcis tbla mentse illetve visszalltsa.

38

Partcik mentse: Partcik visszalltsa:

sfdisk -d /dev/sda > sda_PART sfdisk /dev/sda < sda_PART

Az sfdisk sajt formtumot hasznl a mentsre. Az elz alfejezetben hasznlt teleptsi plda esetben a tartalma pldul a kvetkez: # partition table of /dev/sda unit: sectors /dev/sda1 /dev/sda2 /dev/sda3 /dev/sda4 : : : : start= start= start= start= 63, 208845, 0, 0, size= size= size= size= 208782, 8177085, 0, 0, Id=fd, bootable Id=fd Id= 0 Id= 0

A Linux szempontbl fontos partcis tbla bejegyzs tpusok a kvetkezk: 0x83 Linux 0x82 Linux swap 0x85 Linux extended 0x8e Linux LVM 0xfd Linux raid autodetect Az elz felsorolsban a 0x jelzi, hogy hexadecimlis rtkrl van sz. A lemezek particionlsra hasznlhat meg a parted nev program, vagy annak valamelyik frontend-je (gparted, qtparted). 5.5.2. A fjlrendszer ltrehozs Egy winchester esetben a partci ltrehozsa nmagban mg kevs. Ahhoz, hogy az adott terleten adatokat tudjunk trolni, szksgnk van arra, hogy az adott partcin valamilyen Linux ltal ismert fjlrendszert hozzunk ltre. Ms opercis rendszerek esetben a fjlrendszer ltrehozst inkbb formzsnak szoks hvni. Fjlrendszert nemcsak fizikai kteten lehet ltrehozni, hanem brmilyen blokkos eszkzn. Ilyenek lehetnek akr a szoftveres RAID ltal ltrehozott /dev/md[01...] eszkzk, vagy pedig az LVM ltal definilt logikai ktetek. A fjlrendszer ltrehozs ltalnos parancsa az mkfs (make filesystem). Ahhoz, hogy a parancs klnbz fjlrendszereket tudjon ltrehozni, szksgnk van a megfelel Debian csomagokra. ext2/ext3 e2fsprogs reiserfs (3.6) reiserfsprogs reiserfs (4.0) reiser4progs xfs xfsprogs jfs jfsutils

39

A parancs fontosabb paramterei: mkfs [ -t fstype ] [ fs-options ] device [ blocks ] Ahol:


-t fstype: fjlrendszer tpusa fs-options: az adott fjlrendszerre vonatkoz specilis belltsok device: az eszkzfjl neve blocks: a fjlrendszernek sznt blokkok szma

Amennyiben ext2 vagy ext3 tpus fjlrendszert szeretnnk ltrehozni, abban az esetben hasznlhatjuk az mke2fs parancsot. Erre mutat hard link lesz az mkfs.ext2 s az mkfs.ext3. Mivel a kt fjlrendszer bels felptse megegyezik, ezrt nincsen kln parancs a ltrehozsra. A legfontosabb klnbsg, hogy az ext2 nem naplz fjlrendszer. Az mke2fs parancs fontosabb opcii: mke2fs [ options ] device [ blocks ] Ahol:

-b block-size: blokkmret megadsa -c: ellenrzs -i bytes-per-inode: byte/i-node arny megadsa -j: ext3 fjlrendszer ltrehozsa -J: ext3 journal opcik megadsa -L label: lemezcmke megadsa -m number: a rendszergazda szmra fenntartott blokkok arnya (5%) -N number-of-inodes: az i-node-ok szma -T fs-type (news (4k), largefile (1M), largefile4 (4M))

Adott fjlrendszer ltrehozsra hasznlhat tovbbi parancsok: mkfs.reiserfs, mkreiserfs reiserfs 3.6 mkfs.reiser4, mkreiser4 reiserfs 4.0 mkfs.xfs xfs mkfs.jfs, jfs_mkfs jfs mkfs.cramfs cramfs mkswap swap mkinitramfs initramfs (gzippel tmrtett cpio) mkisofs iso9660 fs mkfs.msdos, mkfs.vfat, mkdosfs FAT12, FAT16, FAT32 mkfs.ntfs, mkntfs NTFS mkfs.gfs, gfs_mkfs GFS (Global FS) mkfs.ocfs2 OCFS2 (Oracle Cluster FS) Miutn az adott fjlrendszert ltrehoztuk, utna birtokba is vehetjk. Ahhoz, hogy az adott fjlrendszer hasznlhat legyen adatok trolsra (rsze legyen a rendszernknek) csatlakoztatnunk kell.
40

5.6. A fjlrendszerek ellenrzse s csatlakoztatsa


5.6.1. A fjlrendszer ellenrzse Mieltt egy fjlrendszert csatlakoztatunk ajnlott, hogy ellenrizzk, hogy a fjlrendszer nyilvntartsa rendben van-e. Ha ugyanis a fjlrendszerben valamilyen hiba keletkezett, abban az esetben a tovbbi mveletek csak tetzik a bajt. Fjlrendszer hiba bekvetkezhet pldul lemez, lemezvezrl vagy memria hiba miatt. De egy szablytalan lells (ramsznet, tpegysg meghibsods) esetben is megtrtnhet. A fjlrendszer ellenrzs ltalnos parancsa az fsck (filesystem check). Az fsck parancs fontosabb paramterei: fsck [ -t fstype ][ options ] device Az opci kzl fontos a -a, amely az automatikus javtst jelenti. Az mkfs parancshoz hasonlan lteznek olyan parancsok, amelyeknek a neve az fsck szval kezddik. Ezek esetben mr nem kell megadni a -t kapcsol utn a fjlrendszer tpust. Ilyen pldul az fsck.ext2, fsck.reiserfs, ... 5.6.2. Fjlrendszer csatlakoztatsa Amennyiben a fjlrendszer ellenrzse sikeresen vgrehajtdott nyugodtan csatlakoztathatjuk a fjlrendszert. Brmilyen a kernel ltal tmogatott fjlrendszert kpesek vagyunk csatlakoztatni. Abban az esetben, hogyha az automatikus kernel modul betlts engedlyezett, akkor a csatlakoztats eltt nem kell a fjlrendszer tpusnak megfelel kernel modult betlteni. Ellenkez esetben ezt meg kell tennnk, mivel ez szksges felttele a csatlakoztatsnak. Ahhoz, hogy valamilyen fjlrendszert csatlakoztassunk, szksgnk van egy ltez knyvtrra. Azt a knyvtrat, ahova egy fjlrendszert csatlakoztatunk hvjuk csatolsi pontnak (mount point). A fjlrendszer csatlakoztats ltalnos parancsa a mount. Az mount parancs leggyakrabban hasznlt alakja: mount [ -t fstype ] device dir [ -o options ] A device jelenti az eszkzt, amit csatlakoztatni kell, a dir pedig a csatlakoztatsi pontot. A mount parancsnak rengeteg paramtere van. Ezen paramterek egy rsze fgg a fjlrendszer tpustl, mg a tbbi ltalnos lesz a Linux sajt fjlrendszereire. Az utbbi alatt minden olyan fjlrendszert rtek, amely alatt mkdik a Linux jogosultsgi rendszere s a specilis fjl tpusok ltrehozhatk. A mount parancs fontosabb opci prjai (a -o utn vesszvel elvlasztva randk): atime, noatime: hozzfrsi id frisstse az i-node tblban auto, noauto: automatikusan kell-e csatlakoztatni (-a opci esetben) dev, nodev: engedlyezettek-e a specilis eszkzfjlok
41

exec, noexec: ro, rw: sync, async: suid, nosuid: user, nouser:

engedlyezettek-e a binris fjl vgrehajtsa csak olvashat vagy rhat-olvashat md szinkron vagy aszinkron I/O hasznlata setuid bit engedlyezett-e norml felhasznl csatlakoztathatja-e

Azrt, hogy ne kelljen minden esetben felsorolni mindegyik opcit, kitalltk azt, hogy legyen egy alaprtelmezs. A defaults opci az elzekben felsoroltak kzl a kvetkezket tartalmazza: atime, auto, dev, exec , rw, async, suid, nouser. Abban az esetben, hogyha az alaprtelmezstl csak egy-kt opciban trnk el hasznlhatjuk a kvetkez mdon: defaults,noatime defaults,nodev,nosuid Az elzekben felsorolt prok mellett a mount esetben az albbi opcikat is hasznlhatjuk: bind: egy adott knyvtr ms helyrl trtn elrse (a device paramter helyett ebben az esetben egy ltez knyvtrat kell megadni) loop: egy fjl tartalmnak csatlakoztatsa egy loopback device segtsgvel (pl.: iso fjl tartalmnak elrse) remount: egy mr korbban csatlakoztatott fjlrendszer jra csatlakoztatsa grpquota, usrquota: lemezkvta belltshoz Az albbi kapcsolk is lehetsgesek: -t: fjlrendszer tpusnak megadsa -a: automatikus csatlakoztats a /etc/fstab alapjn -n: nem prblja meg rni a /etc/mtab-ot -r: megegyezik a -o ro opcival -w: megegyezik a -o rw opcival Pldk mount hasznlatra: mount -n -o remount,rw / mount -t reiserfs /dev/sdb1 /boot mount -t iso9660 debian.iso /mnt/iso -o loop,ro Egyes fjlrendszerek esetben tovbbi opcik is lehetsgesek: mount -t ext3 /dev/sdb2 /home -o rw,user_xattr,acl mount -t tmpfs tmpfs -o size=100M /var/tmp mount -t jfs /dev/sdb3 /mnt/test -o remount,rw,resize Miutn egy fjlrendszert sikeresen csatlakoztatunk, utna kpesek vagyunk rajta adatokat trolni. Figyeljnk arra, hogy a naplz fjlrendszerek esetben amennyiben nem kls naplt hasznlunk, az cskkenteni fogja a fjlrendszer mrett. Amikor egy rendszert teleptnk azrt is fontos lehet az egyes knyvtrakat kln helyre tenni, mert abban az esetben van arra lehetsg, hogy a rendszer egyes rszeit klnbz mount opcikkal csatlakoztassuk.
42

Erre plda a kvetkez felsorols: / defaults /boot rw,nodev,noexec,nosuid /home rw,nodev,noexec,nosuid /tmp rw,noatime,nodev,noexec,nosuid /usr rw,nodev /var rw,noatime,nodev,noexec,nosuid Amennyiben valamelyik csatlakoztatott fjlrendszerre mr nincsen szksgnk, abban az esetben levlaszthatjuk. A levlaszts parancsa az umount. A mount kapcsoli kzl itt is hasznlhat a -a, -n illetve a -t. Fontos dolog, hogy amikor a rendszer indul elsknt trtnik meg a root fjlrendszer csatlakoztatsa, majd ezutn jhetnek az egyb fjlrendszerek. Ahhoz, hogy valamilyen fjlrendszert le tudjunk csatolni elsknt gondoskodnunk kell arrl, hogy az adott knyvtrat ahova a fjlrendszer csatlakoztatva van semmilyen alkalmazs ne hasznlja. Teht elsknt azokat az alkalmazsokat kell lelltani, amelyek a csatlakoztatsi pont alatt valamilyen fjlt hasznlnak. Csak ezutn kvetkezhet be a levlaszts. A rendszerlelltskor a root fjlrendszer levlasztsa trtnik meg legutoljra. Plda umount hasznlatra: umount -a -t reiserfs Jellegt tekintve a swap partci vagy swap file hasznlata kapcsoldik a mount parancshoz. Annyi a klnbsg, hogy ennek a tartalmt nem szoktuk kzvetlenl olvasni. Vagyis itt csak a hasznlatot kapcsoljuk be illetve ki. swapon /dev/sdb4 swapoff /dev/sdb4 Abban az esetben, hogyha nem ll rendelkezsre szabad partci, de van valahol szabad helynk, akkor foglalhatunk helyet trcsere cljra. Ahhoz, hogy egy fjlt kpesek legynk swap terletknt hasznlni fontos, hogy folyamatosan legyenek az egyes blokkjai trolva a diszken. Plda 500MB-os swapfile ltrehozsra s hasznlatba vtelre: dd if=/dev/zero of=swapfile bs=1M count=500 mkswap swapfile sync swapon swapfile

5.7. A fjlrendszerek tmretezse


Amikor egy fjlrendszert ltrehozunk, akkor az egy rgztett mrettel jn ltre. ltalban a fjlrendszer teljes mrtkben kitlt egy partcit vagy logikai ktetet. A LVM esetben lttuk, hogy logikai ktetek tmretezhetk, mretk parancsok segtsgvel nvelhet s cskkenthet. 5.7.1. Fjlrendszer mretnek a nvelse Amennyiben egy fjlrendszer mrett szeretnnk nvelni, abban az esetben elsknt a fizikai vagy logikai ktet mrett kell nvelni. Az LVM esetben ez nem okoz problmt, viszont a partcik esetben igen. Ahhoz, hogy egy winchester partcis tbljt mdostani tudjuk, elsknt le kell csatolni az sszes

43

partcit. Ez ugyanis felttele annak, hogy a kernel mdosts utn jra tudja olvasni a partcis tblt. Ezutn le tudjuk trlni a partcit, majd a helyre egy ugyanolyan tpus, csak nagyobb mrett hozhatunk ltre. Nagyon fontos, hogy az j partci kezdete megegyezzen a korbbi partci kezdetvel. Ezutn kezddhet a fjlrendszer mretnek nvelse. Az egyes fjlrendszerek esetben ez a klnbz parancsok segtsgvel trtnhet. Tegyk fel, hogy a /dev/sdb2 partci mrett nveltk meg, s most a rajta lv fjlrendszer mrett szeretnnk megnvelni: ext2, ext3 reiserfs 3.6 xfs jfs mount -t resize2fs /dev/sdb2 resize_reiserfs /dev/sdb2 xfs_growfs /mnt/sdb2 (a csatolsi pont a paramter) jfs /dev/sdb2 /mnt/sdb2 -o remount,rw,resize

Mindegyik parancs a partci mretig megnveli a fjlrendszer mrett. Amennyiben nem ez a clunk paramterek segtsgvel megadhat a nvels mrtke. 5.7.2. Fjlrendszer mretnek a cskkentse Amennyiben helyet szeretnnk felszabadtani egy diszken vagy ktetcsoporton bell, gy szksgnk van a partci vagy logikai ktet mretnek a cskkentsre. Csak akkora mretcskkentst tehetek, hogy az aktulisan trolt adatok a cskkentett fjlrendszerben is elfrjenek. A cskkents esetben fordtott sorrendben kell eljrni, mint azt a nvelskor tettk. Vagyis elsknt kell a fjlrendszert, majd pedig a trol ktetet cskkenteni. Az xfs s a jfs fjlrendszerek esetben nincsen arra lehetsg, hogy mkds kzben, vagy offline mdon cskkentsk a fjlrendszer mrett. Tegyk fel, hogy van egy 500MB-os partcink (/dev/sdb1). Szeretnnk a mrett cskkenteni kb. 400MB-ra: A ext2, ext3 esetben a resize2fs /dev/sdb2 [size] parancs segtsgvel lehet a fjlrendszer mrett cskkenteni akr mkds kzben is. A [size] paramtereknt meg kell adnunk a blokkmretet, amire akarjuk a fjlrendszer cskkenteni. 1kB-os blokkmretet felttelezve 400000 krli rtket kell itt megadnunk. A reiserfs (3.6) estben csak akkor tehetjk meg az tmretezst, hogyha a partci nem aktv. Ebben az esetben a resize_reiserfs -s 100M /dev/sdb2 parancs segtsgvel a feladat kivitelezhet.

5.8. A fjlrendszerekhez kapcsold konfigurcis fjlok


Amikor a Linux indul, akkor ltalban a kernelnek parancssorban tadsra kerl, hogy melyik eszkz, melyik partcijt csatlakoztassa fel, mint root fjlrendszer. A GRUB esetben ilyen belltsok pldul: kernel /boot/vmlinuz root=/dev/sda2 kernel /vmlinuz root=/dev/mapper/vgmain-lvroot Az adott eszkz esetben szksgnk van egy konfigurcis fjlra, amely a tovbbi fjlrendszer csatolsi paramtereket adja meg. Ez a fjl a /etc/fstab.

44

Ebben bellthatjuk, hogy hova s milyen csatlakoztatsi paramterekkel legyenek az egyes fjlrendszerek csatlakoztatva. Termszetesen a sikeres rendszerinduls felttele, hogy kernel azt a fjlrendszert, amelyet a rendszerbetlt esetben megkap mint root fjlrendszert, azt el tudja rni s a rajta lv fjlrendszer tpust ismerje. Amennyiben ez a felttel teljesl, akkor a /etc/fstab alapjn folytatdhat a fjlrendszerek automatikus csatlakoztatsa. Plda /etc/fstab-ra:
# /etc/fstab: static # proc /dev/md0 /dev/sda1 /dev/md1 /dev/mapper/vg-lvvar /dev/scd0 /dev/fd0 file system information. /proc / /boot /home /var /cdrom /floppy proc reiserfs ext3 reiserfs reiserfs udf,iso9660 auto defaults defaults,acl defaults rw,acl,nosuid,nodev defaults user,noauto rw,user,noauto 0 0 0 0 0 0 0 0 1 2 2 2 0 0

A konfigurcis fjl esetben megklnbztethetnk hat mezt. A fjl egy sora egy fjlrendszer csatlakoztatshoz szksges paramtereket lltja be. A mezk jelentse balrl jobbra haladva: 1. mez: a specilis eszkz vagy tvoli fjlrendszer, amit csatlakoztatni kell 2. mez: a csatlakoztatsi pont 3. mez: a fjlrendszer tpusa 4. mez: a fjlrendszer csatlakoztatsi mdja (mount parancs -o kapcsolja esetben hasznlhat opcik) 5. mez: kell-e biztonsgi ments (dump) 6. mez: kell-e ellenrzst futtatni Amennyiben a /etc/fstab nev fjl adott sorban ssze van rendelve egy csatlakoztatsi pont egy eszkzzel, illetve fjlrendszerekkel s azok csatlakoztatsi paramtereivel abban az esetben a mount parancs kevesebb paramterrel is hasznlhat. Ekkor csak az eszkz nevt vagy a csatlakoztatsi pontot kell megadni a mount parancs utn. Pldk mount parancs hasznlatra az elz pldban szerepl /etc/fstab nev fjlt alapul vve: mount /cdrom mount /dev/md1 Hasonl mdon az umount parancs is hasznlhat. Amennyiben a mount parancsot paramterek nlkl hasznljuk, gy megmutatja a rendszer jelenleg csatlakoztatott eszkzeit, illetve a csatlakoztats paramtereit.

45

Plda mount parancs kimenetre: /dev/md0 on / type reiserfs (rw,acl) tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755) proc on /proc type proc (rw,noexec,nosuid,nodev) sysfs on /sys type sysfs (rw,noexec,nosuid,nodev) procbususb on /proc/bus/usb type usbfs (rw) udev on /dev type tmpfs (rw,mode=0755) tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev) devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620) /dev/sda1 on /boot type ext3 (rw) /dev/md1 on /home type reiserfs (rw,nosuid,nodev,acl) /dev/mapper/vg-lvvar on /var type reiserfs (rw) binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) A felcsatlakoztatott fjlrendszerek jellemzi megtekinthetk a /etc/mtab vagy a / proc/mounts segtsgvel is.

46

6. Sajt kernel fordtsa


6.1. Elkszletek a kernel fordtshoz
Az Opercis rendszerek Linux jegyzetben a 7. fejezet a kernelrl, illetve a ltalnossgban a kernel fordtsrl szl. Az olvasrl felttelezem, hogy az ott lertakat ismeri, vagy ms forrsbl rendelkezik megfelel szintt ismeretekkel. Ebben a fejezetben rszletesen megismerkednk a kernel lehetsgeivel, illetve megnzzk azokat a belltsokat, drivereket amelyek kapcsoldnak a szmtgpes laborokban hasznlt VMware virtulis gpekhez. 6.1.1. Mikor szksges kernelt fordtani? ltalnos szablyt nem tl egyszer mondani. Nhny dolog, amely indokolhatja a sajt kernel ellltst: a disztribci kszti ltal kiadott kernel mg nem tmogatja az adott hardver eszkzt a hasznlt driverek kzl valamelyikben biztonsgi vagy mkdsi hiba van az adott szolgltats, protokoll, hlzati tmogats nem lett belefordtva a kernelbe sajt, specilis mkdsi krnyezet, amely az ltalnos cl kernellel nem mkdne (pl. hlzati rendszerinduls, Boot CD, ...) valamilyen kiegszt patch-e(ke)t szeretnnk hasznlni (pl.: grsecurity) nem akarjuk, hogy ms is ismerje a kernelnk belltsait Ha az elzek kzl tbb dolog is fennll, akkor valsznleg szksgnk van sajt kernel fordtsra. A sajt kernel elnyei: tbbfle hardvereszkzt tmogathat optimalizlni lehet a hardverhez (pl. CPU utastskszlet) kevesebb memria hasznlat kevesebb driver, vlheten kisebb hibalehetsg gyorsabb mkds az jabb kernelben javtva lettek bizonyos biztonsgi hibk Termszetesen az opercis rendszer magjnak a fordtsa az egsz rendszer mkdsre komoly hatst gyakorol. A dokumentcik tolvassa utn nyugodtan nekifoghatunk. Nhny fontos dolog, amelyet mindig szem eltt kell tartanunk: a kernelnek el kell tudnia rnie azt hardver eszkzt, illetve azt a fjlrendszert, ahol a root fjlrendszer tallhat. (sikeres rendszerinduls felttele) a konfigurls eltt el kell dntennk, hogy a rendszerindulst initrd (initial RAM disk) segtsgvel, vagy nlkle szeretnnk-e elvgezni azokrl a tmogatsokrl, amelyekrl nem tudjuk pontosan, hogy mi, de alaprtelmezsknt ajnlja a belefordtst, fogadjuk meg a tancst

47

6.1.2. A kernel fordts szksgletei Ahhoz, hogy kernelt tudjunk kicsomagolni, foltozni s fordtani Debian GNU/Linux rendszerben, szksgnk van nhny csomagra:

libc6-dev libncurses-dev bzip2 patch binutils gcc, cpp make

ltalnos C header fjlok a make menuconfig hasznlathoz bzip2 tmrt javtsok, mdostsok futtatsa binris segdprogramok (pl.: ld, as, ...) GNU C fordt, C++ elfeldolgoz GNU make a fordtsi folyamat irnytshoz

Ezek az elfelttelek az apt-get install gcc make patch bzip2 libncurses-dev parancs hatsra teleplnek a fggsgi viszonyoknak ksznheten. Az elz parancsban felsoroltak teht minden esetben szksgesek. Ezek mellett a kernel fordts hasznlhat egyb programokat is, melyek kzl nhny alaprtelmezsknt teleptve is van a rendszerben. A 2.6.31.9-as kernel esetben a fordtsi fggsgek a kvetkezk:
5. sz. tblzat Program (csomag) GNU C (gcc) GNU make binutils util-linux module-init-tools e2fsprogs jfsutils reiserfsprogs xfsprogs pcmciautils quota-tools PPP isdn4k-utils nfs-utils procps oprofile udev grub Verzi 3.2 3.8 2.12 2.10o 0.9.10 1.41.4 1.1.3 3.6.3 2.6.0 004 3.09 2.4.0 3.1pre1 1.0.5 3.2 0.9 081 0.93 Ellenrzs parancsa gcc --version make --version ld -v fdformat --version depmod -V tune2fs fsck.jfs -V reiserfsck -V 2>&1| grep reiserfsprogs xfs_db -V pccardctl -V quota -V pppd --version isdnctrl 2>&1|grep version showmount --version ps --version oprofiled --version udevinfo -V grub version

Az elz tblzatban szerepl csomagok egy rsze mr a rendszer teleptst kveten elrhet. Ilyenek pldul a fjlrendszerek kezelshez ktd csomagok. Mg a listban szerepl egyb csomagok csak specilis opcik
48

vlasztsa esetn szksgesek. Az opcionlis csomagokat dlt bettpussal szerepelnek a tblzatban. 6.1.3. A kernel forrs elksztse s foltozsa A tovbbiakban a 2.6.31.9-es verziszm vanilla kernel forrskdjnak elksztst s konfigurlst fogom bemutatni. A kernelrl tudni kell, hogy llandan vltozik, fejldik. Az egyes verzik esetben jabb s jabb lehetsgek jelennek meg vagy avulnak el. Nmely esetben az is elfordul, hogy a tmogatsok helye vltozik, teht mshol talljuk az adott belltst, mint a korbbi verzik esetben. Az elkszts, letlts s ellenrzs lpsei: cd /usr/src mv linux `uname -r` wget \

kernel.org/pub/linux/kernel/v2.6/linux-2.6.31.tar.bz2 \ ftp://ftp.hu.kernel.org/pub/linux/kernel/v2.6/linux-2.6.31.tar.bz2.sign \ ftp://ftp.hu.kernel.org/pub/linux/kernel/v2.6/patch-2.6.31.9.tar.bz2 \ ftp://ftp.hu.kernel.org/pub/linux/kernel/v2.6/patch-2.6.31.9.tar.bz2.sign

Miutn a forrst, illetve a verzi javt patch-et s a digitlis alrsukat letltttk, ajnlatos ellenrizni, hogy rendben vannak-e. Ehhez a kvetkezket kell tennnk: gpg --keyserver pgp.mit.edu --recv-keys 0x517D0F0E Le kell tltennk valamelyik publikus gpg kulcsszerverrl az 0x517D0F0E azonosthoz tartoz publikus kulcsot, amely az <ftpadmin@kernel.org>-hoz tartozik. Majd kvetkezhet az ellenrzs: gpg --verify linux-2.6.24.tar.bz2.sign linux-2.6.24.tar.bz2 gpg --verify patch-2.6.24.3.bz2.sign patch-2.6.24.3.bz2 Amennyiben rendben van ezt ltjuk:
gpg: Signature made 2009. szept. 10., cstrtk, 00.40.47 CEST using DSA key ID 517D0F0E gpg: Good signature from "Linux Kernel Archives Verification Key <ftpadmin@kernel.org>" Ezutn kvetkezhet a forrskd kicsomagolsa s a /usr/src/linux belltsa:

tar xjf linux-2.6.31.tar.bz2 ln -s linux-2.6.31 linux cd /usr/src/linux

Amennyiben 2.6.31-es kernelt szeretnnk fordtani, gy a forrskd mr el lett ksztve. Ezutn kvetkezhet igny szerint a foltozs (patch-els). Amennyiben a 2.6.31-es forrsa ki van csomagolva gy egy patch segtsgvel nvelhetjk a verzijt 2.6.31.9-re. bzcat ../patch-2.6.31.9.bz2 | patch -p1 Ezutn az adott verziszmhoz megfelel egyb foltokat is hasznlhatunk: patch -p1 < ../grsecurity-2.1.14-2.6.31.9-200912191011.patch Egy folt alkalmazsakor minden esetben a patch parancs standard bemenetre

49

kell a szerkesztsi parancsokat tadni. A -p paramter utn megadott szmot az hatrozza meg, hogy hny darab knyvtrat kell trlni a fjlhivatkozsok elejrl. A grsecurity patch els sora pldul: diff -urNp linux-2.6.31.9/arch/alpha/include/asm/atomic.h ... Mivel mi a /usr/src/linux-2.6.31 knyvtrban vagyunk, ezrt a hivatkozs elejrl a linux-2.6.31.9 knyvtrat el kell tvoltani. Ezrt kell a -p1, vagyis egy knyvtrat kell trlnnk a fjl hivatkozsbl. Az elz grsecurity patch-et alkalmazhattuk volna a kvetkezkppen is: cd /usr/src ln -s linux-2.6.31 linux-2.6.31.9 patch -p0 < grsecurity-2.1.14-2.6.31.9-200912191011.patch Ebben az esetben semmilyen fjlhivatkozst nem kell talaktani. De fontos ltrehozni a linux-2.6.31.9 knyvtrat (szimbolikus link is elg), mivel a patch ezen knyvtron belli fjlokat akar majd mdostani.

6.2. A hardver eszkzk s szoftver szksgletek vizsglata


Miutn a forrskd el lett ksztve fontos dolog, hogy tisztban legynk a rendszernk feladatval s a hardver eszkzk paramtereivel. Teht figyelembe kell vennnk a kvetkezket: hardver paramterek: tudnunk kell, hogy a rendelkezsre ll hardver milyen kpessgekkel rendelkezik s ehhez milyen eszkzmeghajtk szksgesek figyelembe kell venni a teleptsi szitucit: attl fggen, hogy milyen fjlrendszereket, illetve milyen egyb diszk kezelsi mdszereket hasznlunk (RAID, LVM, ...) klnbz fjlrendszer tmogatsok szksgesek a hasznlni kvnt protokollok, eljrsok tmogatst is elre vgig kell gondolni a gp vdelme rdekben a kernel szint tzfal hasznlni kvnt szrsi lehetsgei szeretnnk-e initramfs/initrd-t hasznlni a rendszerinduls sorn Amikor az opercis rendszert teleptettk, akkor a disztribci kszti egy ltalnos kernelt adtak. Amely a legtbb szituciban mkdik. A sajt kernel esetben neknk csak egy szitucit kell figyelembe vennnk, hogy a mi esetnkben el tudja ltni a megfelel funkcikat. A tovbbiakban az ingyen elrhet VMware Server ltal emullt virtulis gp paramtereit fogom bemutatni. Vagyis szmunkra a tovbbiakban ez meghatrozza, hogy az egyes driverek kzl mire is lesz szksgnk. A kernel konfigurci sorn, amelyrl a kvetkez alfejezet szl, van arra lehetsgnk, hogy az sszes lehetsg kzl kivlasszuk a szmunkra fontosakat. 6.2.1. A VMware virtulis gp hardver paramterei Amennyiben rendelkeznk egy mkd opercis rendszerrel, gy a hardver eszkzk feltrkpezsre esetben segtsgl hvhatjuk az lspci parancsot. Amennyiben a parancs esetben lteznek ismeretlen eszkzk, akkor ajnlott a
50

helyi adatbzis frisstse. Az lspci parancs ugyanis kiolvassa az egyes eszkzk PCI azonostjt, s ezek alapjn egy sajt adatbzisbl megprbl hozzjuk egy eszkzt rendelni. Az update-pciids paranccsal frissthetjk a szban forg adatbzist. Plda lspci parancs kimenetre:
00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 01) 00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 01) 00:07.0 ISA bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 08) 00:07.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01) 00:07.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 08) 00:0f.0 VGA compatible controller: VMware Inc [VMware SVGA II] PCI Display Adapter 00:10.0 SCSI storage controller: LSI Logic / Symbios Logic 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (rev 01) 00:11.0 Ethernet controller: Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] (rev 10)

A VMware virtulis gp fontosabb hardverei: 6. sz. tblzat Hardver CPU Memria Alaplapi chipset Videkrtya Diszk vezrl Diszk CDROM Egr Soros, Prhuzamos, USB portok Floppy Tpus a hoszt gp processzora a virtulis gp paramterei esetben belltott Intel PIIX4 VMware SVGA II PCI SCSI: lsilogic vagy buslogic tpus IDE: alaplapi PIIX4 tpus vezrl a ltrehozskor belltott tpus s mret IDE vagy SCSI tpus (csak IDE-rl tud bootolni), ISO image hasznlhat CD-knt PS/2-es a hoszt gp megfelel portjai a hoszt gp floppy eszkze, vagy image fjl

Az elzekben felsorolt eszkzk kzl a kernel mkdse szempontjbl a legkritikusabbak: a CPU utastskszlet, a diszk vezrl s diszk tpusok tmogatsa A gptermi laborgyakorlatok esetben hasznlt virtulis gpek jellemzi, s a mkdskhz szksges drivereket mutatja be a kvetkez tblzat. Csak a virtulis gp azon komponenseit tartalmazza, amelyekre vonatkoz informcik felttlenl szksgesek a kernel konfigurlshoz:

51

A VMware virtulis gp mkdshez szksges kernel driverek: 7. sz. tblzat Hardver Pentium 4 CPU HT tmogatssal 512MB Memria Intel PIIX4 VMware SVGA II SCSI: lsilogic diszk vezrl SCSI: buslogic diszk vezrl IDE alaplapi PIIX4 tpus vezrl SCSI diszk IDE diszk SCSI CDROM IDE CDROM Floppy Kernel driver Processor family (Pentium-4/Celeron(P4based)/Pentium-4 M/older Xeon) alaprtelmezsknt tmogatott Intel PIIX/ICH chipsets support VGA text console karakteres mdban (X alatt sajt driver vmware tpus csatolhoz) Fusion MPT ScsiHost drivers for SPI BusLogic SCSI support Intel PIIX/ICH chipsets support SCSI disk support ATA/ATAPI/MFM/RLL support + generic ATA/ATAPI disk support + ATA disk support SCSI CDROM support ATA/ATAPI/MFM/RLL support + Include IDE/ATAPI CDROM support Normal floppy disk support

A kernel konfigurlsa cm alfejezetbl kiderl, hogy az elz tblzatban felsorolt tmogatsok pontosan mely menpontok alatt lesznek elrhetek. A kvetkez fejezetben bemutatom a kernel fontosabb opciit. Ebben az esetben egy olyan VMware virtulis gpet veszek alapul, amely lsilogic tpus SCSI diszk vezrlt s SCSI diszket hasznl, csak ext3 fjlrendszerrel, s nem kell a rendszerindulshoz initramfs/initrd image.

6.3. A kernel konfigurlsa


6.3.1. A konfigurls lehetsgei s a hasznlt jellsi mdok A kernelfordts egy szveges konfigurcis fjl alapjn trtnik. Ebben a fjlban meghatrozott nevek segtsgvel lehetsges adott tmogatsokat ki-be kapcsolni. Minta a konfigurcis fjl soraira: CONFIG_NET=y CONFIG_PACKET=m # CONFIG_IP_ADVANCED_ROUTER is not set A konfigurcis lehetsgeket: make config make menuconfig make xconfig fjl knnyebb elksztsre talltk ki a kvetkez

#sor orientlt mdon #ncurses alap fellet #Qt alap fellet


52

make gconfig

#Gtk alap fellet

Az utols kett futtatshoz teht X grafikus fellet felttlenl szksges. A parancsokat a kernel forrst tartalmaz knyvtrban kell kiadni.

A make menuconfig fmenje 2. sz. bra

A make menuconfig jellsei:

A [ ] kt vlasztsi lehetsget jell [*] a tmogatst be kell pteni a kernel image-be [ ] adott tmogats nem szksges A < > hrom vlasztsi lehetsget jell <*> a tmogatst be kell pteni a kernel image-be <M> a tmogats kls modulknt legyen < > adott tmogats nem szksges A { } azt jelzi, hogy fggsg miatt kivlasztva, de vlaszthatunk kt lehetsg kzl {*} a tmogatst be kell pteni a kernel image-be {M} a tmogats kls modulknt legyen A -*- jelzi, hogy a tmogats fggsg miatt automatikusan kivlasztva s nincsen ms vlasztsi lehetsgnk A norml zrjel esetben valamilyen sztringet vagy szmot adhatunk meg.

A make menuconfig fontosabb billentyparancsai: kurzor mozgat billentykkel navigci ENTER adott almenpont kivlasztsa

53

kett ESC: egy szinttel feljebb a menk kztt Y bepteni valamit M modulknt hasznlni valamit N nem szksges a tmogats SPACE Y => N => M => Y ... a vlaszts mdostsa ? az adott menponthoz tartoz lers megmutatsa

6.3.2. A konfigurls menpontok szerint A tovbbiakban a make menuconfig fmenje alapjn fogom a kernel egyes funkciit rtelmezni. A kernelnek nagyon sok lehetsge van, amely ismertetse meghaladja ezen m terjedelmi lehetsgeit. Azokra az opcikra fogok koncentrlni, amelyek az alap mkdshez kellenek. Ezen fell igyekszem utalsokat tenni, amellyel segtem az eligazodst. General setup ---> (ltalnos belltsok) [*] Prompt for development and/or incomplete code/drivers Mutassa az egyes kdok stabilitsi llapott: NEW j DEPRECATED elavult EXPERIMENTAL ksrleti jelleg (-noinitrd) Local version - append to kernel release [*] Automatically append version information to the version string Sajt verzi hozzfzse a verzi sztringhez [*] Support for paging of anonymous memory (swap) Virtulis memria (swap) tmogatsa [*] System V IPC SVR rendszerektl rklt folyamatok kzti adatcsere [*] POSIX Message Queues POSIX tpus zenet sor, az IPC egy specilis formja [*] BSD Process Accounting Folyamatokrl szl informcik trolsa [ ] Auditing support A kernel mkdsnek vizsglata, ellenrzse < > Kernel .config support Sajt konfigurci trolsa (15) Kernel log buffer size (16 => 64KB, 17 => 128KB) Kernel napl puffer mrete [ ] Group CPU scheduler Folyamatok csoportostsa, csoportknt val CPU allokci [ ] Kernel->user space relay support (formerly relayfs) Nagy mennyisg adat mozgatsa kernel s felhasznli tr kztt [ ] Initial RAM filesystem and RAM disk (initramfs/initrd) support Kezdeti ramdiszk tmogats, a kernel a valdi root fjlrendszer belltsa eltt ezt hasznlja mint kezdeti root fjlrendszer. Innt kernel modulok tlthetk be illetve alkalmazsok indthatk el igny szerint. [*] Optimize for size A kernel mretre val optimalizlsa [ ] Configure standard kernel features (for small systems) ---> Begyazott rendszerekben hasznlhat kernelt kszt. J nhny vlasztsi opcit eleve letilt. Choose SLAB allocator (SLAB) --->
54

Gyakran hasznlt fjl objektumok cache-elsnek mdszere [*] Enable loadable module support ---> (betlthet modul tmogats) [*] Forced module loading Kernel modul betltsnek kierszakolsa [*] Module unloading [*] Forced module unloading Kernelmodulok eltvoltsa norml illetve kierszakolt mdon. [*] Module versioning support Modulok verziszmozsnak tmogatsa [ ] Source checksum for all modules A forrsra utal ellenrz sszeg hasznlata. [-*- Enable the block layer ---> (blokkos eszkzk tmogatsa) [ ] Support for Large (2TB+) block devices and files Nagy mret blokkos eszkzk s fjlok tmogatsa >= 2TB (max. 16TB 32bites rendszerben) IO Schedulers ---> <*> Anticipatory I/O scheduler <*> Deadline I/O scheduler <*> CFQ I/O scheduler Default I/O scheduler (CFQ) ---> Az I/O mveletek esetben hasznlatos temez (elevator) tmogatsa. Processor type and features ---> (processzor tpusok s jellemzik) [ ] Tickless System (Dynamic Ticks) Az idzt nem folyamatosan jr, hanem csak igny szerint. [ ] High Resolution Timer Support Nagy pontossg idzt tmogats. [*] Symmetric multi-processing support Tbb processzoros (SMP) rendszerek tmogatsa [ ] Paravirtualized guest support ---> Paravirtualizci tmogatsa (pl.: Xen) Processor family (Pentium-4/Celeron(P4-based)/Pentium-4 M/older Xeon) Processzor csald kivlasztsa. Itt vlaszthatunk 386-tl felfel, a CPU-nk tpusa szerint. A mintban szerepl Pentium-4 csald mellett elrhet az Opteron/Athlon64/Hammer/K8 s a Core 2/newer Xeon tmogatsa is. [ ] Generic x86 support ltalnos x86 optimalizls az utastskszlet mellett. [ ] HPET Timer Support Nagy pontossg idzt tmogatsa (2) Maximum number of CPUs (2-255) A processzorok maximlis szma [*] SMT (Hyperthreading) scheduler support A Hyperthreading-et figyelembe vev CPU temez. [ ] Multi-core scheduler support Tbb magot figyelembe vev CPU temez.

55

Preemption Model (No Forced Preemption (Server)) A kernel szlak preemptvek legyenek-e. Egy szerver esetben nem kell, mivel nem kell gyorsan felhasznli esemnyekre reaglni. [ ] Machine Check Exception A CPU jelzi a kernelnek pldul ha valamilyen melegedsi hiba van. < > /dev/cpu/microcode - Intel IA32 CPU microcode support CPU microcode frisstsnek lehetsge. < > /dev/cpu/*/msr - Model-specific register support Modellfgg regiszterek tmogatsa specilis eszkzkn keresztl. < > /dev/cpu/*/cpuid - CPU information support CPU tpusnak azonostsa High Memory Support (4GB) ---> Fels memria tmogatsa. Ezltal nemcsak az 1G alatti rsz, hanem maximum 4 vagy 64GB memria is elrhet lesz. Memory model (Flat Memory) ---> Memria bels kezelsnek modellje [*] MTRR (Memory Type Range Register) support A processzor memria hozzfrseinek vezrlsre. Grafikus krnyezet esetben ajnlott hasznlni, mert jelents sebessg nvekedst is eredmnyezhet. Timer frequency (250 HZ) ---> Az idzt frekvencija. Power management options ---> (teljestmny menedzsment) [*] Power Management support A teljestmny menedzsment tmogatsa [*] Suspend to RAM and standby A gp elaltatsa (ACPI S3 llapot) [ ] Hibernation (aka 'suspend to disk' A gp llapotnak mentse (hibernlsa) adott partcira [*] ACPI (Advanced Configuration and Power Interface) Support ---> Az ACPI funkcik tmogatsa (CPU hmrsklet, elemek llapota, AC adapter rzkelse, bekapcsol gomb hasznlata, ... < > APM (Advanced Power Management) BIOS support ---> Az APM BIOS tmogatsa. Az jabb gpek tudjk az ACPI-t. CPU Frequency scaling ---> CPU sebessgnek vltoztatsa meghatrozott szably alapjn. performance: maximlis teljestmny, powersave: teljestmny megrzse, userspace: felhasznli trbl llthat, ondemand: igny szerinti, conservative: hasonlt az ondemand-ra annyi a klnbsg, hogy lpcsnknt nvekszik a sebessg, nem pedig egyszerre. Bus options (PCI etc.) ---> (sn rendszerek tmogatsa) [*] PCI support PCI busz tmogatsa [ ] PCI Express support PCI Express busz tmogatsa [ ] ISA support AT busz tmogatsa < > PCCard (PCMCIA/CardBus) support PCMCIA/CardBus tmogatsa
56

Executable file formats / Emulations --->

(vgrehajthat formtumok)

[*] Kernel support for ELF binaries Az ELF tpus binrisok tmogatsa. Felttlenl kell ahhoz, hogy a kernel alkalmazst tudjon indtani. < > Kernel support for a.out and ECOFF binaries Rgebbi binris formtumok tmogatsa. < > Kernel support for MISC binaries Egyb binrisok (Java, .NET, ...) futtatsi lehetsge. Networking support ---> (hlzati belltsok)

Networking options ---> Hlzati opcik <M> Packet socket A hlzati eszkz s kernel kzvetlen kommunikcijhoz kell. [*] Packet socket: mmapped IO A gyorsabb kommunikci rdekben memory mapped I/O. <M> Unix domain sockets Standard mdszer a hlzat elrsre Unix opercis rendszerben, az IPC egy specilis formja. [*] TCP/IP networking TCP/IP alap hlzati kommunikci [ ] IP: multicasting IP alap csoportos klds tmogatsa [ ] IP: advanced router IP alap tvlaszt funkcik [ ] IP: kernel level autoconfiguration Lehetv teszi a kernel indulsakor az IP paramterek belltst. Lemez nlkli munkallomsok esetben kivlan hasznlhat. < > IP: tunneling IP alap alagt tpus tvitel [*] IP: TCP syncookie support (disabled per default) A SYN elrasztstl vd, ami a DoS tpus tmadsok egyik fajtja. <M> INET: socket monitoring interface Hlzati forgalom megfigyelsre val programok hasznljk. [ ] TCP: advanced congestion control ---> TCP torlds vezrl algoritmusok < > The IPv6 protocol IP version 6 protokoll [ ] Network packet filtering framework (Netfilter) ---> Hlzati csomagszr tzfal belltsai. < > 802.1d Ethernet Bridging Ethernet hlzati hd < > 802.1Q VLAN Support Virtulis LAN-ok tmogatsa [ ] QoS and/or fair queueing ---> Quality of Service, hlzati csomagok kldsi sorrendjnek szablyozsa

57

[ ] Amateur Radio support ---> AX.25 rdis protokoll tmogatsa < > IrDA (infrared) subsystem support ---> Infrared kommunikci tmogatsa < > Bluetooth subsystem support ---> Bluetooth kommunikci tmogatsa Wireless ---> Wifi hlzati stack < > RF switch subsystem support --Wifi s Bluetooth krtykon tallhat rdifrekvencis kapcsolk tmogatsa. Device Drivers ---> (eszkzmeghajt programok)

Generic Driver Options ltalnos driver opcik, firmware hasznlatnak lehetsge < > Memory Technology Device (MTD) support ---> Flash s egyb specilis memrik tmogatsa. Ezekkel fknt begyazott rendszerekben tallkozhatunk. < > Parallel port support ---> Prhuzamos port tmogatsa -*- Plug and Play support ---> Plug and Play eszkzk tmogatsa [ ] Block devices ---> blokkos eszkzk tmogatsa < > Normal floppy disk support Floppy tmogatsa < > Loopback device support Visszahurkol eszkz tmogatsa. Segtsgvel egy fjlt ugyangy lehet hasznlni, mint egy partcit. pl.: CD iso image csatlakoztatsakor hasznlatos. < > Network block device support Hlzaton keresztli erforrsok elrse blokkos eszkzknt < > RAM disk support A memria egy rszt gy hasznlhatjuk a segtsgvel, mint egy diszket. Abban az esetben, hogyha a kernel initrd-t (nem initramfs-t) hasznl, akkor felttlenl szksges. [ ] Misc devices ---> Egyb eszkzk tmogatsa, amely egyik kategriba sem sorolhat. <M> ATA/ATAPI/MFM/RLL support ---> ltalnos IDE/ATA tmogats <M> Generic ATA/ATAPI disk support ltalnos ATA/ATAPI diszk tmogats < > ATA disk support jabb ATA mdok tmogatsa <M> Include IDE/ATAPI CDROM support IDE CDROM tmogatsa <M> Intel PIIX/ICH chipsets support Az Intel PIIX s ICH alaplapi chipset tmogatsa

58

SCSI device support ---> ltalnos SCSI tmogats <*> SCSI device support SCSI eszkzk tmogatsa <*> SCSI disk support SCSI lemez tmogatsa < > SCSI CDROM support SCSI CDROM tmogatsa SCSI Transports ---> SCSI eszkzk tviteli jellemzinek megtekintse -*Paralell SCSI (SPI) Transport Attributes Prhuzamos SCSI transzport tmogatsa [*] SCSI low-level drivers ---> Alacsony szint SCSI eszkzk <*> BusLogic SCSI support BusLogic tpus SCSI vezrl tmogatsa (a VMware ilyet is tud emullni) < > Serial ATA (prod) and Parallel ATA (experimental) drivers ATA protokollt hasznl hoszt adapterek elrse. pl. SATA lemezek esetben. A SCSI diszk illetve a SCSI CDROM tmogats szksges a hasznlathoz. [*] Multiple devices driver support (RAID and LVM) RAID s LVM hasznlata <M> RAID support RAID szintek tmogatsa <M> RAID-0 (striping) mode <M> RAID-1 (mirroring) mode A megfelel RAID szintek tmogatsa <M> Device mapper support LVM tmogatsa [*] Fusion MPT device support ---> Fusion Message Passing Technology eszkzk tmogatsa <*> Fusion MPT ScsiHost drivers for SPI A VMware ltal emullt lsilogic tpus vezrl tmogatsa IEEE 1394 (FireWire) support ---> Firewire csatol tmogatsa (pl. kls diszk vagy digitlis videkamera) < > I2O device support ---> Intelligent Input/Output eszkz tmogatsa. Lehetv teszi, hogy a drivereket kt rszre bontsuk. Egy opercis rendszer fgg illetve egy hardver fgg rszre. [*] Network device support ---> Hlzati eszkzk tmogatsa < > Bonding driver support Tbb eszkz sszekapcsolsa (trnk) < > Universal TUN/TAP device driver support Csomagklds felhasznli programoknak. Lehetv teszi a hlzati csomagok tovbbtst pl.: egy virtulis gp fel.
59

--->

[*] Ethernet (10 or 100Mbit) ---> 10 vagy 100 Mbites Ethernet krtyk tmogatsa [*] EISA, VLB, PCI and on board controllers EISE, VLB, PCI s alaplapi krtyk tmogatsa <M> AMD PCnet32 PCI support AMD PCnet32 alap ethernet krtyk tmogatsa (a VMware ilyet emull) [ ] Ethernet (1000 Mbit) ---> [ ] Ethernet (10000 Mbit) ---> Gigabites, 10 Gigabites ethernet krtyk tmogatsa Wireless LAN ---> Wifi eszkzk tmogatsa < > PPP (point-to-point protocol) support Pont-pont kapcsolat tmogatsa < > ISDN support ---> ISDN eszkzk tmogatsa < > Telephony support ---> Telefon krtya tmogats. Lehetv teszi VoIP alkalmazsok hasznlatt. Input device support ---> Bemeneti eszkzk tmogatsa -*- Generic input layer (needed for keyboard, mouse, ...) ltalnos billentyzet, egr tmogats -*Mouse interface /dev/input/mice eszkzfjl hasznlata -*Keyboards ---> Billentyzetek [*] Mice ---> <M> PS/2 mouse PS/2-es egr tmogatsa Character devices ---> karakteres eszkzk tmogatsa -*- Virtual terminal Virtulis terminl tmogats Serial drivers ---> Soros port hasznlata -*- Unix98 PTY support Unix98 pszeudo terminl tmogats < > Enhanced Real Time Clock Support Vals idej ra < > I2C support ---> I2C busz tmogatsa [ ] SPI support ---> Serial Peripheral Interface protokoll tmogatsa -*- Power supply class support ---> Az elemek illetve a tpfeszltsg monitorozsa

60

< > Hardware Monitoring support ---> Hardver eszkzk feszltsgnek, hmrskletnek, ventiltorok forgsi sebessgnek monitorozsa [ ] Watchdog Timer Support --->A gp mkdsnek figyelse, hiba esetn az jraindtsa Multimedia devices ---> Multimdis eszkzk tmogatsa (pl. TV tuner krtya, rdis krtya) Graphics support ---> Grafikai tmogatsok < > /dev/agpgart (AGP Support) ---> AGP port tmogatsa < > Support for frame buffer devices Frame buffer console tmogatsa Console display driver support ---> -*- VGA text console VGA console tmogatsa Sound ---> Hangkrtyk tmogatsa [*] HID Devices ---> Human Interface Device tmogatsa [*] USB support ---> ltalnos USB tmogats <M> Support for Host-side USB USB Host tmogats <M> EHCI HCD (USB 2.0) support USB 2.0 tmogatsa < > USB Printer support USB csatlakozs nyomtat tmogatsa < > USB Mass Storage support USB-s troleszkzk tmogatsa < > MMC/SD card support ---> Krtyaolvask tmogatsa < > InfiniBand support ---> Infiniband protokoll tmogatsa (trol eszkzk) Firmware Drivers ---> (firmware eszkzmeghajtk) File systems ---> (fjlrendszerek tmogatsa) < > Second extended fs support EXT2 fjlrendszer tmogatsa <*> Ext3 journalling file system support EXT3 naplz fjlrendszer tmogatsa < > The Extended 4 ext4 filesystem EXT4 naplz fjlrendszer tmogats

--->

61

< > Reiserfs support < > JFS filesystem support < > XFS filesystem support Reiserfs (3.6), JFS, XFS fjlrendszerek tmogatsa < > GFS2 file system support < > OCFS2 file system support Global FS klaszter fjlrendszer s Oracle klaszter fjlrendszer 2-es verzijnak tmogatsa [*] Inotify file change notification support [*] Inotify support for userspace Fjl vltozsok jelzsre hasznlhat < > Kernel automounter support Tvoli fjlrendszerek automatikus csatlakoztatsa < > FUSE (Filesystem in Userspace) support FUSE tmogats (felhasznli trben fjlrendszerek implementlst teszi lehetv) CD-ROM/DVD Filesystems ---> CD/DVD fjlrendszerek <M> ISO 9660 CDROM file system support [*] Microsoft Joliet CDROM extensions ISO9660 fjlrendszer Joliet kiterjesztssel < > UDF file system support UDF fjlrendszer tmogatsa DOS/FAT/NT Filesystems ---> DOS, FAT, NTFS fjlrendszerek tmogatsa Pseudo filesystems ---> pszeudo fjlrendszerek -*- /proc file system support /proc fjlrendszer tmogatsa [*] Virtual memory file system support (former shm fs) tmpfs fjlrendszer tmogatsa (mindent a virtulis memriban trol) Miscellaneous filesystems ---> Egyb fjlrendszerek (Apple HFS, OS/2 HPFS, UFS, ...) < > Compressed ROM file system support (cramfs) Initrd esetben (nem initramfs) szksg van a cramfs tmogatsra, ugyanis az initrd image ezt a fjlrendszer hasznlja. [ ] Network File Systems ---> Hlzati fjlrendszerek tmogatsa < > NFS file system support < > NFS server support Network FS elrshez illetve sajt ktetek megosztshoz < > SMB file system support (OBSOLETE, please use CIFS) < > CIFS support (advanced network filesystem SMBFS successor) Windows alatti megosztsok, vagy Samba megosztsokhoz val hozzfrs

62

< > NCP file system support (to mount NetWare volumes) Novell Netware ktetek elrse < > Coda file system support (advanced network fs) Coda kliensknt val mkds Partition Types ---> Partci tpusok vlasztsa PC BIOS (MSDOS partition tables) support Hagyomnyos MSDOS tpus partcis tbla elrse [ ] Windows Logical Disk Manager (Dynamic Disk) support Az ablakozs opercis rendszerek Logical Disk Manager programjval ltrehozott partcik kezelse {*} Native language support ---> Karakter kszletek, kdlapok tmogatsa Windows-1250, Codepage 852, ...) (UTF-8, Latin-1, Latin-2,

Kernel hacking ---> kernel hackelse [*] Magic SysRq key Alt+PrintScreen s egyb billentyk megnyomsa segtsgvel egy kernel hiba utn ki lehet rteni a buffer cache-t s a rendszert jra lehet indtani. Security options ---> Biztonsgi belltsok [ ] Cryptographic API ---> Titkostsi algoritmusok megvalstsai fknt az IPSec szmra [ ] Virtualization ---> KVM (Kernel-based Virtual Machine) tmogatsok Library routines ---> ltalnos cl knyvtri rutinok {M} CRC32 functions CRC ellenrzse eszkzk s hlzati szolgltatsok esetben

6.4. A konfigurls nhny fontos belltsa


Amikor kernelt konfigurlunk van nhny fontos bellts, amely fggvnye a teleptsi szitucinak. A VMware virtulis gp esetben a kvetkez tblzat foglalja ssze ezeket a belltsokat. A tblzatban a jelenti, hogy nincsen szksg az adott tmogatsra, az M jelli, hogy modulknt, a * pedig, hogy be kell pteni a kernelbe az adott tmogatst. A tblzat a minimlis tmogatsokat tartalmazza, ahol a -, M, * felel meg a nvekv sorrendnek.

63

Az egyes tmogatsok minimlis szksglete 8. sz. tblzat Eszkz SCSI tmogats LSI Logic SCSI vez. BusLogic SCSI vez. SCSI diszk IDE tmogats IDE vezrl (PIIX4) IDE diszk Kernel tmogats(ok) SCSI device support Fusion MPT device support Fusion MPT ScsiHost drivers for SPI BusLogic SCSI support SCSI disk support ATA/ATAPI/MFM/RLL support Intel PIIX/ICH chipsets support ATA/ATAPI/MFM/RLL support Generic ATA/ATAPI disk support ATA disk support RAID support RAID 0,1,5,10 LVM Initramfs/Initrd / fjlrendszer megfelel RAID szint tmogatsa pl.: RAID-1 (mirroring) mode Device mapper support Initial RAM filesystem and RAM disk (initramfs/initrd) support RAM disk support (csak initrd) a megfelel fjlrendszer (ext2, ext3, reiserfs, xfs, jfs) tmogatsa pl.: Ext3 journalling file system support a megfelel helyi vagy tvoli fjlrendszer tmogatsa initrd noinitrd M M M M M M M M M M M M M * * M * * * * * * * * * * * * ! *

tovbbi fjlrendszerek

M *

M -

CRAMFS (csak initrd) Compressed ROM file system support (cramfs)

A tblzat utols kt oszlopa tartalmazza azt, hogy mi a klnbsg abban az esetben, hogy initrd image-t szeretnnk hasznlni, illetve hogyha nem akarunk hasznlni. A felkiltjel jelzi, hogy initrd nlkl az LVM hasznlata nem tmogatott. A logikai ktetkezelshez ugyanis felttlenl szksg van a megfelel userspace-beli programokra. Ezek nlkl a kernel nem kpes a megfelel / fjlrendszert megtallni.

6.5. Fordts elzetes konfigurci alapjn


Amennyiben vgignztk a konfigurls lehetsgeit s belltottuk a szmunkra szksges opcikat gy ezeket a belltsokat el kell mentennk. Amikor az exit menpontot vlasztjuk, akkor rkrdez a mentsre: Do you wish to save your new kernel configuration?

64

Ebben az esetben vlaszoljunk igennel, mivel a korbbi kijellseink csak ebben az esetben lesznek mentve. Alaprtelmezsknt a .config nev fjlba kerl a ments a kernel forrs gykrknyvtrba (/usr/src/linux). Amennyiben szeretnnk egy adott konfigurcit menteni s a ksbbiekben felhasznlni, akkor ezt a fjlt msoljuk t egy kln knyvtrba. A mentst s a konfigurci visszatltst menpontok segtsgvel is el tudjuk vgezni: Load an Alternate Configuration File Save an Alternate Configuration File Amennyiben verzi vlts van elfordulhatnak problmk abban az esetben, hogyha egy rgebbi konfigurcis fjlt tltttnk vissza. Ennek oka lehet az, hogy pldul megvltoztak egy korbbi verzihoz kpest a konfigurcis bejegyzsek nevei. ppen ezrt visszatlts utn ajnlott egyszer vgigszaladni az sszes menponton, hogy ttekintsk az jabb lehetsgeket s a szksgesek belltst ellenrizzk. Ezutn kiadhatjuk a fordts parancsait. Hagyomnyos mdon (mkdik a 2.6-nl korbbi kernelek esetben is):

make dep fggsgek vizsglata make clean trls make bzImage (vagy make zImage) kernel image gzippel tmrtve make modules kernel modulok fordtsa make modules_install kernel modulok teleptse

bzip2-vel

vagy

Egyszerstett mdon:

make clean trls make kernel image (bzip2-vel tmrtve) s modulok make modules_install modulok teleptse

A make clean parancs vgrehajtsa csak abban az esetben szksges, hogyha mr volt egy korbbi fordts. Ez trli a kernel image-t illetve az egyes object fjlokat. A make help paranccsal tjkozdhatunk a make egyb lehetsgeirl. A fordts parancsai architektrnknt klnbzhetnek. Manapsg ajnlott tbb szlon indtani a fordtst, ezzel jelentsen cskkenthet a fordtsi id. (pl.: make -j 4) Amennyiben a parancsok sikeresen vgrehajtdnak elkszl a kernel image, illetve az egyes kernel modulok. Elfordulhat, hogy bizonyos driverek kivlasztsa fordtsi problmt okoz (pl.: 2.6.22.9 RxRPC session socket), de ez nem jellemz. A fordts eredmnyeknt ltrejn: arch/i386/boot/bzImage kernel image (x86 architektra esetben)
65

System.map kernel szimblum tbla /lib/modules/version a teleptett kernelmodulok megfelel knyvtrban (pl.: version = 2.6.31.9-kami)

verzinak

Ezutn kvetkezhet az elkszlt fjlok msolsa a /boot knyvtrba: cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.31.9-kami cp System.map /boot/System.map-2.6.31.9-kami Abban az esetben, hogyha a kernel initramfs/initrd image-t is hasznl a rendszerindulshoz, akkor azt ltre kell hozni a rendelkezsre ll modulok felhasznlsval. Pldul: mkinitramfs -o /boot/initrd.img-2.6.31.9 2.6.31.9-kami A parancs esetben a -o kapcsol utn adjuk meg a kimeneti fjl nevt, a kvetkez paramter pedig a kernel verzi. Ez is nagyon fontos, hiszen a kernel csak a megfelel verzij modulok segtsgvel mkdhet megfelelen. Ezutn kvetkezhet a rendszerbetlt konfigurlsa. A GRUB esetben pldul a kvetkez mdon llthatjuk be a szksges paramtereket: title root kernel savedefault Debian GNU/Linux, kernel 2.6.31.9 (hd0,0) /vmlinuz-2.6.31.9-kami root=/dev/sda1 ro

A legegyszerbb, hogyha az alaprtelmezett kernelhez tartoz rszt lemsoljuk. Majd ezt kveten mdostjuk az image fjlok neveit s a menpont nevt. Clszer az j kernelhez tartoz menpontot az els helyre tenni, hiszen ebben az esetben lesz az alaprtelmezett s a kvetkez rendszerindulskor a GRUB azt prblja majd meg automatikusan indtani. Ajnlott meghagyni a korbbi verzi(ka)t, hiszen elfordulhat, hogy valamilyen konfigurcis hiba miatt az j kernelnk nem lesz mkdkpes. Ebben az esetben a korbbi kernel segtsgvel mg tudunk rendszert indtani s a konfigurlst s fordtst jra megprblni. Amennyiben a kernel indulshoz szeretnnk initrd-t is hasznlni, gy azt ltre kell hozni, majd elhelyezni a r mutat hivatkozst a /boot/grub/menu.lst-ben. Pldul a kernel-el kezdd sor utn berakhatjuk a kvetkez sort: initrd /initrd.img-2.6.31.9

Ezutn a paramterknt tadott fjl lesz a kezdeti root fjlrendszer, amely betltdik a ramdiszkbe s onnt a kernel drivereket tud betlteni s programokat tud elindtani. A Debian 5.0 tmogatja a GRUB 2-t is, ennek hasznlatval egyelre nem fogunk foglalkozni.

66

6.6. Kernel fordts Debian mdra


Debian GNU/Linux opercis rendszerben a kernel-package nev csomag a kernel fordts elsegtsre kszlt. Ebben a csomagban tallhat a make-kpg parancs, amely segtsgvel kernelt lehet fordtani, s az elkszlt kernelbl .deb csomagot kszteni. Hasznlatnak a legfontosabb elnyei: a kernelfordts kimenete .deb formban jelenik meg (kernel-image${version}_${revision}_${arch}.deb), amelyet a ksbbiek csomagkezelvel tudunk telepteni, akr msik gpre is a kernellel egytt lehet n. kls modulokat is fordtani (pl.: aufs, nvidia, ...), amelyekbl szintn csomagok kszlnek (a module-assistant (m-a) csomagot (parancsot) felhasznlva) nem kell szerkeszteni a GRUB belltsait, a megfelel sorok a kernelimage csomag teleptskor automatikusan ltrejnnek a dpatch segtsgvel sajt foltok hasznlhatk fel Ilyenkor az albbiak szerint vgezhetjk el a kernel fordtst: kernel forrs letlts, ellenrzs, kicsomagols a korbbiak szerint a /usr/src/modules knyvtrban kicsomagolni azokat a modulokat, amelyeket szeretnnk a kernellel egytt fordtani. Ezek rendre a -source -ra vgzd csomagokban vannak (pl. aufs-source, nvidia-kernelsource, ...) a kernel konfigurlsa a korbbiak szerint a kernel fordtsa: make-kpkg --initrd kernel_image a kls modulok fordtsa (opcionlis): make-kpkg modules_image header fjlok csomagolsa (opcionlis): make-kpkg kernel_headers Egy egyszer szkripttel tetszleges verziszmot adhatunk hozz a csomagokhoz, illetve bellthatjuk azt is, hogy prhuzamosan hny szlon trtnjen a fordts. #!/bin/bash export CONCURRENCY_LEVEL=4 V=-kami R=1 make-kpkg --append-to-version $V --revision $R --initrd kernel_image make-kpkg --append-to-version $V --revision $R modules_image make-kpkg --append-to-version $V --revision $R kernel_headers Egy sikeres fordts eredmnyeknt ltrejnnek az albbi fjlok: linuximage-2.6.31.9-kami_1_i386.deb, linux-headers-2.6.31.9-kami_1_i386.deb. Ezt kveten a csomagokat a dpkg paranccsal telepthetjk. s ellenrizhetjk a kernelnk mkdst. A module-assistant csomaggal utlagosan is lehet egy kernelhez modulokat fordtani. (Feltve, hogy ugyanaz a C fordtnk van, s rendelkezsre llnak a kernel header fjlok.) Egy plda a hasznlatra: m-a -k /usr/src/linux-2.6.31 -l 2.6.31.9-kami build nvidia A pldban az nvidia driverbl ksztnk kernel modult. A -k opcival a kernel header fjlok helyt, a -l opcival pedig a kernel verzit adjuk meg.

67

7. Felhasznl adminisztrci s a PAM


7.1. A felhasznl adminisztrci parancsai
Amikor egy rendszert teleptnk, akkor a rendszergazda (root) felhasznl jelszavt meg kell adnunk. A jelsz megadsnl figyelnnk kell arra, hogy az minl nehezebben legyen kitallhat az n. jelsz feltr alkalmazsok segtsgvel. gy ajnlott kis s nagybetket is hasznlni, emellett szmokat s specilis karaktereket is. Clszer a billentyzet kiosztsok adta klnbsgekre is odafigyelni. A Debian GNU/Linux hasznl ezen kvl j nhny beptett csoportot s felhasznlt is. Ezeknek az egyes eszkzk jogosultsgai esetben van fontos szerepk. Pldul: brw-rw---- 1 root disk 8, 0 2008-03-18 07:05 /dev/sda brw-rw---- 1 root disk 8, 1 2008-03-18 07:06 /dev/sda1 Vagyis csak azok a felhasznlk rhatjk a /dev/sd{a,a1} eszkzket, akik tagjai a disk nev csoportnak vagy rendszergazdk. Ennlfogva a jogosultsg elhatrols egy fontos eszkze. Ezen beptett felhasznlkra illetve felhasznli csoportokra jellemz, hogy 0-tl flfel nvekednek az azonostik. A beptett felhasznlk msik fontos felhasznlsi terlete az, hogy egyes szolgltatsok ezeket a meglv azonostkat hasznljk fel a mkdsk sorn. Rszlet egy: ps -u daemon,www-data -o pid,user,cmd parancs kimenetbl: PID 2345 2821 14349 USER daemon daemon www-data CMD /sbin/portmap -i 127.0.0.1 /usr/sbin/atd /usr/sbin/apache2 -DSSL -k start

A parancs kimenetbl kiolvashatjuk, hogy a daemon nev felhasznlknt kett szolgltats (portmap, atd) fut a lekrdezs pillanatban, mg www-data felhasznlknt az apache2 szolgltats. Egyes .deb csomagokban tallhatk olyan scriptek, amelyek a csomag teleptsekor automatikusan ltrehozzk a szksges felhasznlkat illetve felhasznli csoportokat. ltalban 100-999 kztt szoks a rendszerfelhasznlkat (programok vgrehajtshoz kellenek), mg 1000-tl felfel a norml felhasznlkat. Az Opercis rendszerek Linux jegyzetben bemutatsra kerlt a felhasznli adatok trolsnak mdszere (/etc/passwd, /etc/shadow, ...), ezen fjlok rszletes felptse. gy ennek ismerett felttelezem. Amikor sajt felhasznli csoportokat vagy felhasznlkat szeretnnk ltrehozni, akkor tbbfle lehetsg kzl vlaszthatunk. A tovbbiakban csak az ide ktd parancsokat szeretnm bemutatni. Manapsg sok lehetsg knlkozik annak a megoldsra, hogy a felhasznlk adminisztrcijt knyelmesen megoldjuk (pl.:
68

Webmin segtsgvel bngszn keresztl). Ezekkel a tovbbiakban nem szeretnk foglalkozni, csak a parancssori lehetsgekkel, amely brhol hasznlhat s nincsenek egyb szoftver kvetelmnyei. Debian GNU/Linux opercis rendszerben a passwd illetve az adduser nev csomagban tallhatk azok a parancsok, amelyek segtsgvel az adminisztrci megvalsthat. A tovbbiakban pldkon keresztl fogom bemutatni a parancsok fontosabb lehetsgeit. Felhasznli csoportok felvtele: addgroup gid GID group adduser group GID group groupadd -g GID group Az elz parancsok esetben a GID jelenti a csoport azonostt, a group pedig a csoport nevt. Felhasznli csoportok trlse: delgroup group deluser group group groupdel group Felhasznli csoportok jellemzinek mdostsa: groupmod -g GID -n group_name group A mdosts esetben kt f lehetsgnk van. A felhasznli azonostjt tudjuk megvltoztatni s/vagy a csoport nevt. Felhasznlk felvtele: adduser -uid UID -gid GID user useradd -u UID -g GID user Termszetesen a felhasznlk egyb jellemzi is a megfelel paramterek segtsgvel bellthatk. Az adduser segtsgvel megvalsthat a felhasznlk interaktv felvtele. Ebben az esetben rkrdez a felhasznl egyes jellemzire (GECOS field) a felvtel folyamn. adduser tux Adding user `tux' ... Adding new group `tux' (1001) ... Adding new user `tux' (1001) with group `tux' ... Creating home directory `/home/tux' ... Copying files from `/etc/skel' ... Enter new UNIX password: Retype new UNIX password: passwd: a jelsz sikeresen frisslt tux felhasznli informciinak cserje Add meg az j rtket vagy ss ENTER-t az alaprtelmezetthez TELJES Nv []: Tux Szobaszm []: Munkahelyi telefon []: Otthoni telefon []: Egyb []: Is the information correct? [Y/n] Y
69

csoport

A parancs pontos kimenete fgg a nyelvi belltsoktl. Amennyiben ez magyar, akkor rszben angol, rszben pedig magyar lesz a parancs kimenete. Felhasznlk trlse: deluser remove-all-files user userdel -r user A /etc/adduser.conf illetve a /etc/deluser.conf segtsgvel megadhatk az adott parancs esetben az alaprtelmezsek. Amennyiben nem szeretnnk ezektl eltrni, akkor nem szksges az ott tallhat bejegyzseket a megfelel opci segtsgvel felldefinilni. A useradd parancs mkdsre pedig a /etc/default/useradd nev fjl van hatssal. A felhasznl trlsi pldkban szeretnnk a felhasznl sszes fjljt a felhasznlval egytt trlni a rendszerbl. Felhasznlk jellemzinek mdostsa: usermod [options] user Nhny mdostsi opci: -d HOME_DIR sajt knyvtr mdostsa -g GROUP alaprtelmezett csoport -G GROUPS csoport tagsgok vesszvel elvlasztott listaknt -l USER_NAME tnevezs -s SHELL alaprtelmezett shell mdostsa -u UID UID mdostsa Felhasznlk jelszavainak s jelsz belltsainak a mdostsa Rendszergazdaknt fontos feladat a jelszavak kezelshez tartoz szablyozsok definilsa. A felhasznlink knnyen elfelejtik a ritkn hasznlt jelszavakat, s ilyenkor egy msikat kell definilnunk helyette. Egy msik problma az, hogy meddig biztonsgos egy jelsz? Amennyiben elbb megvltoztatjuk a jelszt, mint azt brki vissza tudn fejteni, akkor mondhatjuk azt, hogy biztonsgos. Azonban a mai szmtsi teljestmny mellett ezt nem igazn teljesthet. ppen ezrt nagy gondot kell fordtanunk a trolt jelszavak megfelel vdelmre. Rendszergazdaknt a sajt jelszavunkat megvltoztathatjuk: passwd [options] user illetve brki ms jelszavt is

Nhny hasznlhat opci: -S a jelsz llapotnak megtekintse (/etc/shadow flag-ek) tux P 03/18/2008 0 99999 7 -1 -l lock (a fik zrolsa) -u unlock (a fik zrolsnak feloldsa) -x N jelsz mdostsi ktelezettsg N nap utn -n N jelsz csak N nap eltelte utn mdosthat -w N jelsz lejrta eltt N nappal figyelmeztet
70

-i N

fik inaktvv ttele N nappal a lejrat utn

Abban az esetben, hogyha sok felhasznl jelszavt szeretnnk egyszerre mdostani, ajnlott a chpasswd nev csomag teleptse. A csomagban lv ugyanolyan nev parancs segtsgvel tbb felhasznl jelszavt tudjuk mdostani. Ha a kdolt vagy a kdolatlan jelszval rendelkezik adott felhasznlk esetben, akkor kszthetnk egy listt. A lista tartalmazza soronknt a felhasznlk neveit illetve jelszavait kettsponttal elvlasztva. Amennyiben ezt a chpasswd parancs standard bemenetre irnytjuk gy az sszes felhasznl jelszavt meg tudjuk vltoztatni. A felhasznli bejelentkezshez ktdik a /etc/login.defs nev fjl. Ebben tudjuk szablyozni a felhasznlkra vonatkoz bejelentkezsi paramtereket, krnyezeti vltozkat, knyvtrakat.

7.2. A PAM (Pluggable Authentication Modules)


Linux opercis rendszerben tbb alkalmazsnak lehet arra szksge, hogy a felhasznlkat azonostsa. Ilyen lehet pldul a login, amely a felhasznli bejelentkezst kezeli vagy pedig egy kpernyzr. Mindegyik programnak meg kell tudnia llaptani, hogy a felhasznl megfelel jelszt adott-e meg. Azrt, hogy egy alkalmazsba trolsi mdtl fggetlenl tudja kezelni a hitelestst talltk ki a PAM-ot. Vagyis az alkalmazsom szmra teljesen mindegy, hogy a felhasznli adatok helyileg vannak trolva vagy hlzaton egy kzponti szerveren. A PAM megoldja a megfelel adatok elrst, az alkalmazsnak csak a PAM-tl kell megkrdezni-e, hogy pldul ltezik-e adott felhasznl a megadott jelsznak megfelelen. A PAM legfontosabb jellemzi: API-t nyjt az alkalmazsok szmra, amely ezen fggvnyeket hasznlhatja fel a felhasznlk hitelestsre modulris felpts, az egyes modulok dinamikus programknyvtrknt rhetk el s hasznlhatk igny szerint transparent authentication and authorization: megvalstja teht a trolsi mdtl fggetlen hitelestst az alkalmazsok rszrl tmogats szksges a hasznlathoz Manapsg a legtbb Linux disztribci tmogatja a hasznlatt. gy a Debiannak is rsze a 2.2-es verzi ta. A rendszerben rendelkezsre ll modulok a /lib/security knyvtr alatt rhetk el. A fjlok nevei egysgesen pam_ -al kezddnek. A PAM belltsait a /etc/pam.d knyvtrban tallhatjuk. A Debian azt a konvencit kveti, hogy ezen bell a konfigurcis fjlok nevei megegyeznek annak a szolgltatsnak a nevvel, amelyre a belltsok vonatkoznak. Ezen fell lteznek olyan fjlok, amelyek ltalnosak (common-*) s tbb fjlban is ezekre a belltsokra hivatkoznak.

71

A konfigurcis fjlok esetben a kvetkez sma szerint felpl utastsokat hasznlhatjuk: type control_flag module-path module-arguments

A type jelenti a hitelests tpust. Van arra lehetsg, hogy megadjuk azt, hogy egy felhasznl tbb kritriumnak is meg kell, hogy feleljen. A tpus lehetsges rtkei: account: a fikhoz val hozzfrsre vonatkoz szablyok auth: a hitelests mdjnak a belltsa password: a jelsz vltoztatsra vonatkoz szablyok session: a felhasznl hitelestse eltt s/vagy utn (a munkamenethez kapcsold ) vgrehajtand feladatok A control_flag jelenti annak a szablyozst, hogy mi trtnjek, abban az esetben, ha valamelyik modul sikertelen eredmnyt ad vissza. Ez rendkvl fontos a vgs eredmny szempontjbl. A lehetsges rtkei: requisite: a hitelests azonnali megtagadsa, hogyha adott modul sikertelen eredmnnyel tr vissza require: a hitelests megtagadst jelenti, de ezutn a belltott tbbi PAM modult is meg fogja hvni a megtagads eltt sufficient: ha ezen modul alapjn sikeres a hitelests, akkor megadja azt, fggetlenl a korbbi moduloktl optional: a sikeressg/sikertelensg csak akkor fontos, hogyha kizrlag ilyen jelleg modul van belltva A module-path jelenti a PAM modul nevt vagy elrsi tvonalt, hogyha nem az alaprtelmezett helyen tallhat. A module-arguments pedig a PAM modul szmra tadand fontosabb paramtereket tartalmazhatja. Az ltalnos belltsok a kvetkezk: /etc/pam.d/common-account account required pam_unix.so /etc/pam.d/common-auth auth required pam_unix.so nullok_secure

/etc/pam.d/common-password password required pam_unix.so nullok obscure min=4 max=8 md5 /etc/pam.d/common-session session required pam_unix.so A pam_unix.so modul jelenti a Unix rendszerekben ltalnossgban hasznlt /etc/passwd, s /etc/shadow alapjn trtn hitelestst.

72

A nullok bellts megengedi, hogy azok a felhasznlk, akiknek nincsen jelszavuk, azok is be tudjanak jelentkezni. Az obscure a jelsz erssgnek ellenrzsre vonatkozik, a min s max a jelsz hosszra. Az md5 segtsgvel llthatjuk be, hogy a jelszavaink az MD5 hash algoritmus alkalmazsval legyenek trolva. Gyakran hasznlt PAM modulok: pam_unix.so standard Unix hitelests pam_access.so hozzfrs szablyozsa (/etc/security/access.conf) pam_cracklib.do jelsz ellenrzse pam_deny.so hozzfrs megtagadsa pam_env.so krnyezeti vltozk belltsa (/etc/environment) pam_lastlog.so az utols bejelentkezs helye s ideje pam_limits.so erforrsok korltozsa (/etc/security/limits.conf) pam_listfile.so fjl tartalom alapjn val hitelests pam_ldap.so LDAP szerver alapjn val hitelests pam_mail.so mailbox informcik mutatsa bejelentkezs utn pam_mkhomedir.so a felhasznlk sajt knyvtrnak ltrehozsa bejelentkezskor pam_motd.so a /etc/motd kiratsa bejelentkezs utn pam_nologin.so ha a /etc/nologin fjl ltezik, akkor csak root-knt lehet bejelentkezni pam_permit.so felttel nlkl garantlja az elrst pam_rootok.so amennyiben root-knt vagyunk bejelentkezve nem szksges adott alkalmazs esetben a hitelests pam_securetty.so root-knt val bejelentkezs engedlyezse a /etc/securetty alapjn pam_shells.so vals shell vizsglata /etc/shells alapjn Az elz felsorolsbl lthat, hogy szmos feladat elvgzsre lteznek PAM modulok. Mindezek mellett termszetesen van arra is lehetsg, hogy sajt modulokkal kiegsztsk a rendszert. Plda tbb PAM modult is hasznl fjlra (/etc/pam.d/ssh): # PAM configuration for the Secure Shell service # Read environment variables auth required pam_env.so # [1] auth required pam_env.so envfile=/etc/default/locale @include common-auth # Disallow non-root logins when /etc/nologin exists. account required pam_nologin.so @include common-account # Standard Un*x session @include common-session session optional session optional session required setup and teardown. pam_motd.so # [1] pam_mail.so standard noenv # [1] pam_limits.so

73

# Standard Un*x password updating. @include common-password A PAM esetben fontos, hogy miknt kezelje a szmra ismeretlen alkalmazsokat. Itt azokra az alkalmazsokra gondolok, amelyek PAM hvsokat hasznlnak, csak nem tartozik hozzjuk definilt konfigurcis fjl. Ezen alkalmazsokra a /etc/pam.d/other fjl tartalma fog vonatkozni.

74

8. A TCP/IP alap hlzat belltsa


Amikor Debian GNU/Linux-ot teleptnk, akkor van arra lehetsgnk, hogy a hlzati paramtereket belltsuk. Termszetesen ezeket a ksbbiek folyamn igny szerint mdosthatjuk. A tovbbiakban bemutatom, hogy milyen mdon clszer a hlzati mkdst belltani s ellenrizni. A tovbbiakban csak ethernet-tel s IPv4-el foglalkozom. 8.1. A hlzati bellts folyamata Amikor egy gp hlzatban mkdik, abban az esetben szksg van bizonyos paramtereket belltani a hlzati eszkzn s termszetesen az opercis rendszerben. A kett sokszor nem kezelhet egymstl fggetlenl. A belltsnl ajnlott az albbi sorrendben ellenrizni a hlzat mkdst: A megfelel eszkzmeghajtk betltse. Ahhoz, hogy a hlzat mkdhessen a kernelnek ismernie kell az adott hlzati eszkzt. A /proc/net/dev fjlbl tjkozdhatunk a rendelkezsre ll interfszekrl. A Debian 5.0 hasznlja az udev-et. Ami alaprtelmezsknt megjegyzi az egyes hlzati eszkzk MAC cmt, s e szerint rendel hozzjuk interfsz neveket. Vagyis lehetsges, hogy az interfsz ltezik, csak nem az alaprtelmezett nven. (Az 5.0 mr nem jegyzi meg a VMware-es MAC cmeket.) Az eszkzmeghajtk mellett termszetesen szksges a kernel rszrl a hasznlni kvnt protokollok tmogatsa. A /proc/net/protocols fjlbl tjkozdhatunk. Miutn meggyzdtnk arrl, hogy rendszernk alkalmas a hlzati kommunikcira ellenriznnk kell, hogy ltezik-e fizikai kapcsolata (linkje) hlzati eszkznek. Lehetsges ugyanis, hogy a kbellel vagy a csatlakozval van a problma, vagy pldul a switch adott portja van rosszul konfigurlva. Amennyiben az elzek rendben vannak, kvetkezhet az IP cm s egyb hlzati paramterek belltsa. Miutn a hlzat mkdik, utna kvetkezhet brmilyen TCP/IP-t hasznl szolgltats teleptse. Mieltt az ethernet interfszeket elltnnk IP paramterekkel ajnlatos ellenriznnk a hasznlt belltsaikat. Nmely esetben a hlzati krtya s a switch nem rti meg automatikusan egymst (autonegotiation). Ennek a tnete lehet pldul a link idnknti szakadsa s/vagy a maximlis tviteli sebessg tredke. Ekkor a hlzati krtya manulis belltsa segthet: ethtool -i eth0 ethernet krtya drivernek lekrdezse ethtool eth0 ethernet krtya paramtereinek lekrdezse (pl.: link, sebessg, duplexits, auto-negotiation) ethtool -s eth0 speed 100 duplex full autoneg off 100MB/s full duplex zemmd belltsa, autoneg. kikapcsolsa Amennyiben a driver MII-t (Media Independent Interface) hasznl, akkor az miitool parancs segtsgvel is megtekinthetjk s bellthatjuk a paramtereket: mii-tool eth0
75

eth0: negotiated 100baseTx-FD, link ok ethernet krtya paramtereinek lekrdezse mii-tool -F 100baseTx-FD eth0 100MB/s full duplex zemmd belltsa Amennyiben a hlzati kapcsolnk hasznl VLAN-okkal megvalstott szeparcit, gy az adott sorszm virtulis LAN-ba fel kell vennnk a hlzati eszkznket. vconfig add eth0 305 az eth0 interfsz felvtele a 305-s sorszm VLAN-ba vconfig remove eth0.305 az eth0 interfsz eltvoltsa a 305-s sorszm VLAN-bl A tovbbiakban a TCP/IPv4-es hlzat esetben a kvetkez eszkzk lesznek fontosak: lo loopback eth0, eth1, ... ethernet krtyk ppp0, ppp1, ... pont-pont kapcsolatok wlan0, wlan1, ... wifi krtyk 8.2. A hlzati belltsa a /etc/network/interfaces alapjn A Debian GNU/Linux a paramterek belltsra. auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.31.2 netmask 255.255.255.0 network 192.168.31.0 broadcast 192.168.31.255 gateway 192.168.31.1 allow-hotplug eth1 iface eth1 inet dhcp Az lo interfsz helyi kommunikcira hasznlhat 127.0.0.1-es IP cmmel. Az eth0 interfsz esetben fix IP cm (static) belltsra mutatok pldt. A fontosabb belltsi lehetsgek: address IP cm megadsa netmask alhlzati maszk network alhlzat cme broadcast az zenetszrs esetben hasznlt IP cm gateway az tjr IP cme Az elz felsorolsbl nem ktelez megadni az alhlzat cmt illetve a
76

/etc/network/interfaces fjlt hasznlja

a hlzati

broadcast cmet, amennyiben ezek automatikusan kpezhetk az IP cm s a netmask felhasznlsval. Amennyiben adott interfszen keresztl nem rhet el kls hlzat, akkor nem szksges az tjr megadsa sem. Az eth1 interfsz esetben dinamikusan trtnik az IP cm kiosztsa. Ebben az esetben a hlzati kommunikcihoz szksges paramtereket egy DHCP szervertl kaphatja meg a szmtgp. Ebben az esetben felttlenl szksges egy DHCP kliens alkalmazs. pl.: dhclient, dhclient3, pump, ... A konfigurcis fjl esetben teht az iface-el kezdd sorok jelenti egy adott interfszre vonatkoz belltsok elejt. Ezutn kvetkezhet az interfsz neve, majd pedig a cmosztly, amely IPv4 esetben az inet. Vgezetl pedig az interfsz esetben hasznlt mdszer az paramterek hozzrendelsre. Ezen lehetsgek mellett tetszleges parancsokat is vgrehajthatunk bizonyos szitucik esetben: pre-up,up,post-up elindts eltt, elindtskor, elindts utn pre-down,down,post-down lellts eltt, lelltskor, lellts utn Az auto-val kezdd sorok megadjk azokat az eszkzket, amelyeket a gp bekapcsolst kveten automatikusan konfigurlni kell s el kell indtani. Az allow-hotplug esetben csak akkor kerl sor az eszkz elindtsra, amennyiben a fizikai link ltrejtt. Rszlet egy VLAN-t is tartalmaz konfigurcis fjlbl iface eth1 inet static address 172.30.0.1 netmask 255.255.255.0 post-up vconfig add eth1 731 && ifconfig eth1.731 up pre-down vconfig rem eth1.731 A Debian lenny alapbl tartalmazza az IPv6 tmogatst is az IPv4 mellett. Amennyiben erre nincsen szksgnk nyugodtan ki is kapcsolhatjuk. Ha a /etc/modprobe.d/aliases nev fjl esetben a alias net-pf-10 ipv6 sort lecserljk alias net-pf-10 off -ra, gy a rendszer jraindtst kveten mr nem tltdik be automatikusan az ipv6 kernel modul, s rajta keresztl a protokoll tmogatsa. A /etc/init.d/networking szkript segtsgvel lellthatjuk vagy elindthatjuk a hlzat mkdst. Mieltt a konfigurcis fjlt szerkesztennk ajnlott lelltani a hlzat mkdst, majd pedig a mdostsok utn jra elindtani. 8.3. A hlzat belltshoz kapcsold parancsok ifup, ifdown Amennyiben egy hlzati eszkz paramterei be lettek lltva a /etc/network/interfaces fjlban, de nem trtnt meg az automatikus indtsa, gy az ifup parancs segtsgvel az eszkz indthat. Az ifdown parancs
77

felhasznlsval pedig egy mkd interfsz llthat le. ifconfig Hlzati interfsz konfigurlsra alkalmas. Pldk a hasznlatra: ifconfig eth0 up interfsz UP llapotba hozsa IP paramterek definilsa nlkl ifconfig eth0 192.168.31.1 up interfsz indtsa adott IP cmmel s alaprtelmezett netmask s broadcast cmmel ifconfig eth0 192.168.31.1 netmask 255.255.255.192 up interfsz indtsa adott IP cmmel, netmask-al s alaprtelmezett broadcast cmmel ifconfig eth0 192.168.31.1 netmask 255.255.255.192 broadcast 192.168.31.60 up interfsz indtsa adott IP cmmel, netmask-al, s broadcast cmmel. ifconfig eth0 hw ether 00:50:56:00:02:02 MAC cm mdostsa (az eszkz mkdse eltt) Az elzekben felsorolt lehetsgek mellett mg lehetsges az eszkzt gynevezett promiscuous (promisc) mdba kapcsolni. Ebben az esetben az eszkz a hlzatban men sszes csomagba kpes lesz beletekinteni. Az ifconfig paranccsal interfsz(ek) paramtereit is meg tudjuk tekinteni: ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:50:8D:A4:12:BB inet addr:192.168.31.2 Bcast:192.168.31.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:69121567 errors:0 dropped:0 overruns:3 frame:0 TX packets:110407338 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1957228746 (1.8 GiB) TX bytes:3020905526 (2.8 GiB) Interrupt:18 Base address:0x4000 route A interfszek paramtereinek megadsa mellett nagy gondot kell fordtanunk az tvlasztsra. A kernel tvlasztsi tbljnak manipullsra hasznlhatjuk a route parancsot. Pldk route parancs hasznlatra: route add -host 172.31.0.1 dev eth1 tvonal hozzads egy hoszthoz route del -host 172.31.0.1 dev eth1 tvonal trlse egy hoszthoz route add -net 172.31.0.0 netmask 255.255.0.0 dev eth1 tvonal hozzads egy hlzati tartomnyhoz route del -net 172.31.0.0 netmask 255.255.0.0 dev eth1 tvonal trlse egy hlzathoz tartomny esetben route add -net 172.31.0.0 netmask 255.255.0.0 gw 172.31.0.1 dev eth1

78

tvonal hozzads egy hlzati tartomnyhoz sajt tjrval route add default gw 192.168.31.1 dev eth0 alaprtelmezett tjr megadsa route del default gw 192.168.31.1 dev eth0 alaprtelmezett tjr trlse

A route parancs felhasznlsval teht az tvlasztsi tbla manipullsa lehetsges illetve termszetesen az aktulisan rvnyben lv szablyok megtekintse. route
Kernel IP routing table Destination Gateway 192.168.31.0 * default 192.168.31.1 Genmask 255.255.255.0 0.0.0.0 Flags Metric Ref U 0 0 UG 0 0 Use 0 0 Iface eth0 eth0

8.4. A nvfelolds konfigurcija Abban az esetben, hogyha az IP cmet s az egyb paramtereket helyesen belltottuk, akkor a hlzatunk mr mkdkpes. Tetszleges program esetben IP cmek felhasznlsval tudunk kommuniklni. A gyakorlatban azonban az emberek zme jval knnyebben meg tud jegyezni szveges informcit, mint szmokat. Fknt ezrt talltk ki a DNS-t (Domain Name System), amely egy nagy elosztott adatbzisnak tekinthet. Mindegyik tartomnyon bell ltezhetnek olyan szmtgpek, amelyek a tartomnyban lv gpek esetben oda-vissza irnyban elltja a nvfelolds feladatt. Ahhoz, hogy teleptett rendszernk kpes legyen nv alapjn is kommuniklni nhny belltsra szksgnk van. Egy gpre n. FQDN (Full Qualified Domain Name) segtsgvel szoks hivatkozni. Pldul: www.duf.hu Egy FQDN-t kt rszre oszthatunk: hosztnvre (www) tartomnynvre (duf.hu) A hosztnv belltsa egy adott gp esetben a /etc/hostname felhasznlsval trtnik. Ebben a fjlban az adott gp nevt kell megadnunk. Amikor a szmtgpnkn a Linux indul, akkor a hostname file /etc/hostname parancs hatsra az itt trolt nv automatikusan belltsra kerl. A nvfeloldshoz ktd konfigurcis fjlok: /etc/hosts 127.0.0.1 localhost 193.225.187.80 web-okt.duf.hu web-okt Amennyiben az adott hlzatban nincsen, vagy nem mkdik a nvszerver, akkor helyi belltsok alapjn is megtrtnhet a nvfelolds. Ezen fjl esetben hrom mezt adhatunk meg tabultorral elvlasztva: IP cm FQDN vagy hosztnv alias /etc/host.conf order hosts,bind
79

multi on Ez a fjl hatrozza meg a nvfelolds sorrendjt. Amikor nvfeloldst kell vgezni, abban az esetben elszr a /etc/hosts fjlhoz kell fordulni, majd pedig a belltott nvszerver(ek)hez. A multi on bellts annyit jelent, hogy a hoszthoz tartoz sszes bejegyzssel vissza fog trni a resolver. /etc/resolv.conf search duf.hu domain duf.hu nameserver 193.225.187.65 nameserver 193.225.187.202 Ebbe a fjlba kerl a keressi s az alaprtelmezett tartomny, illetve a nvszerver(ek) IP cme(i). Amikor nvfeloldsi feladatot kell vgezni, akkor azt az opercis rendszer az itt belltott szerverek segtsgvel prblja meg megvalstani. 8.5. A hlzat mkdsnek tesztelse Miutn gy gondoljuk, hogy minden hlzati belltsunk rendben van clszer a mkds tesztelse. Ezt klnbz alkalmazsok segtsgvel tehetjk meg. ping ICMP echo-request (ping) zenet kldse egy gpnek, s vrja a tle rkez ICMP vlaszt (echo-reply). Amennyiben ez sikeresen visszarkezett, akkor a gp hlzati elrse mkdik. Nem biztos azonban, az hogy brmilyen UDP vagy TCP fltti szolgltats is mkdik. Olyan is elfordulhat, hogy a gp meg sem kapja az ICMP zenetet vagy csak egyszeren nem vlaszol r. ping -c 4 192.168.31.1 PING 192.168.31.1 (192.168.31.1) 56(84) bytes 64 bytes from 192.168.31.1: icmp_seq=1 ttl=63 64 bytes from 192.168.31.1: icmp_seq=2 ttl=63 64 bytes from 192.168.31.1: icmp_seq=3 ttl=63 64 bytes from 192.168.31.1: icmp_seq=4 ttl=63 of data. time=0.488 time=0.508 time=0.512 time=0.518

ms ms ms ms

--- 192.168.31.1 ping statistics --4 packets transmitted, 4 received, 0% packet loss, time 2997ms rtt min/avg/max/mdev = 0.488/0.506/0.518/0.025 ms traceroute Ezzel a paranccsal megvizsglhatjuk azt, hogy milyen tvonalon keresztl trtnik meg a clgp elrse. A Debian 5.0 esetben hasznlhat a parancs tracert nven is. traceroute www.linux.hu
traceroute to www.linux.hu (212.40.125.217), 30 hops max, 40 byte packets 1 193.225.187.254 (193.225.187.254) 0.554 ms 0.475 ms 0.451 ms 2 c72-gbeth0-3.dunaujvaros.hbone.hu (195.111.106.217) 0.521 ms 0.439 ms 0.398 ms 3 c6513-g2-3.vh.hbone.hu (195.111.97.90) 1.688 ms 1.605 ms 1.625 ms 4 bix.externet.hu (193.188.137.43) 1.638 ms 1.627 ms 1.652 ms

80

5 6

kata-vlan100.externet.hu (212.40.109.3) 2.016 ms 2.066 ms 2.035 ms abos.linux.hu (212.40.125.217) 1.708 ms 1.663 ms 1.673 ms

A parancs kimenetbl arra is tudunk kvetkeztetni, hogy meddig mkdik megfelelen a hlzat, illetve hol akadnak el az egyes csomagok. host, nsloohup, dig A nvszerver mkdsnek lekrdezsre brmelyik parancs felhasznlhat. A parancsok segtsgvel norml, illetve reverse DNS lekrdezsek is megvalsthatk. host www.linux.hu www.linux.hu has address 212.40.125.217 www.linux.hu mail is handled by 10 mail.linux.hu. host 212.40.125.217 217.125.40.212.in-addr.arpa domain name pointer abos.linux.hu. 8.6. A hlzat megfigyelshez kapcsold parancsok Nagyon sok olyan alkalmazs ltezik, amely kapcsoldik a hlzat mkdshez, a nyitott kommunikcis portok vizsglathoz. netstat Statisztika a hlzati kommunikcirl, illetve a megnyitott portokrl. A netstat parancs fontosabb paramterei: -a az sszes socket figyelse -i IF csak adott interfsz figyelse -l a listening (figyel) llapotban lv socket-ek figyelse -n portszmok mutatsa a szolgltatsnv helyett -p socketet hasznl programok mutatsa -r az tvlasztsi tbla mutatsa -s sszegzs (summary) -t csak TCP mutatsa -u csak UDP mutatsa -w raw socket (nyers adatfolyam) Amennyiben a netstat parancsot paramter nlkl hasznljuk, megmutatja a jelenleg aktv TCP/IP illetve Unix Domain socket kapcsolatokat. netstat -t
Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address tcp 64717 0 laptop:44029 r24-live.duf.hu:8000 tcp 0 0 laptop:41347 kami:ssh

State ESTABLISHED ESTABLISHED

Rszlet a netstat -ltp parancs kimenetbl:


Active Internet connections (only servers) Local Address Foreign Address localhost.localdo:mysql *:* 81 State LISTEN PID/Program name 2723/mysqld

*:www *:ftp *:ssh *:smtp

*:* *:* *:* *:*

LISTEN LISTEN LISTEN LISTEN

12326/apache2 2960/proftpd 2885/sshd 2872/master

Az elz listbl kiolvashat, hogy a szmtgpen nyitva van a www, ftp, ssh, smtp s a mysql alaprtelmezett portja. A jobb szls oszlopban lthatjuk azon alkalmazst, amely a megnyitott portot figyeli. A mysql szolgltats csak localhost-rl rhet el, az sszes tbbi pedig brmely interfszen keresztl. nmap A nmap segtsgvel port psztzst lehet vgrehajtani egy tvoli gpen. Kpes a program a tvoli gp opercis rendszernek a meghatrozsra. Egy hlzati tmads eltt ajnlott felmrni a terepet. Megnzni az ott fut szolgltatsokat, az esetleges hibkat, biztonsgi rseket figyelembe venni. nmap -A -O 192.168.31.1 Rszlet a parancs kimenetbl: Interesting ports on 192.168.31.1: PORT STATE SERVICE VERSION 21/tcp open ftp ProFTPD 1.3.0 22/tcp open ssh OpenSSH 4.3p2 Debian 9 (protocol 2.0) 25/tcp open smtp Postfix smtpd 80/tcp open http Apache httpd Uptime 13.218 days (since Thu Mar 6 07:50:14 2008) Service Info: OSs: Linux, Unix A parancs segtsgvel rzkeny informcik is nyerhetk. Rendszergazdaknt termszetesen a sajt rendszernk biztonsgt tesztelhetjk a segtsgvel s vdelmi mdszereket dolgozhatunk ki az egyes tmads tpusok kivdsre. tcpdump A tcpdump egy elterjedt sniffer alkalmazs, amely segtsgvel megfigyelhetjk a hlzati forgalmat. Kpesek vagyunk szrk segtsgvel a szmunkra hasznos informcit tartalmaz csomagokat megkeresni. Egyszer pldk a hasznlatra: tcpdump host 192.168.31.102 Az adott IP cmmel rendelkez gp sszes forgalmnak figyelse tcpdump -x port 80 A 80-as portot hasznl forgalmak mentse hexadecimlis formban tcpdump dst 192.168.31.102 and port 80 A 192.168.31.102 IP cm 80-as portjnak figyelse tcpdump icmp and src 192.168.31.1 A 192.168.31.102 forrs IP-vel rendelkez icmp csomagok figyelse. A parancs rengeteg opcival rendelkezik. A csomagokban lv tetszleges mez alapjn megoldhat a csomagok elkapsa. Emellett a parancs kpes fjlba menteni, majd azt offline mdon analizlni.

82

Nagyon sok olyan alkalmazs ltezik, amely kapcsoldik a hlzati kommunikci megfigyelshez. Ilyen pldul a wireshark(ethereal), netcat, cheops, ettercap, nagios, nast, snort, hogy csak a legismertebbeket emltsem. Az inetd s tcpd A hlzati szolgltatsok indtshoz kapcsoldik az inetd (internet superserver daemon). Ez egy olyan specilis szolgltats, amely kpes tbb hlzati szerver szolgltats indtsra. Az inetd figyeli a /etc/inetd.conf-ban belltott portokat, majd igny szerint a belltott hlzati szolgltatsokat elindtja. Ezzel elssorban a rendszer terheltsgt lehet cskkenteni. A /etc/inetd.conf esetben a kvetkez mezket klnbztethetjk meg: service a szolgltats neve (/etc/services) type a szolgltats tpusa: stream vagy dgram protocol a kommunikcis protokoll neve (/etc/protocols) wait/nowait a socket kezelsnek mdja user.group a felhasznl s felhasznli csoport server a futtatand program cmdline a futtatand program argumentumai Plda inetd.conf belltsokra: ftp stream tcp nowait root /usr/sbin/ftpd in.ftpd -i talk dgram udp wait nobody.tty /usr/sbin/in.talkd in.talkd A /etc/services fjlban tallhatjuk a szolgltatsok neveinek s a hozzjuk tartoz portszmoknak az sszerendelse. A fjl mezi: service a szolgltats neve port/protocol a portszm s a szlltsi protokoll megadsa alias lnv az adott szolgltatsra (nem ktelez megadni) Plda sorokra a /etc/services fjlbl: ssh 22/tcp www 80/tcp http nfs 2049/udp # SSH Remote Login Protocol # WorldWideWeb HTTP # Network File System

A /etc/protocols nev fjlban pedig a protokollokra vonatkoz adatok vannak trolva. A fjl mez: protocol a protokoll neve azonost az IP fejlcben a protokoll azonostja alias alnv az adott protokollra Plda sorokra a /etc/protocols fjlbl: icmp 1 ICMP # internet control message protocol tcp 6 TCP # transmission control protocol udp 17 UDP # user datagram protocol Ezen konfigurcis fjlok alapjn megoldhat az, hogy a portszmok helyett a szolgltats nevt mutassk meg az egyes alkalmazsok. Erre lthattunk pldt a netstat parancs esetben.

83

A tcpd (tcp wrapper daemon) segtsgvel megvalsthat a szerver szolgltatsok esetben a hozzfrs vezrlse illetve a szolgltats naplzsa syslog-on keresztl. Az inetd.conf-ban annyit kell tenni, hogy a futtatand program nevt le kell cserlni a /usr/sbin/tcpd-re, s az argumentumaknt kell megadni a futtatand szerverprogram nevt. Ekkor az alkalmazs indtsa teht nem kzvetlenl, hanem a tcpd felhasznlsval trtnik. Az elz pldban szerepl szolgltats talaktsa tcpd-vel val futtatsra: ntalk dgram udp wait nobody.tty /usr/sbin/tcpd /usr/sbin/in.ntalkd A hozzfrs szablyozsa a /etc/hosts.allow s a /etc/hosts.deny konfigurcis fjlok segtsgvel valsthat meg. A fjlok esetben a kvetkez szablyok szerint adhatjuk meg a jogosultsgokat: service : host list Ezen kvl hasznlhatunk specilis direktvkat is. Pldk lehetsges belltsokra: ALL:ALL in.talkd: ALL EXCEPT LOCAL, .duf.hu ALL: .duf.hu EXCEPT web-okt.duf.hu ALL: PARANOID A jogosultsgok rtelmezse az albbi szablyok szerint trtnik: Amennyiben adott szolgltatsra vonatkoz engedlyezs megtallhat a / etc/hosts.allow nev fjlban, akkor van hozzfrs, egybknt ha a /etc/hosts.deny fjlban meg van tiltva a hozzfrs, akkor nincsen, egybknt pedig van hozzfrs.

84

9. A hlzati biztonsgrl dihjban


A hlzat biztonsg egy sszetett fogalom, komoly elmleti httrrel s vizsglati mdszerekkel rendelkezik. A tovbbiakban nem elmletben szeretnm megkzelteni a tmakrt, hanem szeretnm a vele kapcsolatos gyakorlati tapasztalataimat bemutatni. Ahhoz, hogy egy hlzati szolgltatst nyjt szmtgp mennyire biztonsgos, azt nagyban befolysoljk a krlmnyek. A mi esetnkben a Debian GNU/Linux opercis rendszert futtat szmtgp egy hlzatban lt el klnbz feladatokat. gy a hlzat biztonsgt s az adott gp biztonsgt nem lehet lesen klnvlasztani. Egy hlzat esetben beszlnnk kell kln-kln az egyes eszkzk (szerverek, switchek, routerek, ...) biztonsgrl illetve ezeknek a kockzatairl. De nem szabad elfeledkeznnk ezeknek az egymsra gyakorolt hatsrl sem. A tovbbiakban csak a Linux szerver biztonsgi problmira, illetve biztonsg nvelsre fogunk koncentrlni. A biztonsg esetben fontos tnyez a fizikai biztonsg. Egy szervert olyan helyen kell zemeltetni, ahol csak az arra jogosultak frhetnek hozz kzvetlenl a hardver eszkzkhz. Tovbbi fontos dolog, hogy a mkds szempontjbl fontos egyb paramtereket (pl.: kls hmrsklet) lland szinten tartsunk. A biztonsg msik fontos tnyezje az n. gyviteli biztonsg. Egy hlzati program vagy alkalmazs rvn egy konkrt feladatra tudunk megoldst tallni. Ez termszetesen lehet egy nagyobb rendszer egy kicsi pt eleme is. Mi a tovbbiakban felttelezzk, hogy teleptettnk egy Debian GNU/Linux opercis rendszert, s ezt szeretnnk minl biztonsgosabban hasznlni s zemeltetni. Egy hlzati opercis rendszer esetben a kvetkez tnyezk befolysoljk a rendszer biztonsgt: az opercis rendszer eszkz kezelse, jogosultsgai az opercis rendszer hlzat kezelse (TCP/IP Stack) a hasznlt hlzati szolgltatsok hozzfrsei, illetve belltsai az alkalmazsok ltal hasznlt kommunikci mdszere a rendszert hasznl szemlyek (az ember a leggyengbb lncszem) A biztonsg tekintetben vannak ltalnos szablyok: minden felhasznlnk csak annyi jogosultsggal rendelkezzen, amennyire az munkjhoz felttlenl szksge van nehezen kitallhat jelszavak hasznlata csak a felttlenl szksges protokollokat hasznljuk csak a felttlenl szksges hlzati szolgltatsokat futtassuk korltozzuk az egyes szolgltatsok elrhetsgt (pl.: hlzati interfsz, MAC cm, IP cm, ... alapjn) amennyiben ezt a szolgltats lehetv teszi hasznljunk tzfalakat az elrs korltozsra vdekezznk a DoS tpus tmadsok s az elraszts (flooding) ellen a kommunikcis csatorna titkostsa

85

A Debian GNU/Linux opercis rendszer biztonsga fokozhat az albbiak segtsgvel: ne adjunk shellt a felhasznlinknak, hogyha az nem felttlenl szksges kerljk a setuid bit hasznlatt azokat a partcikat, amelyeket elrhetv tesznk lehetsg szerint csatlakoztassuk noexec, nosuid, nodev opcival. ne futtassunk felesleges szolgltatsokat amennyiben lehetsges az egyes szolgltatsokat ne root-knt, hanem norml felhasznlknt futtassuk alkalmazzunk biztonsg nvel patch-eket a kernel esetben (pl.: grsecurity, RSBAC) ahol csak lehet, hasznljunk titkostott kommunikcit hasznljuk a TCP wrapper dmont az inetd-vel vagy a xinetd-t, ahol van lehetsg a hlzati elrs korltozsra lltsuk be, hogy a szerver alkalmazsok csak a mkdskhz szksges fjlokhoz frjenek hozz, semmi mshoz ne figyeljnk oda a puffer tlcsordulsos hibkra, hasznljunk ellenk vdelmi mdszereket (PaX, Exec Shield, ...) futtassuk az egyes szolgltatsokat sajt chroot krnyezeten bell csak hivatalos forrsbl szrmaz, digitlisan alrt csomagokat hasznljunk. Az elzekben felsoroltak mellett fontos feladatok: a szolgltatsok megfelel naplzsa A naplfjlokat clszer kln partcira tenni. A syslog-ng segtsgvel megoldhat a kzpontostott naplzs, ahol tbb szerver naplbejegyzsei egy erre a clra kijellt szerveren troldnak. a naplfjlokat monitorozni kell, amennyiben adott helyrl megprbljk a rendszer mkdst gtolni, vagy feltrni, akkor meg kell tenni az ellenlpseket. fontos, hogy ksztsnk biztonsgi mentseket a mkd rendszerrl, hogy a ksbbiekben a mentsbl vissza tudjuk lltani a rendszernket. A redundns adattrols nem ptolja a biztonsgi mentst, hiszen ha valakinek sikerl a rendszert feltrni, abban az esetben tetszleges adatot trlhet. Ebben az esetben termszetesen a RAID sem segt. idnknt ksztsnk biztonsgi elemzst a rendszernkrl. Vizsgljuk meg, hogy jabb technolgikkal fokozhat-e a rendszernk biztonsga. a hasznlt alkalmazsok esetben figyeljnk a biztonsgi riasztsokra. Vizsgljuk meg, hogy bennnket is rinthet-e a napvilgot ltott biztonsgi problma. rendszeresen vgezznk szoftver frisstst, ezltal biztostsuk, hogy rendszernk egyes komponensei naprakszek legyenek. Biztonsgi szempontbl nagyon fontos a felhasznlk megfelel clra hasznljk fel a kapott jogosultsgaikat. Amennyiben a felhasznlk kpzetlenek, hiba brmilyen szuper biztonsgos rendszer, akkor az jogosultsgaikon keresztl a tmadk knnyebben frhetnek hozz a rendszerhez. Ezt felhasznlva a biztonsg jval egyszerbben kijtszhat. Msrszt pedig knnyebben bedlhetnek az internet fell rkez fenyegetseknek, amelynek manapsg mr nem a tuds fitogtatsa, hanem a haszonszerzs a legfbb clja.
86

10. Fontosabb hlzati opercis rendszerben

szolgltatsok

Debian

GNU/Linux

A hlzati opercis rendszerek legfontosabb feladata, hogy klnbz szolgltatsokat nyjtsanak, amelyek felhasznlsval egy informatikai rendszer adott feladatot el tud ltni. A tovbbiakban a legnpszerbb ilyen alkalmazsokat fogom bemutatni. Minden feladatra sokfle alkalmazs ltezik. Az, hogy egy adott feladatra melyik alkalmas leginkbb, az fgg termszetesen az alkalmazs lehetsgeitl, de nem szabad figyelmen kvl hagyni a rendszergazda szemlyes tapasztalatait. Ha valaki jl ismer egy adott programot, akkor biztonsgosabban tudja megoldani az adminisztrlst, a nem vrt problmkat is valsznleg hamarabb meg tudja oldani. 10.1. Az OpenSSH Az OpenSSH az OpenBSD projekt ltal fejlesztett alkalmazs. Hivatalos weboldala a http://www.openssh.com. A segtsgvel titkostott mdon tudunk kapcsolatot kialaktani kt szmtgp kztt. Az alkalmazs kliens-szerver mdon mkdik. Amennyiben egy Linux-ot futtat szmtgpre teleptjk a kiszolglt (sshd), abban az esetben a kvetkez lehetsgeink lehetnek (a konfigurci fggvnyben): Titkostott tvoli bejelentkezs a szerverre az ssh protokoll felhasznlsval. A bejelentkezs tetszleges opercis rendszer all megtehet, amelyre ltezik ssh kliens program. Linux opercis rendszerben az ssh nev parancs szolgl a tvoli bejelentkezsre. Mg ablakozs opercis rendszerbl pldul a putty.exe felhasznlsval oldhat meg a tvoli bejelentkezs. A tvoli rendszeradminisztrls egyik fontos eszkze. Fjl tvitel lehetsge scp (secure copy) protokollon keresztl. A fjl tvitel esetben az sshd elindtja a szerveren a /usr/bin/scp parancsot, amely felhasznlsval trtnik a fjl(ok) kiszolglsa. Linux opercis rendszer esetben az scp parancs segtsgvel oldhat meg a fjl tvitel. Ablakozs opercis rendszerben erre a feladatra hasznlhat a WinScp.exe alkalmazs. Fjl tvitel lehetsge sftp (secure ftp) protokoll felhasznlsval. Ennek a gyakorlati megvalstst a /usr/lib/openssh/sftp-server vgzi, amely az sshd egy alrendszernek tekinthet. Linux opercis rendszerben az sftp parancs hasznlatval megoldhat a fjl tvitel, mg az elz bekezdsben emltett WinScp kpes sftp alap tvitelre is az scp hasznlata mellett. Megvalsthat a segtsgvel a port forwarding. Ez annyit jelent, hogy kpesek vagyunk egy nmagban titkostst nem hasznl protokollt titkostott csatornn tvinni. Az ssh kpes az X11 forwarding-ra. Ez annyit jelent, hogy a tvoli gpen fut grafikus alkalmazs kpt kpesek vagyunk tvinni titkostottan egy msik gpre. Az OpenSSH egy nylt forrs implementcija az ssh protokollnak. Szmos elterjedt titkostsi algoritmust tmogat. Ilyen pldul a DES, Blowfish, 3DES, AES, s ezeknek klnbz mret kulcsokon alapul vltozataik.
87

A Debian GNU/Linux 5.0 az OpenSSH 5.1-et tartalmazza. Az openssh-client csomag tartalmazza a kliens alkalmazsokat, az openssh-server nev csomag pedig a szervert. Amennyiben mindkettt szeretnnk telepteni, akkor telepthetjk az ssh nev csomagot. Ekkor automatikusan teleplni fog mind az ssh kliens, mind pedig a szerver a fggsgek miatt. 10.1.1. Az SSH protokolljai Az ssh mkdse a nyilvnos kulcs titkostson alapul. Ez annyit jelent, hogy van egy kulcsprunk, amely egy titkos kulcsbl (private key) s egy nyilvnos kulcsbl (public key) ll. Ezeknek fontos szerepk van a kommunikcis csatorna felptsekor. Az ssh esetben ktfle protokollt hasznlhatunk: SSH protocol version 1. Ebben az esetben a szerver rendelkezik egy 1024 bites RSA kulcs prral, amelyet a /etc/ssh knyvtrban trol (HostKey). Emellett rendelkezik egy msik RSA kulcs prral, amelyet alaprtelmezsknt rnknt jragenerl. Kapcsolatfelvtelkor a kvetkez trtnik: a kliens kapcsoldik a szerver megfelel portjhoz (alaprtelmezsknt a 22-s TCP port) a szerver elkldi a publikus kulcsait a kliensnek a kliens ellenrzi, hogy a kulcsok trolva vannak-e, ha igen akkor sszehasonltja ket a trolt vltozattal a kliens generl egy 256 bites vletlen szmot, amelyet a publikus kulcsokkal titkostva visszakld a szervernek a szerver a privt kulcsa segtsgvel visszafejti a kldtt vletlen szmot, majd ezt a vletlen szmot hasznljk a tovbbiakban a kommunikci paramtereinek az egyeztetsre a kliens kivlasztja a titkosts algoritmust, amelyet a norml adatforgalom esetben hasznlnak. A DES, Blowfish vagy a 3DES hagyomnyos titkostsi mdszerek tmogatottak, amely kzl a 3DES az alaprtelmezett. a kliens hitelestse (authentication) SSH protocol version 2. Ebben az esetben a szerver rendelkezik egy RSA s egy DSA kulcs prral, amelyet a /etc/ssh knyvtrban trol (RSA,DSA HostKey). A klnbsg annyi az 1-es protokollhoz kpest, hogy itt a kapcsolat felvtel nem vletlen szm alapjn trtnik. Az n. Diffie-Hellman kulcs csere protokoll segtsgvel trtnik meg egy kezdeti 128 bites kulcsnak a ltrehozsa (session key). Ezt mindegyik fl ismerni fogja, gy nem fog titkostatlan csatornn keresztl kzlekedni. Ezutn a kliens s a szerver megllapodnak a csatorna titkosts mdszerben. Ebben az esetben szimmetrikus titkostst hasznlnak AES, Blowfish, 3DES, CAST128, Arcfour mdszerek valamelyikt, amelyet a szerver ltal felajnlottak kzk a kliens kivlaszt. Ezutn kvetkezhet a hitelests.

88

Manapsg ltalban csak az jabb, a 2. protokoll a hasznlatos. A msik tmogatst ajnlott tiltani. 10.1.2. Az SSH fontosabb hitelestsi lehetsgei Miutn a kapcsolatfelvtel megtrtnt a kliensnek valamilyen mdon hitelestenie kell magt. Amennyiben ez sikeres, csak abban az esetben szabad shellt adni az adott felhasznlnak (vagy a tvoli gpen a megfelel parancsot futtatni). A hitelestsi mdszerek utn zrjelben lthat, hogy melyik protokoll verzi esetben hasznlhatk. RhostsAuthentication (1): Amennyiben az adott gp megtallhat a /etc/hosts.equiv vagy /etc/ssh/shosts.equiv fjlokban, illetve adott felhasznlknt a .rhosts vagy a .shosts fjlokban, akkor jelsz megads nlkl be lehet engedni. RhostsRSAAuthentication (1): HostbasedAuthentication(2): Ugyanaz mint az elz, annyi a klnbsg, hogy ebben az esetben a kliens-nek rendelkezni kell a szerver RSA publikus kulcsval. RSAAuthentication (1): PubkeyAuthentication (2): RSA kulcspr alapjn trtnik a hitelests ebben az esetben. Az ssh-keygen parancs segtsgvel ltrehozhatunk egy kulcsprt. Alaprtelmezsknt a .ssh/id_rsa lesz a privt, a .ssh/id_rsa.pub pedig a publikus kulcsunk. Amennyiben a publikus kulcsunkat hozzadjuk a szerveren a .ssh/authorized_keys nev fjlhoz, akkor a privt kulcsunk segtsgvel megtehetjk a bejelentkezst. Ekkor a generlskor megadott jelsz felhasznlsval tudunk bejelentkezni. Nem ktelez a jelsz megadsa a kulcspr ltrehozsakor. PasswordAuthentication (1,2): A rendszerbeli felhasznlnv s jelsz alapjn trtnik meg a hitelests. Az elzekben felsorolt lehetsgek mellett van arra lehetsg, hogy Kerberos szerver felhasznlsval trtnjen meg a hitelests. 10.1.3. Az SSH-hoz kapcsold fontosabb parancsok /usr/sbin/sshd /usr/lib/openssh/sftp-server /etc/init.d/ssh /usr/bin/ssh /usr/bin/scp /usr/bin/sftp /usr/bin/ssh-keygen az SSH kiszolgl az sftp kiszolglsrt felels alrendszer a ssh indtsrt felels script az SSH kliens program scp parancs a fjl tvitelre titkostott ftp kapcsolat ssh felhasznlsval kulcspr ltrehozsa

89

10.1.4. Az SSH kiszolgl nhny konfigurcis lehetsge Az OpenSSH kiszolgl a /etc/ssh/sshd_config fjl segtsgvel konfigurlhat. A kvetkezkben nhny fontosabb direktvt mutatok be: Port 22 Melyik TCP porton hallgatzzon? ListenAddress 172.31.0.1 Mely IP cmen legyen elrhet. Amennyiben tbb interfsznk is van, akkor megadhatjuk, hogy melyeken trtnjen a port megnyitsa. Tbb is szerepelhet belle. Protocol 2 Csak az SSH Protocol Version 2. legyen tmogatva. HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key A teleptett szerver privt kulcsait tartalmaz fjlok. PermitRootLogin yes A root-knt val bejelentkezs engedlyezse. Biztonsgi kockzatot jelenthet, ha PasswordAuthentication engedlyezett. Ilyenkor lehetsges tvolrl a rendszergazdai jelsz prblgatsa. AllowGroups oktato AllowUsers user@host DenyGroups hallgato DenyUsers winokt Bejelentkezs engedlyezse vagy tiltsa csoport- vagy felhasznlnv alapjn. RSAAuthentication yes PubkeyAuthentication yes PasswordAuthentication yes RhostsRSAAuthentication no HostbasedAuthentication no Adott hitelestsi mdszerek tmogatsa. SyslogFacility AUTH LogLevel INFO A naplzs a /var/log/auth fjlba trtnjen INFO naplzsi szinttel. PermitEmptyPasswords no Az res jelszavak nem engedlyezettek. MaxAuthTries 3 A hitelestsi prblkozsok szma. StrictModes yes Bejelentkezs eltt a sajt knyvtr jogosultsgainak az ellenrzse.

90

Subsystem sftp /usr/lib/openssh/sftp-server Az sftp alrendszer engedlyezse. UsePAM yes A PAM hasznlatnak engedlyezse. 10.1.5. Az SSH kliens hasznlata Linux opercis rendszerben bejelentkezst illetve a port fjlok segtsgvel trtnhet: rendszer szinten: felhasznli szinten: az ssh parancs segtsgvel megtehetjk a tvoli forward-ot. Az ssh kliens konfigurlsa az albbi /etc/ssh/ssh_config ~/.ssh/config

Plda konfigurcis fjlra: Port 22 RhostsAuthentication no RhostsRSAAuthentication no RSAAuthentication yes PasswordAuthentication yes User user1 StrictHostKeyChecking yes Alaprtelmezsknt az ssh parancs ugyanazzal a felhasznlval prbl meg tvolra bejelentkezni, amellyel a helyi rendszerben jelen vagyunk. A User direktvval ezt definilhatjuk fell. A StrictHostKeyChecking direktva segtsgvel azt adhatjuk meg, hogy szigoran ellenrizze a ~/.ssh/known_hosts fjlban a szerver publikus kulcst. Ha az nem egyezik, akkor ne engedlyezze a hitelestst. Pldk ssh parancs hasznlatra: ssh 192.168.31.1 bejelentkezs az adott gpre az aktulis user-el ssh -l alma 192.168.31.1 ssh alma@192.168.31.1 bejelentkezs az adott gpre alma nev felhasznlknt ssh -i pr_rsa.key -p 1022 -l alma 192.168.31.1 bejelentkezs az adott gpre alma nev felhasznlknt a pr_rsa.key RSA kulcs felhasznlsval az 1022-es porton keresztl ssh -f -N -L 2222:192.168.31.1:80 alma@192.168.31.1 true a helyi 2222-es port forward-olsa a tvoli gp 80-as portjra az alma nev felhasznlval dd if=/dev/sda1 | ssh -l root 192.168.31.1 'cat > sda1_save' egy partci mentse ssh hasznlatval egy tvoli gpre

91

10.1.6. Fjltvitel scp s sftp hasznlatval Az scp parancs ltalnos szintaxisa: scp [Options] [[user1@host1:]file1] [[user2@host2:]file2] Pldk scp parancs hasznlatra: scp alma@192.168.31.1:a* . A tvoli gphez alma nev felhasznlval kapcsoldik s a felhasznl sajt knyvtrbl az a-val kezdd fjlokat msolja t a helyi gp aktulis knyvtrba scp -pr 192.168.31.1:/var/www /var/. A tvoli gphez a jelenlegi felhasznl azonostval kapcsoldik s onnt a / var/www knyvtr tartalmt msolja t a /var/www-knt a helyi gpre a fjl jellemzk megrzsvel scp -p *tgz 192.168.31.1:. Az aktulis knyvtrban lv tgz-re vgzd fjlokat msolja t a tvoli gpre a jelenlegi felhasznli azonostval a felhasznl sajt knyvtrba scp -p /var/www/index.htm root@192.168.31.1:/var/www/index.htm A /var/www/ -ben lv index.htm nev fjlt msolja t a tvoli gpre ugyanilyen elrsi ttal root-knt csatlakozva scp -p -P 2222 *.html root@192.168.31.1:/var/www/. Az aktulis knyvtrban lv sszes .html-re vgzd fjlt msolja t a tvoli gpre a /var/www knyvtrba root-knt csatlakozva a 2222-es tcp porton keresztl Az sftp parancs hasznlata hasonlt a hagyomnyos ftp parancshoz. Az scp-vel ellenttben ez egy nll parancsfelletet biztost. A parancs felleten bell az ftp kliensekben megszokott parancsokhoz hasonlakat hasznlhatunk. Az sftp parancs hasznlata: sftp [Options] [[user@]host[:dir[/]]] sftp alma@192.168.31.1 Connecting to 192.168.31.1... alma@192.168.31.1's password: sftp> ls Miutn sikeresen kapcsoldtunk a szerverhez, a kliens felleten bell a legfontosabb lehetsgek: ?, help segtsg krs ls, lls listzs a tvoli, helyi gpen pwd, lpwd aktulis knyvtr megtekintse a tvoli, helyi gpen cd, lcd knyvtr vlts a tvoli, helyi gpen get, put tbb fjl letltse, feltltse rm, rmdir tvoli fjl, knyvtr trlse quit kilps

92

Az OpenSSH segtsgvel lehetsg van tvoli adminisztrcira illetve fjl tvitelre. Amennyiben csak rendszeradminisztrlsra hasznljuk korltozzuk a szolgltats elrst IP cm alapjn, illetve ne az alaprtelmezett porton futtassuk. Amennyiben csak kulcspr alapjn trtn hitelestst engedlyezzk gy a tvolrl trtn jelsz prblgatsoknak is gtat szabhatunk. De termszetesen ebben az esetben is fennll annak a veszlye, hogy valamilyen szoftver hibt kihasznlva visszaljenek a rendszerrel. Teht hasznljuk krltekinten, nehogy msnak is ezltal legyen lehetsge a rendszer feltrsre. Sokszor ppen a biztonsgosnak hitt szolgltatsok jelentik a legnagyobb veszlyt. Amennyiben ezen keresztl szeretnnk megvalstani a fjl tvitelt, akkor ajnlott, hogy a norml felhasznlk csak a sajt knyvtrukat tudjk elrni. Erre az 5.1-es verzi esetben ott van a ChrootDirectory konfigurcis lehetsg. Amennyiben az itt megadott knyvtr esetben ltezik egy megfelel minimlis knyvtrstruktra, akkor a felhasznlk csakis ezen knyvtr tartalmt tudjk majd elrni. Az scponly csomag (parancs) felhasznlsval megoldhat, hogy csak scp elrs legyen, shellt ne kaphasson egy tvoli felhasznl. 10.2. Web szerver hasznlata Linuxon 10.2.1. Az Apache jellemzi Manapsg taln a leggyakrabban hasznlt hlzati szolgltats a web kiszolgls. Nagyon sok informatikai rendszer esetben egyrtelm kvetelmny, hogy legyen web-es fellete (is). Ahhoz, hogy a Linux-ot futtat szmtgpnk ezt a feladatot el tudja ltni, ahhoz szksges, hogy valamilyen web kiszolgl programot teleptsnk. Napjainkban a legelterjedtebb webszerver az Apache, amely a 2008-as Netcraft felmres szerint krlbell a webszerverek 50%-n tallhat. Linux alatt egy msik gretes kezdemnyezs a lighttpd. Br kpessgeiben mg alulmarad az Apache-hoz kpest, de gyorsabb kiszolglst tesz lehetv. Teht a feladattl fgg, hogy melyiket clszer vlasztani. Az ktsgtelen, hogy az Apache jval nagyobb felhasznli tborral rendelkezik. Az Apache Software Foundation tbb nylt forrs szoftvert is fejleszt, illetve tmogat. Ezek kzl az egyik legismertebb a web szerver. A projekt hivatalos web oldala a http://httpd.apache.org. Az Apache webszerver legfontosabb jellemzi: Az utbbi 10-12 v dominns webszervere. Npszersgre jellemz, hogy folyamatosan 50-70%-t a webszervereknek az Apache tette ki. Jl bevlt, jelents hagyomnyai vannak. A web kiszolgls TCP/IP-re pl szolgltats. Alaprtelmezsknt a 80-as TCP portot hasznlja a HTTP, a 443-as portot a HTTPS. Jelenleg hrom f verzija van hasznlatban: 1.3, 2.0, s a 2.2-es. Nylt forrskd, a legtbb Linux disztribciban benne van. Kis erforrs igny, egy manapsg elavultnak tekinthet Pentium II kategrij szmtgp megfelel lehet a webszerver feladatra. (Ez termszetesen fgg a felhasznlk szmtl s az alkalmazs szmtsignytl.) Az Apache sokoldalan konfigurlhat, rengeteg konfigurcis belltssal
93

rendelkezik. A webszerver felptse modulris. Amikor forrskdbl fordtjuk a webszervert vlaszthatunk, hogy milyen modulokat (tmogatsokat) szeretnnk statikusan belefordtani a webszerver programba (httpd), illetve melyeket dinamikusan betlthet modulknt. Ez utbbi igny szerint a webszerver indulsakor betlthet s hasznlhat. A klnbz script nyelveket maximlisan tmogatja: Perl, PHP, Python, ... Ezen programozsi nyelvek segtsgvel megvalsthat a dinamikus weboldal ltrehozs, adatbzis alap webes rendszerek ltrehozsa. Kpesek vagyunk SSI (Server Side Include) hasznlatra. Ennek a segtsgvel pldul mindegyik web oldalunkhoz tartalmba adott fjlok tartalmt be tudjuk illesztetni. Kpesek vagyunk kls programokat a CGI (Common Gateway Interface)-n keresztl vgrehajtani. Van lehetsg a Virtualhost hasznlatra. Ami annyit jelent, hogy egy program kpes elltni tbb szerver kiszolglst. Vagyis pldul ugyanaz az Apache szolglja ki a mondjuk a www.a.hu s a www.b.hu szervereket. Sokfle opercis rendszert tmogat, elssorban Linux vagy Unix opercis rendszerben hasznlatos.

Az Apache verzik legfontosabb jellemzi. 1.3-as verzik (a jegyzet rsakor az 1.3.42-es a legjabb) kizrlagosan process alap mkds tbb fggetlen gyermekfolyamat rvn valsul meg a webkiszolgls alapbl nem tartalmaz SSL (Secure Socket Layer) tmogatst 2.0-as verzik (a jegyzet rsakor az 2.0.63-as a legjabb) 2.2-es verzik (a jegyzet rsakor az 2.2.15-s a legjabb) APR (Apache Portable Runtime): ltalnos API s lib-ek az alkalmazsok szmra klnbz MPM-ek (Multi Processing Modules) hasznlata. A hagyomnyos process alap modell mellett klnbz szl alap modellek hasznlata (pl.: worker) hasznlatra is van lehetsgnk. a 2GB-nl nagyobb fjlok tmogatsa (csak a 2.2-ben) alapbl tartalmaz SSL tmogatst (mod_ssl) tbbfle protokoll tmogatsa a HTTP mellett specilis szr (filter) modulok hasznlata a kimenet vizsglatra 10.2.2. Az Apache teleptse forrskdbl A tovbbiakba a 2.2-es ggal fogok foglalkozni. Az Apache 2.2.9 benne van a disztribciban s csomagbl is telepthet. Az oktats sorn a sajt program fordtst s teleptst az Apache segtsgvel szoktam bemutatni vek ta. gy a jegyzetben is elszr ezzel a mdszerrel fogom bemutatni a webszerver teleptst. Ahhoz, hogy Apache-ot tudjunk fordtani, abban az esetben a kernel fordtshoz hasonlan rendelkeznnk kell bizonyos csomagokkal. Amire biztosan szksgnk lesz az a libc6-dev, gcc s make nev csomagok. Ezen fell a belltott

94

tmogatsok fggvnyben mg szksgnk lehet nhny csomag teleptsre (pl.: zlib1g-dev, libssl-dev). Miutn az Apache forrskdjt letltttk s kicsomagoltuk, els lpsknt a ./configure scriptet kell futtatnunk. Ennek a segtsgvel bellthatjuk, hogy a program mely sszetevire van szksgnk. Miutn belptnk a forrskdot tartalmaz knyvtrba, ./configure help | less parancs segtsgvel tekinthetjk t a konfigurls klnbz lehetsgeit. Plda egy ./configure parancsra: ./configure --prefix=/usr/local/httpd-2.2.15 \ --enable-modules=all \ --enable-mods-shared=all \ --enable-so \ --enable-cache \ --enable-cgi \ --enable-ssl \ --with-ssl=/usr/include \ --with-mpm=worker Ebben a pldban gy konfigurlom a fordtt, hogy a /usr/local/httpd-2.2.15-s knyvtrba kerljenek majd a program klnbz rszei. Az sszes modult engedlyezem, s mindegyiket dinamikusan. Ezen kvl engedlyezem, hogy legyen dinamikusan modul betlts, az oldalak gyorst trba helyezst, a CGI vgrehajtst s az SSL bvtmnyt. Ebben az esetben a worker MPM-et fogja hasznlni a ltrejtt szerver. Ahhoz, hogy az elz parancs sikeresen lefusson, ahhoz szksges: zlib1g-dev csomag teleptse mod_deflate miatt. libssl-dev csomag teleptse mod_ssl miatt. Miutn a forrskd konfigurcija sikeresen lefutott, kvetkezhet alkalmazshoz tartoz binrisok, lib-ek s egyb fjlok fordtsa. make [-j2] az

Majd az elkszlt fjlok teleptse a clhelyre (/usr/local/httpd-2.2.15). Alaprtelmezsknt a /usr/local/apache2 knyvtr a hasznlatos. Amennyiben verzi frisstst vgznk, akkor ajnlatos, hogy a /usr/local/apache2 szimbolikus link legyen, amely a hasznlt verzinak megfelel knyvtrra mutat. gy a konfigurlst is tudjuk verzitl fggetlenl vgezni, amely megknnyti a verzifrisstst. make install 10.2.3. Az Apache knyvtrai s parancsai A teleptst kveten a kvetkez knyvtrak s fjlok jnnek ltre a clhelyen: bin az Apache-hoz tartoz binrisok ab Apache benchmark apachectl az Apache indtsa, lelltsa, jraindtsa
95

apxs dbmmanage htdbm htdigest htpasswd httpd httxt2dbm logresolve rotatelogs

build cgi-bin conf


httpd.conf mime.types

error htdocs

icons include lib logs access.log error.log man manual modules

APache eXtenSion tool, bvtmnyek fordtsa, teleptse DBM adatbzisban trolt felhasznlk kezelse, amely HTTP Basic hitelestshez hasznlhat DBM adatbzisban trolt felhasznlk ltrehozs, amely HTTP Basic hitelestshez hasznlhat szvegfjlban trolt felhasznlk kezelse a HTTP Digest hitelestshez szvegfjlban trolt felhasznlk kezelse a HTTP Basic hitelestshez az kiszolgl dmon hitelestsi informcik szvegfjlbl s DBM-be val talaktsa nvfelolds naplfjlban lv IP cmek alapjn a naplfjlok forgatsa id vagy mret alapjn a fordtsi folyamat sorn hasznlt szkriptek s makrk a CGI-k alaprtelmezett helye, ezen knyvtr tartalma rhet el a http://host/cgi-bin hivatkozs segtsgvel. Ahol a host az adott gp FQDN-je vagy IP cme. konfigurcis fjlok a webszerver f konfigurcis fjlja az egyes MIME tpusok sszerendelse az egyes fjl kiterjesztsekkel az egyes HTTP hibk esetn megjelentend fjlok a webes dokumentumok helye. Amilyen fjlokat ebbe a knyvtrba rakunk, azok lesznek elrhetk weben keresztl. Ez a knyvtr a jelenti a webes dokumentumok gykert. ikonok (pl.: listzshoz) header fjlok lib-ek naplfjlok a hozzfrsek naplzsa a hibk naplzsa parancsokhoz tartoz man oldalak Apache dokumentci az elrhet dinamikus modulok

Amennyiben nem forrskdbl teleptjk az Apache-ot, abban az esetben az elzekben felsorolt knyvtrak s fjlok ms helyen tallhatk. Pldul: konfigurcis fjlok: /etc/apache2 web-es dokumentumok helye: /var/www CGI-k helye: /usr/lib/cgi-bin Termszetesen a konfigurci ugyanazon direktvk segtsgvel trtnhet, csak ms helyen tudunk a program mkdsbe beavatkozni.

96

10.2.4. Az Apache nhny konfigurcis direktvja Az Apache esetben konfigurls szempontjbl a f konfigurcis fjl mellett egyb konfigurcis fjlokat is hasznlhatunk. Az include direktva segtsgvel tetszleges nev kls konfigurcis fjl felhasznlhatunk a szerver mkdsekor. Amikor egy szervert konfigurlunk megklnbztethetnk: globlis konfigurcit a globlis konfigurcis fjl felhasznlsval tetszleges direktvt megadhatunk. Htrnya, hogy brmilyen mdostskor a szerverrel jra kell olvastatni a konfigurcis fjlt. helyi konfigurcit (Alaprtelmezsknt .htaccess nven). Ebben a fjlban adott knyvtrra vonatkoz helyi belltsokat adhatunk meg. Aminek a mdostst elzetesen engedlyeztk (AllowOverride), annak a felldefinilst tehetjk meg helyileg. A globlis konfigurci esetben lteznek gynevezett blokk direktvk. Ezek segtsgvel bizonyos szempont alapjn csoportosthatjuk a direktvkat, adott felttel vagy valamilyen fjl jellemz alapjn. A konfigurls sorn hasznlhat fontosabb blokk direktvk: <IfDefine SSL> ... </IfDefine> a webszerver indtsakor a -D kapcsl utn definilt rtk figyelembe vtele <IfModule module> ... </IfModule> adott dinamikus modul ltezsekor alkalmazand belltsok <VirtualHost ip_address:port> ...</VirtualHost> adott virtulis hoszt-ra vonatkoz belltsok <Directory path> ... </Directory> adott knyvtrra alkalmazand belltsok elrsi tvonal alapjn <DirectoryMatch regexp> ... </DirectoryMatch> adott knyvtrra alkalmazand belltsok regulris kifejezs alapjn <Files filename> ... </Files> adott fjl(ok)-ra vonatkoz belltsok fjlnv alapjn (shell minta hasznlhat a fjlnvben) <FilesMatch regexp> ... </Filesmatch> adott fjl(ok)-ra vonatkoz belltsok regulris kifejezs alapjn <Location URL> ... </Location> adott URL-re vonatkoz belltsok nv alapjn (shell minta hasznlhat a nvben) <LocationMatch regexp> ... </LocationMatch> adott URL-re vonatkoz belltsok regulris kifejezs alapjn <Limit method> ... </Limit> adott HTTP metdus(ok)ra vonatkoz belltsok nv alapjn <LimitExcept method> ... </LimitExcept> adott HTTP metdus(ok)ra nem vonatkoz belltsok nv alapjn A blokkdirektvk teht meghatrozzk, az adott konfigurcis paramterek rvnyessgi krt. A kvetkezkben kiemelnk nhny konfigurcis lehetsget. Az, hogy adott direktva pontosan melyik blokkon bell lehetsges, az az Apache dokumentciban megtallhat. Ez utbbi HTML formban is elrhet, s a /manual hivatkozson keresztl a webszerver gykern bell. ServerRoot /usr/local/apache2 Az Apache teleptsnek a helyt adja meg. A klnbz konfigurcis fjlok
97

helyt relatvan is megadhatjuk, amely esetben az itt definilt knyvtr lesz az alaprtelmezs. ServerType standalone # vagy inetd A webszerver futtatsa nllan vagy az inetd felhasznlsval trtnjen. ServerName www.apache_host.hu Itt adhatjuk meg, hogy a szervert milyen nv vagy IP cm segtsgvel rhessk el. Listen 80 A 80-as TCP porton hallgatzzon a webszerver. User www-data Group www-data A webszerver milyen felhasznl s milyen felhasznli csoport nevben mkdjn. Ahhoz, hogy a webszerver kpes legyen dokumentumokat kiszolglni, fontos, hogy legyen olvassi jogosultsga az adott fjlokra vonatkozan. Ellenkez esetben nem lesz kpes a fjlok elkldsre. DocumentRoot /var/www/htdocs Egy webszerver segtsgvel ltalban nem szeretnnk az sszes fjlunkat elrhetv tenni. Elg az, hogy csak bizonyos knyvtron belli fjlokat tesszk elrhetv HTTP-n keresztl. ServerAdmin webmaster@www.apache_host.hu A webszerver karbantartsrt felels szemly vagy csoport e-mail cme. LoadModule dir_module modules/mod_dir.so LoadModule php5_module modules/libphp5.so Dinamikus modul betltse a szerver indtsakor. Miutn egy modul betltsre kerlt, akkor az ltala nyjtott lehetsgek s bizonyos direktvk elrhetek lesznek. Timeout 300 Egy felplt kapcsolat idkorltja. KeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 15 Tbb kapcsolat engedlyezse adott IP cmrl s az erre vonatkoz maximlis kapcsolatszm s idkorlt. LogLevel warn A naplzs szintjnek megadsa. A lehetsges rtkek, amelyek esetben balrl jobbra haladva egyre cskken a naplzott esemnyek szma: debug, info, notice, warn, error, crit, alert, emerg. ErrorLog logs/error.log Amennyiben olyan krs rkezik a webszerverhez, amelyet valamilyen problma miatt nem tud kiszolglni, akkor ide bejegyzi a krst s az arra vonatkoz fontosabb informcikat.

98

LogFormat "%h %l %u %t \"%r\" %>s %b" common CustomLog logs/access.log common Az elrsek naplzsnak formtuma s a naplfjl megadsa. A %h jelenti pldul a tvoli gp IP cmt, a %t krs idejt. ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var Az egyes HTTP hibkhoz fjlokat trsthatunk, amely segtsgvel tetszleges tartalmat megjelenthetnk a hibk fggvnyben. DefaultType text/plain AddDefaultCharset UTF-8 Alaprtelmezett MIME tpus s karakter kszlet. ServerTokens Prod A webszerver verzijnak rejtse, csak az Apache nv mutatsa. TraceEnable off A HTTP TRACE metdusnak tiltsa. ServerSignature Off A szerver ltal generlt listk aljn szerepl sor kikapcsolsa. UserDir public_html Felhasznlknt a sajt webtartalom elhelyezsnek knyvtra a HOME knyvtron bell. Amennyiben ez engedlyezett, akkor pldul a tux nev felhasznl sajt oldalai a http://www.apache_host.hu/~tux cmen lesznek elrhetek. DirectoryIndex index.html index.shtml index.php Amennyiben egy knyvtr esetben ltezik az itt megadott nev fjlok valamelyike, akkor olyan HTTP krsek esetben, amelyek knyvtr hivatkozssal vgzdnek ezen fjlok lesznek automatikusan elkldve balrl jobbra trtn prioritssal. AccessFileName .htaccess Megadja annak a fjlnak a nevt, amely segtsgvel helyi belltsok tehetk adott knyvtrakra vonatkozan. Hozzfrsi belltsok A webszerver esetben fontos, hogy milyen mdon lehessen elrni bizonyos fjlokat vagy knyvtrakat. Szksg lehet pldul olyanra, hogy egy adott knyvtr esetben, ahol nem ltezik a DirectoryIndex-nek megfelel fjl, ott ne listzza ki automatikusan a knyvtr tartalmt. A korbban ismertetett blokk direktvk kzl ily mdon hasznlhatjuk a Directory, DirectoryMatch, Files, FilesMatch, Location, LocationMatch direktvkat.

99

Ebben az esetben a kvetkez fontosabb lehetsgeink vannak a jogosultsgok korltozsra: Options Az albbi opcik kzl vlaszthatunk, amelyek a direktva utn rhatk: None Semmilyen opci nincs bekapcsolva All Az sszes opci be van kapcsolva ExecCGI CGI vgrehajts engedlyezse FollowSymLinks szimbolikus linkek kvetse (mutathat a DocumentRoot-on kvlre is) SymlinksIfOwnerMatch szimbolikus linkek kvetse csak akkor, hogyha ugyanaz a link s a link cljnak tulajdonosa Includes SSI engedlyezse Indexes knyvtr tartalom listzsnak engedlyezse Az egyes opcik rkldnek. Vagyis, ha adott szinten belltjuk ket, akkor az az alknyvtrakra is rvnyes lesz. Amennyiben az Options utn egyszeren felsorolunk rtkeket, gy csak a felsorolt opcik lesznek bekapcsolva. Van arra is lehetsg, hogy a korbbi rkld belltsokhoz adjunk j opcit hozz, vagy vegynk el belle. Ezt gy tehetjk meg, hogy az adott opci neve el + vagy jelet runk.

AllowOverride Azt hatrozza meg, hogy a .htaccess fjlokban milyen globlis belltsokat definilhassunk fell. Az albbi lehetsgek kzl vlaszthatunk, amelyek a direktva utn rhatk: None, All semmit, mindent AuthConfig hitelestsre vonatkoz belltsokat FileInfo dokumentum tpussal kapcsolatos belltsokat Indexes knyvtr listzsnak formtumt Limit hozzfrsek engedlyezst s megtagadst Options az elzekben szerepl opcik kzl melyeket

A hozzfrsek engedlyezshez kapcsoldik az Order, Allow s Deny direktva. Order allow, deny Order deny, allow A hozzfrs vezrl belltsok rvnyessgnek sorrendje. Allow from host_list Deny from host_list Az elrs engedlyezse, tiltsa adott IP cmekrl vagy hosztokrl Egyszer plda opcik s jogosultsgok belltsra: <Directory "/usr/local/apache2/manual"> Options Indexes AllowOverride None Order allow,deny Allow from localhost Deny from localhost </Directory>

100

Alias-ok, tirnytsok Arra is van lehetsgnk, hogy a DocumentRoot-on kvli knyvtrakat elrhetv tegynk. Erre szolglnak az n. Alias-ok.

fjlokat

Alias /icons /usr/share/apache2/icons Ebben az esetben pldul a http:/www.apache_host.hu/icons/test.png hivatkozs estben a test.png fjlt a /usr/share/apache2/icons knyvtrbl prblja meg elrni. AliasMatch ^/icons(.*) /usr/share/apache2/icons$1 Annyiban klnbzik az Alias-tl, hogy ebben az esetben regulris kifejezs segtsgvel adhatjuk meg, hogy milyen hivatkozsok esetben akarjuk a fjlokat mshonnt venni. Redirect /inf http://inf.duf.hu Amennyiben az els paramterknt megadott hivatkozssal kezddik az URL-ben lv PATH, akkor a krst t kell irnytani a msodik paramterknt megadott helyre. RedirectMatch (.*\.jpg)$ http://inf.duf.hu$1 A RedirectMatch esetben szablyos kifejezs segtsgvel adhatjuk meg, hogy milyen fjlok esetben trtnjen meg az tirnyts. ScriptAlias /cgi-bin /usr/local/apache2/cgi-bin Ugyangy viselkedik, mint az Alias, csak ebben az esetben az adott knyvtr CGI scripteket tartalmaz. ScriptAliasMatch ^/cgi-bin(.*) /usr/local/apache2/cgi-bin$1 Regulris kifejezs alapjn is megtehetjk a CGI scriptek helynek meghatrozst. a

CGI szkriptek vgrehajtshoz szksges belltsok: Ahhoz, hogy adott parancsfjlokat CGI-knt tudjunk vgrehajtani tbb bellts is szksges. Erre mutat pldt a kvetkez konfigurcis fjl rszlet: AddHandler cgi-script .cgi .pl ScriptAlias /cgi-bin /usr/local/apache2/cgi-bin <Directory "/usr/local/apache2/cgi-bin"> Options +ExecCGI Order allow,deny Allow from all </Directory> Az AddHandler utasts segtsgvel a .cgi-re s a .pl-re vgzd fjlok esetben belltjuk, hogy CGI-knt legyenek kezelve. A ScriptAlias segtsgvel megadjuk, hogy hol keresse a scripteket. Nem clszer a CGI-ket a DocumentRoot-on bellre elhelyezni. Azon knyvtr esetben, ahonnt szeretnnk CGI-ket futtatni, szksges az ExecCGI opci engedlyezse. Egy fjl, amit CGI-knt szeretnnk futtatni fontos, hogy rendelkezzen vgrehajtsi jogosultsggal, s megfelel HTTP fejlcet generljon. A webszerver
101

csakis ebben az esetben tudja lefuttatni, s elkldeni a bngsznek a parancs kimenett. A PHP szkriptek futtatshoz szksges belltsok: Manapsg a dinamikus web tartalom kiszolglshoz gyakori a PHP hasznlata. Amennyiben a PHP-t dinamikus modulknt szeretnnk hasznlni, abban az esetben teleptennk kell vagy csomagbl (libapache2-mod-php5), vagy forrskdbl. Miutn a teleptst elvgeztk, be kell lltanunk, hogy az Apache bizonyos fjlok esetben a PHP rtelmezt felhasznlva adja vissza a kimenetet. LoadModule php5_module modules/libphp5.so AddType application/x-httpd-php .php .php5 AddType application/x-http-php-source .phps A php5 modul betltse mellett trstanunk kell az rtelmezhz kiterjesztseket. Ebben a pldban azt lthatjuk, hogyha az Apache olyan hivatkozst kap, amely .php-re vagy .php5-re vgzdik, akkor nem egyszeren visszakldi a fjlt, hanem tadja a bepl PHP modulnak, amely a benne lv kdot lefuttatja s ennek a kimenett fogja a Webszerver visszaadni. A bepl modul mellett egy PHP nyelven megrt script is futtathat CGI-knt. Az Apache 2.2 fontosabb moduljai: Az webszerver mkdshez kapcsold rszfeladatokat modulok vgzik el. Vagyis ezek egyttes mkdse rvn valsul meg a web kiszolgls. Mindegyik konfigurcis direktvhoz tartozik egy modul, amelyben annak a direktvnak az rtelmezse trtnik. Amennyiben konfigurcis hibval tallkozunk, akkor a kvetkezket clszer ellenrizni: a direktva nevt s/vagy paramtert megfelelen adtuk-e meg a direktva mkdshez szksges modul be lett-e tltve a megfelel helyen (kontextusban) akarjuk-e hasznlni a direktvt Nhny modul, a hozz tartoz funkcival: mod_alias.so Alias-ok s tirnytsok kezelse mod_auth[n]_*.so hitelestshez ktd modulok mod_authz_*.so Feljogostshoz ktd modulok mod_autoindex.so Knyvtr tartalmnak listzsa mod_cache.so Cache az URL alapjn indexelve mod_cgi.so CGI vgrehajts mod_dav.so WebDAV protokoll kezelse mod_headers.so HTTP krs s vlasz fejlcek mod_include.so SSI kezelse mod_ldap.so LDAP kapcsolat mod_mime.so MIME tpusok kezelse mod_proxy.so HTTP 1.1 proxy/tjr mod_rewrite.so URL manipulci mod_so.so Dinamikus modul betlts mod_ssl.so HTTPS tmogats mod_status.so A szerver llapot figyels mod_suexec.so Setuid wrapper a CGI scriptekhez
102

mod_userdir.so mod_vhost_alias.so

Felhasznli sajt oldalak Virtual hostok kezelse

Az itt felsorolt modulok mellett szmos extra modul is elrhet kls forrsbl (third party modules). Ezekkel a webszerver extra mkdsre kpes, ms programozsi nyelven rt kdokat is rtelmezni kpes. pl.: mod_python.so a Python scriptek rtelmezshez, mod_mono.so ASP.NET oldalak, mod_security.so az Apache biztonsgnak megerstse, mod_jk.so az Tomcat Java Servlet Container-rel val kapcsolat. Az Apache indtsa s lelltsa (apachectl): Az apachectl parancs fontosabb kapcsoli s paramterei: -f a szerver konfigurcis fjl megadsa -t a konfigurci tesztelse -k start indts stop lellts restart jraindts graceful jraindtsa a meglv kapcsolatok bezrs nlkl status,fullstatus a webszerver llapotnak lekrdezse -D string direktva ltrehozsa, aminek a ltezse a ksbbiekben az IfDefine segtsgvel megvizsglhat Pldk apachectl hasznlatra: apachectl start #ha nincs egyb opci, akkor a -k elhagyhat apachectl -DSSL start # indts SSL tmogatssal apachectl -k graceful # jraindtsa konfigurcis fjlok jra olvassval (reload) Virtualhost-ok hasznlata Az Apache tmogatja a nv alap s az IP alap virtualhost-ok hasznlatt. Az els esetben a gp egy IP cmmel rendelkezik s a HTTP fejlc Host mezje alapjn trtnik a krs intzse a megfelel virtulis gphez. Az IP alap virtualhost-ok esetben az egyes virtulis gpek klnbz IP cmet kapnak. Plda virtulis hosztok hasznlatra kln naplzssal: NameVirtualHost 192.168.30.2:80 <VirtualHost tom.a106.duf.hu> DocumentRoot "/var/www/tom/htdocs" ServerName tom.a106.duf.hu ServerAdmin webmaster@a106.duf.hu ErrorLog /var/www/tom/logs/error_log TransferLog /var/www/tom/logs/access_log ScriptAlias /cgi-bin/ /var/www/tom/cgi-bin/ </VirtualHost>
103

<VirtualHost jerry.a105.duf.hu> DocumentRoot "/var/www/jerry/htdocs" ServerName jerry.a105.duf.hu ServerAdmin webmaster@a105.duf.hu ErrorLog /var/www/jerry/logs/error_log TransferLog /var/www/jerry/logs/access_log </VirtualHost> 10.2.5. A Debian csomagban elrhet Apache 2.2 teleptse Amennyiben nem szeretnnk forrskdbl fordtani, akkor binris csomagokbl is telepthetjk az Apache 2.2-es verzijt. Klnbz MPM-ek tmogatsval fordtott csomagok rhetk el. Pldul: apache2-mpm-prefork hagyomnyos process alap apache2-mpm-worker szl alap modell Az apache2.2-common csomagban tallhatk azok a rszei a webszervernek, amelyek mindegyik MPM esetben megegyeznek. A csomagok teleptsekor a adminisztrcis parancsok a /usr/sbin-be, a webszerver moduljai pedig a /usr/lib/apache2/modules knyvtrba kerlnek. A /etc/init.d/apache2 szkript, vagy az apache2ctl parancs segtsgvel megoldhat a szolgltats indtsa s lelltsa. Az Apache 2.2-hz tartoz konfigurcis fjlokat tartalmaz knyvtr a /etc/apache2. Itt a teleptst kveten az albbiakat talljuk: conf.d konfigurcis knyvtr, elssorban Apache-ot hasznl alkalmazsok konfigurcii szmra mods-available az elrhet modulokhoz .conf s .load fjl, ezekkel lehetsges adott modult betlteni, s a hozz kapcsold konfigurcit megadni mods-enabled szimbolikus linkeket tartalmaz, amelyek a modsavailable knyvtrban lv fjlokra mutatnak. Az itt megadott modulok kerlnek betltsre a web szerver indtsakor. sites-available az elrhet virtulis hosztok konfigurcis fjljai sites-enabled szimbolikus linkeket tartalmaz, amelyek a sitesavailable knyvtrban lv fjlokra mutatnak. Az itt megadott virtulis hosztok lesznek engedlyezve a web szerver indtsakor. apache2.conf A f konfigurcis fjl, nhny ltalnos belltst tartalmaz, s ennek a segtsgvel trtnik a korbbiakban ismertetett knyvtrak include-ja. ports.conf Az Apache ltal hasznlt portok belltsa A Debian fejlesztk az elzekben felvzolt struktra kezelsnek egyszerstsre fejlesztettk ki az albbi parancsokat: a2ensite virtulis hoszt engedlyezse a2dissite virtulis hoszt tiltsa a2enmod modul betltse a2dismod modul tiltsa A parancsok esetben egy site vagy modul nevet adhatunk meg paramterknt. Amennyiben paramterek nlkl hasznljuk a parancsokat, akkor megmutatja a
104

rendelkezsre ll modulok vagy site-ok listjt, s a listt megtekintve berhatjuk, hogy melyik esetben akarjuk a krt mveletet elvgezni. A parancsok kiadst kveten jra kell tlteni az Apache konfigurcis fjljai s moduljait (/etc/init.d/apache2 force-reload). Debian csomagban jnhny third-party Apache modul is elrhet. Ezek a libapache2-mod-al kezdd csomagokban vannak. Amennyiben PHP5-t is szeretnnk hasznlni, akkor teleptennk kell a libapache2-mod-php5 csomagot, s a hasznlni kvnt PHP bvtmnyeket (pl.: php5-gd, php5-mysql, ...). A csomagok gy lettek elksztve, hogy a teleptst kveten hasznlhatk az alaprtelmezett belltsoknak megfelelen. 10.3. FTP szerver hasznlata Debian GNU/Linux opercis rendszerben 10.3.1. Az FTP protokoll fontosabb jellemzi A HTTP mellett elterjedt alkalmazs szint protokoll az FTP (File Transfer Protokoll). Egy nagyon rgi protokollrl van sz, amelyet fjlok tvitelre talltak ki. A protokoll esetben fontos megemlteni azt a biztonsgi problmt, hogy a felhasznlk jelszavai titkostatlanul utaznak a hlzaton. Vagyis, hogyha valaki lehallgatja a hlzati forgalmat, s elkapja az egyes csomagokat, abban az esetben mindenfajta feltrs nlkl hozzjuthat adott felhasznl jelszavhoz. Amirt mgis elterjedt, azt valsznleg a gyors adattviteli lehetsgnek ksznheti. Nagyon sok alkalmazs ltezik, amely kpes FTP kliensknt mkdni. Azt FTP sszetett protokoll. A mkdshez kett TCP adatfolyamot hasznl. Ezek a portok tradicionlisan: 21-es TCP port: ftp command (ftp parancs csatorna) 20-as TCP port: ftp data (ftp adat csatorna) A parancs csatornn keresztl trtnik a felhasznlk hitelestse s egyes parancsok kldse. Egy msik TCP kapcsolat pedig az adatok tovbbtsra val. Amellett, hogy az FTP kett adatfolyamot hasznl, ktfajta mkdsi mdja is ltezik, az aktv illetve a passzv md. Az aktv md mkdse: A kliens kapcsoldik a szerver 21-es TCP portjhoz egy N > 1024 szabad TCP port felhasznlsval A kliens megnyitja (listening) az N+1-es szabad TCP portot , s a PORT N+1 zenetet elkldi a szervernek. Innt tudja a szerver, hogy neki melyik porthoz kell majd kapcsoldnia. A szerver ezutn a 20-as TCP portjrl kapcsoldik a kliens ltal megnyitott portra Ebben az esetben teht egy a szerver fel irnyul, illetve egy a kliens fel irnyul TCP kapcsolat pl fel. Passzv md esetben a mkds a kvetkez: A kliens kapcsoldik a szerver 21-es TCP portjhoz egy N > 1024 szabad TCP port felhasznlsval A kliens a PORT parancs helyett a PASV parancsot hasznlja, amire a szerver megnyit egy random portot (P >1024), s ezt visszakldi a kliensnek (PORT P)
105

A kliens ezutn N+1 -es szabad TCP porton keresztl kezdemnyezi az adatkapcsolatot a szerver megnyitott tvoli P TCP portjval Ebben az esetben teht kett, a szerver fel irnyul TCP kapcsolat pl fel.

Amennyiben a kliens oldalt tzfal vdi, akkor az valsznleg nem engedlyezi a bejv TCP kapcsolatokat. Ebben az esetben az aktv md nem fog mkdni, csak a passzv md. Amikor azonban egy bels hlzatban vagyunk az FTP szerverrel, abban az esetben hasznlhatjuk az aktv mdot. A tzfalak esetben kln problmt jelent, hogy kpesek-e felismerni, hogy FTP protokollrl van sz, s ennek megfelelen eldnteni, hogy a kapcsolat jhet-e befel. A Linux kernel szint tzfala esetben ltezik a Connection tracking tmogats FTP protokollra is. Ezzel megvizsglhat, hogy az adatkapcsolat valban egy ltez FTP session-hz tartozik-e. Az FTP esetben ltezik n. Anonymous FTP, amely esetben brki nvtelenl tlthet le fjlokat a szerverrl, illetve a felhasznlnvhez s jelszhoz kttt. Az Anonymous FTP esetben ltalban nincsen feltltsi lehetsg, mg a msik esetben ltalban van feltltsi lehetsg is. Az adott szerver konfigurlsakor bellthat, hogy milyen lehetsgei legyenek adott felhasznlknak. A Debian GNU/Linux tbb olyan csomagot is tartalmaz, amelyek segtsgvel az FTP szerver funkcival megvalsthat. Ilyenek pldul az ftpd, proftpd, pureftpd, vsftpd, wu-ftpd csomagok. Vlasztsom azrt eset legfkpp a ProFTPD-re, mert nagyon sok konfigurcis lehetsge van s konfigurlsban nagyon hasonlt az Apache-ra. A ProFTPD hivatalos weboldala a http://www.proftpd.org cmen rhet el. 10.3.2. A ProFTPD (Professional File Transfer Protocol Daemon) jellemzi

Sokoldalan konfigurlhat s biztonsgos FTP kiszolgl, jelents felhasznli tborral. Egy f konfigurcis fjl (/etc/proftpd/proftpd.conf) s egy modulok betltshez (/etc/proftpd/proftpd.conf). A f konfigurcis fjl mellett lehetsges helyi belltsokat megadni a .ftpaccess fjlok segtsgvel. (Apache esetben .htaccess volt.) Akr konfigurcis fjl nlkl is kpes mkdni. Kpes nllan (standalone) mdon s inetd/xinetd felhasznlsval is mkdni. Standalone mdban nem privilgizlt felhasznlknt fut. A ProFTPD nem hajt vgre egyetlen kls alkalmazst sem. Megoldhat a fjlok s knyvtrak rejtse felhasznlnv vagy csoportnv vagy jogosultsgok alapjn. Modulris felpts, knnyen kiterjeszthet az alaprtelmezett mkdse (MySQL, LDAP, SSL, ...). Naplzsa kompatibilis a wu-ftpd-vel, rendelkezik utmp/wtmp tmogatssal. Tbb virtulis szerver s anonymous FTP hasznlatnak lehetsge. Kpes a felhasznlkat chroot-olni, ezltal minden felhasznl csak a sajt knyvtra tartalmt ltja, nem tud a knyvtr hierarchiban felfel

106

lpkedni. IPv6 tmogatssal is rendelkezik. Nylt forrs (GNU GPL licence), nemcsak Linux alatt ltezik mkd verzija. Az elz felsorolsbl lthatjuk, hogy a ProFTPD sok kpessggel rendelkezik. A kvetkez alfejezetben a konfigurcis lehetsgek kzl fogok nhnyak kiemelni.

10.3.3. A ProFTPD nhny konfigurcis direktvja Az Apache-hoz hasonlan itt is lteznek klnbz kontextusok. Egy direktva rvnyessgt teht meghatrozza az, hogy milyen helyen lett kiadva. A ProFTPD esetben a lehetsgek: /etc/proftpd/proftpd.conf f konfigurcis fjl .ftpaccess helyi belltsok A f konfigurcis fjlon bell hasznlhatunk klnbz blokk direktvkat: kln megads nlkl a f szerverre vonatkoz belltsok <Global> ...</Global> az sszes virtulis hosztra vonatkoz belltsok. Ezek igny szerint helyileg felldefinilhatk. <Virtualhost>...</Virtualhost> adott virtulis hosztra vonatkoz belltsok <Anonymous rootdir>...</Anonymous> anonymous ftp elrsre vonatkoz belltsok a gykrknyvtr megadsval <Directory dir>...</Directory> adott knyvtrra vonatkoz belltsok <Limit cmds>...</Limit> egyes FTP parancsok (cmds) korltozsa Az egyes blokk direktvk egymsba gyazhatk. Az elz felsorols a begyazst is bemutatja. Vagyis egy adott blokk direktva a nla korbban szereplkn bell hasznlhat. Nhny ltalnos bellts a FTP szerverre vonatkozan: ServerName "ProFTPD Debian" A szerver nevnek a megadsa. ServerType standalone A szerver mkdsi mdjnak a megadsa. Ebben a pldban nllan mkdik. Bind 192.168.30.2 Az IP cm, amelyen keresztl el tudjuk rni a szervert. Port 21 A TCP port, amelyet a szerver figyel. PassivePorts 49152 65534 Passzv md esetben melyik TCP portokat nyissa meg a szerver. User proftpd Group nogroup A felhasznl, felhasznli csoport akinek a nevben a szerver vgrehajtdik.
107

DefaultRoot ~ users Az users nev csoport tagjai csak a sajt knyvtrukat rhetik el. Clszer belltani, hogy ne lehessen tetszleges rendszerbelltst elrni. DefaultServer on Amennyiben tbb virtulis szervernk is van, megadhatjuk, hogy melyik legyen az alaprtelmezett. DisplayLogin welcome.msg DisplayQuit quit.msg DisplayFirstChdir .message zenetek megjelentse bejelentkezskor, kilpskor s az els knyvtr vltskor. ShowSymlinks on Mutassa-e a szimbolikus linkeket, mint nll fjltpust? ListOptions "-lt" A knyvtr listzsok alkalmval hasznland listzsi opcik. MaxLoginAttempts 3 A bejelentkezsi ksrletek szma. TimeoutNoTransfer 600 TimeoutStalled 600 TimeoutIdle 1200 Az idtllps belltsa, hogyha nincs tvitel, megllt az adattvitel, nem trtnik semmi. MaxInstances 30 MaxClients 100 MaxClientsPerHost 4 MaxClientsPerUser 3 A gyermekfolyamatok s a kliens maximlis szma egyidejleg. Lehetsges hosztonknt s felhasznlknt is korltozni a kapcsolatok maximlis szmt. AuthUserFile /home/ftpusers AuthGroupFile /home/ftpgroups A ProFTPD kpes arra, hogy a felhasznlk adatait ne a rendszer felhasznli adatbzisbl krdezze le, hanem sajt fjlokat hasznljon erre a clra. Include /etc/proftpd/ldap.conf Kls sajt konfigurcis fjl betltse. Az FTP-n keresztli jogosultsgok belltsa Az FTP protokoll sok parancsot definil. Ezek kzl vlaszthatunk, hogy melyeket szeretnnk engedlyezni, illetve melyeket nem. Nhny FTP protokollon belli utasts a teljessg ignye nlkl: CWD (Change Working Directory) knyvtr vlts MKD / XMKD (MaKe Directory) knyvtr ltrehozs
108

RNFR (ReName FRom) RNTO (ReName TO) DELE (DELEte) RMD / XRMD (ReMove Directory) RETR (RETRieve) STOR (STORe)

tnevezni valamirl tnevezni valamire fjl trlse knyvtr trlse letlts feltlts

Azrt, hogy a jogosultsg megadskor ne kelljen tbbet ezek kzl felsorolni adott esetben, ezrt definiltak jogosultsgi szinteket. Ezekhez egyszerre tbb elemi utasts tartozik. READ fjl olvasshoz ktd utastsok WRITE ltrehozshoz, trlshez, tnevezshez ktd utastsok DIRS knyvtr vltshoz, listzshoz ktd utastsok LOGIN a bejelentkezshez ktd utastsok A <Limit> blokkon bell adhatjuk meg jogosultsgokra vonatkoz korltozsokat: az adott parancsokra vagy

Order allow,deny A jogosultsgi megadsok sorrendjnek megadsa. Elszr az engedlyezsek, majd a tiltsok. AllowAll DenyAll Brhonnt engedlyezett, tiltott az elrs. Allow from 192.168.31.1 Deny from 192.168.31 Engedlyezs, tilts adott IP cmekrl vagy tartomnyokbl. AllowUser [name], AllowGroup [name] DenyUser [name], DenyGroup [name] Engedlyezs vagy tilts felhasznl vagy csoportnv alapjn. AllowOverride on A belltsok helyi felldefinilsnak engedlyezse. AllowOverwrite on A fjlok fellrsnak engedlyezse. AllowRetrieveRestart on AllowStoreRestart on Letlts, feltlts folytatsnak engedlyezse. HideUser [name], HideGroup [name] HideNoAccess HideFiles [regexp] IgnoreHidden on Fjlok s knyvtrak rejtse tulajdonos, tulajdonos csoport, jogosultsg, vagy regulris kifejezs alapjn. Ahhoz, hogy a rejts mkdjn, az IgnoreHidden
109

opcit be kell kapcsolni. TransferLog /var/log/proftpd/xferlog SystemLog /var/log/proftpd/proftpd.log A fjl tvitelek s az FTP szerver mkdsnek naplzsa. A ProFTPD nhny modulja, a hozz tartoz funkcival:

mod_auth mod_cap mod_core mod_ldap mod_log mod_ls mod_quotatab mod_radius mod_ratio mod_readme mod_rewrite mod_sql mod_tls mod_wrap mod_xfer

Felhasznl hitelests Modulok kpessgeinek (betlts, kivtel, ...) megadsa FTP Protokoll kezelse (RFC 959) LDAP alap hitelests Naplzsi belltsok Listzs Felhasznli kvta RADIUS (Remote Authentication Dial-In User Service) alap hitelests Le s feltlts arnya zenetek megjelentse Krsek tszerkesztse menet kzben SQL adatbzis alap hitelests s naplzs TLS (Transport Layer Security) tmogatsa TCP wrapper hasznlata Fjl tvitel

A ProFTPD-vel kapcsolatos parancsok: Szmos olyan parancs ltezik, amely segtsgvel a ProFTPD mkdst vizsglhatjuk s befolysolhatjuk. ftpdctl A dmon mkdst befolysolhatjuk a segtsgvel. Pldul az egyes virtulis szerverekre vonatkoz llapot informcik, szerver indts/lellts, adott kapcsolatok megszaktsa, ... ftpcount Az ftp kapcsolatok szmt mutatja meg. ftpstat Napokra bontva statisztika a fjl tvitelekrl, ezeknek a sebessgrl, a sikeres tvitel arnyrl. ftpasswd A felhasznlk hitelestsre hasznlhat helyi fjlok ltrehozsa (AuthUserFile, AuthGroupFile) ftpshut Az ftp szerver idztett lelltsa. ftptop Az ftp szerver monitorozsa a top parancshoz hasonl felleten keresztl. ftpwho Megmutatja, hogy kik vannak aktulisan bejelentkezve s mita. A ProFTPD kpes a PAM hasznlatra. Mkdsre teht hatssal van a /etc/pam.d/proftpd fjl tartalma. Az alaprtelmezett hitelestsi mdszerek mellett ez tartalmazza a kvetkez sort a teleptst kveten:
110

auth required pam_listfile.so item=user sense=deny \ file=/etc/ftpusers onerr=succeed Ez a bellts annyit jelent, hogy azon felhasznlktl, akik szerepelnek a /etc/ftpusers nev fjlba, azoktl meg kell tagadni a bejelentkezst. Alapesetben a root-knt trtn bejelentkezs pontosan emiatt kerl tiltsra. Plda ftpasswd hasznlatra: echo 'jelszo' |ftpasswd --passwd --file=/home/ftpusers --name=xyz123 --stdin --uid=1500 --gid=200 --md5 --home=/home/xyz123 --shell=/bin/ false Amennyiben egy felhasznl esetben az alaprtelmezett shellt /bin/false-ra lltjuk, akkor norml mdon nem tud bejelentkezni s parancsokat futtatni. 10.4. A Samba 10.4.1. A Samba legfontosabb jellemzi A Samba projekt jelmondata: Opening Windows to a Wider World. Amennyiben rendelkeznk az ablakozs opercis rendszer valamelyik vltozatval, s szeretnnk elrni a Linux opercis rendszerben trolt knyvtrainkat vagy fjljainkat, abban az esetben a Samba egy j vlaszts lehet. A http://www.samba.org a hivatalos web oldala. A Samba legfontosabb jellemzi: A Samba szerver lehetv teszi a fjl s nyomtat megosztst. Ebben az esetben a Samba lehet egy munkacsoport vagy tartomny tagja, vagy irnytja. A TCP/IP fltti kommunikcit tmogatja, mindenfle megoszts elrse csak ez alapjn trtnhet. A Linux mellett ms opercis rendszerekben (Unix, OpenVMS, Netware) is elrhet. Nylt forrs, GNU GPL licenc alatt rhet el Samba kliens segtsgvel kpesek vagyunk ablakozs opercis rendszerben megosztott mappk vagy nyomtatk elrsre illetve Samba szerver ltal megosztott erforrsok elrsre. Az SMB (Server Message Block) s a CIFS (Common Internet File System) protokollokon keresztl trtnhet a hlzati erforrsokhoz val hozzfrs. A Linux kernel tartalmazza az Smbfs s CIFS tmogatst. Ezek lehetv teszik, hogy hlzaton keresztl csatlakoztassunk egy megosztott knyvtrat (smbmount). A Samba teht tartalmaz olyan eszkzket, amelyek segtsgvel a Linux-ot futtat szmtgp akr kliensknt, akr pedig kiszolglknt is mkdhet azon az elven, amelyen az ablakozs opercis rendszerben a Network Neighborhood (Hlzati helyek) is elri a hlzati erforrsokat.

111

A Samba szerver legfontosabb jellemzi: fjl s nyomtat megoszts az SMB s/vagy CIFS felhasznlsval lehetv teszi, hogy ablakozs opercis rendszerbl vagy brmilyen SMB vagy CIFS kompatibilis program segtsgvel elrjk a Linux alatt megosztott erforrsainkat WINS (Windows Internetworking Name Server) szolgltats nyjtsa Munkacsoportok vagy tartomnyok ltrehozsa s vezrlse Sajt profile s logon script trolsa kzponti helyen Mkdhet kzponti hitelest szerverknt is A Samba szerver teht tbb, egymstl fggetlenthet funkcit is ellt. Mind az Apache, mind pedig a ProFTPD esetben egy f dmon folyamatrl beszlhetnk, amelyek ltrehoznak tbb szlat vagy gyermekfolyamatot. Ezzel szemben a Samba funkciinak a megvalstst tbb dmon vgzi.

nmbd nvfelolds WINS, NetBIOS nvkiszolgl hlzati erforrsok tallzsa smbd a megosztott erforrsok kezelsrt felels fjl s nyomtat megosztsa kommunikci kezelse (SMB, CIFS) hitelests, erforrs zrols (locking) winbindd msik tartomnyban lv felhasznlk lekpezse Linux UID-ra s GID-re

A dmonok kzl elsknt az nmbd-t majd pedig a smbd-t kell indtani. A winbindd-re csak specilis szituciban van szksg. Abban az esetben, hogyha csak WINS kiszolglknt akarom hasznlni a Samba-t, akkor csak az nmbd futtatsra van szksgem. A Debian 4.0 tartalmazza binris csomagknt a Samba 3.0-t. Amennyiben csomagbl teleptjk (samba), akkor a /etc/init.d/samba script segtsgvel megoldhatjuk a Samba indtst,lelltst s jraindtst. A Samba tbb TCP s UDP portot is hasznl. Az smbd szolgltats a 139/tcp NetBIOS Session Service 445/tcp Microsoft Naked CIFS portokat, a nmbd szolgltats pedig a 137/udp NetBIOS Name Service 138/udp NetBIOS Datagram Service portokat hasznlja.

112

10.4.2. A Samba nhny konfigurcis direktvja A Samba esetben Debian GNU/Linux opercis rendszerben a f konfigurcis fjl a /etc/samba/smb.conf. A Samba konfigurlsa sorn nagyon sok direktva kzl vlaszthatunk. A konfigurcis fjl esetben szgletes zrjelek jelzik egy adott blokk elejt. A blokk hatkre egszen addig tart, amg egy kvetkez blokk direktva nem kezddik. A [global] direktva utn kvetkez utastsok globlis rvnyek lesznek. Itt olyan belltsokat adunk meg, amelyek a Samba szerver ltalnos mkdst befolysoljk. Emellett van arra lehetsg, hogy sajt blokkokat hasznljunk. Ebben az esetben a szgletes zrjelek kztt megadott nv lesz automatikusan az adott megoszts neve, s utna llthatjuk be a megosztshoz tartoz paramtereket. Egy minimlis smb.conf fjl lehet a kvetkez: [global] workgroup = A-106 [homes] guest ok = no read only = no A [global] szekci esetben hasznlhat konfigurcis lehetsgek kzl nhny: security = user helyi felhasznlnv s jelsz alapjn share megosztsokhoz tartoz jelszval, ami nem ktelez server msik Samba vagy NT szerver felhasznlsval domain tartomnyvezrl (domain controller) felhasznlsval ads Active Directory hasznlatval A security rtke meghatrozza, hogy a Samba milyen mdon prblja meg a bejv krsek ellenrzst s hitelestst. server string = Linux_debian Egy lers adhat a szerver neve mell. interfaces = 172.31.0.1 bind interfaces only = yes Amennyiben tbb hlzati eszkznk s IP cmnk van, akkor megadhat, hogy melyeken keresztl lehessen a Samba szervert elrni. workgroup = A-105 A munkacsoport vagy tartomny neve hosts allow = 172.31. hosts deny = 192.168.31. Honnt engedlyezett s honnt tiltott a Samba szerver elrse.

113

guest account = nobody A Vendg felhasznlhoz szempontjbl.

milyen

Linux

felhasznl

tartozzon

jogosultsg

max log size = 500 log file = /var/log/samba/log.%m A maximlis naplfjlok mretnek s helynek megadsa. gpnevenknt klnbz fjlba kerlnek a naplbejegyzsek. character set = utf-8 client code page = 852 A karakter kszlet s a kliens oldali kdlap megadsa.

pldban

domain logons = yes logon home = \\%L\profiles\%U\ logon script = logon.bat logon drive = H: Tartomnyi bejelentkezs engedlyezse s a sajt felhasznli profil, a bejelentkezskor lefut parancsfjl s a sajt meghajt megadsa. encrypt passwords = true Titkostott jelszavak hasznlata. unix password sync = false A Samba jelszavak mdostsakor mdostani? a rendszerbeli jelszt is szksges-e

os level = 65 Az opercis rendszer fejlettsge a master browser funkci elnyershez. Amennyiben kellen nagyra lltjuk, gy biztosan a Samba szerver ltja el a klnbz vezrl funkcikat. domain master = yes A Samba szerver legyen a tartomny esetben a master browser. local master = yes A Samba szerver legyen a adott alhlzat esetben a master browser. preferred master = yes Amikor a Samba szerver indul, akkor automatikusan maghoz ragadja-e a master browser funkcit. Egy megoszts esetben hasznlhat direktvk: A globlis direktvk mellett fontos dolog, hogy milyen lehetsgeink vannak a sajt megosztsok esetben. A [share1] direktva annyit jelent, hogy az utna kvetkez utastsok a share1 nev megosztsra vonatkoznak. path = /home/pub comment=Publikus adatok A megosztshoz tartoz elrsi tvonal s megjegyzs
114

browseable = yes A megoszts megjelenjen-e a tallzsi listban. read only = yes writeable = no Megoszts csak olvassra. printable = yes Nyomtat megosztsnak definilsa. public = no guest ok = no A megoszts nyilvnos legyen-e, teht vendg felhasznlval is hozz lehessen-e frni? create mask =0700 Fjlok esetben az alaprtelmezett jogosultsg amivel a fjl ltrejn. directory mask = 0770 Knyvtrak esetben az alaprtelmezett jogosultsg amivel a fjl ltrejn. valid users=tux beastie invalid users = root bin daemon adm sync shutdown Mely felhasznlk szmra engedlyezett/tiltott a Hasznlhatk a direktvk a [global] szekciban is.

megoszts

elrse.

read list= beastie write list= tux @users Azon felhasznlk listja, akik csak olvashatjk vagy rhatjk s olvashatjk az adott megoszts tartalmt. A @ jel utn felhasznli csoportokat adhatunk meg. admin users = root Administrator Az adott megoszts esetben minden jogosultsga megvan. veto files = /.htaccess/.tmp*/ Fjlok listzsnak tiltsa. hide files= /.mc/ Fjlok felruhzsa a hidden DOS fjl attribtummal. hide unreadable Azon fjlok felruhzsa a hidden DOS vonatkozan nincsen olvassi jogosultsg. Pldk megosztsokra: [homes] comment = Home Directories browseable = no writable = yes valid users = %S
115

fjl

attribtummal,

amelyekre

Minden felhasznl a sajt knyvtrt elrheti. [printers] comment = All Printers path = /var/spool/samba printer admin = pr_admin guest ok = Yes printable = Yes use client driver = Yes browseable = No A Samba esetben fontos megemlteni, hogy amikor helyi hitelestsrl beszlnk, akkor nem a /etc/passwd, /etc/shadow alapjn azonost. A korbbi verzik esetben a /etc/samba/smbpasswd fjlban troldtak a felhasznlk jellemzi. A 3.0-es verzitl kezdve mr TDB tpus adatbzisban trtnik a trols. A /var/lib/samba/passdb.tdb fjlban troldnak a felhasznlk adatai, illetve ugyanebben a knyvtrban tallhatk egyb konfigurcis adatbzisok is, amelyek pldul a megosztott nyomtatk adatait, vagy az account-okra vonatkoz egyb adatokat tartalmazzk. A Samba esetben a kvetkez fontos jellemzk troldnak a felhasznlk esetben: username UID Lanman Password Hash (jelsz trolsa a rgebbi rendszerek szmra) NT Password Hash (jelsz trolsa az NT s jabb rendszerek szmra) Account flags (a jelszval, azonostval kapcsolatos belltsok) A Samba szerver mkdsvel kapcsolatos parancsok: net Samba s tvoli CIFS szerverek adminisztrcija pdbedit Samba felhasznlk felvtele, jellemzik mdostsa smbcontrol Vezrl zenet kldse a dmonoknak smbpasswd Samba felhasznlk jelszavnak mdostsa smbstatus Samba llapotnak megtekintse testparm smb.conf ellenrzse A Samba kliens oldalhoz findsmb nmblookup rpcclient smbcacls smbclient smbget smbspool smbtar smbtree kapcsold parancsok: Tvoli SMB-t hasznl gp keresse NetBIOS nevek feloldsa MS-RPC hvsok vgrehajtsa NT ACL-ek manipulcija SMB megosztsokon FTP kliensre hasonlt SAMBA kliens wget-szer program SAMBA-n keresztli letltsre Fjl kldse SAMBA nyomtatnak SAMBA megosztsok mentse szalagra Karakteres fellet SMB hlzat tallz

116

Az smbmount (mount.smb) parancs segtsgvel megtehetjk egy SMB-n keresztl megosztott knyvtr csatlakoztatst. Az smbmount parancs fontosabb opcii: smbmount service mount-point [ -o options ] Ahol:

service: egy hlzati erforrs megadsa az UNC szintaxishoz hasonlan. Ebben az esetben a //host/share jellst hasznlhatjuk, ahol a host jelenti a Samba szerver nevt vagy IP cmt, a share pedig a megoszts nevt. mount-point: csatlakoztatsi pont

Az opcik esetben a fontosabb lehetsgek: username=: a felhasznl, akivel csatlakozni kvnunk password=: a kapcsoldskor hasznland jelsz guest: vendgknt val csatlakozs uid=: a helyi UID, akinek a tulajdonba kerl a csatlakoztatott knyvtr gid=: a helyi GID, akinek a tulajdonba kerl a csatlakoztatott knyvtr workgroup=: a munkacsoport vagy tartomny neve ip=: a szerver IP cme ro: csak olvashat mdban rw: rhat s olvashat mdban iocharset=: adott karakterkszlet hasznlata codepage=: adott kdlap hasznlata Az smbumount parancs segtsgvel levlaszthatunk egy csatlakoztatott SMB megosztst. Plda smbmount hasznlatra: smbmount //srv/apps /mnt/prgs -o options username=tux,password=titok A Debian tartalmazza a swat (Samba Web Administration Tools) nev csomagot, amely segtsgvel bngszn keresztl lesz lehetsgnk a Samba konfigurlsra. 10.5. A MySQL Manapsg nagyon gyakran hasznlnak Linuxot web-es feladatok elltsra. Ennek kapcsn gyakran LAMP-knt emlegetik a fejleszti krnyezetet, ahol az egyes betk jelentse: Linux Apache Mysql PHP. Az utbbi vekben jelents fejldsnek lehettnk tani. A MySQL 5.0-as verzija mr tartalmazza a legtbb olyan kpessget, amellyel az Oracle vagy a DB2 rendelkezik. A MySQL Enterprise Server kereskedelmi termk, m a Community Server nylt forrs. Manapsg a legtbb disztribci tartalmazza csomag formjban. A MySQL-t nemrg vsrolta meg a Sun.

117

10.5.1. A MySQL szerver legfontosabb jellemzi


tbb felhasznls, tbb szl adatbzis szerver SQL alap, az ANSI/ISO SQL nyelvet hasznlja sajt bvtsekkel sebessgre optimalizlt nagy felhasznli tbor a 4.1-es verzitl felfel van begyazott SELECT az 5.0-as verziban megjelentek a nzetek (VIEW) s a triggerek s a trolt eljrsok tmogatsa klnfle Storage Engine -eket tmogat (MyISAM, InnoDB, ...) kpes egyttmkdni a Linux HA (High Availability) alkalmazsaival megoldhat tbb szerver szinkron vagy szinkron replikcija kpesek vagyunk MySQL klaszterek ptsre tbb programozsi nyelvbl elrhet klnfle API-k, csatolk s programknyvtrak (library) felhasznlsval klnbz nyelvek s karakterkszletek tmogatsa

A MySQL 5.0 elrhet csomagbl is, de a gyrt klnbz platformokra biztost belle elre fordtott binrisokat. Amennyiben 32 bites rendszernk van, gy pl.: a mysql-5.0.51a-linux-i686-glibc23.tar.gz szmunkra megfelel lesz. A gcc mellett elrhet az Intel C fordtjval ellltott vltozat is. A MySQL hivatalos weboldala a http://www.mysql.com, a Community Server a http://dev.mysql.com-rl tlthet le. 10.5.2. A MySQL szerver teleptse binris archvumbl Ha szeretnnk tudni a teleptsi lpseket, legegyszerbb, hogyha belenznk az tmrtett fjlba, s ttekintjk az ott lv INSTALL-BINARY fjl tartalmt. Ebben megtallhatjuk azokat a parancsokat, amelyek segtsgvel telepthetjk a MySQL adatbzis szervert. Ttelezzk fel, hogy letltttnk a /root knyvtrba a mysql-5.0.51a-linux-i686glibc23.tar.gz-t. Ebben az esetben a telepts egyes lpsei: groupadd mysql # mysql csoport ltrehozsa useradd -g mysql mysql # mysql felhasznl ltrehozsa cd /usr/local tar xvzf /root/mysql-5.0.51a-linux-i686-glibc23.tar.gz # az archvum kicsomagolsa ln -s mysql-5.0.51a-linux-i686-glibc23 mysql # szimbolikus link cd mysql chown -R mysql . # a tulajdonos a 'mysql' nev felhasznl chgrp -R mysql . # tulajdonos csoport belltsa scripts/mysql_install_db user=mysql # a kiindulsi adatbzis ltrehozsa chown -R root . # a tulajdonos a 'root' nev felhasznl chown -R mysql data # a 'data' knyvtr tulajdonosa a 'mysql' nev felhasznl bin/mysqld_safe --user=mysql & # az adatbzis szerver indtsa Amennyiben mr egy korbbi verzit teleptettnk a gpre, gy a teleptse egyes lpseit feleslegesek. Ebben az esetben csak a kicsomagols s a
118

jogosultsgok belltsa szksges. A korbbi verzibl (feltve, hogy az is 5.0-s ghoz tartozik) t lehet msolni az adatbzisokat 10.5.3. A MySQL knyvtrai s parancsai A teleptst kveten a kvetkez knyvtrak s fjlok jnnek ltre a /usr/local/ mysql knyvtrban (a fjlok esetben csak a fontosabbakat sorolom fel): bin a MySQL-hez tartoz binrisok mysql MySQL monitor (parancs soros kliens) mysqladmin az adatbzis szerver adminisztrlsa mysql_client_test a kliens mkdsnek tesztelse mysql_config a fordts opcik lekrdezse mysqld a MySQL dmon mysqldump ments ksztse adatbzisrl vagy tblrl mysqld_multi tbb MySQL szerver egyidej kezelse mysqld_safe az adatbzis szerver indtsa mysqlimport adatok importlsa adattblba mysqlshow adattblk felptsnek megmutatsa mysql_upgrade adattblk ellenrzse frisstskor data adatbzisok: minden adatbzis kln knyvtrban az adatbzis nevnek megfelelen docs mysql.info dokumentci include header fjlok lib program-knyvtrak man felhasznli kziknyv oldalak mysql-test adatbzis mkdsi tesztje scripts mysql_install_db a kiindulsi adatbzis ltrehozsa share nyelvi fjlok, karakter kszletek sql-bench sebessg tesztelse support-files plda konfigurcis fjlok, scriptek mysql.server init.d script a szerver indtsra, lelltsra tests Perl nyelven ksztett tesztel scriptek 10.5.4. A MySQL nhny konfigurcis direktvja A MySQL konfigurlsa az albbi fjlok segtsgvel lehetsges: /etc/my.cnf globlis belltsok $MYSQL_HOME/my.cnf a szerverre vonatkoz belltsok (MYSQL_HOME vagy a teleptsi knyvtr elrsi tvonalt, vagy pedig az adatbzisokat tartalmaz knyvtr elrsi tvonalt tartalmazza) --defaults-extra-file=file a szerver paramtereknt tadhat tetszleges konfigurcis fjl ~/.my.cnf felhasznlknt a sajt belltsainkat megadhatjuk A konfigurcis fjl jellege hasonlt a Samba esetben hasznlt mdszerhez. Itt is szekcik vannak, amelyek elejt szgletes zrjelekkel jelljk A konfigurci fjlban lehetnek: #megjegyzsek
119

[group] #adott program vagy csoportnv amelyre az utna lv belltsok vonatkoznak option # opci paramterek nlkl option=value # opci paramterrel set-variable=variable=value # szerver ltal hasznlt bels vltozk

Plda MySQL konfigurcijra: [client] #password = my_password port = 3306 socket = /var/run/mysqld/mysqld.sock [mysqld] user = mysql basedir = /usr/local/mysql datadir = /usr/local/mysql/data language = /usr/local/mysql/mysql/share/hungarian pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 log = /var/log/mysql.log tmpdir = /usr/local/mysql/tmp default-character-set=utf8 Az elz pldban szerepl opcik jelentse: user # a felhasznl, akinek a nevben kell futtatni a szervert passwd # a kliens kapcsoldshoz hasznlt jelsz basedir # a teleptsi knyvtr datadir # az adatbzisokat tartalmaz knyvtr port # a hasznlt TCP port, alaprtelmezs a 3306 socket # az 's' tpus specilis fjl, amin keresztl a kommunikci trtnik language # a hibazenetek nyelve default-character-set # alaprtelmezett karakter kszlet tmpdir # knyvtr az ideiglenes fjlok szmra log # a naplfjl helye pid-file # a dmon PID-je ebben a fjlban lesz trolva A MySQL nhny tovbbi belltsa: bind-address=127.0.0.1 Melyik IP cmen keresztl legyen elrhet skip-networking Csak helyileg lesz elrhet a szerver egy Unix Domain Socket-en keresztl. max_connections=200 A maximlis egyidej kapcsolatok szma
120

Amennyiben nem szksges, hogy az adatbzis szerver hlzaton keresztl is elrhet legyen, gy clszer belltani, hogy csak localhost-on hallgatzzon. Ekkor egy kls tmad kzvetlenl nem tudja tmadni az adatbzis szervert. A kapcsolatok szmnak korltozsa pedig megakadlyozza, hogy a szervert tlzott terhelst. 10.5.5. A MySQL jogosultsgi rendszere Ahhoz, hogy adatbzis szervert tudjuk adminisztrlni, ismernnk kell, hogy az milyen mdon azonostja a felhasznlkat. A MySQL esetben a felhasznli adatai a mysql nev adatbzisban troldnak. A MySQL szerver kt lpsben ellenriz egy adott klienst: Elsknt ellenrzi, hogy adott helyrl (IP cmrl) megengedett-e a kliens kapcsoldsa. Amennyiben ez lehetsges, akkor a kapcsolatot kveten minden parancs vgrehajtsakor megvizsglja, hogy az adott kliens rendlkezik-e a megfelel hozzfrssel. Jogosultsg szempontjbl a kvetkez adattblkat hasznlja a MySQL: user Ebben vannak trolva a globlis jogosultsgok. Melyik host-rl jelentkezhet be adott felhasznl, a megfelel jelszval s mik az jogosultsgai. db: Ebben van trolva, hogy melyik host-rl rhet el egy adott felhasznl egy adatbzist s milyen mdon. host: Ebben van trolva, hogy melyik host-rl rhet el egy adatbzis s milyen mdon. Ezen hrom tbla alapjn meghatrozhat, hogy egy felhasznlnak van-e arra lehetsge, hogy kapcsoldjon. Illetve, hogyha tudott kapcsoldni, akkor adatbzis szinten milyen jogosultsgai vannak. tables_priv Ebben vannak trolva, hogy adott helyrl adott felhasznlnak milyen jogosultsgai vannak egy bizonyos adattblra vonatkozan. columns_priv A tbla jogosultsgai mellett itt mg adott oszlophoz tartoz jogosultsgok is trolva vannak. procs_priv A szerver oldali trolt eljrsokra s fggvnyekre vonatkoz jogosultsgok. A jogosultsgok meghatrozsa az albbi kplet alapjn trtnhet: Global level (user) OR Database level (db AND host) OR Table level (tables_priv) OR Column level (columns_priv) OR Routine level (procs_priv) A MySQL ltal hasznlt jogosultsgok (privilgiumok): A jogosultsgokat csoportosthatjuk olyan szempontbl, hogy melyik szinten
121

adhatjuk meg. Az elz kpletbl megnzhetjk a klnbz jogosultsgi szinteket. Adatbzis szinten a kvetkez jogosultsgok adhatk meg:

SELECT jog SELECT parancs vgrehajtsra INSERT jog INSERT parancs vgrehajtsra UPDATE jog UPDATE parancs vgrehajtsra DELETE jog DELETE parancs vgrehajtsra CREATE jog adattbla ltrehozsra (CREATE TABLE) DROP jog adattbla trlsre (DROP TABLE) GRANT jog jogosultsgok adsra REFERENCES jog hivatkozsok hasznlatra INDEX jog index ltrehozsra s trlsre ALTER jog adattbla szerkezetnek vltoztatsra (ALTER TABLE) CREATE TEMPORARY TABLES jog ideiglenes adattbla ltrehozsra LOCK TABLES jog adattbla zrolsra CREATE VIEW jog nzetek ltrehozsra SHOW VIEW jog nzetek megtekintsre CREATE ROUTINE jog eljrsok s fggvnyek hasznlatra ALTER ROUTINE jog eljrsok s fggvnyek vltoztatsra EXECUTE jog eljrsok s fggvnyek vgrehajtsra TRIGGER jog trigger ltrehozsra s trlsre

Az adatbzis szint jogosultsgok magukba foglaljk a tbla, oszlop s rutin szint jogosultsgokat. Globlis szinten az adatbzis szint jogosultsgok mellett mg a kvetkezk is elrhetk: RELOAD jog a szerver belltsok jraolvasshoz SHUTDOWN jog a szerver lelltshoz PROCESS jog a szerver folyamatok megtekintsre FILE jog adatok fjlba mentsre (SELECT INTO) s betltsre (LOAD DATA) SHOW DATABASES jog az adatbzisok megtekintsre SUPER jog a szerver megfigyelshez, kliensek kapcsolatok megszaktshoz, a szerver mkdsnek megvltoztatshoz REPLICATION CLIENT jog a master szerver elrshez (replikci esetben), a frisstshez felttlenl szksges REPLICATION SLAVE jog a master vagy a slave llapotnak lekrdezshez CREATE USER felhasznl ltrehozsa s jellemzinek mdostsa

122

A rendszergazdai jelsz megadsa: Miutn egy adatbzis szervert teleptettnk, elsknt a rendszergazdai jelszt kell belltanunk. A jelsz belltst tbbfle mdon is megtehetjk: A SET PASSWORD FOR utastssal: mysql -u root mysql mysql> SET PASSWORD FOR root@localhost=PASSWORD('new_passwd'); mysql> SET PASSWORD FOR root@hostname=PASSWORD('new_passwd'); Figyeljnk arra, hogy alapesetben kett felhasznl esetben is be kell lltanunk a jelszt. Mivel a jogosultsgok is adattblban vannak trolva, ezrt adatbzis mvelettel is megoldhat. mysql -u root mysql mysql> UPDATE user SET Password=PASSWORD('new_passwd') -> WHERE user='root'; mysql> FLUSH PRIVILEGES; Amennyiben a ksbbiekben kapcsoldni akarunk a szerverhez, akkor szksges a -p opci megadsa a parancs esetben. Ebben az esetben ugyanis nem prbl meg jelsz nlkl csatlakozni, hanem bekri a jelszt. Jogosultsg adsa s elvtele felhasznlktl: Jogosultsg ads a GRANT utasts segtsgvel trtnhet. Ennek ltalnos szintaxisa a kvetkez: GRANT [privileges] ON [db or table] TO [user@host ] IDENTIFIED BY 'password'; Plda jogosultsg adsra: GRANT SELECT ON test.* TO db1@localhost IDENTIFIED BY 'db1_jelszo'; GRANT SELECT, INSERT ON test.log TO db2@a-621 IDENTIFIED BY 'db2_jelszo'; Az els parancs a test nev adatbzis sszes tbljra vonatkozan ad SELECT jogosultsgok a db1 nev felhasznlnak, aki localhost-rl bejelentkezhet az utasts vgn megadott jelszval. A msodik parancs esetben az adott felhasznl kt privilgiumot kap, de csak a test adatbzis log nev tbljra vonatkozan. Jogosultsg visszavonsa a REVOKE parancs megadsval trtnhet. A parancsot pldul az albbi mdon hasznlhatjuk: REVOKE [privileges] ON [db or table] FROM [user@host ];

123

Plda jogosultsg megvonsra: REVOKE SELECT ON test.* FROM db1@localhost; REVOKE INSERT ON test.log FROM db2@a-621; 10.5.6. Adatbzis mentse s visszalltsa MySQL-ben Gyakran lehet arra szksg, hogy egy adatbzis vagy annak egy adattbljt mentennk kell, majd egy msik gpre tvinni (importlni). A MySQL alaprtelmezsknt SQL fjlt generlt, amelyet, hogyha egy msik megfelel verzij MySQL-ben futtatunk, akkor automatikusan a mentett adatbzis ltrejn. A ments elvgezhet a mysqldump parancs segtsgvel. mysqldump -u root -p db1 table1 > db1_dump.sql Amennyiben sikeresen berjuk a rendszergazdai jelszt, gy a db1 adatbzis table1 tbljnak mentse belekerl a db1_dump.sql fjlba. Alaprtelmezsknt a parancs elhelyezi a ments elejn a tbla ltrehozshoz szksges CREATE TABLE utastst is. A -t kapcsolval megoldhat, hogy csak az adatok kerljenek bele a fjlba, a -d kapcsolval pedig csak a tbla ltrehozst menti a fjlba, a benne lv adatokat figyelmen kvl hagyja. Visszalltsnl hasznlhatjuk a mysql parancsot. Amennyiben az adattbla mr ltezik, akkor trlni kell a tartalmt vagy esetleg a tblt is. Amennyiben a ments elejn ott van a tbla ltrehoz utasts, akkor a kvetkez paranccsal meg tudunk tenni egy visszalltst: mysql -u root -p db1 table1 < db1_dump.sql 10.6. Levelez szerver hasznlata Linuxon 10.6.1. Az e-mail kldssel kapcsolatos fogalmak s problmk Az elektronikus levelezs mr j nhny ve a kommunikci egyik f eszkze lett. Az e-mail kezelsvel kapcsolatban definilnunk kell fogalmakat: MTA (Mail Transfer Agent): Az az alkalmazs, amely az elektronikus levelek fogadst s kzbestst vgzi (E)SMTP ((Extended) Simple Mail Transfer Protocol) vagy vele rokon protokoll segtsgvel. Ilyen alkalmazs pldul: exim, sendmail, qmail, smail, postfix, ... MDA (Mail Delivery Agent): Olyan alkalmazs, vagy dmon, amely a levelek kzbestst vgzi. Ilyen alkalmazs pldul a procmail. A postfix esetben pldul a local vagy a virtual dmonok ltjk el ezt a feladatot. MUA (Mail User Agent): Olyan alkalmazs, amely segtsgvel az elektronikus levelesldnkat kezelhetjk s a vele kapcsolatos alapvet mveleteket (olvass, rs, trls, nyomtats, ...) elvgezhetjk. Manapsg a legtbb ilyen alkalmazs biztost lehetsgeket a levelek szrsre s klnbz mappkba val csoportostsra. Plda MUA alkalmazsokra: mutt, pine, kmail, Mozilla Thunderbird (Idedove), SquirrelMail, ... . A levelezshez szmos alkalmazs szint protokoll kapcsoldik:
124

SMTP: Az MTA-k kzti kommunikcira. POP3 (Post Office Protocol): Levelek letltse s trlse IMAP (Internet Message Access Protocol): Levelek letltse, mozgatsa, trlse a szerveren. Az utbbi kett protokollnak elrhetk olyan vltozatai is, amelyek esetben a kapcsolat titkostott (pl.: SSL felett). Ajnlott ezeknek a hasznlata a nagyobb biztonsg rdekben. Az SMTP protokoll egy rgi protokoll. Amikor kitalltk, akkor elg volt 7bites adatok tvitele. Ez az rksg a mai napig ltezik. Amikor valamilyen binris fjlt, vagy kezetes bett szeretnnk tvinni, abban az esetben szksges az adataink 8bitesrl 7 bitesre alaktsa. Ami termszetesen mret nvekedssel jr. Ahhoz, hogy mellkleteket lehessen csatolni, fontos kiterjeszts a MIME (Multipurpose Internet Mail Extension). Ezzel a levl tartalmt tbb rszre bonthatjuk, s ahol szksges a 8bites adatokat pldul Base64 kdolssal 7 bitess alakthatjuk. A levelezshez kapcsoldik a levelek digitlis alrsa. Ahhoz, hogy biztosak legynk abban, hogy ki kldte neknk a levelet ellenriznnk kell a digitlis alrst. Sok levelez programban elrhet gpg (OpenPGP) bvtmny, amellyel megvizsglhatjuk az alrst. A program emellett, hogy alrsra hasznlhat, akr egy levl titkostott kldsre is kpes. Az SMTP protokoll megengedi az anonymous levl kldst. Az elektronikus levelezs biztonsgi szempontbl egyltaln nem tekinthet biztonsgosnak. A szolgltats manapsg termszetes, mindenki hasznlja ppen ezrt a klnfle vrusoknak, frgeknek kedvenc mdszere a terjeszkedshez. A msik fontos s egyre fokozottabban jelentkez problma a levlszemt (spam, UCE). Ezekre a problmkra szerver oldalon reaglhatunk. A tl szigor szrs ppen gy problmkat jelent, mint ha nem megfelelen trtnik a vrusok vagy a spam-ek detektlsa s klnvlasztsa. A kvetkezkben egy MTA-t fogok bemutatni, illetve nhny belltsi lehetsgt.

10.6.2. Az Postfix A Postfix hivatalos web oldala a http://www.postfix.com. A jegyzet rsakor a 2.5.1-es a legutols stabil kiadsa. A Postfix nylt forrs projekt, IBM fejlesztsbl ered s a legtbb Unix, BSD, Linux opercis rendszerben elrhet. A legfontosabb jellemzi: A fejlesztsnl klnsen hangslyosak a biztonsgi krdsek. Modulris felpts, knnyen konfigurlhat s kibvthet. Igyekszik kompatibilis maradni az sendmail-el. Kpes szrk hasznlatra, amelyek segtsgvel spam s vrus szrs megvalsthat (pl.: spamassassin, amavis, clamav). Megoldhat a hozzfrs vezrls szablyozsa, bels levelezsi listk vdelme. Kpes bizonyos belltsokat, felhasznli adatokat kls adatbzisokbl venni (pl.: DBM, LDAP, MySQL, PostgreSQL, ...) Megoldhat a felhasznlk hitelestse SASL (Simple Authentication and Security Layer) vagy TLS (Transport Layer Security) segtsgvel. A Cyrus vagy a Dovecot SASL implementcikkal egyttesen hasznlhat. gy csak azok lesznek kpesek elektronikus levl kldsre, akik erre jogosultsgot kaptak.

125

Virtulis felhasznli fikok s tartomnyok hozhatk ltre. Egyttmkds a POP3 s IMAP kiszolglkkal. (pl.: Dovecot)

Amikor a Postfix levelez szervert csomagbl teleptjk, akkor az albbi lehetsgek kzl vlaszthatunk: No configuration Ebben az esetben nem akarunk kezdeti konfigurcit. Internet Site Mint az internethez kapcsold gp, kpes legyen a levl fogadsra s kzbestsre. Internet with smarthost Ebben az esetben ez a gp fogadja az internet fell rkez leveleket s tovbbadja egy msiknak (smarthost), amely helyezi el a felhasznlk leveleit a megfelel helyre. Satellite system tjtszknt mkdik kt szerver kztt. Local only Csak helyi kzbests. A levelez szerver mkdst kt rszre bonthatjuk. Kell tudnia levelet fogadni s kldeni. Termszetesen lehet olyan konfigurci, amikor nem akarjuk mindkettt hasznlni. Az szerver mkdsre jellemz, hogy tbb folyamat egyttes eredmnyeknt lesznek az elektronikus levelek fogadva s elkldve. Az egyes folyamatok sorokat (queue) hasznlnak az adattovbbts folyamn. A fogads addig tart, amg az incoming queue-ba megrkezik az elektronikus levl. A kvetkez brn a levl fogadsnak folyamatt ltjuk:
local sendmail postdrop maildrop

pickup

trivial rewrite

bounce

network

qmqpd

cleanup

incoming

network

smtpd

verify

defer

A Postfix e-mail fogadsi folyamata: 3. sz. bra

A Postfix esetben a master nev dmon irnytja az elektronikus levelezst. indtja el az egyes dmonokat s avatkozik be a rendszer mkdsbe a kapott visszacsatolsok rvn. A fogads esetben a fontosabb mdszerek, lehetsgek: Egy elektronikus levl szrmazhat egy helyi felhasznltl. Ebben az esetben a sendmail parancs a (kompatibilits miatt) fogadja e levelet, majd tadja a postdrop parancsnak, amely elhelyezi azt a maildrop nev sorban. Innt a pickup nev dmon szedi ki s tovbbtja a cleanup fel. A hlzat fell rkez levelek esetben az SMTP-n vagy QMTP-n (Quick Mail Queuing Protocol (az SMTP gyorstsa a nagyobb teljestmny rdekben))
126

keresztli leveleket tudja fogadni. Ennek a megvalstst az smtpd s a qmqpd vgzi. A fogadsokrl az anvil gyjti a statisztikkat s figyeli, hogy kapcsoldsok szmt s rtesti errl a master-t. Ezutn a cleanup szerver vgzi el a leveleken az utols mdostsokat, pldul a From: s egyb fejrsz elemek hozzadst. Fontos a szerepe abbl a szempontbl is, hogy fogadja a visszapattan leveleket s a levelez szerver zeneteit is. Ezutn a levelek az incoming queue-ba kerlnek. A levl kldsnek egyszerstett folyamatt a kvetkez bra mutatja be:

smtp bounce trivial rewrite

network network

lmtp local

incoming

qmgr

mailbox

virtual defer active pipe

mailbox command (uucp)

deferred delivery agents


A Postfix e-mail kldsi folyamata: 4. sz. bra

A kldsi folyamat lelke a qmgr (queue manager). Azrt, hogy ne lehessen tlterhelni egy kis mret sor (active) alapjn trtnik az zenetek feldolgozsa s tovbbtsa az egyes kzbest gynkk (delivery agent) szmra. A trivial-rewrite dmont cm trsra, cm feloldsra s cm ellenrzsre hasznlhatja fel. A fontosabb zenet kzbest dmonok: smtp klds hlzaton keresztl SMTP-vel lmtp klds hlzaton keresztl LMTP (Local Mail Transfer Protocol)-al local helyi felhasznlk postafikjba virtual helyi virtulis felhasznlk postafikjba pipe levl tovbbadsa pipe felhasznlsval (pl.: UUCP (Unix to Unix Copy) hasznlatakor) bounce visszapattan levelek (cleanup) defer ksleltetett levelek (cleanup)

127

10.6.3. A Postfix nhny konfigurcis direktvja A Postfix f konfigurcis fjlokat a /etc/postfix knyvtrban talljuk. A master.cf fjlban tallhatjuk a master dmonnak szl belltsokat. Egy adott szolgltatskor milyen programot kell indtani, s milyen paramterekkel. A Postfix legtbb dmonja chroot krnyezetben fut a /var/spool/postfix knyvtron bell. A Postfix esetben is rengeteg opci kzl vlaszthatunk a konfigurci sorn. A /etc/postfix/main.cf nhny belltsa: command_directory = /usr/sbin A Postfix parancsainak elrsi tvonala. daemon_directory = /usr/lib/postfix A dmonok elrsi tvonala. queue_directory = /var/spool/postfix Az zenetsorok elrsi tvonala. inet_interfaces = eth0 inet_protocols = ipv4 A hlzati interfsz s a protokoll megadsa, amit figyelni kell. mail_owner = postfix setgid_group = postdrop A felhasznl, felhasznli csoport akinek a nevben a levelezszerver mkdik. default_privs = nobody Az alaprtelmezett felhasznl a helyi kzbestshez. message_size_limit = 10240000 Maximlis levl mret. mail_spool_directory = /var/mail A felhasznlk leveleit trol knyvtr. syslog_facility = mail syslog_name = postfix A naplzsi belltsok. myhostname = mail.domain.hu A levelezszerver neve (FQDN). mydomain = domain.hu A tartomnynv megadsa. myorigin = /etc/mailname A helyi kimen levelek esetben milyen nevet fzzn a kld neve utn. mynetworks = 127.0.0.0/8 192.168.31.0/24 Azon alhlzatok, ahonnt engedlyezett a levl kldse (mail relay).

128

mydestination = $myhostname, $myorigin, $mydomain, localhost. $mydomain, , localhost Azon cmek listja, amelyek esetben a levelezszerver gy veszi, hogy a cllloms. alias_database = hash:/etc/aliases alias_maps = hash:/etc/aliases A fjl, ahol az lnevek tallhatk. A levelek kzbestse ms felhasznl levelesldjba. relayhost = mail.szolgaltato.hu Adott hoszt neve vagy IP cme, aminek egy bels hlzat fell tovbbtani kell a levelet, s az fogja kzbesteni a clhelyre. smtpd_recipient_restrictions = permit_mynetworks, reject_invalid_hostname, reject_non_fqdn_hostname, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_unauth_destination, reject_rbl_client cbl.abuseat.org, permit Fontos annak a belltsa, hogy a szervernk milyen feltteleknek megfelelen fogadja s kzbestse az elektronikus leveleket. Nem clszer az open relay, mert rkon bell fekete listra kerlhetnk a spam-els miatt. Csak olyan helyrl clszer leveleket fogadni, amely hosztok rendelkeznek regisztrlt tartomnnyal s FQDN-el. A levelez szerver csak azon tartomnyokra cmzett leveleket fogadja el, amelyek megegyeznek a sajt domnnvvel, vagy pedig a virtulis domnek kztt szerepelnek. A postconf parancs hasznlatval megtekinthetjk az sszes konfigurcis paramtert, illetve azoknak belltott s alaprtelmezett rtkeit. 10.6.4. A Postfix adminisztrcis parancsai A /etc/init.d/postfix script segtsgvel a levelezszerver lellthat, jraindthat. mailq levlkld sor tartalmnak listzsa postalias alias adatbzis karbantartsa postcat sorban lv levl tartalmnak megtekintse postconf konfigurci megtekintse, belltsa postdrop levl elhelyezse a maildrop sorba postfix indts, lellts postkick zenetklds Postfix szolgltatsnak
129

indthat,

postlock futtatsa postlog postmap postqueue postsuper

a leveleket tartalmaz knyvtr zrolsa s parancs naplzs lookup tblk kzti talakts sorok vezrlse sorok vezrlse amikor a levelezszerver nem fut

10.7. Tzfal hasznlata Linuxon 10.7.1. A tzfalak ltalnos jellemzi, tpusaik, elvek A tzfal a hlzati vdekezs fontos eszkze. A segtsgvel meghatrozhatjuk, hogy milyen forgalom juthat be a hlzatba illetve milyen helyekre lehessen kifel adatokat kldeni. A tzfal segtsgvel teht vdjk a hlzatunkon lv szmtgpeinket, ezen keresztl az adatainkat. Kzvetetten mondhatjuk azt, hogy az adott cg vagy szervezet j hrt is. Fontos, hogy a tzfalat olyan helyre kell elhelyeznnk, hogy mindenfajta hlzati forgalom csakis rajta keresztl trtnhessen. A gyakorlatban ez annyit jelent, hogy tbb hlzati interfsszel rendelkez eszkzt vagy szmtgpet iktatunk a hlzati eszkzk kz. Ezutn definilnunk kell azt, hogy melyik eszkzrl melyik irnyokba trtnhet kommunikci s milyen tpus. A tzfal esetben krds, hogy milyen eszkzt hasznljunk a megvalstshoz: clhardvert (hardveres tzfal) szoftveres megvalstst (pl. Linux, OpenBSD, ...) A szoftveres megolds ltalban olcsbb s valamivel kisebb teljestmnyt nyjt mint a hardveres megvalstsok. Az, hogy melyiket clszer vlasztanunk tbb tnyeztl is fgg. Amikor a vdekezsrl beszlnk megklnbztethetnk klnbz mkdsi modelleket: helyi vdekezs: egy szerver esetben fontos, hogy vdekezznk a szerver tlterhelse ellen illetve korltozzuk az egyes szolgltatsok elrhetsgt tzfallal vdett LAN: ebben az esetben a tzfal kt hlzatot vlaszt el egymstl. Az egyik a kls hlzat, ahonnt vrhatk a tmadsok, mg a msik a bels hlzat amit vdeni szeretnnk. Ebben az esetben kett hlzati interfszre van szksgnk. tzfallal vdett LAN DMZ (De-militarized Zone)-vel kiegsztve. Ez annyiban klnbzik az elztl, hogy a LAN-ban lv gpek egy csoportjt elklntjk. Azok a gpek, amelyek valamilyen szolgltatst biztostanak kerlhetnek bele ebbe a csoportba. A tzfal ebben az esetben hrom interfsszel kell, hogy rendelkezzen. A mdszer elnye az, hogy szablyozni lehet, hogy milyen mdon lehessen a DMZ-ben lv szerverekhez hozzfrni a kls hlzat fell, illetve a bels LAN-beli gpekrl. Ebben az esetben ltalban a LAN-beli gpek kls elrse tiltott. A tzfalakat mkdsi mdjuk szerint klnbz csoportokba sorolhatjuk: csomagszr tzfalak: ebben az esetben a tzfal kpes az sszes hozz
130

rkez csomagon ellenrzseket vgrehajtani. Az IP csomag fejrsznek minden mezje alapjn lehetsges a szablyok megfogalmazsa. Termszetesen az IP-ben utaz szlltsi protokollokra vonatkozan is lehetsges szrseket tenni. A tzfal ebben az esetben csak portokkal foglalkozik, nem kpes annak a vizsglatra, hogy ott milyen kommunikci folyik. dinamikus csomagszr (csomagvizsgl) tzfalak: annyival tbb, mint az elz, hogy kpes az egyes protokollok llapotainak a figyelembe vtelre. Ennlfogva kpes megklnbztetni, hogy egy adott adatfolyam egy meglv kapcsolathoz tartozik-e, vagy pedig egy teljesen j. Alkalmazs szint tzfalak: kpesek adatfolyamba val beletekintsre, ami alapjn el tudjk dnteni a kommunikci tpust s szksgessgt. Proxy tzfalak: Szintn az alkalmazsi szinthez kthetk. Egy proxy esetben megvalsthat, hogy felhasznli nvhez s jelszhoz kssk a kommunikci lehetsgt. NAT (Network Address Translation) tvlasztk: Ebben az esetben egy gp vgzi a cmfordtst s rajta keresztl trtnhet a bels hlzatbl trtn kommunikci. A mdszer elnye, hogy elrejti a bels hlzatot, htrnya viszont az, hogy nagyobb erforrst ignyel a mkdshez. A bels hlzat sszes gpe ebben az esetben egy IP cm mgl fog ltszani a kls hlzat gpei szmra. Amennyiben egy szolgltats esetben IP cm alapjn van adott szm kapcsoldsi lehetsg, elfordulhat, hogy azrt nem rjk el a szolgltatst, mert valaki ms a bels hlzatunkbl pp hasznlja azt. Szemlyes tzfalak: Ebben az esetben a cl egy nll rendszer vdelme. A kls tmadsok mellett elfordulhatnak bels tmadsok is. Ezek ellen csak gy vdekezhetnk, hogy korltozzuk a szolgltatsok hozzfrhetsgt.

Egy tzfal csak akkor ad biztonsgot, hogyha jl be van lltva. Amennyiben tl megenged, akkor olyan adatforgalom is thaladhat rajta, amely nem kvnatos lenne. Ahhoz, hogy ilyen problma ne jelentkezzen ajnlott nhny elvet, szablyt betartani. Mindent tilos, kivve amit szabad elv! Elsknt tiltsunk le mindenfle forgalmat, majd a szksgeseket engedlyezzk. Tiltsuk le a source route IP opcit tartalmaz csomagok tengedst. Egy csomag ne rendelkezhessen a sajt tvlasztsra vonatkozan. Vdekezznk az IP hamists (IP spoofing) ellen. Mindig ellenrizzk, hogy egy IP cmrl rkezett csomag a megfelel interfszen keresztl rkezett-e. Ne engedjk, hogy egy kls helyrl azt prbljk meg elhitetni, hogy az adatforgalom egy bels IP cmrl rkezett. Vdekezznk az elraszts (flooding) s a DoS tpus tmadsok ellen, gy, hogy korltozzuk egy adott idintervallumra vonatkoz kapcsolatok szmt. Figyeljnk oda a naplzsra, a naplfjlok mretre. 10.7.2. A kernel szint tzfal A Linux esetben kernel szint tzfalrl beszlhetnk. A tzfal megvalstsa

131

kernel szintjn trtnik. Amennyiben a kernelnk rendelkezik a megfelel tmogatssal, akkor definilhatjuk a tzfalunk szablyait. A szablyok meghatrozsa felhasznli trben fut alkalmazsok segtsgvel trtnhet. A kvetkez alkalmazsok segtsgvel definilhat a tzfal az egyes kernel verzik esetben: 1.1 ipfw 2.0 ipfwadmin 2.2 ipchains 2.4, 2.6 iptables A kernel szint tzfalra jellemz, hogy a netfilter struktrra (http://www.netfilter.org) pl. Szmunkra kln rvendetes hr, hogy netfilter core-team tagjai kztt magyar fejlesztt is tallunk Kadlecsik Jzsef (KFKI) szemlyben. A netfilter struktra gynevezett kampkat (hook) definil a protokoll stack megfelel pontjain. Amikor egy adott csomag eljut az adott pontra, akkor taddik a netfilter keretrendszernek. A kernel modulok az egyes hook-okhoz regisztrlhatjk magukat. A kernel modul regisztrcija sorn egy prioritst rendel a sajt funkcijhoz. Amikor az adott hook aktivldik, akkor a priorits dnti el, hogy mely modul kerl meghvsra. A tzfal a kernel szempontjbl egy specilis eszkznek tekinthet. Modulok segtsgvel a mkdse kiterjeszthet. A keretrendszerben lv szoftverek segtsgvel megoldhat: a csomagszrs (packet filtering) filter alrendszer a hlzati cm s port fordts (network address [and port ] translation NA[P]T) NAT alrendszer csomag megvltoztats (packet mangle) mangle alrendszer kapcsolat kvets (connection tracking) conntrack alrendszer Az iptables egy ltalnos tblzatokat tartalmaz struktra, amelyben a szablyokat definilhatjuk. Egy szably kt rszbl ll: iptables matches: ez jelenti az egyezsi feltteleket iptables target: ez jelenti a teendt, amelyet egy felttel esetben el kell vgezni Az jabb kernelek esetben a szablyokat az iptables parancs segtsgvel definilhatjuk. A szablyokat minden rendszerindulskor be kell tlteni. Van arra lehetsg, hogy a szablyokat csoportostsuk s sajt lncokat hozzunk ltre.
filter network PREROUTING in conntrack mangle nat routing decision INPUT filter conntrack FORWARD POSTROUTING nat conntrack network out

local process

OUTPUT conntrack mangle nat filter

Egy csomag tja a csomagszrben: 5. sz. bra

Az

elz

bra

bemutatja,

hogy

miknt
132

halad

keresztl

egy

csomag

csomagszrben: Az bra bal oldaln rkezik meg egy csomag a hlzat fell. A PREROUTING alaprtelmezett lnc csak abban az esetben ltezik, hogyha a NAT bvtmnnyel rendelkeznk. Itt a kvetkez netfilter alrendszereket hasznlhatjuk: conntrack DNAT (Destination NAT) mangle Azokat a feltteleket adhatjuk meg itt, amelyeket mg az tvlaszts (routing) eltt kell elvgezni. Pldul: amennyiben NAT-ot hasznlunk s egy bels hlzatbeli gp adott portjt szeretnnk kvlrl elrhetv tenni ha transzparens proxy-t szeretnnk hasznlni A PREROUTING utn rkezik meg a csomag az tvlasztshoz. Itt dl el, hogy a csomag a helyi gpnek szl vagy pedig tovbbtani kell a csomagot egy msik interfszen keresztl. Az INPUT alaprtelmezett lncban adhatjuk meg a szablyokat a bejv kapcsolatokra vonatkozan. Itt a kvetkez netfilter alrendszereket hasznlhatjuk: conntrack filter Ahhoz, hogy egy felhasznli folyamat (local process) megkaphasson egy csomagot, azt egy INPUT lncbeli szablynak engedlyeznie kell. A FORWARD lnc esetben adhatjuk meg a szablyokat az IP tovbbtsra vonatkozan. Ahhoz, hogy a kernel kpes legyen az egyes interfszek kztt IP tovbbtsra, ahhoz kln rendszerbellts szksges a /proc fjlrendszeren keresztl: echo 1 > /proc/sys/net/ipv4/ip_forward A FORWARD lnc esetben csak csomagszrsi szablyokat hasznlhatunk. Amennyiben egy felhasznli folyamat kommuniklni szeretne hlzaton keresztl, akkor r az OUTPUT lncban lv szablyok vonatkoznak. A kifel val kommunikcihoz felttlenl szksges az, hogy legyen egy olyan szably, amely megengedi a kommunikcit. Az OUTPUT esetben brmelyik netfilter alrendszert hasznlhatjuk. Az OUTPUT s a FORWARD lncon tljut csomagok ezutn a POSTROUTING lnchoz kerlnek. Ez a PREROUTING lnchoz hasonlan csak akkor ltezik, hogy a NAT tmogats elrhet a kernelben. Itt a kvetkez netfilter alrendszereket hasznlhatjuk: conntrack SNAT (Source NAT) Az alaprtelmezett lncok rendelkeznek n. default policy-val. Itt azt lehet megfogalmazni, hogy mit kell tenni azzal a csomaggal, amelyik egyik korbbi szablyra sem illeszkedik.
133

Az iptables esetben tbbfle target (teend) is megadhat. Alaprtelmezsknt kett biztosan elrhet: ACCEPT: a csomag elfogadsra kerl DROP: a csomag eldobsra kerl. 10.7.3. Az iptables parancs hasznlata, paramterei Egy iptables parancs tbb rszbl llhat: iptables [-t table] command chain match [target/jump] Ahol:

table: egy tblzat neve, pldul: nat command: egy parancssori kapcsol chain: a lnc neve match: az egyezsi felttel megadsa target: teend jump: egy ltez lnc neve, amire ugrani kell

Lncokkal kapcsolatos fontosabb mveletek:


-N -X -P -L -F -Z

chain j lnc ltrehozsa chain ltez lnc trlse chain target alaprtelmezett teend belltsa beptett lnc esetn lnc tartalmnak listzsa chain lncban lv szablyok trlse chain lnchoz tartoz szmlzk nullzsa

A chain egy adott lnc nevt jelenti, a target pedig a teendt. Pldk iptables parancsokra: iptables -N allowin iptables -P FORWARD DROP iptables -L iptables -L -t nat Az alaprtelmezett lncokbl van arra lehetsgnk, hogy egy korbban ltrehozott sajt lncra ugorjunk. Ebben az esetben addig trtnik a sajt lncokban lv szablyok vizsglata, amg egyrtelmen el nem dl, hogy el kell fogadni vagy el kell dobni a csomagot. Amennyiben a lncon bell ez nem kvetkezik be, akkor az ugrs helye utni szably kerl feldolgozsra. Lncban -A -I -R -D lv szablyokkal kapcsolatos mveletek rule j szably hozzfzse [num] rule szably beszrsa adott pozciba num rule szably helyettestse rule | num szably trlse

134

ltalnos egyezsi felttelek megadsa: -s [!] address/mask forrs IP cm/ alhlzati maszk -d [!] address/mask cl IP cm/ alhlzati maszk -p [!] protocol szlltsi protokoll neve -i [!] interface bejv hlzati interfsz neve -o [!] interface kimen hlzati interfsz neve [!] -f tredkek kezelse Protokoll fgg egyezsi felttelek megadsa: TCP esetben: --tcp-flags ... TCP flag-ek (SYN, RST, ACK, ...) megadsa --sport [!] port forrsport --dport [!] port clport --tcp-option [!] id TCP opcik [!] --syn ahol a SYN flag be van lltva (RST,ACK,FIN pedig nincsen, j TCP kapcsolat kezdemnyezsekor) --mss value[: value] maximlis csomagmret UDP esetben: --sport port forrsport --dport port clport ICMP esetben --icmp-type ICMP tpusnak megadsa (echo-request, ...) Kibvtett egyezsi felttelek (kiterjesztsek, bvtmnyek) hasznlata: -m extension bvtmny nevnek a megadsa state: csomag llapotnak vizsglata -m state --state state-list A state-list esetben a NEW (j), ESTABLISHED (felplt), RELATED (valamihez tartoz), INVALID (nem megfelel) szavak hasznlhatk. Pldk: iptables -A FORWARD -o eth0 -j ACCEPT iptables -A FORWARD -o eth1 -m state \ --state ESTABLISHED,RELATED -j ACCEPT limit: kapcsolatok szmnak vizsglata -m limit --limit M/second msodpercenknt M-nl kisebb szmok esetn legyen egyezs --limit-burst N az N-nl kisebb csomagszm esetn legyen egyezs Plda: iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
135

mac: egyezs vizsglat MAC cm alapjn -m mac --mac-source MAC adott MAC cm alapjn

iptables -A INPUT -m mac --mac-source 00:50:56:00:00:02 -j ACCEPT recent: egyezs korbbi IP cmek alapjn -m recent --name str --set --update --seconds N --hitcount M lista azonost karakterlnc IP cm felvtele utols idpont frisstse idkorlt megadsa egyezsek szma

iptables -A ssh -m recent --set --name ssh_counter iptables -A ssh -m recent --update --name ssh_counter --seconds 60 --hitcount 2 -j blacklist owner: egyezs ID-k alapjn -m owner --uid-owner userid --gid-owner groupid --pid-owner processid

UID alapjn GID alapjn PID alapjn

iptables -A OUTPUT -m owner --uid-owner 1000 -j ACCEPT multiport: tbb port felsorolsa vesszvel elvlasztva -m multiport --sport port1,port2,... --dport port1,port2,... forrs port cl port

iptables -A INPUT -p tcp -m multiport --sport 80,443 -j ACCEPT IP range: tbb IP cm megadsnak lehetsge -m iprange --src-range startIP-endIP --dst-range startIP-endIP iptables -A INPUT -p tcp -m iprange \ --src-range 192.168.30.101-192.168.31.121 forrs IP cmek cl IP cmek

136

mark: korbban megjellt csomagokra vonatkoz egyezs -m mark --mark ID jells azonost szmnak megadsa

iptables -t mangle -A INPUT -m mark --mark 1 -j DROP Plda egy otthoni internetkapcsolat vdelmre: iptables iptables iptables iptables iptables iptables -N -A -A -A -A -A block block -m state --state ESTABLISHED,RELATED -j ACCEPT block -m state --state NEW -i ! ppp0 -j ACCEPT block -j DROP INPUT -j block FORWARD -j block

Ebben az esetben sajt magunk kezdemnyezhetnk kifel men kapcsolatokat, viszont kvlrl nem pthetnek fel a gpnkhz irnyul kapcsolatot.

137

Nhny lehetsg a teend (target) megadsra: LOG: naplzs --log-level 7-0 (debug, info, notice, warning, error, crit, alert, emerg) syslog naplzsi szintek --log-prefix "string" azonost sztring iptables -A INPUT -m limit --limit 1/second -j LOG info --log-prefix "PORTSCAN" --log-level

REJECT: eldobs ICMP unreachable, prohibited vagy TCP RST csomag kldsvel iptables -A FORWARD -p tcp --dport 113 -j REJECT --reject-with tcpreset RETURN: sajt lnc esetben visszatrs a szl lncba s a kvetkez szably alkalmazsa (egybknt pedig a default policy) iptables -A allowin -p tcp --dport 80 -j RETURN SNAT: forrs IP cm trsa a kimen interfsz IP cmre --to-source startIP-endIP:port1-port2 iptables -A POSTROUTING -s -j SNAT --to-source 192.168.2.2 172.16.0.0/16 -o ppp0 \

Amennyiben a ppp0 interfsz fix IP cmmel rendelkezik, gy a bels hlzatbeli gpek forgalmt a sajt IP cmre mdostva megoldhat az internetkapcsolat megosztsa. MASQUERADE: az SNAT specilis esete, amikor pldul a kimen interfsz dinamikusan kapja az IP cmet. --to-ports port1-port2 iptables -t nat -A POSTROUTING -p tcp -j MASQUERADE \ --to-ports 2000-3000 DNAT: cl IP cm (port) trsa valamilyen bels IP cmre (portra) --to-destination startIP-endIP:port1-port2 Hasznlhat port-forward-ra, amely esetben a kls interfsz fell rkez adott portra rkez csomagokat egy bels hlzaton lv gphez tovbbthatunk. iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j DNAT \ --to-destination 172.16.0.3 REDIRECT: a DNAT egy specilis esete, amikor sajt port(ok)ra trtnik a csomagok tirnytsa --to-ports port1-port2

138

A segtsgvel kszthetnk transzparens proxy-t: iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --toports 3128 A mkdshez szksg van a pldul a Squid-re, ami a 3128-as TCP porton figyel s be van lltva, hogy kpes legyen transzparens mdban is mkdni. MARK: adott csomagok megjellse a mark egyezsi felttel szmra --set-mark N adott szm hozzrendelse a csomagokhoz iptables -t mangle -A PREROUTING -p tcp --dport 22 \ -j MARK --set-mark 2 Szablyok mentse s visszalltsa: Ahhoz, hogy a szablyaink megmaradjanak ajnlott, hogy mentsk ket, s amikor a gpnk indul automatikusan belltsra kerljenek. Az iptables-save parancs a standard kimenetre menti a szablyokat. Az egyes sorokat ugyanazzal a megadsi mddal adja vissza, mint amit az iptables parancs esetben hasznlhatunk. Annyi a klnbsg, hogy az iptables parancs nem kerl bele a kimenetbe. # Generated by iptables-save v1.3.6 on Fri Apr 11 22:00:00 2008 *nat :PREROUTING ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A PREROUTING -d 192.168.2.2 -p tcp -m tcp --dport 80 -j DNAT \ --to-destination 172.16.0.3 -A POSTROUTING -s 172.16.0.0/255.255.255.0 -o eth0 -j SNAT \ --to-source 192.168.2.2 COMMIT # Completed on Fri Apr 11 22:00:00 2008 # Generated by iptables-save v1.3.6 on Fri Apr 11 22:00:00 2008 *filter :INPUT DROP [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -i lo -j ACCEPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p udp -m udp --dport 53 -j ACCEPT COMMIT # Completed on Fri Apr 11 22:00:00 2008 A * utn adjuk meg az alrendszer nevt, a : utn pedig a lnc nevt, amely az adott alrendszeren bell tallhat s a hozz tartoz alaprtelmezett teendt. A tbbi sor ugyanolyan, mintha iptables parancsot hasznltunk volna. Az iptablesrestore parancs kpes arra, hogy ilyen formtum fjlt olvasson s a benne megadott szablyokat belltsa.

139

Amikor tzfalat konfigurlunk, akkor az egyik lehetsg az, hogy scriptet runk, amelybe az egyes parancsokat megadjuk. A msik lehetsg az, amikor a tzfal konfigurlst gy oldjuk meg, hogy fjlt szerkesztnk vagy generlunk, s azt lltjuk be az adott szituciban. 10.7.4. A tzfal mkdshez szksges kernel opcik Ahhoz, hogy a kernel szint tzfal esetben az egyes netfilter alrendszereket s a megfelel targeteket hasznljuk, annak felttele, hogy a kernelbe fordtsuk be a megfelel opcikat. A Networking/Networking options menpont alatt tallhatjuk meg a jegyzetben bemutatott pldkhoz szksges opcikat: Packet Socket - CONFIG_PACKET TCP/IP networking - CONFIG_INET Network packet filtering framework (Netfilter) - CONFIG_NETFILTER Core Netfilter Configuration Netfilter connection tracking support - CONFIG_NF_CONNTRACK_ENABLED FTP protocol support - CONFIG_NF_CONNTRACK_FTP Netfilter Xtables support (required for ip_tables) CONFIG_NETFILTER_XTABLES "connlimit" match support" - CONFIG_NETFILTER_XT_MATCH_CONNLIMIT "limit" match support CONFIG_NETFILTER_XT_MATCH_LIMIT "mac" address match support CONFIG_NETFILTER_XT_MATCH_MAC "mark" match support CONFIG_NETFILTER_XT_MATCH_MARK Multiple port match support CONFIG_NETFILTER_XT_MATCH_MULTIPORT "state" match support CONFIG_NETFILTER_XT_MATCH_STATE IP: Netfilter Configuration IPv4 connection tracking support (required for NAT) CONFIG_NF_CONNTRACK_IPV4 IP tables support (required for filtering/masq/NAT) CONFIG_IP_NF_IPTABLES IP range match support - CONFIG_IP_NF_MATCH_IPRANGE recent match support CONFIG_IP_NF_MATCH_RECENT Owner match support CONFIG_IP_NF_MATCH_OWNER Packet filtering CONFIG_IP_NF_FILTER REJECT target support CONFIG_IP_NF_TARGET_REJECT TTL match s. - CONFIG_IP_NF_MATCH_TTL LOG target support - CONFIG_IP_NF_TARGET_LOG Full NAT CONFIG_NF_NAT MASQUERADE target support CONFIG_IP_NF_TARGET_MASQUERADE REDIRECT target support CONFIG_IP_NF_TARGET_REDIRECT Packet mangling CONFIG_IP_NF_MANGLE

140

11. Irodalomjegyzk
11.1. Knyvek, kiadvnyok
[1] [2] [3] [4] [5] Fred Butzen, Christopher Hilton: Linux hlzatok, Kiskapu Kft., 1999 Marcel Gagn: Linux rendszerfelgyelet, Kiskapu Kft., 2002 Rob Flickenger: Linux bevets kzben, Kiskapu Kft., 2003 Pere Lszl: GNU/Linux rendszerek zemeltetse I.-II., Kiskapu Kft., 2005 Tony Bautts, Terry Dawson, Gregor N. Purdy: Linux hlzati adminisztrtorok kziknyve, Kossuth Kiad ZRt, 2005 [6] Gerrit Huizenga, Badari Pulavart, Sandra K. Johnson: Linux kiszolglk teljestmnynek fokozsa, Kiskapu Kft., 2006 [7] Himanshu Dwivedi: SSH a gyakorlatban, Kiskapu Kft., 2004 [8] Daniel Lopez: Apache zsebknyv, Kiskapu Kft., 2007 [9] David Collier-Brown, Robert Eckstein, Peter Kelly: Samba, Kossuth Kiad ZRt., 2001 [10] Julie C. Meloni: Tanuljuk meg a MySQL hasznlatt 24 ra alatt, Kiskapu Kft., 2003 [11] Gregor N. Purdy: Linux iptables zsebknyv, Kiskapu Kft., 2006 [12] Michael D. Bauer: Szerverek vdelme Linuxszal, Kossuth Kiad ZRt, 2003 [13] Lars Wirzenius: Linux rendszeradminisztrtorok kziknyve, (elektronikus, FDL), 2003 [14] Daniel P. Bovet - Marco Cesati: Understanding the Linux kernel, O'Reilly, 2000

11.2. Internetes hivatkozsok


[1] http://www.debian.org Debian/GNU Linux [2] http://www.debian.hu Debian/GNU Linux magyar [3] http://debian.lap.hu Debian link gyjtemny [4] http://tldp.fsf.hu Magyar Linux Dokumentcis Projekt [5] http://www.hup.hu Hungarian Unix Portal [6] http://wiki.hup.hu HUP wiki [7] http://www.linuxvilag.hu Linuxvilg magazin [8] http://www.szabilinux.hu Linux Dokumentcik Magyarul [9] http://www.kernel.org Linux kernel [10] http://www.openssh.com OpenSSH [11] http://www.apache.org Apache Software Foundation [12] http://www.proftpd.org The ProFTPD projekt [13] http://www.samba.org Samba [14] http://www.mysql.com MySQL [15] http://www.postfix.org Postfix [16] http://www.netfilter.org The netfilter.org project

141

You might also like