FreeBSD Handbook HUN

You might also like

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

FreeBSD kziknyv

A FreeBSD Dokumentcis Projekt

FreeBSD kziknyv A FreeBSD Dokumentcis Projekt Megjelent 1999. februr Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 A FreeBSD Dokumentcis Projekt dvzljk a FreeBSD vilgban! Ez a kziknyv ismerteti a FreeBSD 7.3-RELEASE, ill. a FreeBSD 8.0-RELEASE teleptst s hasznlatt a mindennapokban. A kziknyv tartalmn szmos fggetlen fejleszt folyamatosan dolgozik. Emiatt elkpzelhet, hogy bizonyos fejezetek mr elavultak s aktualizlsra szorulnak. Amennyiben gy rezzk, hogy segteni tudnnk a projekt munkjban, rtestsk a fejlesztket a FreeBSD Dokumentcis Projekt levelezsi lista (http://lists.FreeBSD.org/mailman/listinfo/freebsd-doc) cmn! Ezen dokumentum legfrissebb vltozata mindig elrhet a FreeBSD honlapjrl (http://www.FreeBSD.org/) (a korbbi vltozatok pedig megtallhatak a http://docs.FreeBSD.org/doc/ cmen). Ezenkvl mg rengeteg ms formtumban s tmrtve is letlthet a FreeBSD FTP szerverrl (ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/) vagy a tkroldalak egyikrl. Amennyiben a kziknyv nyomtatott vltozatra lenne szksgnk, megvsrolhatjuk a FreeBSD Mall (http://www.freebsdmall.com/)-bl. Ha pedig keresni szeretnnk benne, azt a funkcit itt (http://www.FreeBSD.org/search/index.html) rhetjk el. Fordtotta s a fordtst karbantartja: Pli Gbor <pgj@FreeBSD.org >

A dokumentum tovbbadsa forrs (SGML DocBook) s feldolgozott formban (SGML, HTML, PDF, PostScript, RTF, stb.) mdostssal vagy anlkl a kvetkez felttelek mellett lehetsges:

1. A forrskdnak (SGML DocBook) tartalmaznia kell a fenti copyright megjegyzst s a felttelek ezen listjt, valamint a kvetkez jogi nyilatkozatot, brmifle mdosts nlkl. 2. Feldolgozott dokumentum tovbbadsakor (ms DTD, PDF, PostScript, RTF s ms formtumok) szintn meg kell tartani a fenti copyright megjegyzst, a felttelek listjt, valamint a kvetkez jogi nyilatkozatot a dokumentumban, vagy a dokumentumot ksr anyagokban.
Fontos: EZT A DOKUMENTUMOT A FREEBSD DOKUMENTCIS PROJEKT A JELEN FORMJBAN BIZTOSTJA S LEMOND MINDEN KIFEJEZETT VAGY TRVNYI SZAVATOSSGRL, BELERTVE AZ ELADHATSG S EGY ADOTT CLRA VAL ALKALMASSG SZAVATOSSGT. A FREEBSD DOKUMENTCIS PROJEKT SEMMILYEN ESETBEN SEM TEHET FELELSS A DOKUMENTUM HASZNLATBL ERED BRMILYEN KZVETLEN, KZVETETT JRULKOS, KLNLEGES, BNTET VAGY KVETKEZMNYES KRRT (BELEFOGLALVA, DE NEM KORLTOZVA A HELYETTEST JAVAK BESZERZSRE, HASZON, ADAT VAGY PROFIT ELVESZTSRE, ILLETVE ZLETI FORGALOM KIESSRE) VAGY EGYB MS ESETBEN SEM, AMIKOR ERS TEHER VAGY KN (HANYAGSG VAGY EGYB) ERED A DOKUMENTUM AKRMIFLE FELHASZNLSBL, MG HA ERRE KLN FEL IS HVTUK a FIGYELMET.

A FreeBSD a FreeBSD Foundation bejegyzett vdjegye. A 3Com s HomeConnect a 3Com Corporation bejegyzett vdjegyei.

A 3ware s Escalade a 3ware Inc. bejegyzett vdjegyei. Az ARM az ARM Limited bejegyzett vdjegye. A Adaptec az Adaptec, Inc. bejegyzett vdjegye. Az Adobe, Acrobat, Acrobat Reader, s PostScript az Adobe Systems Incorporated bejegyzett vdjegyei, vagy vdjegyei az Egyeslt llamokban s/vagy ms orszgokban. Az Apple, AirPort, FireWire, Mac, Macintosh, Mac OS, Quicktime, s TrueType az Apple Computer, Inc., bejegyzett vdjegyei az Egyeslt llamokban s ms orszgokban. A Corel s WordPerfect a Corel Corporation s/vagy lenyvllalatainak bejegyzett vdjegye Kanadban, az Egyeslt llamokban s/vagy ms orszgokban. A Sound Blaster a Creative Technology Ltd. vdjegye az Egyeslt llamokban s/vagy ms orszgokban. A CVSup John D. Polstra bejegyzett vdjegye. A Heidelberg, Helvetica, Palatino, s Times Roman a Heidelberger Druckmaschinen AG bejegyzett vdjegyei, vagy vdjegyei az Egyeslt llamokban s ms orszgokban. Az IBM, AIX, EtherJet, Netnity, OS/2, PowerPC, PS/2, S/390 s ThinkPad az International Business Machines Corporation vdjegyei az Egyeslt llamokban, ms orszgokban, vagy mindkettben. Az IEEE, POSIX s 802 az Institute of Electrical and Electronics Engineers, Inc. bejegyzett vdjegyei az Egyeslt llamokban. Az Intel, Celeron, EtherExpress, i386, i486, Itanium, Pentium s Xeon az Intel Corporation vagy lenyvllalatainak vdjegyei vagy bejegyzett vdjegyei az Egyeslt llamokban s ms orszgokban. Az Intuit s Quicken az Intuit Inc., vagy valamely lenyvllalatnak bejegyzett vdjegyei s/vagy bejegyzett szervizmrki az Egyeslt llamokban s ms orszgokban. A Linux Linus Torvalds bejegyzett vdjegye. Az LSI Logic, AcceleRAID, eXtremeRAID, MegaRAID s Mylex az LSI Logic Corp. vdjegyei vagy bejegyzett vdjegyei. Az M-Systems s DiskOnChip az M-Systems Flash Disk Pioneers, Ltd. vdjegyei vagy bejegyzett vdjegyei. A Macromedia, Flash s Shockwave a Macromedia, Inc. vdjegyei s/vagy bejegyzett vdjegyei az Egyeslt llamokban s/vagy ms orszgokban. A Microsoft, IntelliMouse, MS-DOS, Outlook, Windows, Windows Media s Windows NT a Microsoft Corporation bejegyzett veacute;djegyei, vagy vdjegyei az Egyeslt llamokban s/vagy ms orszgokban. A Netscape s a Netscape Navigator a Netscape Communications Corporation bejegyzett vdjegyei az Egyeslt llamokban s ms orszgokban. A GateD s NextHopa NextHop bejegyzett s nem bejegyzett vdjegyei az Egyeslt llamokban s ms orszgokban. A Motif, OSF/1 s UNIX a The Open Group bejegyzett vdjegyei, az IT DialTone s a The Open Group pedig vdjegyei az Egyeslt llamokban s/vagy ms orszgokban. Az Oracle az Oracle Corporation bejegyzett vdjegye. A PowerQuest s PartitionMagic a PowerQuest Corporation bejegyzett vdjegyei az Egyeslt llamokban s/vagy ms orszgokban. A RealNetworks, RealPlayer s RealAudio a RealNetworks, Inc. bejegyzett vdjegyei. A Red Hat s RPM a Red Hat, Inc. vdjegyei vagy bejegyzett vdjegyei az Egyeslt llamokban s ms orszgokban. A SAP, R/3 s mySAP a SAP AG vdjegyei vagy bejegyzett vdjegyei Nmetorszgban sok ms orszgban is vilgszerte. A Sun, Sun Microsystems, Java, Java Virtual Machine, JavaServer Pages, JDK, JRE, JSP, JVM, Netra, OpenJDK, Solaris, StarOfce, Sun Blade, Sun Enterprise, Sun Fire, SunOS, Ultra s VirtualBox a Sun Microsystems, Inc. vdjegyei vagy bejegyzett vdjegyei az Egyeslt llamokban s ms orszgokban. A Symantec s Ghost a Symantec Corporation bejegyzett vdjegyei az Egyeslt llamokban s ms orszgokban. A MATLAB a The MathWorks, Inc. bejegyzett vdjegye. A SpeedTouch a Thomson vdjegye. A U.S. Robotics s Sportster a U.S. Robotics Corporation. bejegyzett vdjegyei. A VMware a VMware, Inc. vdjegye. A Waterloo Maple s Maple a Waterloo Maple Inc. vdjegyei vagy bejegyzett vdjegyei. A Mathematica a Wolfram Research, Inc. vdjegye. Az XFree86 az XFree86 Project, Inc. vdjegye. Az Ogg Vorbis s Xiph.Org a Xiph.Org vdjegyei.

A gyrtk s terjesztk ltal hasznlt megnevezsek kzl sok vdjegy jogot kvetel. Ahol ilyen megnevezs tnik fel ebben a dokumentumban, s a FreeBSD Projektnek tudomsa volt a vdjegyrl, a megnevezst a vagy a szimblum kveti.

Tartalom
Elsz ..........................................................................................................................................................................xiv I. Bevezets................................................................................................................................................................ xxii 1. Bemutatkozs ....................................................................................................................................................1 1.1. ttekints..............................................................................................................................................1 1.2. dvzljk a FreeBSD-ben! ................................................................................................................1 1.3. A FreeBSD Projektrl...........................................................................................................................4 2. A FreeBSD teleptse ......................................................................................................................................10 2.1. ttekints............................................................................................................................................10 2.2. Hardverkvetelmnyek.......................................................................................................................10 2.3. A telepts eltt elvgzend feladatok................................................................................................12 2.4. A telepts megkezdse.......................................................................................................................18 2.5. A sysinstall bemutatsa......................................................................................................................25 2.6. Lemezterlet lefoglalsa.....................................................................................................................30 2.7. A teleptend sszetevk kivlasztsa................................................................................................43 2.8. A telepts eszkznek kivlasztsa ...................................................................................................46 2.9. A telepts vglegestse.....................................................................................................................48 2.10. A telepts utn .................................................................................................................................49 2.11. Hibakeress.......................................................................................................................................83 2.12. Teleptsi tmutat haladknak ........................................................................................................87 2.13. Sajt telepteszkz elksztse ........................................................................................................88 3. A UNIX alapjai ...............................................................................................................................................94 3.1. ttekints............................................................................................................................................94 3.2. Virtulis konzolok s terminlok ........................................................................................................94 3.3. Engedlyek .........................................................................................................................................97 3.4. A knyvtrak elrendezse.................................................................................................................102 3.5. A lemezek szervezse .......................................................................................................................104 3.6. llomnyrendszerek csatlakoztatsa s levlasztsa........................................................................111 3.7. Folyamatok .......................................................................................................................................114 3.8. Dmonok, jelzsek s a fut programok lelltsa ...........................................................................116 3.9. Parancsrtelmezk ............................................................................................................................118 3.10. Szvegszerkesztk..........................................................................................................................120 3.11. Eszkzk s eszkzlerk ...............................................................................................................120 3.12. Binris formtumok........................................................................................................................121 3.13. Bvebben olvashatunk....................................................................................................................123 4. Alkalmazsok teleptse: csomagok s portok..............................................................................................125 4.1. ttekints..........................................................................................................................................125 4.2. Az alkalmazsok teleptsnek sszefoglalsa.................................................................................125 4.3. A szmunkra szksges alkalmazsok felkutatsa ...........................................................................127 4.4. A csomagrendszer hasznlata ...........................................................................................................128 4.5. A Portgyjtemny hasznlata ...........................................................................................................131 4.6. Telepts utni teendk .....................................................................................................................140 4.7. Teend a srlt portokkal..................................................................................................................141 5. Az X Window System ...................................................................................................................................143 5.1. ttekints..........................................................................................................................................143 5.2. Az X ttekintse................................................................................................................................143

5.3. Az X11 teleptse..............................................................................................................................146 5.4. Az X11 belltsa..............................................................................................................................146 5.5. Bettpusok hasznlata az X11-ben..................................................................................................152 5.6. Az X bejelentkeztet kpernyje......................................................................................................156 5.7. Munkakrnyezetek ...........................................................................................................................159 II. Gyakori feladatok ................................................................................................................................................164 6. Asztali alkalmazsok.....................................................................................................................................165 6.1. ttekints..........................................................................................................................................165 6.2. Bngszk.........................................................................................................................................165 6.3. Irodai eszkzk.................................................................................................................................169 6.4. Dokumentum-megjelentk..............................................................................................................172 6.5. Pnzgyi szoftverek..........................................................................................................................173 6.6. sszefoglals ....................................................................................................................................175 7. Multimdia ....................................................................................................................................................177 7.1. ttekints..........................................................................................................................................177 7.2. A hangkrtya belltsa.....................................................................................................................177 7.3. MP3...................................................................................................................................................181 7.4. Videk lejtszsa ..............................................................................................................................184 7.5. TV krtyk belltsa........................................................................................................................192 7.6. Lapolvask........................................................................................................................................194 8. A FreeBSD rendszermag testreszabsa.........................................................................................................199 8.1. ttekints..........................................................................................................................................199 8.2. Mirt ksztsnk sajt rendszermagot?.............................................................................................199 8.3. A rendszernkben lev hardverek sszeszedse ..............................................................................200 8.4. Meghajtk, alrendszerek s modulok ...............................................................................................201 8.5. Sajt rendszermag ksztse s teleptse .........................................................................................201 8.6. A kongurcis llomny.................................................................................................................204 8.7. Ha valamilyen hiba trtnne.............................................................................................................218 9. Nyomtats......................................................................................................................................................220 9.1. ttekints..........................................................................................................................................220 9.2. Bevezets ..........................................................................................................................................220 9.3. Kezdeti belltsok............................................................................................................................221 9.4. Magasszint nyomtatbellts.........................................................................................................234 9.5. A nyomtatk hasznlata....................................................................................................................264 9.6. Ms nyomtatsi rendszerek...............................................................................................................272 9.7. Hibakeress.......................................................................................................................................273 10. Binris Linux kompatibilits.......................................................................................................................277 10.1. ttekints........................................................................................................................................277 10.2. Telepts..........................................................................................................................................277 10.3. A Mathematica teleptse ............................................................................................................281 10.4. A Maple teleptse ......................................................................................................................283 10.5. A MATLAB teleptse.................................................................................................................285 10.6. Az Oracle teleptse.....................................................................................................................288 10.7. Az SAP R/3 teleptse ..............................................................................................................291 10.8. Tmk haladknak..........................................................................................................................312

vi

III. Rendszeradminisztrci.....................................................................................................................................315 11. Bellts s nomhangols..........................................................................................................................316 11.1. ttekints........................................................................................................................................316 11.2. Kezdeti belltsok..........................................................................................................................316 11.3. A mag belltsa .............................................................................................................................318 11.4. Az alkalmazsok belltsa.............................................................................................................318 11.5. Szolgltatsok indtsa....................................................................................................................319 11.6. A cron segdprogram belltsa ....................................................................................................320 11.7. Az rc hasznlata FreeBSD alatt ......................................................................................................323 11.8. A hlzati krtyk belltsa...........................................................................................................324 11.9. Virtulis cmek................................................................................................................................330 11.10. Kongurcis llomnyok............................................................................................................331 11.11. Finomhangols a sysctl hasznlatval ..........................................................................................335 11.12. A lemezek nomhangolsa...........................................................................................................336 11.13. A rendszermag korltainak nomhangolsa.................................................................................340 11.14. A lapozterlet bvtse ...............................................................................................................344 11.15. Energia- s erforrsgazdlkods.................................................................................................345 11.16. A FreeBSD ACPI tmogatsnak hasznlata s nyomonkvetse...............................................346 12. A FreeBSD rendszerindtsi folyamata.......................................................................................................354 12.1. ttekints........................................................................................................................................354 12.2. A rendszerindts problmja .........................................................................................................354 12.3. A boot manager s az induls fokozatai .........................................................................................355 12.4. Kapcsolat a rendszermaggal a rendszerindts folyamn ...............................................................361 12.5. Eszkz tmutatk (device.hints).....................................................................................................362 12.6. Init: A folyamatirnyts elindtsa ................................................................................................363 12.7. A lelltsi folyamat........................................................................................................................364 13. Felhasznlk s hozzfrsek alapvet kezelse.........................................................................................365 13.1. ttekints........................................................................................................................................365 13.2. Bevezets ........................................................................................................................................365 13.3. Az adminisztrtori hozzfrs ........................................................................................................367 13.4. Rendszerhozzfrsek.....................................................................................................................367 13.5. Felhasznli hozzfrsek ..............................................................................................................367 13.6. A hozzfrsek mdostsa.............................................................................................................368 13.7. A felhasznlk korltozsa .............................................................................................................372 13.8. Csoportok........................................................................................................................................375 14. Biztonsg.....................................................................................................................................................377 14.1. ttekints........................................................................................................................................377 14.2. Bevezets ........................................................................................................................................377 14.3. A FreeBSD vdelme.......................................................................................................................379 14.4. DES, Blowsh, MD5 s a Crypt.....................................................................................................387 14.5. Egyszeri jelszavak...........................................................................................................................388 14.6. A TCP kapcsolatok burkolsa.........................................................................................................391 14.7. KerberosIV ....................................................................................................................................394 14.8. Kerberos5 ......................................................................................................................................402 14.9. OpenSSL.........................................................................................................................................411 14.10. VPN IPsec felett ...........................................................................................................................413 14.11. OpenSSH ......................................................................................................................................420 14.12. Az llomnyrendszerek hozzfrseit vezrl listk ....................................................................425

vii

14.13. A kls programok biztonsgi problminak gyelse................................................................427 14.14. A FreeBSD biztonsgi gyelmeztetsei .......................................................................................428 14.15. A fut programok nyilvntartsa..................................................................................................430 15. A jail alrendszer ..........................................................................................................................................432 15.1. ttekints........................................................................................................................................432 15.2. A jail alrendszerhez kapcsold fogalmak.....................................................................................432 15.3. Bevezets ........................................................................................................................................433 15.4. A jailek ltrehozsa s vezrlse ....................................................................................................434 15.5. Finomhangols s karbantarts.......................................................................................................435 15.6. A jailek alkalmazsa .......................................................................................................................437 16. Ktelez hozzfrs-vezrls (MAC) .........................................................................................................443 16.1. ttekints........................................................................................................................................443 16.2. A fejezet fontosabb fogalmai..........................................................................................................444 16.3. A MAC ismertetse ........................................................................................................................445 16.4. Bvebben a MAC cmkirl ...........................................................................................................446 16.5. A vdelem megtervezse ................................................................................................................451 16.6. A modulok belltsa ......................................................................................................................452 16.7. A seeotheruids MAC-modul...........................................................................................................452 16.8. A bsdextended MAC-modul...........................................................................................................453 16.9. Az ifoff MAC-modul ......................................................................................................................454 16.10. A portacl MAC-modul..................................................................................................................454 16.11. A partition MAC-modul ...............................................................................................................456 16.12. A tbbszint biztonsgi MAC-modul...........................................................................................457 16.13. A Biba MAC-modul .....................................................................................................................458 16.14. A LOMAC MAC-modul...............................................................................................................460 16.15. A Nagios elzrsa a MAC rendszerrel..........................................................................................461 16.16. A felhasznlk korltozsa ...........................................................................................................464 16.17. A hibk elhrtsa a MAC rendszerben ........................................................................................465 17. Biztonsgi esemnyek vizsglata ................................................................................................................468 17.1. ttekints........................................................................................................................................468 17.2. A fejezet fontosabb fogalmai..........................................................................................................468 17.3. A vizsglat tmogatsnak teleptse .............................................................................................469 17.4. A vizsglat belltsa ......................................................................................................................470 17.5. A vizsglati alrendszer hasznlata..................................................................................................473 18. Httrtrak...................................................................................................................................................476 18.1. ttekints........................................................................................................................................476 18.2. Az eszkzk elnevezsei ................................................................................................................476 18.3. Lemezek hozzadsa ......................................................................................................................477 18.4. RAID...............................................................................................................................................479 18.5. USB troleszkzk .......................................................................................................................484 18.6. Lzeres troleszkzk (CD-k) ltrehozsa s hasznlata .............................................................486 18.7. Lzeres troleszkzk (DVD-k) ltrehozsa s hasznlata ..........................................................492 18.8. Hajlkonylemezek ltrehozsa s hasznlata .................................................................................498 18.9. Szalagok ltrehozsa s hasznlata.................................................................................................499 18.10. Biztonsgi ments hajlkonylemezekre........................................................................................502 18.11. Mentsi stratgik.........................................................................................................................504 18.12. Alapvet tudnivalk a biztonsgi mentsrl.................................................................................504 18.13. Hlzat, memria s llomny alap llomnyrendszerek...........................................................512

viii

18.14. Az llomnyrendszerek pillanatkpei...........................................................................................514 18.15. Az llomnyrendszerek kvti .....................................................................................................515 18.16. A lemezpartcik titkostsa .........................................................................................................519 18.17. A lapozterlet titkostsa ............................................................................................................525 19. GEOM: A modulris lemezszervez rendszer ............................................................................................528 19.1. ttekints........................................................................................................................................528 19.2. A GEOM bemutatsa......................................................................................................................528 19.3. RAID0 - Cskozs...........................................................................................................................528 19.4. RAID1 - Tkrzs ..........................................................................................................................530 19.5. Eszkzk hlzati illesztse a GEOM-ban.....................................................................................533 19.6. A lemezes eszkzk cmkzse......................................................................................................533 19.7. Naplz UFS GEOM-on keresztl.................................................................................................536 20. Tmogatott llomnyrendszerek .................................................................................................................538 20.1. ttekints........................................................................................................................................538 20.2. A Z llomnyrendszer (ZFS) ..........................................................................................................538 21. A Vinum ktetkezel...................................................................................................................................546 21.1. ttekints........................................................................................................................................546 21.2. Kicsik a lemezeink..........................................................................................................................546 21.3. A hozzfrsi idk szk keresztmetszetei ......................................................................................546 21.4. Adatintegrits..................................................................................................................................548 21.5. A Vinum objektumai.......................................................................................................................550 21.6. Pldk .............................................................................................................................................551 21.7. Az objektumok elnevezse .............................................................................................................558 21.8. A Vinum belltsa .........................................................................................................................560 21.9. Rendszerindts Vinum-ktetrl .....................................................................................................562 22. Virtualizci ................................................................................................................................................567 22.1. ttekints........................................................................................................................................567 22.2. A FreeBSD mint vendg.................................................................................................................567 22.3. A FreeBSD mint gazda...................................................................................................................608 23. Honosts: Az I18N/L10N hasznlata s belltsa ....................................................................................610 23.1. ttekints........................................................................................................................................610 23.2. Az alapok ........................................................................................................................................610 23.3. A honosts hasznlata....................................................................................................................611 23.4. I18N programok fordtsa...............................................................................................................617 23.5. A FreeBSD honostsa adott nyelvekre..........................................................................................617 24. A FreeBSD frisstse s frissen tartsa .......................................................................................................621 24.1. ttekints........................................................................................................................................621 24.2. A FreeBSD frisstse ......................................................................................................................621 24.3. A Portgyjtemny frisstse a Portsnap hasznlatval ...................................................................628 24.4. A dokumentci frisstse...............................................................................................................629 24.5. A fejleszti g kvetse ..................................................................................................................634 24.6. A forrs szinkronizlsa .................................................................................................................638 24.7. Az alaprendszer jrafordtsa .........................................................................................................639 24.8. A forrsok kvetse tbb gppel ....................................................................................................655 25. DTrace .........................................................................................................................................................657 25.1. ttekints........................................................................................................................................657 25.2. Eltrsek az implementciban ......................................................................................................657 25.3. A DTrace tmogatsnak engedlyezse........................................................................................658

ix

25.4. A DTrace hasznlata.......................................................................................................................659 25.5. A D nyelv........................................................................................................................................661 IV. Hlzati kommunikci .....................................................................................................................................662 26. Soros vonali kommunikci........................................................................................................................663 26.1. ttekints........................................................................................................................................663 26.2. Bevezets ........................................................................................................................................663 26.3. Terminlok......................................................................................................................................668 26.4. Betrcszs szolgltatsok..............................................................................................................673 26.5. A betrcszs szolgltatsok hasznlata.........................................................................................681 26.6. A soros vonali konzol belltsa .....................................................................................................685 27. A PPP s a SLIP ..........................................................................................................................................693 27.1. ttekints........................................................................................................................................693 27.2. A felhasznli PPP alkalmazsa.....................................................................................................693 27.3. A rendszerszint PPP alkalmazsa .................................................................................................706 27.4. PPP kapcsolatok hibaelhrtsa ......................................................................................................713 27.5. A PPP hasznlata Ethernet felett (PPPoE)......................................................................................716 27.6. PPP ATM felett (PPPoA) ...............................................................................................................718 27.7. A SLIP hasznlata...........................................................................................................................721 28. Elektronikus levelezs.................................................................................................................................730 28.1. ttekints........................................................................................................................................730 28.2. Az elektronikus levelezs hasznlata..............................................................................................730 28.3. A sendmail belltsa .....................................................................................................................733 28.4. A levltovbbt gynk megvltoztatsa......................................................................................735 28.5. A hibk elhrtsa ...........................................................................................................................737 28.6. Komolyabb tmk...........................................................................................................................741 28.7. SMTP s az UUCP .........................................................................................................................743 28.8. Csak klds belltsa.....................................................................................................................745 28.9. Levelezs betrcszs kapcsolattal.................................................................................................746 28.10. Az SMTP hitelestse ...................................................................................................................747 28.11. Levelez kliensek .........................................................................................................................748 28.12. A fetchmail hasznlata..................................................................................................................755 28.13. A procmail hasznlata...................................................................................................................756 29. Hlzati szerverek .......................................................................................................................................758 29.1. ttekints........................................................................................................................................758 29.2. Az inetd szuperszerver ...............................................................................................................758 29.3. A hlzati llomnyrendszer (NFS) ...............................................................................................762 29.4. Hlzati informcis rendszer (NIS/YP)........................................................................................769 29.5. A hlzat automatikus belltsa (DHCP) ......................................................................................785 29.6. Nvfelolds (DNS) .........................................................................................................................790 29.7. Az Apache webszerver ...................................................................................................................803 29.8. llomnyok tvitele (FTP) .............................................................................................................808 29.9. llomny- s nyomtatsi szolgltatsok Microsoft Windows kliensek szmra (Samba).............810 29.10. Az rk egyeztetse az NTP hasznlatval...................................................................................812 29.11. Tvoli gpek naplzsa syslogd hasznlatval ..........................................................................815 30. Tzfalak.......................................................................................................................................................820 30.1. Bevezets ........................................................................................................................................820 30.2. Rviden a tzfalakrl......................................................................................................................820

30.3. Tzfalak ..........................................................................................................................................821 30.4. Az OpenBSD csomagszrje (PF) s az ALTQ .............................................................................821 30.5. Az IPFILTER (IPF) tzfal ..............................................................................................................825 30.6. IPFW...............................................................................................................................................844 31. Egyb halad hlzati tmk.......................................................................................................................864 31.1. ttekints........................................................................................................................................864 31.2. tjrk s az tvlaszts.................................................................................................................864 31.3. Vezetk nlkli hlzatok ...............................................................................................................871 31.4. Bluetooth.........................................................................................................................................890 31.5. Hlzati hidak.................................................................................................................................898 31.6. Linkek sszefzse s hibatrse ...................................................................................................905 31.7. Lemez nlkli mkds..................................................................................................................909 31.8. ISDN ...............................................................................................................................................916 31.9. Hlzati cmfordts........................................................................................................................920 31.10. Prhuzamos vonali IP (PLIP) .......................................................................................................924 31.11. Az IPv6 .........................................................................................................................................926 31.12. Az Aszinkron adattviteli md (ATM) .........................................................................................930 31.13. A Kzs cm redundancia protokoll (CARP) ...............................................................................932 V. Fggelk ................................................................................................................................................................935 A. A FreeBSD beszerzse .................................................................................................................................936 A.1. CD s DVD kiadk ..........................................................................................................................936 A.2. FTP oldalak......................................................................................................................................938 A.3. BitTorrent.........................................................................................................................................949 A.4. Anonim CVS....................................................................................................................................949 A.5. A CTM hasznlata ...........................................................................................................................951 A.6. A CVSup hasznlata ........................................................................................................................955 A.7. CVS cmkk.....................................................................................................................................979 A.8. AFS oldalak .....................................................................................................................................985 A.9. Rsync oldalak...................................................................................................................................985 B. Irodalomjegyzk ...........................................................................................................................................988 B.1. A FreeBSD-rl szl knyvek s folyiratok..................................................................................988 B.2. Felhasznli kziknyvek ................................................................................................................989 B.3. Rendszeradminisztrtori kziknyvek .............................................................................................990 B.4. Programozi kziknyvek................................................................................................................990 B.5. Az opercis rendszerek bels mkdsrl ...................................................................................991 B.6. Biztonsgrl szl rsok .................................................................................................................991 B.7. Hardverrel foglalkoz rsok............................................................................................................992 B.8. UNIX trtnelem..............................................................................................................................992 B.9. Magazinok s folyiratok.................................................................................................................992 C. Forrsok az interneten...................................................................................................................................994 C.1. Levelezsi listk ...............................................................................................................................994 C.2. Usenet hrcsoportok .......................................................................................................................1013 C.3. Vilghls szolgltatsok...............................................................................................................1014 C.4. E-mail cmek ..................................................................................................................................1022 D. PGP-kulcsok...............................................................................................................................................1023 D.1. Tisztsgviselk...............................................................................................................................1023 D.2. A Core Team tagjai ........................................................................................................................1023

xi

D.3. Fejlesztk .......................................................................................................................................1025 A FreeBSD-s szakkifejezsek gyjtemnye ..........................................................................................................1089 Trgymutat............................................................................................................................................................1114 Vgsz.......................................................................................................................................................................1126

xii

A tblzatok listja
2-1. Plda egy eszkzleltrra ........................................................................................................................................12 2-2. Az els lemez partciinak kiosztsa.....................................................................................................................37 2-3. Tbb lemez partciinak kiosztsa ........................................................................................................................38 2-4. FreeBSD 6.X s 7.X ISO image-ek nevei s jelentsei..........................................................................................89 3-1. Lemezes eszkzk kdjai ....................................................................................................................................109 18-1. A zikai lemezek elnevezsnek szablyai .......................................................................................................476 21-1. Vinum erezsek..................................................................................................................................................551 26-1. A DB-25 DB-25 kzti null-modem kbel .........................................................................................................664 26-2. A DB-9 DB-9 kzti null-modem kbel .............................................................................................................664 26-3. DB-9 DB-25 kzti null-modem kbel ...............................................................................................................665 26-4. A jelek neve .......................................................................................................................................................673 31-1. A prhuzamos kbel hlzati hasznlatra alkalmas bektse ...........................................................................924 31-2. Fenntartott IPv6 cmek ......................................................................................................................................927

xiii

Elsz
Kiknek sznjuk ezt a knyvet
A FreeBSD-t mg nem ismerk felfedezhetik, hogy a knyv els rsze a FreeBSD teleptsnek folyamatn vezeti keresztl a felhasznlt, valamint rintlegesen bemutatja az ezt altmaszt UNIX-os alapfogalmakat s szablyokat. Ennek a rsznek a vgigjrsa nem kvn tbbet, csupn egy kis felfedez kedvet, illetve a menet kzben bemutatott j fogalmak befogadst. Ha tljutottunk rajta, a kziknyv msodik, jval terjedelmesebb rsze a FreeBSD-t hasznl rendszergazdk szmra nyjt mindenfle tmban minden rszletre kiterjed referencit. Ezek kzl egyes fejezetek elvrnak nmi elzetes felkszlst, amelyet minden fejezet ttekintsben emlteni is fogunk. Tovbbi informcikrt olvassuk t a B Fggelket.

Vltoztatsok a harmadik kiads ta


A kziknyv jelenleg interneten elrhet vltozata szmtalan nkntes ltal az utbbi 10 vben vgzett egyttes erfesztseinek eredmnyeit tkrzi. A 2004-ben kt ktetben megjelentetett harmadik kiads ta a kvetkez fontosabb vltozsok trtntek:

25 fejezet: kszlt egy j fejezet a DTrace nev teljestmny-elemz eszkzrl. 20 fejezet: ebben a fejezetben a FreeBSD s a klnbz ms rendszerekhez fejlesztett llomnyrendszerek viszonyt mutatjuk be, tbbek a Sun ZFS megoldst. 17 fejezet: ez a fejezet FreeBSD j biztonsgi fejlesztseit foglalja ssze s mutatja be a hasznlatukat. 22 fejezet: ebben az j fejezetben a FreeBSD rendszerhez s rajta elrhet klnbz virtualizcis technolgikrl szlunk.

Vltoztatsok a msodik kiads (2004) ta


A harmadik kiads a FreeBSD Dokumentcis Projekt tagjainak kt vi kemny munkjnak gymlcse. A nyomtatott vltozat mr olyan nagyra ntt, hogy kt kln ktetben kellett kiadnunk. Az albbi fontosabb vltoztatsok jelentek meg ebben az j kiadsban:

11 fejezet: a belltsra s nomhangolsra vonatkoz rszeket bvtettk az ACPI energia- s erforrs gazdlkodsrl szl rszekkel, a cron rendszerprogrammal, illetve mg tbb, a rendszermag nomhangolst elsegt opci lersval. 14 fejezet: a biztonsgrl szl rszt bvtettk a virtulis magnhlzatokrl (VPN-ekrl), llomnyrendszeri hozzfrs-vezrlsi listkrl (ACL-ek) szl elemekkel, valamint biztonsgtechnikai tancsokkal. 16 fejezet: a ktelez hozzfrs-vezrlsrl (MAC-rl) szl fejezet teljesen j ebben a kiadsban. Bemutatja, mi is az a MAC s hogyan hasznosthat egy FreeBSD-s rendszer biztonsgoss ttelben. 18 fejezet: a httrtrakat tartalmaz rszt bvtettk az USB-trakrl, llomnyrendszeri pillanatkpeirl, lemezkvtkrl, llomny- s hlzat alap llomnyrendszerekrl, tovbb a titkostott partcikrl szl rszekkel.

xiv

Elsz

21 fejezet: a Vinum egy j fejezet ebben a kiadsban. Bemutatja a Vinum logikaiktet-kezel hasznlatt, aminek segtsgvel eszkzfggetlen mdon hozhatunk ltre logikai lemezeket, szoftveres RAID-0, RAID-1 s RAID-5 kongurcikat. Bekerlt egy hibaelhrtsrl szl rsz a 27 fejezet PPP s SLIP lershoz. 28 fejezet: az elektronikus levelezst ismertet rszt bvtettk a klnfle levltovbbt rendszerekrl, az SMTP hitelestsrl, UUCP protokollrl, a fetchmail s procmail programokrl szl elemekkel, valamint egyb, haladkat megclz tmkkal. 29 fejezet: a hlzati szervereket ismertet rsz egy teljesen j fejezet ebben a kiadsban. Benne megtallhat az Apache HTTP szerver, az ftpd szerver, illetve a Microsoft Windows-os kliensek szmra megfelel Samba szerver belltsa. Az rthetsg kedvrt egyes rszek tkerltek ide a 31 fejezet, vagyis a halad hlzati tmkat trgyal fejezetbl. 31 fejezet: a halad hlzati tmkat tartalmaz rszt kiegsztettk a FreeBSD s a Bluetooth eszkzk kapcsolatrl, a vezetk nlkli hlzatokrl s az aszinkron adattvitel mdrl (ATM-rl) szl ismeretekkel. Ltrehoztunk egy szjegyzket abbl a clbl, hogy a knyvben hasznlt dencik s szakkifejezsek egyetlen kzponti helyen ssze legyenek foglalva. Szmos eszttikai javtst eszkzltnk a knyvben tallhat brkon s tblzatokon.

Vltoztatsok az els kiads (2001) ta


A msodik kiads a FreeBSD Dokumentcis Projekt tagjainak kt vi komoly munkjnak eredmnye. Az albbi fontosabb vltoztatsok jelennek meg ebben a kiadsban:

Bekerlt egy teljes trgy- s nvmutat. Mindegyik ASCII-brt grakusak vltottk fel. Mindegyik fejezet elejre odakerlt egy ltalnos ttekints, ami egy rvid sszefoglalst ad a fejezet tartalmrl, valamint kzli az elolvasshoz szksges ismereteket. A tartalmat felosztottuk logikailag hrom rszre: Bevezets, Rendszeradminisztrci s Fggelk. A 2 fejezetet (A FreeBSD teleptse) teljesen jrartuk s sok-sok illusztrci is hozzadsra kerlt a knnyebb megrts rdekben. A 3 fejezet (A UNIX alapjai) kiegszlt a fut programokrl, dmonokrl s jelzsekrl szl tovbbi hasznos informcikkal. A 4 fejezetet (Alkalmazsok teleptse) bvtettk a binris csomagkezelsrl szl tovbbi ismeretekkel. A 5 fejezet (Az X Window System) teljes jrarson ment t, aminek folyamn igyekeztnk nagyobb hangslyt helyezni a modern asztali technolgik, mint pl. a KDE s GNOME XFree86 4.X-en trtn hasznlatnak lersra. A 12 fejezet (A FreeBSD rendszerindtsi folyamata) kibvlt. A 18 fejezet (Httrtrak) kt, korbban kln lev fejezet, a Lemezek s Biztonsgi mentsek sszeolvasztsbl jtt ltre. gy reztk, a bennk helyet kapott tmkat sokkal knnyebb gy megrteni, ha egyetlen fejezetben trgyaljuk ezeket. Egy (hardveres s szoftveres) RAID-rl szl rsz is belekerlt. A 26 fejezet (Soros vonali kommunikci) teljes tszervezsre kerlt, valamint a FreeBSD 4.X/5.X verzikhoz igaztottuk.

xv

Elsz

A 27 fejezet (A PPP s a SLIP) lnyegesen sokat fejldtt. Szmos j rsz kerlt a 31 fejezetbe (Egyb halad hlzati tmk). A 28 fejezet (Elektronikus levelezs) kibvlt a sendmail belltsrl tartalmaz jabb informcikkal. A 10 fejezet (Binris Linux kompatibilits) kiegszlt az Oracle s a SAP R/3 teleptst bemutat rszekkel. Az albbi j tmk kerltek trgyalsra a msodik kiadsban:

Bellts s nomhangols (11 fejezet) Multimdia (7 fejezet)

A knyv felptse
A knyvet ngy logikailag elklnl rszre osztottuk fel. Az els, Bevezets cm rszben bemutatjuk a FreeBSD teleptst s hasznlatnak alapjait. Elgondolsunk szerint az itt szerepl fejezeteket sorban rdemes elolvasni, esetenknt kihagyni azokat, amelyek mr az olvas szmra ismert tmkat dolgoznak fel. A msodik, Gyakori feladatok cm rszben megismerhetjk a FreeBSD nhny gyakorta hasznlt lehetsgt. Ez a rsz, valamint az ezt kvet sszes tbbi tetszleges sorrendben olvashat. Mindegyik fejezet egy rvidke sszefoglalssal kezddik, amely ismerteti, az olvastl milyen jelleg tapasztalatokat vr el a fejezet megrtse. Clja, hogy segtsen az olvasnak megtallni a szmra rdekes tmkat. A harmadik, Rendszeradminisztrci cm rszben rendszergazdai feladatokat trgyalunk. A negyedik, Hlzati kommunikci cm rszben hlzatok s szerverek zemeltetsvel kapcsolatos ismereteket foglaltunk ssze. Vgl, az tdik rsz tartalmazza a fggelket s az irodalomjegyzket, hivatkozsokat. 1 fejezet: Bemutatkozs A FreeBSD bemutatkozik az j felhasznlknak. Sz esik a FreeBSD Projekt trtnetrl, clkitzseirl s a fejlesztsi modelljrl. 2 fejezet: A FreeBSD teleptse Vgigvezetjk a felhasznlt a teleptsi folyamat egszn. Bizonyos rendhagy krdsek, mint pldul a soros konzolon keresztl trtn telepts is tertkre kerlnek. 3 fejezet: A UNIX alapjai Sorra vesszk a FreeBSD opercis rendszer alapvet parancsait s lehetsgeit. Amennyiben mr jrtasak vagyunk valamilyen szinten a Linux vagy ms UNIX-tpus rendszerek hasznlatban, nyugodtan kihagyhatjuk ezt a fejezetet. 4 fejezet: Alkalmazsok teleptse, csomagok s portok Megismerhetjk, miknt tudunk kls cgek ltal fejlesztett alkalmazsokat telepteni a FreeBSD Portgyjtemnynek (FreeBSD Ports Collection) vagy a megszokott binris csomagok hasznlatn keresztl. 5 fejezet: Az X Window System ltalnos bemutatsra kerl az X Window System, valamint az X11 hasznlata a FreeBSD-n. Ezenkvl olvashatunk az elterjedtebb munkakrnyezetekrl, mint pl. a KDE s a GNOME.

xvi

Elsz 6 fejezet: Asztali alkalmazsok Felsoroljuk az ismertebb asztali alkalmazsokat: webbngszket s alkalmazi programcsomagokat, s bemutatjuk, hogyan teleptsk ezeket FreeBSD-re. 7 fejezet: Multimdia Megtudhatjuk, hogyan lltsuk be a zene- s videolejtszst rendszernkn. Emellett olvashatunk nhny multimdis alkalmazs hasznlatrl is. 8 fejezet: A FreeBSD rendszermag testreszabsa Kifejtjk, mirt lehet szksgnk egy j rendszermag kongurlsra, s rszletesen vgigjrjuk egy rendszermag kongurcijnak, fordtsnak s teleptsnek lpseit. 9 fejezet: Nyomtats Ismertetjk, hogyan lehet nyomtatkat hasznlni FreeBSD alatt, belertve a munkalapok ksztsnek mikntjt, a nyomtathasznlat nyilvntartst s a kezdeti belltsokat. 10 fejezet: Binris Linux kompatibilits Megismerhetjk a FreeBSD binris Linux kompabilitshoz kapcsold lehetsgeket. Ezenfell rszletekre is kitr teleptsi tmutatt tallhatunk klnbz npszer linuxos alkalmazsokhoz, mint pldul az Oracle, SAP R/3 s a Mathematica. 11 fejezet: Bellts s nomhangols Megismerhetjk a FreeBSD azon paramtereit, amelyek megfelel lltsval a rendszergazdk a lehet legtbbet kpesek kihozni FreeBSD rendszerkbl. Ezenkvl bemutatsra kerl a FreeBSD-ben hasznlt szmos kongurcis llomny, valamint hogy ezeket hol tallhatjuk meg. 12 fejezet: A FreeBSD rendszerindtsi folyamata Tartalmazza a FreeBSD rendszerindtsi folyamatnak lerst, s elmagyarzza, miknt lehet ezt vezrelni a kongurcis belltsok segtsgvel. 13 fejezet: Felhasznlk s hozzfrsek alapvet kezelse Bemutatja a felhasznli kok ltrehozst s kezelst. Emellett megemlti a felhasznlkra rvnyesthet erforrs-megszortsokat, illetve egyb kkezelsi feladatokat. 14 fejezet: Biztonsg Bemutatsra kerl a FreeBSD rendszernk biztonsgoss ttelre alkalmas szmos klnfle eszkz, tbbek kzt a Kerberos, IPsec s az OpenSSH. 15 fejezet: A jail alrendszer Megtudhatjuk, hogyan mkdik az alkalmazsok elszigetelsrt felels jail alrendszer, valamint miben emelkedik ki a FreeBSD-ben is megtallhat hagyomnyos chroot megoldssal szemben. 16 fejezet: Ktelez hozzfrs-vezrls Megismerhetjk a ktelez hozzfrs-vezrlst (MAC-et), valamint azt, hogyan is tudjuk felhasznlni egy FreeBSD-s rendszer biztonsga rdekben.

xvii

Elsz 17 fejezet: Biztonsgi esemnyek vizsglata Kiderl, mit jelent a FreeBSD-ben az esemnyek vizsglata, illetve mindez hogyan telepthet, kongurlhat s miknt tudjuk a vizsglatok adatait kielemezni vagy felgyelni. 18 fejezet: Httrtrak Bemutatsra kerl, miknt kezelhetjk a httrtrolkat s llomnyrendszereket a FreeBSD-ben. Ide tartoznak a zikai lemezek, RAID-tmbk, optikai s szalagos egysgek, memria alap lemezek s a hlzati llomnyrendszerek. 19 fejezet: GEOM, a modulris lemezszervez rendszer Megismerhetjk a FreeBSD-ben jelenlev GEOM alrendszert s az ltala tmogatott klnbz RAID-szintek belltst. 20 fejezet: Tmogatott llomnyrendszerek A FreeBSD opercis rendszer szmra nem natv llomnyrendszerekkel foglalkozik, pldul a Sun Z llomnyrendszervel. 21 fejezet: A Vinum ktetkezel Megtudhatjuk, hogyan hasznljuk a Vinumot, a logikaiktet-kezelt, amely eszkzfggetlen logikai lemezeket, szoftveres RAID-0, RAID-1 s RAID-5 kongurcikat biztost. 22 fejezet: Virtualizci Tartalmazza a virtualizcis rendszerek ltal felknlt lehetsgek bemutatst s hasznlatt a FreeBSD-vel. 23 fejezet: Honosts, az I18N/L10N hasznlata s belltsa Bemutatja, hogyan hasznljuk a FreeBSD-t a rendszer s az alkalmazsok szintjn az angoltl eltr nyelveken. 24 fejezet: A FreeBSD frisstse s frissen tartsa Elmagyarzza, mik az alapvet klnbsgek a FreeBSD-STABLE, FreeBSD-CURRENT verzik, valamint a FreeBSD kiadsok kztt. Bemutatja, mely felhasznlk lehetnek azok, akik a legtbbet tudnak protlni egy fejleszti rendszer hasznlatbl, illetve krvonalazza ennek folyamatt. Tovbb rviden sszefoglalja azokat az eszkzket, amelyekkel a felhasznlk frissthetik a rendszerket a biztonsgi s kritikus hibk javtsakor. 25 fejezet: DTrace A Sun DTrace eszkznek belltst s hasznlatt mutatja be. A segtsgvel megvalstott dinamikus nyomkvetssel lehetsgnk nylik vals idej elemzseken keresztl felderteni a klnbz teljestmnybeli problmkat. 26 fejezet: Soros vonali kommunikci Kifejti, hogyan csatlakoztassunk terminlt vagy modemet a FreeBSD rendszernkhz, ha behv vagy betrcszs kapcsolatot szeretnnk ltrehozni. 27 fejezet: A PPP s a SLIP Bemutatja, miknt tudjuk PPP-n, SLIP-en s Etherneten keresztli PPP-vel (PPPoE) sszekapcsolni a FreeBSD-t tvoli rendszerekkel.

xviii

Elsz 28 fejezet: Elektronikus levelezs Megismerhetjk egy elektronikus levelez szerver klnfle komponenseit, s elmlyedhetnk az egyik leghresebb levelezszerver-szoftver, a sendmail hasznlatban s felletesebb kongurlsban. 29 fejezet: Hlzati szerverek Rszletekbe menen s kongurcis pldkkal mutatja be, miknt tudunk hlzati llomnyrendszer kiszolglnak, nvszervernek, hlzati informcis rendszer kiszolglnak vagy idszinkronizcis szervernek belltani egy FreeBSD-s szmtgpet. 30 fejezet: Tzfalak Kifejti a szoftveres tzfalak mgtt ll lozt, valamint rszletesen trgyalja a klnbz, FreeBSD-n elrhet tzfalak kongurcijt. 31 fejezet: Egyb halad hlzati tmk Feldolgoz szmos hlzati tmt, belertve az internet kapcsolat helyi hlzaton (LAN-on) keresztl trtn megosztst tbb szmtgp kztt, halad forgalomirnytsi krdseket, vezetk nlkli hlzatok belltst, Bluetooth, ATM, IPv6 s sok minden mssal kapcsolatos informcikat. A Fggelk: A FreeBSD beszerzse Felsorolja azokat a forrsokat, ahonnan a FreeBSD CD-n vagy DVD-n beszerezhet, valamint azokat a honlapokat, ahonnan letlthet vagy telepthet a FreeBSD. B Fggelk: Irodalomjegyzk A knyv sok tekintetben olyan tmkat is rint, amelyek felkelthetik az olvas rdekldst s ezek kapcsn bvebb magyarzatra vgyik. Az irodalomjegyzkben ezrt sszertunk szmos remek knyvet, amelyekre hivatkozunk is a fejezetekben. C Fggelk: Erforrsok az interneten Tartalmazza a FreeBSD felhasznlk szmra elrhet azon frumokat, ahov bekldhetik krdseiket, illetve szakmai jelleg trsalgsokat folytathatnak. D Fggelk: PGP-kulcsok Az egyes FreeBSD fejlesztk PGP-kulcsait sorolja fel.

A knyvben alkalmazott konvencik


A knnyebb s egysgesebb olvashatsg kedvrt az albbi konvencikat igyekeztnk kvetni a knyvben.

Tipograi konvencik
Dlt A dlt betket llomnynevek, URL-ek, kiemelt szvegek s a szakmai kifejezsek els elfordulsakor hasznljuk.

xix

Elsz
rgpszer

Az rgpszer betket hibazenetek, parancsok, krnyezeti vltozk, portok, szmtgpek, felhasznlk, csoportok, eszkzk nevei, vltozk s kdrszletek esetn hasznljuk. Flkvr A flkvr betket alkalmazsok, parancsok s billentyk megnevezsnl hasznljuk.

Felhasznli bevitel
A billentyket flkvrrel rjuk, hogy kiemelkedjenek a szveg tbbi rszbl. Az egyszerre megnyomni kvnt billentyk kombincijt a + jellssel adjuk meg, mint pldul: Ctrl+Alt+Del Ez azt jelenti, hogy a felhasznlnak a Ctrl, Alt s Del billentyket egyszerre kell lenyomnia. Azokat a billentyket, amelyeket egyms utn kell lenyomni, vesszvel vlasztjuk el, pldul: Ctrl+X, Ctrl+S Ez teht azt jelenti, hogy a felhasznlnak elszr a Ctrl s X billentyket, majd a Ctrl s S billentyket kell egyszerre lenyomnia.

Pldk
A E:\> kijelzssel kezdd pldk egy MS-DOS parancsot jellnek. Ha mskppen nem emltjk, ezeket a parancsokat a modern Microsoft Windows-okban tallhat Parancssorbl kell kiadni.
E:\> tools\fdimage floppies\kern.flp A:

A # kijelzssel kezdd pldk a FreeBSD-ben rendszeradminisztrtori jogokat ignyl parancsok kiadst jelentik. Ehhez bejelentkezhetnk a root felhasznlval, vagy felvethetjk a rendszeradminisztrtori jogokat a sajt felhasznli kunkbl a su(1) hasznlatval is.
# dd if=kern.flp of=/dev/fd0

A % kijelzssel kezdd pldk olyan parancsra utalnak, amelyeket egy norml felhasznli kbl rdemes kiadni. Hacsak mskppen nem jelezzk, a C-shell szintaxist hasznljuk a krnyezeti vltozk s egyb parancsok megadsakor.
% top

Ksznetnyilvnts
A knyv, amit itt most olvashatunk, tbb szz ember egyttes munkjnak eredmnye a vilg minden tjrl. Akr csak elgpelseket javtottak, vagy komplett fejezeket adtak hozz, minden hozzjruls hasznosnak bizonyult. Emellett sok cg anyagilag is tmogatta a knyv fejldst, lehetv tve ezltal, hogy a szerzk teljes munkaidben dolgozhassanak rajta, pnzt kapjanak az rsaikrt stb. Leginkbb a BSDi (amelyet ksbb felvsrolt a Wind River Systems (http://www.windriver.com)) adott teljes munkaids zetst a FreeBSD Dokumentcis Projekt tagjainak a knyv gondozshoz, amely vgl az els nyomtatott kiads megjelentetshez vezetett 2000 mrciusban (ISBN 1-57176-241-8). A Wind River Systems ezt kveten tovbbi szerzket is nanszrozott a nyomtatsi-szedsi

xx

Elsz infrastruktra tovbbfejlesztshez s a knyv tartalmnak bvtshez. Ennek eredmnye lett a msodik nyomtatott kiads, amely 2001 novemberben jelent meg (ISBN 1-57176-303-1). 2003 2004 folyamn a FreeBSD Mall, Inc. (http://www.freebsdmall.com) tmogatott anyagilag szmos hozzjrult a kziknyvet illet munkjrt, a harmadik nyomtatott kiadsra trtn elksztsben.

xxi

I. Bevezets
A FreeBSD kziknyv ezen rsze azoknak a felhasznlknak s rendszergazdknak szl, akik mg nem ismerik a FreeBSD-t. A fejezetek:

Bemutatjk a FreeBSD-t. Vgigvezetnek a telepts folyamatn. Ismertetik a UNIX alapjait. Megmutatjk, hogyan teleptsk a FreeBSD-hez elrhet megannyi kls alkalmazst. Megismerhetjk az X-et, a UNIX-os ablakozrendszert, s rszleteiben is lthatjuk, miknt kongurljunk be egy munkakrnyezetet, amellyel knyelmesebb vlik a munka.

A fejezetek megrsa sorn arra trekedtnk, hogy minl kevesebb hivatkozst tegynk a knyv ksbb kvetkez rszeire, gy ennek ksznheten a kziknyv ezen rsze anlkl olvashat, hogy kzben folyamatosan elre-htra kellene lapozgatnunk benne.

Fejezet 1. Bemutatkozs
tszerkesztette, tszervezte s bizonyos rszeit tdolgozta: Jim Mock.

1.1. ttekints
Ksznjk, hogy rdekldik a FreeBSD irnt! A fejezet a FreeBSD Projektet tbb klnbz vonatkozsban mutatja be: a trtnett, a cljait, a fejlesztsi modelljt s gy tovbb. A fejezet elolvassa sorn megismerjk:

hogyan viszonyul a FreeBSD ms opercis rendszerekhez; a FreeBSD Projekt trtnett; a FreeBSD Projekt clkitzseit; a FreeBSD nylt forrskd fejlesztsi modelljnek alapjait; s termszetesen: hogyan is keletkezett a FreeBSD nv.

1.2. dvzljk a FreeBSD-ben!


A FreeBSD egy 4.4BSD-Lite alap opercis rendszer Intel (x86 s Itanium), AMD64, Alpha, Sun UltraSPARC szmtgpekre. Jelenleg is portols alatt ll tovbbi architektrkra. Olvashatunk a FreeBSD trtnetrl vagy ppen az aktulis kiadsrl. Ha szeretnnk hozzjrulni a Projekt fejldshez (forrskd, hardver vagy pnz), olvassuk el a Hozzjruls a FreeBSD-hez (http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/contributing/index.html) cm cikket (angolul).

1.2.1. Mire kpes a FreeBSD?


A FreeBSD szmos gyelemre mlt tulajdonsgot tudhat magnak. Ezek kzl nhny:

A preemptv temezs dinamikusan szablyozhat prioritsok segtsgvel biztostja a szmtgp felhasznlk s alkalmazsok kzti nom s igazsgos megosztst, akr a legnagyobb terhels esetn is. Tbbfelhasznls rendszerknt lehetv teszi, hogy sokan tudjk a FreeBSD-t egyszerre tbbfle dologra is hasznlni. Pldul, ez azt jelenti, hogy a rendszerhez csatlakoztatott klnbz perifrik, mint pldul a nyomtatk s szalagos egysgek, megfelelen sztoszthatak a felhasznlk kztt vagy ppen a hlzaton, s az egyes erforrsokhoz a felhasznlk vagy azok egy csoportja csak korltozott mdon frhetnek hozzjuk, elkerlve ezzel a rendszer szmra ltfontossg erforrsok tlterhelst. A TCP/IP hlzati protokoll gyors s megbzhat implementcija, illetve a legfontosabb ipari szabvnyok, mint az SCTP, DHCP, NFS, NIS, PPP, SLIP, IPsec s IPv6 tmogatsa. Ezltal egy FreeBSD-s szmtgp knnyedn kpes egyttmkdni ms rendszerekkel vagy akr vllalati szerverknt is zemelni. Megbirkzik az NFS (Network File System, tvoli llomnyelrs) s az elektronikus levelezs megszervezsvel ugyangy, ahogy a vllalatunk internetes elvrsaival a WWW, FTP s forgalomirnytsi protokollokon keresztl s tzfal irnti (biztonsgi) ignyeivel is.

Fejezet 1. Bemutatkozs

A memriavdelem megvalstsa gondoskodik rla, hogy az alkalmazsok (vagy a felhasznlk) ne zavarjk egymst. Az egyik alkalmazs sszeomlsa nincs kihatssal a rendszerben fut sszes tbbire. A FreeBSD egy 32 bites opercis rendszer (az Alpha, Itanium, AMD64 s UltraSPARC architektrkon pedig 64 bites), amelyet mr a kezdetektl fogva annak terveztek. A X Window System ipari szabvnya (X11R7) alapjn szolgltatja a grakus felhasznli felletet (GUI) brmelyik VGA-krtyn s monitoron, illetve annak teljes forrskdja is elrhet. Binris szint kompatibilits a Linuxra, SCO-ra, SVR4-re, BSDI-re s NetBSD-re ksztett programok nagy rszvel. Futtatsra ksz alkalmazsok ezrei rhetek el a FreeBSD port- s csomaggyjtemnyben. Mirt bjnnk az internetet rtk, ha mindent egy helyen is megtallhatunk? Tovbbi knnyen portolhat alkalmazsok ezrei llnak rendelkezsre az interneten. A FreeBSD forrskdja kompatibilis a legtbb elterjedt kereskedelmi UNIX rendszervel, aminek ksznheten az alkalmazsok nagy rsze csak kevs mdostst ignyel a fordtshoz, mr amennyiben erre egyltaln szksg van. Az igny szerinti lapozssal mkd virtulis memria s egyestett VM/puffer gyorsttr gy lett kialaktva, hogy hatkonyan kiszolglja a nagyobb tvgy alkalmazsokat, mikzben a tbbi felhasznl szmra tovbbra is reakcikpes marad. Az SMP tmogatsa a tbb processzorral rendelkez szmtgpek szmra. C, C++ s Fortran fejleszti eszkzk szles trhza hasznlhat. Kutatshoz s fejlesztshez ms egyb programozsi nyelvek is elrhetek a portok s csomagok segtsgvel. Az egsz rendszer forrskdjnak meglte lehetv teszi, hogy a legnagyobb fok irnytst lvezhessk a krnyezetnk felett. Mirt is bznnk magunkat egy zrt rendszert fejleszt cgre, mikor lehetne egy igazn nylt rendszernk? Nagy mennyisg internetes dokumentci. Mg sok minden ms!

A FreeBSD Kaliforniai Egyetem (Berkeley) Szmtgpes rendszerek kutatcsoportja ltal fejlesztett 4.4BSD-Lite kiadsn alapszik s polja a BSD-rendszerek fejlesztsnek jellegzetes hagyomnyait. Tl a kutatcsoport kivteles munkjn, a FreeBSD Projekt tbb ezernyi rt szentelt arra, hogy a legtbbet hozza ki a rendszerbl mind a teljestmnyt, mind pedig a vals letben felbukkan terhelsi helyezetekben trtn helytllst illeten. Ahogy a legnagyobb piaci risok igyekeznek egy hasonl kpessg, teljestmny s megbzhatsg PC-s opercis rendszert kifejleszteni, gy a FreeBSD mr most felajnlja ezeket! Kizrlag csak a kpzeletnk szabhat gtat annak, hogy mire is tudjuk hasznlni a FreeBSD-t. Szoftverfejlesztstl kezdve, a gyri automatizlson s kszletnyilvntartson t a mholdas antennk tjolsig szinte mindenre: ha ezt eddig egy kereskedelmi UNIX-szal is meg tudtuk tenni, akkor nagyon valszn, hogy a FreeBSD-vel is kpesek lesznk erre! A FreeBSD ezen fell nagyban protl a vilgban tallhat klnbz kutatkzpontok s egyetemek ltal fejlesztett, kivl minsg alkalmazsok ezreibl, melyek gyakorta olcsn vagy ingyen elrhetek. Kereskedelmi alkalmazsok is egyre nagyobb szmban kpviseltetik magukat minden nap. Mivel a FreeBSD forrskdja ltalnosan elrhet, a rendszer szinte tetszleges mrtkben testreszabhat a klnleges elvrsokat tmaszt alkalmazsok vagy projektek szmra. Ez a nagyobb kereskedelmi fejlesztk opercis rendszereivel majdnem teljesen elkpzelhetetlen. me csupn nhny pldja azon alkalmazsoknak, melyek jelenleg is FreeBSD-t hasznlnak:

Fejezet 1. Bemutatkozs

Internetes szolgltatsok: A FreeBSD-be ptett szilrd TCP/IP alap hlzatkezels klnfle internetes szolgltatsok szmra teszi idelis platformm:

FTP szerverek World Wide Web szerverek (hagyomnyos vagy biztonsgos [SSL]) IPv4 s IPv6 forgalomirnyts Tzfalak s NAT (IP maszkols), tjrk Elektronikus levelez szerverek USENET hrrendszer s zenfal Sok minden ms...

A FreeBSD hasznlathoz kezdetben elegend egy olcs 386-os PC, melyet a vllalkozsunk fejldsvel szpen fel tudunk hozni egy RAID-del elltott ngyprocesszoros Xeon rendszerig.

Oktats: Esetleg informatikval vagy mszaki informatikval foglalkozik? Nem is lehetne jobban a FreeBSD ltal felknlt lmnyeken kvl mshogy megismerkedni elskzbl az opercis rendszerek, szmtgpes architektrk s hlzatok mkdsvel! Rengeteg szabadon hasznlhat mszaki, matematikai s grakai tervez programcsomag knnyti meg azok munkjt is, akik szmra a szmtgp legfkppen ms feladatok elvgzsre hivatott! Kutats: Miutn a teljes FreeBSD rendszer forrskdja brki szmra elrhet, tkletes kiindulsi pontot ad az opercis rendszerek tmakrben vagy a szmtstudomny egyb gaiban vgzend kutatsokhoz. A FreeBSD nylt termszete ezenkvl lehetv teszi egymstl tvol lev csoportok kzs egyttmkdst is anlkl, hogy a rsztvevknek aggdnia kellene a klnleges licencszerzdsek vagy a nylt frumokon felmerl korltozsok miatt. Hlzatpts: Szksge van egy j tvlasztra? Esetleg egy nvszerverre (DNS)? Egy tzfalra, mely tvoltartja a nemkvnatos egyneket a bels hlzattl? A FreeBSD pillanatok alatt tvltoztatja a sarokban porosod 386-os vagy 486-os PC-nket egy kinomult csomagszrsi kpessgekkel br forgalomirnyt eszkzz. X Window munkalloms: A FreeBSD a szabadon hasznlhat X11 szerverrel egytt remek vlaszts egy olcs X terminl kiptshez. Eltren egy szokvnyos X terminltl, a FreeBSD azonban igny szerint sok alkalmazs helyi futtatst is kpes megoldani, ezzel megszabadtva minket a kzponti szerver hasznlatnak knyszertl. A FreeBSD viszont akr lemez nlkl is el tud indulni, aminek rvn az egyes munkallomsok karbantartsa mg olcsbb s knnyebb vlik. Szoftverfejleszts: Az alap FreeBSD rendszer fejleszteszkzk tmkelegvel, tbbek kzt a hres GNU C/C++ fordtval s nyomkvetvel rkezik.

A FreeBSD CD-n, DVD-n s FTP-n keresztl elrhet forrskd s binris formtumban is. A FreeBSD beszerzsvel kapcsolatos bvebb informcikrt olvassuk el az A Fggelket.

1.2.2. Ki hasznlja a FreeBSD-t?


A FreeBSD egyarnt remek eszkz- s termkfejleszti platformknt funkcionl a vilg legnagyobb informatikai cgeinl, tbbek kzt:

Apple (http://www.apple.com) Cisco (http://www.cisco.com)

Fejezet 1. Bemutatkozs

Juniper (http://www.juniper.net) NetApp (http://www.netapp.com)

A FreeBSD mindezek mellett tbb nagyobb internetes oldal alapjt kpzi, mint pldul:

Yahoo! (http://www.yahoo.com/) Yandex (http://www.yandex.ru/) Apache (http://www.apache.org/) Rambler (http://www.rambler.ru/) Sina (http://www.sina.com/) Pair Networks (http://www.pair.com/) Sony Japan (http://www.sony.co.jp/) Netcraft (http://www.netcraft.com/) NetEase (http://www.163.com/) Weathernews (http://www.wni.com/) TELEHOUSE America (http://www.telehouse.com/) Experts Exchange (http://www.experts-exchange.com/)

s mg sokan msok.

1.3. A FreeBSD Projektrl


A most kvetkez rsz egy-kt httrinformcit tr fel a Projektrl, tbbek kztt a trtnett, cljait s a benne alkalmazott fejlesztsi modellt.

1.3.1. A FreeBSD rvid trtnete


rta: Jordan Hubbard. A FreeBSD Projekt valamikor 1993 kezdetrl eredeztethet, s rszben a Nem hivatalos 386BSD Patchkit-bl ntt ki, a patchkit 3 legutols koordintornak, Nate Williamsnek, Rod Grimesnak s nekem ksznheten. Eredeti clunk a 386BSD kztes llapotainak rgztse lett volna, amitl olyan problmk megoldst remltk, melyeket a patchkitek gyrtsa nmagban egyszeren nem tudott megoldani. Nhnyan mg taln emlkeznek is a Projekt kezdeti munkaneveire: 386BSD 0.5 vagy 386BSD Interim, melyek pontosan erre a tnyre hivatkoztak. A 386BSD eredetileg Bill Jolitz opercis rendszere volt, amely ennl a pontnl mr kzel egy ve senki sem tartott karban. Mivel a hozztartoz patchkit pedig naprl napra duzzadt, egyre knyelmetlenebb vlt a karbantartsa. Ezrt egyhangan gy dntttnk, segtnk Billnek azzal, hogy idnknt ltrehozunk egy letiszttott vltozatot. Ez a prblkozsunk csnyn kudarcba fulladt, amikor Bill Jolitz hirtelen meggondolta magt s visszalpett a Projekt tmogatstl. Semmilyen egyrtelm tmutatst nem adott arra, hogy mit csinljunk helyette. Nem tartott sokig eldntennk, hogy ez a cl tovbbra is megri a fradtsgot, mg Bill segtsge nlkl is, ezrt felvettk a FreeBSD nevet, melyet David Greenmannek ksznhetnk. Kezdeti feladatainkat a rendszer akkori

Fejezet 1. Bemutatkozs felhasznlival tartott egyeztetsek utn lltottuk fel. Miutn teljesen tisztn lthatv vlt, hogy a Projekt a megvalsuls tjn van, felvettem a kapcsolatot a Walnut Creek-kel, terjesztsi md utn nzve azok szmra, akik nem tudtak akkoriban knnyedn hozzfrni az internethez. A Walnut Creek nem csak tmogatta a FreeBSD CD-n trtn terjesztst, hanem mg egy szmtgpet s egy gyors internetkapcsolatot is a Projekt rendelkezsre bocstott. A Walnut Creek szinte pldtlan mrtk, egy akkoriban teljesen ismeretlen projektbe vetett hite nlkl nagyon nehezen lenne elkpzelhet, hogy a FreeBSD olyan messzire s olyan gyorsan jutott volna el, ahol ma tart. Az els CD-lemezen (s szles krben az interneten is megjelen) vltozat a FreeBSD 1.0 volt, amely 1993 decemberben jelent meg. A Berkeley-rl szrmaz 4.3BSD-Lite (Net/2) szalagokon tallhat forrsok alapjn kszlt, kiegsztve a 386BSD-bl s a Szabad Szoftver Alaptvnytl (Free Software Foundation, FSF) szrmaz komponensekkel. Els kiadsknt igen mltnyos sikert knyvelhetett el, melyet a mg inkbb sikeres FreeBSD 1.1-gyel folytattunk 1994 mjusban. Nagyjbl ekkortjt nhny vratlan stt felh bukkant fel az gbolton, ahogy a Novell s a Berkeley hosszantart pereskedse lezrult a Berkeley Net/2 szalagjainak jogi formjt illeten. Ennek eredmnyekppen a Berkeley elfogadta, hogy a Net/2 nagy rsze jelzloggal terhelt s a Novell tulajdona, aki pedig valamivel korbban az AT&T-tl szerezte. Ezrt cserbe a Berkeley megkapta a Novell ldst a 4.4BSD-Lite kiadsra, s amikor az vglesen kijn, megsznik a rajta lev jelzlog. Emiatt az sszes Net/2 felhasznlnak ersen javasolt volt vltani. Ez rintette magt a FreeBSD-t is, s gy a Projekt 1994 jliusig kapott hatridt, hogy lelltsa a Net/2 alap termkeinek szlltst. A megegyezs rtelmben a Projekt kiadhatott mg egy utols kiadst a hatrid eltt, amely vgl a FreeBSD 1.1.5.1 lett. A FreeBSD-nek ekkor szembeslnie kellett azzal a nehz feladattal, hogy lnyegben jra fel kellett tallnia magt, a teljesen j s meglehetsen hinyos 4.4BSD-Lite bitjeitl elindulva. A Lite (egyszerstett) kiadsok abban az rtelemben szmtottak egyszerbbnek, hogy a Berkeley kutati (a klnbz jogi kvetelsek miatt) eltvoltottk a tnylegesen beindthat rendszerhez szksges programrszek nagyobb rszt, ill. a 4.4-es verzi Intel processzorokra ksztett portja nagyon is befejezetlen volt. A Projektnek egszen 1994 novemberig tartott, hogy megtegye ezt a lpst, ugyanis ekkor jelent meg a FreeBSD 2.0 az interneten s (december vge fel) CD-n. Annak ellenre, hogy mg nmileg rdes maradt bizonyos helyeken, ez a kiads jelents sikereket rt el. Ezt kvette 1995 jniusban a sokkalta stabilabb s knnyebben telepthet FreeBSD 2.0.5. A FreeBSD 2.1.5-t 1996 augusztusban adtuk ki, mely akkora npszersgnek rvendett az internet-szolgltatk s kereskedelmi kzssgek krben, hogy a 2.1-STABLE elgazsbl egy jabb kiadst ksztettnk. Ez volt a FreeBSD 2.1.7.1, amely 1997 februrjban jelent meg s ezzel egytt a 2.1-STABLE fejlesztst is zrta. Most mr csak karbantartst vgznk rajta, s csak a biztonsgi s egyb kritikus hibajavtsok kerlnek bele (RELENG_2_1_0). A FreeBSD 2.2 fejlesztse 1996 novemberben gazott le az akkori fejleszti (-CURRENT) gbl, mint a RELENG_2_2-es g. Ebbl az els teljes kiads (2.2.1) 1997 prilisban jelent meg. A 2.2-es g mentn tovbbi kiadsok 1997 nyarn s szn kszltek, melyek kzl az utols (2.2.8) 1998 novemberben jelent meg. Az els hivatalos 3.0-s kiads 1998 oktberben jtt ki, ami egyttal a 2.2-es g befejezsnek kezdett jelentette. A fejlesztsi fa 1999. janur 20-n kerlt ismt elgaztatsra, melynek eredmnye a 4.0-CURRENT s 3.X-STABLE gak lettek. A 3.X-STABLE gban a 3.1 1999. februr 15-n, a 3.2 1999. mjus 15-n, a 3.3 1999. szeptember 16-n, a 3.4 1999. december 20-n s a 3.5 2000. jnius 24-n jelent meg, melyet pr nappal ksbb egy kisebb alverzi, a 3.5.1 kvetett, a Kerberosra vonatkoz friss biztonsgi javtsokkal. Ez lett egyben a 3.X g utols kiadsa. Egy msik fontos elgaztats 2000. mrcius 13-n trtnt, mellyel letre kelt a 4.X-STABLE g. Ebbl aztn szmos kiads szletett: a 4.0-RELEASE 2000 mrciusban mutatkozott be, az utols 4.11-RELEASE pedig 2005 janurjban ltott napvilgot. A vrva vrt 5.0-RELEASE 2003. janur 19-n kerlt bejelentsre. Kzel hromvnyi munka eredmnyekppen ez a kiads indtotta meg a FreeBSD-t a tbbprocesszoros rendszerek s az alkalmazsok szlkezelsnek fejlettebb

Fejezet 1. Bemutatkozs tmogatsnak tjn, valamint az UltraSPARC s ia64 platformok tmogatsa is itt jelent meg elszr. Ezt a kiadst az 5.1 kvette 2003 jniusban. A hozztartoz -CURRENT gbl az utols kiads az 5.2.1-RELEASE volt, amely 2004 februrjban mutatkozott be. A 2004 augusztusban, a RELENG_5 g ltrehozst a 5.3-RELEASE kvette, s egyben a 5-STABLE g kezdett is jelezte. A legjabb 5.5-RELEASE 2006 mjusban jtt ki. A RELENG_5 gbl mr nem fog kszlni tbb kiads. A fejlesztsi fa ezutn 2005 jliusban gazott el ismt, ezttal a RELENG_6 gnak adott letet. A 6.0-RELEASE az 6.X g els kiadsaknt 2005 novemberben jelent meg. A legjabb 6.4-RELEASE 2008 november hnapjban jelentkezett. A RELENG_6 gbl mr nem kszlnek tovbbi kiadsok. A RELENG_7 g 2007 oktberben jtt ltre. Ebbl az els kiads 2008 februrjban a 7.0-RELEASE volt. A legfrissebb 7.3-RELEASE kiads 2010 mrcius hnapban kszlt el. A RELENG_7 gbl tovbbi kiadsok is vrhatak. A fejlesztsi fbl 2009 augusztusban ismt levlt egy g, amely ezttal a RELENG_8 volt. A 8.0-RELEASE, a 8.X g els kiadsa 2009 november hnapban jelent meg. Jelen pillanatban a hosszabb tv fejlesztsek a 9.X-CURRENT (trzs) gban kapnak helyet, s a 9.X-bl kszlt idkznknti pillanatkiadsok folyamatosan elrhetek CD-n (s termszetesen interneten keresztl is) a pillanatkiadsokat trol szerverrl (ftp://current.FreeBSD.org/pub/FreeBSD/snapshots/).

1.3.2. A FreeBSD Projekt cljai


rta: Jordan Hubbard. A FreeBSD Projekt clja, hogy olyan szoftvereket knljon, amelyek tetszlegesen, brmilyen clra felhasznlhatak, mindenfle megktsek nlkl. Sokunk jelents energit fektet a programokba (s a Projektbe) s minden bizonnyal egyiknk sem utastana vissza semmilyen anyagi ellenszolgltatst se most, se ksbb, de egyltaln nem ragaszkodunk hozz. Hisszk, hogy elsdleges kldetsnk olyan programok s programrszletek ksztse brki szmra s brmilyen clra, melyeket a lehet legszlesebb krben alkalmaznak s a lehet legtbb hasznot hajtjk. Ez, gy rzem, az egyik legalapvetbb clja a szabad szoftvereknek, s ez az, amit mi is lelkesen magunknak vallunk. A forrsfnkban tallhat GNU General Public License (GPL) vagy a Library General Public License (LGPL) al es kdok hozzfrhetsgre ezzel szemben nmileg tbb megszorts vonatkozik, legalbb is inkbb ami a hozzfrhetsget illeti. Mivel a GPL-es szoftverek kereskedelmi hasznlata tovbbi bonyodalmakat vethet fel, ha lehetsgnk addik r, inkbb a sokkal enyhbb BSD licenccel rendelkez szoftvereket vlasztjuk.

1.3.3. A FreeBSD fejlesztsi modellje


rta: Satoshi Asami. A FreeBSD fejlesztse egy nagyon nyitott s rugalmas folyamat, sz szerint a vilg minden tjrl rkez tbbszznyi segtsgbl ptkezik, ahogy az lthat is a rsztvevink listjn (http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/contributors/article.html). A FreeBSD fejlesztsi infrastruktrja lehetv teszi, hogy ez a tbbszznyi rsztvev az interneten keresztl mkdjn egytt. Folyamatosan vrjuk az j fejlesztket s tleteket, s mindazok, akik komolyabban rdekldnek a Projekt irnt, egyszeren felvehetik velnk a kapcsolatot a FreeBSD technical discussions levelezsi lista (http://lists.FreeBSD.org/mailman/listinfo/freebsd-hackers) cmn. Egy FreeBSD announcements levelezsi lista

Fejezet 1. Bemutatkozs (http://lists.FreeBSD.org/mailman/listinfo/freebsd-announce) is elrhet azok szmra, akik rtesteni kvnjk a tbbi FreeBSD felhasznlt munkjuk fbb eredmnyeirl. A FreeBSD Projektrl s annak fejlesztsi modelljrl hasznos tudni az albbiakat, fggetlenl attl, hogy egyedl vagy msokkal szoros egyttmkdsben dolgozunk: Az SVN s CVS repositoryk Sok ven keresztl a FreeBSD kzponti forrsfjt CVS (http://ximbiot.com/cvs/wiki/)-en (Concurrent Versions System) keresztl tartottk karban, amely egy, a FreeBSD-vel is rkez, szabadon elrhet verzikezel rendszer. 2008 jniusban a Projekt az SVN (http://subversion.tigris.org) (Subversion) hasznlatra vltott. Ez a vlts szksgszer volt, mivel a CVS ltal okozott technikai nehzsgek gyorsan eljttek a forrsfa s a hozztartoz metainformcik szapora nvekedsvel. Noha a kzponti repository most mr SVN-alap, a kliensoldali CVSup s csup alkalmazsok tovbbra is a korbbi infrastruktrval dolgoznak, ahogy eddig is az SVN respositoryban vgzett vltoztatsok ehhez automatikusan tkerlnek CVS al. Jelen pillanatban egyedl csak a kzponti forrsfa hasznlja ezt a megoldst, a dokumentci, a weboldalak s a Portgyjtemny forrsai tovbbra is CVS all zemelnek. Az elsdleges CVS repository (http://www.FreeBSD.org/cgi/cvsweb.cgi) egy Santa Clara-i (California, USA) szmtgpen tallhat, ahonnan a vilgban tallhat rengeteg tkrszerverre msoldik. Az SVN-fa, mely tartalmazza a -CURRENT s -STABLE gakat, knnyen lemsolhat a sajt szmtgpnkre is. Ennek rszleteirl bvebben a A forrsfa szinkronizlsa c. szakaszban olvashatunk. A committerek listja A hivatalos fejlesztk (committerek) azok az emberek, akik a CVS-fhoz rsi joggal rendelkeznek, teht mdostst hajthatnak vgre a FreeBSD forrsaiban (a committer kifejezs a cvs(1) commit parancsbl szrmazik, amelyet arra hasznlunk, hogy felvigyk a mdostsainkat a CVS repository-ba). Javaslatainkat legjobban a send-pr(1) hasznlatval tudjuk a committerek el trni. Ha valamirt ez mgsem mkdne, megprblhatjuk ket elrni kzvetlenl a FreeBSD committers mailing list cmre kldtt e-maillel. A FreeBSD Core Team Ha a FreeBSD Projekt egy vllalat lenne, akkor a FreeBSD Core Teamje (irnyt csoportja) foglaln magban a vezetsget. Ennek a csoportnak elsdleges feladata, hogy fenntartsa a Projekt egsznek kondcijt s gondoskodjon rla, hogy a megfelel irnyba haladjon. Az irnyt csoportnak ugyangy feladata a megbzhat s odaad committerek tmrtse s az j tagok beszervezse, ha a csoportbl kilpne valaki. A jelenlegi Core Team tagjait 2008 jliusban vlasztottk meg. A vlasztsokat ktvente tartjk. Ebben a csoportban egyes tagoknak ezenfell mg bizonyos terletekre felgyelnik is kell. Ez azt jelenti, hogy felelsek a rendszer valamelyik nagyobb rsznek az elrsoknak megfelel mkdsrt. A FreeBSD fejlesztk teljes felsorolsa s a hozzjuk tartoz terletek megtallhatak A rsztvevk listjban (http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/contributors/article.html).
Megjegyzs: A Core Team legtbb tagja pusztn nkntesen vesz rszt a FreeBSD fejlesztsben s nem szrmazik a projektbl semmilyen anyagi haszna. Emiatt a rszvtel nem tvesztend ssze a garantlt tmogatssal. A vezetsgre vonatkoz hasonlat nem teljesen pontos abban az rtelemben, hogy ezek az emberek tulajdonkppen egy kvlll szempontjbl sszertlen dntst hoztak azzal, hogy a FreeBSD tmogatsra ldoztk az letket!

Fejezet 1. Bemutatkozs Kls rsztvevk Vgl, de nem utoljra, kvetkezzen a fejlesztk legnagyobb csoportja: k maguk a felhasznlk, akik rendszeres visszajelzseket s hibajavtsokat kldenek. A FreeBSD kevsb kzpontostott fejlesztsben elssorban a FreeBSD technical discussions levelezsi lista (http://lists.FreeBSD.org/mailman/listinfo/freebsd-hackers) segtsgvel lehet felvenni a fonalat, ahol ezeket a tmkat trgyaljk meg. A FreeBSD-hez kapcsold klnfle levelezsi listkrl tbbet a C Fggelkben olvashatunk. A FreeBSD rsztvevinek listja (http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/contributors/article.html) hossz s mg most is nvekszik; mirt nem prblunk mi is visszaadni valamit a FreeBSD-nek? Nem csak programozssal lehet segteni a Projektet: a megoldand feladatok listjt megtallhatjuk a FreeBSD Projekt honlapjn (http://www.FreeBSD.org/index.html). Rviden sszefoglalva, a fejlesztsi modellnk egymshoz lazn kapcsold koncentrikus krkknt szervezdik. Ez a kzpontostott modell a FreeBSD-felhasznlk knyelmt szolgland lett kialaktva, akik gy knnyedn tudnak kvetni egyetlen kzponti kdbzist, azonban megvan a lehetsgk a rszvtelre is! Minden vgyunk egy olyan megbzhat opercis rendszer kialaktsa, amihez nagy mennyisg knnyen telepthet s hasznlhat alkalmazs tartozik ez a modell ennek elrsre nagyon is megfelel. A halads temnek fenntartsa rdekben mindssze csak annyit krnk a leend FreeBSD fejlesztinktl, hogy legyenek legalbb annyira elszntak, mint a jelenlegi tagjaink!

1.3.4. Az aktulis FreeBSD kiadsok


A FreeBSD egy szabadon elrhet, teljes forrskddal rkez 4.4BSD-Lite alap kiads Intel i386, i486, Pentium, Pentium Pro, Celeron, Pentium II, Pentium III, Pentium 4 (vagy azzal kompatibilis), Xeon, DEC Alpha s Sun UltraSPARC alap szmtgpekre. Elssorban a Berkeley Szmtgpes rendszerek kutatcsoportjnak szoftverein alapszik, szmos javtssal a NetBSD, OpenBSD, 386BSD s a Szabad Szoftver Alaptvny munkssgnak ksznheten. A FreeBSD 2.0 1994 vgi megjelense ta a FreeBSD teljestmnye, megbzhatsga s tudsa drasztikusan megnvekedett. A legnagyobb vltoztats az jjalaktott, sszevont VM/llomny puffer gyorsttrral rendelkez virtulis memria alrendszer, amely nem csak a teljestmnyt nveli, hanem cskkenti a FreeBSD memriaignyt is, jobban elfogadhatv tve ezzel az 5 MB-os minimumot. A tovbbi fejlesztsek kztt talljuk a teljes NIS szerver s kliens tmogatst, az tviteli TCP tmogatst, az igny szerint trcsz PPP-t, a beptett DHCP tmogatst, a tovbbfejlesztett SCSI alrendszert, az ISDN tmogatst, az ATM, FDDI, Fast s Gigabit Ethernet (1000 Mbit) hlzati csatolk tmogatst, a legfrissebb Adaptec gyrtmny vezrlk fejlesztett tmogatst s a tbbezernyi hibajavtst. Az alapeszkzk mell a FreeBSD felknlja tbbezernyi ismert s keresett program portjaibl ll gyjtemnyt. Ebben a pillanatban is mr tbb, mint 20 000 port rhet el! A portok listja a HTTP (WWW) szerverektl, a jtkokon, nyelveken s sok mindenen keresztl a szvegszerkesztkig terjed. Az egsz Portgyjtemny kzeltleg 417 MB trhelyet kvn, minden portot az eredeti forrshoz viszonytott klnbsgknt trol. Ennek kvetkeztben a portok frisstse sokkal knnyebb s nagyban cskkenti a korbbi, 1.0-s Portgyjtemnynl kialakult trignyeket. Egy port lefordtshoz egyszeren csak be kell lpnnk a telepteni kvnt program knyvtrba s ki kell adnunk a make install parancsot, a tbbit a rendszer elvgzi. Minden egyes teleptend port teljes forrsa dinamikusan vagy CD-rl vagy pedig FTP-n keresztl tltdik le, gy csak a tnylegesen teleptendk lefordtshoz elegend trhelyre van szksg. Majdnem mindegyik port elrhet elre lefordtott csomag formjban azok szmra, akik

Fejezet 1. Bemutatkozs nem kvnjk lefordtani a portokat, s melyeket egy egyszer parancs (pkg_add) segtsgvel telepteni is tudjk. A csomagokrl s portokrl a 4 fejezetben tudhatunk meg tbbet. A FreeBSD teleptsrl s hasznlatrl most mr szmos tovbbi nagyon hasznos dokumentumot tallhatunk brmelyik FreeBSD-s szmtgp /usr/share/doc knyvtrban. A helyileg teleptett kziknyveket brmilyen HTML-t megjelenteni kpes bngszvel el tudjuk olvasni az albbi URL-eken: A FreeBSD kziknyv
/usr/share/doc/handbook/index.html

A FreeBSD GYIK
/usr/share/doc/faq/index.html

Az aktulis (leginkbb frisstett) verzik megtekinthetek a http://www.FreeBSD.org/ cmen.

Fejezet 2. A FreeBSD teleptse


tszervezte, trendezte s egyes rszeit tdolgozta: Jim Mock. A sysinstall bemutatsa, bri s bemsolsa: Randy Pratt.

2.1. ttekints
A FreeBSD teleptshez egy knnyen hasznlhat szveges teleptprogram, a sysinstall hasznlhat. Ez a FreeBSD alaprtelmezett teleptprogramja, habr ezt a klnfle gyrtk kedvk szerint lecserlhetik. Ebben a fejezetben bemutatjuk a FreeBSD sysinstall segtsgvel trtn teleptst. A fejezet elolvassa sorn megismerjk:

hogyan ksztsnk teleptlemezeket a FreeBSD-hez; a FreeBSD miknt hivatkozza s osztja fel a merevlemezeinket; hogyan indtsuk el a sysinstall programot; milyen krdseket tesz fel neknk a sysinstall, mire gondol, hogyan is kell azokat megvlaszolni.

A fejezet elolvasshoz ajnlott:

a teleptend FreeBSD verzihoz tartoz tmogatott hardvereket felsorol lista tolvassa s benne a sajt hardvereszkzeink megkeresse.
Megjegyzs: ltalnosan elmondhat, hogy a most kvetkez teleptsi utastsok az i386 (PC kompatibilis) architektrj szmtgpekre vonatkoznak. Ahol erre szksg van, ott ms platformokra (pldul Alpha) vonatkoz utastsok is szerepelhetnek. Habr ezt a lers igyeksznk a lehet legjobban naprakszen tartani, elkpzelhet, hogy felfedezhetnk kisebb eltrseket a teleptben s az itt lertak kzt. Ezrt ezt a fejezetet inkbb egy ltalnos tmutatnak javasoljuk, nem pedig egy sz szerint rtelmezend kziknyvknt.

2.2. Hardverkvetelmnyek
2.2.1. Minimlis kongurci
A FreeBSD teleptshez szksges minimlis kongurci FreeBSD verzinknt s architektrnknt eltr. A minimlis kongurcit a FreeBSD honlapjn a kiadsokrl szl oldalon (http://www.FreeBSD.org/releases/index.html), az Installation Notes rszben tallhatjuk meg. Ezt a kvetkez szakaszokban foglaljuk ssze. A FreeBSD teleptsnek mdszertl fggen szksgnk lehet egy hajlkonylemezes (oppy) vagy CD-ROM meghajtra, esetleg egy hlzati krtyra. Ezt a 2.3.7 Szakaszban trgyaljuk.

10

Fejezet 2. A FreeBSD teleptse

2.2.1.1. FreeBSD/i386 s FreeBSD/pc98


A FreeBSD/i386 s FreeBSD/pc98 egyarnt egy 486 vagy jobb processzort s legalbb 24 MB memrit ignyel. A legkisebb teleptshez legalbb 150 MB szabad lemezterlet szksges.
Megjegyzs: Rgebbi kongurcik esetn nem egy gyorsabb processzor, hanem inkbb tbb memria beszerzse, illetve tbb lemezterlet felszabadtsa a fontosabb.

2.2.1.2. FreeBSD/alpha
A FreeBSD/alpha teleptshez egy ismert platformra (lsd: 2.2.2 Szakasz), valamint a FreeBSD-nek sznt kln lemezre van szksgnk. Pillanatnyilag nem lehetsges ms opercis rendszerekkel megosztani a lemezeket. A lemezt egy olyan SCSI-vezrlre kell csatlakoztatnunk, amelyet tmogat az SRM rmware-je, vagy hasznlhatunk IDE-lemezeket is, feltve, hogy az SRM tud rluk rendszert indtani. Szksgnk lesz a platformunkon az SRM konzol rmware-jre. Sok esetben tudunk vltani az AlphaBIOS (vagy ARC) s az SRM rmware-je kztt. Minden ms helyzetben le kell tltennk egy j rmware-t a gyrt honlapjrl.
Megjegyzs: Az Alpha tmogats a FreeBSD 7.0 beindulsval eltvoltsra kerlt. A FreeBSD 6.X sorozat az utols, amely valamilyen tmogatst ajnl ehhez az architektrhoz.

2.2.1.3. FreeBSD/amd64
Kt tpus processzor kpes futtatni a FreeBSD/amd64 verzijt. Az els ezek kzl az AMD64 processzorok, belertve az AMD Athlon64, AMD Athlon64-FX, AMD Opteron vagy jabb processzorokat. A FreeBSD/amd64 verzijt kihasznlni kpes processzorok msik csoportja az Intel EM64T architektrjra pl processzorok. Ilyen processzor pldul az Intel Core 2 Duo, Quad s Extreme processzorcsaldok, valamint az Intel Xeon 3000, 5000 s 7000 sorozatszm processzorai. Ha nVidia nForce3 Pro-150 alap gppel rendelkezk, ki kell kapcsolnunk a BIOS-ban az IO APIC hasznlatt. Ha nem tallnnk ilyen belltst, akkor helyette magt az ACPI-t kell kikapcsolnunk. A Pro-150 chipsetnek vannak bizonyos hibi, amelyekre eddig mg nem sikerlt megfelel megoldst tallnunk.

2.2.1.4. FreeBSD/sparc64
A FreeBSD/sparc64 teleptshez egy tmogatott platformra van szksgnk (lsd: 2.2.2 Szakasz). A FreeBSD/sparc64 teleptshez egy egsz lemezre lesz szksgnk, mivel a rendszer jelenleg nem kpes megosztani azt ms opercis rendszerekkel.

11

Fejezet 2. A FreeBSD teleptse

2.2.2. Tmogatott hardverek


A FreeBSD minden kiadshoz mellkelik a tmogatott hardverek listjt FreeBSD Hardware Notes cmmel. Ezt a dokumentum tbbnyire a HARDWARE.TXT nev llomny, amelyet a rendszer CD-n vagy FTP-n keresztl elrhet vltozatnak gykerben vagy a sysinstall dokumentcikat tartalmaz menjben tallhatunk meg.

2.3. A telepts eltt elvgzend feladatok


2.3.1. Ksztsnk leltrt a szmtgpnkrl
A FreeBSD teleptse eltt rdemes sszeszedni, pontosan mi minden is tallhat a szmtgpnkben. A FreeBSD teleptrutinjai mutatni fogjk a klnbz komponensek (merevlemezek, hlzati krtyk, CD-meghajtk s a tbbi) modelljt s gyrtjt. A FreeBSD ezenkv megprblja kiderteni a megjelen eszkzk pontos kongurcijt is, belertve a hasznlt IRQ s IO portok kiosztst. A PC-s hardverek klnfle szeszlyei miatt azonban ez az imnti folyamat nem minden esetben megbzhat, ezrt elfordulhat, hogy helyesbteni kell a FreeBSD ltal megllaptott rtkeket. Ha mr van a gpnkn egy msik opercis rendszer, pldul Windows vagy Linux, akkor mindenkppen hasznos lehet az ltala felknlt eszkzkkel lekrdezni a hardvereink belltsait. Ha nem lennnk biztosak benne, hogy az adott bvtkrtykat pontosan milyen belltsokkal is hasznljuk, nzzk meg ezeket magn a krtyn. A npszer IRQ rtkek ltalban a 3, 5 s 7, valamint az IO portok szmt ltalban tizenhatos szmrendszerben szerepeltetik, pldul 0x330. Javasoljuk, hogy nyomtassuk ki vagy rjuk le ezeket a paramtereket a FreeBSD teleptse eltt. Ehhez rendezzk ezeket egy tblzatban, valahogy gy: Tblzat 2-1. Plda egy eszkzleltrra Eszkz neve Els merevlemez CD-ROM meghajt Msodik merevlemez Els IDE vezrl Hlzati krtya Modem ... Ahogy elksztettk a szmtgpnk alkatrszeit tartalmaz listt, vessk ezeket ssze a teleptend FreeBSD kiads ltal megkvetelt eszkzkkel. IRQ 14 IO portok 0x1f0 Intel 10/100 3Com 56K-s faxmodem, COM1 Megjegyzs Mrete 40 GB, gyrtmnya Seagate, elsdleges IDE master Elsdleges IDE slave Mrete 20 GB, gyrtmnya IBM, msodlagos IDE master

2.3.2. Mentsk le az adatainkat


Amennyiben a FreeBSD teleptshez hasznlt szmtgp szmunkra rtkes adatokat trol, igyekezznk lementeni

12

Fejezet 2. A FreeBSD teleptse ezeket, s a FreeBSD tnyleges teleptse eltt gyzdjnk is meg rla, hogy a ments sikeres volt. A FreeBSD teleptrutinjai termszetesen megerstst fognak krni brmilyen adat lemezre rsa eltt, azonban ha egyszer mr elindtottuk a folyamatot, mr semmit sem tudunk visszafordtani.

2.3.3. Dntsk el a FreeBSD teleptsnek helyt


Ha a FreeBSD teleptshez az egsz merevlemeznket fel akarjuk hasznlni, akkor mg nincs mirt izgatnunk magunkat nyugodtan tlphetjk ezt a szakaszt. Amikor viszont a FreeBSD-t ms opercis rendszerek mell szeretnnk telepteni, ismernnk kell, miknt is helyezkednek el az adatok a lemezeken, s hogy ez miknt is rint bennnket.

2.3.3.1. A lemezek kiosztsa a FreeBSD/i386 esetn


A PC-k ltal hasznlt lemezek klnll darabokra tagolhatak. Ezeket a darabokat partciknak nevezzk. Mivel azonban a FreeBSD maga is trol partcikat, ezrt ez az elnevezs pillanatok alatt megtvesztv vlhat, ezrt ezeket a lemezdarabokat a FreeBSD lemezslice-oknak vagy egyszeren csak slice-oknak hvja. Pldul a PC-s lemezpartcikkal dolgoz, fdisk nev FreeBSD-s segdprogram partcik helyett is slice-okra hivatkozik. A PC lemezenknt alapveten csak ngy partcit enged meg. Ezeket a partcikat nevezik elsdleges partciknak. Ettl a korltozstl egy j tpus, a kiterjesztett partci ltrehozsval szabadultak meg, amivel gy ngynl tbb partci is kszthet. Lemezenknt egyetlen ilyen kiterjesztett partci tallhat, de ezen bell specilis, n. logikai partcik hozhatak ltre. Minden partcinak van egy partci-azonostja, melyet a partcin tallhat adatok tpusnak megllaptsra hasznlnak. A FreeBSD partciinak azonostja a 165. ltalnossgban vve minden opercis rendszer gy azonostja a partcikat. Pldul a DOS s annak leszrmazottai, mint pldul a Windows, minden elsdleges s logikai partcihoz egy C:-tl indul meghajt-betjelet trst. A FreeBSD-t egy elsdleges partcira kell telepteni. A FreeBSD az sszes adatt, belertve minden ltalunk ltrehozott llomnyt is, ezen az egyetlen partcin fogja elhelyezni. Ha viszont tbb lemeznk van, tbben is, vagy akr mindegyiken ltrehozhatunk FreeBSD-s partcikat. A FreeBSD teleptsekor azonban legalbb egy ilyen partcinak hasznlhatnak kell lennie. Ez lehet elre megtiszttott res partcii is, vagy akr egy olyan partci, amelyen mr nem hasznlt adatok vannak. Ha mr mindegyik partcink betelt, akkor a tbbi opercis rendszer ltal felknlt eszkzk (pldul MS-DOS-ban vagy Windows-ban az fdisk) valamelyikvel elszr fel kell kzlk szabadtanunk egyet a FreeBSD szmra. Amennyiben akadna egy hasznlhat partci, akkor hasznljuk azt. Ekkor azonban elfordulhat, hogy ehhez elszr a meglvk kzl ssze kell majd zsugortanunk valamelyiket. A FreeBSD legkisebb telepthet vltozata nagyjbl 100 MB lemezterletet ignyel. Azonban ez egy nagyon kicsi vltozat s szinte semmi helyet nem hagy a sajt llomnyainknak. Sokkal valsghbb, ha grakus fellet nlkl nagyjbl 250 MB-ot mondunk, s legalbb 350 MB-ot a grakus fellet hasznlata esetn. Ha ezeken fell tovbbi szoftvereket is telepteni kvnunk, mg tbb helyre lesz szksgnk. Amikor a FreeBSD szmra akarunk helyet csinlni, vagy partcikat akarunk tmretezni, hasznljuk pldul a PartitionMagic nev kereskedelmi szoftvert vagy esetleg egy olyan szabad eszkzt, mint pldul a GParted. A telept CD-n megtallhat tools knyvtrban tallhatunk erre a feladatra kt szabad szoftvert is, nv szerint a FIPS s PResizer programokat. Ugyanitt a hozzjuk tartoz dokumentci is megtallhat. A FIPS, a PResizer s a PartitionMagic egyarnt kpes az MS-DOS s a Windows ME ltal hasznlt FAT16 s FAT32 partcikat

13

Fejezet 2. A FreeBSD teleptse tmretezni. Ismereteink szerint a PartitionMagic s a GParted is hasznlhat az NTFS partcikkal. A GParted szmos Live CD-s linuxos disztribcin megtallhat, ilyen tbbek kzt a SystemRescueCD (http://www.sysresccd.org). Gondok lehetnek azonban a Microsoft Vista ltal hasznlt partcikkal. Ezrt nem rt, ha az tmretezsekor a keznk gyben van a Vista telept CD-je. Termszetesen, mint minden lemezkarbantsi mvelet esetn, ilyenkor is hatrozottan ajnlott biztonsgi mentseket kszteni.
FigyelemAz emltett eszkzk helytelen hasznlata megsemmistheti a lemezeinken trolt adatokat, ezrt a hasznlatuk eltt gondoskodjunk friss, mkdkpes biztonsgi mentsekrl.

Plda 2-1. Meglev partci hasznlata a mret megvltoztatsa nlkl Tegyk fel, hogy a szmtgpnkben egyetlen 4 GB mret lemez van, amelyen megtallhat a Windows valamelyik verzija, s ezt a lemezt korbban kt, egyarnt 2 GB mret meghajtra osztottuk, a C:-re s D:-re. 1 GB adatunk van a C: meghajtn s fl GB a D:-n. Mindez teht azt jelenti, hogy a lemeznkn kt partci tallhat, betjelenknt egy. Ha tmsoljuk a D: meghajtn lev adatainkat a C: meghajtra, akkor ezzel felszabadthatjuk a FreeBSD szmra a msodik partcit.

Plda 2-2. Meglev partci zsugortsa Tegyk fel, hogy a szmtgpnkben egyetlen 4 GB mret lemez van, amelyet teljes egszben a Windows valamelyik pldnya foglal el. A Windows teleptse sorn ezrt minden bizonnyal egyetlen nagy partcit hoztunk ltre, amely a C: betjelet kapta s a mrete 4 GB. Jelen pillanatban msfl GB helyet hasznlunk a lemezen, s szeretnnk a FreeBSD szmra 2 GB helyet felszabadtani. A FreeBSD teleptshez a kvetkezk valamelyikt kell tennnk: 1. Mentsk le a Windows-os adatainkat, teleptsk jra a Windows-t gy, hogy egy 2 GB mret partcit vlasztunk neki a teleptse sorn. 2. A partci sszezsugortsra hasznljuk az elbb emltett alkalmazsokat, pldul a PartitionMagic-et.

2.3.3.2. A lemezek kiosztsa Alphn


Alphn egy egsz lemezre lesz szksgnk a FreeBSD teleptshez, mivel jelen pillanatban nem tud ms rendszerekkel osztozni a lemezeken. A gpnkben tallhat lemez rendelkezhet IDE- vagy SCSI-csatolval is, egyedl az a fontos, hogy el tudjuk rla indtani a rendszert. A Digital, illetve Compaq lersainak megfelelen az SRM sszes parancst nagybetkkel rjuk, habr az SRM nem klnbzteti meg a kis- s nagybetket. A gpnkben tallhat lemezek neveit s tpust a az SRM konzolban kiadott SHOW DEVICE paranccsal krdezhetjk le:

14

Fejezet 2. A FreeBSD teleptse


>>>SHOW DEVICE dka0.0.0.4.0 dkc0.0.0.1009.0 dkc100.1.0.1009.0 dva0.0.0.0.1 ewa0.0.0.3.0 pkc0.7.0.1009.0 pqa0.0.0.4.0 pqb0.0.1.4.0

DKA0 DKC0 DKC100 DVA0 EWA0 PKC0 PQA0 PQB0

TOSHIBA CD-ROM XM-57 RZ1BB-BS SEAGATE ST34501W 00-00-F8-75-6D-01 SCSI Bus ID 7 PCI EIDE PCI EIDE

3476 0658 0015

5.27

Ebben a pldban egy Digital Personal Workstation 433au szerepel, s lthatjuk, hogy hrom meghajtt csatlakoztattunk hozz. Ezek kzl az els a DKA0 nevet visel CD-ROM meghajt, valamint van mg kt tovbbi lemeznk, DKC0 s DKC100 nven. A DKx alak nvvel rendelkez eszkzk a SCSI-lemezek. Ennek megfelelen pldul a DKA100 nv az els (A) SCSI-buszon tallhat 1 clazonostval (target ID) elltott SCSI-lemezre, mikzben a DKC300 a harmadik (C) SCSI-buszon lev 3 clazonostval elltott SCSI-lemezre hivatkozik. A PKx alak eszkznv magra a SCSI-vezrlre vonatkozik. Ahogy az a SHOW DEVICE kimenetben is ltszik, a SCSI csatoln keresztl csatlakoztatott CD-ROM meghajtkat a tbbi SCSI-merevlemezhez hasonlnak tekinti. Az IDE-lemezek nevei ehhez hasonlan DQx alakak, ahol a PQx a hozzjuk tartoz IDE-vezrlt jelli.

2.3.4. Szedjk ssze a hlzati belltsainkat


Amennyiben a FreeBSD teleptsnek rszeknt hlzatra is szndkozunk csatlakozni (pldul egy FTP vagy NFS szerverrl akarunk telepteni), ismernnk kell a hlzatra vonatkoz belltsainkat is. A telept r fog krdezni ezekre az informcikra, amelyek megadsa utn a FreeBSD a telepts befejezshez csatlakozni tud majd a hlzatra.

2.3.4.1. Csatlakozs Ethernet-hlzaton, kbel- vagy DSL-modemen keresztl


Ha egy Ethernet-hlzathoz, vagy maghoz az internethez csatlakozunk egy DSL- vagy kbelmodemen keresztl, akkor az albbi adatokra lesz szksgnk: 1. IP-cm 2. Az alaprtelmezett tjr IP-cme 3. A gpnk neve 4. DNS (nvfelold) szerverek IP-cmei 5. Hlzati maszk Ha nem ismerjk ezeket, rdekldjnk a rendszergazdtl vagy a szolgltatnktl. Elkpzelhet az is, hogy mindezen informcikat DHCP segtsgvel, automatikusan kapjuk meg. Ezt is mindenkppen jegyezzk fel.

15

Fejezet 2. A FreeBSD teleptse

2.3.4.2. Kapcsolds modemmel


Ha az internet-szolgltatnkhoz hagyomnyos modemen keresztl csatlakozunk, akkor is tudjuk telepteni a FreeBSD-t interneten keresztl, azonban ez nagyon sokig tarthat. Ehhez tudnunk kell: 1. Az internet-szolgltatnk behvszmt 2. A soros (COM) port szmt, amelyen keresztl a modem kapcsoldik a gpnkhz 3. Az internet-szolgltatnktl kapott felhasznli nevet s jelszt

2.3.5. Olvassuk el FreeBSD hibajegyzkt


Habr a FreeBSD Projekt igyekszik a FreeBSD minden egyes kiadst a lehet legmegbzhatbban felkszteni, hibk hatatlanul is maradnak bennk. Nagyon ritka esetekben ezek a hibk magra a telepts folyamatra is kihathatnak. Amint ezeket a problmkat sikerl felderteni s javtani, rgvest megjelennek a FreeBSD honlapjn tallhat hibajegyzkben (http://www.FreeBSD.org/releases/8.0R/errata.html) (angolul). A telepts eltt ezrt mindig ajnlott tolvasni ezt a dokumentumot, gy megbizonyosodunk rla, hogy semmilyen utlag felmerlt problma nem akadlyozza munknkat. Az sszes kiadshoz tartoz informci, belertve az egyes kiadsok hibajegyzkeit is, a FreeBSD honlapjrl (http://www.FreeBSD.org/index.html) a kiadsokra vonatkoz informcikat (http://www.FreeBSD.org/releases/index.html) tartalmaz rszen rhet el (angolul).

2.3.6. Szerezzk be a FreeBSD teleptshez szksges llomnyokat


A FreeBSD teleptse az albbi helyek brmelyikn megtallhat llomnyok felhasznlsval trtnik: Loklisan:

CD vagy DVD Ugyanazon a szmtgpen lev MS-DOS partci SCSI- vagy QIC-szalag Floppylemezek

Hlzaton keresztl:

FTP oldalrl, tzfalon keresztl vagy szksg szerint HTTP proxy hasznlatval NFS szerverrl Prhuzamos vagy soros vonali kapcsolaton keresztl

Ha megvsroltuk a FreeBSD telept CD-jt vagy DVD-jt, akkor mr mindennel rendelkeznk a teleptshez. Lpjnk btran tovbb a kvetkez szakaszra (2.3.7 Szakasz)!

16

Fejezet 2. A FreeBSD teleptse Ha eddig mg nem szereztk volna be a FreeBSD teleptshez szksges llomnyokat, ugorjunk a 2.13 Szakaszhoz, ahol megtudhatjuk, hogyan ksztsk el a FreeBSD teleptst az imnt felsorolt helyzetekben. A szakasz elolvassa utn pedig jjjnk vissza ide, majd folytassuk az olvasst a 2.3.7 Szakaszban.

2.3.7. Ksztsnk egy rendszerindt lemezt


A FreeBSD teleptse gy kezddik, hogy a szmtgpnkkel a FreeBSD teleptjt indtjuk el ez viszont nem egy olyan program, amit ms opercis rendszerben el tudunk indtani. A szmtgpnk ltalban a merevlemeznkre teleptett opercis rendszert indtja el, azonban bellthat gy is, hogy az indulshoz egy n. rendszerindt (bootolhat) oppy lemezt hasznljon. Napjaink szmtgpei azonban a CD-meghajtban lev CD-krl is el tudnak indulni.
Tipp: Ha CD-n vagy DVD-n megvan a FreeBSD teleptje (akr megvettk, akr ppen magunk ksztettk) s a szmtgpnk tud CD-rl vagy DVD-rl rendszert indtani (a BIOS-ban van egy Boot Order vagy hozz hasonl nev bellts), akkor kihagyhatjuk ezt a szakaszt. A FreeBSD CD- s DVD image-ek kirsval egy rendszerindtsra alkalmas lemezt kapunk, amirl minden tovbbi elkszlet nlkl telepthetnk.

A rendszerindt oppy lemezt az albbi lpsek mentn haladva tudjuk elkszteni: 1. A rendszerindt lemezek image-einek beszerzse A rendszerindt lemezek a telepteszkz floppies/ knyvtrban tallhatak, illetve letlthetek az
ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/<architektra>/<vltozat>-RELEASE/floppies/ helyrl. Az <architektra> s <vltozat> helyre termsztesen rjuk be a telepteni kvnt architektrt

s verzit. gy pldul a FreeBSD/i386 8.0-RELEASE rendszerindt lemezei az ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/8.0-RELEASE/oppies/ cmrl rhetek el. A oppyk image-ei .flp kiterjesztsek. A floppies/ knyvtr szmos klnfle image-et tartalmaz, ezek kzl leginkbb a teleptend FreeBSD vltozat, valamint emellett olykor konkrtan a hardver hatrozza meg a hasznlandt. Az esetek tlnyom rszben ngy oppyra lesz szksgnk: boot.flp, kern1.flp, kern2.flp s kern3.flp. A lemezek image-eit illet legfrissebb informcikat ugyanazon a knyvtron bell szerepl README.TXT llomnyban olvashatjuk (angolul).
Fontos: Az FTP-hez hasznlt programunkat az image-ek letltse sorn ne felejtsk el binris (binary) tviteli mdban hasznlni. Egyes bngszk hajlamosak ugyanis szveges (text vagy ASCII) tviteli mdot hasznlni, ami viszont csak abbl vehet szre, hogy nem tudjuk a lemezekrl elindtani a rendszert.

2.

A oppyk elksztse Mindegyik letltend image-hez el kell kszteni egy-egy hajlkonylemezt. Nagyon fontos, hogy ezek a lemezek teljesen hibtlanok legyenek. Errl a legknnyebben gy gyzdhetnk meg, ha a lemezeket magunk formzzuk, s nem bzunk a klnfle elreformzott (preformatted) oppykban. A Windows-ban tallhat formz segdprogram sem rul el neknk semmit a lemezeken tallhat hibs rszekrl, egyszeren csak rossznak (bad) jelli meg s gyelmen kvl hagyja ezeket. Hatrozottan ajnljuk, hogy amennyiben a teleptsnek ezt a mdjt vlasztjuk, mindig hasznljunk teljesen j oppykat.

17

Fejezet 2. A FreeBSD teleptse


Fontos: Ha megprbljuk telepteni a FreeBSD-t, s a teleptprogram sszeomlik, lefagy vagy brmilyen furcsasgot mvel, elsknt mindenkppen a oppykra gyanakodhatunk. Ilyenkor rjuk ki az image-eket j lemezekre s prblkozzunk jra a teleptssel.

3.

Az image-ek kirsa a oppykra Az .flp kiterjeszts llomnyok nem a lemezre msolhat hagyomnyos llomnyok, hanem a lemezek teljes tartalmnak kpei, ezrt ezeket egyszeren nem msolhatjuk egyik lemezrl a msikra. Az image-ek kzvetlen lemezrershoz ehelyett kifejezetten erre a clra alkalmas eszkzket kell hasznlnunk. Azok szmra, akik a oppykat MS-DOS/Windows rendszer szmtgpeken kvnjk elkszteni, mellkeltnk egy fdimage nev segdprogramot. Ha a CD-meghajtnk betjele pldul E: s a telept CD-n tallhat image-eket szeretnnk kirni vele, akkor ezt a parancsot kell kiadnunk:
E:\> tools\fdimage floppies\boot.flp A:

Ezutn ismtelten adjuk ki az imnti parancsot minden egyes hasznlni kvnt .flp llomnyra, azonban eltte mindig tegynk be egy jabb oppyt, s a rrt image-ek neveivel folyamatosan cmkzzk fel a lemezeket. A megadott parancsot termszetesen mindig rjuk t a konkrt .flp llomnyok tnyleges elrsi tvonalainak megfelelen. Ha nincs CD-nk, akkor az fdimage programot az FreeBSD FTP oldaln tallhat tools knyvtrbl (ftp://ftp.FreeBSD.org/pub/FreeBSD/tools/) is letlthetjk. Amikor a lemezeket egy UNIX rendszeren ksztennk el (pldul egy msik FreeBSD rendszeren), akkor a dd(1) parancs is hasznlhat az image-ek kzvetlen lemezrershoz. FreeBSD alatt gy nz ki a paramterezse:
# dd if=boot.flp of=/dev/fd0

FreeBSD-n a /dev/fd0 az els hajlkonylemezes meghajtra hivatkozik (teht az A: betjel meghajtra). Ennek megfelelen a /dev/fd1 jelenti a B: meghajtt s gy tovbb. Ms UNIX vltozatok esetleg ms neveket hasznlhatnak a hajlkonylemezes meghajtk megnevezsre, ezrt errl rdemes ilyenkor tjkozdni az adott rendszerhez tartoz dokumentciban. Most mr kszen llunk a FreeBSD teleptsre!

2.4. A telepts megkezdse


Fontos: Alaprtelmezs szerint a telepts egszen addig nem fog semmit sem rni a lemezekre, amg a kvetkez zenet fel nem bukkan:
Last Chance: Are you SURE you want continue the installation? If youre running this on a disk with data you wish to save then WE STRONGLY ENCOURAGE YOU TO MAKE PROPER BACKUPS before proceeding! We can take no responsibility for lost disk contents!

A szveg fordtsa:
Utols esly: BIZTOSAN folytatni kvnja a teleptst?

18

Fejezet 2. A FreeBSD teleptse


Ha olyan lemezre szeretne telepteni, amelyen fontos adatok tallhatak, HATROZOTTAN JAVASOLJUK, hogy a tovbblps eltt KSZTSEN RLUK MEGBZHAT BIZTONSGI MSOLATOT! Nem vllalunk semmilyen felelssget az elveszett adatokrt!

A teleptbl teht a fenti, vgs gyelmeztets eltt brmikor ki lehet lpni anlkl, hogy a merevlemeznkn lev adatokat veszlyeztetnnk. Ha gy rezzk, hogy valamit vletlenl rosszul lltottunk volna be a telepts sorn, ekkor mg minden komolyabb kr okozsa nlkl kikapcsolhatjuk a szmtgpnket.

2.4.1. A rendszer indtsa


2.4.1.1. Rendszerindts i386-on
1. 2. Kezdjnk egy kikapcsolt szmtgppel. Kapcsoljuk be a szmtgpet. Az indulsa sorn ltnunk kell egy olyan opcit, amivel be tudunk lpni a rendszer belltsait tartalmaz menbe, avagy a BIOS-ba. Ezt tbbnyire a F2, F10, Del vagy a Alt+S lenyomsval rhetjk el. Ezek kzl hasznljuk a kpernyn megjelen billentyket. Elfordulhat, hogy indulskor a szmtgpnk semmilyen szveget, csak egy kpet mutat. Ilyenkor ltalban a Esc billenty megnyomsra eltnik a kp s lthatv vlnak a szmunkra fontos zenetek. Miutn belptnk a menbe, keressk meg azt a belltst, amely a rendszerindtshoz hasznlt eszkzt hatrozza meg. Ennek a neve sokszor Boot Order (rendszerindtsi sorrend) vagy valami hozz hasonl. Itt mindenfle eszkz felsorolst talljuk: Floppy, CDROM, First Hard Disk (els merevlemezes meghajt) s gy tovbb. Ha a rendszerindtshoz korbban oppykat ksztettnk el, gondoskodjunk rla, hogy itt a oppyra vonatkoz belltst vlasszuk ki. Amennyiben viszont CD-rl akarjuk a teleptst elindtani, akkor helyette azt vlasszuk. Ha brmilyen ktsg merlne fel bennnk, keressk meg ezt a belltst a szmtgphez s/vagy az alaplaphoz kapott kziknyvben. Ignyeink szerint vgezzk el a belltst, majd mentsk el s lpjnk ki. Most indtsuk jra a szmtgpet. 4. Ha a 2.3.7 Szakaszban lertak szerint rendszerindt lemezeket ksztettnk, akkor ezek valamelyike lesz az els rendszerindt lemez, valsznleg az, amelyikre a boot.flp image tartalmt rtuk ki. Ezt a lemezt tegyk a meghajtba. Ha CD-rl indtjuk a teleptst, akkor kapcsoljuk be a szmtgpet s az elindulsa utn igyekezznk minl hamarabb betenni a lemezt a meghajtba. Ha minden prblkozsunk ellenre a szmtgpnk a megszokott mdon indul s a meglev opercis rendszert tlti be, akkor a kvetkezkkel lehet a gond: 1. A lemezeket nem raktuk be elgg korn. Hagyjuk benn ezeket s prbljuk meg ismt jraindtani a szmtgpet. 2. Nem lltottuk be jl a BIOS-t. Prbljuk meg egszen addig jra vgrehajtani az elz lpst, amg a megfelel belltst el nem talljuk. 3. A BIOS nem tmogatja a kivlasztott eszkzrl trtn rendszerindtst.

3.

19

Fejezet 2. A FreeBSD teleptse 5. A FreeBSD megkezdi az indulst. Ha CD-rl indtjuk, akkor valami ehhez hasonlt fogunk ltni (a konkrt verzira vonatkoz adatokat itt most kihagytuk):
Booting from CD-Rom... CD Loader 1.2 Building the boot loader arguments Looking up /BOOT/LOADER... Found Relocating the loader and the BTX Starting the BTX loader BTX loader 1.00 BTX version is 1.01 Console: internal video/keyboard BIOS CD is cd0 BIOS drive C: is disk0 BIOS drive D: is disk1 BIOS 639kB/261120kB available memory FreeBSD/i386 bootstrap loader, Revision 1.1 Loading /boot/defaults/loader.conf /boot/kernel/kernel text=0x64daa0 data=0xa4e80+0xa9e40 syms=[0x4+0x6cac0+0x4+0x88e9d] \

Amikor oppyrl indtjuk a rendszert, ehhez hasonlval tallkozhatunk (itt sem szerepelnek most verziadatok):
Booting from Floppy... Uncompressing ... done BTX loader 1.00 BTX version is 1.01 Console: internal video/keyboard BIOS drive A: is disk0 BIOS drive C: is disk1 BIOS 639kB/261120kB available memory FreeBSD/i386 bootstrap loader, Revision 1.1 Loading /boot/defaults/loader.conf /kernel text=0x277391 data=0x3268c+0x332a8 | Insert disk labelled "Kernel floppy 1" and press any key...

Kvessk a kpernyn megjelen utastst (Helyezze be a "Kernel oppy 1" cmkj lemezt s nyomjon meg egy billentyt...), teht vegyk ki a boot.flp image-hez tartoz lemezt s tegyk be helyette a kern1.flp image-hez tartoz lemezt, majd nyomjuk le az Enter billentyt. Vrjuk meg amg a rendszer megkezdi az indulst az els lemezrl, majd az utastsoknak megfelelen folyamatosan tegyk be a soron kvetkez lemezeket. 6. Miutn elindtottuk a rendszert oppyrl vagy CD-rl, a rendszerindtsi folyamat be fogja hozni a FreeBSD rendszertltjnek menjt:

20

Fejezet 2. A FreeBSD teleptse bra 2-1. FreeBSD rendszerbetlt menje

Vrjuk ki a tz msodperces sznetet vagy egybl nyomjuk le az Enter billentyt.

2.4.1.2. Rendszerindts Alphn


1. 2. 3. Kezdjnk egy kikapcsolt szmtgppel. Kapcsoljuk be a szmtgpet s vrjuk meg rendszerindt monitor parancssort. Ha a 2.3.7 Szakaszban lertak szerint ksztettnk rendszerindt lemezeket, akkor ezek valamelyike lesz majd a rendszer indtshoz hasznlt els lemez, valsznleg az, amelyik a boot.flp image-et tartalmazza. Helyezzk ezt a lemezt a hajlkonylemezes meghajtba s a rendszer indtshoz rjuk be a kvetkez parancsot (amennyiben szksges, a DVA0-rl rjuk t benne a sajt lemezes meghajtnk hivatkozst):
>>>BOOT DVA0 -FLAGS -FILE

Ha CD-rl teleptnk, akkor tegyk a CD-t a meghajtjba s a teleptshez megkezdshez rjuk be az albbi parancsot (ha szksg lenne r, rjuk t DKA0-t a sajt CD-meghajtnk hivatkozsra):
>>>BOOT DKA0 -FLAGS -FILE

4.

A FreeBSD megkezdi az indulst. Amennyiben oppyrl indtjuk, hamarosan fel fog jnni a kvetkez zenet:
Insert disk labelled "Kernel floppy 1" and press any key...

Kvessk az utastst (Helyezze be a "Kernel oppy 1" cmkj lemezt s nyomjon le egy billentyt...), teht vegyk ki a boot.flp image-et tartalmaz lemezt s tegyk be helyette a kern1.flp image-et tartalmaz lemezt, majd zrjuk le a folyamatot az Enter lenyomsval. 5. Akr oppyrl, akr CD-rl indtottuk a rendszert, a rendszerindts folyamata elbb-utbb eljut ehhez a rszhez:
Hit [Enter] to boot immediately, or any other key for command prompt. Booting [kernel] in 9 seconds... _

Az zenet fordtsa:
A kzvetlen indtshoz nyomja le az [Enter] billentyt, vagy egy

21

Fejezet 2. A FreeBSD teleptse


msik billentyt a paranccsor felhozshoz. A [kernel] indtsa 9 msodpercen bell... _

Vrjunk tz msodpercet vagy egyszeren nyomjuk le az Enter billentyt. Ezzel elindul a rendszermag belltsait tartalmaz men.

2.4.1.3. Rendszerindts SPARC64-en


A legtbb SPARC64 alap rendszert gy lltottk be, hogy automatikusan lemezrl induljon. A FreeBSD teleptshez azonban hlzaton keresztl vagy CD-rl kell indtanunk a rendszert, ezrt mdostanunk kell a PROM (az OpenFirmware) belltsait. Mindehhez indtsuk jra a rendszert s vrjuk meg, amg feltnik a rendszerindt zenet. A konkrt zenet nagyban fgg a szmtgp tpustl, azonban valami ilyesmi lesz:
Sun Blade 100 (UltraSPARC-IIe), Keyboard Present Copyright 1998-2001 Sun Microsystems, Inc. All rights reserved. OpenBoot 4.2, 128 MB memory installed, Serial #51090132. Ethernet address 0:3:ba:b:92:d4, Host ID: 830b92d4.

Amikor megprblja a rendszert elindtani a lemezrl, a PROM parancssornak bekrshez nyomjuk le a billentyzeten az L1+A vagy a Stop+A billentyket, esetleg a soros konzolon keresztl kldjnk egy BREAK parancsot (pldul a tip(1) vagy cu(1) man oldalakon szerepl ~# parancs hasznlatval). Krlbell gy nz ki:
ok ok {0}

Ez a fajta parancssor csak az egy processzorral rendelkez rendszereken jelenik meg. Ez a fajta parancssor tbbprocesszoros (SMP) rendszereken jelenik meg, ahol a szm az ppen aktv processzor sorszmt jelli.

Most helyezzk a CD-t a meghajtba, s a PROM parancssorban pedig gpeljk be boot cdrom parancsot.

2.4.2. Az eszkzkeress eredmnyeinek vizsglata


A kpernyn megjelen utols pr szz sor mindig eltroldik, ksbb tetszlegesen tvizsglhatak. A puffer tartalmnak tnzshez nyomjuk le a Scroll Lock billentyt, amivel bekapcsoljuk a korbban megjelent zenetek kzti visszalpst. Itt a nylbillentyk, vagy a PageUp s PageDown billentyk hasznlhatak a kirsok tbngszshez. A Scroll Lock ismtelt lenyomsval kilphetnk ebbl a mdbl. Tegyk most mi is ezt, s nzzk az sszes olyan zenetet, amely a rendszermag indulsa sorn keletkezett. A 2-2 braban lthat szvegekhez hasonlakat fogunk tallni, habr ez a szmtgpben tallhat konkrt eszkzktl fggen eltr lehet.

22

Fejezet 2. A FreeBSD teleptse bra 2-2. Plda az eszkzkeress eredmnyeire


avail memory = 253050880 (247120K bytes) Preloaded elf kernel "kernel" at 0xc0817000. Preloaded mfs_root "/mfsroot" at 0xc0817084. md0: Preloaded image </mfsroot> 4423680 bytes at 0xc03ddcd4 md1: Malloc disk Using $PIR table, 4 entries at 0xc00fde60 npx0: <math processor> on motherboard npx0: INT 16 interface pcib0: <Host to PCI bridge> on motherboard pci0: <PCI bus> on pcib0 pcib1:<VIA 82C598MVP (Apollo MVP3) PCI-PCI (AGP) bridge> at device 1.0 on pci0 pci1: <PCI bus> on pcib1 pci1: <Matrox MGA G200 AGP graphics accelerator> at 0.0 irq 11 isab0: <VIA 82C586 PCI-ISA bridge> at device 7.0 on pci0 isa0: <iSA bus> on isab0 atapci0: <VIA 82C586 ATA33 controller> port 0xe000-0xe00f at device 7.1 on pci0 ata0: at 0x1f0 irq 14 on atapci0 ata1: at 0x170 irq 15 on atapci0 uhci0 <VIA 83C572 USB controller> port 0xe400-0xe41f irq 10 at device 7.2 on pci 0 usb0: <VIA 83572 USB controller> on uhci0 usb0: USB revision 1.0 uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr1 uhub0: 2 ports with 2 removable, self powered pci0: <unknown card> (vendor=0x1106, dev=0x3040) at 7.3 dc0: <ADMtek AN985 10/100BaseTX> port 0xe800-0xe8ff mem 0xdb000000-0xeb0003ff ir q 11 at device 8.0 on pci0 dc0: Ethernet address: 00:04:5a:74:6b:b5 miibus0: <MII bus> on dc0 ukphy0: <Generic IEEE 802.3u media interface> on miibus0 ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto ed0: <NE2000 PCI Ethernet (RealTek 8029)> port 0xec00-0xec1f irq 9 at device 10. 0 on pci0 ed0 address 52:54:05:de:73:1b, type NE2000 (16 bit) isa0: too many dependant configs (8) isa0: unexpected small tag 14 orm0: <Option ROM> at iomem 0xc0000-0xc7fff on isa0 fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq2 on isa0 fdc0: FIFO enabled, 8 bytes threshold fd0: <1440-KB 3.5 drive> on fdc0 drive 0 atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0 atkbd0: <AT Keyboard> flags 0x1 irq1 on atkbdc0 kbd0 at atkbd0 psm0: <PS/2 Mouse> irq 12 on atkbdc0 psm0: model Generic PS/@ mouse, device ID 0 vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 sc0: <System console> at flags 0x100 on isa0 sc0: VGA <16 virtual consoles, flags=0x300> sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0 sio0: type 16550A

23

Fejezet 2. A FreeBSD teleptse


sio1 at port 0x2f8-0x2ff irq 3 on isa0 sio1: type 16550A ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0 pppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode ppc0: FIFO with 16/16/15 bytes threshold plip0: <PLIP network interface> on ppbus0 ad0: 8063MB <IBM-DHEA-38451> [16383/16/63] at ata0-master UDMA33 acd0: CD-RW <LITE-ON LTR-1210B> at ata1-slave PIO4 Mounting root from ufs:/dev/md0c /stand/sysinstall running as init on vty0

Figyelmesen olvassuk t az zeneteket, s bizonyosodjuk meg rla, hogy a FreeBSD minden szmunkra fontos eszkzt felismert. Ha nem ltunk egy eszkzt, akkor azt valsznleg nem tallta meg. Egy sajt rendszermag ltrehozsval azonban fel tudunk ismertetni olyan eszkzket is, amelyek tmogatsa eredetileg nem szerepel a GENERIC rendszermagban. Ilyenek pldul a hangkrtyk. A FreeBSD 6.2 vagy ksbbi vltozataiban az eszkzk felkutatsa utn a 2-3 braban lthatak kvetkeznek. Itt a nylbillentyk segtsgvel vlaszthatjuk ki az orszgot (country), trsget (region) vagy csoportot (group). Az Enter lenyomsa utn pillanatok alatt belltdik az orszgunknak s billentyzetnknek megfelel kioszts. Ha meg akarjuk ismtelni az imnti belltst, pillanatok alatt ki tudunk lpni a sysinstall programbl. bra 2-3. Az orszg kivlasztsa

24

Fejezet 2. A FreeBSD teleptse bra 2-4. Kilps a sysinstall programbl

A teleptprogram fkpernyjn vlasszuk ki a nylbillentykkel az Exit Install (Kilps a teleptsbl) menpontot. Erre a kvetkez zenet fog megjelenni:
User Confirmation Requested Are you sure you wish to exit? The system will reboot (be sure to remove any floppies/CDs/DVDs from the drives). [ Yes ] No

Az zenet fordtsa:
Felhasznli megersts szksges Valban ki akar lpni? A rendszer ezt kveten jra fog indulni (ezrt ne felejtsk el eltvoltani az sszes floppyt, CD-t s DVD-t a meghajtkbl)! [ Igen ] Nem

Ha a CD-t bennhagyjuk a meghajtban s a [ Yes ] vlaszt adjuk, akkor a teleptprogram mg egyszer el fog indulni. Ha oppyrl indtottuk volna a rendszert, az jraindts eltt vegyk ki a boot.flp image-et tartalmaz lemezt.

2.5. A sysinstall bemutatsa


A sysinstall a FreeBSD Projekt ltal fejlesztett teleptprogram. Konzol alap, menkre s kpernykre oszlik, amelyeken a belltsokat s a teleptsi folyamat irnytst tudjuk elvgezni. A sysinstall menrendszert tbb ms billenty mellett legfkppen a nylbillentykkel, az Enter, Tab s a Szkz billentykkel kezelhetjk. Ezek s az ltaluk elvgezhet feladatok rszletes lersa a sysinstall hasznlatrl szl informcik kztt tallhat.

25

Fejezet 2. A FreeBSD teleptse Ennek megtekintshez elszr gyzdjnk meg rla, hogy a 2-5 bra ltal illusztrlt helyzetnek megfelelen kivlasztottuk a Usage (Hasznlat) menpontot s a [Select] (Kivlaszt) felirat gombon llunk, majd nyomjuk le az Enter billentyt. Ezt kveten megjelenik a menrendszer hasznlatt bemutat lers. Miutn vgigolvastuk, a fmenbe az Enter billenty lenyomsval tudunk visszajutni. bra 2-5. A Usage kivlasztsa a sysinstall fmenjben

2.5.1. A dokumentcis men kivlasztsa


A fmenben a nylbillentykkel vlasszuk a Doc felirat menpontot s nyomjuk meg az Enter billentyt. bra 2-6. A dokumentcis men kivlasztsa

Ezzel megjelenik a dokumentcis men.

26

Fejezet 2. A FreeBSD teleptse bra 2-7. A sysinstall dokumentcis menje

Felttlenl olvassuk el az itt tallhat lersokat. A dokumentumok elolvasshoz elszr vlasszunk kzlk a nylbillentykkel, majd nyomjuk meg az Enter billentyt. A dokumentum elolvassa utn az Enter lenyomsval tudunk visszatrni a dokumentcis menbe. A dokumentcis menbl a fmenbe gy tudunk kilpni, ha a nylbillentykkel kivlasztjuk az Exit (Kilps) menpontot s megnyomjuk az Enter billentyt.

2.5.2. A billentykioszts menjnek kivlasztsa


A billentyzetkioszts megvltoztatshoz vlasszuk ki a nylbillentyk segtsgvel a Keymap menpontot a menbl s nyomjuk meg az Enter billentyt. Erre termszetesen csak akkor lesz szksgnk, ha nem szabvnyos vagy nem angol billentyzetet hasznlunk. bra 2-8. A sysinstall fmenje

27

Fejezet 2. A FreeBSD teleptse A klnbz billentykiosztsoknak megfelel menpontok a fel/le nylak s a Szkz billenty segtsgvel vlaszthatak ki. A Szkz ismtelt lenyomsval trljk a vlasztsunkat. A befejezshez vlasszuk ki a nyilakkal a [ OK ] gombot s nyomjuk le az Enter billentyt. A mellkelt kpen a lista egy rsze lthat csupn. Ha a Tab billentyvel a [ Cancel ] gombot vlasztjuk, akkor az alaprtelmezett billentykiosztst kapjuk s visszakerlnk a fmenbe. bra 2-9. A sysinstall billentykiosztst bellt menje

2.5.3. A telepts belltsai tartalmaz kperny


Vlasszuk az Options (Belltsok) menpontot, majd nyomjuk le az Enter billentyt. bra 2-10. A sysinstall fmenje

28

Fejezet 2. A FreeBSD teleptse bra 2-11. A sysinstall belltsai

Az itt szerepl alaprtelmezett rtkek a legtbb felhasznl szmra minden tovbbi nlkl megfelelnek, nem szksges a megvltoztatsuk. A kiads neve (release name) mez rtke a teleptend verzitl fggen vltozhat. A kivlasztott mez rvid lersa a kperny aljn, kkkel kiemelten jelenik meg. A Use Defaults (Az alaprtelmezsek hasznlata) bellts az alaprtelmezsre lltja vissza az sszes rtket. Az F1 lenyomsval elolvashatjuk a klnbz belltsokhoz tartoz sgt. A Q billentyvel visszatrhetnk a fmenbe.

2.5.4. Egy szabvnyos telepts megkezdse


A Standard (Szabvnyos) elnevezs menpont ltal felknlt teleptsi mdszer ajnlott a UNIX-szal vagy a FreeBSD-vel most ismerkedk szmra. A telepts megkezdshez a nyilakkal vlasszuk ki a Standard menpontot, majd nyomjuk meg az Enter billentyt.

29

Fejezet 2. A FreeBSD teleptse bra 2-12. Egy szabvnyos telepts megkezdse

2.6. Lemezterlet lefoglalsa


Els feladatunk lemezterletet foglalni a FreeBSD szmra, majd megcmkzni azt, hogy a sysinstall el tudja kszteni. Ehhez tisztban kell lennnk azzal, hogy a FreeBSD milyen formban is keresi az adatokat a lemeznkn.

2.6.1. A BIOS meghajtszmozsa


Egy tmra klnsen tekintettel kell lennnk mieltt teleptennk s belltannk a FreeBSD-t a rendszernkn, fleg abban az esetben, ha tbb merevlemeznk is van. Egy BIOS-fgg opercis rendszert, pldul MS-DOS-t vagy Windows-t futatt PC esetn a BIOS az opercis rendszer beleegyezsvel kpes elvonatkoztatni a lemezek megszokott sorrendjtl. Ennek ksznheten a felhasznl nem csak az n. primary master (elsdleges master) merevlemezes meghajttl tudja elindtani a rendszert. Ez kifejezetten knyelmes megolds az olyan felhasznlk szmra, akik az elsvel teljesen megegyez msodik merevlemez megvsrlsval kialaktottk a rendszerk egyszer s egyben a legolcsbb biztonsgi mentst, amire a Ghost vagy XCOPY programokkal tudnak rendszeres msolatokat kszteni. gy, ha az elsdleges meghajt tnkremegy vagy vrus tmadja meg, esetleg az opercis rendszer egy hiba miatt hasznlhatatlann teszi, akkor a BIOS-t utasthatjuk a meghajtk logikai cserjre s ezzel knnyen helyre tudjuk lltani. Olyan, mintha a hz felnyitsa nlkl felcserltk volna a lemezeket bekt kbeleket. A SCSI-vezrlkkel szerelt drgbb rendszerek gyakran tartalmaznak olyan BIOS-bvtseket, amelyeken keresztl a SCSI-lemezek ugyangy tetszlegesen trendezhetek, egszen ht meghajtig. Az ilyen lehetsgek hasznlathoz szokott felhasznlkat azonban knnyen csalds rheti, amikor a FreeBSD nem az elvrsaiknak megfelelen cselekszik. A FreeBSD ugyanis nem hasznlja a BIOS-t s nem ismeri a BIOS logikai meghajtkiosztst. Ez meghkkent eredmnyekre vezethet, fleg akkor, amikor paramtereiket tekintve a meghajtk zikailag teljesen megegyeznek s radsul egyms msolatait tartalmazzk.

30

Fejezet 2. A FreeBSD teleptse A FreeBSD teleptse eltt mindig lltsuk vissza a BIOS-ban a meghajtk eredeti sorrendjt, s a hasznlathoz hagyjuk is gy ezt a belltst. Ha valamirt mgis meg kellene cserlnnk a meghajtkat, akkor ezentl vlasszuk a nehezebb utat: nyissuk ki a gphzat s kssk t a kbeleket, tegyk t a jumpereket mi magunk.

SzljegyzetRszlet Frdi s Vili klnleges kalandjaibl: Vili fogott egy reg Winteles szmtgpet, hogy ksztsen belle egy FreeBSD-s rendszert Frdinek. Vili ehhez beszerel egy SCSI-meghajtt, ami gy nulls SCSI-egysg lesz, majd telepti r a FreeBSD-t. Frdi nekilt hasznlni a rendszert, azonban pr nap elteltvel tapasztalja, hogy az regecske SCSI-meghajt szmos aprbb hibt jelez, s ezrt szl Vilinek. Nhny nappal ksbb Vili eldnti, ideje pontot tenni az gy vgre, ezrt a raktrban lev SCSI-lemezek kztl elhoz az eredetivel egy teljesen megegyezt. Az elzetes felletellenrzs eredmnyei szerint a meghajt tkletesen mkdik, ezrt Vili beszerelni ezt a meghajtt a ngyes SCSI-egysgknt, majd lemsolja a nulls meghajt tartalmt a ngyesre. Miutn beszerelte a tkletesen zemel j meghajtt, Vili gy hatroz, ideje megkezdeni a hasznlatt, ezrt belltja a SCSI BIOS-t, hogy a rendszer a nulls helyett ezentl a ngyes egysgrl induljon. A FreeBSD elindul s mindenki rl. Frdi ezutn folytatja megszokott munkjt, majd Vili s Frdi gy gondoljk, itt az ideje az jabb izgalmaknak frisstsnk a FreeBSD egy jabb vltozatra. Vili ekkor eltvoltja a nulls SCSI-egysget, mivel mr egybknt is kezdett tnkremenni, s kicserli egy msik teljesen azonos lemezes meghajtra. Vili ezt kveten Frdi internetrl letlttt varzslatos oppyjainak segtsgvel feltelepti a FreeBSD j verzijt az j nulls SCSI-egysgre. A telepts minden gond nlkl lezajlik. Frdi prblgatja is a FreeBSD j vltozatt nhny napig, s szmra ez elegend bizonytk ahhoz, hogy a munkahelyn is hasznlja. Ideje ht tmsolni a rgi munkit, ezrt Frdi csatlakoztatja a (korbbi FreeBSD vltozat legfrissebb vltozatt tartalmaz) ngyes SCSI-egysget. Frdin azonban hirtelen aggodalom tr ki, hiszen a ngyes SCSI-egysgen sehol sem tallja munkja fltett eredmnyeit. Hova tntek azok a komisz adatok? Amikor Vili msolatot ksztett az eredeti nulls SCSI-egysgrl a ngyes SCSI-egysgre, a ngyes egysg egy j kln lett. Amikor a rendszerindtshoz Vili trendezte a meghajtkat a SCSI BIOS-ban, azzal csak magt csapta be, ugyanis a FreeBSD tovbbra is a nulls SCSI-egysgrl indult el! A BIOS ltal kivlasztott meghajtrl az effajta belltsok hatsra ugyan behozhat a rendszerindt s -betlt programok egy rsze, de amikor a FreeBSD rendszermagja tveszi a vezrlst, a BIOS ltal meghatrozott sorrendisg gyelmen kvl marad s a FreeBSD visszatr a meghajtk eredeti rendezshez. Teht ebben az esetben a rendszer tovbbra is az eredeti nulls SCSI-egysgrl folytatja a mkdst, s Frdi sszes adata itt tallhat, nem pedig a ngyes SCSI-egysgen. A ngyes SCSI-egysgrl fut rendszer illuzija gy mindssze az emberi elvrsok szlemnye. rmmel emltjk meg, hogy egyetlen byte-nyi adat sem srlt meg vagy pusztult el a jelensg felfedezse sorn. A korbbi nulls SCSI-egysget mg sikerlt megmenteni a szemtdombrl s Frdi sszes munkja visszakerlt (s Vili most mr el tud szmolni nullig). Habr a tanmesnkben SCSI-meghajtkrl esett sz, ugyanez fennll az IDE-meghajtkra is.

2.6.2. Slice-ok ltrehozsa az FDisk hasznlatval


Megjegyzs: Itt mg semmilyen vltoztats nem kerl lemezre. Ha gy rezzk, hogy valamit rosszul csinltunk s jra el akarjuk kezdeni a teleptst, a menk segtsgvel bntetlenl tvozhatunk a sysinstallbl s jra

31

Fejezet 2. A FreeBSD teleptse


prblkozhatunk, vagy az U billenty lenyomsval aktivlhatjuk az Undo (Visszacsinl) funkcit. Ha vletlenl sszezavarodtunk volna s nem tallunk kilpsi lehetsget, akkor brmikor ki tudjuk kapcsolni a szmtgpet.

A sysinstallban a szabvnyos telepts megkezdsekor az albbi zenet jelenik meg:


Message In the next menu, you will need to set up a DOS-style ("fdisk") partitioning scheme for your hard disk. If you simply wish to devote all disk space to FreeBSD (overwriting anything else that might be on the disk(s) selected) then use the (A)ll command to select the default partitioning scheme followed by a (Q)uit. If you wish to allocate only free space to FreeBSD, move to a partition marked "unused" and use the (C)reate command. [ OK ] [ Press enter or space ]

Az zenet fordtsa:
zenet A most kvetkez menben ssze kell lltanunk a merevlemeznk DOS-szer ("fdiskes") partciit. Amennyiben egyszeren csak t akarjuk adni az sszes lemezterletet a FreeBSD szmra (ezzel fellrva mindent, ami a kivlasztott lemezeken tallhat), akkor az alaprtelmezett partci-kioszts kivlasztshoz hasznljuk az (A)ll (Mind), majd utna a (Q)uit (Kilps) parancsokat. Ha viszont csak az ppen szabad terletet sznjuk a FreeBSD-nek, lpjnk egy "unused" ("res") felirat partcira s hasznljuk a (C)reate (Ltrehozs) parancsot. [ OK ]

[ Nyomja le az Enter vagy a Szkz billentyt ]

Az utastsnak megfelelen nyomjuk le az Enter billentyt. Ezutn a rendszermag ltal az eszkzk felkutatsa sorn megtallt sszes merevlemezes meghajtt lthatjuk. A 2-13 bra egy kt IDE-lemezzel rendelkez rendszert mutat be, amelyeknek nevei rendre ad0 s ad2.

32

Fejezet 2. A FreeBSD teleptse bra 2-13. A meghajt kivlasztsa az FDisk szmra

Feltnhet, hogy itt nem szerepel az ad1. Vajon mirt maradt ki? Kpzeljk el, mi trtnne, ha kt IDE-csatols merevlemeznk lenne: az egyik az els IDE-vezrln, a msik pedig a msodik IDE-vezrln lenne master. Ha a FreeBSD a megtallsuk szerint ad0 s ad1 nevekkel szmozn ezeket, attl mg minden remekl mkdhetne. Ha azonban beszerelnnk egy harmadik lemezt, pldul egy slave eszkzt kapcsolnnk az els IDE-vezrlre, akkor mr ez lenne a ad1, s ennek megfelelen a korbban ad1 megnevezs meghajt pedig az ad2. Mivel az llomnyrendszerek felkutatsra ltalban az eszkzneveket (mint amilyen a ad1s1a) hasznljk, ezrt ilyenkor azt tapasztalhatnnk, hogy bizonyos llomnyrendszerek helytelenl jelennek meg, ezrt meg kell vltoztatnunk a FreeBSD ezeket rint belltsait. A problma megoldsra a rendszermag bellthat gy, hogy az IDE-lemezeket a kapcsoldsuk szerint azonostsa, ne pedig a megtallsuk sorrendje szerint. Ezzel a kialaktssal a msodik IDE-vezrln tallhat master lemez mindig az ad2 eszkz lesz, teht mg olyankor is, amikor egyltaln nincs a rendszernkben ad0 vagy ad1 eszkz. Ez a bellts alaprtelmezs a FreeBSD rendszermagjban, s ez magyarzza, hogy az imnti bra mirt csak ad0 s ad2 eszkzket mutat. Teht a kpen szerepl szmtgp mind a kt IDE-vezrljnek master csatornjn tallhat egy-egy IDE-lemez, a slave csatornkon pedig nincs egy sem. Itt vlasszuk ki azt a lemezt, amelyre a FreeBSD-t telepteni kvnjuk, majd nyomjuk meg a [ OK ] gombot. Erre az 2-14 bra ltal bemutatott kpernyvel elindul az FDisk. Az FDisk kpernyje hrom rszre oszthat. Az els rszben, amely a kperny fels kt sort foglalja ssze, lthatjuk az ppen kivlasztott lemez adatait: a FreeBSD szerinti nevt, a paramtereit s az sszmrett. A msodik rszben lthatjuk a lemezen megtallhat slice-okat: hol kezddnek (Offset) s hol rnek vget (End); mekkork (Size); a FreeBSD milyen nvvel hivatkozik rjuk (Name); milyen lers (Description) s altpus (Subtype) tartozik hozzjuk. A pldban kt kicsi res slice-ot lthatunk, ami a PC-k lemezkiosztsra jellemz. Ezenkvl felfedezhetnk egy nagyobb mret FAT tpus slice-ot is, amely az MS-DOS / Windows vilgban szinte minden bizonnyal a C: betjelet viseli, valamint egy kiterjesztett slice-ot is, amely az MS-DOS / Windows szmra tovbbi meghajtkat is tartalmazhat. A harmadik rszben az FDisk mkdtetsre hasznlhat parancsok lthatak.

33

Fejezet 2. A FreeBSD teleptse bra 2-14. tlagos Fdisk partcik szerkeszts eltt

A most kvetkez teendink attl fggenek, hogy miknt is akarjuk felosztani a lemeznket. Ha az egsz lemezt a FreeBSD hasznlatra ldozzuk (s amikor majd megerstjk a sysinstall szmra a tovbblpst, a lemezen gy minden ms adat trldni fog), akkor nyomjuk le az A billentyt, amely megfelel a Use Entire Disk (Az egsz lemez hasznlata) menpontnak. A ltez slice-ok eltvoltsra kerlnek s helyettk megjelenik egy unused (res) jelzs kis mret terlet (elvgre PC-rl beszlnk), valamint egy nagyobb slice a FreeBSD szmra. Ha gy jrtunk el, akkor vlasszuk ki nyilakkal a frissen ltrejtt FreeBSD slice-ot s az S billenty lenyomsval jelljk be indthatnak (bootable). A kperny ekkor a 2-15 bra ltal mutatotthoz fog ersen hasonltani. A Flags (Belltsok) oszlopban lthatjuk az A jelzst, amelybl kiderl, hogy az adott slice aktv, teht rla tud indulni a rendszer. Ha a FreeBSD szmra egy meglev slice trlsvel szeretnnk helyet csinlni, akkor ehhez vlasszuk ki nylbillentykkel a hasznlni kivnt slice-ot s nyomjuk le a D billentyt. Ezutn nyomjuk le a C billentyt is, amire felbukkan a ltrehozand slice mrett krdez ablak. Adjuk meg a szmunkra megfelel mretet a szmunkra megfelel formban, majd zrjuk le az Enter lenyomsval. Az ablakban szerepl alaprtelmezett rtk a ltrehozhat lehet legnagyobb mret slice-ot adja meg, ami vagy a legnagyobb sszefgg res terlet, vagy pedig az egsz merevlemez sszterlete lehet. Ha mr korbban ksztettnk el helyet a FreeBSD-nek (pldul egy PartitionMagic vagy egy hozz hasonl alkalmazs segtsgvel), akkor csak elegend az j slice ltrehozshoz megnyomnunk a C billentyt. Ekkor szintn megkrdezsre kerl a ltrehozand slice mrete.

34

Fejezet 2. A FreeBSD teleptse bra 2-15. Particionls az Fdisk Using Entire Disk funkcijval

Amikor befejeztk, nyomjuk le a Q billentyt. Ekkor a sysinstall elmenti a belltott rtkeket, azonban a lemezre ekkor mg nem kerlnek ki.

2.6.3. A rendszervlaszt teleptse


Mindezek utn lehetsgnk nylik telepteni egy rendszervlasztt (boot manager). ltalban vve akkor van szksgnk a FreeBSD rendszervlasztjnak teleptsre, ha:

Egynl tbb meghajtnk van, s kzlk nem az els meghajtra teleptjk a FreeBSD-t. A FreeBSD-t ugyanazon a lemezen ms opercis rendszerek mell teleptjk, s szeretnnk vlaszthatv tenni, hogy a szmtgp indtsakor a FreeBSD vagy a tbbi opercis rendszer induljon-e el.

Amennyiben a FreeBSD lesz az egyetlen opercis rendszer a gpnkn s az els merevlemezes meghajtra teleptjk, akkor a Standard (Szabvnyos) rendszervlaszt tkletesen megteszi. Ha viszont a FreeBSD indtshoz egy msik rendszervlasztt szeretnnk hasznlni, vlasszuk a None (Nincs) opcit. Vlasszunk, majd nyomjuk le az Enter billentyt!

35

Fejezet 2. A FreeBSD teleptse bra 2-16. A sysinstall rendszervlasztkat tartalmaz menje

Az F1 billenty lenyomsn keresztl elrhet sgkpernyn olvashatunk az egy merevlemezen tbb opercis rendszer hasznlatval kapcsolatos problmkrl.

2.6.4. Slice-ok ltrehozsa egy msik meghajtn


Ha egynl tbb meghajtnk van, a program a rendszervlaszt kpernyje utn ismt visszatr a meghajtk kivlasztshoz. Amennyiben a FreeBSD-t egy msik meghajtra is telepteni szeretnnk, itt vlasszuk ki azt s ismteljk meg vele az imnt az FDisk programmal vgzett felosztsi folyamatot.
Fontos: Amikor a FreeBSD-t nem az els meghajtra teleptjk, akkor a FreeBSD rendszervlasztjt mind a kt meghajtra telepteni kell.

36

Fejezet 2. A FreeBSD teleptse bra 2-17. Kilps a meghajtvlaszt menbl

A Tab billentyvel tudunk vltani a legutoljra kivlasztott meghajt, a [ OK ] s a [ Cancel ] gombok kztt. Az [ OK ] gombra llshoz nyomjuk le egyszer a Tabot, majd a telepts folytatshoz nyomjuk le az Enter billentyt.

2.6.5. Partcik ltrehozsa a Disklabel segtsgvel


A kvetkez lpsknt ltre kell hoznunk partcikat a frissen ltrehozott slice-okban. Ne felejtsk el, hogy minden partci rendelkezik egy a-tl h-ig terjed betjellel, amelyek kzl a b, c s d jelzseknek kln szerepe van, amire tekintettel kell lennnk. Bizonyos alkalmazsok kedvelnek egyes partcikiosztsi smkat, klnsen az egynl tbb lemezen elhelyezked partcikat. Azonban az els FreeBSD teleptsnk sorn mg nem annyira fontos koncentrlnunk a lemeznk hatkony felosztsra. Sokkal inkbb fontosabb, hogy elszr egyszeren csak teleptsk a FreeBSD-t s tanuljuk meg a hasznlatt. Amikor mr jobban ismerni fogjuk az opercis rendszert, a partcik kiosztsnak megvltoztatshoz mindig jra tudjuk telepteni a FreeBSD-t. Ebben a smban ngy partci szerepel egy a lapozllomnynak s hrom az llomnyrendszereknek. Tblzat 2-2. Az els lemez partciinak kiosztsa Partci llomnyrendszer Mret Lers

37

Fejezet 2. A FreeBSD teleptse Partci


a

llomnyrendszer Mret
/

Lers Ez a rendszerindtshoz hasznlt, ms nven a gykr llomnyrendszer (root lesystem). Minden tovbbi llomnyrendszer ehhez csatlakozik valahol. Ennek az llomnyrendszernek 512 MB mret elfogadhat, mivel nem fogunk tlsgosan sok adatot trolni rajta, a FreeBSD teleptje is csak kb. 128 MB adatot fog ide pakolni. Az gy fennmarad lemezterlet felhasznlhat tmeneti adatok trolsra, illetve a / knyvtrban helyet ad a FreeBSD ksbbi vltozatainak terjeszkedshez is.
a

512 MB

b e

/var

RAM mrete x 2-3 256 MB-tl 1024 MB-ig

A /var knyvtr foglalja magban az lland vltoz naplllomnyokat, valamint a tbbi, adminisztrcihoz hasznlt llomnyt. Ezek tbbsge a FreeBSD mindennapos mkdse kzben folyamatosan rdnak vagy olvasdnak. Ha ezeket az llomnyokat egy kln llomnyrendszerre rakjuk, akkor ezzel segtnk a FreeBSD-nek optimalizlni az ilyen llomnyok elrst anlkl, hogy ez hatssal lenne a tbbi, ms hozzfrsi gyakorisggal br llomnyra.

/usr

A lemez tbbi Az sszes tbbi llomny tbbnyire a /usr knyvtrban s annak rsze (legalbb alknyvtraiban helyezkedik el. 2 GB)

Megjegyzsek: a. A rendszer lapozllomnya a b partcin troldik. Itt a megfelel mret megvlasztsa egyfajta mvszet, azo
FigyelemAz imnt megadott rtkeket csak pldaknt adtuk meg s csak a tapasztalt felhasznlk szmra ajnljuk. A tbbi felhasznlnak inkbb a partcik automatikus kiosztst javasoljuk a FreeBSD partciszerkesztjben tallhat Auto Defaults opci hasznlatval.

Ha a FreeBSD-t egynl tbb lemezre teleptjk, akkor a korbban megadott tbbi slice-ban is ltre kell hoznunk partcikat. Ezt legegyszerbben gy tehetjk meg, ha minden lemezen ltrehozunk kt partcit: egyet a lapozllomnynak, egyet pedig az llomnyrendszernek. Tblzat 2-3. Tbb lemez partciinak kiosztsa Partci
b

llomnyrendszer Mret Lsd a lerst

Lers Ahogy mr korbban is emltettk, szt tudjuk osztani a lapozllomnyt a lemezek kztt. Habr az a partci szabad, a hagyomnyok mgis azt diktljk, hogy a lapozshoz hasznlt terlet maradjon a b partcin.

38

Fejezet 2. A FreeBSD teleptse Partci


e

llomnyrendszer Mret /diskn A lemez tbbi rsze

Lers A lemez fennmarad rsze egyetlen nagy partcival fedhet le. Ez az e partci helyett lehetne minden tovbbi nlkl az a partci, azonban a hagyomnyok szerint az a partcinak a rendszer gykr llomnyrendszert (/) kell tartalmaznia. Neknk ugyan nem kellene ezt a megszokst kvetnnk, azonban a sysinstall viszont gy tesz, ezrt ezzel a vlasztssal csak magunkkal tesznk jt. Az llomnyrendszer brhov csatlakoztathat ebben a pldban a lemezeket rendre a /diskn knyvtrakhoz csatoltuk, ahol az n az adott lemez sorszma. De itt termszetesen ms rendszert is kvethetnk.

A partcik elrendezsnek kigondolsa utn most mr ltre is hozathatjuk ezeket a sysinstall segtsgvel. Ekkor a kvetkez zenetet fogjuk ltni:
Message Now, you need to create BSD partitions inside of the fdisk partition(s) just created. If you have a reasonable amount of disk space (200MB or more) and dont have any special requirements, simply use the (A)uto command to allocate space automatically. If you have more specific needs or just dont care for the layout chosen by (A)uto, press F1 for more information on manual layout. [ OK ] [ Press enter or space ]

Az zenet fordtsa:
zenet Most ltre kell hoznunk az fdiskkel nemrg elksztett partcikban a BSD-s partcikat. Ha van hozz elegend helynk (200 MB vagy tbb) s nincs semmilyen klnleges elvrsunk, akkor egyszeren csak osszuk fel automatikusan az (A)uto paranccsal. Amennyiben azonban ennl tbbre lenne szksgnk, vagy csak nincs szksgnk az (A)uto ltal felknlt smra, az F1 lenyomsra bvebb informcikat is kaphatunk a kzi kioszts lehetsgeirl. [ OK ] [ Nyomja le az Enter vagy a Szkz billentyt ]

Nyomjuk le a Enter billentyt a FreeBSD partciszerkesztjnek, avagy a Disklabel elindtshoz. A 2-18 bra mutatja a Disklabel els elindulsakor megjelen kpet. A kperny hrom rszre tagolhat. A fels pr sorban a jelenleg hasznlt lemez nevt lthatjuk, valamint azt a slice-ot, ami az ltalunk ltrehozott partcikat tartalmazza (itt a Disklabel a Partition name megnevezssel hivatkozik a slice-ra). A kpernyn tovbb lthatjuk a slice-ban lev szabad helyet is, vagyis azt a helyet, amely ugyan a slice-hoz tartozik, viszont mg nem rendeltnk hozz partcit.

39

Fejezet 2. A FreeBSD teleptse A kperny kzepn tallhatak az eddig mr ltrehozott partcik, az ltaluk tartalmazott llomnyrendszerek, azok mrete s az llomnyrendszerek ltrehozsra vonatkoz klnbz belltsok. A kperny als harmadban a Disklabel programban hasznlhat billentyk felsorolsa szerepel. bra 2-18. A sysinstall Disklabel partciszerkesztje

A Disklabel kpes magtl partcikat kszteni a nekik megfelel alaprtelmezett mretekkel. A partcik automatikus mrett egy bels partcimretez algoritmus szmtja ki a lemez sszmrete alapjn. Prbljuk most mi is ezt ki, s nyomjuk le az A billentyt. Ekkor a 2-19 bra szerint illusztrltaknak megfelel kpernyt tapasztalhatunk. A hasznlt lemez mrettl fggen az alaprtelmezett rtkek megfelelek lesznek vagy sem. Ez igazbl nem szmt, hiszen nem kell felttlenl elfogadnunk az alaprtelmezetten megllaptott rtkeket.
Megjegyzs: Az alaprtelmezett partcionlsi smban a /tmp knyvtr nem a / knyvtr rsze lesz, hanem sajt partcit kapott. Ezzel igyeksznk elkerlni, hogy a / partci tmenetileg trolt llomnyokkal teljen be.

40

Fejezet 2. A FreeBSD teleptse bra 2-19. A sysinstall Disklabel partciszerkesztje, alaprtelmezett rtkekkel

Ha nem az alaprtelmezett partcikat szeretnnk hasznlni, s le akarjuk vltani ezeket a sajt magunk ltal megadottakra, akkor a nylbillentykkel vlasszuk ki az els partcit s a trlshez nyomjuk meg a D billentyt. Hasonlan jrjunk el az sszes tbbi javasolt partci trlshez. Az els (a, vagyis a / knyvtrknt, azaz a gykrknt csatolt) partci elksztshez elszr gyzdjnk arrl, hogy a fels sorban a megfelel slice van kivlasztva, majd nyomjuk meg a C billentyt. Ekkor az j partci mrett krdez prbeszdablak jelenik meg (lsd: 2-20 bra). Itt a mret a lemez blokkjainak szmban adhat meg, amit viszont M-mel lezrva megabyte-ban, G-vel gigabyte-ban vagy C-vel cilinderben is kifejezhetnk. bra 2-20. Szabad hely a gykrpartcin

Az alaprtelmezs szerint felknlt mret az egsz slice-ot lefoglal partcit hoz ltre. Amennyiben a korbbi pldban trgyalt partcimreteket kvnjuk hasznlni, akkor a Backspace billenty hasznlatval trljk ki az gy megadott rtket, s helyette gpeljk be, hogy 512M, ahogy ez a 2-21 bra segtsgvel is lthat. A bevitelt zrjuk a [ OK ] gomb lenyomsval.

41

Fejezet 2. A FreeBSD teleptse bra 2-21. A gykrpartci mretnek szerkesztse

Miutn meghatroztuk a partci mrett, a telept megkrdezi, hogy a ltrehozand partciban llomnyrendszer vagy lapozllomny foglaljon-e helyet. Ennek a prbeszdablakjt a 2-22 bra mutatja. Mivel az els partcink llomnyrendszert fog tartalmazni, ezrt mindenkppen az FS paramtert vlasszuk ki, majd nyomjuk meg az Enter billentyt. bra 2-22. A gykrpartci tpusnak kivlasztsa

Vgezetl, mivel egy llomnyrendszert hoztunk ltre, meg kell mondanunk a Disklabelnek, hova csatlakoztassa. A hozztartoz prbeszdablak a 2-23 bran lthat. A gykr llomnyrendszer csatlakozsi pontja a /, ezrt itt csak annyit adjunk meg, hogy / s zrjuk az Enter billenty lenyomsval.

42

Fejezet 2. A FreeBSD teleptse bra 2-23. A gykr csatlakozsi pontjnak megadsa

A kpernyn lthat lista ezutn az jonnan ltrehozott partcinak megfelelen frissl. A tbbi partcira ugyangy meg kell ismtelnnk ezt a mveletsort. Arra azonban gyeljnk, hogy a lapozsra hasznlt partcit ltrehozsnl a szerkeszt nem fogja megkrdezni a csatlakozsi pontot, hiszen az ilyen tpus partcikat sosem csatlakoztatjuk. A /usr, vagyis az utols partci ksztse sorn a slice fennmarad rsznek lefoglalshoz mr nyugodtan meghagyhatjuk a felajnlott rtket. A FreeBSD partciszerkesztjnek utols kpernyje a 2-24 bran hasonlhoz, habr az ltalunk vlasztott rtkek minden bizonnyal eltrnek. A mvelet befejezshez nyomjuk le a Q billentyt. bra 2-24. A Disklabel partciszerkeszt

43

Fejezet 2. A FreeBSD teleptse

2.7. A teleptend sszetevk kivlasztsa


2.7.1. A terjesztsek tpusnak kivlasztsa
A teleptend terjesztsek tpusa nagyban fgg attl, hogy a rendszernket mire szndkozzuk majd hasznlni s mennyi szabad hely ll rendelkezsnkre. Az elre megadott belltsok a lehet legkisebb kongurci teleptstl egszen a komplett rendszer teleptsig terjednek. A UNIX s/vagy FreeBSD vilgban mg az j felhasznlk szmra szinte tkletesen megfelelnek bizonyulhat az egyik ilyen elksztett bellts kivlasztsa. A terjesztsek kivlogatsa pedig ltalban a tapasztaltabb felhasznlk szmra lehet hasznos. Az F1 billentyvel tbbet is megtudhatunk a terjesztsek klnbz tpusairl s bennk tallhat sszetevkrl. Miutn befejeztk a sg ttanulmnyozst, nyomjuk le az Enter billentyt, s ezzel visszatrnk a terjesztsek kivlasztst tartalmaz menbe. ltalnos alapelv, hogy ha grakus felletet szeretnnk hasznlni, akkor az X-szel kezdd terjesztsi tpusok kzl vlasszunk. Az X szerver s az alaprtelmezett munkakrnyezet belltst a FreeBSD teleptse utn tudjuk majd megtenni. Az X szerver belltsrl rszletesebben a 5 fejezetban olvashatunk. Az X11 alaprtelmezett vltozataknt az Xorg kerl fel. Ha egy sajt rendszermag ptst is fontolgatjuk, akkor olyan terjesztst vlasszuk, amiben a forrskd (kernel source) is megtallhat. A sajt rendszermag ptsnek htterrl s mikntjrl lsd a 8 fejezetet. rtelemszeren a legsokoldalbb rendszer az, amiben minden megtallat. gy aztn, ha a lemeznk is megengedi, a nyilak s az Enter hasznlatval vlasszuk a All (Minden) opcit, ahogy azt az 2-25 bra is mutatja. Ha viszont gy rezzk, hogy ehhez nem elgg nagy a lemeznk, akkor vlasszuk az ignyeinkhez jobban illeszked tpust. Sokat azonban ne ljnk a tkletes megolds kitlsn, hiszen ezek a terjesztsek mg a telepts befejezse utn is hozzadhatak a rendszernkhz. bra 2-25. A terjesztsek kivlasztsa

44

Fejezet 2. A FreeBSD teleptse

2.7.2. A Portgyjtemny teleptse


Miutn kivlasztottuk a neknk megfelel terjesztst, a teleptprogram felajnlja a FreeBSD Portgyjtemnynek (Ports Collection) teleptsnek lehetsgt. A portok gyjtemnye a szoftverek teleptsnek egyszer s knyelmes mdja. A Portgyjtemny nmaga nem tartalmazza a szoftverek lefordtshoz szksges forrskdot, hanem helyette csupn azokat az llomnyokat, amelyek a klnbz klss programok letltshez, fordtshoz s teleptshez kellenek. A 4 fejezetben megtallhatjuk, miknt is kell hasznlni ezt a gyjtemnyt. A teleptprogram nem fogja ellenrizni a kibontshoz szksges helyet, ezrt csak abban az esetben vlasszuk ezt a lehetsget, ha mindenkppen elfr a merevlemeznkn. A FreeBSD jelenlegi, 8.0 vltozatban a Portgyjtemny nagyjbl 417 MB helyet foglal el a lemezen. A FreeBSD frissebb verziiban nyugodtan felttelezhetnk ennl valamivel nagyobb rtket is.
User Confirmation Requested Would you like to install the FreeBSD ports collection? This will give you ready access to over 20 000 ported software packages, at a cost of around 417 MB of disk space when "clean" and possibly much more than that if a lot of the distribution tarballs are loaded (unless you have the extra CDs from a FreeBSD CD/DVD distribution available and can mount it on /cdrom, in which case this is far less of a problem). The Ports Collection is a very valuable resource and well worth having on your /usr partition, so it is advisable to say Yes to this option. For more information on the Ports Collection & the latest ports, visit: http://www.FreeBSD.org/ports [ Yes ] No

Az zenet fordtsa:
Felhasznli megersts szksges Szeretn telepteni a FreeBSD portjainak gyjtemnyt? Ezen keresztl kzel 20 000 portolt szoftvercsomaghoz tudunk knnyedn hozzfrni, amelyek "tiszta" llapotukban nagyjbl 417 MB lemezterletnkbe kerlnek, ami a ksbbiekben valsznleg majd nvekedni fog, ahogy letltjk a klnbz szoftverekhez tartoz llomnyokat (hacsak nincs meg a FreeBSD valamelyik CD- vagy DVD alap terjesztsnek az sszes lemeze, amelyeket a /cdrom knyvtrba csatlakoztatva el tudjuk ezeket rni, mert ekkor kevesebb gondunk lesz vele). A Portgyjtemny egy nagyon rtkes erforrs, amelynek megri helyet szentelni a /usr partcinkon, ezrt javasoljuk, hogy vlassza az "Igen" opcit. A Portgyjtemnyrl s annak legjabb portjairl a http://www.FreeBSD.org/ports oldalon olvashat rszletesebben. [ Igen ] Nem

45

Fejezet 2. A FreeBSD teleptse A Portgyjtemny teleptshez a [ Yes ] gombot, ennek kihagyshoz pedig a [ No ] gombot vlasszuk ki a nyilakkal, majd az Enter lenyomsval mehetnk tovbb. Ekkor a kivlasztott terjesztsek menje fog jra megjelenni. bra 2-26. A terjesztsek teleptsnek megerstse

Ha elgedettek vagyunk a belltsokkal, vlasszuk ki a nyilakkal az Exit menpontot, gyzdjnk meg rla, hogy a [ OK ] gombon llunk, majd nyomjuk le az Enter billentyt a folytatshoz.

2.8. A telepts eszkznek kivlasztsa


Ha CD-rl vagy DVD-rl teleptnk, akkor a kvetkez kpernyn a nylbillentykkel vlasszuk ki a Install from a CDROM or DVD (Telepts CD-rl vagy DVD-rl) menpontot. gyeljnk a [ OK ] gomb kivlasztsra is, majd a telepts megkezdshez nyomjuk meg az Enter billenyt. A telepts msfajta mdszereinek alkalmazshoz vlasszuk ki a menpontok kzl a neknk megfelelt s kvessk a megjelen utastsokat. Az F1 billenty lenyomsra megjelenik az adott telepteszkzhz tartoz sg. Innen az Enter lenyomsa utn trhetnk vissza a menhz.

46

Fejezet 2. A FreeBSD teleptse bra 2-27. A teleptsi eszkz kivlasztsa

Telepts FTP szerverrl: Hrom FTP-s teleptsi md kzl vlaszthatunk: aktv, passzv vagy HTTP proxyn keresztl. Aktv FTP: Install from an FTP server (Telepts FTP szerverrl) Ezzel a belltssal az sszes FTP-n keresztli tvitel aktv mdban trtnik. Ez tzfalak esetn nem mkdik, de gyakran alkalmazhat olyan rgebbi FTP szerverek esetn, amelyek nem ismerik az passzv adattvitelt. Ha (az alaprtelmezett) passzv mdban megakadna a kapcsolat, prbljunk meg helyette az aktvat. Passzv FTP: Install from an FTP server through a rewall (Telepts tzfalon keresztl FTP szerverrl)

Ezzel a belltssal a sysinstall programot az FTP mvelet vgrehajtsakor a passzv md hasznlatra utastjuk. gy t tudunk menni olyan tzfalakon is, amelyek nem engedik a vletlenszer TCP portokon rkez kapcsolatokat. FTP HTTP proxyn keresztl: Install from an FTP server through a http proxy (Telepts HTTP proxyn keresztl FTP szerverrl)

Ezzel a belltssal megmondhatjuk a sysinstall programnak, hogy (egy bngszhz hasonlan) a HTTP protokollon keresztl hasznlja az FTP mveletek elvgzshez hasznlt proxyt. Ennek a proxynak lesz a feladata az tadott krsek lefordtsa s elkldse az FTP szervernek. Ennek ksznheten t tudunk menni olyan tzfalakon is, amelyek egyltaln nem engednek semmilyen FTP mveletet, azonban tartozik hozzjuk egy HTTP proxy. Ilyenkor az FTP szerver belltsai mellett meg kell adnunk ezt a HTTP proxyt is. Az FTP szervert proxyn keresztl ltalban gy rjk el, hogy a felhasznli nv rszeknt egy @ jellel elvlasztva megadjuk a tnylegesen elrni kvnt szerver nevt. A proxy szerver ezutn helyettesti a valdi szervert. Pldul tegyk fel, hogy a ftp.FreeBSD.org szerverrl akarunk telepteni az 1234 porton vrakoz ize.minta.com proxy hasznlatval. Ehhez lpjnk be a belltsokat tartalmaz menbe, lltsuk az FTP kapcsolathoz hasznlt felhasznli nevet az ftp@ftp.FreeBSD.org rtkre, majd jelsznak adjuk meg az e-mail cmnket. Teleptsi eszkzknt adjuk

47

Fejezet 2. A FreeBSD teleptse


meg az FTP-t (vagy a passzv FTP-t, amennyiben a proxy ismeri) s a ftp://ize.minta.com:1234/pub/FreeBSD cmet. Mivel az ftp.FreeBSD.org cmrl szrmaz /pub/FreeBSD knyvtr a ize.minta.com szerveren keresztl rhet el szmunkra, ezrt lnyegben arrl a gprl fogunk telepteni (amely pedig a telept krseire elhozza a ftp.FreeBSD.org szervertl az llomnyokat).

2.9. A telepts vglegestse


Ezutn ha hajtjuk, megkezdhetjk a teleptst. Ez egyben az utols lehetsgnk a telepts megszaktsra s merevlemeznket rint vltoztatsok rvnytelentsre.
User Confirmation Requested Last Chance! Are you SURE you want to continue the installation? If youre running this on a disk with data you wish to save then WE STRONGLY ENCOURAGE YOU TO MAKE PROPER BACKUPS before proceeding! We can take no responsibility for lost disk contents! [ Yes ] No

Az zenet fordtsa:
Felhasznli megersts szksges Utols esly: BIZTOSAN folytatni kvnja a teleptst? Ha olyan lemezre szeretne telepteni, amelyen fontos adatok tallhatak, HATROZOTTAN JAVASOLJUK, hogy a tovbblps eltt KSZTSEN RLUK MEGBZHAT BIZTONSGI MSOLATOT! Nem vllalunk semmilyen felelssget az elvesztett adatokrt! [ Igen ] Nem

A tovbblpshez vlasszuk a [ Yes ] gombot s nyomjuk meg az Enter billentyt. A telepts idtartama a kivlasztott terjesztstl, a teleptsre hasznlt eszkztl s szmtgpnk sebessgtl fgg. A folyamat elrehaladsrl zenetek sorozata tjkoztat minket. A telepts befejezse utn a kvetkez zenet jelenik meg:
Message Congratulations! You now have FreeBSD installed on your system. We will now move on to the final configuration questions. For any option you do not wish to configure, simply select No. If you wish to re-enter this utility after the system is up, you may do so by typing: /usr/sbin/sysinstall.

48

Fejezet 2. A FreeBSD teleptse

[ OK ] [ Press enter or space ]

A szveg fordtsa:
zenet Gratullunk, sikeresen teleptette a FreeBSD rendszert a szmtgpre! Most rtrnk az utols nhny krdsre. A "Nem" vlasztsval egyszeren tugorhatjuk mindazt, amit nem szeretnnk belltani. Ezt a segdprogramot a rendszer jbli elindtsa utn a "/usr/sbin/sysinstall" parancs begpelsvel tudjuk elrni. [ OK ] [ Nyomja le az Enter vagy a Szkz billentyt ]

Az Enter billenty lenyomsval megkezdhetjk a telepts utni belltsokat. A [ No ] gomb kivlasztsval s az Enter lenyomsval megszakthatjuk a teleptst, gy a rendszernkn semmilyen vltoztats nem trtnik. Ilyenkor a kvetkez zenet jelenik meg:
Message Installation complete with some errors. You may wish to scroll through the debugging messages on VTY1 with the scroll-lock feature. You can also choose "No" at the next prompt and go back into the installation menus to retry whichever operations have failed. [ OK ]

Az zenet fordtsa:
zenet A telepts sorn hiba trtnt. A Scroll Lock hasznlatval rdemes tnzni a VTY1 terminl megjelen zeneteket. A kvetkez ablakban a "Nem" vlasztsval vissza tudunk menni a teleptmenhz s megprblkozhatunk ismt a sikertelen mveletek vgrehajtsval. [ OK ]

Ez az zenet azrt jelent meg, mert semmit sem sikerlt telepteni. Innen az Enter megnyomsval trhetnk vissza a fmenbe, majd onnan tudunk kilpni a teleptbl.

2.10. A telepts utn


A sikeres teleptst klnfle belltsok kvetik. Kzlk az j FreeBSD rendszer indtsa eltt brmelyik megismtelhet a belltsok opciit tartalmaz men jbli hasznlatval, vagy pedig a telepts utn a sysinstall parancs kiadsval, majd a Congure (Belltsok) menpont kivlasztsval.

49

Fejezet 2. A FreeBSD teleptse

2.10.1. A hlzati eszkzk belltsa


A kvetkez kperny mr nem jelenik meg, ha az FTP szerveren keresztli teleptshez korbban mr belltottuk a PPP kapcsolatot. Ez a korbbiakban emltettek szerint llthat be. Ha tbbet szeretnnk megtudni a helyi hlzatokrl (LAN), vagy a FreeBSD-t tjrknt, illetve tvlasztknt kvnjuk belltani, olvassuk el az Egyb halad hlzati tmk cm fejezetet.
User Confirmation Requested Would you like to configure any Ethernet or SLIP/PPP network devices? [ Yes ] No

Fordtsa:
Felhasznli megersts szksges Szeretnnk belltani valamilyen Ethernet- vagy SLIP/PPP hlzati eszkzt? [ Igen ] Nem

A hlzati eszkzeink belltshoz vlasszuk a [ Yes ] gombot, majd nyomjuk meg az Enter billentyt. Ellenkez esetben a [ No ] gombbal mehetnk tovbb. bra 2-28. Az Ethernet-eszkz kivlasztsa

A belltand csatol kivlasztshoz hasznljuk a nylbillentyket s utna nyomjuk meg az Enter billentyt.
User Confirmation Requested Do you want to try IPv6 configuration of the interface? Yes [ No ]

Fordts:
Felhasznli megersts szksges Megprblkozik az IPv6 belltsval a csatoln?

50

Fejezet 2. A FreeBSD teleptse


Igen [ Nem ]

A pldnkban szerepl helyi hlzatban az aktulis internetes protokoll (IPv4) egyelre megfelel, ezrt vlasszuk a [ No ] gombot s nyomjuk meg az Enter billentyt. Amennyiben RA-szerveren keresztl egy mr ltez IPv6 hlzathoz csatlakozunk, akkor vlasszuk a [ Yes ] gombot s nyomjuk meg az Enter billentyt. Ezt kveten az RA-szerverek feldertse kezddik meg, ami nhny msodpercig eltarthat.
User Confirmation Requested Do you want to try DHCP configuration of the interface? Yes [ No ]

Az zenet fordtsa:
Felhasznli megersts szksges Megprblkozik a DHCP hasznlatval a csatoln? Igen [ Nem ]

Ha nincs szksgnk a DHCP (Dynamic Host Conguration Protocol, azaz a Dinamikus llomskongurcis protokoll) hasznlatra, akkor a [ No ] gomb kivlasztsval majd az Enter lenyomsval tovbblphetnk. A [ Yes ] gomb kivlasztsra elindul a dhclient nev program, s amennyiben sikerrel jr, magtl kitlti a hlzati belltsokra vonatkoz adatokat. Ennek rszleteit a 29.5 Szakaszben tallhatjuk meg. Az albbi hlzati bellt kperny mutatja a helyi hlzat tjrjaknt hasznlni kvnt Ethernet-eszkz kongurcijt. bra 2-29. Az ed0 hlzati belltsa

A Tab billentyvel tudunk naviglni az adatlap mezi kztt s kitlteni ezeket a megfelel informcikkal: Host (Szmtgpnv) A szmtgpnk teljes neve, amely a pldban most k6-2.example.com.

51

Fejezet 2. A FreeBSD teleptse Domain (Tartomny) Annak a tartomnynak a neve, amelyben a szmtgpnk a tallhat. Ez itt konkrtan a example.com. IPv4 Gateway (IPv4-tjr) A helyben nem elrhet clok megkzeltsre hasznlt gp IP-cme. Ezt a mezt mindenkppen tltsk ki akkor, ha a szmtgpnk valamilyen hlzatba van ktve. Azonban hagyjuk resen, ha a szmtgp a hlzat tjrja az internet fel. Az IPv4 tjrt ms nven default gateway-nek (alaprtelmezett tjrnak) vagy default route-nak (alaprtelmezett tvonalnak) is nevezik. Name server (Nvszerver) A helyi DNS (nvfelold) szervernk IP-cme. Ha nem tallhat ilyen a helyi hlzatunkon, akkor az internet-szolgltat DNS szervernek cmt (a pldban ez a 208.163.10.2) adjuk meg. IPv4 address (IPv4-cm) A csatol IP-cme, amely az brn a 192.168.0.1. Netmask (Hlzati maszk) A helyi hlzatban hasznlt cmtartomny a 192.168.0.0 - 192.168.0.255, amihez a 255.255.255.0 hlzati maszk tartozik. Extra options to ifcong (Az ifcong tovbbi belltsai) Az ifconfig parancs adott csatolra vonatkoz egyb belltsai. Jelen esetnkben itt semmi sem szerepel. Miutn vgeztnk, a Tab billenty lenyomsval vlasszuk ki a [ OK ] gombot s nyomjuk le az Enter billentyt.
User Confirmation Requested Would you like to Bring Up the ed0 interface right now? [ Yes ] No

A fordts:
Felhasznli megersts szksges Aktivlja most az ed0 csatolt? [ Igen ] Nem

A [ Yes ] gomb kivlasztsval, majd az Enter lenyomsval csatlakoztatjuk a szmtgpet a hlzathoz, ami ezutn hasznlhatv vlik. Ez azonban a telepts szmra nem jelent tlsgosan sokat, hiszen ettl fggetlenl a szmtgpet egybknt is jra kell majd indtanunk.

2.10.2. Az tjr belltsa


User Confirmation Requested Do you want this machine to function as a network gateway? [ Yes ] No

52

Fejezet 2. A FreeBSD teleptse A fordts:


Felhasznli megersts szksges Ezt a szmtgpet hlzati tjrknt is hasznlni akarja? [ Igen ] Nem

Ha a szmtgpet a helyi hlzat tjrjaknt hasznlni akarjuk gpek kzti csomagok tovbbtsra, akkor vlasszuk a [ Yes ] gombot s nyomjuk meg hozz az Enter billentyt. Ha viszont ez a gp csupn a hlzat egy tagja, akkor vlasszuk a [ No ] gombot s a folytatshoz nyomjuk meg az Enter billentyt.

2.10.3. A hlzati szolgltatsok belltsa


User Confirmation Requested Do you want to configure inetd and the network services that it provides? Yes [ No ]

Fordts:
Felhasznli megersts szksges Belltja az inetd dmont s az ltala felknlt hlzati szolgltatsokat? Igen [ Nem ]

Ha itt a [ No ] gombot vlasztjuk, akkor ezzel kikapcsoljuk a klnbz szolgltatsokat, pldul a telnetd dmont. Ez azt jelenti, hogy a tvoli felhasznlk nem lesznek kpesek a telnet program hasznlatval belpni erre a szmtgpre. A helyi felhasznlk viszont tovbbra is kpesek lesznek tvoli szmtgpeket elrni a telnet segtsgvel. Az /etc/inetd.conf trsval azonban ezek a szolgltatsok ksbb termszetesen engedlyezhetek. A 29.2.1 Szakasz foglalkozik a tma rszleteivel. A [ Yes ] gomb vlasztsval mr a telepts sorn bellthatjuk a szolgltatsokat. Ekkor egy tovbbi prbeszdablak is felbukkan:
User Confirmation Requested The Internet Super Server (inetd) allows a number of simple Internet services to be enabled, including finger, ftp and telnetd. Enabling these services may increase risk of security problems by increasing the exposure of your system. With this in mind, do you wish to enable inetd? [ Yes ] No

Fordtsa:
Felhasznli megersts szksges A f internetes kiszolgl (az inetd) szmos egyszer internetes szolgltats, tbbek kzt a finger, ftp s telnet elrst teszi lehetv. Ezen szolgltatsok engedlyezse azonban a felmerl

53

Fejezet 2. A FreeBSD teleptse


biztonsgi problmk kockzatt, mivel ezzel rendszernket jobban kitesszk tmadsoknak. Mindezek tudatban hasznlni kvnja az inetd dmont? [ Igen ] Nem

A folytatshoz vlasszuk a [ Yes ] gombot.


User Confirmation Requested inetd(8) relies on its configuration file, /etc/inetd.conf, to determine which of its Internet services will be available. The default FreeBSD inetd.conf(5) leaves all services disabled by default, so they must be specifically enabled in the configuration file before they will function, even once inetd(8) is enabled. Note that services for IPv6 must be separately enabled from IPv4 services. Select [Yes] now to invoke an editor on /etc/inetd.conf, or [No] to use the current settings. [ Yes ] No

Fordts:
Felhasznli megersts szksges Az inetd(8) dmonnak az elrhet internetes szolgltatsok megllaptshoz szksge van a belltsait tartalmaz /etc/inetd.conf llomnyra. A FreeBSD-hez tartoz inetd.conf(5) llomny alaprtelmezs szerint az sszes szolgltatst letiltja, ezrt a mkdshez minden egyes szolgltatst kln kell engedlyezni az emltett llomnyban, mg abban az esetben is, ha az inetd(8) dmont korbban mr engedlyeztk. Az IPv6 szolgltatsok az IPv4 szolgltatsoktl kln engedlyezendek. Az [ Igen ] vlasztsval behvjuk az /etc/inetd.conf szerkesztst, mg a [ Nem ] vlasztsval pedig az imnt felvzolt belltsokat fogadjuk el. [ Igen ] Nem

A [ Yes ] gomb kivlasztsval lehetsgnk nylik szolgltatsokat engedlyezni a sorok elejn tallhat # jel trlsvel.

54

Fejezet 2. A FreeBSD teleptse bra 2-30. Az inetd.conf mdostsa

Miutn felvettk az sszes hasznlni kvnt szolgltatst, az Esc billenty lenyomsval elhozhatjuk azt a ment, ahol elmenthetjk a mdostsainkat s kilphetnk.

2.10.4. Az SSH-n keresztli bejelentkezs engedlyezse


User Confirmation Requested Would you like to enable SSH login? Yes [ No ]

Fordts:
Felhasznli megersts szksges Engedlyezi az SSH-n keresztli bejelentkezst? Igen [ Nem ]

A [ Yes ] gomb kivlasztsa engedlyezi az OpenSSH-hoz tartoz sshd(8) dmont, aminek segtsgvel a szmtgpnkre biztonsgosan be tudunk jelentkezni tvolrl. Az OpenSSH rszleteirl lsd a 14.11 Szakaszt.

2.10.5. Anonim FTP


User Confirmation Requested Do you want to have anonymous FTP access to this machine? Yes [ No ]

Fordts:
Felhasznli megersts szksges Hozzfrhet legyen ez a szmtgp anonim FTP hasznlatn keresztl? Igen [ Nem ]

55

Fejezet 2. A FreeBSD teleptse

2.10.5.1. Az anonim FTP tiltsa


Az alaprtelmezett [ No ] gomb kivlasztsval s az Enter billenty lenyomsval a jelszval vdett FTP hozzfrssel rendelkez felhasznlk tovbbra is elrhetik a szmtgpnket.

2.10.5.2. Az anonim FTP engedlyezse


Ha ezt vlasztjuk, akkor anonim FTP kapcsolaton keresztl brki hozzfrhet a szmtgpnkhz. Ebben az esetben azonban alaposan meg kell fontolnunk nhny biztonsgi kvetkezmnyt. A belltssal jr kockzatokrl az 14 fejezetben olvashatunk tbbet. Az anonim FTP bekapcsolshoz a nylbillentykkel vlasszuk ki a [ Yes ] felirat gombot s nyomjuk meg az Enter billentyt. Ekkor egy tovbbi prbeszdablak is megjelenik:
User Confirmation Requested Anonymous FTP permits un-authenticated users to connect to the system FTP server, if FTP service is enabled. Anonymous users are restricted to a specific subset of the file system, and the default configuration provides a drop-box incoming directory to which uploads are permitted. You must separately enable both inetd(8), and enable ftpd(8) in inetd.conf(5) for FTP services to be available. If you did not do so earlier, you will have the opportunity to enable inetd(8) again later. If you want the server to be read-only you should leave the upload directory option empty and add the -r command-line option to ftpd(8) in inetd.conf(5) Do you wish to continue configuring anonymous FTP? [ Yes ] No

Az zenet fordtsa:
Felhasznli megersts szksges Az anonim FTP hasznlatval a rendszer FTP szolgltatshoz hitelestetlen felhasznlk is hozzfrhetnek, amennyiben az aktv. A nvtelen felhasznlk az llomnyrendszernek csak egy rszt rhetik el, valamint az alapbelltsok szerint a feltltst egy kln erre a clra fenntartott knyvtrba vgezhetik el. Az FTP szolgltats hasznlatt kln engedlyeznnk kell az inetd(8) dmon rszrl s az inetd.conf(5) llomnyban tallhat ftpd(8) dmon aktivlsval. Ha eddig mg nem tettk volna meg, akkor az inetd(8) hasznlatt ksbb mg jra engedlyezhetjk. Ha csak letltst kvnunk engedni, akkor hagyjuk a feltltsi knyvtrra vonatkoz paramtert resen s az inetd.conf(5) llomnyban az ftpd(8) parancssorhoz adjuk hozz az -r kapcsolt. Folytatja az anonim FTP belltst? [ Igen ] Nem

56

Fejezet 2. A FreeBSD teleptse Az zenet rtest minket arrl, hogy az anonim FTP kapcsolatok engedlyezshez az FTP szolgltatst az /etc/inetd.conf llomnyban is be kell majd kapcsolni, lsd 2.10.3 Szakasz. Vlasszuk a [ Yes ] gombot s a folytatshoz nyomjuk meg az Enter billentyt. Ekkor a kvetkez kperny jn el: bra 2-31. Az anonim FTP alapbelltsai

A belltsok kitltse sorn a Tab billentyvel mozoghatunk az adatmezk kztt: UID (felhasznli azonost) A nvtelen FTP felhasznlkhoz trstott felhasznli azonost. A feltlttt llomny tulajdonosa ez az azonost lesz. Group (csoport) A nvtelen FTP felhasznlk csoportja. Comment (megjegyzs) Ez a szveg szerepel a felhasznlnl az /etc/passwd llomnyban. FTP Root Directory (az FTP gykere) Itt tallhatak az anonim FTP-n keresztl elrhet llomnyok. Upload Subdirectory (feltltsi knyvtr) A nvtelen FTP felhasznlk ltal feltlttt llomnyok ide kerlnek. Az FTP gykere alapbl a /var knyvtr lesz. Ha a becslt FTP-forgalom lebonyoltshoz itt nem rendelkeznk elegend hellyel, akkor az /usr knyvtrban tallhat /usr/ftp alknyvtr is bellthat az FTP gykernek. Ha elfogadhatnak talljuk az rtkeket, nyomjuk le az Enter billentyt a folytatshoz.
User Confirmation Requested Create a welcome message file for anonymous FTP users? [ Yes ] No

57

Fejezet 2. A FreeBSD teleptse Fordts:


Felhasznli megersts szksges Ltre kvn hozni egy ksznt zenetet tartalmaz llomnyt az anonim FTP felhasznlk szmra? [ Igen ] Nem

A [ Yes ] vlasztsval s az Enter megnyomsval az zenet szerkesztshez egy szvegszerkeszt fog elindulni. bra 2-32. Az FTP ksznt zenetnek szerkesztse

Ez az ee szvegszerkeszt. Az zenet trshoz hasznljuk a megadott utastsokat, de akr ksbb is mdosthatjuk ezt a kedvenc szvegszerkesztnkkel. Ehhez a mdostand llomny neve s helye a szerkeszt kpernyjnek aljn olvashat. A kilpshez az Esc lenyomsra felbukkan menben alapbl az a) leave editor (kilps a szerkesztbl) menpont rhet el, ezrt itt az Enter lenyomsval lphetnk tovbb. Az Enter ismtelt lenyomsval elmenthetjk a mdostsainkat.

2.10.6. A hlzati llomnyrendszer belltsa


A hlzati llomnyrendszer (Network File System, NFS) llomnyok kzzttelt teszi lehetv hlzaton keresztl. Hasznlata sorn egy szmtgp bellthat szervernek, kliensnek vagy akr mindkettnek. Ezzel kapcsolatban a 29.3 Szakasz ajnlott elolvassra.

2.10.6.1. Az NFS szerver


User Confirmation Requested Do you want to configure this machine as an NFS server? Yes [ No ]

58

Fejezet 2. A FreeBSD teleptse A fordtsa:


Felhasznli megersts szksges Be akarja lltani NFS szervernek ezt a szmtgpet? Igen [ Nem ]

Ha nincs szksgnk a hlzati llomnyrendszer szerver rszre, akkor vlasszuk a [ No ] gombot s nyomjuk le az Enter billentyt. Amennyiben a [ Yes ] gombot vlasztjuk, egy zenet fogja kzlni velnk, hogy ltre kell hoznunk az exports llomnyt.
Message Operating as an NFS server means that you must first configure an /etc/exports file to indicate which hosts are allowed certain kinds of access to your local filesystems. Press [Enter] now to invoke an editor on /etc/exports [ OK ]

Az zenet fordtsa:
zenet Az NFS szerver mkdtetshez elszr az /etc/exports llomny sszelltsn keresztl meg kell adnunk, hogy milyen gpek milyen tpus hozzfrssel rendelkezzenek a helyi llomnyrendszereinken. Az [Enter] lenyomsra megkezddik az /etc/exports llomny szerkesztse. [ OK ]

Az Enter billenty lenyomsval tovbblphetnk. Ekkor az exports llomny ltrehozsra s szerkesztsre egy szvegszerkeszt indul el. bra 2-33. Az exports szerkesztse

59

Fejezet 2. A FreeBSD teleptse A exportlni kvnt llomnyrendszerek felsorolshoz hasznljuk kpernyn a megadott utastsokat, vagy tegyk meg ezt ksbb az ltalunk vlasztott szvegszerkeszt segtsgvel. Ilyenkor ne felejtsk el megjegyezni az llomny kperny aljn lthat nevt s helyt. Amikor vgeztnk, az Esc billentyvel felhozhat menben alapbl az a) leave editor (kilps a szvegszerkesztbl) menpont aktv, ezrt itt a folytatshoz egyszeren nyomjuk le az Enter billentyt.

2.10.6.2. Az NFS kliens


Az NFS kliens belltsval NFS szerverekhez tudunk hozzfrni.
User Confirmation Requested Do you want to configure this machine as an NFS client? Yes [ No ]

Fordts:
Felhasznli megersts szksges Belltja NFS kliensnek ezt a szmtgpet? Igen [ Nem ]

A nylbillentykkel ignyeinknek megfelelen vlasszuk a [ Yes ] vagy [ No ] gombokat s utna nyomjuk meg az Enter billentyt.

2.10.7. A rendszerkonzol belltsai


Szmos bellts kapcsoldik a rendszerben tallhat konzolok testreszabshoz.
User Confirmation Requested Would you like to customize your system console settings? [ Yes ] No

Fordts:
Felhasznli megersts szksges Testreszabja a rendszerkonzol belltsait? [ Igen ] Nem

A belltsok megtekintshez s megvltoztatshoz vlasszuk a [ Yes ] gombot s nyomjuk le az Enter billentyt.

60

Fejezet 2. A FreeBSD teleptse bra 2-34. A rendszerkonzol belltsai

A kpernykml belltsa egy gyakori opci. A nyilak hasznlatval lljunk a Saver menpontra, majd nyomjuk le az Enter billentyt. bra 2-35. A kpernykml belltsai

A nyilakkal vlasszuk ki a hasznlni kvnt kpernykmlt s nyomjuk meg hozz az Enter billentyt. Ekkor a rendszerkonzol belltsait tartalmaz men jelenik meg ismt. Az aktivizlds ideje alapbellts szerint 300 msodperc. Ennek megvltoztatshoz vlasszuk ismt a Saver menpontot. A kpernykml belltsait tartalmaz menben a nylbillentykkel vlasszuk a Timeout (Idkorlt) menpontot s nyomjuk meg az Enter billentyt. Ekkor egy prbeszdablak jelenik meg:

61

Fejezet 2. A FreeBSD teleptse bra 2-36. A kpernykmlhz tartoz idkorlt belltsa

Miutn megvltoztattuk az rtket, a rendszerkonzol belltshoz a [ OK ] gomb kivlasztsval, majd az Enter billenty lenyomsval trhetnk vissza. bra 2-37. Kilps a rendszerkonzol bellt menjbl

A Exit (Kilps) vlasztsval s az Enter lenyomsval folytathatjuk tovbb a telepts utlagos belltsait.

2.10.8. Az idzna belltsa


Ha kivlasztjuk szmtgpnk szmra a megfelel idznt, akkor lehetv tesszk, hogy magtl elvgezze a helyi idhz kapcsold sszes szksges korrekcit s helyesen kezelje az idznkhoz kapcsold tbbi funkcit. A pldban az Egyeslt llamok keleti idznjban elhelyezked szmtgpet lthatunk. A mi belltsaink termszetesen a sajt fldrajzi helyzetnktl fggenek.

62

Fejezet 2. A FreeBSD teleptse


User Confirmation Requested Would you like to set this machines time zone now? [ Yes ] No

Fordts:
Felhasznli megersts szksges Belltja most a szmtgp idznjt? [ Igen ] Nem

A [ Yes ] gomb s az Enter billenty segtsgvel kivlaszthatjuk az idzna belltst.


User Confirmation Requested Is this machines CMOS clock set to UTC? If it is set to local time or you dont know, please choose NO here! Yes [ No ]

Fordts:
Felhasznli megersts szksges A szmtgp rja az egysges vilgidhz (UTC) van belltva? Ha a helyi idhz vagy nem tudjuk, akkor itt vlasszuk a NEM gombot! Igen [ Nem ]

A szmtgpnk rjnak belltsnak megfelelen vlasszuk a [ Yes ] vagy [ No ] gombot, s nyomjuk meg az Enter billentyt. bra 2-38. A trsg kivlasztsa

A nyilakkal kivlaszthat a megfelel trsg, amit aztn az Enter billentyvel tudunk lezrni.

63

Fejezet 2. A FreeBSD teleptse bra 2-39. Az orszg kivlasztsa

A megfelel orszg a nylbillentykkel, valamint az Enter billentyvel vlaszthat ki. bra 2-40. Az idzna kivlasztsa

A neknk megfelel idzna a nyilakkal vlaszthat meg, amit ezutn az Enter billentyvel tudunk jvhagyni.
Confirmation Does the abbreviation EDT look reasonable? [ Yes ] No

Az zenet fordtsa:
Megersts Ezek szerint az EDT elfogadhat? [ Igen ] Nem

64

Fejezet 2. A FreeBSD teleptse Erstsk meg, hogy az idzna helyes-e. Ha rendbenlevnek ltszik, nyomjuk meg az Enter billentyt a folytatshoz.

2.10.9. Linux binrisok hasznlata


User Confirmation Requested Would you like to enable Linux binary compatibility? [ Yes ] No

A fordts:
Felhasznli megersts szksges Engedlyezi a Linux binrisok futtatst? [ Igen ] Nem

A [ Yes ] gomb kivlasztsval s az Enter lenyomsval megengedjk, hogy a Linuxra kszlt szoftvereket futtassunk FreeBSD-n. A telept ennek biztostshoz mg tovbbi csomagokat is fel fog rakni. Ha FTP-n keresztl teleptnk, akkor a szmtgpnek csatlakoznia kell az internetre. Ilyenkor elfordulhat, hogy az FTP szerveren nem tallhatak meg a Linux kompatibilitssal kapcsolatos csomagok. Ezeket azonban ksbb is telepthetjk.

2.10.10. Az egr belltsai


Ezen bellts hasznlatval egy hromgombos egrrel lehetsgnk addik a konzol s a felhasznli programok kztt kivgni s bemsolni szvegeket. Ktgombos egr hasznlata esetn nzzk meg a moused(8) man oldaln, miknt tudjuk emullni a hromgombos mkdst. A kvetkez plda egy nem USB-s (teht PS/2-es vagy soros portra csatlakoz) egr belltst illusztrlja:
User Confirmation Requested Does this system have a PS/2, serial, or bus mouse? [ Yes ] No

Fordts:
Felhasznli megersts szksges Csatlakozik a rendszerhez PS/2-es, soros vagy buszos egr? [ Igen ] Nem

A PS/2, soros vagy buszos egr hasznlathoz vlasszuk a [ Yes ] gombot, illetve az USB-s egrhez pedig a [ No ] gombot, majd nyomjuk meg az Enter billentyt.

65

Fejezet 2. A FreeBSD teleptse bra 2-41. Az egr ltal hasznlt protokoll tpusnak belltsa

A nylbillentyk hasznlatval keressk ki a Type (Tpus) menpontot s nyomjuk le az Enter billentyt. bra 2-42. Az egr protokolljnak belltsa

A pldban hasznlt egr tpusa PS/2, ezrt itt a alaprtelmezs szerint felknlt Auto megfelel. A protokoll megvltoztatshoz a nyilakkal vlasszunk ki egy msikat. Ezutn gondoskodjunk rla, hogy az [ OK ] gombot vlasztottuk ki s a kilpshez nyomjuk meg az Enter billentyt.

66

Fejezet 2. A FreeBSD teleptse bra 2-43. Az egr portjnak belltsa

A nylbillentykkel vlasszuk ki a Port menpontot s nyomjuk meg az Enter billentyt. bra 2-44. Az egr portjnak kivlasztsa

Mivel a pldban szerepl rendszerhez egy PS/2 egr csatlakozik, ezrt az alaprtelmezett PS/2 menpont megfelelnek tnik. A port megvltoztatshoz hasznljuk a nyilakat, majd nyomjuk le az Enter billentyt.

67

Fejezet 2. A FreeBSD teleptse bra 2-45. Az egrdmon engedlyezse

Befejezsl a egrhez tartoz dmon aktivlshoz s kiprblshoz vlasszuk ki a nyilakkal az Enable (Engedlyezs) menpontot. bra 2-46. Az egrdmon kiprblsa

Prbljuk mozgatni a kpernyn megjelen egrkurzort, s ellenrizzk, hogy a kurzor a mozdulatainknak megfelelen reagl-e. Ha mindent rendben tallunk, akkor vlasszuk a [ Yes ] gombot s nyomjuk le az Enter billentyt. Ellenkez esetben az egeret nem jl lltottuk be vlasszuk a [ No ] gombot s ksrletezznk tovbb ms belltsokkal. Az utlagos belltsok folytatshoz vlasszuk elszr az Exit (Kilps) menpontot, majd nyomjuk meg az Enter billentyt.

68

Fejezet 2. A FreeBSD teleptse

2.10.11. Csomagok teleptse


A csomagok elre lefordtott binrisokat tartalmaznak, s hasznlatukkal igen knyelmesen tudunk szoftvereket telepteni. Szemlltets cljbl most bemutatjuk az egyik ilyen csomag teleptst. Termszetesen igny szerint ms csomagokat is hozzvehetnk. A telepts utn a sysinstall parancs hasznlhat tovbbi csomagok teleptsre.
User Confirmation Requested The FreeBSD package collection is a collection of hundreds of ready-to-run applications, from text editors to games to WEB servers and more. Would you like to browse the collection now? [ Yes ] No

Az zenet fordtsa:
Felhasznli megersts szksges A FreeBSD csomaggyjtemnye tbbezernyi azonnal hasznlhat alkalmazst tartalmaz, a szvegszerkesztktl a jtkokon keresztl a WEBszervereken t szinte mindent. t kvnja lapozni most ezt a gyjtemnyt? [ Igen ] Nem

A [ Yes ] kivlasztsa s az Enter lenyomsa utn a csomagvlaszt kperny kvetkezik: bra 2-47. A csomagok kategrijnak kivlasztsa

Ekkor csak az adott telepteszkzn elrhet csomagok fognak megjelenni. Az sszes csomagot az All (Mind) menpont kivlasztsval lthatjuk, vagy leszkthetjk ezt egy adott kategrira is. lljunk a kivlasztott kategrihoz tartoz menpontra s nyomjuk meg az Enter billentyt. Ezutn egy men fogja felsorolni az adott kategrin bell telepthet csomagokat:

69

Fejezet 2. A FreeBSD teleptse bra 2-48. Csomag kivlasztsa

A pldban a bash parancsrtelmezt vlasztottuk ki. Vlogassunk kedvnkre a csomagok kztt, s lljunk a telepteni kvntakra, majd a Szkz billenty lenyomsval jelljk be ezeket. Minden egyes csomag rvid lersa a kperny bal als sarkban olvashat. A Tab billenty segtsgvel mozoghatunk az utoljra kivlasztott csomag, az [ OK ] s [ Cancel ] gombok kztt. Miutn bejelltk az sszes teleptsre sznt csomagot, a csomagvlaszt menbe gy tudunk visszatrni, ha a Tab billentyvel tvltunk az [ OK ] gombra s nyomjuk meg az Enter billentyt. Ezeken fell a bal s jobb nyilak hasznlhatak az [ OK ] s [ Cancel ] gombok kzti vltsra. Ugyanezzel a mdszerrel vlaszthat ki az [ OK ] gomb is, ami utn az Enter billenty megnyomsval visszajutunk a csomagvlaszt menbe. bra 2-49. Csomagok teleptse

A nyilakkal s a Tab billentyvel vlasszuk ki az [ Install ] (Telepts) gombot s nyomjuk meg az Enter billentyt. Ekkor meg kell erstennk a csomagok teleptst:

70

Fejezet 2. A FreeBSD teleptse bra 2-50. Csomagok teleptsnek megerstse

Az [ OK ] kivlasztsa majd az Enter billenty lenyomsa indtja el a csomagok teleptst. A telepts befejezsig klnbz zenetek fognak megjelenni. Figyeljnk az ilyenkor felbukkan hibazenetekre! A belltsok vglegestse a csomagok teleptse utn folytatdik. Amennyiben egyetlen csomagot sem vlasztottunk s szeretnnk tovbblpni, akkor is az Install (Telepts) gombot vlasszuk.

2.10.12. Felhasznlk s csoportok felvtele


A telepts sorn legalbb egy felhasznlt rdemes hozzadnunk a rendszerhez, mivel a rendszer hasznlathoz gy nem kell root felhasznlknt bejelentkezni. ltalnossgban vve ahhoz egybknt is kicsi a gykrpartci, hogy root felhasznlknt (rendszeradminisztrtorknt) futtassunk rajta programokat, s gyorsan be is telik. A nagyobb veszlyt azonban itt olvashatjuk:
User Confirmation Requested Would you like to add any initial user accounts to the system? Adding at least one account for yourself at this stage is suggested since working as the "root" user is dangerous (it is easy to do things which adversely affect the entire system). [ Yes ] No

Felhasznli megersts szksges Szeretnnk mosta rendszerbe felvenni felhasznli fikokat? Ebben a lpsben legalbb egy felhasznl felvtele javasolt, hiszen "root" felhasznlknt veszlyes dolgozni (mivel gy knnyen tehetnk olyan dolgokat, amelyek kros hatssal lehetnek rendszernkre). [ Igen ] Nem

Ezrt vlasszuk a [ Yes ] gombot s az Enter billenty lenyomsval lpjnk tovbb a felhasznlk felvtelhez.

71

Fejezet 2. A FreeBSD teleptse bra 2-51. Felhasznlk kivlasztsa

A nylbillentykkel vlasszuk ki a User (Felhasznl) menpontot s nyomjuk meg az Enter billentyt. bra 2-52. A felhasznl adatainak megadsa

Amikor a Tab billentyvel lpkednk a kitltend mezk kztt, a kperny als rszn az albbi lersok magyarzzk az egyes mezk tartalmt: Login ID (Bejelentkezsi azonost) Az j felhasznl bejelentkezsi neve (ktelez). UID (Felhasznli azonost) A felhasznl szmszer azonostja (automatikusan ltrejn, ha resen hagyjuk).

72

Fejezet 2. A FreeBSD teleptse Group (Csoport) A felhasznl bejelentkezsi csoportjnak neve (automatikusan ltrejn, ha resen hagyjuk). Password (Jelsz) A felhasznl jelszava (vatosan bnjunk ezzel a mezvel!) Full name (Teljes nv) A felhasznl teljes neve (megjegyzs). Member groups (Tovbbi csoportok) A felhasznl ezen csoportoknak is tagja (teht rendelkezik az engedlyeikkel). Home directory (Felhasznli knyvtr) A felhasznl sajt knyvtra (ha resen hagyjuk, az alaprtelmezs szerint tltdik ki). Login shell (Parancsrtelmezl) A felhasznl ltal hasznlt parancsrtelmez (ha resen hagyjuk, az alaprtelmezs szerint tltdik, mint pldul /bin/sh). Az brn a bejelentkezs utn hasznlt parancsrtelmezt a /bin/sh parancsrtelmezrl a /usr/local/bin/bash parancsrtelmezre vltoztattuk, gy most a korbban teleptett bash parancsrtelmezt fogjuk hasznlni. Itt ne is prbljunk nem ltez parancsrtelmezt kivlasztani, hiszen ekkor nem tudunk majd bejelentkezni. A BSD vilgban egybknt a C shell a leggyakrabban hasznlt, amelyet a /bin/tcsh megadsval vlaszthatjuk ki. Az brn szerepl felhasznlt ezenkvl mg a wheel csoportba is felvettk, aminek ksznheten kpes lesz a rendszernkben a root felhasznli jogaival rendelkez rendszeradminisztrtorr vlni. Amikor mindent megfelelnek tallunk, nyomjunk az [ OK ] gombra s ekkor ismt a felhasznlk s csoportok karbantartst tartalmaz men jelenik meg: bra 2-53. Kilps a felhasznlk s csoportok menjbl

73

Fejezet 2. A FreeBSD teleptse Csoportokat is ltre tudunk hozni, amennyiben erre szksgnk lenne. Ez a rsz a telepts befejezse utn tovbbra is elrhet a sysinstall parancs segtsgvel. Amikor befejeztk a felhasznlk hozzadst, a nyilakkal vlasszuk ki az Exit (Kilps) menpontot s a telepts folytatshoz nyomjuk meg az Enter billentyt.

2.10.13. A root felhasznl jelszavnak megadsa


Message Now you must set the system managers password. This is the password youll use to log in as "root". [ OK ] [ Press enter or space ]

Fordtsa:
zenet Most meg kell adnia a rendszergazda jelszavt. Ezt a jelszt kell a "root" felhasznl bejelentkezsekor hasznlni. [ OK ] [ Nyomja le az Enter vagy a Szkz billentyt ]

A root felhasznl jelszavnak belltshoz nyomjuk meg az Enter billentyt. A jelszt ktszer kell megadnunk. Felesleges megemlteni, hogy gondoskodjunk arrl az esetrl is, ha vletlenl elfelejtennk ezt a jelszt. Megemltjk, hogy az itt begpelt jelsz nem lesz lthat s a betk helyett sem jelennek meg csillagok.
New password: Retype new password :

A jelsz sikeres megadsa utn a telepts folytatdik.

2.10.14. Kilps a teleptbl


Ha be szeretnnk mg lltani egyb hlzati szolgltatst vagy valamilyen ms kongurcis lpst kvnunk mg elvgezni, ezen a ponton megtehetjk vagy a telepts utn a sysinstall parancs kiadsval.
User Confirmation Requested Visit the general configuration menu for a chance to set any last options? Yes [ No ]

Fordts:
Felhasznli megersts szksges

74

Fejezet 2. A FreeBSD teleptse


Vgignzi mg utoljra a belltsokat arra az esetre, ha vletlenl kihagytunk volna valamit? Igen [ Nem ]

Ha a nyilakkal a [ No ] gombot vlasztjuk, majd megnyomjuk rajta az Enter billentyt, akkor visszatrnk a telept fmenjbe. bra 2-54. Kilps a teleptbl

Vlasszuk ki a nylbillentykkel a [X Exit Install] (Kilps a teleptbl) gombot s nyomjuk meg az Enter billentyt. Ezutn meg kell erstennk kilpsi szndkunkat:
User Confirmation Requested Are you sure you wish to exit? The system will reboot (be sure to remove any floppies/CDs/DVDs from the drives). [ Yes ] No

Fordts:
Felhasznli megersts szksges Valban ki akar lpni? A rendszer ezt kveten jra fog indulni (ezrt ne felejtsk el eltvoltani az sszes floppyt, CD-t s DVD-t a meghajtkbl)! [ Igen ] Nem

Vlasszuk a [ Yes ] gombot s ha oppyrl indtottuk a rendszert, akkor azt vegyk ki a meghajtbl. A CD-meghajt egszen az jraindts megkezdsig zrolt lesz, ezrt csak ekkor tudjuk (gyorsan) kivenni a meghajtbl a lemezt. A rendszer jraindul, legynk rsen s gyeljk a megjelen hibazeneteket, errl bvebben lsd a 2.10.16 Szakaszban.

75

Fejezet 2. A FreeBSD teleptse

2.10.15. Tovbbi hlzati szolglatsok belltsa


rta: Tom Rhodes. A hlzati szolgltatsok tern csekly tapasztalattal rendelkez kezd felhasznlk szmra ijeszt lehet ezek belltsa. A hlzatok s tbbek kzt az internet kezelse napjaink modern opercis rendszereink, gy a FreeBSD-nek is az egyik fontos terlete. Ezrt nagyon hasznos ismernnk valamennyire a FreeBSD ltal felknlt hlzati lehetsgeket. A telepts kzben ezrt a felhasznlnak tisztban kell lennie a rendelkezsre ll szolgltatsokkal. A hlzati szolgltatsok olyan programok, amelyek a hlzat minden rszrl fogadnak adatokat. Mindent el kell kvetnnk annak rdekben, hogy ezek a programok ne tehessenek semmilyen krt. Sajnos a programozk sem tkletesek, s az idk sorn mr elfordult prszor, hogy a hlzati szolgltatsokban maradtak hibk, amelyek kihasznlsval a tmadk rossz dolgokat tudtak csinlni. Ezrt fontos, hogy csak is azokat a szolgltatsokat engedlyezzk, amelyekre tnylegesen szksgnk van. Ha nem tudjuk eldnteni, akkor az a legjobb, ha egszen addig egyiket sem engedlyezzk, amg valban szksgnk nem lesz rjuk. A sysinstall jbli elindtsval vagy az /etc/rc.conf megfelel belltsval mindig tudunk j szolgltatsokat aktivlni. A Networking (Hlzatok) menpont kivlasztsa utn valami ilyesmit lthatunk: bra 2-55. A hlzati belltsok menjnek fels szintje

Ezek kzl a Interfaces (Csatolk), vagyis az els menpontrl korbban mr sz esett a 2.10.1 Szakaszban, ezrt ez most nyugodtan kihagyhat. Az AMD menpont kivlasztsval engedlyezzk a BSD automatikus csatlakoztatsokrt felels segdeszkzt (AMD, az AutoMounter Daemon). Ezt ltalban az NFS protokollal (lsd lentebb) egytt szoks hasznlni a tvoli llomnyrendszerek automatikus csatlakoztatshoz. Itt nincs szksg semmilyen klnleges belltsra. A kvetkez sorban az AMD Flags (Az AMD belltsai) menpont szerepel. Kivlasztsa utn az AMD belltsait bekr ablak fog felbukkani. Ez mr szmos alaprtelmezett belltst tartalmaz:
-a /.amd_mnt -l syslog /host /etc/amd.map /net /etc/amd.map

A -a kapcsolval adjuk meg a csatlakozsi pontok alaprtelmezett helyt, amely ebben az esetben az /.amd_mnt. A -l kapcsolval adjuk meg az alaprtelmezett log (napl) llomnyt, habr a syslogd hasznlata sorn az sszes

76

Fejezet 2. A FreeBSD teleptse naplzsi tevkenysg a rendszer naplz dmonjn fut majd keresztl. A /host knyvtrba fognak csatlakozni a tvoli gpek exportlt llomnyrendszerei, mg a /net knyvtrba a klnbz IP-cmekrl exportlt llomnyrendszerek kerlnek csatlakoztatsra. Az /etc/amd.map llomny tartalmazza az AMD exportjainak alaprtelmezett belltsait. Az Anon FTP menponton keresztl engedlyezhetjk az anonim FTP kapcsolatokat. A menpont kivlasztsval szmtgpnket egy anonim FTP szerverr tehetjk, azonban legynk tekintettel a belltshoz tartoz biztonsgi veszlyekre! A kivlasztsakor egy ablak tjkoztat minket a bellts rszleteirl s felmerl biztonsgi kockzatokrl. A Gateway (tjr) menpont hasznlatval a korbbiakban trgyaltak szerint llthatjuk be szmtgpnket hlzati tjrnak. Ugyanekkor a Gateway menben nylik lehetsgk kikapcsolni ezt a belltst, amennyiben a teleptsi folyamat korbbi lpsei sorn vletlenl engedlyeztk volna. Az Inetd menpont segtsgvel bellthatjuk, vagy akr teljesen ki is kapcsolhatjuk a korbban trgyalt inetd(8) dmont. A Mail (Levelezs) menpontban bellthatjuk a rendszer alaprtelmezett MTA avagy levltovbbt gynkt (Mail Transfer Agent). Ennek hatsra a kvetkez men jelenik meg: bra 2-56. Az alaprtelmezett MTA kivlasztsa

Itt vlaszhatunk, hogy a klnbz levlkld rendszerek kzl melyiket teleptsk alaprtelmezettknt. Egy ilyen alkalmazs lnyegben nem tbb, mint egy levlkldsre hasznlt szerver, amely tovbbtja a rendszerben vagy az interneten tallhat felhasznlk szmra a leveleket. A Sendmail vlasztsval a FreeBSD alapbl felknlt megoldst, a npszer sendmail szervert telepthetjk. A Sendmail local (Helyi Sendmail) menpont kivlasztsval szintn a sendmail lesz a teleptend levlkld szerver, azonban nem lesz kpes az internetrl rkez leveleket fogadni. Az itt felsorolt tbbi bellts, teht a Postx s Exim, a Sendmail belltshoz hasonlan zajlik. Mind a kett elektronikus levelek kzbestsre hasznlhat, azonban bizonyos felhasznlk a sendmail helyett inkbb ezek valamelyikt hasznljk. Valamelyik vagy ppen semelyik levltovbbt szerver kivlasztsa utn az NFS client (NFS kliens) belltsra vonatkoz men jelentkezik. Az NFS client belltsval a rendszernk NFS szerverekkel lesz kpes kapcsolatba lpni. Egy ilyen NFS szerver az NFS protokoll segtsgvel a hlzaton keresztl elrhetv tesz llomnyrendszereket. Ha gpnk fggetlen, akkor

77

Fejezet 2. A FreeBSD teleptse nem fontos kivlasztanunk ezt a menpontot. A rendszernek ksbb tovbbi belltsokra is szksge lehet, amelyekrl az 29.3 Szakaszban olvashatunk rszletesebben. Az NFS server (NFS szerver) menpont kivlasztsval hozzjrulunk, hogy rendszernk NFS szerverknt zemeljen. Ehhez meg kell adnunk az RPC, vagyis a tvoli eljrshvsok kiszolglsnak elindtshoz szksges adatokat is. Az RPC hasznlatval a klnbz kiszolglk s programok kztt tudjuk vezrelni a kapcsolatot. A sorban az Ntpdate belltsa kvetkezik, ahol az idszinkronizcihoz kapcsold opcikat talljuk. Kivlasztsakor az brn szereplhz hasonl men fog megjelenni: bra 2-57. Az Ntpdate belltsa

Ebbl a menbl vlasszuk ki a hozznk legkzelebb lev szevert. Egy kzeli szerver megadsval az idszinkronizci sokkalta pontosabb vlik, mivel a tlnk tvolabbi szerverek kapcsolatnak ksleltetse nagyobb lehet. A kvetkez bellts az PCNFSD. Ennek kivlasztsa sorn a Portgyjtemnybl teleptsre kerl a net/pcnfsd csomag. Ez lnyegben egy hasznos segdprogram, amellyel olyan opercis rendszerek szmra tudunk hitelestst szolgltatni az NFS hasznlata sorn, amelyek maguktl erre nem kpesek, mint pldul a Microsoft MS-DOS rendszere. A tbbi bellts megtekintshez egy kicsit lejjebb kell haladnunk a listban:

78

Fejezet 2. A FreeBSD teleptse bra 2-58. A hlzati belltsok menjnek als szintje

Az rpcbind(8) s rpc.statd(8), valamint az rpc.lockd(8) segdprogramok mind a tvoli eljrshvsokhoz (Remote Procedure Call, RPC) hasznlhatak. Az rpcbind segdprogram az NFS szerverei s kliensei kztt felgyeli a kapcsolatot, ezrt a hasznlata az NFS szerverek s kliensek mkdshez elengedhetetlen. Az llapot gyelshez az rpc.statd dmon felveszi a kapcsolatot a tbbi gpen fut rpc.statd dmonokkal. A jelentett llapotok ltalban a /var/db/statd.status llomnyban tallhatak. Itt a kvetkezknt felsorolt elem az rpc.lockd, amelynek kivlasztsval llomnyzrolsi szolgltatsokat rhetnk el. Ezt tbbnyire az rpc.statd dmonnal egytt alkalmazzk a zrolsokat kr gpek s a krsek gyakorisgnak nyilvntartsra. Mg ezekkel a belltsokkal gynyren nyomon lehet kvetni a mkdst, az NFS szerverek s kliensek megfelel mkdshez nem ktelez a hasznlatuk. Ahogy haladunk tovbb a listban, a kvetkez elem a Routed, vagyis az tvlasztsrt felels dmon lesz. A routed(8) segdprogram a hlzati tvlaszt tblzatokat tartja karban, felderti az elrhet tvlasztkat s krsre brmelyik hozz zikailag csatlakoz gp szmra tadja az ltala nyilvntartott tvlasztsi adatokat. Ezt leginkbb a helyi hlzat tjrjaknt mkd szmtgpek hasznljk. Kivlasztsakor egy ablak fog rkrdezni a segdprogram helyre. Az itt alapbl felknlt rtk ltalban megfelel, ezrt nyugtzhatjuk az Enter billenty lenyomsval. Ezt kveten egy msik men jelenik meg, ahol a routed belltsait adhatjuk meg. Itt alaprtelmezs szerint a -q kapcsol szerepel. A kvetkez sor az Rwhod bellts, aminek kivlasztsval el tudjuk indttatni az rwhod(8) dmont a rendszer elindtsa sorn. Az rwhod segdprogram a rendszerzeneteket a hlzaton idkznknt sztkldi vagy gyel (consumer) mdban sszegyjti ezeket. Ennek pontosabb rszleteit az ruptime(1) s rwho(1) man oldalakon tallhatjuk meg. Az sshd(8) dmon az utols eltti bellts. Ez az OpenSSH biztonsgos shell szervere, melyet a szabvnyos telnet s FTP szerverek helyett ajnlanak. Az sshd szerver teht kt gp kzti biztonsgos, titkostott kapcsolatok ltrehozsra hasznlhat. A lista vgn a TCP Extensions (TCP kiterjesztsek) menpontot tallhatjuk. Segtsgvel a TCP RFC 1323 s RFC 1644 dokumentumokban lert kiterjesztseinek hasznlatt engedlyezhetjk. Ezzel egyes gpek esetn felgyorsulhat a kapcsolat, azonban ms esetekben pedig eldobdhat. Ez szerverek hasznlatnl nem ajnlott, viszont fggetlen gpeknl kizetd lehet. Most, miutn belltottuk a hlzati szolgltatsokat, lpjnk vissza a lista elejn tallhat X Exit (Kilps) menpontra s folytassuk a belltst a kvetkez opcival, vagy egyszeren az X Exit ktszeri kivlasztsval, majd

79

Fejezet 2. A FreeBSD teleptse a [X Exit Install] (Kilps a teleptbl) gomb lenyomsval lpjnk ki a sysinstall programbl.

2.10.16. A FreeBSD indulsa


2.10.16.1. A FreeBSD/i386 indulsa
Ha minden remeklt ment, a kpernyn lentrl felfel grdl zeneteket fogunk ltni, majd a rendszer vrni fog tlnk egy bejelentkezsi nevet. A kirt zeneteket kztt a Scroll Lock lenyomsa utn a PgUp s PgDn billentyk hasznlatval tudunk lapozni. A Scroll Lock ismtelt lenyomsval visszatrnk a bejelentkezshez. Nem minden esetben lesz lthat az sszes zenet (a puffer vgessge miatt), de miutn bejelentkeztnk, ezeket a dmesg parancs kiadsval is megnzhetjk. Bejelentkezni a teleptskor megadott felhasznli nv/jelsz prossal tudunk (a pldban ez most rpratt). Lehetleg ne jelentkezznk be root felhasznlknt! A rendszer indtsakor jellemzen elfordul zenetek (a verzira vonatkoz adatokat kihagytuk):
Copyright (c) 1992-2002 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. Timecounter "i8254" frequency 1193182 Hz CPU: AMD-K6(tm) 3D processor (300.68-MHz 586-class CPU) Origin = "AuthenticAMD" Id = 0x580 Stepping = 0 Features=0x8001bf<FPU,VME,DE,PSE,TSC,MSR,MCE,CX8,MMX> AMD Features=0x80000800<SYSCALL,3DNow!> real memory = 268435456 (262144K bytes) config> di sn0 config> di lnc0 config> di le0 config> di ie0 config> di fe0 config> di cs0 config> di bt0 config> di aic0 config> di aha0 config> di adv0 config> q avail memory = 256311296 (250304K bytes) Preloaded elf kernel "kernel" at 0xc0491000. Preloaded userconfig_script "/boot/kernel.conf" at 0xc049109c. md0: Malloc disk Using $PIR table, 4 entries at 0xc00fde60 npx0: <math processor> on motherboard npx0: INT 16 interface pcib0: <Host to PCI bridge> on motherboard pci0: <PCI bus> on pcib0 pcib1: <VIA 82C598MVP (Apollo MVP3) PCI-PCI (AGP) bridge> at device 1.0 on pci0 pci1: <PCI bus> on pcib1 pci1: <Matrox MGA G200 AGP graphics accelerator> at 0.0 irq 11 isab0: <VIA 82C586 PCI-ISA bridge> at device 7.0 on pci0

80

Fejezet 2. A FreeBSD teleptse


isa0: <ISA bus> on isab0 atapci0: <VIA 82C586 ATA33 controller> port 0xe000-0xe00f at device 7.1 on pci0 ata0: at 0x1f0 irq 14 on atapci0 ata1: at 0x170 irq 15 on atapci0 uhci0: <VIA 83C572 USB controller> port 0xe400-0xe41f irq 10 at device 7.2 on pci0 usb0: <VIA 83C572 USB controller> on uhci0 usb0: USB revision 1.0 uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub0: 2 ports with 2 removable, self powered chip1: <VIA 82C586B ACPI interface> at device 7.3 on pci0 ed0: <NE2000 PCI Ethernet (RealTek 8029)> port 0xe800-0xe81f irq 9 at device 10.0 on pci0 ed0: address 52:54:05:de:73:1b, type NE2000 (16 bit) isa0: too many dependant configs (8) isa0: unexpected small tag 14 fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on isa0 fdc0: FIFO enabled, 8 bytes threshold fd0: <1440-KB 3.5" drive> on fdc0 drive 0 atkbdc0: <keyboard controller (i8042)> at port 0x60-0x64 on isa0 atkbd0: <AT Keyboard> flags 0x1 irq 1 on atkbdc0 kbd0 at atkbd0 psm0: <PS/2 Mouse> irq 12 on atkbdc0 psm0: model Generic PS/2 mouse, device ID 0 vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 sc0: <System console> at flags 0x1 on isa0 sc0: VGA <16 virtual consoles, flags=0x300> sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0 sio0: type 16550A sio1 at port 0x2f8-0x2ff irq 3 on isa0 sio1: type 16550A ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0 ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode ppc0: FIFO with 16/16/15 bytes threshold ppbus0: IEEE1284 device found /NIBBLE Probing for PnP devices on ppbus0: plip0: <PLIP network interface> on ppbus0 lpt0: <Printer> on ppbus0 lpt0: Interrupt-driven port ppi0: <Parallel I/O> on ppbus0 ad0: 8063MB <IBM-DHEA-38451> [16383/16/63] at ata0-master using UDMA33 ad2: 8063MB <IBM-DHEA-38451> [16383/16/63] at ata1-master using UDMA33 acd0: CDROM <DELTA OTC-H101/ST3 F/W by OIPD> at ata0-slave using PIO4 Mounting root from ufs:/dev/ad0s1a swapon: adding /dev/ad0s1b as swap device Automatic boot in progress... /dev/ad0s1a: FILESYSTEM CLEAN; SKIPPING CHECKS /dev/ad0s1a: clean, 48752 free (552 frags, 6025 blocks, 0.9% fragmentation) /dev/ad0s1f: FILESYSTEM CLEAN; SKIPPING CHECKS /dev/ad0s1f: clean, 128997 free (21 frags, 16122 blocks, 0.0% fragmentation) /dev/ad0s1g: FILESYSTEM CLEAN; SKIPPING CHECKS /dev/ad0s1g: clean, 3036299 free (43175 frags, 374073 blocks, 1.3% fragmentation) /dev/ad0s1e: filesystem CLEAN; SKIPPING CHECKS /dev/ad0s1e: clean, 128193 free (17 frags, 16022 blocks, 0.0% fragmentation)

81

Fejezet 2. A FreeBSD teleptse


Doing initial network setup: hostname. ed0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255 inet6 fe80::5054::5ff::fede:731b%ed0 prefixlen 64 tentative scopeid 0x1 ether 52:54:05:de:73:1b lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x8 inet6 ::1 prefixlen 128 inet 127.0.0.1 netmask 0xff000000 Additional routing options: IP gateway=YES TCP keepalive=YES routing daemons:. additional daemons: syslogd. Doing additional network setup:. Starting final network daemons: creating ssh RSA host key Generating public/private rsa1 key pair. Your identification has been saved in /etc/ssh/ssh_host_key. Your public key has been saved in /etc/ssh/ssh_host_key.pub. The key fingerprint is: cd:76:89:16:69:0e:d0:6e:f8:66:d0:07:26:3c:7e:2d root@k6-2.example.com creating ssh DSA host key Generating public/private dsa key pair. Your identification has been saved in /etc/ssh/ssh_host_dsa_key. Your public key has been saved in /etc/ssh/ssh_host_dsa_key.pub. The key fingerprint is: f9:a1:a9:47:c4:ad:f9:8d:52:b8:b8:ff:8c:ad:2d:e6 root@k6-2.example.com. setting ELF ldconfig path: /usr/lib /usr/lib/compat /usr/X11R6/lib /usr/local/lib a.out ldconfig path: /usr/lib/aout /usr/lib/compat/aout /usr/X11R6/lib/aout starting standard daemons: inetd cron sshd usbd sendmail. Initial rc.i386 initialization:. rc.i386 configuring syscons: blank_time screensaver moused. Additional ABI support: linux. Local package initialization:. Additional TCP options:. FreeBSD/i386 (k6-2.example.com) (ttyv0) login: rpratt Password:

Az RSA s DSA kulcsok generlsa a lassabb gpeken sokg is eltarthat, habr ez mindig csak a friss teleptsek utni els indtskor trtnik meg. A rendszer ksbbi indulsai ettl mr gyorsabbak lesznek. Ha X szervert is belltottunk s vlasztottunk hozz egy alaprtelmezett munkakrnyezetet, akkor ezt a parancssorbl a startx kiadsval elindthatjuk el.

2.10.16.2. A FreeBSD/alpha indulsa


Ahogy a telepts befejezdtt, az SRM konzolbl valami ilyesmi begpelsvel tudjuk elindtani a FreeBSD-t:
>>>BOOT DKC0

82

Fejezet 2. A FreeBSD teleptse Ezzel utastjuk a rmware-t, hogy indtsa el a rendszert a megadott lemezrl. A FreeBSD jvbeni automatikus indtshoz hasznljuk az albbi parancsokat:
>>> >>> >>> >>>

SET SET SET SET

BOOT_OSFLAGS A BOOT_FILE BOOTDEF_DEV DKC0 AUTO_ACTION BOOT

A rendszer indtsakor megjelen zenetek hasonl (de nem teljesen azonosak) lesznek az i386 architektrn indul FreeBSD esethez.

2.10.17. A FreeBSD lelltsa


Fontos, hogy mindig szablyosan lltsuk le az opercis rendszert, ne kapcsoljuk ki csak gy egyszeren a szmtgpnket! A lelltshoz elszr a su parancs kiadsval, majd itt a root jelszavnak megadsval vegyk fel az ehhez szksges rendszeradminisztrtori jogosultsgokat. Ez viszont csak abban az esetben fog mkdni, ha a felhasznlnk tagja a wheel csoportnak. Minden ms esetben egyszeren jelentkezznk be root felhasznlknt s hasznljuk a shutdown -h now parancsot.
The operating system has halted. Please press any key to reboot.

A fenti zenet jelzi, hogy a lellt parancs kiadsa utn mr kikapcsolhatjuk a szmtgpet, vagy ha ehelyett egy billentyt nyomunk le, akkor a gp jraindul. A Ctrl+Alt+Del billentykombinci hasznlatval is jra tudjuk indtani a rendszert, azonban ez norml mkds kzben nem ajnlott.

2.11. Hibakeress
A most kvetkez szakaszban azokra a telepts sorn felmerl problmkra prblunk meg megoldsokat adni, amelyeket eddig mr sokan jeleztek neknk. Ezek mellett szerepel nhny krds s vlasz is a FreeBSD s az MS-DOS vagy Windows kzs hasznlatrl.

2.11.1. Mit tegynk ha valami nem mkdik


A PC architektra klnfle korltozsai miatt szinte lehetetlen 100%-ban megbzhatv tenni az eszkzk feldertst, azonban ennek hibja kapcsn nhny dolgot mg tenni tudunk. Ellenrizzk a Hardware Notes (http://www.FreeBSD.org/releases/index.html) (Hardverjegyzk) cm dokumentumban, hogy az adott hardvert a FreeBSD valban ismeri. Amennyiben a hardvereszkznket a rendszer ismeri, azonban mg mindig jelentkeznek fagysok vagy egyb gondok, ksztennk kell egy sajt rendszermagot. Ezzel olyan eszkzk tmogatst is bepthetjk a rendszermagba, amelyek eredetileg nem szerepelnek a GENERIC rendszermagban. A teleptshez ksztett rendszerindt lemezeken tallhat rendszermag a legtbb eszkzt a gyri IRQ, IO-cm s DMA csatorna belltsaik

83

Fejezet 2. A FreeBSD teleptse mentn prblja felkutatni. Ha viszont a hardvernket tlltottuk, ennek megfelelen mdostanunk kell a rendszermag belltsait s jra kell fordtanunk, hogy a FreeBSD tudja, hol is keresse az eszkzt. Olyan is addhat, hogy egy nem ltez eszkz keresse egy utna keresend msik, jelenlev eszkz felkutatst akadlyozza meg. Ilyenkor az tkz meghajtkat le kell tiltani.
Megjegyzs: Egyes problmk elkerlhetek vagy csillapthatak a klnbz hardversszetevk, klnsen az alaplapi rmware frisstsvel. Az alaplap rmware-jre sokszor csak BIOS-knt hivatkoznak, s a legtbb alaplap- vagy szmtgpgyrt honlapjn tallhatjuk meg ezeket, valamint a rjuk vonatkoz utastsokat. A legtbb gyrt azonban ersen tiltakozik az alaplapi BIOS-frisstsek ellen, s csak indokolt esetekben, pldul kritikus javtsoknl javasoljk. A frissts kimenetele lehet rossz is, aminek kvetkezmnye a BIOS tarts krosodsa.

2.11.2. Az MS-DOS s Windows llomnyrendszereinek hasznlata


A FreeBSD jelenleg nem tmogatja a Double Space alkalmazssal tmrtett llomnyrendszereket, ezrt a FreeBSD csak gy tud az adataihoz hozzfrni, ha eltte kitmrtjk ezeket. Ezt a Start men Programs (Programok) > System Tools (Rendszereszkzk) menjben tallhat Compression Agent (Lemeztmrts) elindtsval tehetjk meg. A FreeBSD tmogatja az MS-DOS alap (gyakran csak FAT tpusnak nevezett) llomnyrendszereket. A mount_msdosfs(8) parancs segtsgvel az ilyen rendszerek knnyedn becsatlakoztathatk a mr ltez knyvtrszerkezetbe, amivel gy el tudjuk rni a tartalmt. A mount_msdosfs(8) programot ltalban nem kzvetlenl hvjuk meg, hanem az /etc/fstab vagy a mount(8) segdprogram megfelel paramterezsvel. Az /etc/fstab llomnyban ltalban gy nz ki egy ilyen sor:
/dev/ad0sN /dos msdosfs rw 0 0

Megjegyzs: A mvelet vgrehajtshoz a /dos knyvtrnak mr lteznie kell. Az /etc/fstab pontos formtumval kapcsolatban a fstab(5) man oldalt olvassuk el.

Az MS-DOS llomnyrendszerek esetben a mount(8) parancsot tbbnyire gy adjuk ki:


# mount -t msdosfs /dev/ad0s1 /mnt

Ebben a pldban a MS-DOS llomnyrendszer az elsdleges merevlemez els partcijn helyezkedik el. A mi helyzetnk ettl eltr lehet, ezrt ehhez vizsgljuk meg a dmesg s mount parancsok kimeneteit. Segtsgkkel elegend informcit tudunk sszeszedni a gpnkn tallhat partcik kiosztsrl.
Megjegyzs: Elfordulhat, hogy a FreeBSD a tbbi opercis rendszertl eltr mdon szmozza a slice-okat (vagyis az MS-DOS partcikat). Konkrtan: a kiterjesztett MS-DOS partcik ltalban nagyobb sorszmot kapnak, mint az elsdleges MS-DOS partcik. Az fdisk(8) segdprogram segthet megllaptani, hogy mely slice-ok tartoznak a FreeBSD-hez s melyek ms opercis rendszerekhez.

84

Fejezet 2. A FreeBSD teleptse A mount_ntfs(8) parancs hasznlatval az NTFS partcik hasonl mdon csatlakoztathatak.

2.11.3. Krdsek s vlaszok


1. A rendszerem teljesen lell amikor az indts sorn eszkzket prbl megtallni, vagy furcsn viselkedik a telepts sorn, esetleg a oppy meghajtt nem is keresi. A FreeBSD az i386, amd64 s ia64 platformokon az indts kzben az eszkzk feldertsben ersen ptkeznek a rendszeren elrhet ACPI szolgltatsra. Sajnos mg mindig vannak hibk az ACPI meghajtban, az alaplapokban s a BIOS-okban. A rendszerbetlt harmadik fokozatban viszont az hint.acpi.0.disabled megadsval kikapcsolhat az ACPI hasznlata:
set hint.acpi.0.disabled="1"

Ez a bellts a rendszer minden egyes indtsakor trldik, ezrt a hint.acpi.0.disabled="1" bejegyzst fel kell vennnk a /boot/loader.conf llomnyba. A rendszerbetlt mkdsrl rszletesebben a 12.1 Szakaszban olvashatunk.

2. A FreeBSD teleptse utn elszr indtom el a merevlemezrl a rendszert, a rendszermag betltdik s nekilt felkutatni a hardvereszkzket, azonban megll a kvetkez zenettel:
changing root device to ad1s1a panic: cannot mount root

Mi lehet a gond? Mit tegyek? Mit jelent a bios_drive:interface(unit,partition)kernel_name a rendszerindts sorn megjelen sgban?

Ez egy rgta fennll problma olyan rendszerek esetn, ahol a rendszerindtshoz hasznlt lemez nem az els. A BIOS a FreeBSD-tl eltr sorszmozst hasznl, s az ltala alkalmazott megfeleltetsek megfejtse nehzkes. Amikor a rendszer indtsra hasznlt lemez nem az els lemez a rendszernkben, segtennk kell a FreeBSD-nek a megtallsban. Kt gyakori helyzet alakulhat ki, s mind a kettben el kell rulnunk a FreeBSD-nek, hogy hol tallhat a rendszer indtshoz hasznlhat gykr llomnyrendszer. Ezt a lemez BIOS-ban nyilvntartott sorszmnak, tpusnak s a neki megfelel FreeBSD szerinti lemezszm megadsval tehetjk meg. Az els szituciban kt IDE-lemeznk van, mind a kettt masterknt lltottuk be a hozzjuk tartoz IDE-buszokon, s a kzlk a msodikrl akarjuk indtani a FreeBSD-t. A BIOS ezeket 0. s 1. lemezknt ltja, mikzben a FreeBSD pedig ad0 s ad2 eszkzknt. A FreeBSD 1. BIOS-szmozs lemezen van, amelynek a tpusa ad s a FreeBSD szerinti a 2 sorszmot viseli. Ezrt ezt kell hasznlnunk:
1:ad(2,a)kernel

Ha az elsdleges buszon van egy slave meghajtnk, akkor mindez nem szksges (s valsznleg rossz is). A msodik szituciban egy SCSI-lemezrl akarjuk indtani a rendszert, mikzben egy vagy tbb IDE-lemez is tallhat a gpnkben. Ebben az esetben a FreeBSD szerinti sorszm kisebb lesz, mint a BIOS szerinti. Ha teht a

85

Fejezet 2. A FreeBSD teleptse kt IDE-lemeznk mellett van mg egy SCSI-lemez is, akkor annak a BIOS szerinti sorszma 2, a tpusa da s a FreeBSD szerinti sorszma pedig 0. Ennek megfelelen a
2:da(0,a)kernel

sorral tudjuk elrulni a FreeBSD-nek, hogy a BIOS szerint 2. lemezrl akarjuk indtani, amely a rendszerben tallhat els SCSI-lemeznek felel meg. Ha csak egy IDE-lemeznk van, akkor a sort kezdjk az 1: bersval. Miutn megtalltuk a megfelel rtkeket, a hozz tartoz sort egy szvegszerkeszt segtsgvel tegyk kzvetlenl a /boot.config llomnyba. A FreeBSD ezen llomny tartalmt fogja alapbl felhasznlni a boot: bekrsnl, hacsak mskppen nem utastjuk.

3. A telepts utn elszr prblom meg elindtani a merevlemezrl a FreeBSD-t, azonban a rendszervlaszt mindig csak F? opcikat knl fel, s a rendszer indtsa sem halad tovbb. A FreeBSD teleptse sorn rosszul adtunk meg a partciszerkesztben a merevlemezhez tartoz geometrit. Menjnk vissza a partciszerkeszthz s adjuk meg jra a merevlemeznk helyes geometrijt. Ennek hasznlathoz pedig a FreeBSD-t is jra kell teleptennk. Ha egyltaln kptelenek vagyunk megllaptani a merevlemezhez tartoz geometrit, akkor prbljuk meg ezt: a lemez elejn hozzunk ltre egy kis mret DOS partcit s rakjuk utna a FreeBSD-t. Amikor a teleptprogram szreveszi a DOS partcit, megprblja magtl kikvetkeztetni belle a helyes geometrit, ami ltalban mkdik is. Ez a tancs ugyan mr nem rvnyes, de lljon itt felvilgostsknt:
Ha teljesen egy FreeBSD alap szerver vagy munkalloms kialaktsra sznjuk a szmtgpnket, s nem trdnk a DOS-szal, Linuxszal s a tbbi opercis rendszerrel trtn (jvbeli) kompatibilitssal, hasznlhatjuk akr az egsz lemezt is (a partciszerkesztben ez az A opci). Ezzel egy olyan nem szabvnyos belltst engedlyeznk, amivel a FreeBSD elfoglalja a lemezt annak legels szektortl a legutols szektorig. Ilyenkor ugyan el tudunk tekinteni a geometrival kapcsolatos belltsoktl, azonban gy a FreeBSD-n kvl semmilyen ms opercis rendszert nem tudunk majd futtatni a gpen.

4. A rendszer megtallja a ed(4) hlzati krtymat, azonban folyamatosan hibt ad idtllpsre hivatkozva. Az emltett krtya valsznleg a /boot/device.hints llomnyban belltottaktl eltr IRQ-t hasznl. A ed(4) meghajt alaprtelmezs szerint nem hasznl szoftveres belltsokat (amiket DOS-ban az EZSETUP hasznlatval adunk meg), viszont engedlyezhetjk, ha a krtynl megadjuk az -l belltst. Hardveresen ezt a krtyn lev jumperek segtsgvel llthatjuk be (ehhez vltoztassuk meg a rendszermag belltsait is, amennyiben szksges), vagy a -l kapcsoln keresztl a hint.ed.0.irq="-l" megadsval utasthatjuk a rendszermagot az IRQ szoftveres belltsra. Msik lehetsg, amikor a krtynk a 9-es IRQ-t hasznlja, amelyet ltalban megosztanak a 2-es IRQ-val, ami gyakori problmk forrsa (klnsen abban az esetben, amikor a VGA krtya a 2-es IRQ-t hasznlja!) lehet. Lehetleg ne hasznljuk a 2-es s 9-es IRQ-kat.

5. Amikor a sysinstall programot egy X11 terminlban futtatom, a srga szn betket viszonylag nehz olvasni a vilgosszrke httrrel. Esetleg lehet valahogy nvelni a kontrasztot az alkalmazs hasznlatakor? Ha az X11 teleptse utn a sysinstall ltal vlasztott sznekkel nem olvashat a szveg xterm(1) vagy rxvt(1) terminlokban, akkor vegyk fel a kvetkez sort a felhasznli knyvtrunkban lev .Xdefaults kongurcis

86

Fejezet 2. A FreeBSD teleptse llomnyunkba: XTerm*color7:#c0c0c0. Ezzel majd egy sttebb szrke htteret kapunk.

2.12. Teleptsi tmutat haladknak


rta: Valentino Vaschetto. Ebben a szakaszban megtudhatjuk, hogyan teleptsk a FreeBSD-t specilis esetekben.

2.12.1. A FreeBSD teleptse billentyzet vagy monitor nlkl


A telepts ezen fajtjt fej nlkli teleptsnek (headless install) hvjk, mivel a gp, amire a FreeBSD-t telepteni akarjuk, nem rendelkezik monitorral vagy ppen mg VGA kimenettel sem. Felmerlhet a krds: hogyan lehetsges mindez? A soros vonali konzol hasznlatval! A soros konzol segtsgvel lnyegben egy msik szmtgp monitorjt s billentyzett hasznljuk. Ennek megvalstshoz elsknt kvessk a rendszerindt lemezek ksztsnek 2.3.7 Szakaszban lert lpseit. Az gy ltrehozott lemezeket pedig az albbi lpsekkel tehetjk kpess a soros konzolon keresztli rendszerindtsra: 1. A rendszerindt lemezek tlltsa soros konzolra Ha a ltrehozott lemezekkel most csak egyszeren elindtannk a FreeBSD-t, akkor a megszokott teleptsi mdban indulna el. Mi viszont azt akarjuk, hogy a teleptshez a FreeBSD a soros konzolon keresztl induljon el. Ehhez tegyk be s a mount(8) paranccsal csatlakoztassuk FreeBSD rendszernkhz a boot.flp image-et tartalmaz lemezt.
# mount /dev/fd0 /mnt

Most, miutn csatlakoztattuk a lemezt, vltsunk az /mnt knyvtrra:


# cd /mnt

Itt fogjuk belltani a lemezt a soros konzolon keresztli indulsra. Ltre kell hoznunk egy boot.config nev llomnyt, amelybe a /boot/loader -h sor fog kerlni. Ezzel jelezzk a rendszerbetltnek, hogy a rendszerindts sorn a soros konzolt akarjuk hasznlni.
# echo "/boot/loader -h" > boot.config

Miutn a lemezen sikeresen elvgeztk a szksges belltst, vlasszuk le a umount(8) parancs kiadsval:
# cd / # umount /mnt

Most mr kivehetjk a lemezt a meghajtbl. 2. A null-modem kbel csatlakoztatsa ssze kell ktnnk a kt szmtgpet egy null-modem kbellel. Nincs ms teendnk, mit sszekapcsolni a kt gp soros portjait. Itt a szoksos soros kbel nem mkdik, konkrtan null-modem kbelre van szksg, mivel benne nhny vezetket mshogy ktttek be. 3. A telepts indtsa

87

Fejezet 2. A FreeBSD teleptse Most mr ideje elkezdeni a teleptst. Tegyk a boot.flp image-et tartalmaz lemezt a fej nlkl teleptend gp meghajtjba s kapcsoljuk be. 4. Kapcsolds a fej nlkli gpre Ezutn a cu(1) parancs felhasznlsval kapcsoldjunk r a gpre:
# cu -l /dev/cuad0

Ezzel kszen is vagyunk! Innentl a cu ltal megnyitott kapcsolaton keresztl tudjuk vezrelni a fej nlkli szmtgpet. Hamarosan megkr minket a kern1.flp image-et tartalmaz lemez behelyezsre, majd megkrdezi a hasznlt terminl tpust. Itt vlasszuk ki a sznes FreeBSD konzolt (FreeBSD color console) s folytassuk a teleptst a megszokott mdon.

2.13. Sajt telepteszkz elksztse


Megjegyzs: Az ismtlsek elkerlse vgett a tovbbiakban a FreeBSD lemez a megvsrolhat vagy a magunk ltal ksztett FreeBSD CD-re vagy DVD-re vonatkozik.

Addhatnak olyan esetek, amikor ltre kell hoznunk a FreeBSD teleptsre hasznlt sajt eszkznket s/vagy forrsunkat. Ez lehet egy tetszleges zikai eszkz, pldul szalag, vagy brmilyen olyan forrs, ahonnan a sysinstall kpes llomnyokat elrni, pldul egy FTP oldal vagy egy MS-DOS partci. Pldul:

Egy FreeBSD lemeznk van s tbb hlzaton kapcsold szmtgpnk. Kszteni akarunk egy helyi FTP oldalt a FreeBSD lemez felhasznlsval, s gy a hlzaton lev gpre az internet helyett innen teleptjk a rendszert. Van egy FreeBSD lemeznk, azonban a FreeBSD-nek nem sikerlt felismernie a CD/DVD-meghajtnkat, viszont az MS-DOS/Windows-nak igen. Felmsoljuk a FreeBSD teleptshez hasznlt llomnyokat ugyanazon a szmtgpen tallhat egyik DOS partcira, majd a FreeBSD-t ezekkel teleptjk. A gpben, amelyre telepteni akarunk, nincs CD/DVD-meghajt vagy hlzati krtya, viszont Laplink stlus soros vagy prhuzamos kbellel hozz tudunk kapcsoldni egy olyan szmtgprl, amelyben viszont van. Kszteni akarunk a FreeBSD teleptsre hasznlhat szalagot.

2.13.1. Telept CD ksztse


A FreeBSD Projekt minden kiads rszeknt architektrnknt elrhetv tesz legalbb kt CD image-et (ISO image-et). Ha rendelkeznk CD-rval, ezeket az image-eket fel-, illetve ki tudjuk rni (getni) CD-re, s a FreeBSD teleptsre tudjuk hasznlni. Teht ha van a keznk gyben CD-r s olcsn jutunk nagyobb sebessg internetelrshez, akkor a FreeBSD teleptsnek ez a legknnyebb mdja. 1. A megfelel ISO image-ek letltse

88

Fejezet 2. A FreeBSD teleptse Az egyes kiadsok ISO image-ei letlthetek a


ftp://ftp.FreeBSD.org/pub/FreeBSD/ISO-IMAGES-architektra/vltozat cmrl vagy annak legkzelebbi tkrzsrl. Az architektra s vltozat rszeket ignyeinknek megfelelen helyettestsk.

Az emltett knyvtr ltalban a kvetkez lemezek image-eit tartalmazza: Tblzat 2-4. FreeBSD 6.X s 7.X ISO image-ek nevei s jelentsei llomnynv
vltozat-RELEASE-architektra-bootonly.iso

Tartalma Minden, ami ahhoz kell, hogy el tudjuk indtani a FreeBSD rendszermagot s megkapjuk a teleptshez szksges alapokat. A teleptend llomnyokat ezutn FTP-rl vagy ms ismert forrsbl rjk el. Minden, ami a FreeBSD teleptshez kellhet, valamint egy l llomnyrendszer (Live Filesystem), amelyet a sysinstall Repair (Helyrellts) funkcijhoz tudunk hasznlni. Annyi csomag, ami a lemezre csak felfr. A FreeBSD dokumentcija.

vltozat-RELEASE-architektra-disc1.iso

vltozat-RELEASE-architektra-disc2.iso vltozat-RELEASE-architektra-docs.iso

Le kell tltennk az els lemez vagy (ha elrhet) a bootonly lemez ISO image-einek egyikt. Akkor hasznljuk a bootonly jelzs image-et, ha szlessv internetelrssel rendelkeznk. Segtsgvel el tudjuk kezdeni a FreeBSD teleptst, s szksg szerint a port/csomagrendszer (lsd 4 fejezet) hasznlatval csomagokat tudunk letlteni s telepteni. Az els lemez image-t akkor rdemes hasznlni, ha a FreeBSD adott kiadsnak teleptse mellett ignyt tartunk valamennyi csomagra is. A tovbbi lemezek image-ei is hasznosak lehetnek, de nem felttlenl kellenek a teleptshez, fleg abban az esetben, amikor gyors internetelrssel rendelkeznk. 2. A CD-k rsa Ezutn lemezekre kell rnunk a letlttt image-eket. Amennyiben ezt egy msik FreeBSD rendszeren vgezzk, ennek rszleteirl a 18.6 Szakasz szmol be (klnsen a 18.6.3 Szakasz s a 18.6.4 Szakasz lersa). Ha msik platformon vgezzk ezt a mveletet, akkor az adott platformon felknlt CD-r szoftverekkel kell dolgoznunk. Az image-ek szabvnyos ISO formtumak, amelyet szinte az sszes CD-r alkalmazs ismer.
Megjegyzs: Ha kvncsiak vagyunk egy sajt FreeBSD kiads elksztsre, olvassuk el a kiadsok szervezsrl szl cikket (angolul) (http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/releng).

2.13.2. Helyi FTP oldal ltrehozsa FreeBSD lemezzel


A FreeBSD lemezeken az FTP oldalakhoz hasonl elrendezst tallunk. Ez megknnyti a hlzatunkban tallhat szmtgpekhez a FreeBSD teleptsre hasznlhat helyi FTP oldal ltrehozst.

89

Fejezet 2. A FreeBSD teleptse 1. Az FTP oldalnak otthont ad FreeBSD szmtgpen tegyk a CD-t a meghajtba, majd csatlakoztassuk a
/cdrom knyvtrba.
# mount /cdrom

2.

Hozzunk ltre egy anonim FTP hozzfrst az /etc/passwd llomnyban. A vipw(8) segtsgvel teht illesszk be a kvetkez sort az /etc/passwd llomnyba:
ftp:*:99:99::0:0:FTP:/cdrom:/nonexistent

3.

Gondoskodjuk rla, hogy az FTP szolgltats engedlyezve legyen az /etc/inetd.conf llomnyban.

Most mr brki, aki kpes csatlakozni ehhez a szmtgphez, a telepts tpusnak ki tudja vlasztani az FTP-t. Az FTP oldalak menjben vlassza az Other (Egyb) pontot, majd adja meg az ftp://gpnv cmet.
Megjegyzs: Ha az FTP-n csatlakoz kliensek rendszerindtshoz hasznlt eszkze (ltalban a oppy) verzija nem egyezik meg tkletesen a helyi FTP oldalon tallhatval, akkor a sysinstall nem engedi a teleptst. Ha a vltozatok nem hasonlak s ezt fell akarjuk brlni, akkor be kell lpnnk az Options (Belltsok) menbe, ahol t kell lltanunk a terjeszts nevt (distribution name) any (brmelyik)-re.

FigyelemA fenti megkzelts kizrlag csak egy tzfallal vdett helyi hlzaton javasolt. FTP szolgltats ltrehozsa az interneten (s nem a helyi hlzatunkban) lev szmtgpek szmra klnbz tmadsoknak s egyb kellemetlensgeknek teszi ki a szmtgpnket. Hatrozottan javasoljuk, hogy ebben az esetben klnsen gyeljnk a biztonsgra.

2.13.3. Teleptoppyk ltrehozsa


Ha oppylemezrl kellene teleptennk (amit viszont semmikppen sem ajnlannk) egy nem tmogatott hardvereszkz miatt, vagy mert egyszeren szeretjk a dolgok nehezebbik oldalt megfogni, akkor ehhez elszr el kell ksztennk pr lemezt. Legalbb annyi 1,44 MB-os lemezre van szksgnk, mint amennyire rfrnek a base (alapterjeszts) knyvtrban tallhat llomnyok. Ha DOS-ban hozzuk ltre ezeket a lemezeket, akkor a hasznlatukhoz meg kell formzni ezeket az MS-DOS FORMAT parancsval. Windows hasznlata esetn az Windows Explorerben (Intzben) tudjuk megformzni a lemezeket (kattintsunk a jobb gombbal az A: meghajtra, majd vlasszuk a Format (Formzs) menpontot). Ne bzzunk a gyrilag formzott (pre-formatted jelzs) lemezekben! Menjnk biztosra s formzzuk meg mi magunk is lemezeket. A felhasznlinktl rgebben szmtalan olyan panasz rkezett, amely a helytelenl megformzott lemezbl fakadt, ezrt erre most kiemelten felhvjuk a gyelmet. A formzs abban az esetben sem bizonyul rossz tletnek, ha egy msik FreeBSD gpen gyrtjuk le a lemezeket, habr nem kell mindegyik lemezre DOS llomnyrendszert tennnk. Helyette a bsdlabel s newfs parancsok hasznlatval UFS llomnyrendszert is tehetnk rjuk, ahogy (1,44 MB mret lemezek esetn) ezt az albbi parancsok mutatjk:
# fdformat -f 1440 fd0.1440 # bsdlabel -w fd0.1440 floppy3 # newfs -t 2 -u 18 -l 1 -i 65536 /dev/fd0

90

Fejezet 2. A FreeBSD teleptse Ezutn a tbbi llomnyrendszerhez hasonlan a lemezeket tudjuk csatlakoztatni s rni. Miutn megformztuk a lemezeket, rjuk kell msolnunk az llomnyokat. A terjesztsekhez tartoz llomnyokat adott mret darabokra szeleteltk, gy knyelmesen rfrnek egy hagyomnyos 1,44 MB mret oppyra. Menjnk vgig az sszes oppyn s mindegyikre pakoljuk fel a lehet legtbb llomnyt egszen addig, amg gy az sszes szksges terjesztst ssze nem szedtk. A oppykon minden terjeszts kerljn egy hozztartoz alknyvtrba, pldul: a:\base\base.aa, a:\base\base.ab s gy tovbb.
Fontos: Az els lemezre r kell msolnunk a base.inf nev llomnyt is, mivel ennek beolvassval lesz kpes kitallni a telept, hogy a terjesztsek sszeszedse s sszefzse sorn mennyi darabot keressen.

Ahogy elrkeznk a telepteszkz kivlasztshoz a telepts folyamatban, ott vlasszuk a Floppy menpontot, majd utna kvessk a felbukkan zeneteket.

2.13.4. Telepts MS-DOS partcirl


Amikor egy MS-DOS partcirl akarunk telepteni, elkszts gyannt msoljuk a terjesztsekhez tartoz llomnyokat a partcira egy freebsd knyvtrba. Ez lesz pldul a c:\freebsd. Ebben a knyvtrban igyekezzk minl jobban megtartani a CD vagy az FTP oldal knyvtrszerkezett, ezrt erre a CD-rl trtn tmsolsra a DOS xcopy parancst javasoljuk. Pldul gy tudjuk elkszteni a FreeBSD legegyszerbb vltozatnak teleptst:
C:\> md c:\freebsd C:\> xcopy e:\bin c:\freebsd\bin\ /s C:\> xcopy e:\manpages c:\freebsd\manpages\ /s

A fentiekben feltteleztk, hogy ehhez a C: meghajtn elg szabad helynk van, valamint az E: meghajtn rjk el a CD-t. Ha nincs CD-meghajtnk, az ftp.FreeBSD.org (ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/8.0-RELEASE/) cmrl letlthetjk a terjesztsket. Minden egyes terjeszts kln knyvtrban tallhat, teht pldul a base (alap) terjeszts az 8.0/base/ (ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/8.0-RELEASE/base/) knyvtrban tallhat. Mindegyik teleptend terjesztst (ami mg elfr) msoljuk t az MS-DOS partci c:\freebsd knyvtrba a teleptshez egybknt egyedl a BIN terjeszts szksges.

2.13.5. Teleptszalag ltrehozsa


Valsznleg a szalagos mdszer a legegyszerbb, egyfajta l FTP-s vagy CD-s telepts. A teleptprogram arra szmt, hogy a szalagon az llomnyok egyms utn helyezkednek el. Teht miutn beszereztk a neknk kell terjesztsekhez tartoz sszes llomnyt, egyszeren vegyk fel ezeket a szalagra:
# cd /freebsd/distdir # tar cvf /dev/rwt0 dist1 ... dist2

91

Fejezet 2. A FreeBSD teleptse Mieltt teleptennk, ellenrizzk, hogy legyen elg helynk valamelyik (a telepts sorn majd kivlaszthat tmeneti) knyvtrban ahhoz, hogy az itt ltrehozott szalag teljes tartalma elfrjen benne. Mivel a szalagok csak szekvencilisan rhetek el, ezrt ennl a mdszernl j sok ideiglenes trhelyre lesz szksgnk.
Megjegyzs: A telepts megkezdse utn a szalagnak mr azeltt a meghajtban kell lennie, hogy rendszerindt oppyrl elindtannk a rendszert, msklnben nem tallja meg.

2.13.6. Mieltt hlzatrl teleptennk


Hromfle hlzati teleptsi md ltezik: Ethernet (szabvnyos Ethernet-vezrlvel), soros port (SLIP vagy PPP) vagy prhuzamos port (PLIP (laplink kbel)). Valsznleg az Ethernet-csatlakoz vlasztsval rjk el a leggyorsabb hlzati teleptst. A FreeBSD ismeri a legtbb PC-s Ethernet krtyt. Az ismert krtyk (s a hozzjuk tartoz belltsok) a FreeBSD egyes kiadsnak hardverjegyzkben (Hardware Notes) tallhatak meg. Amennyiben egy tmogatott PCMCIA Ethernet krtyt hasznlunk, mindig a laptop bekapcsolsa eltt helyezzk be! A FreeBSD telepts kzben sajnos nem tmogatja a PCMCIA krtyk menetkzbeni behelyezst. Ezenkvl mg ismernnk kell a hlzaton kapott IP-cmnket, az ltala hasznlt cmosztly hlzati maszkjt, a gpnk nevt. Ha PPP kapcsolaton keresztl teleptnk s nincs statikus IP-cmnk, akkor minden bizonnyal az internet-szolgltatnktl kaptunk egyet dinamikusan. A konkrt hlzati belltsokat a hlzatunk rendszergazdjtl is rdemes megkrdezni. Ha a hlzaton lev tbbi gpre nvvel s nem IP-cmmel hivatkozunk, akkor szksgnk lesz mg egy nv(felold) szerverre s az internet elrshez egy tjr cmre is (ha PPP-t hasznlunk, ez a szolgltatnk IP-cme lesz). Ha FTP-rl HTTP proxy hasznlatval teleptnk, akkor a proxy cme is kelleni fog. Ha magunktl nem vagyunk kpesek ezekre a krdsekre vlaszolni, akkor az ilyen tpus telepts megkezdse eltt tnyleg segtsget kell krnnk egy rendszergazdtl vagy az internet-szolgltatnktl. A SLIP tmogats inkbb primitv, s elssorban csak kttt kapcsolatokra korltozdik, mint pldul egy laptop s egy msik szmtgp kzti soros sszektettets. A kapcsolatnak annyiban kell ktttnek lennie, hogy a SLIP-en keresztli telepts pillanatnyilag nem ismeri a betrcszst. Ezt a PPP segtsgvel tudjuk megvalstani, ezrt ha tehetjk, mindig ezt vlasszuk a SLIP helyett. Ha modemet hasznlunk, akkor a PPP szinte biztosan megfelel neknk. Gondoskodjunk rla, hogy mr a telepts korai szakaszban rendelkezsnkre ll az internet-szolgltatnkkal kapcsolatosan minden hasznos informci. Ha PAP vagy CHAP hasznlatval kapcsoldunk a szolgltatnkhoz (mskpp szlva Windows-ban gy tudunk szkriptek nlkl csatlakozni), mindssze a dial parancsot kell kiadnunk a ppp parancssorban. Minden ms esetben tudnunk kell a modemnk sajt AT parancsaival trcszni az internet-szolgltatnkat, hiszen ehhez a PPP trcsz csak egy nagyon kezdetleges terminlemulcit nyjt. Ezzel kapcsolatban olvassuk el a kziknyv s a GYIK (http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/faq/ppp.html) idevg rszeit. Ha gondjaink akadnnak, a naplzs a set log local ... parancs kiadsval tirnythat kzvetlenl a kpernyre. Ha kttt mdon tudunk csatlakozni egy msik (2.0-R vagy ksbbi verzij) FreeBSD gphez, akkor megprblkozhatunk a prhuzamos laplink kbellel. A prhuzamos porton keresztli adattvitel sebessge a soros vonalnl jval nagyobb (egszen 50 kbyte/mp), ezrt vele a telepts is gyorsabb.

92

Fejezet 2. A FreeBSD teleptse

2.13.6.1. Mieltt NFS-rl teleptennk


A telepts NFS-en keresztl szinte magtl rtetdik. Egyszeren csak msoljuk a FreeBSD terjesztseihez tartoz llomnyokat az NFS szerverre s lltsuk be r az NFS telepteszkzt. Ha a szerver csak privilegizlt portokat ismer (ami ltalban alaprtelmezett a Sun munkallomsoknl), a telepts megkezdse eltt az Options (Belltsok) menben be kell lltani az NFS Secure (Biztonsgos NFS) opcit. Ha egy gyenge minsg s kis adattviteli sebessg Ethernet krtynk van, akkor emellett mg hasznos lehet belltani az NFS Slow (Lass NFS) opcit is. Az NFS-en keresztli telepts mkdshez a szervernek tmogatnia kell az alknyvtrak csatlakoztatst is, teht pldul ha a FreeBSD 8.0 terjesztsnk a ziggy:/usr/archive/stuff/FreeBSD knyvtrban tallhat, akkor ziggy nev gpnek lehetv kell tennie a /usr/archive/stuff/FreeBSD knyvtr kzvetlen csatlakoztatst is, nem csak a /usr vagy /usr/archive/stuff knyvtrakt. A FreeBSD /etc/exports llomnyban ezt az -alldirs belltssal vezrelhetjk. Ms NFS szervereken esetleg ms megszoksokat kell kvetnnk. Amennyiben a szervertl permission denied (hozzfrs megtagadva) zeneteket kapjuk, valszn, hogy ezt nem lltottuk be megfelelen.

93

Fejezet 3. A UNIX alapjai


tdolgozta: Chris Shumway.

3.1. ttekints
Ez a fejezet a FreeBSD opercis rendszer alapvet funkciit s parancsait mutatja be. Az itt trgyalsra kerl anyag nagy rsze rvnyes brmelyik ms UNIX-szer opercis rendszer esetn is. Ezrt, ha mr ismerjk az emltsre kerl ismereteket, minden tovbbi gond nlkl tugorhatjuk ezt a fejezetet. Azonban ha mg teljesen ismeretlen szmunkra a FreeBSD, minden bizonnyal ez lesz az, amit alaposan t kell majd olvasnunk. A fejezet elolvassa sorn megismerjk:

az n. virtulis konzolok hasznlatt FreeBSD alatt; hogyan mkdnek egytt a UNIX llomnyokra vonatkoz engedlyei a FreeBSD sajt kiegsztseivel; egy FreeBSD llomnyrendszer alaprtelmezett kialaktst; a FreeBSD lemezszervezst; hogyan csatlakoztassunk s vlasszunk le llomnyrendszereket; mik azok a folyamatok, dmonok s jelzsek; mik azok a parancsrtelmezk, s miknt tudjuk megvltoztatni az alaprtelmezett bejelentkezsi krnyezetnket; hogyan hasznljuk az alapvet szvegszerkesztket; mik az eszkzk s az eszkzlerk; FreeBSD alatt milyen binris formtumokat hasznlhatunk; szksg esetn hogyan olvassuk el a megfelel man oldalakat.

3.2. Virtulis konzolok s terminlok


A FreeBSD szmos mdon hasznlhat. Ezek kzl az egyik az, ha parancsokat gpelnk be a szveges terminlon. gy rhet el egyszeren a UNIX opercis rendszer rugalmassgnak s erejnek jelents rsze. Ebben a szakaszban megtudhatjuk, mik azok a terminlok s konzolok s miknt tudjuk ezeket FreeBSD alatt hasznlni.

3.2.1. A konzol
Ha nem lltottuk volna be, hogy a FreeBSD indulsa sorn automatikusan induljon el a grakus fellet is, akkor a rendszer egy bejelentkez kpernyt fog mutatni kzvetlenl a rendszerindts befejezdse utn. Ekkor valami ilyesmit kell majd ltnunk:
Additional ABI support:. Local package initialization:. Additional TCP options:.

94

Fejezet 3. A UNIX alapjai


Fri Sep 20 13:01:06 EEST 2002 FreeBSD/i386 (pc3.example.org) (ttyv0) login:

Egyes rendszereken ugyan nmileg eltrhetnek az zenetek, de hasonlt kell ltnunk. Minket most az utols kt sor rdekel. Az utols eltti sorban ez olvashat:
FreeBSD/i386 (pc3.example.org) (ttyv0)

Ez a sor arrl rtest minket, hogy a rendszernk ppen most indult el: egy FreeBSD konzolt ltunk, amely egy Intel x86 architektrj processzoron fut 1. A gpnk neve (mivel minden UNIX-os gp rendelkezik egy nvvel) pc3.example.org, s ennek a rendszerkonzoljt ltjuk most ppen a ttyv0 terminlt. Vgezetl az utols sor mindig:
login:

Ez az a rsz, ahova a FreeBSD-be trtn bejelentkezshez meg kell adnunk a felhasznli nevnket (user name). A kvetkez szakaszban errl olvashatunk.

3.2.2. Bejelentkezs a FreeBSD-be


A FreeBSD egy tbbfelhasznls, tbbfeladatos rendszer. gy hvjk hivatalosan azokat a rendszereket, amelyeket tbben tudnak hasznlni s egyetlen szmtgpen egyszerre rengeteg programot kpesek futtatni. Minden tbbfelhasznls rendszernek valamilyen mdon meg kell tudnia klnbztetnie egy felhasznljt a tbbitl. A FreeBSD-ben (s minden ms UNIX-szer opercis rendszerben) ezt gy rik el, hogy a programok futtatsa eltt minden felhasznlnak be kell jelentkeznie a rendszerbe. Minden felhasznl rendelkezik egy egyedi nvvel (ez a felhasznli nv) s ehhez egy titkos kulcssal (ez a jelsz). A FreeBSD a programok futtatshoz ezt a kettt fogja elkrni a felhasznltl. Egybl miutn a FreeBSD elindult s befejezte a rendszerindtshoz hasznlt szkriptjeinek lefuttatst 2, ez a kijelzs (vagy ms nven prompt) fog megjelenni s kr egy rvnyes felhasznli nevet:
login:

A plda kedvrt most tegyk fel, hogy a felhasznli nevnk pgj. Az imnti prompthoz rjuk be, hogy pgj s nyomjuk le az Enter billentyt. Ezt kveten meg kell jelennie egy msik promptnak is, amely egy jelszt (password) kr:
login: pgj Password:

Most pedig gpeljk be pgj jelszavt s nyomjunk utna egy Enter billentyt. Vigyzzunk, hogy a jelszt nem ltjuk a bers sorn! Emiatt most ne aggdjunk. Ezzel kapcsolatban elegend csak annyit tudni, hogy mindez biztonsgi megfontolsokbl trtnik. Amennyiben jl adtuk meg a jelszavunkat, sikeresen bejelentkeznk a FreeBSD rendszerbe s kszen llunk az sszes elrhet parancs kiprblsra.

95

Fejezet 3. A UNIX alapjai Bejelentkezs utn a MOTD (message of the day) vagy ms nven a nap zenete jelenik meg, amelyet a parancssor kvet (egy #, $ vagy % jel). Innen tudhatjuk meg, hogy sikerlt bejelentkeznnk.

3.2.3. Tbb konzol hasznlata


A UNIX parancsokat egy konzolon is szpen ki tudjuk adni, de a FreeBSD egyszerre ugyebr tbb programot is tud futtatni. A parancsok megadshoz viszont egyetlen konzol hasznlata elg nagy pazarls lenne, hiszen egy olyan opercis rendszer mint a FreeBSD, tucatnyi programot kpes futtatni egy idben. Ebben az esetben jelenthetnek szmunkra segtsget a virtulis konzolok. A FreeBSD bellthat gy, hogy sok-sok klnfle virtulis konzolt ajnljon fel szmunkra. A virtulis konzolok kztt a billentyzeten a megfelel gombok lenyomsval tudunk vltani. Mindegyik konzolnak megvan a sajt kimeneti csatornja, s a virtulis konzolok kzti vlts folyamn a FreeBSD gondoskodik a billentyzetrl rkez bemenet, valamint a monitorra irnytott kimenet megfelel kezelsrl. A konzolok kzti vltsra a FreeBSD kln billentykombincikat tart fenn 3. A FreeBSD-ben a klnbz virtulis konzolok kzti vltsra az Alt-F1, Alt-F2 billentyket, az Alt-F8 billentykombincival bezrlag hasznlhatjuk. A konzolok kzti vltogats sorn a FreeBSD gyel a kperny tartalmnak elmentsre s visszalltsra. Ennek eredmnyekppen gy ltszik, mintha tbb virtulis kpernyn s billentyzeten adnnk parancsokat a FreeBSD-nek.

3.2.4. Az /etc/ttys llomny


A FreeBSD alaprtelmezs szerint nyolc virtulis konzollal indul. Ez azonban nem egy elre rgztett rtk, hiszen knnyedn testreszabhatjuk gy a teleptett rendszernket, hogy tbb vagy esetleg kevesebb virtulis konzollal induljon el. A virtulis konzolok szma s azok pontos belltsa az /etc/ttys llomnyon keresztl adhat meg. A FreeBSD virtulis konzoljait teht az /etc/ttys llomny megfelel mdostsval tudjuk behangolni. Itt minden egyes olyan sor, amely nem megjegyzs (vagyis azok a sorok, amelyek nem a # karakterrel kezddnek), tartalmazza az egyes terminlok vagy virtulis konzolok belltsait. Az llomny a FreeBSD teleptsben szerepl, alaprtelmezett vltozata kilenc virtulis konzol kongurcijt tartalmazza, amelyek kzl nyolc aktv. Ezek a ttyv rsszel kezdd sorok:
# name getty # ttyv0 "/usr/libexec/getty # Virtual terminals ttyv1 "/usr/libexec/getty ttyv2 "/usr/libexec/getty ttyv3 "/usr/libexec/getty ttyv4 "/usr/libexec/getty ttyv5 "/usr/libexec/getty ttyv6 "/usr/libexec/getty ttyv7 "/usr/libexec/getty ttyv8 "/usr/X11R6/bin/xdm type Pc" Pc" Pc" Pc" Pc" Pc" Pc" Pc" -nodaemon" cons25 cons25 cons25 cons25 cons25 cons25 cons25 cons25 xterm status on on on on on on on on off secure secure secure secure secure secure secure secure secure comments

Az llomnyban tallhat oszlopok kimert magyarzatt, illetve a virtulis konzolok belltshoz hasznlhat kapcsolkat a ttys(5) man oldalon olvashatjuk.

96

Fejezet 3. A UNIX alapjai

3.2.5. Az egyfelhasznls md konzolja


Az egyfelhasznls md rszletes lersa a 12.6.2 Szakaszban tallhat. Fontos tudni, hogy amikor a FreeBSD-t egyfelhasznls mdban futtatjuk, csupn egyetlen konzolunk van, s a virtulis konzolok nem rhetek el. Egybknt az egyfelhasznls md erre vonatkoz belltsai is megtallhatak az /etc/ttys llomnyban. Ehhez keressk meg a console kezdet sort:
# name getty type status comments # # Ha a konzolt "insecure" (nem biztonsgos) tpusnak vlasztjuk meg, # akkor a hasznlathoz az egyfelhasznls md aktivils eltt a rendszer # krni fogja a rendszeradminisztrtori jelszt. console none unknown off secure

Megjegyzs: A console felett lthat megjegyzs jelzi, hogy t tudjuk rni ebben a sorban a secure (biztonsgos) rtk paramtert insecure (nem biztonsgos) rtkre. Ilyenkor, hogy ha a FreeBSD egyfelhasznls mdban indul, krni fogja a root felhasznl (a rendszeradminisztrtor) jelszavt. Vigyzzunk, amikor ezt az rtket insecure-ra lltjuk! Ha ugyanis vletlenl elfeledkeznnk a root jelszavrl, akkor azzal az egyfelhasznls md hasznlata is veszlybe kerlhet. Habr ettl fggetlenl is lehetsges, azokra szmra mgis nehz helyzetnek bizonyulhat, akik nem mozognak elg otthonosan a FreeBSD rendszerindtsi folyamatnak s a hozzkapcsold programok ismeretben.

3.2.6. A videomd vltsa konzolban


A FreeBSD konzol alaprtelmezett videomdja tllthat 1024x768-ra, 1280x1024-re, vagy brmilyen olyan ms mretre, amit a videokrtynk s monitorunk kpes megjelenteni. Az eltr videomdok hasznlathoz elszr jra kell fordtanunk a rendszermagunkat az albbi kt bellts hozzadsval:
options VESA options SC_PIXEL_MODE

Miutn a rendszermagot sikeresen jrafordtottuk a fenti belltsokkal, a vidcontrol(1) segdprogrammal tudjuk megllaptani, hogy a hardvernk milyen videomdokat enged hasznlni. Az sszes tmogatott videomdot a kvetkezkppen tudjuk lekrdezni:
# vidcontrol -i mode

A parancs eredmnyekppen teht megkapjuk a hardvernk ltal ismert videomdokat. Ezek kzl tudjuk kivlasztani valamelyikjket s root felhasznlknt a vidcontrol(1) segtsgvel belltani:
# vidcontrol MODE_279

Ha az j videomd megfelel szmunkra, akkor ezt a belltst az /etc/rc.conf llomnyon keresztl vglegesthetjk is:
allscreens_flags="MODE_279"

97

Fejezet 3. A UNIX alapjai

3.3. Engedlyek
A FreeBSD, mivel a BSD UNIX egyik kzvetlen leszrmazottja, szmos UNIX-os alaptletre pl. Ezek kzl az els s taln a leginkbb kihangslyozott, hogy a FreeBSD egy tbbfelhasznls opercis rendszer. Egy olyan rendszer, amely egyszerre tbb, egymstl fggetlen feladattal foglalkoz felhasznlt kpes kiszolglni. A rendszer felels a hardveres eszkzk, a klnfle perifrik, a memria s a processzor idejnek minden egyes felhasznl szmra szablyos s prtatlan megosztsrt s a feljk irnyul krsek szervezsrt. Mivel a rendszer tbb felhasznlt is kpes tmogatni, az ltala kezelt erforrsok rendelkeznek engedlyek egy adott halmazval, amelyek eldntik, ki tudja ezeket olvasni, rni s vgrehajtani. Az engedlyek hromszor hrom bit formjban jelennek meg, amelyek kzl az els bitcsoport az llomny tulajdonosra, a msodik az llomny csoportjra, vgl az utols pedig a mindenki msra vonatkoz engedlyeket trolja. rtk 0 1 2 3 4 5 6 7 Engedly Nem olvashat, nem rhat, nem hajthat vgre Nem olvashat, nem rhat, vgrehajthat Nem olvashat, rhat, nem hajthat vgre Knyvtrlistban
----x -w-

Nem olvashat, rhat, vgrehajthat -wx Olvashat, nem rhat, nem hajthat r-vgre Olvashat, nem rhat, vgrehajthat r-x Olvashat, rhat, nem hajthat vgre rwOlvashat, rhat, vgrehajthat
rwx

A ls(1) -l kapcsoljnak segtsgvel megnzhetjk a knyvtrak tartalmnak rszletes listjt, amiben megjelennek az llomnyok tulajdonosaira, csoportjra s a mindenki msra vonatkoz engedlyek is. Pldul ezt lthatjuk, ha kiadjuk az ls -l parancsot egy tetszleges knyvtrban:
% ls -l

total 530 -rw-r--r--rw-r--r--rw-r--r-...

1 root 1 root 1 root

wheel wheel wheel

512 Sep 512 Sep 7680 Sep

5 12:31 egyik 5 12:31 masik 5 12:31 e-mail.txt

A pldabeli ls -l parancs kimenetnek els oszlopa gy bomlik fel:


-rw-r--r--

Az els (bal szls) karakter mondja meg, hogy ez egy hagyomnyos llomny, knyvtr, specilis karakteres eszkz, socket vagy brmilyen ms klnleges pszeudollomny. Ebben az esetben a - jelzi, hogy egy hagyomnyos llomnyrl van sz. A kvetkez hrom karakter, ami ebben a pldban az rw-, adja meg az llomny tulajdonosnak engedlyeit. Az ezutn kvetkez hrom karakter, az r-- mutatja az llomny csoportjnak engedlyeit. Az utols hrom karakter, vagyis itt az r-- adja meg a tbbiek engedlyeit. A ktjel arra utal, hogy az adott engedly tevkenysg nem engedlyezett. Teht ennl az llomnynl az engedlyek a kvetkezek: a tulajdonosa tudja olvasni s rni, a csoportja csak olvasni tudja, ugyangy brki ms. A fenti tblzatnak megfelelen

98

Fejezet 3. A UNIX alapjai az llomny engedlynek kdja 644 lesz, ahol az egyes szmjegyek jelentik az llomny engedlyeinek hrom elemt. Ez mind szp s j, de vajon a rendszer milyen mdon kezeli az llomnyok engedlyeit? A FreeBSD a legtbb hardveres eszkzt llomnynak tekinti, amelyeket a programok meg tudnak nyitni, tudnak rluk olvasni s adatokat tudnak kirni rjuk pontosan gy, mint brmilyen ms llomny esetn. Ezeket a specilis llomnyokat a /dev knyvtrban talljuk. A knyvtrakat is llomnyokknt kezeli, ezrt azok is rendelkeznek olvassi, rsi s vgrehajtsi engedlyekkel. Azonban a knyvtrak vgrehajtst engedlyez bit nmileg ms jelentssel br, mint az llomnyok esetn. Amikor ugyanis egy knyvtrat vgrehajthatnak jellnk meg, az arra fog utalni, hogy bele tudunk lpni, vagyis hogy ki tudjuk r adni a knyvtrvlts (cd, change directory) parancst. Ez tovbb arra is utal, hogy az ismert nev llomnyokhoz hozz tudunk frni (termszetesen az egyes llomnyok engedlyeinek megfelelen). A knyvtrak tartalmt ennek megfelelen viszont csak gy lthatjuk, ha olvassi engedllyel rendelkeznk a knyvtrra, mg egy ltalunk ismert llomny trlshez a tartalmaz knyvtrhoz kell rsi s vgrehajtsi engedlyekkel rendelkeznnk. Ezeken kvl mg lteznek tovbbi engedlyek is, de ezeket csak olyan klnleges esetekben hasznljk, mint pldul a felhasznlvlt programok (setuid program) vagy a ragads knyvtrak (sticky directory) ltrehozsa. Az llomnyok engedlyeinek behatbb megismershez s belltshoz mindenkppen nzzk t a chmod(1) man oldalt.

3.3.1. Szimbolikus engedlyek


rta: Tom Rhodes. A szimbolikus engedlyek (gyakran csak szimbolikus kifejezsek) az llomnyok s knyvtrak engedlyeinek megadsa sorn a szmok helyett karaktereket hasznlnak. A szimbolikus kifejezsek (ki) (hogyan) (milyen engedlyt) alakak, ahol az albbi rtkek adhatak meg: Elem (ki) (ki) (ki) (ki) (hogyan) (hogyan) (hogyan) (milyen engedly) (milyen engedly) (milyen engedly) (milyen engedly) (milyen engedly) Bet u g o a + = r w x t s Jelentse tulajdonos csoport tulajdonos egyb mindenki (a vilg) engedly megadsa engedly visszavonsa engedly explicit belltsa olvass rs vgrehajts ragads (sticky bit) UID vagy GID lltsa

Ezek az rtkek a chmod(1) paranccsal az eddigiekhez hasonl mdon hasznlhatak, csak itt betket kell megadnunk. Pldul az albbi paranccsal akadlyozhatjuk meg, hogy a tulajdonosn kvl brki hozzfrhessen az LLOMNY nev llomnyhoz:

99

Fejezet 3. A UNIX alapjai


% chmod go= LLOMNY

Amennyiben egy llomnnyal kapcsolatban tbb vltoztatst is el kvnunk vgezni, ssze tudjuk ezeket fzni egy vesszkkel elhatrolt felsorolsban:
% chmod go-w,a+x LLOMNY

3.3.2. A FreeBSD llomnyjelzi


rta: Tom Rhodes. A korbban trgyalt engedlyek mellett mg a FreeBSD ismeri az n. llomnyjelzk (le ags) belltst is. Ezek a jelzbitek egy tovbbi biztonsgi s irnytsi szintet nyjtanak az llomnyok felett, viszont a knyvtrakra nem vonatkoznak. Ezek az llomnyjelzk az llomnyok felett tovbbi vezrlst adnak a keznkbe, aminek rvn gondoskodhatunk rla, hogy akr mg a root felhasznl (a rendszer adminisztrtora) se legyen kpes llomnyokat eltvoltani vagy mdostani. Az llomnyjelzk rtkei egy egyszer felleten keresztl, a chags(1) segdprogrammal vltoztathatak meg. Pldul a kvetkez paranccsal llthatjuk a rendszer trlhetetlen (undeletable) jelzst az allomany1 llomnyon:
# chflags sunlink allomany1

A trlhetetlen jelzs eltvoltshoz egyszeren csak rjuk be az elz parancsot gy, hogy a sunlink paramter elejre mg beszrunk egy no szvegrszt. gy:
# chflags nosunlink allomany1

Az llomnyokra ppen rvnyes jelzseket az ls(1) parancs -lo kapcsoljnak segtsgvel jelenthetjk meg:
# ls -lo file1

Ennek megfelelen az eredmnynek valahogy gy kellene kinznie:


-rw-r--r-1 trhodes trhodes sunlnk 0 Mar 1 05:54 allomany1

Sok jelzs csak a root felhasznln keresztl vehet fel vagy tvolthat el. Ms esetekben viszont az llomny tulajdonosa llthatja ezeket. A rendszergazdknak javasoljuk, hogy ezzel kapcsolatban a chags(1) s chags(2) man oldalakat tanulmnyozzk t.

3.3.3. A setuid, setgid s sticky engedlyek


Ksztette: Tom Rhodes. A korbban emltett engedlyeken kvl ltezik mg tovbbi hrom, amelyekkel minden rendszergazdnak illik tisztban lennie. Ezek nv szerint a setuid, setgid s sticky tpus engedlyek. Ezek a belltsok bizonyos UNIX mveletek esetn nagyon fontosak, mivel az tlagos felhasznlk szmra ltalban el nem rhet funkcik hasznlatt tmogatjk. A megrtskhz elsknt a felhasznlk valdi s effektv azonostja kzti klnbsgeket kell tisztznunk.

100

Fejezet 3. A UNIX alapjai A valdi azonost tulajdonkppen az a felhasznli azonost, amellyel a programot indtjuk el vagy futs eltt birtokoljuk. A program futsa kzben azonban az effektv felhasznli azonostval fut. Pldul a passwd(1) segdprogram a jelszavt megvltoztatni kvn felhasznl valdi azonostjval indul, mikzben a jelszavakat trol adatbzis elrskor mr a root felhasznl effektv azonostjval fut. Ezltal a privilgiumokkal nem rendelkez felhasznlk is meg tudjk anlkl vltoztatni a jelszavaikat, hogy a Permission Denied hibazenettel tallkoznnak.
Megjegyzs: A mount(8) nosuid belltsval azonban az ilyen tpus binrisok minden klnsebb jel nlkl csdt fognak mondani. Mellesleg a mount(8) man oldala szerint ez az opci nem is teljesen megbzhat, mivel nosuid wrapperek segtsgvel meg lehet kerlni.

Ahogy azt az albbi plda is szemllteti, a setuid engedlyt a tbbi el egy ngyes (4) beszrsval tudjuk belltani:
# chmod 4755 suidexample.sh

A suidexample.sh llomny engedlyei ezt kveten mr gy fognak megjelenni:


-rwsr-xr-x 1 trhodes trhodes 63 Aug 29 06:36 suidexample.sh

Most mr jl lthat, hogy az llomny tulajdonoshoz tartoz engedlyek kztt a vgrehajthatsgot szablyoz bit lecserldtt egy s bitre. Ennek ksznheten a passwd parancshoz hasonl mdon kibvtett engedlyekkel lesznk kpesek futtatni programokat. Kt terminl megnyitsval mindezt vals idben is megvizsglhatjuk. Az egyiken indtsuk el norml felhasznlknt a passwd programot. Mikzben a program vrakozik az j jelsz megadsra, a msik terminlon krdezzk le a programhoz tartoz felhasznli informcikat. Teht az egyik terminlon a kvetkezt ltjuk:
% passwd

Changing local password for trhodes Old Password:

Ekzben pedig a msikon:


# ps aux | grep passwd

trhodes root

5232 5211

0.0 0.0

0.2 0.2

3420 3620

1608 1724

0 2

R+ I+

2:10AM 2:09AM

0:00.00 grep passwd 0:00.01 passwd

A passwd parancsot egyszer felhasznlknt adtunk ki, azonban jl lthat, hogy valjban a root felhasznl azonostjval fut. A setgid a setuid engedlyhez hasonlan mkdik, egyedl annyiban tr el, hogy a csoportra vonatkoz belltsokat mdostja. Amikor egy alkalmazst vagy segdprogramot ilyen engedllyel futtatunk, akkor az adott programot birtokl csoport engedlyeit kapjuk meg. gy tudjuk llomnyokon belltani a setgid tpus engedlyt, ha az imnti pldhoz hasonlan a chmod parancs hvsakor mg egy kettest (2) runk az engedlyek el:
# chmod 2755 sgidexample.sh

101

Fejezet 3. A UNIX alapjai Az gy belltott engedlyek az elbbihz hasonl mdon szemllhetek meg, azonban ebben az esetben a csoporthoz tartoz engedlyeknl jelenik meg az s bit:
-rwxr-sr-x 1 trhodes trhodes 44 Aug 31 01:49 sgidexample.sh

Megjegyzs: Az elbb trgyalt pldkkal kapcsolatban fontos megemltennk, hogy habr a szkriptek is vgrehajthat llomnyok, nem fognak a valditl eltr effektv felhasznli azonostval futni. Ennek oka abban keresend, hogy a parancssori szkriptek nem hvhatjk a setuid(2) rendszerhvst.

Ez a kt specilis engedly (a setuid s a setgid) a programhoz tartoz engedlyek kiterjesztsvel cskkentheti rendszernk biztonsgt. Ezzel szemben viszont a harmadik bemutatand specilis engedly rendszernk vdelmnek erstsre szolgl: ez az n. sticky bit. Ha a sticky tpus engedlyt knyvtrra adjuk meg, akkor a benne lev llomnyok trlst kizrlag azok tulajdonosainak engedi. Ezzel az engedllyel lnyegben a /tmp knyvtrhoz hasonl nyilvnos, brki ltal elrhet knyvtrakban akadlyozhatjuk meg az llomnyok idegen felhasznlk ltali trlst. Az engedly belltshoz egy egyest (1) kell a tbbi el fznnk, mint pldul:
# chmod 1777 /tmp

Most mr az ls parancs segtsgvel lthatjuk ennek a hatst:


# ls -al / | grep tmp

drwxrwxrwt

10 root

wheel

512 Aug 31 01:49 tmp

A sticky bit a belltsok vgn felbukkan t rvn azonosthat be.

3.4. A knyvtrak elrendezse


A FreeBSD knyvtrszerkezetnek ismerete alapvet jelentsg a rendszer egsznek megrtse szempontjbl. Ezen bell is a legfontosabb a gykrknyvtr, a /. Ez az els knyvtr, amelyet a rendszer a rendszerindts sorn csatlakoztat s a tbbfelhasznls md elksztshez elegendhetlenl szksges alaprendszert tartalmazza. A gykrknyvtr emellett csatlakozsi pontokat szolgltat a tbbfelhasznls mkdsre vlts sorn csatlakoztatand tovbbi llomnyrendszerek szmra. A csatlakozsi pont egy olyan knyvtr, ahov a szl llomnyrendszeren (ami gyakran maga a gykr-llomnyrendszer) bell tovbbi llomnyrendszereket tudunk beoltani. Errl bvebben a 3.5 Szakaszban olvashatunk. A szabvnyos csatlakozsi pontok: /usr, /var, /tmp, /mnt s /cdrom. Ezekre a knyvtrakra ltalban az /etc/fstab llomnyban tallunk hivatkozsokat. Az /etc/fstab llomny a rendszer szmra a klnbz llomnyrendszerek s a hozzjuk tartoz csatlakozsi pontok tblzatt tartalmazza. Az /etc/fstab llomnyban szerepl legtbb llomnyrendszer a rendszerindts sorn automatikusan csatlakoztatsra kerl az rc(8) szkriptbl, hacsak nem tartalmazzk a noauto belltst. Ennek rszleteit a 3.6.1 Szakaszban tallhatjuk meg. Az llomnyrendszerek hierarchijnak teljes lerst a hier(7) man oldalon olvashatjuk. Mi egyelre most megelgsznk a leggyakrabban megjelen knyvtrak rvid ttekintsvel. Knyvtr Mi tallhat itt

102

Fejezet 3. A UNIX alapjai Knyvtr


/ /bin/ /boot/ /boot/defaults/ /dev/ /etc/ /etc/defaults/ /etc/mail/ /etc/namedb/ /etc/periodic/ /etc/ppp/ /mnt/ /proc/ /rescue/ /root/ /sbin/ /tmp/

Mi tallhat itt Az llomnyrendszer gykere. Az egy- s tbbfelhasznls krnyezetekben is egyarnt alapvet felhasznli segdprogramok. Az opercis rendszer indtsa sorn hasznlt programok s kongurcis llomnyok. A rendszerindts alaprtelmezett kongurcis llomnyai. Lsd loader.conf(5) Eszkzlerk, lsd intro(4). Rendszerkongurcis llomnyok s szkriptek. Az alaprtelmezett rendszerkongurcis llomnyok, lsd rc(8). A sendmail(8) programhoz hasonl levlkld rendszerek kongurcis llomnyai. A named program kongurcis llomnyai, lsd named(8). A cron(8) ltal naponta, hetente s havonta lefuttatand szkriptek, lsd periodic(8). A ppp program kongurcis llomnyai, lsd ppp(8). Egy res knyvtr, amelyet a rendszergazdk ltalban ideiglenes csatlakozsi pontknt hasznlnak. A fut programokat tartalmaz llomnyrendszer, lsd procfs(5), illetve mount_procfs(8). Statikusan linkelt programok vszhelyzet esetre, lsd rescue(8). A root felhasznl knyvtra. Az egy- s tbbfelhasznls krnyezetekben fontos rendszerprogramok s rendszerfelgyeleti eszkzk. tmeneti llomnyok. A /tmp knyvtr tartalma ltalban NEM marad meg az jraindts utn. Erre a clra gyakran memriban ltrehozott llomnyrendszert szoktak csatlakoztatni a /tmp knyvtrba. Ez utbbit az rc.conf(5) tmpmfs-re vonatkoz vltozinak belltsval lehet automatikuss tenni (vagy a /etc/fstab megfelel mdostsval, lsd mdmfs(8)). A felhasznli programok s alkalmazsok tbbsge. ltalnos segdprogramok, programozsi eszkzk s alkalmazsok. Szabvnyos C include-llomnyok. Fggvnyknyvtrak. Egyb hasznos adatllomnyok. (Ms programok ltal hasznlt) Rendszerdmonok s rendszereszkzk.

/usr/ /usr/bin/ /usr/include/ /usr/lib/ /usr/libdata/ /usr/libexec/

103

Fejezet 3. A UNIX alapjai Knyvtr


/usr/local/

Mi tallhat itt A helyi rendszeren teleptett programok, fggvnyknyvtrak stb. A FreeBSD portrendszere is ezt hasznlja alaprtelmezs szerint. A /usr/local knyvtron bell a hier(7) man oldalon tallhat /usr knyvtr ltalnos felptse hasznlatos. Ez all kivtelt kpez a man alknyvtr, amely kzvetlenl a /usr/local alatt tallhat, nem pedig a /usr/local/share knyvtron bell, valamint a portok dokumentcija a share/doc/port knyvtrban tallhat. A /usr/src knyvtrfban tallhat forrsok fordtsa sorn keletkez architektrafgg objektumok. A FreeBSD Portgyjtemny (vlaszthat). (A felhasznlk ltal hasznlt) Rendszerdmonok s rendszereszkzk. Architektrafgg llomnyok. BSD s/vagy helyi forrsok. Az X11R6 rendszer programjai, fggvnyknyvtrai stb. (vlaszthat) Klnfle napl, tmeneti, ideiglenes s pufferben trolt llomnyok. A memriban ltrehozott llomnyrendszereket is olykor a /var knyvtrban talljuk. Ezt az rc.conf(5) llomnyban tallhat varmfs-vltozk belltsval tehetjk automatikuss (vagy a /etc/fstab megfelel mdostsval, lsd mdmfs(8)). Mindenfle rendszernaplk. A felhasznlk postakjait trol llomnyok. A nyomtatk s a levelezs pufferelshez hasznlt knyvtrak. tmeneti llomnyok. Az itt tallhat llomnyok ltalban megmaradnak a kvetkez rendszerindts alkalmval is, hacsak a /var nem egy memriban ltez llomnyrendszer. A NIS llomnyai.

/usr/obj/ /usr/ports/ /usr/sbin/ /usr/share/ /usr/src/ /usr/X11R6/ /var/

/var/log/ /var/mail/ /var/spool/ /var/tmp/

/var/yp

3.5. A lemezek szervezse


Az llomnynv a legkisebb szervezsi egysg, amin keresztl a FreeBSD kpes megtallni az llomnyokat. Az llomnyok neveiben a kis- s nagybett megklnbztetjk, teht a readme.txt s a README.TXT elnevezs kt klnbz llomnyra utal. A FreeBSD nem az llomnyok kiterjesztse (ami a konkrt pldnkban a .txt volt)

104

Fejezet 3. A UNIX alapjai alapjn dnti el, hogy az adott llomny vajon program, dokumentum vagy valamilyen ms fajtj adat. Az llomnyok knyvtrakban troldnak. Egy knyvtr lehet akr res (nincs benne egyetlen llomny sem), vagy tbbszz llomnyt is tartalmazhat. Egy knyvtr radsul tovbbi knyvtrakat is trolhat, s gy az egymsban elhelyezked knyvtrak segtsgvel knyvtrak egy hierarchijt tudjuk felpteni. Ezzel sokkalta knnyebben szervezhetv vlnak az adataink. Az llomnyokat s knyvtrakat gy tudjuk elrni, ha megadjuk az llomny vagy a knyvtrt trol knyvtr nevt, amit egy perjel, a / kvet, valamint gy sszefzve az elrshez szksges tovbbi knyvtrak felsorolsa. Teht, ha van egy ize nev knyvtrunk, amelyben tallhat egy mize knyvtr, amelyen bell pedig egy readme.txt, akkor ennek az llomnynak a teljes neve, vagy mskppen szlva az elrsi tja ize/mize/readme.txt lesz. A knyvtrak s az llomnyok egy llomnyrendszerben troldnak. Minden llomnyrendszer pontosan egy knyvtrat tartalmaz a legfels szintjn, amelyet az adott llomnyrendszer gykrknyvtrnak neveznk. Ez a gykrknyvtr tartalmazhat aztn tovbbi knyvtrakat. Eddig mg valsznleg minden nagyon hasonl a ms opercis rendszerekben tapasztalhat fogalmakhoz. Azonban adnak klnbsgek: pldul az MS-DOS a \ jellel vlasztja el az llomnyok s knyvtrak neveit, mikzben a Mac OS erre a : jelet hasznlja. A FreeBSD az elrsi utakban sem betkkel, sem pedig semmilyen ms nvvel nem jelli meg a meghajtkat. Teht a FreeBSD-ben nem rhatjuk, hogy a c:/ize/mize/readme.txt. Helyette az egyik llomnyrendszert kijellik gykr-llomnyrendszernek. A gykr-llomnyrendszer gykrknyvtrra hivatkoznak ksbb / knyvtrknt. Ezutn minden ms llomnyrendszert a gykr-llomnyrendszerhez csatlakoztatunk. Ennek rtelmben nem szmt, hogy mennyi lemeznk is van a FreeBSD rendszernkben, hiszen minden knyvtr egyazon lemez rszeknt jelenik meg. Tegyk fel, hogy van hrom llomnyrendszernk, hvjuk ezeket A-nak, B-nek s C-nek. Minden llomnyrendszer rendelkezik egy gykrknyvtrral, amely kt tovbbi knyvtrat tartalmaz: A1-et s A2-t (s ennek megfelelen a tbbi B1-et s B2-t, valamint C1 s C2-t). Nevezzk A-t a gykr-llomnyrendszernek. Ha a knyvtr tartalmnak megjelentshez most kiadnnk az ls parancsot, kt alknyvtrat ltnnk, az A1-et s A2-t. A ltrejtt knyvtrfa valahogy gy nzne ki:

Gykr /

A1/

A2/

Egy llomnyrendszert csak egy msik llomnyrendszer valamelyik knyvtrba tudunk csatlakoztatni. Ezrt most ttelezzk fel, hogy a B llomnyrendszert az A1 knyvtrba csatlakoztatjuk. Ezutn a B gykrknyvtra tveszi a A1 helyt az llomnyrendszerben, s ennek megfelelen megjelennek a B knyvtrai is:

105

Fejezet 3. A UNIX alapjai

Gykr /

A1/

A2/

B1/

B2/

A B1 vagy B2 knyvtrakban tallhat llomnyok brmelyike innentl kezdve a /A1/B1, illetve a /A1/B2 elrsi utakon rhetek el. Az A1 knyvtrban tallhat llomnyok erre az idre rejtve maradnak. Akkor fognak jra felbukkanni, ha a B llomnyrendszert levlasztjuk az A llomnyrendszerrl. Ha a B llomnyrendszert az A2 knyvtrba csatlakoztatnnk, az imnti bra nagyjbl gy nzne ki:

Gykr /

A1/

A2/

B1/

B2/

s ennek megfelelen az elbb trgyalt elrsi utak /A2/B1 s /A2/B2 lennnek. Az llomnyrendszerek egymshoz is csatlakoztathatak. A pldt ennek megfelelen gy is folytathatjuk, hogy a C llomnyrendszert csatlakoztatjuk B llomnyrendszerben tallhat B1 knyvtrhoz. Ennek eredmnye a kvetkez elrendezs lesz:

106

Fejezet 3. A UNIX alapjai

Gykr /

A1/

A2/

B1/

B2/

C1/

C2/

Vagy a C llomnyrendszer az A1 knyvtron keresztl csatlakoztathat akr kzvetlenl az A llomnyrendszerhez is:

Gykr /

A1/

A2/

C1/

C2/

B1/

B2/

Az MS-DOS opercis rendszert ismerk szmra ez hasonl lehet a join parancshoz (habr teljesen nem egyezik meg vele). ltalban azonban ezzel nem kell trdnnk, hiszen tbbnyire csak a FreeBSD teleptse sorn hozunk ltre llomnyrendszereket s vlasztjuk meg a csatlakozsi pontjukat. A ksbbiekben ez legfeljebb akkor kerl el ismt, amikor jabb lemezeket adunk hozz a rendszerhez.

107

Fejezet 3. A UNIX alapjai Teljessggel megengedhet, hogy elhagyjuk a tbbit s csak egyetlen risi gykr-llomnyrendszert hasznljunk. Ennek viszont megvannak a maga htrnyai s az egyetlen elnye. Tbb llomnyrendszer hasznlatnak elnyei

A klnbz llomnyrendszereknek klnbz csatlakoztatsi belltsai (mount options) lehetnek. Pldul, ha kellen elvigyzatosak akarunk lenni, a gykr-llomnyrendszer rsvdett mdon is csatlakoztathat, aminek ksznheten lehetetlenn vlik a rendszer szmra fontos llomnyok vletlen trlse vagy fellrsa. Ha elklntjk a felhasznlk szmra rhat llomnyrendszereket (pldul a /home knyvtrakat) a tbbi llomnyrendszertl, lehetv vlik szmunkra, hogy nosuid belltssal csatlakoztassuk ezeket. Ez a bellts megakadlyozza, hogy ezekben a suid/guid bitekkel rendelkez vgrehajthat llomnyok hasznlhatak legyenek, ezltal nveli a rendszer biztonsgossgt. A FreeBSD az llomnyrendszer hasznlattl fggen magtl hatroz a benne tallhat llomnyok optimlis kiosztst illeten. gy teht a gyakorta mdostott, kisebb llomnyokat tartalmaz llomnyrendszerek esetn teljesen ms technikkat alkalmaz, mint pldul a nagyobb, kevsb vltoz llomnyok esetn. Azonban egyetlen llomnyrendszer hasznlatval ez a gyorstsi mdszer odavsz. Noha a FreeBSD llomnyrendszerei nagyon jl trik a hirtelen ramkimaradsokat, egy dnt ponton bekvetkez vratlan lells mgis krt okozhat a szerkezetkben. Ha azonban tbb llomnyrendszerre osztjuk a troland adatainkat, sokkal valsznbb vlik, hogy egy ilyen eset utn a rendszernk talpra tud llni, s szksg esetn neknk is knnyebb lesz a biztonsgi mentseinkbl helyrelltani a srlt llomnyokat.

Egyetlen llomnyrendszer hasznlatnak elnyei

Az llomnyrendszerek mrete rgztett. Miutn a FreeBSD teleptse sorn ltrehoztunk egy adott mret llomnyrendszert, elfordulhat, hogy ksbb szksgnk lesz a mretnek nvelsre. Ilyenkor nehezen kerlhetjk el az ilyenkor szoksos teendket: biztonsgi ments ksztse, az j mretnek megfelel llomnyrendszer ltrehozsa, majd ezutn a lementett adataink visszalltsa.
Fontos: A FreeBSD-ben azonban megtallhat a growfs(8) parancs, amelynek segtsgvel az llomnyrendszerek mrete hasznlat kzben nvelhet, s ezzel megsznik a mretre vonatkoz korltozs.

Az llomnyrendszerek partcikban troldnak. A FreeBSD UNIX-os eredete miatt azonban ez a kifejezs nem a htkznapi partci jelentst takarja (mint pldul egy MS-DOS partci). Minden partcit egy bet azonost a-tl h-ig. Mindegyik partci csak egyetlen llomnyrendszert tartalmazhat, aminek rvn az llomnyrendszereket vagy az llomnyrendszerek hierarchijban tallhat csatlakozsi pontjukkal vagy pedig az ezeket tartalmaz partci betjvel azonosthatjuk. A FreeBSD ezeken fell kln lemezterlen trolja a lapozllomnyt (swap space). A lapozllomnyt hasznlja a FreeBSD virtulis memria (virtual memory) megvalstshoz. Ennek ksznheten a szmtgp kpes gy viselkedni, mintha jval tbb memrival rendelkezne, mint valjban. gy, amikor a FreeBSD kifogy a memribl, egyszeren kirakja a memribl a lapozllomnyba az ppen nem hasznlt adatokat, majd amikor ismt szksge lesz rjuk, visszatlti ezeket (s ilyenkor megint kirak valami mst). Nmely partcihoz ktdnek bizonyos megszoksok. Partci
a

Megszoks ltalban ez tartalmazza a gykr-llomnyrendszert.

108

Fejezet 3. A UNIX alapjai Partci


b c

Megszoks ltalban ez tartalmazza a lapozllomnyt. Mrete ltalban a tartalmaz slice mretvel egyezik meg. Ennek ksznheten a segdprogramok (pldul egy hibs szektorokat keres program) a c partcin keresztl kpesek akr az egsz slice-szal dolgozni. Normlis esetben ezen a partcin nem hozunk ltre llomnyrendszert. A d partcihoz egykoron kapcsoldott klnleges jelents, azonban mostanra ez mr megsznt, s a d egy teljesen tlagos partcinak tekinthet.

Minden llomnyrendszert tartalmaz partcit a FreeBSD egy n. slice-ban trol. A FreeBSD szmra a slice elnevezs utal mindarra, amit ltalban partcinak neveznek, s ismt megemltjk, mindez a UNIX-os eredet miatt. A slice-okat 1-tl 4-ig sorszmozzk. A slice-ok sorszma 1-tl indulva az eszkzk neve utn egy s betvel elvlasztva kvetkezik. gy teht a da0s1 jelentse az els slice lesz az els SCSI-meghajtn. Lemezenknt ngy zikai slice hozhat ltre, de ezeken bell tetszleges tpus logikai slice-ok helyezhetek el. Ezen tovbbi slice-ok sorszmozsa 5-tl kezddik, gy ennek megfelelen a ad0s5 lesz az els IDE-lemezen tallhat els kiterjesztett slice. Ezeket az eszkzket foglaljk el a klnbz llomnyrendszerek. A slice-ok, a veszlyesen dediklt (Dangerously Dedicated) zikai meghajtk, s minden ms olyan meghajt, amely partcikat tartalmaz, a-tl h-ig jelldnek. Ez a bet az eszkz neve utn kvetkezik, gy ennek megfelelen a da0a lesz az els da meghajt a, vagyis a veszlyesen dediklt partcija. Az ad1s3e lesz a msodik IDE-lemezmeghajtn a harmadik slice-ban szerepl tdik partci. Vgezetl, a rendszerben minden lemezt azonostunk. A lemez neve a tpusra utal kddal kezddik, amely utn aztn egy sorszm jelzi, hogy melyik lemezrl is van sz. Azonban eltren a slice-oktl, a lemezek sorszmozsa 0-tl indul. Az ltalnosan elterjedt kdolsok a 3-1 Tblzatban tallhatak. Amikor hivatkozunk egy partcira, a FreeBSD elvrja tlnk, hogy nevezzk meg az adott partcit tartalmaz slice-ot s lemezt is. Emiatt egy partcira mindig gy hivatkozunk, hogy elszr megadjuk a tartalmaz lemez nevt, ettl s-sel elvlasztva a tartalmaz slice sorszmt, majd ezt a partci betjelvel zrjuk. Erre pldkat a 3-1 Pldaban lthatunk. Az rhetsg kedvrt a 3-2 Plda bemutatja egy lemez kiosztsnak fogalmi sablonjt. A FreeBSD teleptshez elszr be kell lltani a lemezen tallhat slice-okat, majd ltrehozni benne a FreeBSD-hez hasznlni kvnt partcikat, kialaktani rajtuk az llomnyrendszereket (vagy a lapozllomnyt) s eldnteni, melyik llomnyrendszert kvnjuk csatlakoztatni. Tblzat 3-1. Lemezes eszkzk kdjai Kd
ad da acd cd fd

Jelents ATAPI (IDE) lemez kzvetlen hozzfrs SCSI lemez ATAPI (IDE) CDROM SCSI CDROM Floppylemez

109

Fejezet 3. A UNIX alapjai Plda 3-1. Pldk lemezek, slice-ok s partcik neveire Nv
ad0s1a da1s2e

Jelents Az els IDE lemezen (ad0) lev els slice (s1) els partcija (a). A msodik SCSI-lemzen (da1) lev msodik slice (s2) tdik partcija (e).

Plda 3-2. Egy lemez kialaktsnak sablonja Az brn a rendszerhez csatlakoztatott els IDE-lemez lthat a FreeBSD szemszgbl. Tegyk fel, hogy ez a lemez 4 GB mret s kt, egyenknt 2 GB mret slice-ot (avagy MS-DOS partcit) tartalmaz. Az els slice egy MS-DOS formtum lemezt foglal magban, a C: meghajtt, illetve a msodik slice egy teleptett FreeBSD-t tartalmaz. Ebben a pldban a FreeBSD hrom adatot s egy lapozllomnyt trol partcival rendelkezik. A hrom partci mindegyikn tallhatunk egy-egy llomnyrendszert. Az a partci lesz a gykr-llomnyrendszer, az e lesz a rendszernkben a /var s az f pedig a /usr knyvtr.

110

Fejezet 3. A UNIX alapjai

Az els slice, neve: ad0s1 (C: DOS alatt)

DOS vagy Windows

Az a partci, csatlakoztatva: /, neve: ad0s2a A b partci, lapozterlet, neve: ad0s2b Az e partci, csatlakoztatva: /var, neve: ad0s2e Az f partci, csatlakoztatva: /usr, neve: ad0s2f
(nem sklzdik)

A msodik slice, neve: ad0s2

A c partci, nincs csatlakoz neve: ad0s2c

3.6. llomnyrendszerek csatlakoztatsa s levlasztsa


Az llomnyrendszereket legknnyebben egy-egy faknt tudjuk magunk eltt elkpzelni, amelyek a / knyvtrbl nnek ki. A /dev, /usr s mellettk szerepl, hozzjuk hasonl sszes tbbi knyvtr csupn egy-egy g, amelyeknek sajt gaik is lehetnek, mint pldul a /usr/local s gy tovbb. Klnfle okai vannak annak, hogy egyes knyvtrakat klnll llomnyrendszereken trolunk. A /var knyvtr

111

Fejezet 3. A UNIX alapjai tartalmazza a log/, spool/ knyvtrakat s klnfle tmeneti llomnyokat, azonban az ilyen llomnyok knnyen megszaporodhatnak s megtlthetik az llomnyrendszert. Mivel a gykr-llomnyrendszert nem tancsos elrasztani mindenfle llomnnyal, ezrt gyakran a hasznunkra vlhat, ha a /var knyvtrat levlasztjuk a / knyvtrbl. A msik gyakori ok, ami az imnt emltett fa egyes gainak klnbz llomnyrendszereken trtn trolst indokolja, hogy ezek gyakran ms zikai vagy virtulis lemezeken, pldul a rendszerhez csatlakoztatott Hlzati llomnyrendszereken vagy ppen CD-meghajtkon tallhatak.

3.6.1. Az fstab llomny


A rendszerindts folyamata sorn az /etc/fstab llomnyban felsorolt llomnyrendszerek maguktl kerlnek csatlakoztatsra (kivve amikor a noauto belltssal szerepelnek). Az /etc/fstab llomnyban tallhat sorok az albbi szerkezetek:
eszkz /csatlakozsi-pont tpus belltsok mentsigyak ellszm

eszkz

A 18.2 Szakaszban lertak szerint megnevezett (ltez) eszkz.


csatlakozsi-pont

Egy (ltez) knyvtr, ahova az llomnyrendszer csatlakozik.


tpus

Az llomnyrendszer mount(8) parancs szerint ismert tpusa. A FreeBSD alaprtelmezett llomnyrendszere az ufs.
belltsok

Az rhat-olvashat llomnyrendszerek esetn rw, az rsvdettek esetn pedig ro, amelyet igny szerint tovbbi belltsok kvethetnek. A rendszerindts sorn automatikusan nem csatlakoztatand llomnyrendszerek esetn gyakran alkalmazott bellts itt mg a noauto. Egyb lehetsgeket a mount(8) man oldalon lthatunk.
mentsigyak

Ezt ltalban a dump(8) parancs hasznlja a menteni szksges llomnyrendszerek megllaptshoz. Amennyiben hinyzik ez a mez, az automatikusan a nulla rtket jelli.
ellszm

Megadja, hogy mely llomnyrendszereket kell ellenrizni. A nulls pass rtkkel rendelkez llomnyrendszerek nem kerlnek ellenrzsre. A gykr-llomnyrendszer (melyet minden ms eltt kell ellenrizni) passno rtke egy, mg az sszes tbbi llomnyrendszer passno rtke ltalban egytl klnbz. Ha egynl tbb llomnyrendszer is ugyanazt a passno rtket kapta, akkor az fsck(8) a lehetsgei szerint megprblja ezeket egyszerre ellenrizni. Az /etc/fstab felptsrl s a benne hasznlhat belltsokrl bvebben a fstab(5) man oldalon olvashatunk.

112

Fejezet 3. A UNIX alapjai

3.6.2. A mount parancs


Az llomnyrendszerek tnyleges csatlakoztatsra avagy mountolsra a mount(8) parancs hasznlhat. Legegyszerbb formja:
# mount eszkz csatlakozsi-pont

Ahogy a mount(8) man oldaln is olvashatjuk, itt rengeteg opci is megadhat, de ezek kzl a leggyakoribbak:

Csatlakoztatsi opcik
-a

Csatlakoztatja az /etc/fstab llomnyban felsorolt sszes llomnyrendszert, kivve azokat, amelyek a noauto belltst tartalmazzk, vagy kizrtuk a -t kapcsolval, esetleg korbban mr csatlakoztattuk.
-d

A tnyleges csatlakoztats elvgzse nlkl vgrehajt minden mst. Ez az opci leginkbb -v opcival egytt hasznlhat annak megllaptsra, hogy a mount(8) valjban mit is akar csinlni.
-f

Egy nem tiszta llomnyrendszer csatlakoztatsnak knyszertse (veszlyes!) vagy egy korbban mr csatlakoztatott llomnyrendszer rhat llapotnak felfggesztse.
-r

Az llomnyrendszer rsvdett csatlakoztatsa. Megegyezik a -o opcinl megadhat ro (vagy a FreeBSD 5.2-nl rgebbi verzija esetn a rdonly) bellts hasznlatval.
-t tpus

Az adott llomnyrendszert az adott tpusnak megfelelen csatlakoztatja, vagy az -a hasznlata esetn csak az adott tpus llomnyrendszereket. Az ufs az llomnyrendszerek alaprtelmezett tpusa.
-u

Frissti az llomnyrendszerre vonatkoz csatlakoztatsi belltsokat.


-v

Rszletesebb kijelzs.
-w

Az llomnyrendszer csatlakoztatsa rsra s olvassra. Az -o opci utn vesszvel elvlasztott belltsokat adhatunk meg, tbbek kzt az albbiakat: noexec Az llomnyrendszeren tallhat llomnyok vgrehajtsnak tiltsa. Ez egy nagyon hasznos biztonsgi bellts.

113

Fejezet 3. A UNIX alapjai nosuid Az llomnyrendszeren nem hasznlhatak a felhasznl- (setuid) vagy csoportvltsra (setgid) vonatkoz engedlyek. Nagyon hasznos biztonsgi bellts.

3.6.3. Az umount parancs


Az umount(8) parancs paramterknt egy csatlakozsi pontot, egy eszkznevet vagy a -a, illetve az -A opcikat vrja. A levlaszts knyszertshez mindegyik alakban szerepelhet az -f opci, valamint a rszletesebb kijelzst a -v opcival kapcsolhatjuk be. Azonban szeretnnk mindenkit gyelmeztetni, hogy a -f hasznlata alapveten nem ajnlott. Az erszakkal levlasztott llomnyrendszerek sszeomlaszthatjk a szmtgpet vagy krt okozhatnak az llomnyrendszereken tallhat adatokban. Az -a s -A opcik hasznlatosak az sszes csatlakoztatott llomnyrendszer levlasztsra, amelyek tpusait a -t opci megadsa utn sorolhatjuk fel. Fontos klnbsg azonban, hogy az -A opci a gykr llomnyrendszert nem prblja meg levlasztani.

3.7. Folyamatok
A FreeBSD egy tbbfeladatos opercis rendszer. Ez azt jelenti, hogy kpes ltszlag egyszerre tbb programot is futtatni. Az gy egyszerre fut programokat egyenknt folyamatoknak (process) nevezzk. Minden kiadott parancsunk elindt legalbb egy ilyen folyamatot, s a rendszernk mozgsban tartshoz bizonyos rendszerszint folyamatok llandan futnak a httrben. Minden folyamatot egy folyamatazonostnak (process ID vagy PID) nevezett szm azonost egyrtelmen, s az llomnyokhoz hasonlan, minden folyamatnak van tulajdonosa s csoportja is. A tulajdonos s a csoport ismeretben llaptja meg a rendszer, hogy az adott folyamat a korbban emltett engedlyek szerint milyen llomnyokhoz s eszkzkhz frhet hozz. Ezenkvl a legtbb folyamatnak van mg egy szlfolyamata is. A szlfolyamat az a folyamat, amely az adott folyamatot elindtotta. Pldul amikor parancsokat adunk egy parancsrtelmezn keresztl, akkor maga a parancsrtelmez is egy ilyen folyamat lesz ugyangy, ahogy a benne kiadott parancsok ltal elindtott programok. Ennek megfelelen az gy ltrehozott sszes folyamat szlje maga a parancsrtelmez folyamata lesz. Az emltettek all egyik kivtel az init(8) nev specilis folyamat. Az init lesz a rendszerben mindig az els folyamat, ezrt a PID-je is mindig 1. Az init programot a FreeBSD indulsakor a rendszermag fogja automatikusan elindtani. A rendszerben fut programok vizsglathoz kt, klnsen hasznos parancsot tallhatunk: ezek a ps(1) s a top(1). A ps parancs hasznlatos a pillanatnyilag fut programok statikus listjnak megjelentsre. Ebben olvashatjuk a fut programok azonostit, mennyi memrit hasznlnak ppen, milyen paranccsal indtottk ezeket stb. A top parancs mutatja az sszes aktvan fut programot, majd nhny msodpercenknt automatikusan frissti ezt a listt, aminek rvn folyamatosan lthatjuk, miknt viselkednek a fut programok. A ps alaprtelmezs szerint csupn az ltalunk futtatott programokat mutatja. Pldul:
% ps

PID 298 7078

TT p0 p0

STAT Ss S

TIME COMMAND 0:01.10 tcsh 2:40.88 xemacs mdoc.xsl (xemacs-21.1.14)

114

Fejezet 3. A UNIX alapjai


37393 48630 48730 72210 390 7059 6688 10735 20256 262 270 280 284 285 p0 p0 p0 p0 p1 p2 p3 p4 p5 v0 v0 v0 v0 v0 I S IW R+ Is Is+ IWs IWs IWs IWs IW+ IW+ IW S 0:03.11 2:50.89 0:00.00 0:00.00 0:01.14 1:36.18 0:00.00 0:00.00 0:00.00 0:00.00 0:00.00 0:00.00 0:00.00 0:38.45 xemacs freebsd.dsl (xemacs-21.1.14) /usr/local/lib/netscape-linux/navigator-linux-4.77.bi (dns helper) (navigator-linux-) ps tcsh /usr/local/bin/mutt -y tcsh tcsh tcsh -tcsh (tcsh) /bin/sh /usr/X11R6/bin/startx -- -bpp 16 xinit /home/nik/.xinitrc -- -bpp 16 /bin/sh /home/nik/.xinitrc /usr/X11R6/bin/sawfish

Ahogy az a fenti pldban is ltszik, a ps(1) kimenete oszlopokra tagolhat. Ezek kzl a PID tartalmazza a korbban mr ismertetett folyamatazonostkat. Az azonostk 1-tl indulva egszen 99999-ig sorszmozdhatnak, illetve ha kifutnnk bellk, akkor a szmozs kezddik ellrl (azonban a hasznlatban lev azonostk sosem kerlnek jra kiosztsra). A TT oszlopban lthatjuk azt a terminlt, amelyen az adott program ppen fut, de ezt pillanatnyilag akr nyugodtan gyelmen kvl is hagyhatjuk. A STAT oszlopban a program llapott kapjuk meg, de szintn tugorhat. A TIME a program processzoron eltlttt idejt mutatja ez ltalban nem arra utal, hogy mennyi ideje fut maga a program, hiszen a legtbb program sok idt tlt ttlenl, mieltt egyltaln szksge lenne processzora. Vgezetl a COMMAND oszlopban olvashatjuk azt a parancsot, amellyel a programot elindtottk. A ps(1) szmos klnfle belltst ismer az ltala megjelentett informcik megvlasztshoz. Az egyik ilyen leghasznosabb bellts az auxww: az a segtsgvel az sszes fut programot lthatjuk, nem csak a sajtjainkat; az u megadsval lthatv vlik a folyamat tulajdonosnak a felhasznli neve, valamint a memriahasznlata is; az x megmutatja a dmon (avagy httr)folyamatok adatait is s a ww hatsra pedig a ps(1) az sszes folyamathoz a teljes parancssort kirja, mg akkor is, ha nem frne ki a kpernyre. A top(1) kimenete is hasonl. Ha elindtjuk, ltalban ezt lthatjuk:
% top

last pid: 72257; load averages: 0.13, 0.09, 0.03 up 0+13:38:33 22:39:10 47 processes: 1 running, 46 sleeping CPU states: 12.6% user, 0.0% nice, 7.8% system, 0.0% interrupt, 79.7% idle Mem: 36M Active, 5256K Inact, 13M Wired, 6312K Cache, 15M Buf, 408K Free Swap: 256M Total, 38M Used, 217M Free, 15% Inuse PID 72257 7078 281 296 48630 175 7059 ... USERNAME PRI NICE SIZE RES STATE nik 28 0 1960K 1044K RUN nik 2 0 15280K 10960K select nik 2 0 18636K 7112K select nik 2 0 3240K 1644K select nik 2 0 29816K 9148K select root 2 0 924K 252K select nik 2 0 7260K 4644K poll TIME WCPU 0:00 14.86% 2:54 0.88% 5:36 0.73% 0:12 0.05% 3:18 0.00% 1:41 0.00% 1:38 0.00% CPU 1.42% 0.88% 0.73% 0.05% 0.00% 0.00% 0.00% COMMAND top xemacs-21.1.14 XF86_SVGA xterm navigator-linu syslogd mutt

A kimenet kt rszre oszthat. A fejlcben (vagyis az els t sorban) lthat az utoljra futtatott program azonostja (PID), a rendszer tlagos terhelse (load average, amellyel mrjk, hogy a rendszernk mennyire lefoglalt), a rendszer indtsa ta eltelt id (up mint uptime) s a jelenlegi id. A fejlcben mg megtallhatjuk azt is, mennyi

115

Fejezet 3. A UNIX alapjai program fut (esetnkben ez most 47), mennyi memrit s lapozllomnyt hasznlnak, s mennyi idt tlt a rendszer a processzor klnbz llapotaiban. A fejlc alatt a ps(1) kimenethez hasonl mdon oszlopokba rendezve tallhatjuk meg a folyamatok adatait: az azonostikat, a tulajdonosaik nevt, a felhasznlt processzoridt, a futtatott parancsot. A top(1) alaprtelmezs szerint mutatja a fut programok ltal hasznlt memria mennyisgt is: ez tovbbi kt oszlopra oszlik, ahol az egyikben a teljes memriafoglalst (SIZE), a msikban pedig a jelen pillanatban aktvan hasznlt memrit (RES) lthatjuk. A pldban lthat is, hogy a Netscape (navigator-linu) alkalmazsnak majdnem 30 MB-nyi memrira van szksge, de ebbl aktvan csak 9 MB-ot hasznl. A top(1) a kijelzst minden msodik msodpercben magtl frissti, de ez az s kapcsolval llthat.

3.8. Dmonok, jelzsek s a fut programok lelltsa


Amikor elindtunk egy szvegszerkesztt, nem sok gondunk akad az irnytsval, knnyen utasthatjuk az llomnyok betltsre s gy tovbb. Mindezt azrt tehetjk meg, mert a szvegszerkeszt erre lehetsget biztost s mivel a szvegszerkeszt egy terminlhoz kapcsoldik. Egyes programok azonban nem gy lettek kialaktva, hogy llandan a felhasznl utastsaira tmaszkodjanak, ezrt az els adand alkalommal lekapcsoldnak a terminlrl. Pldul egy webszerver egsz nap csak webes krseket vlaszol meg, s ltalban semmi szksge nincs a felhasznlk utastsaira. A szerverek kztt leveleket kzvett programok is ugyanezen osztlyba tartoznak. Ezeket a programokat dmononoknak hvjuk. A dmonok a grg mitolgiban jelentek meg: sem a jt, sem pedig a gonoszt nem kpviseltk, egyszer apr szellemecskk voltak, akik az emberisg javt szolgltk, pontosan gy, ahogy ma teszik azt a klnfle web- s levelez szerverek. Ezrt is brzoltk sokig a BSD kabalagurjt is egy tornacips, vasvills vidm dmonknt. A dmonknt fut programok nevhez a hagyomnyok szerint hozz szoktk fzni a d bett. A BIND a Berkeley Internet Name Domain (nvfelold) szolgltatsa, azonban a hozztartoz program neve named, az Apache webszerver programjt httpd-nek nevezik, a sornyomtat kezelsrt felels dmon pedig az lpd s gy tovbb. Ez csupn egy hagyomny, megszoks, nem pedig egy kbe vsett szably: pldul a Sendmail levelez dmonnak neve sendmail s nem pedig maild. Nha azrt szksgnk lehet arra, hogy felvegyk valahogy a kapcsolatot a dmonknt fut programokkal is. Ennek egyik lehetsges mdja a jelzsek (signal) kldse (de alapveten brmilyen fut programnak kldhetnk). Tbb klnfle jelzs kldhet egyeseknek kzlk megklnbztetett jelentse van, msokat magukat az alkalmazsok rtelmeznek, amelyrl a dokumentcijukban tjkozdhatunk. A kill(1) vagy kill(2) paranccsal ms tulajdonban lev fut programoknak nem tudunk jelzseket kldeni, ami all egyedli kivtel a root felhasznl. Bizonyos esetekben a FreeBSD maga is kld nha jelzseket. Amikor egy alkalmazst rosszul programoznak le s megprbl egy szmra tiltott memriaterlethez hozzfrni, a FreeBSD kld neki egy Segmentation Violation (SIGSEGV, szegmentlsi hiba) jelzst. Ha egy alkalmazs az alarm(3) rendszerhvson keresztl kr egy adott id utni bekvetkez rtestst, akkor kap errl egy Alarm (SIGALRM) jelzst s gy tovbb. A folyamatok lelltsra kt jelzs hasznlhat: a SIGTERM (befejeztets) s a SIGKILL (lellts). A SIGTERM a folyamatok lelltsnak illedelmes mdja, mivel ekkor a fut program kpes elkapni ezt a jelzst s szrevenni, hogy le akarjuk lltani. Ilyenkor a lellts eltt lehetsge van szablyosan lezrni a naplit s ltalnossgban vve befejezni mindent, amit ppen csinl. Elfordulhat azonban, hogy a folyamatok gyelmen kvl hagyjk a SIGTERM jelzst, ha pldul ppen egy flbeszakthatatlan feladat kzepn tartanak. A SIGKILL jelzst azonban egyetlen fut program sem hagyhatja gyelmen kvl. Ez lenne a Nem rdekel, mivel foglalkozol, azonnal hagyd abba! jelzs. Amikor SIGKILL jelzst kldnk egy folyamatnak, a FreeBSD lelltja a

116

Fejezet 3. A UNIX alapjai folyamatot ott s ahol tart 4. Tovbbi hasznlhat jelzsek: SIGHUP, SIGUSR1 s SIGUSR2. Ezek ltalnos cl jelzsek, amelyeket az alkalmazsok eltr mdokon kezelnek. Tegyk fel, hogy megvltoztattuk a webszervernk belltsait tartalmaz llomnyt valamilyen mdon szeretnnk tudatni a szerverrel, hogy olvassa be jra a belltsait. Ezt megtehetjk gy, hogy lelltjuk s jraindtjuk a httpd dmont, de ezzel kiesst okozhatunk a szerver mkdsben, amit viszont nem engedhetnk meg. A legtbb dmont gy ksztettk el, hogy a SIGHUP jelzs hatsra olvassa be jra a belltsait tartalmaz llomnyt. gy a httpd lelltsa s jraindtsa helyett egyszeren elegend egy SIGHUP jelzs kldse. Mivel azonban ez nem szabvnyostott, a klnbz dmonok ezt a jelzst tbbflekppen is rtelmezhetik. Ezrt a hasznlata eltt ennek mindenkppen jrjunk utna a krdses dmon dokumentcijban. A jelzseket a kill(1) paranccsal tudjuk elkldeni, ahogy ezt a kvetkez pldban is lthatjuk. Jelzs kldse egy fut programnak Ebben a pldban megmutatjuk, hogyan lehet jelzst kldeni az inetd(8) dmonnak. Az inetd a belltsait az /etc/inetd.conf llomnyban trolja, s az inetd a SIGHUP jelzs hatsra kpes jraolvasni ezt. 1. Keressk meg annak a folyamatnak az azonostjt, amelynek a jelzst kvnjuk kldeni. Ezt a ps(1) s a grep(1) hasznlatval tehetjk meg. A grep(1) parancs segtsgvel ms parancsok kimenetben tudunk megkeresni egy ltalunk megadott szveget. Ezt a parancsot tlagos felhasznlknt futtatjuk, azonban az inetd(8) dmont a root birtokolja, ezrt az ps(1) hasznlata sorn meg kell adnunk az ax kapcsolkat is.
% ps -ax | grep inetd

198

??

IWs

0:00.00 inetd -wW

Innen kiderl, hogy az inetd(8) azonostja 198. Elfordulhat, hogy az eredmnyben maga a grep inetd parancs is megjelenik. Ez a ps(1) listzsi mdszere miatt kvetkezhet be. 2. A jelzs elkldsre hasznljuk a kill(1) parancsot. Mivel az inetd(8) dmont a root felhasznl futtatja, ehhez elszr a su(1) parancs kiadsval neknk is root felhasznlv (rendszeradminisztrtorr) kell vlnunk.
% su Password: # /bin/kill -s HUP 198

Ahogy az a legtbb UNIX esetn elfogadott, a sikeres vgrehajts esetn a kill(1) sem vlaszol semmit. Amikor viszont nem egy sajt programunknak akarunk jelzst kldeni, akkor a kill: PID : Operation not permitted (a mvelet nem engedlyezett) hibazenetet ltunk. Ha vletlenl elgpeltk volna a fut program azonostjt, akkor a kldend jelzs nem a megfelel folyamatnl fog kiktni (ami nem ppen j), vagy ha szerencsnk van, akkor a jelzst egy ppen hasznlaton kvli azonostra kldtk. Az utbbi esetben a kvetkez lthatjuk: kill: PID : No such process (nincs ilyen folyamat).
Mirt /bin/kill?: A legtbb parancsrtelmez beptetten tartalmazza a sajt kill parancst, teht ilyenkor kzvetlenl maga a parancsrtelmez kldi a jelzst, nem pedig a /bin/kill programon keresztl. Ez gyakran a javunkra vlhat, azonban a kldhet jelzsek megadsa parancsrtelmeznknt eltrhet. gy, ahelyett, hogy egyenknt ismernnk kellene mindegyiket, sokkal egyszerbb kzvetlenl a /bin/kill ... parancsot hasznlni.

117

Fejezet 3. A UNIX alapjai A tbbi jelzs kldse is nagyon hasonl mdon trtnik, hiszen elegend csupn a TERM vagy a KILL behelyettestse a parancs megfelel helyre.
Fontos: A rendszernkben vatosan bnjunk a fut programok lelltgatsval, s legynk klns tekintettel az 1-es azonostval rendelkez, specilis feladattal br init(8) folyamatra. A /bin/kill -s KILL 1 parancs kiadsval ugyanis gyorsan le tudjuk lltani a rendszernket. Mieltt egy kill(1) parancsot lezrnnk az Enter billentyvel, mindig gyzdjnk meg rla, hogy valban tnyleg a j paramtereket adtuk meg.

3.9. Parancsrtelmezk
A FreeBSD-ben htkznapi munknk legnagyobb rszt a parancsrtelmezknek (shell) nevezett parancssoros felleten tudjuk elvgezni. A parancsrtelmez f feladata a berkez parancsok elfogadsa s vgrehajtatsa. Sok parancsrtelmez ezenfell rendelkezik beptett funkcikkal is, amelyek olyan htkznapi feladatokban igyekeznek segteni, mint pldul az llomnyok kezelse s tmeges elrse regulris kifejezsek hasznlatval, a parancssor szerkesztse, parancsok makrzsa s a krnyezeti vltozk hasznlata. A FreeBSD alapbl tartalmaz nhny parancsrtelmezt, ilyen pldul az sh, a Bourne Shell, s a tcsh, a tovbbfejlesztett C-shell. Sok ms parancsrtelmez, mint pldul a zsh s bash is elrhet a FreeBSD Portgyjtemnybl. De melyik parancsrtelmezt is vlasszuk? Ez igazbl zls krdse. Ha inkbb C programozk vagyunk, akkor valsznleg egy olyan C-szer shelllel tudunk knyelmesen dolgozni, amilyen pldul a tcsh. Ha viszont egy linuxos rendszert hasznltunk korbban vagy ppen mg soha nem hasznltunk volna a UNIX parancssort, rdemes a bash-sel megprblkoznunk. A lnyeg az, hogy minden parancsrtelmeznek vannak olyan egyedi jellemezi, amirt hasznlatak vagy ppen nem hasznlatak a munknkban, ezrt magunknak kell kivlasztani a neknk megfelelt. A shellek egyik legltalnosabb jellemzje az llomnyok neveinek kiegsztse. Miutn begpeljk egy parancs vagy llomnynv els nhny karaktert, a Tab billenty lenyomsval megkrhetjk a parancsrtelmezt, hogy magtl egsztse ki (tallja ki) a fennmarad rszt. Nzzk erre egy pldt. Tegyk fel, hogy van kt llomnyunk, izemize s ize.mize, s szeretnnk letrlni az ize.mize nevt. Ehhez a kvetkezt kell begpelnnk: rm iz[Tab].[Tab]. Erre a parancsrtelmez a kvetkez parancsot rja ki: rm ize[SIPOLS].mize. A [SIPOLS] itt a konzol spjra vonatkozik, amellyel jelzi, hogy nem tudta teljesen kiegszteni az llomny nevt, mivel egynl tbb is megfelel a megadott alaknak. Az izemize s az ize.mize is egyarnt az iz eltaggal kezddik, azonban ebbl a parancsrtelmez csak az ize eltagot tudta kikvetkeztetni. Ha most begpelnk mg egy . karaktert s jra megnyomjuk a Tab billentyt, a parancsrtelmez ezttal kpes lesz az llomny teljes nevt megllaptani. A parancsrtelmezk msik ltalnos jellemzje a krnyezeti vltozk hasznlata. A krnyezeti vltozk lnyegben a parancsrtelmez krnyezethez trolt nv-rtk prok. Ezt a krnyezetet ltja minden olyan program, amit a parancsrtelmezbl meghvunk, s ezrt tartalmazni is szokott sok ilyen belltst. me a leggyakoribb krnyezeti vltozk felsorolsa s rvid lersa: Vltoz
USER

Lers A bejelentkezett felhasznl neve.

118

Fejezet 3. A UNIX alapjai Vltoz


PATH DISPLAY SHELL TERM TERMCAP OSTYPE MACHTYPE EDITOR PAGER MANPATH

Lers Vesszvel elvlasztott knyvtrak, ahol a parancsrtelmez a vgrehajthat llomnyokat keresi. Az aktulisan hasznlt X11 megjelent hlzati neve, amennyiben ltezik ilyen. A hasznlt parancsrtelmez. A felhasznl ltal hasznlt terminl tpusa. Ebbl a terminl kpessgeit lehet megllaptani. A terminlok adatbzisbl szrmaz, klnbz terminlfunkcikhoz tartoz helyettest (escape) kdok. Az opercis rendszer tpusa, pldul FreeBSD. A rendszer alatt fut gp architektrja. A felhasznl ltal hasznlt szvegszerkeszt. A felhasznl ltal lapozsra hasznlt program. Vesszvel elvlasztott knyvtrak, ahol a parancsrtelmez a man oldalakat keresi.

A krnyezeti vltozk belltsa parancsrtelmeznknt valamennyire eltr. Pldul egy C stlus parancsrtelmez, mint pldul a tcsh vagy a csh, a setenv paranccsal lltja a krnyezeti vltozkat. A Bourne-fle parancsrtelmezk, mint pldul az sh vagy a bash, az export parancsot hasznljk a krnyezeti vltozk belltsra. Pldul a csh vagy a tcsh hasznlata sorn a kvetkezkppen tudjuk be- vagy tlltani az EDITOR krnyezeti vltoz rtkt /usr/local/bin/emacs-re:
% setenv EDITOR /usr/local/bin/emacs

Ugyanez a Bourne-fle parancsrtelmezkben:


% export EDITOR="/usr/local/bin/emacs"

A legtbb parancsrtelmezben a nevk eltt szerepeltetett $ jel segtsgvel krhetjk a krnyezeti vltozk rtknek behelyettestst a parancssorba. Ennek megfelelen az echo $TERM parancs kiratja a TERM vltoz aktulis rtkt, mivel ebbe a parancsrtelmez mr az echo meghvsa eltt behelyettesti a TERM rtkt. A parancsrtelmezk szmos specilis karaktert, n. metakaraktert az adatok klnleges reprezentcijaknt kezelnek. Kztk a leggyakrabban hasznlt a *, amely tetszleges szm karaktert helyettest egy llomny nevben. Az ilyen metakarakterek segtsgvel tudunk egyszerre tbb llomnyt is megnevezni. Pldul ha begpeljk az echo * parancsot, akkor majdnem ugyanazt kapjuk eredmnyl, mintha az ls parancsot adtuk volna ki, hiszen a parancsrtelmez ilyenkor veszi az sszes * metakarakterre illeszked llomnyt, s a kiratsukhoz pedig rendre behelyettesti ezeket a parancssorba az echo paramtereknt. Ha nem szeretnnk, hogy a parancsrtelmez rtelmezze a specilis karaktereket, akkor egy backslash (visszaper) (\) karaktert eljk tve mindezt megakadlyozhatjuk. Az echo $TERM parancs ugyebr kiratja a terminlra vonatkoz krnyezeti vltoz belltst, azonban a echo \$TERM vltozatlanul kirja a $TERM szveget.

3.9.1. A parancsrtelmeznk megvltoztatsa


A parancsrtelmeznk legegyszerbben a chsh parancs hasznlatval vltoztathat meg. A chsh kiadsa utn elindtja az EDITOR krnyezeti vltoznak megfelel szvegszerkesztt, ha nem lenne ilyen, akkor alaprtelmezs

119

Fejezet 3. A UNIX alapjai szerint a vi hvdik meg. Az gy megnyitott llomnyban vltoztassuk meg kedvnk szerint a Shell: kezdet sort. A chsh parancsnak megadhatjuk az -s opcit is, amin keresztl szvegszerkeszt hasznlata nlkl be tudjuk lltani a parancsrtelmezt. Pldul ha a parancsrtelmeznket a bash-re akarjuk lecserlni, akkor ezt rjuk be:
% chsh -s /usr/local/bin/bash

Megjegyzs: A hasznlni kvnt parancsrtelmeznek szerepelnie kell az /etc/shells llomnyban. Ha a kivlasztott parancsrtelmezt a Portgyjtemnybl teleptettk fel, akkor az mr minden bizonnyal bekerlt oda. Ha viszont sajt magunk raktuk volna fel, akkor ide is fel kell vennnk. Pldul ha a bash-t manulisan teleptettk s msoltuk a /usr/local/bin knyvtrba, akkor gy kell eljrnunk:
# echo "/usr/local/bin/bash" >> /etc/shells

Majd prblkozzunk jra a chsh paranccsal.

3.10. Szvegszerkesztk
A FreeBSD belltsnak nagy rsze szveges llomnyok szerkesztsvel trtnik. Emiatt sosem rt legalbb egy szvegszerkesztt ismernnk. A FreeBSD alaprendszerben, valamint a Portgyjtemnyben is tallhatunk nhnyat bellk. A legegyszerbben megtanulhat s legknnyedebb szvegszerkesztt ee-nek, avagy easy editornak hvjk. Az ee indtshoz rjuk be az ee llomnynv parancsot, ahol az llomnynv lesz a szerkesztend llomny neve. gy pldul az /etc/rc.conf llomny szerkesztshez gpeljk be az ee /etc/rc.conf parancsot. Miutn elindult az ee, az sszes szerkesztshez hasznlhat parancsa megjelenik a kperny fels rszben. Itt a kalap (^) karakter a Ctrl billenty lenyomsra utal, gy teht a ^e jells a Ctrl+e billentykombincit jelenti. Ha ki akarunk lpni az ee-bl, nyomjuk le az Esc billentyt, majd a felbukkan menbl vlasszuk a szerkeszt elhagyst (leave editor). Ha az llomnyt mdostottuk, kilps eltt mg a szvegszerkeszt rkrdez, hogy mentse-e a vltoztatsainkat. A FreeBSD nagyobb tuds szvegszerkesztket, mint pldul a vi-t, is tartalmaz az alaprendszer rszeknt, mikzben a tbbi, mint pldul az Emacs vagy a vim a Portgyjtemny rszeknt (editors/emacs s editors/vim) rhet el. Ezek a szerkesztk sokkal tbb lehetsget s ert kpviselnek, amirt cserbe viszont valamivel nehezebb megtanulni a hasznlatukat. Ha viszont rengeteg szveget akarunk majd szerkeszteni, akkor egy vim vagy Emacs hasznlatnak megismersvel sok idt megsprolhatunk. Szmos alkalmazs, amely llomnyokat akar mdostani vagy szveges bemenetre van szksge, automatikusan szvegszerkesztt nyit meg. Ezt az EDITOR krnyezeti vltoz belltsval tudjuk meghatrozni. Errl rszletesebben a parancsrtelmezknl olvashatunk.

3.11. Eszkzk s eszkzlerk


Az eszkz elnevezst leginkbb a rendszerben foly, hardverrel kapcsolatos tevkenysgek kapcsn hasznljk lemezekre, nyomtatkra, grakus krtykra s billentyzetekre. A FreeBSD indulsa sorn tbbnyire azt lthatjuk,

120

Fejezet 3. A UNIX alapjai hogy milyen eszkzket sikerlt felismernie. Ezeket a rendszerindtskor megjelen zeneteket a /var/run/dmesg.boot llomnyban nzhetjk meg jra. Pldul az acd0 az els IDE CD-meghajtt, mg a kbd0 a billentyzetet kpviseli. A UNIX opercis rendszerben a legtbb eszkzt a /dev knyvtrban tallhat, eszkzlerknak (device node) nevezett specilis llomnyokon keresztl rhetjk el.

3.11.1. Eszkzlerk ltrehozsa


Amikor egy jfajta eszkzt adunk hozz a rendszerhez vagy csak annak egy j pldnyt, mindig ltre kell hoznunk hozz egy j eszkzlert.

3.11.1.1. DEVFS (DEVice File System, Eszkz-llomnyrendszer)


Az eszkzket tartalmaz llomnyrendszer, avagy DEVFS, ad hozzfrst a rendszermag ltal ismert eszkzk neveihez a globlis llomnyrendszer nevein keresztl. gy ahelyett, hogy magunknak kellene ltrehoznunk s mdostanunk az eszkzlerkat, a DEVFS erre a clra fenntart egy kln llomnyrendszert. A devfs(5) man oldalon olvashatunk bvebben errl.

3.12. Binris formtumok


Annak megrtshez, hogy a FreeBSD mirt az elf(5) formtumot hasznlja, elszr is tisztban kell lennnk a UNIX tpus rendszerekben hasznlt vgrehajthat llomnyok hrom uralkod formtumval:

a.out(5) A legsibb s egyben a klasszikus UNIX-os trgykdformtum. Egy tmr s rvidke fejlcet hasznl, aminek az elejn a formtum lersra szolgl bvs szm tallhat (errl bvebben lsd a.out(5)). Hrom betlttt szegmenst tartalmaz: .text, .data s .bss, valamint egy szimblumokat s karakterlncokat trol tblt.

COFF Az SVR3 trgykdformtuma. A fejlc itt mr tartalmaz egy table nev szegmenst is, teht a .text, .data s .bss szegmensekhez hasonlan ebbl is tbbet tud trolni.

elf(5) A COFF utn kvetkez formtum, amelyben tbb szegmens is megtallhat, valamint ltezik 32 bites s 64 bites vltozatban is. Egyetlen htrnya van: az ELF tervezse sorn rendszerarchitektrnknt csupn egyetlen ABI-t (binris alkalmazi felletet) feltteleztek. Ez azonban meglehetsen helytelen, mivel mg a kereskedelmi SYSV vilgban (ahol mr legalbb hrom ABI tallhat: SVR4, Solaris s SCO) sem llja meg a helyt. A FreeBSD ezt a problmt a megblyegzs (branding) segtsgvel prblja megoldani, aminek rvn el tudunk ltni egy ismert ELF llomnyt a futtatshoz megfelel ABI-ra vonatkoz informcikkal. Errl rszletesebben a brandelf(1) oldaln tjkozdhatunk.

A FreeBSD a klasszikusok tborbl indult, ezrt kezdetben az a.out(5) formtumot hasznlta, mivel ez a technolgia a BSD kiadsok szmos genercijban megmrettetett s bevlt, egszen a 3.X g elindulsig. Habr

121

Fejezet 3. A UNIX alapjai mr jval eltte lehetett fordtani s futtatni natv ELF binrisokat (s rendszermagokat) a FreeBSD rendszereken, a FreeBSD kezdetben dzkodott vltani az alaprtelmezs szerinti ELF formtumra. De vajon mirt? Nos, amikor a Linux-tbor megtette a maga fjdalmas vltst az ELF-re, az nem annyira azrt volt, hogy megszabaduljanak az a.out vgrehajthat formtumtl, hanem mert a rugalmatlan, ugrtblkon alapul oszottknyvtr-kezelsi mechanizmusaik nagyon megneheztettk a gyrtk s fejlesztk szmra az osztott fggvnyknyvtrak ltrehozst. Mivel az ELF formtumhoz rendelkezsre ll eszkzk megoldst knltak az osztott knyvtrak gondjaira, s mivel ltalnosan elfogadtk a jvbe vezet tknt, a FreeBSD is felvllalta az tllssal kapcsolatos kltsgeket s vgrehajtotta azt. A FreeBSD az osztott knyvtrakat leginkbb a Sun SunOS rendszerhez hasonlan kezeli, ami egy nagyon knnyen hasznlhat megolds. De mirt van ilyen sok klnbz formtum? A kds s stt mltban egyszerbb hardverek voltak. Ezek az egyszer hardverek egyszer, kicsi rendszereket tmogattak. Az a.out tkletesen megfelel volt egy ilyen egyszer rendszer (egy PDP-11) binrisainak trolsra. Ahogy az emberek nekilttak tltetni errl az egyszer rendszerrl a UNIX-ot ms rendszerekre, az a.out formtumot tovbbra is megtartottk, mivel a UNIX kezdeti, Motorola 68k-ra, VAXenre ksztett trataihoz is elegend volt. Ezutn nhny les elmj hardvermrnk kitallta, ha r tudnk knyszerteni a programokat egy-kt gyetlen trkkre, akkor a terveken meg tudnnak sprolni nhny logikai kaput s ezzel a processzor is gyorsabban tudna futni. Mikzben az a.out formtumot ilyen hardverre (amit manapsg RISC-nek hvnak) is szerettk volna thozni, kiderlt, hogy ebben az esetben szinte hasznlhatatlan. Ezrt az a.out formtum ltal felknltnl nagyobb teljestmny elrse rdekben nekilttak szmos ms formtumot is kidolgozni. Ekkor jttek ltre a COFF, ECOFF s ms hasonl formtumok, amelyek elbb-utbb korltokba tkztek, mg mieltt a trtnelem megllapodott volna az ELF formtumnl. Radsul a programok mretei egyre inkbb kezdtek nni, mikzben a lemezek (valamint a zikai memria) tovbbra is viszonylag kicsik maradtak, ezrt megszletett az osztott knyvtr tlete, s a virtulis memrit kezel alrendszer is sokat nomodott. Mivel ezek a klnbz fejlesztsek az a.out formtumra pltek, annak hasznlatsga a beletmtt mdostsok szmval egytt romlott. Emellett az emberek mg szerettek volna betlteni klnfle dolgokat futsi idben dinamikusan, vagy ppen a memria s a lapozllomny megsprolshoz kipucolni a programjaik egyes rszeit az inicializl kdrszletek lefutsa utn. A programozsi nyelvek is fejldtek, s az emberek a fprogram futsa eltt is akartak kdot futtatni. Az a.out formtum rengeteg apr foltozson esett keresztl, amelyek egy ideig mg tudtk is tartani magukat. Azonban egy id utn mr az a.out formtum egyre nvekv teljestmnycskkens nlkl mr nem volt kpes llni a sarat. Habr az ELF megszntette a fennll problmk jelents rszt, egyttal megneheztette egy alapveten mkd rendszer levltst. Ezrt az ELF formtumnak meg kellett vrnia azt a pillanatot, amikorra az a.out hasznlata mr knyelmetlenn vlt. Azonban ahogy mlt az id, az eszkzkbl, amelyekbl a FreeBSD a fordtshoz szksges eszkzket szrmaztatta (klnsen az assembler s a betlt),ltrejtt kt prhuzamos fejlesztsi fa. A FreeBSD-fa kiegszlt az osztott knyvtrak tmogatsval s hibkat javtott, mikzben a GNU-fa alkoti, akik eredetileg ksztettk ezeket a programokat, jrartk az eszkzeiket s a keresztfordtshoz egyszerbb tmogatst ksztettek, cserlhetv tettk a klnbz formtumokat s gy tovbb. Sokan akartak FreeBSD-re keresztfordtani, azonban nem volt szerencsjk, mert a FreeBSD rgebbi forrsait az as s ld mr nem emsztette meg. Az j GNU eszkztr (a binutils) viszont ismeri mr a keresztfordtst, az ELF formtumot, az osztott knyvtrakat, a C++ kiterjesztseit stb. Idkzben egyre tbb gyrt ELF formtum binrisokat adott ki, s j rzs volt ezeket FreeBSD-n is futtatni. Az ELF sokkal kifejezbb az a.out formtumnl, s jval tbb bvtsi lehetsget enged az alaprendszerben. Az ELF formtumhoz tartoz eszkzket jobban karbantartjk s tmogatja a keresztfordtst, ami viszont sokaknak fontos. Az ELF taln nmileg lassabb, mint az a.out, azonban ez nehezen mrhet le. Szmos rszletben eltrnek

122

Fejezet 3. A UNIX alapjai ugyan, pldul hogyan kpeznek le lapokat, hogyan kezelik az inicializl kdot stb., de ezek egyike sem igazn fontos. Idvel az a.out tmogatsa ki fog kerlni a GENERIC rendszermagbl, s vgl majd teljesen eltvoltsra kerl, ahogy a rgi a.out formtum programok szpen lassan kifutnak.

3.13. Bvebben olvashatunk...


3.13.1. Man oldalak
A FreeBSD legtfogbb dokumentcija a benne tallhat man oldalak sszessge. A rendszerben tallhat szinte majdnem mindegyik programhoz ltezik egy rvid hasznlati tmutat, amely bemutatja az adott program alapvet mkdst s a klnbz belltsait. Ezek a lersok a man parancs segtsgvel jelenthetek meg. A man parancs hasznlata egyszer:
% man parancs

ahol a parancs a megismerni kvnt parancsra utal. Pldul ha az ls parancsrl szeretnnk tbbet megtudni, rjuk be:
% man ls

Az elrhet hasznlati tmutatkat a kvetkez szmozott szakaszokra osztottk: 1. Felhasznli parancsok 2. Rendszerhvsok s hibakdok 3. A C fggvnyknyvtr fggvnyei 4. Eszkzmeghajtk 5. llomnyformtumok 6. Jtkok s egyb szrakoztat alkalmazsok 7. Egyb informcik 8. Rendszerkarbantartsi s -mkdtetsi parancsok 9. Rendszermagfejlesztk szmra Bizonyos esetekben ugyanaz a tma az tmutatk tbb szakaszban is elrhet. Pldul ltezik chmod felhasznli parancs s a chmod() rendszerhvs. Ilyenkor a man parancsnak meg tudjuk adni pontosan, melyik szakaszra is vagyunk kvncsiak:
% man 1 chmod

Ennek hatsra a chmod felhasznli parancshoz tartoz oldal jelenik meg. rott formban a hasznlati tmutatk klnbz szakaszaira hagyomnyosan a nv utn zrjelbe tett szmmal hivatkoznak, gy a chmod(1) a chmod felhasznli parancs s a chmod(2) a rendszerhvs. Ez a mdszer remekl mkdik abban az esetben, amikor ismerjk a parancs nevt, azonban mit tegynk akkor, ha nem is emlksznk a nevre? A man parancs a -k segtsgvel paramterezhet gy is, hogy a parancsok lersai kztt keressen valamilyen kulcssz mentn:

123

Fejezet 3. A UNIX alapjai


% man -k mail

Ezzel a paranccsal megkapjuk azon parancsok listjt, amelyek lersban szerepel a mail kulcssz. Ez egybknt mkdsben teljesen megegyezik a apropos paranccsal. Szval szeretnnk megtudni, hogy a /usr/bin knyvtrban lev parancsok pontosan mit is csinlnak? Ehhez rjuk be:
% cd /usr/bin % man -f *

vagy
% cd /usr/bin % whatis *

ami ugyanezt teszi.

3.13.2. A GNU info llomnyok


A FreeBSD-ben megtallhat a Szabad Szoftver Alaptvny (Free Software Foundation, FSF) ltal ksztett szmos alkalmazs. Ezek a programok a szokvnyos man oldalakon kvl mg ltalban tartalmaznak egy infonak nevezett, sokkal rszletesebb hipertext alap lerst is, amelyeket az info paranccsal, vagy ha van fenn emacs, akkor annak az info mdjban tudjuk megjelenteni. Az info(1) parancs hasznlathoz ennyit kell bernunk:
% info

Itt a h lenyomsval kapunk egy rvid bemutatkozst. A parancsok rvid listjt a ? billenty hozza el.

Megjegyzsek
1. Erre utal pontosan az i386 jelzs. Mg abban az esetben is az i386 kirst fogjuk ltni, ha a FreeBSD-t konkrtan nem is az Intel 386-os processzorn futtatjuk. Itt ugyanis nem a processzorunk tpust, hanem annak architektrjt lthatjuk. 2. A rendszerindt szkriptek olyan programok, amelyek a FreeBSD indulsa sorn maguktl lefutnak. Legfontosabb feladatuk elvgezni a tbbi program futtatshoz szksges belltsokat, valamint elindtani a httrben futtatand, hasznos munkt vgz szolgltatsokat. 3. A FreeBSD konzol- s billentyzetmeghajtinak teljes, pusztn mszaki s precz lersa a syscons(4), atkbd(4), vidcontrol(1) s kbdcontrol(1) man oldalakon olvashat. Itt most nem bocstkozunk rszletekbe, azonban a tma irnt rdekld olvasknak mindig rdemes fellapozniuk a kapcsold man oldalakat, ahol megtallhatjk az emltett eszkzk rszletesebb s bvebb lerst. 4. Ez azrt nem teljesen igaz. Van nhny olyan tevkenysg, ami nem szakthat meg. Ilyen pldul az, amikor a program egy msik szmtgpen tallhat llomnyt prbl olvasni, mikzben valamilyen ok (kikapcsols, hlzati hiba) folytn elveszti vele a kapcsolatot. Ekkor a program futsa megszakthatatlan. Majd amikor a program feladja a prblkozst (ltalban kt perc utn), akkor kvetkezik be a tnyleges lelltsa.

124

Fejezet 4. Alkalmazsok teleptse: csomagok s portok


4.1. ttekints
A FreeBSD rendszereszkzk gazdag gyjtemnyvel rkezik az alaprendszer rszeknt. Azonban a kls alkalmazsok teleptshez rengeteg teendt kell elvgeznnk. A feladat elvgzsre ezrt a FreeBSD kt, egymst kiegszt technolgit knl fel: a FreeBSD Portgyjtemnyt (telepts forrskdbl) s a csomagokat (telepts elre elksztett binris csomagokbl). Mind a kt mdszerrel fel tudjuk telepteni a kedvenc alkalmazsunk legjabb verzijt loklisan vagy egyenesen a hlzatrl. A fejezet elolvassa sorn megismerjk:

hogyan teleptsnk kls fejleszts binris szoftvercsomagokat; hogyan fordtsunk le a forrsukbl kls fejleszts szoftvereket a Portgyjtemny segtsgvel; hogyan tvoltsunk el korbban mr teleptett csomagokat s portokat; hogyan brljuk fell a Portgyjtemny ltal hasznlt alaprtelmezett rtkeket; hogyan keressk meg a megfelel szoftvercsomagokat; hogyan frisstsk a teleptett alkalmazsokat.

4.2. Az alkalmazsok teleptsnek sszefoglalsa


Ha korbban mr hasznltunk UNIX rendszereket, valsznleg ismerjk a kls alkalmazsok teleptsnek jellemez menett: 1. 2. 3. 4. 5. Tltsk le a szoftvert, amelyet vagy forrskd vagy pedig binris formtumban rhetnk el. Bontsuk ki az alkalmazs letlttt vltozatt (ez ltalban a compress(1), gzip(1) vagy a bzip2(1) ltal tmrtett tar llomny). Keressk meg a dokumentcit (tbbnyire az INSTALL vagy a README llomnyban tallhat, vagy a doc/ alknyvtrban) s olvassuk el benne, hogyan tudjuk telepteni a szoftvert. Ha a szoftver forrst tltttk le, fordtsuk le. Elkpzelhet, hogy ennek sorn szerkesztennk kell a Makefile llomnyt vagy lefuttatnunk a configure szkriptet, illetve ms lpseket is el kell vgeznnk. Prbljuk a ki szoftvert, majd teleptsk.

Ez annak a forgatknyve, amikor minden hiba nlkl lezajlik. Megeshet azonban, ha olyan szoftvert teleptnk, amelyet nem kifejezetten a FreeBSD-hez terveztek, akkor javtanunk kell a forrskdban a szoftver megfelel mkdshez. Ha sikerl mkdsre brni, folytathatjuk FreeBSD-n a szoftver teleptst a megszokott mdon. Habr a FreeBSD erre a clra kt lehetsget is felknl, amivel rengeteg erfesztstl megkmlhet minket: ezek a csomagok s a portok. Az rs pillanatban kzel 20 000 kls alkalmazs rhet el ilyen formban.

125

Fejezet 4. Alkalmazsok teleptse: csomagok s portok Egy adott alkalmazs esetn a hozztartoz FreeBSD-s csomag mindssze egyetlen letltend llomnyt takar. A csomag tartalmazza az alkalmazs teleptshez szksges sszes parancs elre lefordtott vltoztatt, ugyangy magt a dokumentcit is. A letlttt csomagokat a FreeBSD csomagkezel parancsaival vehetjk hasznlatba: ezek a pkg_add(1), pkg_delete(1), pkg_info(1) s gy tovbb. Az j alkalmazsok teleptse ennek ksznheten egyetlen paranccsal elvgezhet. Egy alkalmazs FreeBSD-s portja mgtt lnyegben llomnyok gyjtemnye ll, amelyek abban segtenek, hogy automatikusan tudjunk telepteni a forrskd felhasznlsval. Ne felejtsk el, hogy normlis esetben szmos lpcst vgig kell jrnunk egy program sajtkez lefordtshoz (letlts, kitmrts, javtgats, fordts, telepts). A portot alkot llomnyok tartalmazzk az sszes olyan szksges informcit, amelyek tengedik ezt a feladatot a rendszernek. Kiadunk nhny egyszer parancsot s az alkalmazs magtl letltdik, kitmrtdik, mdostja a forrskdjt, lefordul s telepl. Valjban a portrendszer hasznlhat olyan csomagok ltrehozsra is, amelyeket ksbb a pkg_add s tbbi hozz hasonl, hamarosan rszletesebben is bemutatand csomagkezel paranccsal is kezelni tudunk. A csomagok s a portok egyarnt kpesek fggsgeket kezelni. Tegyk fel, hogy egy olyan alkalmazst akarunk telepteni, amely egy adott fggvnyknyvtr meglttl fgg a rendszeren. Az alkalmazs s a knyvtr is elrhet FreeBSD portknt s csomagknt. Akr a pkg_add parancsot, akr a portrendszert hasznljuk az alkalmazs hozzadsra, mind a kett szre fogja venni, hogy a szksges knyvtrt mg nem teleptettk, ezrt elszr azt fogja automatikusan telepteni. Tudvn, hogy a kt emltett megolds szinte teljesen egyenrtk, felmerlhet a krds: a FreeBSD mgis mirt rendelkezik mindkettvel? A csomagoknak s a portoknak is megvannak a maguk elnyei, s hogy a kett kzl melyiket hasznljuk, csak az egyni zlsnkn mlik. A csomagok hasznlatnak elnyei

Egy csomag ltalban kisebb, mint az alkalmazs forrskdjt tartalmaz tmrtett tar llomny. A csomagokat nem kell fordtani. Nagyobb alkalmazsok, mint pldul a Mozilla, KDE vagy GNOME esetn ez kulcsfontossg lehet, fleg abban az esetben, ha a rendszernk ehhez nem elgg gyors. A csomagok hasznlata nem vrja el tlnk, hogy behatbban ismerjk, miknt is kell FreeBSD-n szoftvereket lefordtani.

A portok hasznlatnak elnyei

A csomagokat ltalnos esetben igen vatos belltsokkal ksztik el, hiszen a lehet legtbb rendszeren mkdkpesnek kell lennik. Ha viszont portbl teleptnk, nyugodtan hangolhatjuk gy a belltsokat, hogy (pldul) a Pentium 4 vagy az Athlon processzoroknak kedvez kdot hozzanak ltre. Bizonyos alkalmazsok fordts idejn lltand belltsokkal rendelkeznek arrl, hogy mire lesznek kpesek s mire nem. Pldul az Apache beptett kongurcis opcik szles kellktrval rendelkezik. Amikor viszont portbl hozzuk ltre, nem kell elfogadnunk ezek alaprtelmezett rtkeit, hanem a sajt ignyeinknek megfelelen tllthatjuk ezeket. Egyes esetekben tbb klnfle belltst tkrz csomag is ltezhet ugyanahhoz az alkalmazshoz. Pldul a Ghostscript elrhet ghostscript s ghostscript-nox11 csomagknt is attl fggen, hogy teleptettk-e az X11 szervert. Ez termszetesen egy meglehetsen durva kijtszsa a csomagrendszernek, s gyorsan lehetetlenn is vlik a hasznlata, ha az adott alkalmazs egy-kt fordtsi idej belltsnl tbbel rendelkezik.

Nhny szoftver licencelse tiltja a binris terjesztst. Ezrt ezek a szoftverek kizrlag csak forrskd formjban tovbbthatak.

126

Fejezet 4. Alkalmazsok teleptse: csomagok s portok

Nhnyan nem bznak meg a binris verzikban. Ha ltjuk a forrskdot is, akkor (elmletben) t tudjuk nzni, s mi magunk is megkereshetjk a benne lappang hibkat. Ha vannak sajt javtsaink, csak a forrskd birtokban tudjuk ezeket felhasznlni. Sokan szeretik, ha egyszeren csak ott van a szoftverek forrskdja. Ha ppen unatkoznak, beljk tudnak nzni, tleteket s kdot tudnak bellk merteni (persze csak akkor, ha ezt a licenc megengedi), vagy tovbb tudjk ezeket fejleszteni, orvosolni tudjk a hibikat stb.

A portok frisstsrl a FreeBSD ports levelezsi lista (http://lists.FreeBSD.org/mailman/listinfo/freebsd-ports) s a FreeBSD ports bugs levelezsi lista (http://lists.FreeBSD.org/mailman/listinfo/freebsd-ports-bugs) valamelyikrl szerezhetnk napraksz informcikat.
FigyelemMieltt brmelyik alkalmazst is teleptennk, rdemes megltogatnunk az http://vuxml.freebsd.org oldalt, ahol a hozztartoz ismert biztonsgi problmkrl olvashatunk. Telepthetjk a ports-mgmt/portaudit programot is, amely automatikusan ellenrzi a teleptett alkalmazsok ismert sebezhetsgeit. Ez az ellenrzs egybknt megejthet minden port lefordtsa eltt is. Ezalatt a portaudit -F -a parancs kiadsval ellenrizhetjk utlag a teleptett csomagokat.

A fejezet fennmarad rszben megmutatjuk, hogyan hasznljuk FreeBSD-ben a csomagokat s portokat kls alkalmazsok teleptsre s karbantartsra.

4.3. A szmunkra szksges alkalmazsok felkutatsa


Mieltt teleptennk brmilyen alkalmazst, tudnunk kell, hogyan is nevezik. A FreeBSD-hez elrhet alkalmazsok listja folyamatosan nvekszik. Szerencsre szmos mdja van annak, hogy utnajrjunk a keresett szoftvernek:

A FreeBSD honlapjn tallhatunk egy rendszeresen frissl listt az sszes elrhet alkalmazsrl, a http://www.FreeBSD.org/ports/ (http://www.FreeBSD.org/ports/index.html) cmen. Itt a portok klnbz kategrikba sorolva tallhatak meg, ahol nv szerint megkereshetjk az alkalmazst (amennyiben ismerjk), vagy vgigbngszhetjk az adott kategriban elrhet alkalmazsokat is. Dan Langlille a http://www.FreshPorts.org/ cmen karbantartja a FreshPorts nev oldalt. Ezen az oldalon folyamatosan nyomon lehet kvetni a Portgyjtemnyben megtallhat alkalmazsok vltozsait, lehetv tve, hogy egy vagy tbb portot is gyeljnk, vagy e-mailt kldjnk a frisstskrl. Amennyiben nem ismerjk a keresett alkalmazs nevt, prbljuk meg felkutatni a FreshMeaten (http://www.freshmeat.net/) vagy hozz hasonl oldalakon, majd nzzk meg a FreeBSD honlapjn, hogy az adott alkalmazst portoltk-e mr a rendszerre. Ha pontosan ismerjk a port nevt, s csak a kategrijt kellene megkeresnnk, hasznljuk a whereis(1) parancsot. Egyszeren csak adjuk ki a whereis nv parancsot, ahol a nv a teleptend program neve. Ha sikerlt megtallni, rszletes informcit kapunk arrl, hogy hol tallhat, valahogy gy:
# whereis lsof

lsof: /usr/ports/sysutils/lsof

A fenti pldban megtudhatjuk, hogy az lsof parancs a /usr/ports/sysutils/lsof knyvtrban tallhat.

127

Fejezet 4. Alkalmazsok teleptse: csomagok s portok

Vagy egy egyszer echo(1) paranccsal is megkereshetjk a portfban a portokat. Mint pldul:
# echo /usr/ports/*/*lsof*

/usr/ports/sysutils/lsof

Ez a mdszer a /usr/ports/distfiles knyvtrba letlttt sszes illeszked llomnyt is kilistzza.

Egy msik lehetsg egy adott port megtallsra, ha a Portgyjtemny beptett keressi mechanizmust hasznljuk. Ennek hasznlathoz a /usr/ports knyvtrban kell lennnk. Miutn belptnk ide, futtassuk le a make search name=programnv parancsot, ahol a programnv a keresend program neve. Pldul, ha az lsof programot keressk:
# cd /usr/ports # make search name=lsof

Port: Path: Info: Maint: Index: B-deps: R-deps:

lsof-4.56.4 /usr/ports/sysutils/lsof Lists information about open files (similar to fstat(1)) obrien@FreeBSD.org sysutils

A keress eredmnyben leginkbb a Path: kezdet sorra kell odagyelnnk, mivel ez rulja el, hol is tallhatjuk meg a portot. Az itt szerepl tbbi informci nem szksges a port teleptshez, ezrt azokkal itt most nem foglalkozunk. Mlyebb keressekhez hasznlhatjuk a make search key=szveg parancsot is, ahol a szveg a keresend szveg(rszlet) lesz. Ezt a rendszer keresni fogja a portok neveiben, megjegyzsekben, lersokban s fggsgekben. Amikor nem ismerjk a keresett program nevt, ez olyan portok keressre alkalmas, amelyek egy adott tmhoz kapcsoldnak. A fenti esetek mindegyikben a keress nem klnbzteti meg a kis- s nagybetket. Teht az LSOF keresse ugyanazt az eredmnyt adja, mint az lsof esetn.

4.4. A csomagrendszer hasznlata


rta: Chern Lee. FreeBSD alatt tbb klnbz mdon tudunk csomagokat hasznlni:

A sysinstall hasznlatn keresztl a fut rendszeren tudjuk megnzni a teleptett csomagokat, tudunk vele csomagokat telepteni vagy trlni. Ezzel rszletesebben a 2.10.11 Szakasz foglalkozik. A szakasz tovbbi rszben ismertetett egyb parancssoros csomagkezel segdprogramok.

4.4.1. Csomagok teleptse


A pkg_add(1) segdprogram segtsgvel telepthetnk FreeBSD-hez kszlt szoftvercsomagokat loklisan vagy a hlzaton lev egyik szerveren megtallhat llomnyokbl:

128

Fejezet 4. Alkalmazsok teleptse: csomagok s portok Plda 4-1. Csomagok letltse manulisan s teleptse loklisan
# ftp -a ftp2.FreeBSD.org

Connected to ftp2.FreeBSD.org. 220 ftp2.FreeBSD.org FTP server (Version 6.00LS) ready. 331 Guest login ok, send your email address as password. 230230This machine is in Vienna, VA, USA, hosted by Verio. 230Questions? E-mail freebsd@vienna.verio.net. 230230230 Guest login ok, access restrictions apply. Remote system type is UNIX. Using binary mode to transfer files.
ftp> cd /pub/FreeBSD/ports/packages/sysutils/

250 CWD command successful.


ftp> get lsof-4.56.4.tgz

local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz 200 PORT command successful. 150 Opening BINARY mode data connection for lsof-4.56.4.tgz (92375 bytes). 100% |**************************************************| 92375 00:00 ETA 226 Transfer complete. 92375 bytes received in 5.60 seconds (16.11 KB/s)
ftp> exit # pkg_add lsof-4.56.4.tgz

Ha nincsenek egyltaln helyben csomagjaink (pldul egy FreeBSD CD-kszletben), akkor a legjobban gy jrunk, ha hasznljuk a pkg_add(1) -r kapcsoljt. Ennek hatsra a segdprogram nmagtl meghatrozza a szksges llomnyformtumot s verzit, majd FTP-n keresztl letlti s telepti a csomagot.
# pkg_add -r lsof

Az imnti pldban a program mindenfle tovbbi beavatkozs nlkl letlti a megfelel csomagot s felteszi. Ha a kzponti helyett egy msik szervert szeretnnk hasznlni, fell kell brlnunk az alaprtelmezett belltsokat s ignyeinknek megfelelen be kell lltanunk a PACKAGESITE krnyezeti vltoz rtkt. A pkg_add(1) a fetch(3) programot hasznlja az llomnyok letltsre, amely pedig szmos egyb krnyezeti vltozt is gyel, mint pldul az FTP_PASSIVE_MODE, az FTP_PROXY s az FTP_PASSWORD. Ha tzfal mgtt vagyunk, ezek kzl nhnyat biztosan be kell majd lltanunk, vagy FTP/HTTP proxyt kell hasznlnunk. A fetch(3) man oldaln megtalljuk ezen vltozk teljes felsorolst. Figyeljk meg, hogy az lsof-4.56.4 helyett csak lsof-ot adtunk meg. Amikor ugyanis krjk a csomag letltst is, nem szabad verziszmot megadnunk. A pkg_add(1) mindig az alkalmazs legfrissebb verzijt fogja letltetni.
Megjegyzs: Ha a FreeBSD-CURRENT vagy FreeBSD-STABLE verzikat hasznljuk, a pkg_add(1) mindig az alkalmazs elrhet legfrissebb verzijt fogja letlteni. Ha azonban valamelyik -RELEASE verzit hasznljuk, a csomagnak az adott kiadshoz kszlt verzijt fogja leszedni. Ezt a mkdsi mdot a PACKAGESITE vltoz fellrsval viszont meg tudjuk vltoztatni. Pldul ha a FreeBSD 5.4-RELEASE vltozatval dolgozunk, a pkg_add(1) alaprtelmezs szerint a ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5.4-release/Latest/ cmrl fogja letlteni a csomagokat. Ha mi viszont a FreeBSD 5-STABLE csomagok letltst akarjuk elrni, lltsuk az PACKAGESITE rtkt a ftp://ftp.freebsd.org/pub/FreeBSD/i386/packages-5-stable/Latest/ cmre.

129

Fejezet 4. Alkalmazsok teleptse: csomagok s portok A csomagok .tgz s .tbz formtumokban kerlnek terjesztsre. Ezek az ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/ cmen, vagy pedig a FreeBSD CD-ken tallhatak meg. A 4 CD-bl ll kszlet (illetve a PowerPak stb.) minden CD-jn tallhatunk csomagokat a packages/ knyvtrban. A csomagokat trol knyvtr struktrja hasonl a /usr/ports knyvtrban kialaktott knyvtrfhoz. Minden kategrinak sajt knyvtra van, s minden csomag megtallhat az All (sszes) kategriban. A csomagrendszer knyvtrszerkezete teht megegyezik a portok sztosztsval, ezltal gy kpesek egymssal sszedolgozni a teljes csomag/port rendszer megformlsban.

4.4.2. A csomagok kezelse


A pkg_info(1) egy olyan segdprogram, amellyel kszteni lehet egy listt a teleptett csomagokrl, s emellett mg ms egyb informcikat tudhatunk meg rluk.
# pkg_info

cvsup-16.1 docbook-1.2 ...

A general network file distribution system optimized for CV Meta-port for the different versions of the DocBook DTD

A pkg_version(1) sszefoglalja az sszes teleptett csomag verzijt. Ezenkvl ssze is hasonltja a csomagok verzijt a portfban tallhat aktulis verzikval.
# pkg_version

cvsup docbook ...

= =

A msodik oszlopban lthat jelek utalnak a teleptett verzi a helyi portfban tallhat verzihoz viszonytott korra. Jel = < > ? Jelents A teleptett csomag verzija megegyzik a helyi portfban tallhat verzijval. A teleptett verzi a portfban levnl rgebbi. A teleptett verzi jabb, mint a portfban tallhat. (A helyi portfa valsznleg nem lett frisstve.) A teleptett csomag nem tallhat a portok kztt. (Ez akkor trtnhet meg, amikor pldul egy portot eltvoltottak a Portgyjtemnybl vagy tneveztk.) A csomagnak tbb verzija is jelen van. A teleptett csomag szerepel az indexben, de a pkg_version valamirt nem volt kpes sszehasonltani a verziszmt az indexben lev bejegyzssel.

* !

4.4.3. Csomagok trlse


Egy korbban mr teleptett csomag eltvoltshoz hasznljuk a pkg_delete(1) segdprogramot.

130

Fejezet 4. Alkalmazsok teleptse: csomagok s portok


# pkg_delete xchat-1.7.1

A pkg_delete(1) hasznlatnl szksg van a csomag teljes nevnek s verziszmnak megadsra. A fenti parancs teht nem mkdik, ha csak az xchat-et adjuk meg az xchat-1.7.1 helyett. A teleptett csomag verzijt azonban knnyedn kitallhatjuk a pkg_version(1) alkalmazsval. Esetleg egyszeren dzskerkaraktereket is hasznlhatunk:
# pkg_delete xchat\*

Ebben az esetben az sszes xchat-tel kezdd csomagot letrli.

4.4.4. Egyebek
A csomagokra vonatkoz sszes informci a /var/db/pkg knyvtrban tallhat. Az egyes csomagok lersa s hozzjuk teleptett llomnyok listja az ezen a knyvtron bell elhelyezked llomnyokban troldik.

4.5. A Portgyjtemny hasznlata


A most kvetkez szakaszokban megismerhetjk azokat az alapvet utastsokat, amelyekkel a Portgyjtemnyen keresztl tudunk programokat telepteni s eltvoltani. Az ehhez hasznlhat make targetek s krnyezeti vltozk rszletesebb lerst a ports(7) man oldaln lelhetjk meg.

4.5.1. A Portgyjtemny beszerzse


Mieltt brmelyik portot is tudnnk telepteni, elsknt magt a Portgyjtemnyt kell megszereznnk ez lnyegben a /usr/ports knyvtrban megtallhat Makefile llomnyok, javtsok s lersok gyjtemnye. A FreeBSD teleptse kzben a sysinstall rkrdez a Portgyjtemny teleptsre is. Ha erre nemet vlaszoltunk volna, a portok gyjtemnyt az albbi mdokon szerezhetjk be: A CVSup hasznlatval A CVSup protokoll hasznlatval viszonylag gyorsan el tudjuk rni s naprakszen tudjuk tartani a Portgyjtemny egy pldnyt. A CVSup hasznlatt alaposabban a A CVSup hasznlata cm fggelkben ismerhetjk meg.
Megjegyzs: A FreeBSD 6.2 vltozattl kezdve az alaprendszerben a CVSup protokollt a csup valstja meg. A FreeBSD korbbi vltozatnak hasznli ezt a programot a net/csup porton vagy csomagon keresztl tudjk telepteni.

Gondoskodjunk rla, hogy a /usr/ports res legyen a csup els futtatsa eltt! Ha ms forrsbl raktuk ide a Portgyjtemnyt, a csup nem fogja lenyesegetni az azta eltvoltott javtsokat. 1. Futtassuk a csup programot:
# csup -L 2 -h cvsup.FreeBSD.org /usr/share/examples/cvsup/ports-supfile

131

Fejezet 4. Alkalmazsok teleptse: csomagok s portok Itt rjuk t a cvsup.FreeBSD.org cmt a hozznk legkzelebb lev CVSup szerver cmre. Az sszes elrhet tkrszerver cmt a CVSup tkrzsek (A.6.7 Szakasz) cm rszben olvashatjuk.
Megjegyzs: Ha pldul el akarjuk kerlni a CVSup szerver megadst a parancssorban, akkor mindenkppen a ports-supfile llomnybl rdemes kszteni egy sajt verzit. 1. 2. 3. 4. Ebben az esetben root felhasznlknt msoljuk a /usr/share/examples/cvsup/ports-supfile llomnyt egy j helyre, pldul a /root knyvtrba vagy a sajt felhasznli knyvtrunkba. Szerkesszk t a ports-supfile llomnyt. rjuk t a CHANGE_THIS.FreeBSD.org rtket a hozznk legkzelebb tallhat CVSup szerverre. A CVSup tkrzsek (A.6.7 Szakasz) cm rszben megtalljuk az sszes ilyen tkrszervert. s most indtsuk el a csup parancsot az albbi mdon:
# csup -L 2 /root/ports-supfile

2.

A csup(1) parancs ksbbi futsa sorn mr letlti s rvnyesti az szlelt vltoztatsokat a sajt Portgyjtemnynkben, de a teleptett portokat nem fogja jrafordtani.

A Portsnap hasznlatval A Portsnap egy msik mdszert kpvisel a Portgyjtemny terjesztsre, a lehetsgeinek rszletesebb megismershez tekintsk t A Portsnap hasznlata cm szakaszt. 1. Tltsk le a Portgyjtemny tmrtett pillanatkpt a /var/db/portsnap knyvtrba. Ha akarjuk, ezutn a lps utn mr lekapcsoldhatunk az internetrl.
# portsnap fetch

2.

Ha mg csak elszr futtatjuk a Portsnapet, bontsuk ki az imnt letlttt llapotot a /usr/ports knyvtrba:
# portsnap extract

Ha viszont mr korbban is ltezett a /usr/ports knyvtrunk s most csak frisstjk, akkor helyette ezt a parancsot adjuk ki:
# portsnap update

A sysinstall hasznlatval Ebben az esetben a sysinstall nev programmal teleptjk a Portgyjtemnyt valamilyen telepteszkzrl. Ilyenkor azonban a kiads dtumnak megfelel, valsznleg rgebbi vltozat kerl fel. Ha rendelkeznk internet-hozzfrssel, akkor inkbb az elbb trgyalt mdszerek valamelyikt alkalmazzuk. 1.
root felhasznlknt adjuk ki a sysinstall parancsot, ahogy itt is lthatjuk:
# sysinstall

2. 3. 4. 5.

Menjnk le s lljunk meg a Congure (Belltsok) menpontnl, s nyomjunk Enter billentyt. Menjnk le s keressk meg a Distributions (Terjesztsek) menponot, majd nyomjuk meg az Enter billentyt. Menjnk le, vlasszuk ki a ports elemet a Szkz megnyomsval. Menjnk fel az Exit (Kilps) ponthoz, nyomjuk meg az Enter billentyt.

132

Fejezet 4. Alkalmazsok teleptse: csomagok s portok 6. 7. 8. Vlasszuk ki a teleptshez hasznlni kvnt eszkzt, mint pldul CD, FTP stb. Menjnk fel az Exit (Kilps) menpontig, majd nyomjuk meg az Enter billentyt. Vgezetl lpjnk ki a sysinstall programbl, aminhez nyomjuk meg az X billentyt.

4.5.2. Portok teleptse


A vz fogalma az els, amit a Portgyjtemnnyel kapcsolatban tisztzni kell. Dihjban sszefoglalva, egy port vza azon llomnyok legszkebb halmaza, amelyek elruljk a FreeBSD szmra, hogyan fordtsuk le hibamentesen s hogyan teleptsk az adott programot. Ehhez minden port vzban megtallhat:

Egy Makefile nev llomny. Ez tartalmazza azokat a klnbz utastsokat, amelyek megmondjk, hogyan kell lefordtani s hova kell telepteni a rendszernkben az adott alkalmazst. Egy distinfo nev llomny. Ebben tallhat informci a port lefordtshoz szksges llomnyok letltsrl, valamint a letlttt llomnyok ellenrzshez szksges (az md5(1) s sha256(1) programokkal szmolt) ellenrzsszegek. Egy files alknyvtr. Itt tallhatjuk meg azokat a javtsokat, amelyek alkalmazsval le tudjuk fordtani a programot FreeBSD-n is. Ezek a javtsok tbbnyire bizonyos llomnyok mdostsaira vonatkoz apr llomnyok formjban jelennek meg. Termszetknl fogva szveges formtumak, s ltalban olyanok szerepelnek bennk, hogy Trld a 10. sort vagy Vltoztasd meg a 26. sort erre: .... Ezeket a javtsokat eredetileg patcheknek (foltoknak) nevezik, vagy mskpp diffeknek (eltrseknek) is, mivel a diff(1) program segtsgvel hozzk ezeket ltre. Ez a knyvtr tartalmazhat tovbbi llomnyokat is portok elksztshez.

Egy pkg-descr nev llomny. Ez a program rszletesebb, gyakran tbbsoros bemutatsa. Egy pkg-plist nev llomny. Itt talljuk meg a port ltal teleptend sszes llomnyt. Ez egyben kzli a portrendszerrel is, hogy az eltvolts sorn mely llomnyokat kell majd trlnie.

Egyes portokban szerepelhetnek mg egyb llomnyok is, mint pldul a pkg-message. Ezeket az llomnyokat a portrendszer klnleges helyzetek kezelsre tartogatja. Ha mg tbbet kvnunk megtudni ezekrl az llomnyokrl, vagy magukrl a portokrl ltalnossgban, lapozzuk fel a FreeBSD porterek kziknyv (http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/porters-handbook/index.html)t. A port ugyan tartalmazza a forrskd lefordtshoz szksges utastsokat, de konkrtan a forrskdot nem. Ezt egy CD-rl vagy az internetrl tudjuk megszerezni. A forrskd ltalban a szerzje ltal kedvelt formban jelenik meg: ez gyakran egy gzip-pel tmrtett tar llomny, de lehet tmrtve mssal is, vagy ppen lehet tmrtetlen. A program forrskdjt, legyen akrmilyen formban is, nevezik distle-nak (terjesztsi llomnynak). A FreeBSD portok teleptsnek kt mdszert trjuk fel a kvetkezkben.
Megjegyzs: A portok teleptshez root felhasznlknt kell bejelentkeznnk.

FigyelemMieltt teleptennk brmelyik portot is, ajnlott frissteni a Portgyjtemnynket s ellenriznnk az adott portot a http://vuxml.freebsd.org cmen tallhat biztonsgi adatbzisban. Az jonnan teleptend alkalmazsok biztonsgi sebezhetsgeinek ellenrzst automatikuss is tehetjk a portaudit hasznlatval. Ez a segdeszkz is a Portgyjtemnyben tallhat (ports-mgmt/portaudit).

133

Fejezet 4. Alkalmazsok teleptse: csomagok s portok


rdemes minden port teleptse eltt letltennk a legfrissebb sebezhetsgi adatbzist a portaudit -F parancs kiadsval. Mellesleg az adatbzis rendszeres frisstse s ez a biztonsgi fellvizsglat a naponknt elvgzend biztonsgi ellenrzsek kzt is megjelenik. Ezekrl rszletesebben a portaudit(1) s periodic(8) man oldalakon olvashatunk.

A Portgyjtemny felttelezi, hogy mkd internet-hozzfrssel rendelkeznk. Amennyiben ez nem gy lenne, a terjesztsi llomnyokat, forrskdokat sajt magunknak kell bemsolnunk a /usr/ports/distfiles knyvtrba. A kezdshez lpjnk be a teleptend port knyvtrba:
# cd /usr/ports/sysutils/lsof

Miutn belptnk az lsof knyvtrba, lthatjuk a port vzt. A kvetkez lps a fordts, avagy a port buildelse (elksztse). Ezt egy szimpla make parancs kiadsval kezdemnyezhetjk. Miutn megtettk, valami ilyesmit kell tapasztalnunk:
# make

>> lsof_4.57D.freebsd.tar.gz doesnt seem to exist in /usr/ports/distfiles/. >> Attempting to fetch from ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/. ===> Extracting for lsof-4.57 ... [ide jn a kitmrts kimenete] ... >> Checksum OK for lsof_4.57D.freebsd.tar.gz. ===> Patching for lsof-4.57 ===> Applying FreeBSD patches for lsof-4.57 ===> Configuring for lsof-4.57 ... [ide jn a configure szkript kimenete] ... ===> Building for lsof-4.57 ... [ide jn a fordts kimenete] ...
#

A fordts befejeztvel visszakapjunk a parancssort. A soron kvetkez lps a port teleptse lesz. Ehhez mindssze egyetlen szval kell kiegsztennk a make parancs meghvst: ez a sz pedig az install (telept) lesz.
# make install

===> Installing for lsof-4.57 ... [a telepts kimenete kimarad] ... ===> Generating temporary packing list ===> Compressing manual pages for lsof-4.57 ===> Registering installation for lsof-4.57 ===> SECURITY NOTE: This port has installed the following binaries which execute with increased privileges.
#

134

Fejezet 4. Alkalmazsok teleptse: csomagok s portok Miutn ismt visszakaptuk a parancssort, mr futtatni is tudjuk a frissen teleptett alkalmazsunkat. Mivel az lsof programnak tovbb jogosultsgokra is szksge van, egy errl szl biztonsgi gyelmeztetst is lthatunk. A portok ltrehozsa s teleptse sorn rdemes gyelnnk az ehhez hasonl gyelmeztetsekre. A telepts befejeztvel nem rt trlnnk a fordtshoz felhasznlt alknyvtrat (work) is. Ezzel nemcsak a drga lemezterletet sproljuk meg, hanem megelzzk a port ksbbi frisstse sorn felmerl esetleges problmkat is.
# make clean

===>
#

Cleaning for lsof-4.57

Megjegyzs: Az eljrsbl kt lpst meg is tudunk takartani, ha egyszeren csak a make install clean parancsot adjuk ki az elbb hrom lpsben tagolt make, make install s make clean parancsok helyett.

Megjegyzs: Bizonyos parancsrtelmezk a PATH krnyezeti vltozban felsorolt knyvtrakban tallhat parancsokat gyorsttrban troljk, ezzel felgyorstva a hozzjuk tartoz vgrehajthat llomnyok keresst. Ha trtnetesen ilyen parancsrtelmezt hasznlnnk, az j portok teleptse utn szksgnk lehet a rehash parancs kiadsra, mivel enlkl nem tudjuk elrni a frissen teleptett parancsokat. Ezt a parancsot pldul a tcsh s a hozz hasonl parancsrtelmezkben tallhatjuk meg, az sh s rokonainl pedig a hash -r ennek a megfelelje. A pontos informcikat errl a tmrl a parancsrtelmeznk dokumentcijban lelhetjk meg.

Nmely kls DVD termk, mint pldul a FreeBSD Mall (http://www.freebsdmall.com)tl megrendelhet FreeBSD Toolkit, tartalmazhatnak terjesztsi llomnyokat. Ezek remekl hasznlhatak a Portgyjtemnnyel. Ehhez csatlakoztatnunk kell a DVD-t a /cdrom knyvtrba. Ettl eltr csatlakozsi pontok hasznlata esetn ne felejtsk el tlltani a CD_MOUNTPTS vltozt sem a make szmra. Ekkor a fordtshoz szksges llomnyokat gy fogja kezelni a rendszer, mintha a merevlemeznkn lennnek.
Megjegyzs: Vigyzzunk arra, hogy nhny portot nem lehet CD-n terjeszteni. Ez rszben azrt lehet, mert a szksges llomnyok letltshez, illetve jbli terjesztshez ki kell tlteni valamilyen regisztrcis nyomtatvnyt, vagy pedig egyb okok miatt. Teht ha olyan portot akarunk telepteni, ami nincs rajta a CD-n, mindenkppen rendelkeznnk kell internetkapcsolattal.

A portrendszer a fetch(1) segdprogramot hasznlja az llomnyok letltsre, amely gyelembevesz klnfle krnyezeti vltozkat, ilyenek tbbek kzt az FTP_PASSIVE_MODE, FTP_PROXY s az FTP_PASSWORD. Ha tzfal mgtt vagyunk, szksgnk lehet ezek nmelyiknek helyes belltsra, vagy FTP/HTTP proxyt kell hasznlnunk. A fetch(3) man oldala tartalmazza ezen vltozk teljes listjt. A make fetch azon felhasznlk szmra nyjt segtsget, akik nem csatlakoznak minden esetben a hlzatra. Egyszeren csak futtassuk le a knyvtrszerkezet legtetejrl (/usr/ports) ezt a parancsot s a szksges llomnyok letltdnek neknk. A parancs mkdik az alsbb szinteken is, pldul a /usr/ports/net knyvtrban. Azonban legynk tekintettel arra, hogy ha egy port fgg ms portoktl vagy fggvnyknyvtraktl, ez a parancs nem fogja letlteni a hozzjuk tartoz llomnyokat. Ilyenkor a fetch helyett hasznljuk a fetch-recursive targetet.
Megjegyzs: Ha a make parancsot egy felsbb szinten futtatjuk, akkor ezzel ltre tudjuk hozni az sszes vagy csak kategrinknt az sszes portot, hasonlan az elbb emltett make fetch mdszerhez. Ez azonban

135

Fejezet 4. Alkalmazsok teleptse: csomagok s portok


veszlyes, mivel egyes portok kizrjk msok hasznlatt. Emellett elfordulhat az is, hogy bizonyos portok ugyanazon a nven teleptenek tbb, tartalmukban klnbz llomnyt.

Nagyon ritkn addhat, hogy a felhasznlnak nem a MASTER_SITES ltal mutatott helyekrl kell beszereznie a szksges llomnyokat (innen tltdnek ugyanis le). A MASTER_SITES belltst az albbi paranccsal brlhatjuk fell:
# cd /usr/ports/knyvtr # make MASTER_SITE_OVERRIDE= \ ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch

Ebben a pldban a MASTER_SITES rtkt a ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ cmre vltoztattuk meg.


Megjegyzs: A portok nmelyike lehetv teszi (esetleg meg is kveteli), hogy engedlyezzk vagy letiltsuk a kszl program bizonyos elemeit hatkonysgi, biztonsgi vagy egyb testreszabsi irnyelvek mentn. Ilyen tbbek kzt a www/mozilla, a security/gpgme s a mail/sylpheed-claws. Ha elrhetek ilyen belltsi lehetsgek, arrl a rendszer egy zenetben tjkoztat minket.

4.5.2.1. Az alaprtelmezett knyvtrak fellbrlsa


Nha hasznos (vagy ktelez) lehet eltr munka- s clknyvtrak alkalmazsa. A WRKDIRPREFIX s a PREFIX vltozkkal ezek alaprtelmezseit tudjuk megvltoztatni. Pldul a
# make WRKDIRPREFIX=/usr/home/example/ports install

parancs a portot a /usr/home/example/ports knyvtrban fogja lefordtani s az eredmnyt a /usr/local knyvtrba telepti. A
# make PREFIX=/usr/home/example/local install

parancs hatsra a port a /usr/ports knyvtrban kszl el s a /usr/home/example/local knyvtrba telepl. Termszetesen a
# make WRKDIRPREFIX=../ports PREFIX=../local install

parancs tvzi az elbbi kettt (amelyet most tlsgosan is hossz lenne kirni, de vlheten sejthet belle az alaptlet). Lehetsg van ezen vltozkat a sajt krnyezetnkben is belltani. Ha erre lenne szksgnk, nzznk utna az ezzel kapcsolatos teendnek a parancsrtelmeznk man oldaln.

4.5.2.2. Az imake hasznlatrl


Bizonyos portok az (X Window System rszeknt megjelen) imake segdprogramra tmaszkodnak, ahol viszont nem mkdik a PREFIX tlltsa s mindenkppen a /usr/X11R6 knyvtrba akar telepteni. Ehhez hasonlan

136

Fejezet 4. Alkalmazsok teleptse: csomagok s portok egyes Perl portok gyelmen kvl hagyjk a PREFIX vltozt s kzvetlenl a Perl fjba kerlnek. Az ilyen portok esetn nagyon nehz vagy szinte lehetetlen betartatni a PREFIX hasznlatt.

4.5.2.3. A portok jrakongurlsa


Egyes portok lefordtsa eltt megjelenik egy ncurses alap men, ahol ki tudunk vlasztani bizonyos fordtsi belltsokat. Gyakran elfordul, hogy a port lefordtsa utn a felhasznlk szeretnk jra elhozni ezt a ment s megadni vagy kivenni bizonyos belltsokat. Erre tbb md is knlkozik. Egyik ilyen lehetsg az, ha belpnk a port knyvtrba s kiadjuk a make config parancsot, amivel lnyegben ismt elcsaljuk a belltsokat sszefoglal ment. Msik ilyen lehetsg a make showconfig alkalmazsa, amivel a porthoz tartoz sszes belltst tudjuk egyszerre megjelenteni. Ezek mellett mg hasznlhat a make rmconfig parancs is, amivel trlni tudjuk az sszes eddigi belltst s gy jrakezdhetjk a port kongurcijt. Ezek s a tbbi ilyen opci a ports(7) man oldalon kerl bvebb kifejtsre.

4.5.3. A portok eltvoltsa


Most mr tudjuk, miknt lehet portokat telepteni, azonban valsznleg mg az is rdekelhet minket, hogy miknt kell ezeket eltvoltani abban az esetben, ha pldul ksbb meggondolnnk magunkat velk kapcsolatban. A korbban teleptett pldaportot fogjuk eltvoltani (a gyelmetlenek kedvrt megemltjk, hogy ez az lsof volt). A portok eltvoltsa teljesen egybevg a csomagokval (errl a csomagokrl szl rszben beszltnk), mivel ekkor is hasznlhatjuk a pkg_delete(1) parancsot:
# pkg_delete lsof-4.57

4.5.4. A portok frisstse


Elszr is a pkg_version(1) parancs felhasznlsval listzzuk ki azokat a portokat, amik felett mr eljrt az id s a Portgyjtemnyben tallhat bellk jabb verzi:
# pkg_version -v

4.5.4.1. A /usr/ports/UPDATING llomny


Miutn frisstettk a Portgyjtemnynket, de mg mieltt megprblnnk akrmelyik portot is frissteni, rdemes egy pillantst vetnnk a /usr/ports/UPDATING llomnyra. Itt megtallhatak azok a problmk s a hozzjuk tartoz lpsek, amelyekkel a felhasznlknak a portok frisstse sorn szembe kell nznik, belertve az llomnyformtumok, a kongurcis llomnyok helynek megvltozst vagy egyb olyan mdostsokat, amik a korbbi verzikkal sszefrhetetlensget szlhetnek. Amennyiben az UPDATING llomny tartalma ellentmondana az itt olvasottakkal, mindig az UPDATING llomnyban lertak az irnyadak.

137

Fejezet 4. Alkalmazsok teleptse: csomagok s portok

4.5.4.2. Portok frisstse a portupgrade hasznlatval


A portupgrade nev segdprogramot a portok egyszerbb frisstsre talltk ki, s a ports-mgmt/portupgrade portban tallhat meg. A make install clean paranccsal brmelyik ms porthoz hasonlan telepthetjk:
# cd /usr/ports/ports-mgmt/portupgrade # make install clean

A pkgdb -F paranccsal fsltessk t a teleptett portok listjt, s javtsuk az ltala jelentett ellentmondsokat. rdemes rendszeresen elvgezni ezt, lehetleg minden frissts eltt. Miutn kiadtuk a portupgrade -a parancsot, a portupgrade nekilt frissteni az sszes elavult portot a rendszernkben. Ha minden egyes frisstst kln meg szeretnnk ersteni, hasznljuk a -i kapcsolt is.
# portupgrade -ai

Ha nem akarjuk az sszes portot frissteni, csupn egy bizonyos alkalmazst, hasznljuk a portupgrade pkgname paramterezst. A -R kapcsol megadsval a portupgrade elszr frissti az adott alkalmazs fggsgeit.
# portupgrade -R firefox

Ha a mvelet sorn csomagokat kvnunk hasznlni portok helyett, adjuk meg a -P kapcsolt. Ennek rvn a portupgrade megkeresi a csomagokat a PKG_PATH krnyezeti vltozban felsorolt knyvtrakban vagy ha itt nem tallja, letlti ezeket egy tvoli szerverrl. Amennyiben a csomagokat sem helyben, sem pedig a tvoli szerveren nem tallja, a portupgrade helyettk portokat fog hasznlni. Ilyenkor a portok hasznlatt a -PP kapcsol belltsval lehet elkerlni:
# portupgrade -PP gnome2

Csak a terjesztsi llomnyok (vagy a -P esetn csomagok) letltshez hasznljuk a -F kapcsolt. Mindezekrl rszletesebben a portupgrade(1) man oldalon olvashatunk.

4.5.4.3. Portok frisstse a Portmanager hasznlatval


A Portmanager egy msik hasznos segdprogram a portok knny frisstshez. A ports-mgmt/portmanager porton keresztl rhet el:
# cd /usr/ports/ports-mgmt/portmanager # make install clean

Hasznlatval az sszes teleptett port egyetlen paranccsal frissthet:


# portmanager -u

Ha a Portmanager minden egyes lpst kln meg kvnjuk ersteni, akkor a -ui kapcsolkat se felejtsk el megadni. A Portmanager emellett j portok teleptsre is hasznlhat. Eltren a make install clean parancsban megszokottaktl, a kivlasztott port sszes fggsgt mg a fordts s a telepts eltt fogja frissteni.
# portmanager x11/gnome2

Ha brmilyen gondot tapasztalnnk a kivlasztott port fggsgeit illeten, a Portmanagert felkrhetjk az sszes fggsg helyes sorrendben trtn jrafordtsra. Amikor befejezte, a problms portot is jra ltrehozza.

138

Fejezet 4. Alkalmazsok teleptse: csomagok s portok


# portmanager graphics/gimp -f

Bvebb informcikrt lsd portmanager(1).

4.5.4.4. Portok frisstse a Portmaster hasznlatval


A Portmaster szintn a portok frisstsre alkalmas segdprogram. A Portmaster esetben a hangsly az alaprendszerben is megtallhat eszkzk hasznlatn van (teht nem fgg semmilyen ms porttl) s a /var/db/pkg/ knyvtrban tallhat informcik alapjn dnti el, hogy milyen portokat kell frisstenie. A ports-mgmt/portmaster portbl rhet el:
# cd /usr/ports/ports-mgmt/portmaster # make install clean

A Portmaster a portokat az albbi ngy kategria valamelyikbe sorolja be:


Gykr (root) portok (nem fggenek semmitl, semmi sem fgg tlk) Trzs (trunk) portok (nem fggenek semmitl, de msok fggenek tlk) g (branch) portok (vannak fggsgeik s msok is fggenek tlk) Levl (leaf) portok (vannak fggsgeik, de semmi sem fgg tlk)

A kvetkez paranccsal le tudjuk krni az sszes teleptett portot s az -L kapcsolval frisstseket keresni hozzjuk:
# portmaster -L

===>>> Root ports (No dependencies, not depended on) ===>>> ispell-3.2.06_18 ===>>> screen-4.0.3 ===>>> New version available: screen-4.0.3_1 ===>>> tcpflow-0.21_1 ===>>> 7 root ports ... ===>>> Branch ports (Have dependencies, are depended on) ===>>> apache-2.2.3 ===>>> New version available: apache-2.2.8 ... ===>>> Leaf ports (Have dependencies, not depended on) ===>>> automake-1.9.6_2 ===>>> bash-3.1.17 ===>>> New version available: bash-3.2.33 ... ===>>> 32 leaf ports ===>>> 137 total installed ports ===>>> 83 have new versions available

Az sszes teleptett port egyetlen egyszer paranccsal frissthet:


# portmaster -a

139

Fejezet 4. Alkalmazsok teleptse: csomagok s portok


Megjegyzs: A Portmaster alaprtelmezs szerint minden egyes trlend korbbi portrl biztonsgi msolatot kszt. Amikor az j vltozat teleptse sikeresen lezajlott, akkor a Portmaster ezt a msolatot megsemmisti. A -b paramterrel azonban megkrhetjk, hogy ne trlje le a biztonsgi mentst. Az -i megadsval a Portmaster interaktv mdban indul el, s minden port frisstse eltt a felhasznl megerstst fogja krni.

Amennyiben valamilyen hiba lp fel a frissts folyamn, az -f opci megadsval krhetjk az sszes port frisstst s jrafordtst is:
# portmaster -af

A Portmaster hasznlatval j portokat is fel tudunk telepteni a rendszerre gy, hogy azok fggsgeit is igyekszik frissteni a lefordtsuk eltt:
# portmaster shells/bash

A tovbbi rszleteket a portmaster(8) man oldalon talljuk.

4.5.5. A portok trignye


A Portgyjtemny idvel egyre tbb helyet fog elfoglalni a merevlemeznkn. Miutn sikeresen ltrehoztunk s teleptettnk egy szoftvert a hozztartoz portbl, rdemes mindig eltakartanunk magunk utn a work knyvtrban menet kzben keletkezett tmeneti llomnyokat a make clean parancs hasznlatval. Az egsz Portgyjtemnyt egyetlen mozdulattal ezzel a paranccsal tudjuk vgigsepregetni:
# portsclean -C

Az id elrehaladtval a distfiles knyvtrban is rengeteg rgi forrs tud felhalmazdni. Ezeket eltvolthatjuk kzzel, vagy az albbi parancs segtsgvel trlhetjk az sszes olyan terjesztsi llomnyt, amelyekre mr egyetlen port sem hivatkozik:
# portsclean -D

Vagy trlhetjk az sszes olyan terjesztsi llomnyt, amelyre egyetlen pillanatnyilag felteleptett port sem hivatkozik a rendszernkben:
# portsclean -DD

Megjegyzs: A portsclean segdprogram a portupgrade programcsomag rsze.

Ne felejtsk el eltvoltani azokat a portokat, amikre mr nincs szksgnk a tovbbiakban. Ebben a feladatban egy jl hasznlhat segdeszkz lehet a segtsgnkre, a ports-mgmt/pkg_cutleaves port.

140

Fejezet 4. Alkalmazsok teleptse: csomagok s portok

4.6. Telepts utni teendk


Az j alkalmazs felteleptse utn minden bizonnyal szeretnnk elolvasni a hozz trstott dokumentcit, az egyedi belltsainknak megfelelen mdostani a kongurcis llomnyokat, engedlyezni a rendszerindts sorn trtn automatikus indtst (ha dmonrl lenne sz) s gy tovbb. Az egyes alkalmazsok belltshoz elvgzend lpsek nyilvnvalan egyedenknt eltrek. Azonban tudunk szolglni nhny ltalnos tanccsal vlaszknt az ilyenkor felmerl Na s akkor most mi legyen? krdsre:

Krdezzk meg a pkg_info(1) programtl, milyen llomnyok s hova kerltek fel a telepts sorn. Pldul, ha a SzuperCsomag 1.0.0-t raktunk fel, akkor a
# pkg_info -L SzuperCsomag-1.0.0 | less

parancs kilistzza az sszes llomnyt, amit a csomagbl felraktunk. Ezek kzl leginkbb a man/ knyvtrban levekre gyeljnk, mivel ezek lesznek az alkalmazs man oldalai. Ehhez hasonlan az etc/ knyvtrban a kongurcis llomnyok s a doc/ knyvtrban pedig a nagyobb llegzetvtel dokumentcik foglalnak helyet. Ha nem emlksznk pontosan r, hogy az alkalmazsok melyik verzijt is teleptettk, a
# pkg_info | grep -i SzuperCsomag

alak parancs megkeresi az sszes olyan csomagot, aminek a nevben szerepel a SzuperCsomag szvegrszlet. A fenti pldban termszetesen igny szerint vltoztassuk meg a SzuperCsomag szveget a tnyleges csomag nevre.

Ahogy sikerlt megtallnunk az alkalmazshoz tartoz man oldalakat, lapozzuk fel ezeket a man(1) segtsgvel. Ugyangy nzzk t a mellkelt minta kongurcis llomnyokat s az sszes elrhet dokumentcit. Ha az alkalmazsnak van sajt honlapja, kutassunk ott is informcik utn, olvassuk el a gyakran ismtelt krdseket s gy tovbb. Ha nem tudnnk pontosan a honlap cmt, a
# pkg_info SzuperCsomag-1.0.0

kimenetbl knnyen elkerthet. Itt egy WWW: kezdet sort kell keresnnk (mr amennyiben ltezik), amit az alkalmazs honlapjnak cme kell kvessen.

A rendszerrel egytt indtand portok (ilyenek tbbek kzt az internetes szolgltatsok), ltalban a /usr/local/etc/rc.d knyvtrba rakjk a sajt indtszkriptjket. rdemes leellenrizni ezt a szkriptet s az ignyeinknek megfelelen mdostani, tnevezni. A Szolgltatsok indtsa cm szakaszban ezt rszleteiben is megismerhetjk.

4.7. Teend a srlt portokkal


Ha vletlenl rakadnnk egy olyan portra, ami nem mkdik megfelelen, nagyjbl a kvetkezket tudjuk tenni: 1. Dertsk ki a Hibajelentsek adatbzis (http://www.FreeBSD.org/support.html#gnats)bl, hogy kszl-e mr javts az adott porthoz. Ha igen, akkor annak befejezse utn mr kpesek lesznk hasznlni. 2. Krjk meg a port karbantartjt, hogy segtsen. A karbantart elrhetsgnek feldertshez gpeljk be a make maintainer parancsot, vagy keressk meg a Makefile llomnyban a karbantart e-mail cmt. Ne felejtsk el neki megemlteni a levlben a port nevt s verzijt (vagyis mindenkppen kldjk el a $FreeBSD: sort a Makefile llomnybl) s a parancs kiadstl a hiba felbukkansig tart kimenetet.

141

Fejezet 4. Alkalmazsok teleptse: csomagok s portok


Megjegyzs: Nmely portokat nem egyedlll szemlyek tartanak karban, hanem egy levelezsi lista (http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/mailing-list-faq/article.html). A legtbbjk neve, ha nem is mind, nagyjbl ilyen alak: <freebsd-listanv @FreeBSD.org>. Egy ilyen jelleg krds megfogalmazsa sorn ezt is vegyk gyelembe! Kifejezetten a <ports@FreeBSD.org> karbantartval rendelkez portoknak nincs rendes gazdja. A hozzjuk kapcsold javtsok s mindenfle segtsg, tlet errl a levelezsi listrl rkeznek. Ilyen esetekben szmtunk az nkntes segtkre!

Ha nem kapunk semmilyen vlaszt, a hiba bejelentsre hasznlhatjuk a send-pr(1) programot is (errl bvebben lsd a FreeBSD-s hibajelentsek rsa (http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/problem-reports/article.html) cm cikket). 3. Javtsuk meg mi magunk! A porterek kziknyve (http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/porters-handbook/index.html) rszletesen taglalja a portok bels felptst, gy onnan elindulva akr magunktl is meg tudunk javtani egy esetlegesen srlt portot, vagy be is kldhetjk a sajtunkat! 4. Tltsk le a porthoz tartoz csomagot a hozznk legkzelebb lev FTP oldalrl. A kzponti csomaggyjtemny az ftp.FreeBSD.org cmen, a packages nev knyvtrban (ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/) tallhat, de mieltt ide fordulnnk, nzzk meg a hozznk legkzelebb lev tkrszervert (http://mirrorlist.FreeBSD.org/) is! Ha egy csomagot gy teleptnk, akkor tbb esllyel fog mkdni s radsul mg jval gyorsabb is. A csomag teleptsre hasznljuk a pkg_add(1) programot.

142

Fejezet 5. Az X Window System


Az X.Org X11 szerverhez igaztotta: Ken Tom s Marc Fonvieille.

5.1. ttekints
A FreeBSD az X11-en keresztl nyjt a felhasznlk szmra hatkony grakus felhasznli felletet. Az X11 az X Window System szabadon elrhet vltozata, melyet az Xorg s az XFree86 egyarnt implementl (valamint ms egyb programcsomagok is, amelyeket itt viszont nem trgyalunk). A FreeBSD verzii a FreeBSD 5.2.1-RELEASE kiadssal bezrlag a The XFree86 Project, Inc. ltal kiadott X11 szervert, az XFree86-ot tartalmazzk alaprtelmezs szerint. A FreeBSD 5.3-RELEASE kiadstl kezdve az X11 alaprtelmezett s hivatalos vltozata az Xorg, melyet az X.Org alaptvny a FreeBSD-hez nagyon hasonl licenc alatt fejleszt. A FreeBSD-hez kereskedelmi X szerverek is elrhetek. Ebben a fejezetben az X11 teleptst s belltst jrjuk vgig, mikzben a hangslyt az Xorg 7.4 kiadsra helyezzk. Az XFree86 (vagyis a FreeBSD olyan rgebbi vltozata, ahol az XFree86 az alaprtelmezett X11 rendszer) vagy az Xorg korbbi kiadsainak belltsval kapcsolatban mindig tallhatunk informcikat a FreeBSD kziknyv http://docs.FreeBSD.org/doc/ cmen tallhat archivlt vltozataiban. Az X11 ltal tmogatott megjelentkrl bvebben az Xorg (http://www.x.org/) honlapjn olvashatunk. A fejezet elolvassa sorn megismerjk:

az X Window System klnbz alkotelemeit, s hogy ezek miknt mkdnek egytt; hogyan teleptsk s lltsuk be az X11-et; hogyan teleptsk s hasznljuk a klnfle ablakkezelket; hogyan hasznljunk TrueType bettpusokat az X11-ben; hogyan lltsuk be rendszernkn a grakus bejelentkezst (XDM).

A fejezet elolvasshoz ajnlott:

kls programok teleptsnek ismerete (4 fejezet).

5.2. Az X ttekintse
Az X hasznlata elsre megdbbent lehet azok szmra, akik olyan ms grakus krnyezetekben jratosak, mint pldul a Microsoft Windows vagy a Mac OS. Mg az X minden komponensnek rszleteit s azok kapcsolatt nem szksges megrteni a hasznlatukhoz, nhny alapvet ismeret velk kapcsolatban elsegti kiaknzni az X erssgeit.

143

Fejezet 5. Az X Window System

5.2.1. Mirt X?
Az X ugyan nem az els UNIX-ra rdott ablakoz rendszer, de fajtjt tekintve a legnpszerbb. Az X eredeti fejlesztcsapata az X eltt egy msik ablakoz rendszeren dolgozott, aminek a neve W (mint Window, azaz ablak) volt. Az X pedig az arab bcben pontosan ezt a bett kveti. Az X-et hvhatjuk X-nek, X Window System-nek, s mg sok ms nven. Elfordulhat azonban, hogy az X Windows elnevezs srt lehet egyes emberek szmra. Errl tbbet a X(7) man oldalon tudhatunk meg tbbet.

5.2.2. Az X kliens-szerver modellje


Az X-et mr az elejtl kezdve hlzatkzpontnak terveztk, s ezrt az n. kliens-szerver modellt hasznlja. Az X modelljben az X szerver egy olyan szmtgpen fut, amelyhez billentyzetet, monitort s egeret csatlakoztattunk. A szerver feladatai kztt talljuk a megjelents irnytst az egrrl s a billentyzetrl, valamint a tbbi bemeneti s kimeneti eszkzrl rkez adatok feldolgozst s gy tovbb (pldul a digitlis tblk is hasznlhatak beviteli eszkzknt, illetve egy projektor is lehet megjelent). Mindegyik X alkalmazs (mint pldul az XTerm vagy a Netscape) egy kliens. A kliens zeneteket kld a szervernek, pldul Krlek, rajzolj egy ablakot ezekre a koordintkra, s a szerver pedig olyan zeneteket kld, mint pldul A felhasznl az OK gombra kattintott. Az otthoni vagy a kisebb irodai krnyezetben az X szerver s az X kliensek ltalban ugyanazon a szmtgpen futnak. Emellett azonban nagyon is lehetsges, hogy az X szerver egy kevsb ers gpen fusson, mikzben az X alkalmazsok (a kliensek) az irodt kiszolgl ersebb s drgbb gpen fussanak. Egy ilyen kongurciban az X kliensei s szerverei kzti kommunikci a hlzaton keresztl zajlik. Jegyezzk meg, hogy az X szerver az a szmtgp, ahol a monitor s a billentyzet tallhat, az X kliensek pedig azok a programok, amelyek az ablakokat jelentik meg. A protokollban semmi sem vrja el, hogy a kliens s a szerver ugyanazon az opercis rendszeren vagy ppen ugyanolyan tpus szmtgpen fusson. Ezrt akr Microsoft Windows-on vagy Apple Mac OS-en is indthatunk X szervert, s szmos klnbz szabad valamint kereskedelmi alkalmazs kpes pontosan erre.

5.2.3. Az ablakkezel
Az X kialaktsnak lozja leginkbb a UNIX kialaktsnak lozjhoz hasonlthat, vagyis eszkzket, ne szablyokat. Ez teht azt jelenti, hogy az X nem kti meg, miknt oldjuk meg vele a feladatokat. Helyette klnfle eszkzket ad a felhasznl kezbe, s onnantl a sajt felelssge eldnteni, hogyan hasznlja ki ezeket. Ez a loza az X-ben egszen addig terjed, hogy nem rgzti, hogyan nzzenek ki a kpernyn megjelen ablakok, miknt kell ezeket mozgatni az egrrel, milyen billentyk lenyomsval kzlekedhetnk az ablakok kztt (ami a Microsoft Windows esetn az Alt+Tab), hogyan nzzen ki az ablakok cmsora, a bezrs funkcinak legyen-e rajtuk gombja s gy tovbb. Ehelyett az X az sszes ezzel jr felelssget tadja az ablakkezel (window manager) rszre. Tucatnyi ilyen ablakkezelt tallhatunk az X-hez: AfterStep, Blackbox, ctwm, Enlightenment, fvwm, Sawsh, twm, Window Maker s mg sok ms. Ezen ablakkezelk mindegyike ms s ms kinzetet s hangulatot knl fel: nmelyikk tmogatja a virtulis munkaasztalok (virtual desktop) ltrehozst; nhnyuk pedig megengedi, hogy mi magunk lltsuk be az asztal irnytshoz hasznlt gombkombincikat; kztk tallhatunk olyat is, amelynek van Start gombja vagy ehhez hasonl eszkze; nmelyek kzlk ismerik a tmkat, aminek rvn a kinzetk s

144

Fejezet 5. Az X Window System hangulatuk teljesen megvltoztathat. Az emltett ablakkezelk s trsaik a Portgyjtemny x11-wm kategrijban rhetek el. Radsul a KDE s a GNOME munkakrnyezetek mindegyiknek van sajt integrlt ablakkezelje. Az egyes ablakkezelk mellesleg eltr belltsi mdszerrel rendelkeznek. Nmelyikk kzzel sszelltott kongurcis llomnyt vr, msok pedig kln grakus eszkzket tartalmaznak erre a feladatra is. Az egyikk (a Sawsh) kongurcis llomnyt pldul a Lisp programozsi nyelv egyik dialektusban kell megrni.
Az irnyts tadsa: Az ablakkezel msik fontos feladata lekezelni, hogy az egrrel miknt tudjuk tadni az ablakok kztt az irnytst, vagyis a fkuszt (focus policy). Minden ablakkezel rendszerben el kell tudnunk valahogy dnteni, hogy a berkez billentyletsek melyik ablakhoz vndoroljanak, valamint az ilyen rtelemben aktv ablakot valamilyen mdon jeleznnk is kell. Ennek egyik ismert mdszere a fkusz kattintsra megolds, amely modellt a Microsoft Windows rendszerekben tallhatjuk meg. Itt az ablakok akkor vlnak aktvv, amikor rjuk kattintunk az egrrel. Az X viszont nem ktelezi el magt egyik vezrlstadsi mdszer mellett sem, helyette az ablakkezel fogja majd eldnteni, melyik ablak birtokolja a fkuszt az adott pillanatban. A klnbz ablakkezelk klnbz fkuszvezrlsi technikkat ismernek. Mindegyikk ismeri a kattintsos fkuszt, azonban a tbbsgk emellett mg sok ms megoldst is felknl. A legnpszerbb fkuszvezrlsi elvek: A fkusz az egeret kveti (focus-follows-mouse) Az egrmutat alatt tallhat ablak kapja meg fkuszt. Az rintett ablaknak nem kell felttlenl az sszes tbbi felett elhelyezkednie. Ilyenkor a fkuszt egyszeren gy vihetjk t egy msik ablakra, ha rmutatunk az egrrel, amihez mg kattintanunk sem kell. Hanyag fkusz (sloppy-focus) Ez az elv az elbbi apr kibvtse. Amikor a fkusz az egrmutatt kveti, s az egeret a leghts ablakra (vagy a httrre) visszk, akkor valjban egyik ablak sem birtokolja az irnytst, ezrt a lettt billentyk elvesznek. A hanyag fkusz hasznlatval azonban az irnyts csak abban az esetben kerl t mshov, amikor egy msik ablakba lpnk be, nem pedig akkor, amikor a jelenlegibl lpnk ki. Fkusz kattintsra (click-to-focus) Az aktv ablakot egy egrkattintssal vlasztjuk ki. Ilyenkor a kivlasztott ablak felemelkedhet s a tbbi eltt jelenhet meg. Ezt kveten az sszes irnyts ebbe az ablakba vndorol, mg abban az esetben is, amikor egy msik ablakra visszk az egrmutatt. Sok ablakkezel ismer ezekbl klnbz variciikat, valamint rajtuk kvl ms egyb vezrlsi elvet is. Ezzel kapcsolatban az adott ablakkezel dokumentcijbl derthetnk ki a legtbbet.

5.2.4. Widgetek
Az X megkzeltse, vagyis az eszkzk s nem a szablyok felsorakoztatsa, kiterjed az egyes alkalmazsokban lthat klnfle widgetekre is. A widget (window gadget, vagyis widget, de magyarul sok helyen a mtyrke) elnevezst azokra a felhasznli felleten megjelen elemekre hasznljuk, amelyekkel valamilyen mdon kapcsolatba lphetnk: kattinthatunk rjuk,

145

Fejezet 5. Az X Window System piszklhatjuk ezeket. Ilyenek tbbek kzt a gombok, jellngyzetek, rdigombok, ikonok, listk s a tbbi. A Microsoft Windows nyelvn ezeket vezrlknek (control) nevezzk. A Microsoft Windows s az Apple Mac OS ezen a tren nagyon merev. Az alkalmazsok fejlesztinek gondoskodniuk kell rla, hogy a programjaik az elterjedt kinzetet s kialaktst kvessk. Az X viszont nem vrja az egysges vezrleszkzk vagy grakai stlus hasznlatt. Ennek eredmnyekppen az X cseppet sem kvnja meg az alkalmazsoktl, hogy kzs kinzetben vagy viselkedsben osztozzanak. Termszetesen lteznek npszer eszkzrendszerek s azoknak szmos varicija is kialakult, belertve az MIT Athenajt, a Motifot (amirl a Microsoft Windows eszkzeit is mintztk, az sszes ferde let s a hrom szrkernyalatot), az OpenLookot s trsaikat. Napjaink X alkalmazsai a KDE fejlesztshez hasznlt Qt, esetleg a GNOME-hoz hasznlt GTK+ knyvtrbl szrmaz, korszer kinzet widgeteket tartalmaznak. Ebbl a szempontbl meggyelhet egyfajta tendencia a grakus UNIX-alkalmazsok felptsben, ami minden bizonnyal megknnyti a kezd felhasznlk tjkozdst.

5.3. Az X11 teleptse


Az X11 FreeBSD-n alaprtelmezett implementcija az Xorg. Az Xorg az X.Org alaptvny ltal kiadott, az X Window Systemet megvalst nylt forrskd X szerver. Az Xorg az XFree86 4.4RC2 s X11R6.6 kdja alapjn kszlt. A FreeBSD Portgyjtemnyben jelenleg az Xorg 7.4 vltozata rhet el. Az Xorg-ot a Portgyjtemnybl gy tudjuk lefordtani, majd telepteni:
# cd /usr/ports/x11/xorg # make install clean

Megjegyzs: Az egsz Xorg lefordtshoz legalbb 4 GB szabad helyre van szksgnk.

Az X11-et termszetesen telepthetjk kzvetlenl csomagok segtsgvel is. A pkg_add(1) hasznlatval telepthet binris csomagok is elrhetek az X11-hez. Amikor a pkg_add(1) programra bzzuk a csomag letltst, ne adjunk meg verziszmot, a pkg_add(1) ugyanis mindig automatikusan az alkalmazs legfrissebb verzijt tlti le. Az Xorg csomagjnak letltshez s teleptshez egyszeren csak ennyit rjunk be:
# pkg_add -r xorg

Megjegyzs: A fentebb megadott pldk a teljes X11 rendszert telepteni fogjk, belertve a szervereket, klienseket, bettpusokat stb. Az X11 egyes rszeihez kln tallhatunk csomagokat s portokat.

A fejezet tovbbi rszben szt ejtnk az X11, valamint egy irodai hasznlatra alkalmas munkakrnyezet belltsrl.

146

Fejezet 5. Az X Window System

5.4. Az X11 belltsa


rta: Christopher Shunway.

5.4.1. Mieltt nekiltnnk


Az X11 belltsa eltt a clrendszer kvetkez adataira lesz szksgnk:

A monitor jellemzi A videokrtya chipkszlete A videokrtya memrijnak mrete

Az X11 a monitor jellemzibl llaptja meg, hogy milyen felbontsban s frisstsi frekvencival mkdtesse azt. Ezek ltalban a monitorhoz tartoz dokumentcibl vagy a gyrt honlapjrl derthetek ki. Igazbl kt rtkre van szksgnk: a fggleges s a vzszintes frisstsi frekvencira. A videokrtya chipkszlete hatrozza meg, hogy az X11 melyik meghajtjn keresztl kommunikl a grakus hardverrel. Ez a legtbb chipkszlet esetn magtl megllapthat, de ennek ellenre mgis j tisztban lenni ezzel arra az esetre, ha az automatikus felismers mgsem mkdne. A grakus krtya memrijnak mrete hatrozza meg a rendszer ltal kihasznlhat felbontst s sznmlysget. Ezt fontos tudunk ahhoz, hogy ismerjk a rendszernk korltait.

5.4.2. Az X11 belltsa


Az Xorg 7.3-as vltozatban gyakran mindenfle kongurcis llomny hasznlata nlkl egyszeren csak adjuk ki a kvetkez parancsot:
% startx

A Xorg 7.4 verzijtl kezdden a szmtgpnkhz csatlakoztatott egerek s billentyzetek HAL segtsgvel automatikusan felismerhetek. Ennek megfelelen a x11/xorg port fggsgeknt teleptdni fognak a sysutils/hal s devel/dbus portok, viszont az /etc/rc.conf llomnyban a kvetkez sorok hozzadsval kln engedlyeznnk kell mg ezeket:
hald_enable="YES" dbus_enable="YES"

Ezeket a szolgltatsokat mg az Xorg belltsa eltt el kell indtanunk (a parancssorbl manulisan vagy a rendszer jraindtsval). Bizonyos hardvereszkzk esetn az automatikus felismers mg nem mkdik megbzhatan vagy nem jl lltja be az rtkeket. Ilyen esetekben kzzel kell megadnunk a szksges belltsokat.
Megjegyzs: A klnbz munkakrnyezetek, mint pldul a GNOME, a KDE vagy ppen az Xfce ltalban tartalmaznak olyan segdprogramokat, amelyekkel a felhasznl knnyedn be tudja lltani a megjelents paramtereit, tbbek kzt a kperny felbontst. Teht ha az alaprtelmezsek nem megfelelek, viszont hasznlni akarunk majd valamilyen munkakrnyezetet is, akkor egyszeren csak teleptsk az adott krnyezetet s a hozztartoz eszkzn keresztl lltsuk be a megjelentst.

147

Fejezet 5. Az X Window System

Az X11 belltsa egy tbblpcss folyamat. Els lpsnk egy alap kongurcis llomny sszelltsa lesz. Rendszeradminisztrtorknt adjuk ki az albbi parancsot:
# Xorg -configure

Ennek segtsgvel az X11 xorg.conf.new nven ltrehozza a kongurcis llomny vzt a /root knyvtrban (akr a su(1) parancsot hasznljuk, akr kzvetlenl gy jelentkeznk be, az gy rklt rendszeradminisztrtori szerepkr maga utn vonja a $HOME knyvtr tlltst is). Az X11 megprblja megkeresni a clrendszerben elrhet grakus eszkzket, s ltrehozni egy olyan kongurcis llomnyt, amely az szlelt eszkzkhz tartoz meghajtkat tlti be. A kvetkez lpsnk legyen az imnt ltrehozott bellts kiprblsa, amin keresztl ellenrizhetjk, hogy az Xorg tnyleg kpes mkdni a clrendszer grakus eszkzn. Az Xorg 7.3 s azt megelz vltozataiban ezt gy tehetjk meg:
# Xorg -config xorg.conf.new

A Xorg 7.4 s ksbbi vltozataiban a prba eredmnye egy fekete kperny lesz, amely meglehetsen megneheztheti az X11 helyes mkdsnek megllaptst. A -retro kapcsol hasznlatval azonban tovbbra is elrhetjk a korbbi verzikban megszokott viselkedsi mdot:
# Xorg -config xorg.conf.new -retro

Ha ezutn a kpernyn egy fekete-fehr rcsot ltunk egy X alak egrmutatval a kzepn, akkor j a bellts. A prbt gy szakthatjuk meg, ha elszr a Ctrl+Alt+Fn billentyk egyttes lenyomsval tvltunk valamelyik virtulis konzolra (pldul az F1 esetn az elsre), majd megnyomjuk a Ctrl+C gombokat.
Megjegyzs: Az Xorg korbbi vltozataiban a 7.3 verziig bezrlag a Ctrl+Alt+Backspace billentykombincival tudjuk lelltani a mkdst. Amennyiben erre tovbbra is szksgnk lenne, a 7.4 s ksbbi vltozatokban ezt gy tudjuk engedlyezni, ha a begpeljk a kvetkez parancsot egy X terminlablakban:
% setxkbmap -option terminate:ctrl_alt_bksp

Egy msik lehetsges megolds, ha a billenytzet belltshoz ltrehozunk a /usr/local/etc/hal/fdi/policy knyvtrban egy kongurcis llomnyt x11-input.fdi nven a hald szmra. Ebben az llomnyban a kvetkezknek kell szerepelnie:
<?xml version="1.0" encoding="ISO-8859-2"?> <deviceinfo version="0.2"> <device> <match key="info.capabilities" contains="input.keyboard"> <merge key="input.x11_options.XkbOptions" type="string">terminate:ctrl_alt_bksp</merge> </match> </deviceinfo>

A hald a szmtgp jraindtsval fogja majd beolvasni ezt az llomnyt. Ilyenkor az xorg.conf.new llomny ServerLayout vagy ServerFlags szekcijhoz vegyk mg hozz az albbi sort:
Option "DontZap" "off"

148

Fejezet 5. Az X Window System

Ha az egr mg nem mkdne, mindenkppen be kell lltanunk a tovbblps eltt. Ezzel kapcsolatban a FreeBSD teleptsrl szl fejezetben lev 2.10.10 Szakaszt ajnljuk elolvassra. Fontos megemlteni, hogy az Xorg 7.4 vltozattl kezdden az xorg.conf InputDevice szekciit az eszkzk automatikusan szlelt belltsai fellbrljk. A rgebbi vltozatok viselkedst gy tudjuk visszanyerni, ha a ServerLayout s ServerFlags szekcik valamelyikhez hozzadjuk az albbi sort:
Option "AutoAddDevices" "false"

Ezt kveten a beviteli eszkzk a lehetsges belltsi opcik (pldul a billentyzet-kioszts vltsa) mentn a korbbiakban megszokott mdon kongurlhatak.
Megjegyzs: Ahogy arrl korbban sz esett, a 7.4 verzitl kezdden a hald magtl rzkelni fogja a szmtgpre csatlakoztatott billentyzetet. Elfordulhat, hogy a billentyzet tpusa vagy ppen kiosztsa nem lesz megfelel. Ennek belltsra tbbnyire a npszerbb munkakrnyezetek, mint pldul a GNOME, KDE vagy Xfce tartalmaznak kln segdprogramot. A setxkbmap(1) vagy a hald kongurcis szablyval azonban akr kzvetlenl is meg tudjuk vltoztatni a billentyzethez trstott tulajdonsgokat. Pldul ha egy 102 gombos billentyzetet szeretnnk hasznlni francia kiosztssal, akkor ehhez a /usr/local/etc/hal/fdi/policy knyvtrban kell ltrehoznunk egy x11-input.fdi nev llomnyt a hald rszre. Ebben az llomnyban szerepeljenek az albbi sorok:
<?xml version="1.0" encoding="ISO-8859-2"?> <deviceinfo version="0.2"> <device> <match key="info.capabilities" contains="input.keyboard"> <merge key="input.x11_options.XkbModel" type="string">pc102</merge> <merge key="input.x11_options.XkbLayout" type="string">fr</merge> </match> </device> </deviceinfo>

Ha ltezik mr ilyen llomnyunk, akkor a billentyzet megfelel belltshoz egyszeren csak msoljuk ki a fenti sorokat s adjuk hozz. Indtsuk jra a szmtgpet, hogy a hald beolvassa az llomnyt. Ugyanezt egy X terminlbl is knyelmesen el tudjuk vgezni:
% setxkbmap -model pc102 -layout fr

A paramterknt megadhat billentyzettpusokat s -kiosztsokat a /usr/local/share/X11/xkb/rules/base.lst llomnyban tallhatjuk meg.

Ezutn az zlsnknek megfelelen hangoljuk be az xorg.conf.new llomnyt, nyissuk meg egy szvegszerkesztben, pldul az emacs(1)-ben vagy az ee(1)-ben. Elsknt adjuk meg a clrendszerhez csatlakoztatott monitor frekvencijra vonatkoz adatokat. Ezek ltalban a fggleges s a vzszintes frissts rtkei, melyeket az xorg.conf.new llomny "Monitor" szakaszban (Section) kell feltntetni:
Section "Monitor" Identifier VendorName ModelName

"Monitor0" "A monitor gyrtja" "A monitor tpusa"

149

Fejezet 5. Az X Window System


HorizSync VertRefresh EndSection 30-107 48-120

A kongurcis llomnybl valsznleg csak a HorizSync s VertRefresh kulcsszavak fognak hinyozni. Amennyiben ez tnyleg gy lenne, a megfelel vzszintes frissts rtkt a HorizSync kulcssz utn, a hozztartoz fggleges frissts rtkt pedig a VertRefresh kulcssz utn kell hozztennnk a szakaszhoz. Az imnti pldban mr megadtuk a clrendszer monitornak frisstsi rtkeit. Az X megengedi, hogy DPMS (Energy Star) energiagazdlkodsi szabvnyt ismer monitorok lehetsget is kihasznljuk. A xset(1) program vezrli a monitorok ki- s bekapcsolst, s segtsgvel kszenlti vagy energiatakarkos zemmdba tudjuk helyezni azokat. Ha engedlyezni kvnjuk a monitorunk DPMS lehetsgeit, egyszeren csak tegyk hozz az albbi sort a monitorunkat ler szakaszhoz:
Option "DPMS"

Ha mr a xorg.conf.new kongurcis llomny szerkesztsvel vagyunk elfoglalva, vlasszuk ki szmunkra kedvez alaprtelmezett felbontst s sznmlysget is. Ezt a "Screen" (Kperny) nev szakaszban tehetjk meg:
Section "Screen" Identifier "Screen0" Device "Card0" Monitor "Monitor0" DefaultDepth 24 SubSection "Display" Viewport 0 0 Depth 24 Modes "1024x768" EndSubSection EndSection

A DefaultDepth kulcssz utn adjuk meg a rendszer alaprtelmezett sznmlysgt. Ezt ksbb az Xorg(1) -depth paramtervel brlhatjuk fell a parancssorbl. A Modes kulcssz utn jelennek meg azok a felbontsok, amelyekben az adott sznmlysg elrhet. Itt csak olyan VESA szabvny mdok jelenhetnek meg, amelyet a clrendszer grakus eszkze is tmogat. A fenti pldban az alaprtelmezett sznmlysg kppontonknt huszonngy bit, s ebben a sznmlysgben az elfogadott felbonts 1024-szer 768 pixel. Vgezetl mentsk el a szerkesztett kongurcis llomnyt s prbljuk ki a korbban lert mdszer szerint.
Megjegyzs: A hibakeress sorn maguk az X11 naplllomnyai is hasznos eszkznek bizonyulhatnak, mivel ezek minden olyan eszkzrl tartalmaznak informcit, amelyekhez az X11 szervernek sikerlt csatlakoznia. Az Xorg naplit a /var/log/Xorg.0.log elnevezst kvet llomnyokban talljuk meg. A konkrt naplk nevei Xorg.0.log-tl Xorg.8.log-ig s gy tovbb terjedhetnek.

Ha minden a legnagyobb rendben haladt eddig, a kongurcis llomnyt el kell tennnk egy olyan kzponti helyre, ahol az Xorg(1) kpes lesz majd megtallni. Ez a hely ltalban az /etc/X11/xorg.conf vagy a /usr/local/etc/X11/xorg.conf.
# cp xorg.conf.new /etc/X11/xorg.conf

150

Fejezet 5. Az X Window System Az X11 belltst ezzel befejeztk. Az Xorg innentl elindthat a startx(1) segdprogram vagy az xdm(1) hasznlatval.

5.4.3. Tmk idsebbeknek s haladknak


5.4.3.1. Az i810 grakus chipkszlet belltsa
Az Intel i810 integrlt chipkszletnek meghajtshoz szksgnk lesz az agpart nev AGP programozsi felletre az X11-ben. Errl az agp(4) meghajt man oldaln olvashatuk tbbet. Ennek segtsgvel ezt a hardvert is a tbbi grakus krtyhoz hasonlan llthatjuk be. Vegyk gyelembe azonban, hogy az agp(4) meghajtt beptve nem tartalmaz rendszermaggal fut rendszerekben a kldload(8) paranccsal utlag mr nem tudjuk betlteni! Ezt a meghajtt mr a rendszerindts sorn be kell tudnunk tlteni: vagy a rendszermagba fordtjuk, vagy pedig a /boot/loader.conf llomnyban hivatkozunk r.

5.4.3.2. Widescreen Flat Panel monitorok hasznlata


Ebben a rszben feltteleznk nmi tapasztalatot a belltsok tern. Amennyiben a szabvnyos kongurcis eszkzk csdt mondtak a bellts sorn, magukbl a naplllomnyokbl is kinyerhetnk elegend informcit ahhoz, hogy mkdsre brjuk rendszernket. Ehhez mindenkppen legyen kznl egy szvegszerkeszt! A jelenlegi szlesvszn (WSXGA, WSXGA+, WUXGA, WXGA, WXGA+ s trsai) formtumok a 16:10-es s 10:9-es kparnyokat ismerik, amik nha gondot okozhatnak. Pldul a 16:10-es kparny felbontsai:

2560x1600 1920x1200 1680x1050 1440x900 1280x800

Bizonyos szempontbl egyszeren csak a fenti felbontsok valamelyikt kell felvenni a "Screen" szakasz Mode sorba, valahogy gy:
Section "Screen" Identifier "Screen0" Device "Card0" Monitor "Monitor0" DefaultDepth 24 SubSection "Display" Viewport 0 0 Depth 24 Modes "1680x1050" EndSubSection EndSection

151

Fejezet 5. Az X Window System Az Xorg elg intelligens ahhoz, hogy a szlesvszn megjelentssel kapcsolatos informcikat lekrje a monitor I2C/DDC adatai kzl, ezrt meg tudja llaptani, hogy az eszkz milyen frisstsi frekvencikat s felbontsokat br el. Ha az albbi ModeLine rtkek nem szerepelnnek a meghajtkban, akkor velk kapcsolatban egy kicsit sgnunk kell az Xorg-nak. A /var/log/Xorg.0.log trgsval elegend informcit tudunk gyjteni ahhoz, hogy manulisan vegynk fel hasznlhat ModeLine rtkeket. Nem kell mst tennnk, mint ehhez hasonl sorokat keresnnk:
(II) (II) (II) (II) (II) MGA(0): MGA(0): MGA(0): MGA(0): MGA(0): Supported additional Video Mode: clock: 146.2 MHz Image Size: 433 x 271 mm h_active: 1680 h_sync: 1784 h_sync_end 1960 h_blank_end 2240 h_border: 0 v_active: 1050 v_sync: 1053 v_sync_end 1059 v_blanking: 1089 v_border: 0 Ranges: V min: 48 V max: 85 Hz, H min: 30 H max: 94 kHz, PixClock max 170 MHz

Ezeket nevezik EDID-adatoknak (Extended display identication data, vagyis bvtett megjelentsi azonost adatoknak). Bellk a megfelel ModeLine sor ltrehozsa csupn annyibl ll, hogy a szmrtkeket a megfelel sorrendbe tesszk:
ModeLine <name> <clock> <4 horiz. timings> <4 vert. timings>

Ezltal a pldban ltott "Monitor" szakasz ModeLine sora gy fog kinzni:


Section "Monitor" Identifier "Monitor1" VendorName "Bigname" ModelName "BestModel" ModeLine "1680x1050" 146.2 1680 1784 1960 2240 1050 1053 1059 1089 Option "DPMS" EndSection

Miutn vgrehajtottuk ezeket az egyszer belltsi lpseket, az X most mr valsznleg el fog indulni az j szlesvszn monitorunkon.

5.5. Bettpusok hasznlata az X11-ben


rta: Murray Stokely.

5.5.1. Type1 bettpusok


Az X11-hez tartoz alap bettpusok nem mondhatak kifejezetten idelisnak pldul egy tlagos asztali kiadvnyszerkeszt alkalmazs szmra. A nagyobb mret bemutatkon a beti szgletesen s idtlenl nznek ki, a Netscapeben megjelen kisebb betk pedig szinte teljessggel olvashatatlanok. Viszont manapsg mr rengeteg szabad, nagyon j minsg s knnyen hasznlhat Type1 (PostScript) bettpus rhet el az X11-hez. Pldul az URW bettpus-gyjtemny (x11-fonts/urwfonts) a szabvnyos Type1 bettpusok (Times Roman, Helvetica, Palatino s mg sok ms) j minsg vltozatait tartalmazza. A Freefonts nev gyjtemny (x11-fonts/freefonts) is tartalmaz sok ms bettpust, de a legtbbjket inkbb csak a Gimpben s a hozz

152

Fejezet 5. Az X Window System hasonl grakai alkalmazsokban tudjuk hasznlni, illetve nincsenek is mg kell mrtkben befejezve a htkznapi munkkhoz. Ezeken fell az X11 minimlis gyeskedssel bellthat a TrueType bettpusok hasznlatra is. Errl rszleteket a X(7) man oldalon, illetve a TrueType bettpusokrl szl szakaszban olvashatunk. A Portgyjtemnybl az imnt emltett Type1 bettpusokat az albbi parancsok segtsgvel telepthetjk:
# cd /usr/ports/x11-fonts/urwfonts # make install clean

Ugyangy jrjunk el a freefont s a tbbi gyjtemny esetn is. Az X szerver akkor fogja szlelni ezeket a bettpusokat, ha hozzadjuk a kvetkez sort a kongurcis llomnyhoz (/etc/X11/xorg.conf):
FontPath "/usr/local/lib/X11/fonts/URW/"

Vagy megtehetjk mindezt az X futtatsa sorn is:


% xset fp+ /usr/local/lib/X11/fonts/URW % xset fp rehash

Ez utbbi bellts viszont el fog veszni az X lelltsval, hacsak nem vesszk hozz az indtszkriptjhez (ez az ~/.xinitrc a startx hasznlata esetn, illetve az ~/.xsession, amikor egy XDM-szer grakus bejelentkezst hasznlunk). Ezek mellett hasznlhatjuk a /usr/local/etc/fonts/local.conf llomnyt is: errl az lsimtssal foglalkoz szakaszban szlunk rszletesebben.

5.5.2. TrueType bettpusok


Az Xorg beptett tmogatst tartalmaz a TrueType bettpusok renderelshez. Kt klnbz modul valstja meg ezt a feladatot. Ebben pldban a freetype nev modult hasznljuk, mivel sokkal jobban illeszkedik a tbbi betrenderelhz. A freetype modul hasznlathoz mindssze az /etc/X11/xorg.conf llomny "Module" szakaszba kell bernunk a kvetkez sort:
Load "freetype"

Most pedig hozzunk ltre egy knyvtrat a TrueType bettpusok szmra (ez legyen pldul a /usr/local/lib/X11/fonts/TrueType), majd msoljuk az sszes TrueType bettpusunkat ide. Vigyzzunk r, hogy Macintosh-rl TrueType bettpusok kzvetlenl nem hozhatak t, az X11 szmra UNIX/MS-DOS/Windows formtumban kell lennik. Miutn sikerlt tmsolnunk az llomnyokat ebbe a knyvtrba, hasznljuk a ttmkfdir parancsot a fonts.dir llomny ltrehozsra, aminek rvn az X betrenderelje tudni fogja, hogy j llomnyokat teleptettnk. A ttmkfdir x11-fonts/ttmkfdir nven elrhet a FreeBSD Portgyjtemnybl.
# cd /usr/local/lib/X11/fonts/TrueType # ttmkfdir -o fonts.dir

Ezutn adjuk hozz a TrueType knyvtrat a bettpusok knyvtraihoz. Itt is a Type1 bettpusoknl lertak szerint kell eljrnunk, vagyis hasznljunk a
% xset fp+ /usr/local/lib/X11/fonts/TrueType % xset fp rehash

parancsot, vagy adjunk hozz a xorg.conf llomnyhoz egy tovbbi FontPath sort.

153

Fejezet 5. Az X Window System Ezzel vgeztnk is. Innentl kezdve a Netscape, Gimp, a StarOfce s mindegyik X alkalmazs fel fogja ismerni a frissen teleptett TrueType bettpusokat. A nagyon kicsi betk (egy honlap megtekintse sorn, nagyfelbontsban) s a nagyon nagy betk (a StarOfce hasznlatakor) most mr sokkal jobban fognak mutatni.

5.5.3. A betk lsimtsa


Frisstette: Joe Marcus Clarke. Az X11 ltal hasznlt, a /usr/local/lib/X11/fonts/ s a ~/.fonts/ knyvtrakban tallhat sszes bettpus lsimtsa automatikusan elrhet az Xft-re felksztett alkalmazsok szmra. A mostansg megjelen legtbb alkalmazs, mint pldul a KDE, GNOME s Firefox, ismeri az Xft-t. A bettpusok lsimtsnak be- s kikapcsolshoz, valamint lsimtsi jellemzinek belltshoz hozzuk ltre (vagy ha mr ltezne, mdostsuk) a /usr/local/etc/fonts/local.conf llomnyt. Az Xft betrendszer szmos kinomult lehetsge hangolhat ezzel az llomnnyal, amelyekbl ebben a szakaszban csupn rvidke zeltt fogunk adni. A pontosabb rszletekrl a fonts-conf(5) man oldalon tjkozdhatunk. Az llomnynak XML formtumnak kell lennie. Klnsen gyeljnk a kis- s nagybetkre, illetve gyzdjnk meg mindig rla, hogy lezrtuk-e az sszes taget. Az llomny a szoksos XML-fejlccel kezddik, amelyet egy DOCTYPE denci kvet, majd a <fontconfig> tag:
<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig>

Ahogy azt mr korbban is emltettk, a /usr/local/lib/X11/fonts s a ~/.fonts/ knyvtrakban tallhat sszes bettpus lsimtsa elrhet az Xft-re felksztett alkalmazsok szmra. Amennyiben ezeken tl mg tovbbi knyvtrakat is fel kvnunk venni, rjuk bele a /usr/local/etc/fonts/local.conf llomnyba, nagyjbl ilyen alakban:
<dir>/az/en/betu/tipusaim</dir>

Az j bettpusok, de legfkppen az j bettpusokat tartalmaz knyvtrak hozzadsa utn a betkkel kapcsolatos gyorsttrak frisstshez mindenkppen javasolt lefuttatni az albbi parancsot:
# fc-cache -f

Az lsimts hatsra a betk kontrjai egy kiss elmosdnak, aminek ksznheten a nagyon kis mret szvegek sokkal olvashatbb vlnak s eltnnek a nagy mret betkrl a lpcsk, azonban a norml mret betknl megfjdulhat tle a szemnk. A 14 pontnl kisebb mret betk esetn az albbi sorok hozzadsval tudjuk kikapcsolni az lsimtst:
<match target="font"> <test name="size" compare="less"> <double>14</double> </test> <edit name="antialias" mode="assign"> <bool>false</bool> </edit> </match> <match target="font"> <test name="pixelsize" compare="less" qual="any">

154

Fejezet 5. Az X Window System


<double>14</double> </test> <edit mode="assign" name="antialias"> <bool>false</bool> </edit> </match>

Bizonyos egyenszlessg (monospaced) bettpusok lsimtsa esetn a betk tvolsga nem megfelel. Ez leginkbb a KDE hasznlata esetn merl fel. Ezt a problmt gy is orvosolhatjuk, ha az ilyen bettpusok trkzt kzzel 100-ra lltjuk. Ehhez rjuk be a kvetkez sorokat:
<match target="pattern" name="family"> <test qual="any" name="family"> <string>fixed</string> </test> <edit name="family" mode="assign"> <string>mono</string> </edit> </match> <match target="pattern" name="family"> <test qual="any" name="family"> <string>console</string> </test> <edit name="family" mode="assign"> <string>mono</string> </edit> </match>

(ezzel lefedjk sszes rgztett mret (xed) bettpust "mono"-knt), majd vegyk hozz ezt is:
<match target="pattern" name="family"> <test qual="any" name="family"> <string>mono</string> </test> <edit name="spacing" mode="assign"> <int>100</int> </edit> </match>

Egyes bettpusoknl, mint pldul a Helveticnl, gondok akadhatnak az lsimtssal. Ez ltalban egy fgglegesen kettvgottnak ltsz bet kpben jelenik meg. De ami a legrosszabb, hogy emiatt nmely alkalmazs kpes sszeomlani. Ennek elkerlsre tegyk hozz mg az albbi sorokat a local.conf llomnyhoz:
<match target="pattern" name="family"> <test qual="any" name="family"> <string>Helvetica</string> </test> <edit name="family" mode="assign"> <string>sans-serif</string> </edit> </match>

155

Fejezet 5. Az X Window System Miutn befejeztk a local.conf szerkesztst, ellenrizzk, hogy szerepel-e az llomny vgn a </fontconfig> tag. Ha ugyanis nem zrjuk le rendesen, akkor a vltoztatsaink rvnytelenn vlnak. Vgezetl a felhasznlk is megadhatjk a sajt belltsaikat a sajt .fonts.conf llomnyuk segtsgvel. Ehhez nem kell mst tenni, mindssze ltrehozni egy ~/.fonts.conf XML-llomnyt. Mg egy utols tlet: LCD kpernyk esetn szksgnk lehet az n. sub-pixel sampling (rszkppont mintavtelezsi) technikra. Ezzel lnyegben a (vzszintesen elvlasztott) vrs, zld s kk sszetevket kln-kln kezeljk a horizontlis felbonts javtsra. Bmulatos eredmnyeket lehet elrni a segtsgvel! A bekapcsolshoz a kvetkez sorokat kell beszrnunk valahova a local.conf llomnyba:
<match target="font"> <test qual="all" name="rgba"> <const>unknown</const> </test> <edit name="rgba" mode="assign"> <const>rgb</const> </edit> </match>

Megjegyzs: A megjelent fajtjtl fggen lehet, hogy az rgb rtket bgr-re, vrgb-re vagy vbgr-re kell cserlnnk. Prblgassuk s kiderl, hogy melyikkel mkdik jobban.

5.6. Az X bejelentkeztet kpernyje


rta: Seth Kingsley.

5.6.1. sszefoglals
Az X bejelentkeztet kpernyje (az X Display Manager vagy rviden csak XDM) az X Window System egyik kiegszt eleme, melyet a bejelentkezsek lebonyoltsra hasznlunk. Szmtalan helyzetben hasznosnak bizonyulhat, belertve a legkisebb X terminlokat s a legnagyobb hlzati szervereket is. Mivel az X Window System fggetlen hlzattl s protokolltl, a hlzaton sszekapcsolt, X klienseket s szervereket futtat klnbz szmtgpek szles kombincija elfordulhat. Az XDM egy grakus felleten keresztl segt vlasztani az elrhet szerverek kztt, valamint a felhasznlk, pldul felhasznlnv s jelszn keresztli, hitelestsben. Az XDM tulajdonkppen a felhasznl szmra ugyanazokat a funkcikat nyjtja, mint a getty(8) program (errl bvebben lsd 26.3.2 Szakasz). Teht: belpteti a felhasznlt a szerverre, ahova csatlakozott, illetve elindtja helyette a hozztartoz munkamenet kezeljt (ami ltalban egy X-es ablakkezel). Az XDM megvrja ennek a programnak a befejezdst, ami egyben jelzi szmra, hogy a felhasznl elvgezte a dolgt, s kilpteti a szerverrl. Ezutn az XDM jra vrakozni kezd a kvetkez felhasznlra, mikzben a bejelentkezshez s a szerver kivlasztshoz szksges kpernyket jelenti meg.

156

Fejezet 5. Az X Window System

5.6.2. Az XDM hasznlata


A XDM hasznlathoz elszr teleptennk kell rendszernkre a x11/xdm portot (mivel az Xorg jabb vltozatai ezt alaprtelmezs szerint mr nem teleptik). Ezt kveten az XDM dmon a /usr/local/bin/xdm helyen tallhat meg. A programot root felhasznlknt brmikor tudjuk futtatni, s ez veszi kezelsbe a helyi gpen fut X szervert. Amennyiben az XDM-et a szmtgp minden egyes indulsa sorn el akarjuk indtani, egyszeren csak adjuk hozz a megfelel bejegyzst az /etc/ttys llomnyhoz. Ennek a formai szablyairl s hasznlatrl bvebben lsd 26.3.2.1 Szakasz. Az /etc/ttys alaprtelmezett vltozatban az XDM dmont ebben a formban talljuk meg a virtulis terminlok kztt:
ttyv8 "/usr/local/bin/xdm -nodaemon" xterm off secure

Ez a bejegyzs alapbl nem aktv. Az engedlyezshez rjuk t az tdik mezben szerepl off (kikapcsolva) rtket on (bekapcsolv)-ra, majd indtsuk jra az init(8) programot a 26.3.2.2 Szakaszban lertak szerint. Az els mezben tallhatjuk a program ltal kezelt terminlt, ez jelen esetnkben a ttyv8. Ennek megfelelen az XDM a 9. virtulis terminlon kezdi meg a futst.

5.6.3. Az XDM belltsa


Az XDM belltsait tartalmaz knyvtr a /usr/local/lib/X11/xdm. Itt tallhatjuk meg azokat az llomnyokat, amelyek megvltoztatsval befolysolhatjuk az XDM megjelenst s viselkedst. ltalban a kvetkez llomnyok bukkannak fel ezen a helyen: llomny
Xaccess Xresources Xservers Xsession Xsetup_* xdm-config xdm-errors xdm-pid

Lers A kliens hitelestsnek szablyrendszere. Az X erforrsainak alaprtelmezett rtkei. Az ismert tvoli s helyi X szerverek listja. A bejelentkezsek sorn lefut alaprtelmezett szkript. A bejelentkez fellet indtsa eltt indtand alkalmazsokkal kapcsolatos szkript. A gpen fut sszes X szerver globlis belltsai. A szerver ltal jelentett hibk. A jelenleg fut XDM-hez tartoz azonost.

Ebben a knyvtrban tallunk mg nhny olyan programot s szkriptet, amelyekkel be tudjuk lltani a munkaasztalunkat az XDM futsa alatt. Ezen llomnyok cljait egyenknt ismertetni fogjuk. A felptskrl s hasznlatukrl az xdm(1) man oldala rul el tbbet. Az alaprtelmezett bellts egy tglalap alak bejelentkez ablak, aminek tetejn nagy betkkel a gp neve olvashat, valamint alatta a Login: (felhasznli nv) s Password: (jelsz) mezk vrnak kitltsre. Ez egy remek kiindulsi alap az XDM-kperny kinzetnek megvltoztatshoz.

5.6.3.1. Xaccess
Az XDM-mel szablyozott X szerverek ltal hasznlt protokoll az X Display Manager Connection Protocol (XDMCP). Ez az llomny tartalmazza a tvoli szmtgpekrl rkez XDMCP-kapcsolatok vezrlsre vonatkoz szablyokat. Ezt a rendszer ltalban gyelmen kvl hagyja, hacsak az xdm-config llomnyban be nem lltottuk

157

Fejezet 5. Az X Window System a tvoli szmtgpek csatlakoztathatsgt. Alaprtelmezs szerint viszont semmilyen klienst nem enged csatlakozni.

5.6.3.2. Xresources
Ez tartalmazza a szervervlaszt s bejelentkez kperny alaprtelmezseit. Segtsgvel a bejelentkeztetst vgz program kinzett vltoztathatjuk meg. Formtuma hasonl az X11 dokumentcijban lert app-defaults llomnyhoz.

5.6.3.3. Xservers
A szervervlaszt ltal felknland tvoli X szerverek felsorolst tartalmazza.

5.6.3.4. Xsession
A felhasznl bejelentkezse utn ez az XDM-szkript fog lefutni. ltalban minden felhasznlhoz tartozik egy sajt ~/.xsession szkript, ami ezt fellbrlja.

5.6.3.5. Xsetup_*
Ezek fognak automatikusan lefutni a szervervlaszt vagy bejelentkeztet felletek megjelense eltt. Minden ltalunk hasznlt X szerverhez tartozik egy ilyen szkript, amelyek neve Xsetup_-al kezddik s a helyi X szerver sorszmval folytatdik (pldul Xsetup_0). Ezek a szkriptek ltalban egy-kt programot, mint pldul az xconsole, indtanak el a httrben.

5.6.3.6. xdm-cong
Az app-defaults nev llomnyhoz hasonl alakban tartalmaz belltsokat a program ltal kezelt minden egyes X szerverhez.

5.6.3.7. xdm-errors
Ebben tallhat meg az XDM ltal futtatni prblt X szerverek kimenete. Itt rdemes hibazenetek utn kutatni, ha az XDM ltal indtott X szerver valamirt megllna. Ezek az zenetek egybknt a felhasznl ~/.xsession-errors llomnyba is berdnak.

5.6.4. Hlzati X szerver futtatsa


Az X szervernkhz csak akkor tudnak kvlrl ms felhasznlk is kapcsoldni, ha trjuk a hozzfrsre vonatkoz szablyokat s engedlyezzk rajta a kapcsoldst. Az alaprtelmezett szablyok nagyon vatosak. Ha teht engedlyezni akarjuk a kvlrl rkez kapcsoldsokat, akkor ahhoz elszr az xdm-config llomnybl vegyk ki az albbi sort:

158

Fejezet 5. Az X Window System


! SECURITY: do not listen for XDMCP or Chooser requests ! Comment out this line if you want to manage X terminals with xdm DisplayManager.requestPort: 0

Ezutn indtsuk jra az XDM-et. Ne felejtsk el, hogy az app-defaults llomnyokban a megjegyzsek ! (felkilt)jellel kezddnek, nem pedig a megszokott # (kettskereszt)tel. A fentieknl termszetesen szigorbb hozzfrsi szablyok is szksgesek lehetnek ezzel kapcsolatban nzzk meg Xaccess llomnyban szerepl pldkat, illetve lapozzuk fel az xdm(1) man oldalt.

5.6.5. Az XDM helyett


Az alaprtelmezett XDM feladatt szmos ms program is kpes elltni. Ezek kzl az egyik a kdm (a KDE rsze), amire ebben a fejezetben mg vissza fogunk trni. A kdm klnfle vizulis effekteket s egyb kozmetikzst gr, valamint lehetv teszi a felhasznlk szmra, hogy a bejelentkezs eltt kivlaszthassk a hasznlni kvnt ablakkezelt.

5.7. Munkakrnyezetek
rta: Valentino Vaschetto. Ebben a szakaszban a FreeBSD-n fut X-hez elrhet klnbz munkakrnyezetekrl (desktop environment) lesz sz. Maga a munkakrnyezet elnevezs sok mindenre utalhat egy mezei ablakkezeltl kezdve az asztali alkalmazsok teljes garmadjig, ahogy igaz ez a KDE vagy a GNOME esetben is.

5.7.1. A GNOME
5.7.1.1. Rviden a GNOME-rl
A GNOME egy felhasznlbart munkakrnyezet, aminek segtsgvel a felhasznlk szmra gyerekjtk a szmtgp hasznlata s belltsa. A GNOME-ban tallhatunk egy panelt (az alkalmazsok indtsra s klnfle llapotjelzk megjelentshez), egy asztalt (ahova az alkalmazsok s az adatok kerlnek), szabvnyos asztali eszkzket s alkalmazsokat, valamint szmos konvencit, aminek mentn az alkalmazsok knnyen egytt tudnak mkdni s tartani egymssal az sszhangot. Ms opercis rendszerek vagy krnyezetek ismeri otthon rezhetik magukat ebben a GNOME ltal nyjtott vizulis krnyezetben. A FreeBSD s a GNOME kapcsolatrl bvebb informcikat a FreeBSD GNOME Projekt (http://www.FreeBSD.org/gnome) honlapjn tallhatunk. Ezen az oldalon a GNOME teleptsrl, belltsrl s karbantartsrl egy meglehetsen tfog lerst olvashatunk.

5.7.1.2. A GNOME teleptse


A programot knnyen fel tudjuk telepteni csomagbl vagy a Portgyjtemny segtsgvel: A hlzatrl a GNOME csomagjt mindssze ennek a sornak a bersval fel tudjuk telepteni:
# pkg_add -r gnome2

159

Fejezet 5. Az X Window System A portfa felhasznlsval pedig a GNOME-ot gy tudjuk forrsbl telepteni:
# cd /usr/ports/x11/gnome2 # make install clean

Miutn a GNOME-ot sikerlt felteleptennk, meg kell mondanunk az X szervernek, hogy az alaprtelmezett ablakkezel helyett a GNOME-ot indtsa el. A GNOME-ot legknnyebben a GDM, vagyis a GNOME Display Manager hasznlatval indthatjuk el. A GDM a GNOME rszeknt telepl (habr alapbl nincs bekapcsolva), s gy tudjuk aktivlni, ha /etc/rc.conf llomnyba berjuk a gdm_enable="YES" sort. jraindts utn a GDM automatikusan elindul. Ha a GDM mellett az sszes GNOME szolgltatst is el akarjuk indtani, vegyk fel a gnome_enable="YES" sort az /etc/rc.conf llomnyba. A GNOME-ot parancssorbl is elindthatjuk, ha hozz megfelelen belltjuk az .xinitrc nev llomnyt. Ha mr van egy sajt .xinitrc llomnyunk, akkor nincs ms teendnk, mint trni az aktulis ablakkezelnket hv sort a /usr/local/bin/gnome-session sorra. Ha nem csinltunk eltte semmilyen klnleges dolgot az emltett kongurcis llomnnyal, akkor elegend csak ennyit bernunk:
% echo "/usr/local/bin/gnome-session" > ~/.xinitrc

Ezt kveten rjuk be a startx parancsot, s a GNOME munkakrnyezete fog elindulni.


Megjegyzs: Ha az XDM-hoz hasonl rgebbi bejelentkeztet kpernyt hasznlunk, ez a mdszer nem fog mkdni. Helyette hozzunk ltre egy .xsession nev futtathat llomnyt, amely ezt a parancsot tartalmazza. Ehhez nyissuk meg s cserljk ki benne a korbbi ablakkezelnk hvst a /usr/local/bin/gnome-session utastsra:

% echo "#!/bin/sh" > ~/.xsession % echo "/usr/local/bin/gnome-session" >> ~/.xsession % chmod +x ~/.xsession

Megcsinlhatjuk azt is, hogy a bejelentkezskor vlaszthat legyen az ablakkezel. A KDE-rl bvebben cm szakaszban ltni fogjuk, hogyan tudjuk ezt a a KDE bejelentkeztet kpernyje, a kdm esetn belltani.

5.7.2. A KDE
5.7.2.1. Rviden a KDE-rl
A KDE egy knnyen hasznlhat modern munkakrnyezet. zeltl a KDE felhasznlk szmra felknlt lehetsgei kzl:

Gynyr, korszer munkafellet Az asztal hlzaton keresztli transzparens kezelse A KDE asztal s alkalmazsainak hasznlatban egy beptett sgrendszer segti a knyelmes s sszefgg kzlekedst

160

Fejezet 5. Az X Window System


A KDE alkalmazsainak sszehangolt kinzete s hangulata Szabvnyostott menk s eszkztrak, billenty-hozzrendelsek, sznsmk stb. Honosts: a KDE tbb, mint 40 nyelven elrhet Kzpontostott, sszehangolt, prbeszdablak alap asztalbellts Szmos hasznos KDE-alkalmazs

A KDE-hez egy Konqueror nev bngsz is tartozik, mely a tbbi UNIX-os bngsz komoly ellenfelnek bizonyul. A KDE-rl tbbet a KDE honlapjn (http://www.kde.org/) olvashatunk. A KDE FreeBSD-re vonatkoz tudnivalirl s a hozztartoz anyagokrl a FreeBSD KDE csapat (http://freebsd.kde.org/) honlapjn tallhatunk informcikat. FreeBSD alatt a KDE kt verzija rhet el: a harmadik vltozat mr rgta hasznlhat, nagyon megbzhat, amely mellett viszont a kvetkez genercit kpvisel negyedik vltozat is megtallhat a Portgyjtemnyben. Akr egyms mell is telepthetek.

5.7.2.2. A KDE teleptse


Ahogy a GNOME s a tbbi ms munkakrnyezet esetben is, maga a program knnyen telepthet csomagbl vagy a Portgyjtemny segtsgvel is: A KDE3 csomagjt hlzaton keresztl gy tudjuk telepteni:
# pkg_add -r kde

A KDE4 csomagjt pedig hlzaton keresztl gy tudjuk telepteni:


# pkg_add -r kde4

A pkg_add(1) magtl letlti az alkalmazs legfrissebb verzijt. Ha a KDE3 krnyezetet forrsbl akarjuk telepteni, hasznljuk a portft:
# cd /usr/ports/x11/kde3 # make install clean

Ha viszont a KDE4 krnyezetet akarjuk inkbb a portfa felhasznlsval forrsbl telepteni, akkor ezeket a parancsokat adjuk ki:
# cd /usr/ports/x11/kde4 # make install clean

Miutn a KDE-t sikeresen teleptettk, tudatnunk kell az X szerverrel, hogy az alaprtelmezett ablakkezel helyett ezt indtsa el. Ezt az .xinitrc llomny mdostsval rhetjk el. KDE3 esetn:
% echo "exec startkde" > ~/.xinitrc

KDE4 esetn:
% echo "exec /usr/local/kde4/bin/startkde" > ~/.xinitrc

161

Fejezet 5. Az X Window System Mostantl pedig mindig KDE lesz az asztalunk, amikor az X Window Systemet elindtjuk a startx paranccsal. Ha az XDM-et hasznljuk bejelentkeztet kpernyknt, a belltst nmileg mshogyan kell elvgeznnk. Ekkor az imnti helyett az .xsession llomnyt kell szerkesztennk. A kdm-re vonatkoz utastsok a fejezet ksbbi rszben tallhatak meg.

5.7.3. A KDE-rl bvebben


Most, miutn teleptettk a KDE-t a rendszernkre, a dolgok tbbsge felfedezhet a klnfle sgk segtsgvel vagy egyszeren a menkre trtn kattintssal. A Windows-hoz vagy Mac-hez szokott felhasznlk itt most mr egszen otthonosan rezhetik magukat. A KDE-hez a legtbb segtsget a sajt internetes dokumentcijbl nyerhetjk. A KDE a sajt bngszjt, a Konquerort tartalmazza, valamint tucatnyi gyes alkalmazst s temrdek mennyisg dokumentcit. A szakasz tovbbi rszeiben ezrt inkbb olyan problmkkal foglalkozunk, amelyek megoldsai cltalan kborlssal mr nem fedezhetek fel olyan egyszeren.

5.7.3.1. A KDE bejelentkeztet kpernyje


Egy tbbfelhasznls rendszer karbantartja minden bizonnyal szeretn dvzlni rendszere felhasznlit egy grakus bejelentkez kpernyn keresztl. A korbbiakban erre a clra az XDM-et javasoltuk. Azonban a KDE erre ajnl egy alternatvt, a kdm-et, amely jval ltvnyosabb s sokoldalbb. Ez klnsen abban merl ki, hogy a felhasznlk (egy menn keresztl) ki tudjk vlasztani a bejelentkezs utn hasznlni kvnt munkakrnyezetet (legyen az KDE, GNOME vagy brmi ms). A kdm hasznlathoz az /etc/ttys llomnyban tallhat ttyv8 bejegyzst kell nmileg talaktanunk. KDE3 esetn:
ttyv8 "/usr/local/bin/kdm -nodaemon" xterm on secure

KDE4 esetn:
ttyv8 "/usr/local/kde4/bin/kdm -nodaemon" xterm on secure

5.7.4. Az Xfce
5.7.4.1. Rviden az Xfce-rl
Az Xfce a GNOME ltal hasznlt GTK+-ra pl munkakrnyezet, amely azonban sokkal knnyedebb s azoknak kszlt, akik egy szimpla, hatkony, mindazonltal knnyen hasznlhat s bellthat munkafelletre vgynak. Ltvny szempontjbl leginkbb a kereskedelmi rendszereken megtallhat CDE-hez hasonlthat. me az Xfce nhny jellemzje:

Egyszer, knnyen kezelhet munkaasztal Tkletesen kongurlhat egrrel, drag-and-droppal (vonszols) stb.

162

Fejezet 5. Az X Window System


A menkkel, kisalkalmazsokkal s alkalmazsindtkkal tarktott fpanelje hasonl a CDE paneljhez Beptett ablak-, llomny- s hangkezelvel, GNOME kompatibilitsi modullal s mg sok minden mssal rendelkezik Hasznlhatunk tmkat (mivel GTK+-ra pl) Gyors, knny s hatkony: idelis rgebbi vagy lassabb, esetleg kevs memrival rendelkez szmtgpekhez

Az Xfce-rl rszletesebben az Xfce honlapjn (http://www.xfce.org/) olvashatunk.

5.7.4.2. Az Xfce teleptse


Az Xfce-hez tartozik binris csomag (legalbbis az lers ksztsnek pillanatban). Ezt a kvetkez mdon tudjuk telepteni:
# pkg_add -r xfce4

Vagy a portgyjtemny hasznlatval forrsbl is felrakhatjuk:


# cd /usr/ports/x11-wm/xfce4 # make install clean

Ezutn vilgostsuk fel az X szervert, hogy a kvetkez indulsa sorn mi mr az Xfce-t kvnjuk hasznlni. Ehhez csak ennyit kell tennnk:
% echo "/usr/local/bin/startxfce4" > ~/.xinitrc

gy az X kvetkez indtsakor mr az Xfce lesz a munkakrnyezetnk. Ahogy azt mr korbban is jeleztk, az XDM hasznlata sorn a GNOMEban lertak szerint ltre kell hoznunk az .xsession llomnyt, azonban ezttal a /usr/local/bin/startxfce4 parancs hasznlatval. Vagy a kdm-rl szl szakaszban trgyaltak mentn bellthatjuk gy a bejelentkeztet kpernyt, hogy a bejelentkezs eltt vlasszuk ki a munkakrnyezetet.

163

II. Gyakori feladatok


Miutn az alapokat mr tvettk, a FreeBSD kziknyv kvetkez rsze nhny gyakorta alkalmazott funkcit trgyal. Az itt szerepl fejezetek:

Bemutatnak klnfle hasznos s npszer asztali alkalmazst: bngszket, irodai elsegt eszkzket, dokumentum-megjelentket stb. Bemutatjk a FreeBSD alatt is elrhet multimdia eszkzket. Kifejtik egy sajt FreeBSD rendszermag elksztsnek folyamatt, amellyel gy bvteni tudjuk rendszernk funkcionalitst. Rszletesen bemutatjk a nyomtatsrt felels alrendszert, asztali s hlzati nyomtatk hasznlata esetn egyarnt. Megmutatjk, hogyan futassunk Linuxra rdott alkalmazsokat a FreeBSD rendszernkn.

Egyes fejezetek elolvasshoz ajnlott bizonyos mrtk felkszls, amely megemltsre is kerl az rintett fejezetek ttekintsben.

Fejezet 6. Asztali alkalmazsok


rta: Christophe Juniet.

6.1. ttekints
A FreeBSD-n asztali alkalmazsok szles spektrumt lehet futtatni, pldul bngszket s szvegszerkesztket. Legtbbjk csomagknt ll rendelkezsre, illetve automatizlt mdon lefordthatak a Portgyjtemnybl. Az j felhasznlk kzl sokan szeretnnek ilyen fajta alkalmazsokat hasznlni, ezrt ez a fejezet bemutatja, miknt lehet a npszerbb asztali alkalmazsokat minden klnsebb erfeszts nlkl telepteni, legyen sz az elre csomagolt vagy a Portgyjtemnyben megtallhat formjukrl. Amikor portknt teleptnk egy programot, lnyegben a forrskdjt fordtjuk le. Ez bizonyos esetekben nagyon sokig is eltarthat attl fggen, hogy pontosan mit is fordtunk le, illetve mekkora az erre a clra felhasznlt szmtgpnk vagy szmtgpeink teljestmnye. Amennyiben a fordtsra nem tudunk vagy nem kvnunk elegend idt sznni, a Portgyjtemnyben tallhat programok tbbsgt mr elre lefordtott csomagbl is telepthetjk. Mivel a FreeBSD-ben binris szint Linux kompatibilits is tallhat, ezrt az eredetileg Linuxra fejlesztett alkalmazsok is hasznlhatak a munkakrnyezetnkben. Azonban hatrozottan javasoljuk, hogy a linuxos alkalmazsok hasznlathoz elszr gyelmesen olvassuk t a 10 fejezetet. A linuxos binris kompabilitst hasznl portok neve ltalban a linux- eltaggal kezddik, amit ne felejtsk el gyelembe venni, amikor pldul a whereis(1) segtsgvel keressk valamelyiket. A fejezet tovbbi rszben felttelezzk, hogy a linuxos alkalmazsok teleptse eltt aktivltuk a binris Linux kompatibilitst. me a fejezetben trgyalt kategrik:

Bngszk (mint a Firefox, Opera, Konqueror) Irodai eszkzk (mint a KOfce, AbiWord, The GIMP, OpenOfce.org) Dokumentum-megjelentk (mint az Acrobat Reader, gv, Xpdf, GQview) Pnzgyi szoftverek (mint a GnuCash, Gnumeric, Abacus)

A fejezet elolvasshoz ajnlott:


a kls alkalmazsok teleptsnek ismerete (4 fejezet); linuxos alkalmazsok teleptsnek ismerete (10 fejezet).

a multimdis krnyezet kialaktsra vonatkoz informcikrt a 7 fejezett rdemes elolvasni. Az elektronikus levelezs belltst s hasznlatt a 28 fejezetbl tudhatjuk meg.

6.2. Bngszk
A FreeBSD-vel egytt nem telepl semmilyen bngsz. Helyette keressk meg a Portgyjtemnyben a www (http://www.FreeBSD.org/ports/www.html) knyvtrat, ahol ezzel szemben rengeteg bngsz ll teleptsre kszen.

165

Fejezet 6. Asztali alkalmazsok Ha nem lenne idnk mindent lefordtani (ami egyes esetekben akr rengeteg idnkbe is kerlhet), ezek csomagolt formban is elrhetek. A KDE-hez s a GNOME-hoz eleve tartoznak HTML-bngszk. Ezen komplett munkakrnyezetek belltshoz a 5.7 Szakaszt olvassuk el. Ha viszont csak egy kevs erforrst ignyl bngszkre vgyunk, rdemes megnznnk a Portgyjtemnyben tallhat www/dillo2, www/links vagy www/w3m portokat. Ez a rsz az albbi alkalmazsokat emlti: Alkalmazs Firefox Opera Erforrsigny kzepes kevs Telepts forrsbl nehz knny Fbb fggsgek Gtk+ Vannak FreeBSD-s s linuxos vltozatai is. A linuxos verzi hasznlathoz azonban szksg van a binris Linux kompatibilitsra s a linux-openmotif portra. A KDE fggvnyknyvtrai.

Konqueror

kzepes

nehz

6.2.1. Firefox
A Firefox egy modern, szabad s nylt forrskd bngsz, amely tkletesen hasznlhat FreeBSD alatt. Megtallhat benne egy, a jelenlegi HTML szabvnyoknak nagyon jl megfelel megjelent motor, a lapokra bonthat bngszs tmogatsa, a kretlenl felbukkan ablakok blokkolsa, klnbz kiterjesztsek, javtott biztonsgi lehetsgek s mg sok minden ms. A Firefox forrsa a Mozilla kdjn alapszik. Csomagbl gy telepthet:
# pkg_add -r firefox

Ekkor a Firefox 3.6 vltozata fog teleplni. Ha helyette a Firefox 3.5 vltozatt szeretnnk hasznlni, akkor ezt a parancsot adjuk ki:
# pkg_add -r firefox35

Ha forrsbl szeretnnk felrakni, hasznlhatjuk a Portgyjtemnyben tallhat portjt is:


# cd /usr/ports/www/firefox # make install clean

A Firefox 3.5 teleptshez az imnti parancsban cserljk ki a firefox rszt a firefox35 knyvtrra.

6.2.2. A Firefox s a Java plugin


Megjegyzs: Ennl s a kvetkez rsznl felttelezzk, hogy mr korbban teleptettk a Firefox alkalmazst.

166

Fejezet 6. Asztali alkalmazsok


A Java plugin jelenleg nem mkdik a Firefox 3.6 vltozatval.

A FreeBSD Alaptvny megegyezett a Sun Microsystems-szel, hogy terjesztheti a Java futtatkrnyezet (JRE) s a Java fejlesztkrnyezet (JDK) FreeBSD-re lefordtott binris vltozatait. Ezek a csomagok elrhetek a FreeBSD Alaptvny (http://www.freebsdfoundation.org/downloads/java.shtml) honlapjrl. Ha teht Java-tmogatst szeretnnk hozzadni a Firefox bngszhz, elsknt fel kell teleptennk a java/javavmwrapper portot. Ezutn le kell tltennk a Diablo JRE csomagot a http://www.freebsdfoundation.org/downloads/java.shtml cmrl, majd teleptennk azt a pkg_add(1) segtsgvel. Indtsuk el a bngsznket, s rjuk be a cmsorba, hogy about:plugins s nyomjuk le az Enter billentyt. Az eredmnyl kapott oldalon lthatjuk az eddig teleptett pluginok listjt, ahol mostanra mr a Java pluginnak is meg kell jelennie. Amennyiben ez nem kvetkezne be, mindegyik felhasznlnl adjuk ki az albbi parancsot:
% ln -s /usr/local/diablo-jre1.6.0/plugin/i386 /ns7/libjavaplugin_oji.so \ $HOME/.mozilla/plugins/

Vagy ha a Diablo JDK csomagot teleptettk:


% ln -s /usr/local/diablo-jdk1.6.0/jre/plugin/i386 /ns7/libjavaplugin_oji.so \ $HOME/.mozilla/plugins/

Ezt kveten indtsuk jra a bngsznket.


Megjegyzs: Ezek a parancsok az i386 architektra hasznlatt felttelezik, de a csomagok az amd64 architektra esetn is elrhetek.

6.2.3. A Firefox s a Macromedia Flash plugin


A Macromedia Flash plugin nem rhet el kzvetlenl FreeBSD-re. Azonban ltezik egy, a plugin linuxos verzijra ptett szoftveres rteg (wrapper). Ez a wrapper mg tbbek kzt az Adobe Acrobat s a RealPlayer pluginjait is hasznlhatv teszi. Attl fggen, hogy a FreeBSD melyik vltozatt hasznljuk, klnbz mdokon tudjuk mkdsbe hozni: 1. FreeBSD 7.X Teleptsk a www/nspluginwrapper portot. Ehhez szksg lesz mg a emulators/linux_base-fc4 portra is, amely viszonylag nagy mret. Kvetkez lpsknt teleptsk a www/linux-flashplugin9 portot. Ezltal megkapjuk a Flash 9.X vltozatt, amely FreeBSD 7.X alatt remekl mkdik.
Megjegyzs: A 7.1-RELEASE eltti FreeBSD verzik esetn a www/linux-flashplugin7 portot teleptsk s hagyjuk ki a linprocfs(5) hasznlatra vonatkoz rszt.

2.

FreeBSD 8.X

167

Fejezet 6. Asztali alkalmazsok Teleptsk a www/nspluginwrapper portot. Ehhez szksgnk lesz majd a valamivel nagyobb emulators/linux_base-f10 portra. Ezt kveten teleptsk a www/linux-f10-flashplugin10 portot. Ekkor a Flash 10.X vltozatt kapjuk, amely FreeBSD 8.X alatt remekl hasznlhat. Ezen vltozat bezemelshez mg ltre kell hoznunk az albbi linket:
# ln -s /usr/local/lib/npapi/linux-f10-flashplugin/libflashplayer.so \ /usr/local/lib/browser_plugins/

Miutn a FreeBSD rendszernk vltozatnak megfelelen elvgeztk a Flash port teleptst, a plugint az egyes felhasznlknak a nspluginwrapper paranccsal tehetjk elrhetv:
% nspluginwrapper -v -a -i

Ha Flash animcikat szeretnnk lejtszani, akkor ehhez a /usr/compat/linux/proc knyvtrba csatlakoztatnunk kell egy linprocfs(5) tpus linuxos proc llomnyrendszert. Ezt a kvetkez paranccsal tehetjk meg:
# mount -t linprocfs linproc /usr/compat/linux/proc

Az /etc/fstab llomnyban az albbi sor hozzadsval azonban ennek csatlakoztatsa akr automatikuss is tehet a rendszerindts sorn:
linproc /usr/compat/linux/proc linprocfs rw 0 0

Ezutn indtsuk el a bngszt, majd gpeljk be a about:plugins szveget a cmsorba s nyomjuk le az Enter billentyt. Ekkor a jelenleg elrhet pluginok listjnak kell megjelennie.

6.2.4. A Firefox s az Swfdec Flash plugin


Az Swfdec egy Flash animcik dekdolsrt s megjelentsrt felels programknyvtr. Az Swfdec-Mozilla pedig egy Firefox bngszkhz ksztett plugin, amely az Swfdec knyvtron keresztl jtszik le SWF llomnyokat. Jelenleg mg aktv fejleszts alatt ll. Ha nem akarjuk vagy netaln nem tudjuk forrsbl lefordtani, akkor egyszeren csak teleptsk csomagknt a hlzaton keresztl:
# pkg_add -r swfdec-plugin

Ha valamirt mgsem rhet el hozz csomag, akkor a Portgyjtemnybl is telepthetjk:


# cd /usr/ports/www/swfdec-plugin # make install clean

Miutn teleptettk a plugint, a hasznlathoz indtsuk jra a bngszt.

6.2.5. Opera
Az Opera egy sokoldal s szabvnyokkal kompatibilis bngsz. Tartalmaz beptett levelez klienst s hrolvast, IRC-klienst, RSS/Atom-olvast s mg sok mindent mst. Ennek ellenre az Opera viszonylag pehelyslynak s

168

Fejezet 6. Asztali alkalmazsok gyorsnak szmt. Kt fajta mdon is hasznlhat: ltezik natv FreeBSD-s vltozata, valamint a Linux emulcival fut vltozata. Az Opera FreeBSD-s vltozatt a megfelel csomag teleptsvel rhetjk el:
# pkg_add -r opera

Habr egyes FTP oldalakon nem tallhat meg az sszes csomag, viszont a Portgyjtemnybl mg ekkor is be tudjuk szerezni az Operat:
# cd /usr/ports/www/opera # make install clean

A linuxos Opera teleptshez opera helyett linux-opera nevet kell megadnunk a fenti parancsokban. Ennek a verzinak a hasznlata akkor lehet elnys, ha olyan plugineket akarunk elrni, amelyek csak Linuxra lteznek. Ilyen pldul az Adobe Acrobat Reader. Ettl eltekintve azonban a FreeBSD-s s a linuxos vltozatok szinte teljesen megegyeznek.

6.2.6. Konqueror
A Konqueror a KDE rsze, de a hasznlathoz elegend, ha csak a x11/kdebase3 portot teleptjk fel. A Konqueror tbb, mint egy egyszer bngsz: llomnykezel s multimdis nzeget is. Szmtalan plugin ll rendelkezsre a Konquerorhoz, melyeket a misc/konq-plugins portban tallunk meg. A Konqueror ismeri a Flasht is. A Flash s a Konqueror kapcsolatval egy kln Hogyan is foglalkozik, amelyet a http://freebsd.kde.org/howtos/konqueror-ash.php cmen olvashatunk el.

6.3. Irodai eszkzk


Amikor irodai felhasznlsrl van sz, az j felhasznlk gyakorta keresnek egy j irodai programcsomagot vagy egy bartsgos szvegszerkesztt. Habr az egyes munkakrnyezetek, mint pldul a KDE, gyakran sajt irodai eszkzket is tartalmaznak, FreeBSD alatt nincs alaprtelmezett irodai programcsomag. A rendszer a munkakrnyezetektl fggetlenl igyekszik felknlni mindazt, amire szksgnk lehet. Ebben a rszben a kvetkez alkalmazsokrl esik sz: Alkalmazs KOfce AbiWord The Gimp OpenOfce.org Erforrsigny kevs kevs kevs sok Telepts forrsbl nehz knny nehz nagyon nehz Fbb fggsgek KDE Gtk+ vagy GNOME Gtk+ JDK, Mozilla

6.3.1. KOfce
A KDE kzssg ltal kiadott munkakrnyezethez trsul egy irodai programcsomag is, amely a KDE-tl fggetlenl is hasznlhat. Tartalmazza a tbbi irodai programcsomagban is megtallhat ngy szabvnyos komponenst: a

169

Fejezet 6. Asztali alkalmazsok KWord szvegszerkesztt, a KSpread tblazatkezelt, a KPresenter prezentciksztt s vgezetl a Kontourt, mellyel grakus dokumentumokat tudunk elkszteni. A legfrissebb KOfce teleptse eltt bizonyosodjuk meg rla, hogy a KDE legfrissebb verzijval is rendelkeznk. Ha a KOfce-t csomagknt akarjuk telepteni, akkor adjuk ki az albbi parancsot:
# pkg_add -r koffice

Amennyiben ez a csomag nem rhet el, telepthetjk a Portgyjtemnybl is. Pldul a KDE3-hoz tartoz KOfce-t gy rakhatjuk fel:
# cd /usr/ports/editors/koffice-kde3 # make install clean

6.3.2. AbiWord
Az AbiWord egy szabad szvegszerkeszt program, a Microsoft Word-hz hasonl kinzettel. Remekl hasznlhat levelek, beszmolk, feljegyzsek, cikkek stb. rshoz. Nagyon gyors, rengeteg funkcit ajnl fel, s kifejezetten felhasznlbart. Az AbiWord kpes tbbfle llomnyformtumba exportlni s onnan importlni, belertve az olyan zrt formtumokat is, mint pldul a Microsoft .doc. Az AbiWord csomagbl telepthet a kvetkez mdon:
# pkg_add -r abiword

Amennyiben ez a csomag nem rhet el, lefordthat a Portgyjtemnybl is, ami radsul sokszor egy frissebb verzit tartalmaz. Ezt gy tudjuk megtenni:
# cd /usr/ports/editors/abiword # make install clean

6.3.3. The GIMP


Kpek ksztsre vagy retuslsra a The GIMP a legfejlettebb kpszerkeszt program. Egyszer rajzolprogram gyannt is hasznlhat, de akr minsgi fnykpretuslsra is. risi mennyisg plugin tallhat hozz s magban foglal egy szkriptes interfszt is. A The GIMP formtumok szles skljt ismeri. Szmos scanner s digitlis rajztbla csatlakoztathat hozz. A hozztartoz csomag a kvetkez mdon telepthet fel:
# pkg_add -r gimp

Ha a csomagoknak belltott FTP oldalon nem tallhat meg ez a csomag, megprblkozhatunk vele a Portgyjtemnyen keresztl is. A gyjtemny graphics (http://www.FreeBSD.org/ports/graphics.html) knyvtrban ezen fell fellelhetjk a The Gimp Manualt, vagyis a The GIMP kziknyvt. gy kell ezeket innen telepteni:
# cd /usr/ports/graphics/gimp # make install clean

170

Fejezet 6. Asztali alkalmazsok


# cd /usr/ports/graphics/gimp-manual-pdf # make install clean

Megjegyzs: A Portgyjtemny graphics (http://www.FreeBSD.org/ports/graphics.html) knyvtrban a The GIMP fejleszti vltozatval is tallkozhatunk a graphics/gimp-devel alknyvtrban. A The Gimp Manual HTML vltozata pedig a graphics/gimp-manual-html alknyvtrban tallhat.

6.3.4. OpenOfce.org
Az OpenOfce.org tartalmaz minden olyan elengedhetetlenl fontos alkalmazst, amelyek napjaink brmelyik irodjhoz hozztartoznak: egy szvegszerkesztt, egy tblzatkezelt, egy prezentciszerkesztt s egy rajzolprogramot. A felhasznli fellete nagyon hasonlt a tbbi irodai programcsomaghoz, s kpes tbbfle elterjedt llomnyformtumot kezelni. Szmos klnbz nyelven elrhet a honostsa kiterjed a felletekre, helyesrs ellenrzkre s sztrakra is. Az OpenOfce.org szvegszerkesztje natv XML llomnyformtumot hasznl a hordozhatsg s a rugalmassg nvelshez. A tblzatkezelje tartalmaz egy makrnyelvet s knnyedn sszekapcsolhat kls adatbzisokkal. Az OpenOfce.org natvan s megbzhatan fut Windows-on, Solaris-on, Linux-on, FreeBSD-n s Mac OS X-en. Az OpenOfce.org-rl bvebb informcit a projekt sajt honlapjn (http://www.openofce.org/) tallhatunk. A FreeBSD-s vltozatra vonatkoz informcikat s a csomagokat pedig a FreeBSD OpenOfce.org Porting Team (http://porting.openofce.org/freebsd/) honlapjn lelhetjk meg. Az OpenOfce.org teleptshez ennyit kell csak berni:
# pkg_add -r openoffice.org

Megjegyzs: Ha a FreeBSD -RELEASE gt hasznljuk, ennek mkdnie kell. Ettl eltr esetben rdemes egy pillantst vetni a FreeBSD OpenOfce.org Porting Team honlapjra, ahonnan le tudjuk tlteni a verzikhoz megfelel csomagot, amelyet ezutn a pkg_add(1)-al fel is tudunk telepteni. A legfrissebb megbzhat s fejleszti vltozat egyarnt elrhet errl a helyrl.

Ahogy sikerlt feltelepteni a csomagot, egyszeren csak be kell gpelni a kvetkez parancsot az OpenOfce.org futtatshoz:
% openoffice.org

Megjegyzs: Az els futtats sorn vlaszolnunk kell mg nhny tovbbi krdsre is, valamint a felhasznli knyvtrunkban keletkezik egy .openoffice.org knyvtr.

Ha nem rhetek el OpenOfce.org csomagok, lefordthatjuk a forrst is. Azonban mieltt mg ennek nekiltnnk, el kell fogadnunk, hogy ez a mvelet a lemeznkn rettenetesen sok terletet fog ignyelni s meglehetsen sokig tart.
# cd /usr/ports/editors/openoffice.org-3

171

Fejezet 6. Asztali alkalmazsok


# make install clean

Megjegyzs: Ha egy honostott verzit szeretnnk fordtani, az utols parancs helyett rjuk inkbb ezt:
# make LOCALIZED_LANG=nyelv install clean

A nyelv helyett itt termszetesen a nyelvnek megfelel ISO-kdot kell megadni. Az itt tmogatott nyelvek kdjnak listja a port knyvtrn bell, a files/Makefile.localized llomnyban tallhat meg.

Ahogy a fordts befejezdtt, az OpenOfce.org gy indthat el parancssorbl:


% openoffice.org

6.4. Dokumentum-megjelentk
A UNIX megjelense ta nhny j npszer dokumentumformtum is felbukkant, melyek szabvnyos megjelenti nem minden esetben rszei az alaprendszernek. Ebben a rszben azt tekintjk t, hogyan lehet ilyen megjelentket telepteni. Ez a rsz az albbi alkalmazsokat emlti: Alkalmazs Acrobat Reader gv Xpdf GQview Erforrsigny kevs kevs kevs kevs Telepts forrsbl knny knny knny knny Fbb fggsgek Binris Linux kompatibilits Xaw3d FreeType Gtk+ vagy GNOME

6.4.1. Acrobat Reader


A dokumentumok tbbsge manapsg PDF (Portable Document Format, avagy hordozhat dokumentumformtum) llomnyok formjban terjed. Az ilyen tpus llomnyok megnzsre az egyik legalkalmasabb alkalmazs az Acrobat Reader, melyet az Adobe adott ki Linuxra. De mivel a FreeBSD kpes Linux binrisok futtatsra, ezrt gy FreeBSD-re is elrhet. Ha az Acrobat Reader 8-at a Portgyjtemnybl akarjuk telepteni, akkor rjuk be:
# cd /usr/ports/print/acroread8 # make install clean

Licencelsi megszortsok miatt csomag nem ll rendelkezsre.

6.4.2. gv
A gv egy PostScript s PDF megjelent. Eredetileg a ghostview alapjn kszlt, de a Xaw3d-nek ksznheten

172

Fejezet 6. Asztali alkalmazsok sokkal szebben nz ki. Gyors s az fellete letisztult. A gv sok mindent tud, tbbek kzt bellthat benne a dokumentum tjolsa, a paprmret, sklzs s az lsimts. Szinte brmelyik mvelet elvgezhet csak billentyzetrl vagy egrrel. A gv csomagjnak teleptshez a kvetkez parancsot hasznlhatjuk:
# pkg_add -r gv

Ha pedig nem tudjuk letlteni a csomagot, hasznlhatjuk a Portgyjtemnyt is:


# cd /usr/ports/print/gv # make install clean

6.4.3. Xpdf
Ha egy egyszer FreeBSD-s PDF megjelentre lenne szksgnk, erre a clra az Xpdf pontosan megfelel. Nagyon kevs erforrst ignyel s nagyon megbzhat. A szabvnyos X-beli bettpusokat hasznlja, s nincs szksge sem a Motifra, sem pedig ms X-es eszkzkszletre. Az Xpdf csomagjnak felrakshoz az albbi parancs javasolt:
# pkg_add -r xpdf

Amennyiben nem ll rendelkezsre az emltett csomag, vagy egyszeren csak a Portgyjtemnybl szeretnnk felrakni, adjuk ki ezeket a parancsokat:
# cd /usr/ports/graphics/xpdf # make install clean

Ahogy a telepts befejezdik, mr el is indthatjuk az Xpdf alkalmazst, ahol a jobb egrgombbal tudjuk aktivlni a ment.

6.4.4. GQview
A GQview egy kpkezel. llomnyokat tudunk megnyitni benne egyetlen kattintssal, kls szerkesztprogramot tudunk indtani vagy akr mg a kpek kicsinytett vltozatait is lthatjuk s gy tovbb. Megtallhat benne a diavetts s az alapvet llomnymveletek. Kpgyjtemnyeket is kezelhetnk s knnyedn megtallhatjuk a bennk lev kpek kztt az egyezeket. A GQview teljes kpernys nzegetst is megenged, illetve tmogatja a honostst. A GQview csomag teleptshez ezt a parancsot kell kiadni:
# pkg_add -r gqview

Amikor ez a csomag nem tlthet le, vagy amikor inkbb a Portgyjtemnybl szeretnnk felrakni, ezt rjuk be:
# cd /usr/ports/graphics/gqview # make install clean

173

Fejezet 6. Asztali alkalmazsok

6.5. Pnzgyi szoftverek


Ha brmilyen ok folytn a FreeBSD-vel szeretnnk kezeli szemlyes pnzgyeinket, akadnak olyan kellen komoly s knnyen kezelhet alkalmazsok, amelyek csak a teleptskre vrnak. Nhnyuk kzlk kompatibilis az elterjedtebb llomnyformtumokkal, mint pldul amiben a Quicken s az Excel is trolja az adatait. Ebben a rszben az albbi programokat vesszk sorra: Alkalmazs GnuCash Gnumeric Abacus KMyMoney Erforrsigny kevs kevs kevs kevs Telepts forrsbl nehz nehz knny nehz Fbb fggsgek GNOME GNOME Tcl/Tk KDE

6.5.1. GnuCash
A GnuCash a GNOME rsze, s egy felhasznlbart, mgis hatkony eszkzt ad a felhasznlk kezbe. A GnuCash segtsgvel nyilvn tudjuk tartani a bevteleinket s kiadsainkat, bankszmlinkat s befektetseinket. Fellete intuitv, mikzben tovbbra is professzionlis minsg. A GnuCash-ben megtallhatunk egy intelligens nyilvntartst, a szmlk hierarchikus rendszert, s szmtalan billentykombincit s automatikus kiegsztst, amivel felgyorsul a munknk. Egyetlen tranzakcit kpes felbontani tbb kisebb s rszletesebb elemre. A GnuCash kpes importlni s exportlni a Quicken QIF tpus llomnyait. Ezen kvl mg kezeli a legtbb nemzetkzi dtumformtumot s pnznemet. A GnuCash-t az albbi mdon tudjuk telepteni a rendszernkre:
# pkg_add -r gnucash

Ha ez a csomag nem rhet el, hasznlhatjuk a Portgyjtemnyt is:


# cd /usr/ports/finance/gnucash # make install clean

6.5.2. Gnumeric
A Gnumeric egy tblzatkezel program, a GNOME munkakrnyezet rsze. Sok esetben kpes a helyzethez alkalmazkodva automatikusan kitallni a felhasznl gondolatait a cellk formtumnak megfelel automatikus kiegszt rendszervel. Be tud olvasni szmos npszerbb formtumot, mint pldul az Excel, Lotus 1-2-3 vagy a Quattro Pro llomnyait. A math/guppi grakonkszt programon keresztl tmogatja grakonok rajzolst is. Nagy szm beptett funkcival rendelkezik, s ismeri az sszes megszokott cellaformtumot, legyen az szm, pnznem, dtum, id vagy brmi ms. A Gnumeric teleptst az albbi paranccsal adhatjuk ki:
# pkg_add -r gnumeric

Ha valamirt nem rhet el ez a csomag, a Portgyjtemnybl is fel tudjuk rakni:

174

Fejezet 6. Asztali alkalmazsok


# cd /usr/ports/math/gnumeric # make install clean

6.5.3. Abacus
Az Abacus egy kicsi s egyszeren hasznlhat tblzatkezel program. Szmos olyan funkcit tartalmaz beptve, amelyek kifejezetten hasznosnak bizonyulhatnak a statisztika, pnzgyek s a matematika terletn. Importlni s exportlni tudja az Excel llomnyformtumt is. Az Abacus mg PostScript formtum kimenetet is tud kszteni. Az Abacus teleptshez csupn ennyit kell tennnk:
# pkg_add -r abacus

Amennyiben viszont nem rhet el ez a csomag, hasznlhatjuk a Portgyjtemnyt is:


# cd /usr/ports/deskutils/abacus # make install clean

6.5.4. KMyMoney
A KMyMoney a KDE rszeknt kifejlesztett szemlyi pnzgyi nyilvntart. A KMyMoney igyekszik az sszes kereskedelmi pnzgyi nyilvntart programban megtallhat fontosabb lehetsget magban foglalni s rendelkezsre bocstani. Mindezek mellett egy knnyen hasznlhat s nagyon gyes ketts knyvelst is tallhatunk benne. A KMyMoney kpes beolvasni a szabvnyos Quicken Interchange Format (QIF) szerint kszlt llomnyokat, kvetni a befektetseket, tbbfle pnznemet kezelni s sok fajta kimutatst tudunk vele kszteni. A megfelel bvtmny hozzadsval mg az OFX formtum llomnyok olvassra is alkalmas. A KMyMoney csomagknt gy telepthet:
# pkg_add -r kmymoney2

Ha ez a csomag nem rhet el, akkor a Portgyjtemnyen keresztl is fel tudjuk rakni:
# cd /usr/ports/finance/kmymoney2 # make install clean

6.6. sszefoglals
Mikzben a FreeBSD igen npszer az internetszolgltatk krben a teljestmnye s megbzhatsga rvn, a htkznapi hasznlatban is remekl bevlik. Tbbezernyi olyan alkalmazs rhet el hozz csomag (http://www.FreeBSD.org/where.html)knt vagy port (http://www.FreeBSD.org/ports/index.html)knt, amelyekkel az ignyeinknek megfelel munkakrnyezetet tudjuk kipteni. me egy rvidke emlkeztet azokrl az asztali alkalmazsokrl, melyeket a fejezetben trgyaltunk: Alkalmazs Csomag Port

175

Fejezet 6. Asztali alkalmazsok Alkalmazs Opera Firefox KOfce AbiWord The GIMP OpenOfce.org Acrobat Reader gv Xpdf GQview GnuCash Gnumeric Abacus KMyMoney Csomag
opera firefox koffice-kde3 abiword gimp openoffice acroread gv xpdf gqview gnucash gnumeric abacus kmymoney2

Port
www/opera www/firefox editors/koffice-kde3 editors/abiword graphics/gimp editors/openoffice.org-3 print/acroread8 print/gv graphics/xpdf graphics/gqview finance/gnucash math/gnumeric deskutils/abacus finance/kmymoney2

176

Fejezet 7. Multimdia
Szerkesztette: Ross Lippert.

7.1. ttekints
A FreeBSD a hangkrtyk szles vlasztkt ismeri, ami ltal kpesek vagyunk szmtgpnkkel hi- minsg hangzst ltrehozni. Ennek rszeknt rgzteni s visszajtszani tudunk tbbek kzt MPEG Audio Layer 3 (MP3), WAV s Ogg Vorbis formtumokban. A FreeBSD Portgyjtemnye ezenkvl tartalmaz mg olyan alkalmazsokat is, amelyekkel szerkeszteni lehet a felvett hangokat, effekteket hozztenni s vezrelni a hangkrtynkhoz csatlakoztatott MIDI eszkzket. Nmi ksrletezssel a FreeBSD mg videollomnyok s DVD-k lejtszsra is rvehet. A klnfle videoanyagok kdolsra, konvertlsra s visszajtszsra alkalmas programok szma azonban jval kisebb, mint a hanganyagok esetn. Pldul az rs pillanatban nincs a FreeBSD Portgyjtemnyben a formtumok kzti konvertlsra alkalmas, a videkat olyan jl jrakdolni tud alkalmazs, amilyen az audio esetn az audio/sox. Azonban ezen a terleten a szoftverek palettja gyorsan vltozik. Ebben a fejezetben bemutatjuk a hangkrtynk belltshoz szksges lpseket. Az X11 teleptse s belltsa (5 fejezet) sorn ugyan mr foglalkoztunk a videokrtynkkal kapcsolatos hardveres problmkkal, azonban a jobb visszajtszs rdekben tovbbi cselfogsokat is be kell majd vetnnk. A fejezet elolvassa sorn megismerjk:

hogyan lltsuk be gy a rendszernket, hogy felismerje a hangkrtynkat; hogyan bizonyosodjuk meg rla, hogy a krtynk valban mkdik; hogyan oldjuk meg a hangkrtya belltsa sorn felmerl problmkat; hogyan jtsszunk le s kdoljunk MP3-at vagy ms egyb hangformtumot; hogyan tmogatja a videokat az X szerver; hogyan adnak az egyes lejtszk s kdolk mg jobb eredmnyt hogyan jtsszunk le DVD-ket, .mpg s .avi llomnyokat; hogyan mentsk a CD-k s DVD-k tartalmt llomnyokba; hogyan lltsuk be a TV krtynkat hogyan lltsunk be egy scannert.

A fejezet elolvasshoz ajnlott:

egy j rendszermag belltsnak s teleptsnek ismerete (8 fejezet).


FigyelemHa zenei CD-ket prblunk meg a mount(8) paranccsal csatlakoztatni, akkor az hibval, vagy a legrosszabb esetben akr teljes rendszersszeomlssal is jrhat. Az ilyen tpus lemezek az ISO szabvny llomnyrendszerektl eltr kdolssal rendelkeznek.

177

Fejezet 7. Multimdia

7.2. A hangkrtya belltsa


rta: Moses Moore. A FreeBSD 5.X verzijhoz igaztotta: Marc Fonvieille.

7.2.1. A rendszer belltsa


A mvelet megkezdse eltt ki kell dertennk, milyen tpus hangkrtynk van, milyen chip van rajta, PCI vagy ISA buszon csatlakozik-e. A FreeBSD rengeteg PCI s ISA buszos krtyt ismer egyarnt. A sajtunk beazonostshoz a tmogatott hangeszkzk listjt a Hardware Notes (http://www.FreeBSD.org/releases/8.0R/hardware.html) (Hardverjegyzk) oldaln tallhatjuk meg. Ebbl a jegyzkbl mellesleg azt is megtudhatjuk, hogy melyik meghajt kezeli a krtynkat. A hangeszkznk hasznlathoz be kell tltennk a neki megfelel meghajtt. Ez kt mdon is megtehet. Ezek kzl az a legknnyebb, ha a kldload(8) paranccsal egyszeren betltjk a rendszermag hangkrtynkhoz tartoz moduljt. Ezt megtehetjk kzvetlenl parancssorbl:
# kldload snd_emu10k1

vagy a /boot/loader.conf llomnybl az albbihoz hasonl sor hozzadsval:


snd_emu10k1_load="YES"

A fenti pldk a Creative SoundBlaster Live! hangkrtyra vonatkoznak. A tbbi betlthet hangkrtya-modul felsorolsa a /boot/defaults/loader.conf llomnyban tallhat. Ha nem vagyunk benne biztosak, hogy melyik meghajtt is akarjuk pontosan hasznlni, akkor prblkozzunk az snd_driver modul betltsvel:
# kldload snd_driver

Ez egy olyan metameghajt, ami egyszerre betlti az sszes rintett eszkzmeghajtt, s segtsgvel felgyorsthatjuk a megfelel meghajt megtallst. A /boot/loader.conf hasznlatval is be tudjuk ugyangy tlteni az sszes meghajtt. Az snd_driver metameghajt betltse utn gy kereshetjk meg a tnylegesen hasznlatban lev meghajtt, ha megnzzk a /dev/sndstat llomnyt a cat /dev/sndstat paranccsal. A msodik mdszer szerint a hangkrtynk tmogatst statikusan beptjk a rendszermagba. A lentebb tallhat szakaszban olvashatjuk mindazok az informcikat, amikre szksgnk lehet ennek elvgzse kzben. A rendszermag jrafordtsval kapcsolatban forduljunk a 8 fejezethez.

7.2.1.1. A hangkrtya tmogatsval rendelkez sajt rendszermag sszelltsa


Elsknt hozz kell adnunk a rendszermaghoz a hangeszkzk alapmeghajtjt, a sound(4) eszkzt. Ezt a rendszermag belltsait tartalmaz llomnyban az albbi sor felvtelvel tehetjk meg:
device sound

Ezutn tegyk mg hozz a hangkrtynkhoz kapcsold tmogatst is. Ehhez viszont pontosan tudunk kell, melyik meghajt kpes mkdtetni a krtyt. A hangkrtyhoz tartoz meghajtt a Hardware Notes (http://www.FreeBSD.org/releases/8.0R/hardware.html) (Hardverjegyzk)-ben tallhat eszkzk listjbl derthetjk ki. Pldul a Creative SoundBlaster Live! hangkrtyt a snd_emu10k1(4) meghajt kezeli. Ennek a hangkrtynak a tmogatst az albbi sorral llthatjuk be:

178

Fejezet 7. Multimdia
device snd_emu10k1

Az itt hasznlatos formtumot a meghajt man oldalnak tolvassbl tudhatjuk meg. Azonban az sszes tmogatott hangkrtya meghajt megadsnak pontos formtuma megtallhat a /usr/src/sys/conf/NOTES llomnyban is. A PnP (Plug n Play)-t nem ismer ISA krtyk esetn az sszes tbbi nem PnP-s ISA krtyhoz hasonlan szksges lehet a rendszermag szmra megadnunk a krtya hardveres belltsait (IRQ, I/O port stb). Ezt a /boot/device.hints llomnyon keresztl tehetjk meg. A rendszerindtsi folyamat sorn a loader(8) beolvassa ezt az llomnyt, majd tadja a benne szerepl informcikat a rendszermagnak. Pldul a Creative SoundBlaster 16, nem PnP-s ISA krtya az snd_sb16 meghajtval egytt az snd_sbc(4) meghajtt hasznlja. A krtya hasznlathoz a rendszermag belltsait tartalmaz llomnyba ezeket a sorokat kell megadni:
device snd_sbc device snd_sb16

valamint a /boot/device.hints llomnyba ezeket:


hint.sbc.0.at="isa" hint.sbc.0.port="0x220" hint.sbc.0.irq="5" hint.sbc.0.drq="1" hint.sbc.0.flags="0x15"

Ekkor a krtya a 0x220 I/O portot s 5 IRQ-t hasznlja. A /boot/device.hints llomnyban alkalmazott felrsi mdrl bvebben a sound(4), valamint a krdses meghajt man oldaln tjkozdhatunk. A fentiekben bemutatott belltsok alaprtelmezettek, nhny esetben azonban a krtynknak megfelelen meg kell vltoztatnunk az IRQ s egyb rtkeket. Errl a krtyrl konkrtan a snd_sbc(4) man oldalon olvashatunk rszletesebben.

7.2.2. A hangkrtya kiprblsa


Miutn jraindtottuk a szmtgpnket a mdostott rendszermaggal, vagy miutn betltttk a szksges modult, a hangkrtynak valahogy gy kell megjelennie a rendszernk zenetpufferben (dmesg(8)):
pcm0: <Intel ICH3 (82801CA)> port 0xdc80-0xdcbf,0xd800-0xd8ff irq 5 at device 31.5 on pci0 pcm0: [GIANT-LOCKED] pcm0: <Cirrus Logic CS4205 AC97 Codec>

A hangkrtynk llapota a /dev/sndstat llomnyon keresztl ellenrizhet:


# cat /dev/sndstat

FreeBSD Audio Driver (newpcm) Installed devices: pcm0: <Intel ICH3 (82801CA)> at io 0xd800, 0xdc80 irq 5 bufsz 16384 kld snd_ich (1p/2r/0v channels duplex default)

179

Fejezet 7. Multimdia Ez a kirs rendszernknt eltrhet. Ha nem ltunk semmilyen pcm0 eszkzt, akkor menjnk vissza s nzzk t jra, pontosan mit is csinltunk. Vizsgljuk t a rendszermagunk belltsait tartalmaz llomnyt s gyzdjnk meg rla, hogy a megfelel meghajtt adtuk meg. Az itt felmerl gyakori gondokkal a 7.2.2.1 Szakasz foglalkozik. Ha azonban minden remekl haladt, akkor most mr van egy mkd hangkrtynk. Ha rendesen sszekapcsoltuk hangkrtynkat a CD- vagy DVD-meghajtnk audio csatlakozsval, akkor tegynk egy CD-t a meghajtba s kezdjk el jtszani a cdcontrol(1) paranccsal:
% cdcontrol -f /dev/acd0 play 1

Az olyan alkalmazsok, mint pldul az audio/workman, ehhez egy sokkal bartsgosabb felletet nyjtanak. Az MP3 formtum llomnyok meghallgatshoz pedig minden bizonnyal jl fog jnni egy olyan alkalmazs is, mint pldul az audio/mpg123. A krtyt gy is tesztelhetjk, ha az albbihoz hasonl mdon adatokat kldnk a /dev/dsp llomnyba:
% cat llomnynv > /dev/dsp

ahol az llomnynv tetszleges llomny neve lehet. A parancs hatsra valamilyen zajt kell hallanunk, s ez egyben meg is ersti, hogy a hangkrtynk mkdik. A hangkrtynk csatorninak jellemzit a mixer(8) paranccsal llthatjuk. Errl tovbbi rszleteket a mixer(8) man oldalon olvashatunk.

7.2.2.1. Gyakori problmk


Hiba sb_dspwr(XX) timed out bad irq XX Megolds Nem lltottuk be jl az I/O portot. Nem lltottuk be jl az IRQ rtkt. Gondoskodjunk rla, hogy a belltott rtk megegyezik a hangkrtynkval.

xxx: gus pcm not attached, out of memory Nincs elg memria az eszkz hasznlathoz. xxx: cant open /dev/dsp! A fstat | grep dsp parancs kiadsval ellenrizzk, hogy valamelyik alkalmazs hasznlja-e mr az eszkzt. Gyakori bajkever az esound s a KDE hangtmogatsa.

7.2.3. Tbb hangforrs kihasznlsa


rta: Munish Chopra. Gyakoran szksgnk lehet tbb hangforrs egyidej hasznlatra, fleg olyankor, amikor az esound vagy az artsd bizonyos alkalmazsokkal nem hajland megosztani a hangeszkzt. A FreeBSD ezt a virtulis hangcsatornk hasznlatval oldja meg, amit a sysctl(8) eszkzn keresztl tudunk engedlyezni. Amikor a rendszermagban virtulis csatornk hasznlatval kevernk, akkor lnyegben kpesek vagyunk a hangkrtynk ltal egyszerre jtszhat hangok szmt megtbbszrzni. A virtulis csatornk szmnak belltshoz a sysctl kt vltozjt kell mdostanunk, amelyet root felhasznlknt gy tehetnk meg:

180

Fejezet 7. Multimdia
# sysctl dev.pcm.0.play.vchans=4 # sysctl dev.pcm.0.rec.vchans=4 # sysctl hw.snd.maxautovchans=4

A fenti plda ngy virtulis csatornt hoz ltre, ami egszen jellemz a mindennapi hasznlatban. A dev.pcm.0.play.vchans s dev.pcm.0.rec.vchans a pcm0 eszkz lejtszsra s felvtelre hasznlt virtulis csatorninak szmt adja meg, amelyet az eszkz csatlakoztatsa utn tudunk belltani. A hw.snd.maxautovchans az j eszkzhz tartoz virtulis csatornkat adja meg, ami akkor lltdik be, amikor a kldload(8) paranccsal csatlakoztatjuk. Mivel a pcm modul a tbbi eszkzmeghajttl fggetlenl tltdik be, ezrt a hw.snd.maxautovchans azt trolja, hogy a ksbb hozz csatlakoz eszkzk mennyi virtulis csatornt fognak majd kapni. Errl rszletesebben a pcm(4) man oldalon olvashatunk.
Megjegyzs: A hasznlatban lev eszkzknl nem tudjuk megvltoztatni a virtulis csatornk szmt. Ehhez elszr le kell lltanunk az eszkzt hasznl sszes programot, teht a zenelejtszkat s hangdmonokat.

Amennyiben nem hasznljuk ki a devfs(5) ltal nyjtott lehetsgeket, az sszes alkalmazsnak a /dev/dsp0.x eszkzre kell mutatnia, ahol az x rtke 0-tl 3-ig terjedhet attl fggen, hogy a dev.pcm.0.rec.vchans rtkt a fenti pldhoz hasonlan 4-re lltottuk-e. A devfs(5) megoldst hasznl rendszerek esetn ez a folyamat automatikusan lezajlik, teht az sszes /dev/dsp eszkzre irnyul krs magtl tirnytdik.

7.2.4. A kever alaprtelmezett rtkeinek belltsa


rta: Josef El-Rayes. A keverben megjelen klnbz csatornk alaprtkei a pcm(4) meghajt forrskdjban huzalozottan tallhatak meg. Szmos alkalmazs s dmon segt kt hvs kzt megrizni a keverben belltott rtkeket, azonban ez nem teljesen egy tiszta megolds. A meghajt szintjn is be tudjuk lltani a kever alaprtkeit ezt a /boot/device.hints llomny megfelel mdostsval rhetjk el, pldul:
hint.pcm.0.vol="50"

Ezzel a pcm(4) modul betltse sorn a hanger (volume) csatorna alaprtelmezett rtket 50-re lltjuk.

7.3. MP3
rta: Chern Lee. Az MP3 (MPEG Layer 3 Audio) hasznlatval kzel CD minsg hangot lehet elrni, ezrt a mi FreeBSD munkallomsunk sem maradhat ki elnyeinek lvezetbl.

7.3.1. MP3 lejtszk


Az XMMS (X Multimedia System) kiemelkeden a legnpszerbb X11-es MP3 lejtsz. Mivel az XMMS grakus felhasznli fellete szinte teljesen megegyezik a Nullsoft Winampjnak felletvel, ezrt mg a Winamp skinjeit is hasznlhatjuk vele. Az XMMS-ben ezenkvl mg a natv pluginek tmogatst is megtallhatjuk.

181

Fejezet 7. Multimdia Az XMMS a multimedia/xmms portbl vagy csomagbl telepthet. Az XMMS hasznlatra knny rrezni: megtalljuk benne a lejtszand szmok listjt, egy grakus hangsznszablyzt s mg sok minden mst. Akik mr ismerik a Winamp mkdst, azok az XMMS-t is egyszernek rzik majd. Mellette az audio/mpg123 port egy msik, parancssoros MP3 lejtszt knl fel. Az mpg123 futtatshoz paramterknt meg kell adnunk a hangeszkzt s lejtszand MP3 llomnyt. Ha a hangeszkznk a /dev/dsp1.0 s a IzMiz-Slger.mp3 nev MP3 llomnyt akarjuk rajta lejtszatni, akkor a kvetkezt kell begpelnnk:
# mpg123 -a /dev/dsp1.0 IzMiz-Slger.mp3

High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2 and 3. Version 0.59r (1999/Jun/15). Written and copyrights by Michael Hipp. Uses code from various people. See README for more! THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK!

Playing MPEG stream from IzMiz-Slger.mp3 ... MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo

7.3.2. Svok lementse CD-rl


Mieltt MP3 formtumba tmrtennk egy CD-t vagy annak egy svjt, a CD-n tallhat audio adatot valahogy le kell tudnunk szedni a merevlemezre. Ezt gy tehetjk meg, ha a nyers CDDA (CD Digital Audio) adatot WAV formtum llomnyokba mentjk. A sysutils/cdrtools csomag rszeknt elrhet cdda2wav segdprogrammal tudjuk a CD-ken lev audio s a hozzjuk tartoz egyb informcikat leszedni. A meghajtban lev CD teljes tartalmt (root felhasznlknt) a kvetkez parancs kiadsval lehet (svonknt) klnll WAV llomnyokba menteni:
# cdda2wav -D 0,1,0 -B

A cdda2wav ismeri az ATAPI (IDE) CD-meghajtkat, hasznlatukhoz a SCSI egysg sorszma helyett az eszkz nevt kell megadni. Teht pldul gy szedjk le egy IDE-meghajtrl a 7. svot:
# cdda2wav -D /dev/acd0 -t 7

A -D 0,1,0 a 0,1,0 sorszm SCSI eszkzre utal, ami megfelel cdrecord -scanbus parancs eredmnynek. Az egyes svok lementshez a -t kapcsol hasznlhat:
# cdda2wav -D 0,1,0 -t 7

A plda szerint a zenei CD-rl a hetedik svot szedjk le. Egyszerre tbb svot, pldul az elstl a hetedikig, egy tartomny megadsval menthetnk le:
# cdda2wav -D 0,1,0 -t 1+7

182

Fejezet 7. Multimdia A dd(1) segdprogram is hasznlhat ATAPI eszkzkn lev hangsvok kimentshez. Ennek lehetsgrl rszletesebben a 18.6.5 Szakaszban olvashatunk.

7.3.3. MP3 llomnyok tmrtse


Az MP3 llomny tmrtsre manapsg a legtbben a lame elnevezs kdolt vlasztjk. A portfban a lame az
audio/lame helyen tallhat meg.

Az elbb kimentett WAV llomnyok felhasznlsval az albbi paranccsal tudjuk talaktani a audio01.wav llomnyt audio01.mp3 llomnny:
# lame -h -b 128 \ --tt "Iz dal cme" \ --ta "Iz-miz elad" \ --tl "Iz-miz album " \ --ty "2001" \ --tc "Leszedte s tmrtette: Iz" \ --tg "Mfaj" \
audio01.wav audio01.mp3

A 128 kbites tmrts a gyakorlatban leginkbb hasznlt kdolsi arny, sokan azonban a sokkal jobb minsg 160 vagy 192 kbites tmrtst szeretik. Minl nagyobb a kdolsi arny, annl tbb helyet fog foglalni a keletkez MP3 llomny habr a minsge is jobb lesz. A -h kapcsol alkalmazsval tudjuk aktivizlni a jobb minsg de valamivel lassabb mdot. A --t kezdet paramterek ID3 tageket adnak meg, amelyek segtsgvel az MP3 llomnyokba rjuk vonatkoz informcikat tudunk begyazni. A tmrts tovbbi belltsairl a lame man oldaln tjkozdhatunk.

7.3.4. MP3 llomnyok kitmrtse


Ha MP3 formtum llomnyokat szeretnnk audio CD-re rni, akkor ehhez elszr tmrtetlen WAV formtumba kell ezeket alaktanunk. Az XMMS s az mpg123 is egyarnt lehetsged ad az MP3 llomnyok kitmrtsre. Lemezre rs az XMMS-sel: 1. 2. 3. 4. 5. 6. 7. 8. 9. Indtsuk el az XMMS alkalmazst. Az XMMS menjnek felhozshoz kattinsunk jobb gombbal az ablakjra. Vlasszuk az Options almenben tallhat Preference menpontot. Vltoztassuk meg az Output Plugin belltst a Disk Writer Plugin rtkre. Nyomjunk a Configure gombra. rjuk be (vagy vlasszuk ki a Browse gombbal) a knyvtrat, ahov majd a kitmrtett llomnyok kerlnek. Az eddig megszokottak szerint tltsk be az XMMS-be az MP3 llomnyt, lltsuk 100%-ra a hangert s kapcsoljuk ki a hangsznszablyzt (EQ, equalizer). Nyomjuk le a Play gombot gy fog tnni, mintha az XMMS jtszan az MP3 llomnyt, de nem hallunk semmit. Ekkor a tartalmt llomnyba menti. Mikor befejeztk a kitmrtst, ne felejtsk el visszalltani az Output Plugin rtkt az alaprtelmezettre.

183

Fejezet 7. Multimdia rs a szabvnyos kimenetre az mpg123-mal: 1. Futtassuk le a mpg123 -s audio01.mp3 > audio01.pcm parancsot.

Az XMMS az llomnyokat WAV formtumban rja, mikzben az mpg123 nyers PCM hangadatokat kpez bellk. A cdrecord hasznlata sorn mind a kt formtumbl hozhatak ltre audio CD-k. A nyers PCM a burncd(8) programmal hasznlhat. Amikor WAV llomnyokkal dolgozunk, minden egyes sv elejn egy apr kattanst hallhatunk: ez a WAV llomny fejlce lesz. A (audio/sox portbl vagy csomagbl telepthet) SoX segdprogrammal a WAV formtum llomnyok fejlce pillanatok alatt eltvolthat:
% sox -t wav -r 44100 -s -w -c 2 track.wav track.raw

A CD-rk FreeBSD alatti hasznlatval kapcsolatban olvassuk el a 18.6 Szakaszt.

7.4. Videk lejtszsa


rta: Ross Lippert. A videolejtszs egy nagyon friss s gyorsan fejld alkalmazsi terlet. Legynk trelmesek, ez nem minden fog annyira knnyen menni, mint a hangok esetben. A kezdshez nem rt tudnunk, hogy a videokrtynk milyen gyrtmny s milyen chipet hasznl. Mg az Xorg s az XFree86 szmos klnfle videokrtyt ismer, csupn tredkkkel lehet j lejtszsi teljestmnyt elhozni. Az X11 futtatsa kzben az xdpyinfo(1) parancs kiadsval krdezhetjk le az X szervertl a krtynk hasznlatval elrhet kiterjesztseket. rdemes a keznk gyben tartani egy rvidke MPEG formtum llomnyt, amellyel majd ki tudjuk prblni a klnfle lejtszkat s azok belltsait. Mivel egyes DVD lejtszk alaprtelmezs szerint a /dev/dvd helyen keresik a lejtszand DVD eszkzt, vagy egyszeren csak gy rtk meg ezeket mindenkppen hasznos lehet, ha szimbolikus linkeket hozunk ltre a megfelel eszkzkre:
# ln -sf /dev/acd0 /dev/dvd # ln -sf /dev/acd0 /dev/rdvd

A devfs(5) mkdse miatt azonban ezek a kzzel ltrehozott linkek az jraindts utn mr nem maradnak meg. A szimbolikus linkeket a rendszer minden egyes indulsakor gy tudjuk automatikusan ltrehozni, hogy ha az /etc/devfs.conf llomnyba felvesszk az albbi sort:
link acd0 dvd link acd0 rdvd

Emellett a DVD-k titkostsnak feloldsa, mely a DVD-meghajtk specilis funkciit ignyli, a DVD eszkzkn rsi jogot is ignyel. Az X11 osztott memrit kezel felletnek gyorstshoz javasolt nhny sysctl(8) vltoz rtknek megnvelse is:
kern.ipc.shmmax=67108864 kern.ipc.shmall=32768

184

Fejezet 7. Multimdia

7.4.1. A megjelent kpessgeinek megllaptsa


Tbb klnbz ton lehet X11 alatt videkat nzni, de ennek tnyleges mdjt igazbl a rendelkezsre ll hardver hatrozza meg. Az itt lert mdszerek ltal kihozhat minsg hardverenkt eltrhet. Msodsorban a videk megjelentse az X11-ben az utbbi idben igen nagy hangslyt kapott, ezrt az Xorg s az XFree86 minden egyes vltozatval jelentsen javulhat a helyzet ezen a tren. A videk megjelentsre hasznlt gyakori felletek: 1. X11: az X11 normlis kimenete osztott memrin keresztl 2. XVideo: az X11 felletnek kiterjesztse, ami tetszleges X11 ltal kirajzolhat objektum esetn tmogat videt 3. SDL: a Simple Directmedia Layer 4. DGA: a Direct Graphics Access (kzvetlen grakus hozzfrs) 5. SVGAlib: alacsonyszint konzolos grakus rteg

7.4.1.1. XVideo
Az Xorg s az XFree86 4.X rendelkezik egy XVideo (avagy Xvideo, Xv, xv) elnevezs kiterjesztssel, amelyen keresztl egy specilis gyorsts segtsgvel a kirajzolhat objektumokban kzvetlenl meg tudunk jelenteni videkat. Ezzel a kiterjesztssel mg a gyengbb gpeken is nagyon j minsg lejtszst tudunk elrni. A kiterjeszts mkdsrl az xvinfo parancs kiadsval gyzdhetnk meg:
% xvinfo

Ha a parancs eredmnye ehhez hasonl, akkor a krtynk tmogatja az XVidet:


X-Video Extension version 2.2 screen #0 Adaptor #0: "Savage Streams Engine" number of ports: 1 port base: 43 operations supported: PutImage supported visuals: depth 16, visualID 0x22 depth 16, visualID 0x23 number of attributes: 5 "XV_COLORKEY" (range 0 to 16777215) client settable attribute client gettable attribute (current "XV_BRIGHTNESS" (range -128 to 127) client settable attribute client gettable attribute (current "XV_CONTRAST" (range 0 to 255) client settable attribute client gettable attribute (current "XV_SATURATION" (range 0 to 255) client settable attribute client gettable attribute (current "XV_HUE" (range -180 to 180) client settable attribute

value is 2110)

value is 0)

value is 128)

value is 128)

185

Fejezet 7. Multimdia
client gettable attribute (current value is 0) maximum XvImage size: 1024 x 1024 Number of image formats: 7 id: 0x32595559 (YUY2) guid: 59555932-0000-0010-8000-00aa00389b71 bits per pixel: 16 number of planes: 1 type: YUV (packed) id: 0x32315659 (YV12) guid: 59563132-0000-0010-8000-00aa00389b71 bits per pixel: 12 number of planes: 3 type: YUV (planar) id: 0x30323449 (I420) guid: 49343230-0000-0010-8000-00aa00389b71 bits per pixel: 12 number of planes: 3 type: YUV (planar) id: 0x36315652 (RV16) guid: 52563135-0000-0000-0000-000000000000 bits per pixel: 16 number of planes: 1 type: RGB (packed) depth: 0 red, green, blue masks: 0x1f, 0x3e0, 0x7c00 id: 0x35315652 (RV15) guid: 52563136-0000-0000-0000-000000000000 bits per pixel: 16 number of planes: 1 type: RGB (packed) depth: 0 red, green, blue masks: 0x1f, 0x7e0, 0xf800 id: 0x31313259 (Y211) guid: 59323131-0000-0010-8000-00aa00389b71 bits per pixel: 6 number of planes: 3 type: YUV (packed) id: 0x0 guid: 00000000-0000-0000-0000-000000000000 bits per pixel: 0 number of planes: 0 type: RGB (packed) depth: 1 red, green, blue masks: 0x0, 0x0, 0x0

Az XVideo nem mindegyik implementcijban vannak jelen a felsorolt formtumok (YUV2, YUV12 stb.), ami viszont nhny lejtsz szmra akadlyokat jelenthet. Amennyiben viszont ezt ltjuk:
X-Video Extension version 2.2 screen #0 no adaptors present

186

Fejezet 7. Multimdia Akkor a krtynk nem rendelkezik XVideo tmogatssal. Ha az XVideo nem tmogatott a krtynk szmra, akkor az csupn csak annyit jelent, hogy a gpnknek nehz dolga lesz a videk megjelentshez szksges szmtsi kapacits kiszolglsban. Azonban a videokrtynktl s processzorunktl fggen mg gy is kielgt eredmnyt tudunk elcsalni. Ekkor viszont minden bizonnyal rdemes lesz tolvasnunk 7.4.3 Szakaszban, hogyan tudjuk nvelni a teljestmnyt.

7.4.1.2. A Simple Directmedia Layer


A Simple Directmedia Layer, vagy SDL, eredetileg a Microsoft Windows, BeOS s UNIX kzti hordozhatsgot szndkozta megvalstani, aminek segtsgvel a hangot s grakt hatkonyan hasznlni tud alkalmazsok hozhatak ltre. Az SDL ltal nyjtott rteg a hardver olyan alacsonyszint absztrakcijt leli fel, amely gyakran mg az X11 felletnl is hatkonyabb. Az SDL a devel/sdl12 helyen tallhat.

7.4.1.3. Direct Graphics Access (Kzvetlen grakus hozzfrs)


A kzvetlen grakus hozzfrs az X11 egy olyan kiterjesztse, ami lehetv teszi a programok szmra az X szerver megkerlst s gy kzvetlenl a videokrtya memrijt kpesek elrni. Mivel a megoszts hatkony megvalstshoz ez nagyban ptkezik alacsonyszint lekpzsi mveletekre, ezrt az ilyet hasznl programokat root felhasznlknt kell futtatni. A DGA kiterjeszts a dga(1) segtsgvel tesztelhet s mrhet. A dga parancs kiadsa utn minden billenty lenyomsra megvltoztatja a kpernyn lthat szneket. A kilpshez a q billentyt kell lenyomni.

7.4.2. A videkkal foglalkoz portok s csomagok


Ebben a szakaszban a FreeBSD Portgyjtemnybl a videk lejtszsra alkalmas programokat vesszk szmba. A videolejtszs nagyon gyorsan fejld terlet, ezrt az itt emltett klnbz alkalmazsok kpessgei az itt lertaktl nmileg eltrhetnek. Elszr is fontos tisztban lennnk azzal, hogy szmos FreeBSD-n fut videoalkalmazs eredetileg linuxos alkalmazsknt indult, s kzlk sokan mg csak bta minsgek. me a FreeBSD-n is megtallhat videocsomagokkal kapcsolatos nhny olyan gond, amivel esetleg sszefuthatunk: 1. Az egyik alkalmazs nem kpes visszajtszani olyan llomnyt, amit egy msik alkalmazs hozott ltre. 2. Az alkalmazs nem kpes visszajtszani a sajt maga ltal ksztett llomnyokat. 3. Ugyanazon az alkalmazs kt klnbz gpen, amikor mind a kettn az adott kongurcira fordtjuk le, ugyanazt az llomnyt mskppen jtssza vissza. 4. Egy olyan ltszlag egyrtelm szr, mint pldul a kp tmretezse, a hibs tmrtez rutin miatt nagyon csnya eredmnyt produkl. 5. Az alkalmazs gyakran elszll. 6. A porthoz nem talljuk a dokumentcit, egyedl csak az interneten vagy a port work knyvtrban van.

187

Fejezet 7. Multimdia Sok alkalmazs a linuxizmus jeleit is hordozza, vagyis gondok addhatnak abbl, hogy a szerzk az alkalmazsok mkdtetshez a Linux rendszermag s a klnfle terjesztsekben megtallhat mdostott szabvnyos knyvtrak klnlegessgeit hasznljk ki. Ezeket a portok karbantarti nem mindig szlelik s javtjk ki, ami miatt az albbiak brmikor bekvetkezhetnek: 1. A processzor jellemzit a /proc/cpuinfo llomnyon keresztl llaptjk meg. 2. A szlak helytelen hasznlatuk miatt a program befejezdsekor sszeakadnak. 3. Az alkalmazssal gyakran egytt hasznlt egyb alkalmazsok mg nem nincsenek benne a FreeBSD Portgyjtemnyben. Az ilyen alkalmazsok fejleszti a hordozhatsg javtsval s a problmk megoldsval kapcsolatban eddig mindig igyekeztek egyttmkdni a portok karbantartival.

7.4.2.1. MPlayer
Az MPlayer az utbbi idben felbukkant, gyorsan fejld videolejtsz. Fejlesztinek clja a sebessg s rugalmassg a Linux, illetve ms UNIX rendszereken. A kezdemnyezs abbl fakadt, hogy a fejleszts mgtt ll csapat alaptjnak elege lett az akkoriban elrhet lejtszk teljestmnybl. Mondhatnnk, hogy ez a program felldozta a grakus felletet az ramvonalas kialaktsrt, azonban ha hozzszokunk a parancssori belltsokhoz s a billentykn keresztli vezrlshez, remekl mkdik. 7.4.2.1.1. Az MPlayer lefordtsa Az MPlayer a multimedia/mplayer helyen tallhat. A program a fordtsi folyamat sorn elvgez szmos hardverellenrzst, aminek eredmnyekppen az egyik rendszeren fordtott program nem vihet a msikra. Ezrt klnsen fontos portbl fordtani s nem pedig binris csomagot hasznlni. Mindezek mellett a Makefile llomnyban mg szmos, a make parancsnak a fordts megkezdsekor tadhat belltst tallhatunk:
# cd /usr/ports/multimedia/mplayer # make

N - O - T - E Take a careful look into the Makefile in order to learn how to tune mplayer towards you personal preferences! For example, make WITH_GTK1 builds MPlayer with GTK1-GUI support. If you want to use the GUI, you can either install /usr/ports/multimedia/mplayer-skins or download official skin collections from http://www.mplayerhq.hu/homepage/dload.html

Az zenet fordtsa:
F - I - G - Y - E - L - E - M Az mplayert szemlyes ignyeinekhez gy tudjuk igaztani, ha figyelmesen tnzzk a Makefile llomnyt! Pldul a WITH_GTK1 megadsval az MPlayer GTK1 alap grafikus fellettel jn ltre. A grafikus fellet hasznlathoz teleptennk kell a

188

Fejezet 7. Multimdia
/usr/ports/multimedia/mplayer-skins portot is, vagy letlteni a hivatalos skingyjtemnyt a http://www.mplayerhq.hu/homepage/dload.html oldalrl.

A port alapbelltsai a legtbb felhasznl szmra megfelelek, habr az Xvid kdek hasznlathoz meg kell adnunk a WITH_XVID belltst. Rajta kvl mg az alaprtelmezett DVD eszkzt is rdemes megadni a WITH_DVD_DEVICE belltssal, amelynek alaprtke a /dev/acd0. A lers elksztsnek idpontjban az MPlayer portja ltrehozza a HTML dokumentcit s a kt vgrehajthat llomnyt: az mplayer lejtszt s videk jrakdolsrt felels mencoder segdprogramot. Az MPlayer HTML dokumentcija nagyon kzlkeny, s ha az olvas nem talln valamelyik videohardver vagy fellet lerst ebben a fejezetben, akkor ez a dokumentci mindenkppen egy hasznos olvasnivalnak bizonyul. Ha a UNIX-ok alatt elrhet videotmogats lerst keressk, hatrozottan megri idt sznni az MPlayer dokumentcijnak alapos vgigolvassra.

7.4.2.1.2. Az MPlayer hasznlata Az MPlayer hasznlathoz a felhasznli knyvtrunkban rendelkeznnk kell egy .mplayer elnevezs knyvtrral. Ezt a kvetkez paranccsal tudjuk ltrehozni:
% cd /usr/ports/multimedia/mplayer % make install-user

Az mplayer parancssori paramterei a hozztartoz man oldalon tallhatak meg, valamint mindezek a HTML dokumentciban mg rszletesebben. Ebben a szakaszban csupn nhnyukat mutatjuk be. Egy llomny, mint pldul a tesztvideo.avi, a -vo belltsval jtszhat le a klnbz felleteken:
% mplayer -vo xv tesztvideo.avi % mplayer -vo sdl tesztvideo.avi % mplayer -vo x11 tesztvideo.avi # mplayer -vo dga tesztvideo.avi # mplayer -vo sdl:dga tesztvideo.avi

rdemes az itt felsorolt kongurcik mindegyikt kiprblni, mivel az egymshoz mrt teljestmnyk rengeteg tnyezn mlik, de kzlk taln maga a hardver a legjelentsebb. A DVD-k lejtszshoz cserljk ki a tesztvideo.avi paramtert a dvd://N -dvd-device ESZKZ paramterekkel, ahol az N a lejtszand fejezet sorszma, valamint az ESZKZ a DVD-hez tartoz eszkzler. Pldul gy tudjuk elkezdeni /dev/dvd eszkzrl a 3. fejezet lejtszst:
# mplayer -vo xv dvd://3 -dvd-device /dev/dvd

Megjegyzs: A port fordtsa sorn a WITH_DVD_DEVICE paramter segtsgvel megadhat az alaprtelmezett DVD eszkz, amely alapbl a /dev/acd0. Errl tbbet a port Makefile llomnyban tallhatunk.

189

Fejezet 7. Multimdia A lelltshoz, szneteltetshez, tovbblpshez s tbbi hasonl funkcihoz tartoz billentyket a mplayer -h parancs kimenetbl vagy a man oldal elolvassbl derthetjk ki. A lejtszshoz tartoz nhny viszonylag fontos bellts: az -fs -zoom teljeskpernys mdra vlt, valamint a -framedrop segt nveli a teljestmnyt. A lejtszskor kiadand parancs tlburjnzst el tudjuk kerlni, ha ltrehozunk egy .mplayer/config llomnyt s itt lltjuk be a gyakori opcikat:
vo=xv fs=yes zoom=yes

Vgezetl megemltjk, hogy az mplayer segtsgvel a DVD-n tallhat fejezeteket ki tudjuk menteni .vob llomnyokba. A DVD msodik fejezetnek kimentshez gpeljk be ezt:
# mplayer -dumpstream -dumpfile out.vob dvd://2 -dvd-device /dev/dvd

A parancs eredmnyekppen keletkez out.vob llomny formtuma MPEG lesz, amit a fejezetben bemutatott tovbbi csomagokkal tudunk feldolgozni.

7.4.2.1.3. mencoder A mencoder hasznlatnak megkezdse eltt javasolt alaposan belesnunk magunkat a HTML dokumentciba s megismerkednnk az alapvet belltsaival. Van kln man oldala is, azonban a HTML lers nlkl nmagban ez nem tl sokat r. Megszmllhatatlan ton s mdon nvelhet benne a minsg, cskkenthet a kdolsi arny, vltoztathat a formtum, s ezen apr nomsgok felelsek a j vagy ppen a rossz teljestmnyrt. A tmba nhny plda bemutatsval igyeksznk beavatni az olvast. Elszr vegynk egy egyszer msolst:
% mencoder bemen.avi -oac copy -ovc copy -o eredmny.avi

A parancssori paramterek helytelen kombincija olyan llomnyokat eredmnyezhet, amelyeket mg maga az mplayer sem kpes lejtszani. Ezrt ha csak le akarunk szedni egy llomnyt, akkor maradjunk meg az mplayer -dumpfile opcijnl. A bemen.avi llomnyt MPEG4 video- s MPEG3 hangtmrtssel (amihez kell majd a audio/lame) gy tudjuk lekdolni:
% mencoder bemen.avi -oac mp3lame -lameopts br=192 \ -ovc lavc -lavcopts vcodec=mpeg4:vhq -o eredmny.avi

Ezzel az mplayer s xine programok szmra is egyarnt lejtszhat llomny jn ltre. A DVD fejezeteit gy tudjuk kzvetlenl kdolni, ha a parancssorban kicserljk a bemen.avi llomnyt az
dvd://1 -dvd-device /dev/dvd belltsra, illetve ha a programot root felhasznlknt futtatjuk. De mivel

elsre ltalban ritkn vagyunk elgedettek a kdolssal, rdemes elszr inkbb lementeni az egsz fejezetet egy llomnyba, majd azon dolgozni.

190

Fejezet 7. Multimdia

7.4.2.2. A xine videolejtsz


A xine lejtsz mgtt projekt clja nem egy mindenhat alkalmazs ltrehozsa, hanem inkbb olyan jrahasznosthat fggknyvtrak s egy modulris felpts program kifejlesztse, amelyeket pluginekkel tudunk kiegszteni. A multimedia/xine helyen portknt, valamint csomagknt is elrhet. A xine itt-ott mg valamelyest durva, de mindenkppen egy dicsretes kezdemnyezs. A xine a gyakorlatban egyarnt egy ers processzort s gyors videokrtyt kvn, vagy az XVideo kiterjeszts tmogatst. A grakus felhasznli fellete ugyan hasznlhat, de mg kicsit esetlen. Az rs pillanatban az xine mell mg nem kapunk olyan modult, amivel le tudnnk jtszani a CSS kdols DVD-ket. Lteznek azonban olyan klss modulok, amelyekkel meg lehet valstani ezt a feladatot, azonban a FreeBSD Portgyjtemnyben ezeket mg nem tallhatjuk meg. A xine az MPlayerhez kpes tbbet tesz a felhasznlrt, azonban ezzel egyidben el is veszi tle a nomhangols lehetsgt. A xine legjobban az XVidet ismer felleteken teljest. A xine alaprtelmezs szerint grakus fellettel indul, ahol a menk segtsgvel tudunk megnyitni egy adott llomnyt:
% xine

Vagy a grakus fellet hasznlata nlkl kiadhatjuk kzvetlenl is az llomny lejtszst:


% xine -g -p kedvencmozim.avi

7.4.2.3. A transcode
A transcode nem egy jabb lejtsz, hanem a video- s audio llomnyok jratmrtsre hasznlhat programok gyjtemnye. A transcode segtsgvel a szabvnyos be- s kimeneten keresztl parancssoros programokkal kpesek vagyunk videollomnyokat sszefzni, megjavtani. A multimedia/transcode port fordtsa sorn temrdek belltst adhatunk meg, amelyek kzl az albbi parancsban foglaljuk ssze az ltalunk javasolandkat:
# make WITH_OPTIMIZED_CFLAGS=yes WITH_LIBA52=yes WITH_LAME=yes WITH_OGG=yes \ WITH_MJPEG=yes -DWITH_XVID=yes

Ezek a belltsok a legtbb felhasznl szmra elegendek. A transcode kpessgeinek illusztrlshoz lssunk egy pldt, amiben megmutatjuk, hogyan kell egy DivX llomnyt PAL szabvny MPEG-1 formtum (PAL VCD) llomnny alaktani:
% transcode -i bemen.avi -V --export_prof vcd-pal -o output_vcd % mplex -f 1 -o eredmny_vcd.mpg eredmny_vcd.m1v eredmny_vcd.mpa

Az eredmnyl keletkez eredmny_vcd.mpg MPEG llomny akr mr jtszhat is MPlayerrel. Ha az llomnyt kirjuk egy rhat CD-re, akkor ezzel video CD-t is ltre tudunk hozni, amihez viszont szksgnk van mind a multimedia/vcdimager s sysutils/cdrdao programokra. A transcode parancsnak van sajt man oldala, azonban ehelyett a transcode wiki (http://www.transcoding.org/cgi-bin/transcode)ben rdemes inkbb tovbbi informcikat s pldkat keresni.

191

Fejezet 7. Multimdia

7.4.3. Ajnlott olvasmnyok


A FreeBSD-hez tartoz videoszoftverek nagyon gyorsan fejldnek. Knnyen elkpzelhet, hogy az imnt trgyalt problmk legtbbje a kzeljvben hamarosan megolddik. Addig viszont brkinek, aki a legtbbet szeretn kihozni a FreeBSD audio- s video lehetsgeibl, rengeteg lers s dokumentci elolvassa alapjn kell sszecsiszolnia a klnbz belltsokat, s csak nhny alkalmazs mellett rdemes kitartania. Ebben a szakaszban igyeksznk segteni az olvasnak megtallni az ilyen jelleg informcikat. Az MPlayer dokumentcija (http://www.mplayerhq.hu/DOCS/) szakmai szempontbl igen kzlkeny. Ezt mindenkinek rdemes elolvasnia, aki a ksbbiekben magasabb szakmai szinten akar foglalkozni a UNIX-os videzssal. Az MPlayer levelezsi listja viszont alig tolerlja a dokumentcit rendesen el nem olvas emberek krdseit, ezrt minden egyes hiba bejelentse eltt lehetleg rendesen nzzk t a dokumentci odavg rszeit. A xine HOGYAN (http://dvd.sourceforge.net/xine-howto/en_GB/html/howto.html) egyik kln fejezetben az sszes lejtsz esetn rvnyesthet teljestmnynvelsi mdszereket mutat be. Vgl me nhny gretes alkalmazs, amelyeket rdemes kiprblnunk:

Avile (http://avile.sourceforge.net/), ami egyben a multimedia/avifile port Ogle (http://www.dtek.chalmers.se/groups/dvd/), ami a multimedia/ogle port Xtheater (http://xtheater.sourceforge.net/)

multimedia/dvdauthor, egy nylt forrskd DVD-tartalom szerkeszt

7.5. TV krtyk belltsa


Eredetileg rta: Josef El-Rayes. Kiegsztette, tovbbfejlesztette: Marc Fonvieille.

7.5.1. Bevezets
A TV krtyk segtsgvel kbeles vagy antenns televziadsokat tudunk nzni a szmtgpnkn. A legtbbjk RCA vagy S-video bemenettel rendelkezik, valamint nhnyukon mg FM rdikszlk is megtallhat. A FreeBSD a bktr(4) meghajtn keresztl a Brooktree Bt848/849/878/879, illetve a Conexant CN-878/Fusion 878a tpus, PCI-os videorgzt chipeket ismeri. gyelnnk kell arra, hogy a krtynkon lev vevkszlk is hasznlhat legyen, amit pedig a bktr(4) man oldaln megtallhat tmogatott eszkzk listjbl ellenrizhetnk.

7.5.2. A meghajt belltsa


A krtynk hasznlathoz be kell tltennk a bktr(4) meghajtt, ami csupn annyibl ll, hogy a /boot/loader.conf llomnyhoz hozzadunk egy ilyen sort:
bktr_load="YES"

Msik lehetsgnk, ha a TV krtya tmogatst statikusan beleptjk a rendszermagba. Ha ezt a megoldst vlasztjuk, a kvetkez sorokat kell elhelyeznnk a rendszermag belltsait tartalmaz llomnyba:

192

Fejezet 7. Multimdia
device bktr device iicbus device iicbb device smbus

A fentebb lthat egyb eszkzk megadsa azrt szksges, mert a krtya rszegysgei egy I2C buszon csatlakoznak egymshoz. Miutn beillesztettk a szksges vltoztatsokat, fordtsuk le s teleptsk az j rendszermagot. A tmogats hozzadsa utn jra kell indtanunk a szmtgpnket. A rendszerindtsi folyamat sorn meg kell jelennie a TV krtynknak is, valahogy gy:
bktr0: <BrookTree 848A> mem 0xd7000000-0xd7000fff irq 10 at device 10.0 on pci0 iicbb0: <I2C bit-banging driver> on bti2c0 iicbus0: <Philips I2C bus> on iicbb0 master-only iicbus1: <Philips I2C bus> on iicbb0 master-only smbus0: <System Management Bus> on bti2c0 bktr0: Pinnacle/Miro TV, Philips SECAM tuner.

Termszetesen a fenti zenetek az aktulis hardvereszkznknek megfelelen nmileg eltrhetnek. Ellenrizzk, hogy a vevkszlket helyesen ismerte-e fel a rendszer. Ha nem sikerlt volna, akkor a sysctl(8) s a rendszermag belltsai segtsgvel mg mindig van lehetsgnk lltani rajta. Pldul, ha egy Philips SECAM vevkszlket akarunk belltani, akkor a rendszermag belltsaihoz mg hozz kell adni a kvetkez sort:
options OVERRIDE_TUNER=6

vagy erre kzvetlenl hasznlhatjuk a sysctl(8) programot is:


# sysctl hw.bt848.tuner=6

A bktr(4) man oldaln s a /usr/src/sys/conf/NOTES llomnyban megtallhatjuk a tbbi bellts rszletes lerst is.

7.5.3. Hasznos alkalmazsok


A TV krtynk tnyleges hasznlathoz azonban mg a kvetkez alkalmazsok valamelyikt is teleptennk kell:

A multimedia/fxtv hasznlatval ablakban tvzhetnk, valamint lehetsgnk van kp/audio/video kimentsre is. A multimedia/xawtv az fxtv-hez hasonl lehetsgekkel br tvnz alkalmazs. A misc/alevt dekdolja s megjelenti a msorhoz kapcsold Videotex/Teletext zeneteket. Az audio/xmradio segtsgvel az egyes TV krtykon megtallhat FM rdikszlkeket tudjuk hasznlatba venni. Az audio/wmtune a rdivevkhz hasznlhat hasznos grakus alkalmazs.

Ebben a tmban a FreeBSD Portgyjtemnyben tovbbi rdekes alkalmazsok tallhatak mg.

193

Fejezet 7. Multimdia

7.5.4. Hibakeress
Ha brmilyen gond addna a TV krtynkkal kapcsolatosan, akkor elszr mindenkppen rdemes megnzni, hogy a rajta lev videorgzt chipet s vevkszlket a bktr(4) meghajt tnylegesen ismeri-e, illetve hogy jl lltottuk-e be. A TV krtykra irnyul klnfle egyb krdsek s segtsg tekintetben rdemes lehet mg levelet kldeni a freebsd-multimedia (http://lists.FreeBSD.org/mailman/listinfo/freebsd-multimedia) cmre is.

7.6. Lapolvask
rta: Marc Fonvieille.

7.6.1. Bevezets
A FreeBSD lapolvaskhoz a SANE (Scanner Access Now Easy) elnevezs API (alkalmazsfejleszti fellet) segtsgvel kpes hozzfrni, amelyet a Portgyjtemnyben tallhatunk meg. A lapolvasst vgz hardvereszkzk hasznlathoz a FreeBSD a SANE mellett mg nhny eszkzmeghajtra is tmaszkodik. A FreeBSD egyarnt ismeri az SCSI s USB csatlakoztats lapolvaskat is. Mg mieltt nekikezdennk a lapolvas belltshoz, bizonyosodjuk meg rla, hogy a SANE tmogatja. A SANE ltal ismert eszkzk (http://www.sane-project.org/sane-supported-devices.html) felsorolsban ellenrizhetjk a lapolvasnk tmogatottsgnak llapott. A FreeBSD 8.X eltti kiadsaiban ezenkvl mg a uscanner(4) man oldalon is lthatjuk az ismert USB-s lapolvask listjt.

7.6.2. A rendszermag belltsa


A korbbiak rtelmben teht mind a SCSI, mind pedig a USB felleten csatlakoz eszkzk tmogatottak. A lapolvasnknak megfelelen eltr eszkzmeghajtk szksgesek.

7.6.2.1. Bellts USB felleten


A GENERIC rendszermag alaprtelmezs szerint tartalmazza az USB-s lapolvask hasznlathoz szksges eszkzmeghajtkat. Ha valamirt azonban mgis sajt rendszermagot akarunk hasznlni, akkor ne felejtsk el ellenrizni, hogy a rendszermag belltsai kztt megtallhatak a kvetkez sorok:
device device device device usb uhci ohci ehci

A FreeBSD 8.X eltti kiadsaiban mg a kvetkez sorra is szksgnk lesz:


device uscanner

A FreeBSD ezen vltozataiban a uscanner(4) eszkzmeghajtn keresztl tudjuk hasznlni az USB csatolval rendelkez lapolvaskat. A FreeBSD 8.0 vltozattl kezdden pedig ehhez a libusb(3) fggvnyknyvtr nyjt kzvetlen tmogatst.

194

Fejezet 7. Multimdia A megfelelen elksztett rendszermag elindtsa utn csatlakoztassuk az USB-s lapolvasnkat. Ez sor fog megjelenni a rendszer zenetpufferben (dmesg(8)):
ugen0.2: <EPSON> at usbus0

Vagy FreeBSD 7.X rendszerek esetben:


uscanner0: EPSON EPSON Scanner, rev 1.10/3.02, addr 2

Ezek az zenetek elruljk neknk, hogy a lapolvashoz mostantl a hasznlt FreeBSD verzitl fggen a /dev/ugen0.2 vagy a /dev/uscanner0 eszkzler tartozik. A fenti pldban egy EPSON Perfection 1650 tpus USB lapolvast lthatunk.

7.6.2.2. Bellts SCSI felleten


Ha a lapolvasnk SCSI felleten csatlakozik, fontos tisztban lennnk azzal, hogy pontosan milyen SCSI-vezrln keresztl is rhetjk el, ugyanis a rajta tallhat SCSI chipkszletnek megfelelen kell majd hangolnunk a rendszermag belltsait. A GENERIC rendszermag alapbl ismeri a leggyakrabban elfordul SCSI-vezrlket. Mindenkppen olvassuk t a NOTES nev llomnyt s adjuk hozz a rendszermag belltsaihoz a megfelel sort. A SCSI-krtya meghajtjn kvl mg az albbi belltsokat is meg kell adnunk a rendszermagunk szmra:
device scbus device pass

Ahogy sikerlt a rendszermagot sikeresen lefordtani s telepteni, a rendszer indulsa sorn az zenetpufferben mr lthatjuk is a felismert eszkzt:
pass2 at aic0 bus 0 target 2 lun 0 pass2: <AGFA SNAPSCAN 600 1.10> Fixed Scanner SCSI-2 device pass2: 3.300MB/s transfers

Ha a rendszer indulsakor mg nem kapcsoltuk volna be a lapolvasnkat, a camcontrol(8) parancs segtsgvel ksbb kln krhetjk a SCSI buszon tallhat eszkzk jbli feldertst:
# camcontrol rescan all

Re-scan Re-scan Re-scan Re-scan

of of of of

bus bus bus bus

0 1 2 3

was was was was

successful successful successful successful

Ekkor a lapolvas megjelenik a SCSI eszkzk felsorolsban:


# camcontrol devlist

<IBM DDRS-34560 S97B> <IBM DDRS-34560 S97B> <AGFA SNAPSCAN 600 1.10> <PHILIPS CDD3610 CD-R/RW 1.00>

at at at at

scbus0 scbus0 scbus1 scbus2

target target target target

5 6 2 0

lun lun lun lun

0 0 0 0

(pass0,da0) (pass1,da1) (pass3) (pass2,cd0)

A SCSI eszkzkrl tovbbi lersokat a scsi(4) s camcontrol(8) man oldalakon tallhatunk.

195

Fejezet 7. Multimdia

7.6.3. A SANE belltsa


A SANE rendszere kt rszre oszlik: a backendekre (graphics/sane-backends) s a frontendekre (graphics/sane-frontends). Ezek kzl maguk a backendek szolgltatjk a lapolvas hozzfrhetsgt. A SANE ltal ismert eszkzeinek (http://www.sane-project.org/sane-supported-devices.html) listjbl kifrkszhetjk, hogy lapolvasnkat melyik backenden keresztl rhetjk el. Az eszkz megfelel hasznlathoz dnt fontossg megllaptani a hozztartoz backendet. A frontendek kztt talljuk meg a lapolvasst felgyel grakus felleteket (mint pldul az xscanimage). Elsknt teleptsk a graphics/sane-backends portot vagy csomagot. Ezutn ellenrizzk, hogy a SANE felismeri a lapolvast, s ehhez adjuk ki a sane-find-scanner parancsot:
# sane-find-scanner -q

found SCSI scanner "AGFA SNAPSCAN 600 1.10" at /dev/pass3

A kimenetben jelzi a felletet, amin a lapolvas csatlakozik, valamint a hozztartoz eszkzlert. A gyrt neve s a termk tpusa nem minden esetben jelenik meg, de ez nem is annyira fontos.
Megjegyzs: Nmely USB-s lapolvask esetn mg egy rmware-t is be kell tltennk, amirl bvebben a backendhez tartoz man oldalokon olvashatunk. Ajnlott mg elolvasni a sane-nd-scanner(1) s sane(7) man oldalakat is.

Most pedig nzzk meg, hogy vajon a frontend is be tudja-e azonostani a lapolvasnkat. Alaprtelmezs szerint a SANE backendjhez tartozik mg egy scanimage(1) nev segdprogram is, aminek segtsgvel listzni tudjuk a hasznlhat eszkzket s kpeket tudunk beolvasni parancssorbl. Kzlk a -L kapcsol listz:
# scanimage -L

device snapscan:/dev/pass3 is a AGFA SNAPSCAN 600 flatbed scanner

Vagy ha a 7.6.2.1 Szakaszban szerepl USB lapolvasval nzzk:


# scanimage -L

device epson2:libusb:/dev/usb:/dev/ugen0.2 is a Epson GT-8200 flatbed scanner

Ezt a kimenetet egy FreeBSD 8.X rendszeren kaptuk, ahol a epson2:libusb:/dev/usb:/dev/ugen0.2 az eszkzhz tartoz backendet (epson2) s eszkzlert (/dev/ugen0.2) adja meg.
Megjegyzs: Ha ennek eredmnyekppen semmi sem jelenik meg, vagy a scanimage(1) ltszlag nem tallt semmilyen eszkzt, akkor a lapolvas azonostsa nem sikerlt. Ilyen esetekben valsznleg mdostanunk kell a backend belltsait tartalmaz llomnyt a hasznlni kvnt lapolvas eszkz szerint. A backendek belltsait a /usr/local/etc/sane.d/ knyvtrban talljuk. Ez a problma bizonyos USB-s lapolvask esetben jelentkezik. Pldul, ha 7.6.2.1 Szakaszban hasznlt USB-s lapolvasnkat FreeBSD 8.X alatt tkletesen felismeri a rendszer, de a FreeBSD korbbi vltozatai esetn (ahol a uscanner(4) eszkzmeghajtt hasznljk) a sane-find-scanner parancs a kvetkezket adja vissza:
# sane-find-scanner -q

found USB scanner (UNKNOWN vendor and product) at device /dev/uscanner0

Akkor a lapolvast sikerlt megtallni, s lthatjuk, hogy USB-n keresztl csatlakozik s a /dev/uscanner0 eszkzler tartozik hozz. Most mr ellenrizhetjk a lapolvas helyes beazonostst is:

196

Fejezet 7. Multimdia
# scanimage -L

No scanners were identified. If you were expecting something different, check that the scanner is plugged in, turned on and detected by the sane-find-scanner tool (if appropriate). Please read the documentation which came with this software (README, FAQ, manpages).

Az zenet fordtsa:
Nincs azonosthat lapolvas. Ha nem erre szmtottunk, akkor ellenrizzk, hogy az eszkzt tnyleg bekapcsoltuk, csatlakoztattuk s szlelte a sane-find-scanner segdprogram (amennyiben szksges). Krjk, olvassa el a szoftverhez tartoz dokumentumtcit (README, FAQ, man oldalak)!

Mivel a lapolvast nem sikerlt azonostani, t kell rnunk a /usr/local/etc/sane.d/epson2.conf llomnyt. A hasznlt lapolvas tpusa EPSON Perfection 1650, ezrt hozz az epson2 backendet fogjuk hasznlni. Ehhez felttlenl olvassuk el a kongurcis llomnyban tallhat megjegyzseket is. A sorokat igen knny trni: tegyk megjegyzsbe az sszes olyat, ahol a lapolvasnk szmra nem megfelel felletek tallhatak (a mi esetnkben teht megjegyzsbe fogjuk tenni az sszes scsi szval kezdd sort, hiszen a neknk USB-s eszkznk van), majd az llomny vgre rjuk be a hasznlni kvnt felletet s eszkzlert. Ez ebben a konkrt esetben ennyi lenne:
usb /dev/uscanner0

A megfelel formtum s a tovbbi rszletek lershoz ne felejtsk el azonban elolvasni a backend kongurcis llomnyban felbukkan megjegyzseket s az ide tartoz man oldalt sem. Most mr megprblkozhatunk jra a lapolvas azonostsval:
# scanimage -L

device epson:/dev/uscanner0 is a Epson GT-8200 flatbed scanner

Lthatjuk, hogy az USB-s lapolvasnkat sikerlt azonostani. Nem szmt, ha esetleg nem egyezne a valsggal a gyrt vagy a tpus megjellse. Itt a valban lnyeges elem az epson:/dev/uscanner0 mez lesz, melynek a backend s az eszkzler nevt kell helyesen tartalmaznia.

A belltst akkor zrhatjuk le, miutn a scanimage -L parancs kpes szlelni a lapolvast. A eszkz ekkor mr kszen ll a beolvassra. Mg a scanimage(1) parancssorbl teszi lehetv szmunkra a lapolvasst, addig rdemesebb a kpek olvasst egy grakus felleten keresztl vgeznnk. A SANE egy egyszer, m hatkony grakus felletet ajnl fel ehhez, ez az xscanimage (graphics/sane-frontends). Az Xsane (graphics/xsane) egy msik npszer grakus frontend. Segtsgvel specilis lehetsgeket is kihasznlhatunk, mint pldul tbbfle kpolvassi md (fnymsol, fax stb.), sznkorrekci, ktegelt beolvass, stb. Mind a kt emltett alkalmazs elrhet a The GIMP bvtmnyeknt is.

7.6.4. A lapolvas hasznlatnak engedlyezse ms felhasznlk szmra


A korbban trgyalt mveletek mindegyikt root felhasznlknt tudjuk csak vgrehajtani. Azonban elfordulhat, hogy ms felhasznlk szmra is szeretnnk hozzfrst biztostani a lapolvashoz. Ehhez az rintett felhasznlknak a lapolvashoz tartoz eszkzlerhoz olvassi s rs joggal kell rendelkeznik. Pldul az USB-s

197

Fejezet 7. Multimdia lapolvasnk a /dev/ugen0.2 eszkzlert hasznlja, amely valjban csak a /dev/usb/0.2.0 eszkzlerra mutat szimbolikus link (ezt gyorsan le tudjuk ellenrizni, ha megnzzk a /dev knyvtr tartalmt). Az eszkzler s a r mutat szimbolikus link rendre a wheel s operator csoportok birtokban van. Ha a pgj nev felhasznlt felvesszk ezekbe a csoportokba, akkor ezltal hozz tud majd frni a lapolvashoz. Nyilvnval biztonsgi megfontolsokbl azonban ktszer is javasolt meggondolni, mely felhasznlkat mely csoportokba vesszk fel, klnsen, ha wheel csoportrl van sz. Ennl valamivel jobb megoldst knl, ha ltrehozunk kln az USB eszkzk hasznlatra vonatkoz csoportot s a lapolvast ezen csoport tagjainak szmra elrhetv tesszk. Teht erre a clra pldul megalkotjuk a usb csoportot. Ehhez els lpsknt a pw(8) parancs segtsgvel hozzuk ltre magt a csoportot:
# pw groupadd usb

Ezutn a /dev/usb/0.2.0 eszkzlert s a r mutat /dev/ugen0.2 szimbolikus linket kell az usb csoport rszre elrhetv tennnk, a megfelel rsi engedlyekkel (0660 vagy 0664) egytt, mivel alaprtelmezetten csak a tulajdonosuk (root) tudja rni ezeket. Mindezt gy tudjuk megtenni, ha az /etc/devfs.rules llomnyhoz hozzadjuk a megfelel sorokat:
[system=5] add path ugen0.2 mode 0660 group usb add path usb/0.2.0 mode 0660 group usb

A FreeBSD 7.X vltozatok esetn valsznleg a kvetkez sorokra lesz szksgnk a /dev/uscanner0 eszkzlerhoz:
[system=5] add path uscanner0 mode 0660 group usb

Ezt kveten az /etc/rc.conf llomnyba rjuk be az albbi sort s utna indtsuk jra a szmtgpet:
devfs_system_ruleset="system"

Az itt szerepl sorok pontos jelentsrl a devfs(8) man oldalrl tjkozdhatunk. Ezutn mr csak fel kell vennnk azokat a felhasznlkat a usb csoportba, amelyeknek engedlyezzk a lapolvas hasznlatt:
# pw groupmod usb -m pgj

A tovbbi rszletekrl a pw(8) man oldalon olvashatunk.

198

Fejezet 8. A FreeBSD rendszermag testreszabsa


Frisstette s tdolgozta: Jim Mock. Eredetileg rta: Jake Hamby.

8.1. ttekints
A rendszermag a FreeBSD opercis rendszer lelke. Felels a memria kezelsrt, a biztonsgi szablyozsok betartatsrt, a hlzat mkdtetsrt, a lemezhozzfrsrt s sok minden msrt is. Mikzben maga a FreeBSD egyre jobban kongurlhat dinamikusan, addig alkalmanknt elegedhetetlen, hogy jrakongurljuk s jrafordtsuk a rendszermagot. A fejezet elolvassa sorn megismerjk:

mirt lehet szksgnk egy sajt rendszermagra; hogyan ksztsnk kongurcis llomnyt a rendszermaghoz, vagy hogyan mdostsunk egy mr ltezt; hogyan hasznljuk a rendszermag kongurcis llomnyt egy j rendszermag lefordtsra s ltrehozsra; hogyan teleptsk az j rendszermagot; hogyan orvosoljuk a felmerl problmkat.

A fejezetben az sszes pldaknt bemutatsra kerl parancsot root felhasznlknt kell kiadni a sikeres vgrehajtsukhoz.

8.2. Mirt ksztsnk sajt rendszermagot?


A FreeBSD eredetileg n. monolitikus rendszermaggal rendelkezett. Ez azt jelenti, hogy a rendszermag egyetlen nagy program volt, ami elre rgztett eszkzket ismert, s ha meg akartuk vltoztatni a rendszermag mkdst, akkor fordtanunk kellett j rendszermagot, majd jra kellett indtanunk vele a szmtgpet. Manapsg azonban a FreeBSD mr inkbb afel a megkzelts fel halad, ahol a rendszermag funkcionalitsnak nagy rszt mkds kzben az ignyek szerint betlthet s eltvolthat modulok adjk. Ezzel lehetv vlik, hogy a rendszermag gyorsan illeszkedjen az jonnan megjelen hardvereszkzkhz (mint pldul a laptopok PCMCIA-krtyihoz), vagy olyan j funkcikat tegynk a rendszermaghoz, amelyek a fordtsnl nem voltak felttlenl szksgesek. Ezt a modellt nevezik modulris rendszermagnak. Ennek ellenre mg mindig elkerlhetetlen, hogy esetenknt ne legyen szksg a rendszermag statikus testreszabsra. Ez a legtbb esetben azzal magyarzhat, hogy vannak olyan funkcik, amelyek tlsgosan is mlyen helyezkednek el a rendszermagban, ezltal nem tlthetek be dinamikusan. Mskor viszont egyszeren azrt nem lehetsges, mert mg senki sem sznt idt az adott funkcihoz tartoz, dinamikusan betlthet modul elksztsre. Egy sajt rendszermag ksztse azon legfontosabb prbattelek egyike, melyet egy halad BSD felhasznlnak ki kell llnia. Ez a folyamat, habr nmileg idignyes, szmos elnyt tartogat FreeBSD rendszernk szmra. Eltren egy GENERIC (ltalnos) rendszermagtl, amely rengeteg hardvert tmogat, egy sajt rendszermag csak a sajt PC-nk hardvert ismeri. Ennek tbb elnye is van, pldul:

199

Fejezet 8. A FreeBSD rendszermag testreszabsa

A rendszernk gyorsabban indul. Mivel a rendszermag csak azokat a hardvereket fogja keresni, melyek a rendszernkben megtallhatak, jelents mrtkben le tud cskkeni az indulshoz szksges id. Kisebb memriahasznlat. Egy sajt rendszermag a szksgtelen rszek s eszkzmeghajtk elhagysa miatt gyakran kevesebb memrit emszt fel, mint a GENERIC rendszermag. Ez azrt is fontos, mert a rendszermag mindig benn van a zikai memriban, s ezzel az alkalmazsok ell veszi a helyet. Emiatt egy sajt rendszermag elksztse klnsen hasznos lehet egy kevs zikai memrival rendelkez rendszeren. Tovbbi hardverek tmogatsa. A sajt rendszermagunkba olyan eszkzk tmogatst is beletehetjk, amelyek nem szerepelnek a GENERIC rendszermagban, mint pldul a hangkrtykt.

8.3. A rendszernkben lev hardverek sszeszedse


rta: Tom Rhodes. Mieltt belevetnnk magunkat a rendszermag belltsba, rdemes egy leltrt kszteni a gpnkben tallhat klnbz eszkzkrl. Ahol a FreeBSD nem elsdlegesen hasznlt opercis rendszer, ott ehhez elegend megnzni a jelenlegi rendszerben tallhat elemeket. Pldul az Microsoft rendszerek Eszkzkezeljben (Device Manager) ltalban az sszes eszkz fontosabb adatait megtalljuk. Magt az Eszkzkezelt pedig a Vezrlpultbl (Control Panel) rhetjk el.
Megjegyzs: A Microsoft Windows egyes verziiban a Rendszer (System) ikonjra kattintva megkapjuk azt a kpernyt, ahonnan kzvetlenl el tudjuk rni az Eszkzkezelt.

Ha viszont nincs msik opercis rendszer a gpnkn, akkor magunknak kell mindezeknek utnanznnk. Erre az egyik alkalmas mdszer a dmesg(8) s a man(1) parancsok hasznlata. A FreeBSD-ben tallhat legtbb meghajtnak van sajt man oldala, ami tartalmazza az ltaluk kezelt eszkzk listjt, illetve gy a rendszerindts sorn szlelt hardvereket nzhetjk vissza. Pldul az albbi sor arra utal, hogy a psm meghajt megtallta a gpnkhz tartoz egeret:
psm0: psm0: psm0: psm0: <PS/2 Mouse> irq 12 on atkdbc0 [GIANT-LOCKED] [ITHREAD] model Generic PS/2 mouse, device ID 0

Ezutn ezt a meghajtt vagy a rendszermagba kell beptennk, vagy pedig a loader.conf(5) llomnyon keresztl betltennk. Bizonyos esetekben a dmesg az eszkzk felkutatsnak eredmnyei helyett csak a rendszer zeneteit mutatja. Ilyen helyezetekben a teljes kimenet a /var/run/dmesg.boot llomnyban tekinthet meg. A hardverek manulis feldertsnek mdja a pciconf(8) segdprogram kimenetnek bngszse, ami egy valamivel rszletesebb eredmnyt ad. Mint pldul:
ath0@pci0:3:0:0: vendor device class subclass class=0x020000 card=0x058a1014 chip=0x1014168c rev=0x01 hdr=0x00 Atheros Communications Inc. AR5212 Atheros AR5212 802.11abg wireless network ethernet

= = = =

200

Fejezet 8. A FreeBSD rendszermag testreszabsa A pciconf -lv paranccsal kapott kimenet ezen rsze azt mutatja, hogy az ath meghajt tallt egy vezetk nlkli Ethernet eszkzt. Innen a man ath paranccsal rhetjk el a ath(4) man oldalt. A man(1) a -k paramter megadsval tovbbi hasznos informcikkal is tud szolglni. A fentiekbl kiindulva pldul a kvetkez paranccsal:
# man -k Atheros

le tudjuk krdezni azokat a man oldalakat, amelyek tartalmazzk az adott szt:


ath(4) ath_hal(4) - Atheros IEEE 802.11 wireless network driver - Atheros Hardware Access Layer (HAL)

A hardvereszkzeink listjval felvrtezve most mr egy sajt rendszermag ltrehozsa sem lesz annyira ijeszt.

8.4. Meghajtk, alrendszerek s modulok


Mieltt j rendszermagot ksztennk, rdemes megfontolnunk, hogy egyltaln szksgnk lesz-e r. Ha pldul valamilyen eszkz tmogatshoz kell, akkor knnyen elfordulhat, hogy azt modulknt is be tudjuk tlteni. A rendszermaghoz tartoz modulok a /boot/kernel knyvtrban tallhatak, s a kldload(8) segtsgvel a rendszer mkdse kzben dinamikusan betlthetek. Ha nem is az sszes, de a legtbb meghajthoz tartozik egy modul s egy man oldal. Pldul az elz szakaszban az ath vezetk nlkli Ethernet meghajtval foglalkoztunk. A kvetkez lerst talljuk a hozztartoz man oldalon:
Vagy ha modulknt akarjuk betlteni ezt a meghajtt a rendszer indtsa sorn, akkor a loader.conf(5) llomnyba vegyk fel a kvetkez sort: if_ath_load="YES"

A fentebb lertak szerint teht ha a if_ath_load="YES" sort hozzadjuk a /boot/loader.conf llomnyhoz, akkor a rendszer indulsakor ez a modul mindig dinamikusan betltdik. Nmely esetben azonban nem ll rendelkezsnkre ilyen modul. Ez klnsen igaz bizonyos alrendszerekre s a fontosabb meghajtkra, pldul az FFS llomnyrendszerre vonatkozan, mivel ezeknek ktelezen a rendszermagban kell lennik. Ugyanez elmondhat a hlzati tmogatsra is (INET). Csak gy tudjuk megmondani, hogy valamelyik meghajtra szksg van a rendszermagban, ha elszr megprbljuk megkeresni hozz a megfelel modult.
FigyelemA beptett meghajtk gyelmetlen eltvoltsval knnyen lefordthatatlan llapotba kerlhet a rendszermag. Pldul, ha a ata(4) meghajtt kivesszk a rendszermag kongurcis llomnybl, az ATA alrendszert hasznl meghajtk csak abban az esetben fognak biztosan mkdni, ha egyttal felvesszk a loader.conf llomnyba. Ha nem vagyunk benne biztosak, akkor elszr prbljuk meg hasznlni a modult s csak utna hagyjuk el a rendszermagba ptett vltozatt.

201

Fejezet 8. A FreeBSD rendszermag testreszabsa

8.5. Sajt rendszermag ksztse s teleptse


Elszr is tegynk egy rvidke stt a rendszermag knyvtrban. A tovbbiakban emltend sszes knyvtr a /usr/src/sys knyvtron bell tallhat, amely /sys nven is elrhet. Itt rengeteg alknyvtr tallhat, mindegyikk a rendszermag klnbz rszeit testesti meg. Ezek kzl most szmunkra a legfontosabb az architektra/conf lesz, ahol majd ltrehozzuk a sajt rendszermagunk kongurcis llomnyt, valamint a compile, ahol majd a rendszermagunk fordtsa trtnik. Itt az architektra lehet i386, alpha, amd64, ia64, powerpc, sparc64 vagy pc98 (a PC-k egyik, leginkbb Japnban elterjedt vltozata). Az adott architektra knyvtrban tallhat sszes llomny csak arra az architektrra vonatkozik, a kd tbbi rsze pedig gpfggetlen s kzs az sszes tbbi ltez s leend FreeBSD platformon. rdemes meggyelni a knyvtrak logikai elrendezst: minden egyes ismert eszkz, llomnyrendszer s bvtmny sajt alknyvtrral rendelkezik. A pldk sorn ez a fejezet felttelezi, hogy az i386 architektrt hasznljuk. Ha ez a mi esetnkben nem gy lenne, ne felejtsk el trni bennk az elrsi tvonalakat a rendszernk architektrjnak megfelelen.
Megjegyzs: Ha nem lenne /usr/src/sys knyvtr a rendszernkben, valsznleg mg nem teleptettk a rendszermag forrskdjt. Ezt a legknnyebben gy tudjuk megtenni, ha root felhasznlknt elindtjuk a sysinstall programot s ott kivlasztjuk a Congure (Belltsok), azon bell Distributions (Terjesztsek) menpontot, amiben vlasszuk ki a src, base s sys terjesztseket. Ha nem szeretnnk erre a clra a sysinstall programot hasznlni, de rendelkezsnkre ll a hivatalos FreeBSD CD, akkor a forrsokat akr parancssorbl is telepthetjk:
# # # # # mount /cdrom mkdir -p /usr/src/sys ln -s /usr/src/sys /sys cat /cdrom/src/ssys.[a-d]* | tar -xzvf cat /cdrom/src/sbase.[a-d]* | tar -xzvf -

Ezutn lpjnk be az i386/conf knyvtrba s msoljuk le a GENERIC kongurcis llomnyt a kedvnk szerinti nevre. Pldul:
# cd /usr/src/sys/i386 /conf # cp GENERIC SAJT

ltalban a nevet vgig nagybetkkel rjuk, s ha tbb FreeBSD-s gpet is zemeltetnk klnbz hardverekkel, hasznosnak bizonyulhat megemlteni benne az adott gp rendszernek nevt is. Ebben a pldban ez most a SAJT lesz.
Tipp: A rendszermagunk kongurcis llomnyt nem ppen a legjobb tlet a /usr/src knyvtrban trolni. Ugyanis knnyen elfordulhat, hogy egy rosszul sikerlt fordts utn egyszeren csak letrljk az egsz /usr/src knyvtrat s onnan kezdjk jra. Azonban csak ezutn juthat esznkbe, hogy vele egytt bizony letrltk a sajt rendszermagunk kongurcis llomnyt is! Ehhez hasonlan, kzvetlenl a GENERIC kongurcis llomny szerkesztse sem ajnlott, mivel a forrsok egy esetleges frisstsnl knnyen fellrdhat s ezzel egytt elvesznek a mdostsaink is. Teht rdemes inkbb valahol mshol trolnunk a rendszermagunk kongurcis llomnyt, majd ltrehozni r egy szimbolikus linket a i386 knyvtrban. Valahogy gy:
# cd /usr/src/sys/i386 /conf # mkdir /root/kernel

202

Fejezet 8. A FreeBSD rendszermag testreszabsa


# cp GENERIC /root/kernel/SAJT # ln -s /root/kernel/SAJT

Most pedig a kedvenc szvegszerkesztnkkel lssunk neki a SAJT trsnak! Ha nemrg teleptettk csak a rendszernket, az egyetlen elrhet szvegszerkesztnk minden bizonnyal a vi lesz. Rla most tlsgosan is bonyolult lenne lerst adnunk, de az Irodalomjegyzkben tallhat knyvek kzl sokban elg jl bemutatjk. Ezen kvl a FreeBSD ajnl egy knnyebben megtanulhat szvegszerkesztt is az ee szemlyben, amely a kezdk szmra az idelis vlaszts. Nyugodtan trhatjuk az ell tallhat megjegyzseket a sajt kongurcinknak megfelelen, vagy akr azt is rgzthetjk, hogy miben trtnk el a GENERIC belltsaitl. Ha fordtottunk mr rendszermagot SunOS vagy ms BSD opercis rendszer alatt, ez az llomny ismersnek tnhet. Ha viszont ms opercis rendszerek, mint pldul a DOS fell rkeznk, a GENERIC kongurcis llomny egy kiss tereblyesnek tnhet szmunkra, ezrt A kongurcis llomny cm rszt gyelmesen s lassan olvassuk t.
Megjegyzs: Amennyiben a forrsfnkat a FreeBSD projekt legfrissebb forrsaival szinkronizljuk, mindig olvassuk el a /usr/src/UPDATING llomnyt, mieltt brmilyen frisstshez is kezdennk. Itt megtallhatak azok a fontos rintett krdsek s terletek, amely kln gyelmet ignyelnek a frisstett forrskd esetn. A /usr/src/UPDATING mindig a FreeBSD forrsnak legfrissebb vltozathoz igazodik, s ezrt sokkal naprakszebb informcikat tartalmaz, mint ez a kziknyv.

Most pedig le kell lefordtanunk a rendszermag forrskdjt. A rendszermag lefordtsa 1. Lpjnk be a /usr/src knyvtrba:
# cd /usr/src

2.

Fordtsuk le a rendszermagot:
# make buildkernel KERNCONF=SAJT

3.

Teleptsk az j rendszermagot:
# make installkernel KERNCONF=SAJT

Megjegyzs: A FreeBSD teljes forrsfjra szksg van a rendszermag lefordtshoz.

Tipp: Amikor egy sajt rendszermagot alaprtelmezs szerint fordtunk, vele egytt az sszes modul is lefordtsra kerl. Ha viszont idt szeretnnk megtakartani a rendszermag frisstse sorn vagy csak a sajt moduljainkat akarjuk lefordtani, rdemes trnunk az /etc/make.conf llomnyt a rendszermag fordtsnak megkezdse eltt:
MODULES_OVERRIDE = linux acpi sound/sound sound/driver/ds1 ntfs

Ez a vltoz megadja a tnylegesen lefordtand modulok listjt.


WITHOUT_MODULES = linux acpi sound ntfs

203

Fejezet 8. A FreeBSD rendszermag testreszabsa


Ez a vltoz a fordtsbl kihagyand fels szint modulokat sorolja fel. A rendszermag fordtsnak folyamatban egyb hasznosnak tekinthet vltozkrl a make.conf(5) man oldaln olvashatunk.

Ezutn az j rendszermag a /boot/kernel knyvtrba kerl /boot/kernel/kernel nven s a korbbi rendszermag pedig /boot/kernel.old/kernel nven rzdik meg. Most lltsuk le a rendszert s indtsuk jra az j rendszermag aktivlshoz. Ha kzben valamilyen hiba trtnt volna, nzzk meg a fejezet vgn tallhat, hibakeressre vonatkoz utastsokat. Mindenkppen olvassuk el azt a rszt, amely lerja, hogyan lltsuk helyre a rendszernket abban az esetben, ha az j rendszermaggal nem indul.
Megjegyzs: A rendszerindtsi folyamathoz tartoz tovbbi llomnyok, mint pldul a rendszerbetlt (loader(8)) s annak kongurcis llomnya, a /boot knyvtrban tallhatak. A kls s sajt modulok a /boot/kernel a knyvtrba kerlhetnek, azonban a felhasznlknak nagyon gyelnik kell r, hogy az itt tallhat modulok szinkronban legyenek a lefordtott rendszermaggal. Ellenkez esetben a rendszerben megbzhatatlansgot, hibkat szlelhetnk.

8.6. A kongurcis llomny


A FreeBSD 6.X verzijhoz igaztotta: Joel Dahl. A kongurcis llomny ltalnos formtuma igen egyszer. Minden sor tartalmaz egy kulcsszt s egy vagy tbb paramtert. A tovbbi egyszersts kedvrt a legtbb sor csak egyetlen paramtert tartalmaz. Brmi, ami egy # (kettskereszt) jelet kvet, megjegyzsnek minsl s nem szmt kongurcis elemnek. A most kvetkez rszek bemutatjk az egyes kulcsszavakat abban a sorrendben, ahogy azokat a GENERIC llomnyban is megtallhatjuk. Az architektrafgg opcik s eszkzk teljes listjt a GENERIC llomnnyal egy knyvtrban lev NOTES llomnyban tallhatjuk meg. Az architektrtl fggetlen opcikat a /usr/src/sys/conf/NOTES llomnyban talljuk. A FreeBSD 5.0 megjelense ta a kongurcis llomnyokban hasznlhat az include direktva. Ennek segtsgvel egy msik kongurcis llomny tartalma logikailag beilleszthet az aktulisba, gy knnyebb vlik egy mr meglev llomnyhoz tartoz kisebb mennyisg vltoztats karbantartsa. Pldul ha csupn pr egyszer kiegsztst szeretnnk hozzadni a GENERIC rendszermaghoz, akkor elegend a hozz vett eltrseket nyilvntartanunk egy kln kongurcis llomnyban:
include GENERIC ident SAJAT options options options options IPFIREWALL DUMMYNET IPFIREWALL_DEFAULT_TO_ACCEPT IPDIVERT

Valsznleg sok rendszergazda szmra jelents elnyt jelent ez a megolds a kongurcis llomnyok korbbrl mr megszokott jrarsval szemben: a helyi kongurcis llomny csak a GENERIC rendszermag helyi rendszerre vonatkoz eltrseit tartalmazza. gy amikor frisstjk a rendszernket, a GENERIC rendszermag sszes jtsa elrhetv vlik, kivve ha explicit mdon le nem tiltottuk ezeket a noptions vagy a nodevice megadsval. A

204

Fejezet 8. A FreeBSD rendszermag testreszabsa fejezet tovbbi rszben egy tlagos kongurcis llomnnyal fogunk foglalkozni, mind a belltsok, mind pedig az eszkzk tekintetben.
Megjegyzs: Ha olyan llomnyt akarunk kszteni, amely tartalmazza az sszes lehetsges opcit, pldul tesztelshez, futtassuk le root felhasznlknt az albbi parancsot:
# cd /usr/src/sys/i386 /conf && make LINT

Itt a GENERIC rendszermag-kongurcis llomny ismertetse kvetkezik, az rthetsg kedvrt helyenknt megjegyzsekkel kibvtve. A bemutatott llomnynak majdnem pontosan meg kell egyeznie a rendszernkben tallhat /usr/src/sys/i386/conf/GENERIC llomnnyal.
machine i386

A szmtgpnk architektrjt adja meg. A kvetkezk valamelyiknek kell lennie: alpha, amd64, i386, ia64, pc98, powerpc, vagy sparc64.
cpu cpu cpu I486_CPU I586_CPU I686_CPU

A fenti bellts segtsgvel megadhatjuk, milyen tpus processzor tallhat a szmtgpnkben. Tbb ilyen sorunk is lehet (ha pldul nem lennnk biztosak benne, hogy a I586_CPU vagy I686_CPU rtket kellene megadnunk), de a sajt rendszermagunk sszelltshoz rdemes csak egyet meghagynunk. Ha nem ismerjk pontosan a processzorunk tpust, vessnk egy pillantst a /var/run/dmesg.boot llomnyra s keressk ki belle.
ident GENERIC

Ez a rendszermag azonostja. Vltoztassuk meg rendszermagunk nevre, legyen pldul SAJAT , ha a korbbi utastsokat kvettk. Az ident utn rt sztring fog megjelenni a rendszermag neve mellett a rendszer indtsa sorn, ezrt fontos, hogy az j rendszermagunknak ms nevet adjunk, ha meg akarjuk klnbztetni az ltalban hasznlttl (pldul egy tesztelsre sznt rendszermagot akarunk kszteni).
# ha a /boot/device.hints hasznlata helyett statikusan bele akarjuk fordtani #hints "GENERIC.hints" # itt szerepelnek a device hintek

A device.hints(5) hasznlhat az eszkzmeghajtk belltsra. A loader(8) a rendszer indtsa sorn alaprtelmezs szerint a /boot/device.hints llomnyt olvassa be erre a clra. A hints bellts hasznlatval ezeket a hinteket statikusan bele tudjuk pteni a rendszermagba. Ebben az esetben nincs szksgnk kln device.hints llomny ltrehozsra a /boot knyvtrban.
makeoptions DEBUG=-g # a nyomkvetshez szksges gdb(1) szimblumok beptse

A FreeBSD hagyomnyos fordtsnak folyamata sorn a rendszermagot a -g hasznlatval ksztjk el, aminek ksznheten hibakeressi informcikat tudunk tadni a gcc(1) fordtnak.
options SCHED_ULE # ULE temez

A FreeBSD alaprtelmezett rendszertemezje. Ne vltoztassuk meg!

205

Fejezet 8. A FreeBSD rendszermag testreszabsa


options PREEMPTION # a rendszerszlak megszakthatsgnak engedlyezse

Ha engedlyezzk, a rendszermagban fut szlakat meg tudjk szaktani ms, magasabb priorits szlak. Ez segt nvelni a rendszer vlaszadsi sebessgt s cskkenti a megszaktsokat kezel szlak vrakozst.
options INET # hlzatkezels

A hlzatkezels tmogatsa. Ne trljk ki, mg akkor sem, ha nem tervezzk hlzatra kapcsolni a rendszert. Sok programnak szksge van legalbb az n. loopback tpus hlzat tmogatsra (vagyis a szmtgpnkn belli hlzati kapcsolatokra), ezrt ez felttlenl ktelez!
options INET6 # IPv6 kommunikcis prokotollok

Engedlyezi az IPv6 kommunikcis protokollok hasznlatt.


options FFS # Berkeley Fast Filesystem

Ez a legalapvetbb merevlemezes llomnyrendszer. Hagyjuk meg, ha merevlemezrl akarjuk indtani a rendszernket.


options SOFTUPDATES # az FFS Soft Updates tmogatsa

Ez a bellts engedlyezi a rendszermagban a Soft Updates hasznlatt, amely segt felgyorstani a lemez rsi sebessgt. Ha mr a rendszermag ezt a funkcionalitst ismeri, akkor mg kln az egyes lemezeken is engedlyezni kell. Nzzk meg a mount(8) kimenett, hogy lssuk, a rendszernkben lev lemezek kzl melyiken van tnylegesen engedlyezve a Soft Updates hasznlata. Ha nem ltjuk benne sehol sem a soft-updates opcit, akkor azt (meglev llomnyrendszerek esetn) a tunefs(8) vagy (j llomnyrendszerek esetn) a newfs(8) parancsokkal tudjuk bekapcsolni.
options UFS_ACL # a hozzfrs-vezrlsi listk (ACL) tmogatsa

Ezzel a belltssal engedlyezhetjk a rendszermagban a hozzfrs-vezrlsi listk tmogatst. Ez a kiterjesztett attribtumok s az UFS2 hasznlatra tmaszkodik. Ezt a lehetsget rszleteiben a 14.12 Szakaszban trgyaljuk. Az ACL alaprtelmezs szerint tmogatott, s korbban mr hasznltuk, akkor semmikppen se kapcsoljuk ki, mert ezzel az eddig ltrehozott hozzfrs-vezrlsi listink rvnytelenn, az llomnyaink pedig vdtelenn vlnak.
options UFS_DIRHASH # nagyobb knyvtrak esetn gyorsulst hoz

Ezzel a belltssal nmi memria felldozsa rn fel tudjuk gyorstani a nagyobb knyvtrakon vgzett lemezmveletek sebessgt, ezrt ezt a belltst rdemes nagyobb szerverekre vagy interaktvitst ignyl munkallomsokra tartogatni, s eltvoltani olyan esetekben, amikor a FreeBSD-t egy olyan kisebb szmtgpeken hasznljuk, ahol a memria kevs s a lemezmveletek sebessge kevsb fontos, pldul egy tzfalon.
options MD_ROOT # tudunk memrialemezrl is rendszert indtani

Ezzel az opcival engedlyezni tudjuk a rendszer indtst memriban trolt virtulis lemezekrl.
options options options NFSCLIENT NFSSERVER NFS_ROOT # hlzati llomnyrendszer (NFS) kliens # NFS szerver # NFS hasznlhat gykrknt is, kell hozz az NFSCLIENT

A hlzati llomnyrendszer tmogatsa. Hacsak nem akarunk TCP/IP-n keresztl llomnyrendszereket csatlakoztatni egy UNIX llomnyszerverrl, kivethetjk.

206

Fejezet 8. A FreeBSD rendszermag testreszabsa


options MSDOSFS # MS-DOS llomnyrendszer

Az MS-DOS llomnyrendszer. Hacsak nem akarunk DOS-ra formzott merevlemezes partcit csatlakoztatni a rendszerindts sorn, nyugodtan elhagyhatjuk. A fentebb lertak szerint az els olyan alkalommal automatikusan betltdik, amikor egy DOS partcit csatlakoztatni akarunk. St, a nagyszer emulators/mtools szoftver segtsgvel kln csatlakoztats s levlaszts nlkl tudunk DOS-os oppykat olvasni (s az MSDOSFS-re egyltaln nincs is szksge).
options CD9660 # ISO 9660 llomnyrendszer

Az ISO 9660 llomnyrendszert a CD-k hasznljk. Vegyk ki, ha nincs a szmtgpben CD-ROM meghajt vagy csak ritkn fogunk CD-ket csatlakoztatni (mivel a hozztartoz modul magtl betltdik az els adat CD csatlakoztatsa sorn). Az audio CD-k nem hasznljk ezt az llomnyrendszert.
options PROCFS

# a fut programok llomnyrendszere (szksges hozz a PSEUDOF

A fut programok llomnyrendszere. Ez csak a /proc knyvtrra csatlakoztatott sznlelt llomnyrendszer, amely segtsgvel a ps(1) s hozz hasonl programok kpesek tbb informcit adni a fut programokrl. A PROCFS hasznlata a legtbb esetben nem indokolt, mivel a klnfle nyomkvet s felgyeleti eszkzk kpesek a PROCFS hasznlata nlkl is mkdni: alaprtelmezs szerint a teleptett rendszerek sem csatlakoztatjk ezt az llomnyrendszer.
options PSEUDOFS # pszeudo llomnyrendszerek tmogatsa

A 6.X verzij rendszermagokban a PROCFS hasznlathoz engedlyeznnk kell a PSEUDOFS hasznlatt is.
options GEOM_GPT # GUID tpus partcis tblk hasznlata

Ezzel a belltssal engedlyezni tudjuk nagy mennyisg partci tmogatst egyetlen lemezen.
options COMPAT_43 # kompatibilits fenntartsa a 4.3 BSD-vel [NE TRLD!]

Kompatibilits a 4.3BSD-vel. Ne vegyk ki, mert bizonyos programok furcsn fognak viselkedni a hinya esetn.
options COMPAT_FREEBSD4 # kompatibilits a FreeBSD4-el

Ez a bellts szksges a FreeBSD 5.X i386 s Alpha rendszerein a FreeBSD korbbi verziihoz fordtott alkalmazsok tmogatshoz, melyek rgebbi rendszerhvsokat hasznlnak. Az sszes i386 s Alpha tpus rendszeren ajnlott engedlyezni, mivel itt elfordulhatnak rgebbi alkalmazsok. A tbbi platform, mint pldul az ia64 vagy a SPARC64, tmogatsa csak az 5.X verziban jelent meg, ezrt ott nincs szksg erre.
options COMPAT_FREEBSD5 # kompatibilits a FreeBSD5-el

Ezt a belltst a FreeBSD 6.X s afeletti verzikban kell hasznlni az olyan FreeBSD 5.X verzikra fordtott alkalmazsok futtatsnak tmogatshoz, melyek a FreeBSD 5.X rendszerhvsait hasznljk.
options SCSI_DELAY=5000

# a SCSI eszkzk keresse eltt ksleltets (ezredmsodpercben)

Ezzel a belltssal a rendszermag 5 msodpercig vrakozni fog a SCSI eszkzk keresse eltt. Ha kizrolag csak IDE tpus merevlemezeink vannak, nyugodtan kihagyhatjuk, msklnben rdemes a rendszerindts gyorstsa rdekben prbljuk meg cskkenteni ezt az rtket. Termszetesen, ha gy tesznk s a FreeBSD nem tudja felismerni a SCSI eszkzeinket, akkor nveljk meg valamennyivel.

207

Fejezet 8. A FreeBSD rendszermag testreszabsa


options KTRACE # a ktrace(1) tmogatsa

Engedlyezi a rendszermagban fut rutinok nyomonkvetst, ami hasznos lehet a hibk keresse sorn.
options SYSVSHM # SYSV-szer osztott memria

Ezzel a belltssal engedlyezni tudjuk a rendszerben a System V tpus osztott memria hasznlatt. Leggyakrabban az X rendszer XSHM kiterjesztse hasznlja, amelyen keresztl szmos mveletignyes grakus program mkdst fel lehet gyorstani. Ha X-et hasznlunk, mindenkppen szksgnk lehet erre.
options SYSVMSG # SYSV-szer zenetsorok

A System V zenetek tmogatsa. Ez a bellts csupn nhny szz byte-tal nveli a rendszermagot.
options SYSVSEM # SYSV-szer szemaforok

A System V szemaforok tmogatsa. Nem tl gyakran alkalmazzk ezeket, de ez csak nhny szz byte-ot tesz hozz a rendszermaghoz.
Megjegyzs: A ipcs(1) parancs -p paramtervel ki tudjuk listztatni azokat fut programokat, amelyek ezen System V eszkzket hasznljk.

options

_KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B valsidej kiterjesztsek

A POSIX 1993-as vltozatban megjelent valsidej bvtsek. A Portgyjtemnyben megjelen egyes alkalmazsok hasznljk ezeket (mint pldul a StarOfce).
options KBD_INSTALL_CDEV # CDEV bejegyzs ltrehozsa a /dev knyvtrban

Ez a bellts kell ahhoz, hogy /dev knyvtrban ltre tudjunk hozni eszkzlerkat a billentyzethez.
options ADAPTIVE_GIANT # adaptv Giant mutexek

A Giant annak a klcsns kizrsi mechanizmusnak (blokkolt mutexnek) a neve, amely a rendszermag erforrsainak jelents rszt vdi. Manapsg ez mr egy elfogadhatatlanul szk keresztmetszet kpez a teljestmnyben, ezrt a fejlesztsben fokozatosan felvltjk az egyes erforrsokat kln-kln vd zrolsok. Az ADAPTIVE_GIANT bellts hatsra a Giant a helyzethez igazodan forg (spin) mutexek kz kerl. Ez azt jelenti, hogy amikor egy szl zrolni akarja a Giant mutexet, de ezt mr megtette eltte egy msik processzorrl fut szl, a szl tovbb fut s vrakozni fog a zrols feloldsra. Normlis esetben ugyanis egy szl tovbbra is blokkolt llapotban marad, vrakozva a futsra. Ha nem tudunk dnteni, hagyjuk vltozatlanul.
Megjegyzs: Hozztesszk, hogy a FreeBSD 8.0-CURRENT s ksbbi vltozataiban az ssszes mutex alaprtelmezs szerint adaptv, hacsak meg nem adjuk a NO_ADAPTIVE_MUTEXES belltst. Ennek eredmnyekppen a Giant most mr alapbl adaptv, ezrt esetkben az ADAPTIVE_GIANT nem szerepel a rendszermag belltsai kztt.

device

apic

# I/O APIC

208

Fejezet 8. A FreeBSD rendszermag testreszabsa Az apic nev eszkz engedlyezsvel hasznlhatjuk a hardveres APIC-ot a megszaktsok vezrlsre. Az apic alkalmazhat egy- s tbbprocesszoros rendszerek esetn is egyarnt, de az SMP rendszermagoknl szksges. Tbb processzor tmogatsnl mindenkppen tegyk hozz az options SMP belltst is.
Megjegyzs: Az apic eszkz csak az i386 architektrn ltezik, ezrt a tbbi architektrn nem szabad hasznlnunk ezt a belltst.

device

eisa

Abban az esetben engedlyezzk, ha EISA-s alaplapunk van, ezzel aktivljuk az EISA buszra csatlakoztatott eszkzk automatikus felismerst s bellthatsgt.
device pci

Tegyk hozz a kongurcis llomnyhoz, ha PCI-os alaplapuk van. Ezzel engedlyezhetjk a PCI krtyk automatikus felismerst s a PCI s ISA buszok kzti tirnytst.
# Hajlkonylemezes meghajtk device fdc

Ez a hajlkonylemezes meghajt vezrlje.


# ATA s ATAPI eszkzk device ata

Ez az eszkzmeghajt felels az sszes ATA s ATAPI eszkzrt. A modern szmtgpeken csak egyszer kell megadnunk a device ata sort a belltsok kztt az sszes PCI-os ATA/ATAPI eszkz felismershez.
device atadisk # ATA lemezmeghajtk

Az ATA lemezmeghajtk tmogatshoz erre van mg szksg a device ata mellett.


device ataraid # ATA RAID-meghajtk

Az ATA RAID-meghajtk kezelshez erre a sorra van szksg a device ata mellett.
device atapicd # ATAPI CD-meghajtk

Az ATAPI CD-meghajtk hasznlathoz ezt is tegyk a kongurciba a device ata mell.


device atapifd # ATAPI floppy meghajtk

A device ata hasznlata mellett erre van mg szksgnk az ATAPI oppy meghajtk kezelshez.
device atapist # ATAPI szalagos meghajtk

Az ATAPI szalagos egysgek ezt a sort is tegyk a kongurciba a device ata mell.
options ATA_STATIC_ID # statikus eszkzszmozs

Ezzel a belltssal a vezrlk szmozsa lland lesz. Nlkle az eszkzszmok dinamikusan kerlnek kiosztsra.
# SCSI vezrlk

209

Fejezet 8. A FreeBSD rendszermag testreszabsa


device device options device options device device #device device #device device device device device device device device device device device ahb # EISA AHA1742 csald ahc # AHA2940 s integrlt AIC7xxx eszkzk AHC_REG_PRETTY_PRINT # a hibk keresshez kiratja a regiszterek # bitmezit. Kb. 128 KB-al nveli a mrett. ahd # AHA39320/29320 s integrlt AIC79xx eszkzk AHD_REG_PRETTY_PRINT # a hibk keresshez kiratja a regiszterek # bitmezit. Kb. 215 KB-al nveli a mrett. amd # AMD 53C974 (Teckram DC-390(T)) isp # Qlogic csald ispfw # a QLogic HBA firmware-e, tbbnyire modul mpt # LSI-Logic MPT-Fusion ncr # NCR/Symbios Logic sym # NCR/Symbios Logic (jabb chipsetek, illetve az ncr tpusak) trm # Tekram DC395U/UW/F DC315U csatolk adv adw aha aic bt ncv nsp stg # # # # # Advansys SCSI-csatolk Advansys wide SCSI-csatolk Adaptec 154x SCSI-csatolk Adaptec 15[012]x SCSI-csatolk, AIC-6[23]60. Buslogic/Mylex MultiMaster SCSI-csatolk

# NCR 53C500 # Workbit Ninja SCSI-3 # TMC 18C30/18C50

SCSI-vezrlk. Vegyk ki azokat, amelyekkel tnylegesen nem rendelkeznk. Ha csak IDE eszkzeink vannak a rendszernkben, az sszeset eltvolthatjuk. A _REG_PRETTY_PRINT vgzds sorok a megfelel meghajtk hibakersi belltsait takarjk.
# SCSI-perifrik device scbus device ch device da device sa device cd device pass device ses

# # # # # # #

SCSI-busz (kell a SCSI-hoz) SCSI mdiumvltk (media changer) kzvetlen hozzfrs (lemezek) soros hozzfrs (szalag stb.) CD tereszt eszkz (kzvetlen SCSI hozzfrs) SCSI krnyezeti szolgltatsok (s SAF-TE)

SCSI-perifrik. Itt is rvnyes, hogy kivethetjk azokat az eszkzket, amelyekkel nem rendelkeznk. De ha csak IDE hardvereink vannak, teljesen eltvolthatjuk ezeket.
Megjegyzs: Annak ellenre, hogy valjban nem igazi SCSI-eszkzk, az USB-s umass(4) s mg nhny ms egyb meghajt is hasznlja a SCSI alrendszert. Emiatt semmikppen se tvoltsuk el a SCSI tmogatst a rendszernkl abban az esetben, ha ilyen meghajtkat is hasznlni szndkozunk.

# a SCSI alrendszerhez kapcsold RAID-vezrlk device amr # AMI MegaRAID device arcmsr # Areca SATA II RAID device asr # DPT SmartRAID V, VI s Adaptec SCSI RAID device ciss # Compaq Smart RAID 5* device dpt # DPT Smartcache III, IV - lsd a NOTES llomnyt

210

Fejezet 8. A FreeBSD rendszermag testreszabsa


device device device device device device hptmv rr232x iir ips mly twa # # # # # # Highpoint RocketRAID 182x Highpoint RocketRAID 232x Intel Integrated RAID IBM (Adaptec) ServeRAID Mylex AcceleRAID/eXtremeRAID 3ware 9000 series PATA/SATA RAID

# RAID vezrlk device aac device aacp device ida device mfi device mlx device pst device twe

# # # # # # #

Adaptec FSA RAID SCSI tereszt az aac-hez (kell hozz a CAM) Compaq Smart RAID LSI MegaRAID SAS Mylex DAC960 csald Promise Supertrak SX6000 3ware ATA RAID

Az ismert RAID-vezrlk. Ha kzlk egyikkel sem rendelkeznk, tvoltsuk el ezeket a kongurcibl.


# az atkbdc0 vezrli a billentyzetet s a PS/2-es egeret device atkbdc # AT billentyzet vezrl

A billentyzet vezrlje (atkbdc) az AT-s billentyzet s a PS/2 stlus pozcionl eszkzk vezrlshez szksges I/O szolgltatsokat biztostja. Erre a vezrlre a billentyzet meghajtjnak (atkbd) s a PS/2 pozcionl eszkzk eszkzmeghajtjnak (psm) is szksge van.
device atkbd # AT billentyzet

Az atkbd meghajt, a atkbdc vezrlvel egytt, adja a hozzfrst az AT billentyzet vezrlre csatlakoztatott AT 84 s a fejlettebb AT billentyzetek fel.
device psm # PS/2 egr

Hasznljuk ezt az eszkzt, ha az egernk a PS/2 portra csatlakozik.


device kbdmux # billentyzet multiplexer

A billentyzet multiplexer alapszint tmogatsa. Ha nem kvnunk a jvben egynl tbb billentyzetet csatlakoztatni a rendszernkre, nyugodt szvvel kivehetjk ezt a sort.
device vga # VGA videokrtya meghajt

Videokrtya meghajt.
device splash # dvzlkpernyk s kpernykmlk tmogatsa

Nyissunk egy dvzlkpernyvel! A kpernykmlknek is szksge van erre az eszkzre.


# a syscons az alaprtelmezett konzolmeghajt, hasonlt a SCO konzolra device sc

Az sc az alaprtelmezett meghajt a konzolok szmra, s sokban hasonlt a SCO konzolra. Mivel a legtbb teljeskpernys program a termcap terminladatbzis knyvtron keresztl ri el a konzolt, nem igazn szmt,

211

Fejezet 8. A FreeBSD rendszermag testreszabsa hogy ezt vagy a VT220-kompatibilis vt konzolmeghajtt hasznljuk. Ha brmilyen gondunk lenne a teljeskpernys programok futtatsval ezen a konzolon, a bejelentkezskor lltsuk a TERM krnyezeti vltoznk a scoansi rtkre.
# ezzel tudjuk engedlyezni a pcvt (VT220-kompatibilis) konzolmeghajtt #device vt #options XSERVER # az X szerver tmogatsa vt konzolon #options FAT_CURSOR # telt kurzor hasznlata

Ez a VT220-kompatibilis konzolmeghajt, amely visszafele kompatibilis a VT100/102-vel is. Remekl mkdik olyan laptopokon, ahol a hardver nem hasznlhat az sc konzollal. Itt ugyangy rdemes egybknt a vt100 rtkre vagy a vt220 rtkre lltani a TERM krnyezeti vltoznkat. Hasznosnak bizonyulhat abban az esetben is, amikor hlzaton keresztl nagy mennyisg s eltr tpus szmtgpekhez csatlakozunk, s ahol a termcap s terminfo adatbzisokban az sc bejegyzsei gyakran nem is rhetek el a vt100 viszont virtulisan az sszes platformon elrhet.
device agp

rjuk bele a kongurciba, ha van AGP krtya a rendszernkben. Ezzel engedlyezzk az AGP s az AGP GART tmogatst az ezeket ismer krtyk szmra.
# energiagazdlkods tmogatsa (bvebben lsd: NOTES) #device apm

A fejlett energiagazdlkods tmogatsa. Laptopok esetn hasznos, habr ez alaprtelmezs szerint nincs engedlyezve a GENERIC kongurciban.
# az i8254 kszenlti mdjnak tmogatsa device pmtimer

Az energiagazdlkodsi esemnyek, mint pldul APM s ACPI idztjnek eszkzmeghajtja.


# PCCARD (PCMCIA) tmogats # PCMCIA s cardbus tmogats device cbb device pccard device cardbus

# cardbus (yenta) bridge # PC Card (16 bites) busz # CardBus (32 bites) busz

A PCMCIA tmgotsa. Mindenkppen szksgnk lesz r, ha laptopunk van.


# soros (COM) portok device sio

# 8250, 16[45]50 alap soros portok

Ezek azok a soros portok, amelyek az MS-DOS/Windows vilgban csak COM portokknt ismernek.
Megjegyzs: Ha van egy bels modemnk a COM4-en s egy soros portunk a COM2-n, a modem IRQ-jt meg kell vltoztatnunk 2-re (valamilyen homlyos mszaki oktl kifolylag a COM2 = IRQ9), hogy hozz tudjunk frni FreeBSD-bl. Ha tbbportos soros krtynk lenne, lapozzuk fel a sio(4) man oldalt, s ott hozz megtalljuk a /boot/device.hints llomnyba rand megfelel rtkeket. Egyes videokrtyk (klnsen az S3 chipekre plk) az I/O cmeket 0x*2e8 alakban hasznljk, s mivel rengeteg olcs soros krtya nem kdolja vissza egszben a 16 bites I/O cmteret, tkzni fognak ezekkel a krtykkal, s ezltal a COM4 port gyakorlatilag elrhetetlenn vlik.

212

Fejezet 8. A FreeBSD rendszermag testreszabsa


Minden egyes soros portnak egyedi IRQ-ja kell legyen (hacsak nem hasznlunk olyan tbbportos krtyt, amely tmogatja a megosztott megszaktsokat), ezrt a COM3 s COM4 esetn alaprtelmezett IRQ-k nem hasznlhatak.

# prhuzamos port device ppc

Ez az ISA busz prhuzamos portjnak fellete.


device ppbus # a prhuzamos port busza (kell)

A prhuzamos porthoz tartoz busz tmogatsa.


device lpt # nyomtat

A prhuzamos portra csatlakoz nyomtatk tmogatsa.


Megjegyzs: A fentiek kzl mind a hrom szksges a prhuzamos porton csatlakoz nyomtatk hasznlathoz.

device

plip

# TCP/IP prhuzamos porton keresztl

Ez a prhuzamos port hlzati felletnek meghajtja.


device ppi # a prhuzamos port felletnek eszkze

ltalnos cl (geek port) s IEEE1284 I/O.


#device vpo # az scbus s a da kell a hasznlathoz

Ez az Iomega Zip meghajtihoz tartoz eszkz. A mkdshez szksg van az scbus s da engedlyezsre. A legjobb teljestmnyt EPP 1.9 mdban mkd portokkal lehet kihozni belle.
#device puc

Tegyk bele a kongurciba ezt az eszkzt, ha egy olyan buta soros vagy prhuzamos PCI krtynk van, amelyet a puc(4) segdmeghajt ismer.
# PCI Ethernet krtyk device de device em device ixgb device txp device vx

# # # # #

DEC/Intel DC21x4x (Tulip) Intel PRO/1000 Gigabit Ethernet krtya Intel PRO/10GbE Ethernet krtya 3Com 3cR990 (Typhoon) 3Com 3c590, 3c595 (Vortex)

Klnfle PCI hlzati krtyk meghajti. Vegyk ki azokat, amelyek nem tallhatak meg a rendszernkben.
# PCI Ethernet krtyk, melyek az MII busz vezrlkdjt hasznljk # FIGYELEM: Ne trljk ki a device miibus sort, ha ilyen krtynk van! device miibus # az MII busz tmogatsa

213

Fejezet 8. A FreeBSD rendszermag testreszabsa Az MII busz engedlyezse elengedhetetlen bizonyos 10/100-as PCI Ethernet krtyk hasznlathoz, konkrtan azokhoz, amelyek az MII-vel egyttmkdni kpes ad-vevt hasznlnak vagy az MII-hz hasonl ad-vev vezrl felletet valstanak meg. A device miibus hozzadsa a rendszermaghoz magval vonja az ltalnos miibus API s az sszes PHY meghajt tmogatst, belertve azt az ltalnos PHY eszkzt is, amelyet az egyes eszkzmeghajtk kln nem tmogatnak.
device device device device device device device device device device device device device device device device device device device device device device device device bce bfe bge dc fxp lge msk nge nve pcn re rl sf sis sk ste stge ti tl tx vge vr wb xl # # # # # # # # # # # # # # # # # # # # # # # # Broadcom BCM5706/BCM5708 Gigabit Ethernet Broadcom BCM440x 10/100 Ethernet Broadcom BCM570xx Gigabit Ethernet DEC/Intel 21143 s egyb hasonlak Intel EtherExpress PRO/100B (82557, 82558) Level 1 LXT1001 gigabit ethernet Marvell/SysKonnect Yukon II Gigabit Ethernet NatSemi DP83820 gigabit ethernet nVidia nForce MCP integrlt Ethernet hlzat AMD Am79C97x PCI 10/100 (az lnc eltt) RealTek 8139C+/8169/8169S/8110S RealTek 8129/8139 Adaptec AIC-6915 (Starfire) Silicon Integrated Systems SiS 900/SiS 7016 SysKonnect SK-984x & SK-982x gigabit Ethernet Sundance ST201 (D-Link DFE-550TX) Sundance/Tamarack TC9021 gigabit Ethernet Alteon Networks Tigon I/II gigabit Ethernet Texas Instruments ThunderLAN SMC EtherPower II (83c170 EPIC) VIA VT612x gigabit ethernet VIA Rhine, Rhine II Winbond W89C840F 3Com 3c90x (Boomerang, Cyclone)

Meghajtk, melyek az MII busz vezrlkdjt hasznljk.


# ISA Ethernet s pccard hlzati krtyk. device cs # Crystal Semiconductor CS89x0 NIC # az device ed eszkzhz kell a device miibus device ed # NE[12]000, SMC Ultra, 3c503, DS8390 cards device ex # Intel EtherExpress Pro/10 s Pro/10+ device ep # Etherlink III alap krtyk device fe # Fujitsu MB8696x alap krtyk device ie # EtherExpress 8/16, 3C507, StarLAN 10 stb. device lnc # NE2100, NE32-VL Lance Ethernet krtyk device sn # az SMC 9000-res sorozat Ethernet chipjei device xe # Xircom pccard Ethernet # ISA eszkzk, melyek a rgi ISA bettet hasznljk #device le

ISA Ethernet meghajtk. A konkrtan tmogatott krtyk teljes felsorolst lsd a /usr/src/sys/i386/conf/NOTES llomnyban.
# vezetk nlkli hlzati krtyk device wlan # 802.11 tmogats

214

Fejezet 8. A FreeBSD rendszermag testreszabsa ltalnos 802.11 tmogats. Erre a sorra mindenkppen szksg van a vezetk nlkli hlzatok hasznlathoz.
device device device wlan_wep wlan_ccmp wlan_tkip # 802.11 WEP tmogats # 802.11 CCMP tmogats # 802.11 TKIP tmogats

A 802.11 eszkzk esetn a titkosts tmogatsa. Ezeket a sorokat akkor adjuk meg, ha titkostst akarunk hasznlni vagy a 802.11i biztonsgi protokolljait.
device device device device device device device #device an # Aironet 4500/4800 802.11 vezetk nlkli hlzati krtyk ath # Atheros pci/cardbus hlzati krtyk ath_hal # Atheros HAL (Hardware Access Layer) ath_rate_sample # kldsi mintavteli vezrls az ath-hoz awi # BayStack 660 s msok ral # Ralink Technology RT2500 vezetk nlkli hlzati krtyk wi # WaveLAN/Intersil/Symbol 802.11 vezetk nlkli hlzati krtyk wl # rgebbi, nem 802.11 Wavelan vezetk nlkli hlzati krtyk

A klnbz vezetk nlkli krtyk tmogatsa.


# Pszeudo eszkzk device loop

# hlzati loopback

Ez a TCP/IP ltalnos loopback eszkze. Ha telnettel vagy FTP-vel rcsatlakozunk a localhost cmre (vagyis a 127.0.0.1-re), akkor rajta keresztl sajt magunkhoz jutunk vissza. Ennek a meglte ktelez!
device random # lvletlenszm eszkz

Kriptograi szempontbl biztonsgos lvletlenszm genertor.


device ether # Ethernet tmogats

Az ether eszkzre csak abban az esetben van szksg, ha Ethernet krtyn van. Ez magban foglalja az ltalnos Ethernet protokoll kdjt.
device sl # bels SLIP

Az sl a SLIP hasznlatt engedlyezi. Ez egy rgi protokoll, amelyet azta mr szinte teljesen kiszortott a PPP, mivel azt knnyebb belltani s sokkal jobban is illik a modem-modem kapcsolatokhoz, illetve sokkal erteljesebb.
device ppp # bels PPP

Ez a trcszs kapcsolatok rendszermagon belli PPP tmogatst adja meg. Van a PPP-nek egy kls, a felhasznli programknt megvalstott vltozata is, amely a tun eszkzt hasznlja s sokkal nagyobb rugalmassgot knl fel, illetve olyan lehetsgeket, mint pldul az igny szerinti trcszs.
device tun # csomag alagt

Ezt a felhasznli PPP szoftver hasznlja. A knyv PPP-rl szl rszben tbbet is megtudhatunk rla.
device pty # Pszeudo terminlok (telnet stb.)

Ezek a pszeudo terminlok vagy ms nven szimullt bejelentkezsi portok. A bejv telnet s rlogin munkamenetek hasznljk, valamint az xterm s a hozz hasonl alkalmazsok, mint pldul az Emacs.

215

Fejezet 8. A FreeBSD rendszermag testreszabsa


device md # memrialemezek

A memriban lev pszeudo lemezes meghajtk.


device gif # IPv6 s IPv4 tunnelek hasznlata

Megvalstja az IPv6 IPv4 feletti, az IPv4 IPv6 feletti, az IPv4 IPv4 feletti s az IPv6 IPv6 feletti kzvettst. A gif eszkz magtl msoldik, vagyis szksg szerint hozza ltre a megfelel eszkzlerkat.
device faith # IPv6-IPv4 kzti tovbbts (fordts)

Ez a pszeudo eszkz elfogja a hozz kldtt csomagokat s tadja ezeket az IPv4/IPv6 fordtssal foglalkoz dmonnak.
# a bpf eszkz hasznlatval a Berkeley csomagszrt (Berkeley Packet Filter) engedlyezzk # Legynk r tekintettel, hogy ennek komoly kvetkezmnyei lehetnek # rendszeradminisztrcis szempontbl! # A bpf-re szksg van a DHCP-hez. device bpf # Berkeley csomagszr

A Berkeley csomagszrje. Ez egy olyan pszeudo eszkz, amely lehetv teszi, hogy a hlzati csatolk forgalmt meggyeljk, mivel a (pl. Ethernet) hlzatunkon minden csomagot elkap. Ezek a csomagok lemezre is menthetek vagy kielemezhetek a tcpdump(1) program segtsgvel.
Megjegyzs: A bpf(4) eszkzt a dhclient(8) is hasznlja tbbek kzt az alaprtelmezett tjr IP-cmnek megszerzshez. Ha DHCP-t akarunk hasznlni, hagyjuk gy.

# USB tmogats device device device device #device device device device device device device device device device # USB Ethernet, device device device device device device

uhci # UHCI PCI->USB fellet ohci # OHCI PCI->USB fellet ehci # EHCI PCI->USB fellet (USB 2.0) usb # USB busz (kell) udbp # USB Double Bulk Pipe eszkzk ugen # ltalnos uhid # Human Interface Devices ukbd # billentyzet ulpt # nyomtat umass # lemez/httrtrol - kell hozz az scbus s a da ums # egr ural # Ralink Technology RT2500USB vezetk nlkli hlzati krtyk urio # Diamond Rio 500 MP3 lejtsz uscanner # lapolvask kell hozz az mii aue # ADMtek USB Ethernet axe # ASIX Electronics USB Ethernet cdce # ltalnos USB, Etherneten keresztl cue # CATC USB Ethernet kue # Kawasaki LSI USB Ethernet rue # RealTek RTL8150 USB Ethernet

A klnfle USB eszkzk tmogatsa.

216

Fejezet 8. A FreeBSD rendszermag testreszabsa


# FireWire tmogats device firewire device sbp device fwe

# FireWire buszkd # SCSI FireWire-n keresztl (kell hozz az scbus s a da) # Ethernet FireWire-n keresztl (nem szabvnyos!)

A klnfle Firewire eszkzk tmogatsa. A FreeBSD ltal ismert tovbbi eszkzkrl a /usr/src/sys/i386/conf/NOTES llomnybl tjkozdhatunk.

8.6.1. Sok memria kezelse (PAE)


A sok memrival rendelkez szmtgpek esetn szksg lehet a felhasznli s rendszerszint virtulis cmek (Kernel Virtual Address, KVA) 4 gigabyte feletti hasznlatra. Ennek a korltozsnak a kikszblsre az Intel kln tmogatst ptett be a Pentium Pro s az azt kvet processzorok 36 bites zikai cmzsnek kialaktshoz. A Fizikai Cmkiterjeszts (Physical Address Extension, PAE) az Intel Pentium Pro s ksbbi processzoraiban tallhat meg, s lehetv teszi egszen 64 gigabyte-ig a memriahasznlatot. A FreeBSD is tmogatja ezt a tulajdonsgot a PAE rendszermag bellts hasznlatval, s megtallhat a FreeBSD sszes jelenlegi verzijban. Az Intel architektrj processzorok memriaszervezsnek korltai miatt nem klnbztethet meg a 4 gigabyte alatti s feletti memria. A 4 gigabyte felett tallhat memriaterletek egyszeren hozzaddnak a rendelkezsre ll memrihoz. A rendszermagban a PAE tmogatst egyszeren az albbi sor segtsgvel hozzadsval tudjuk engedlyezni:
options PAE

Megjegyzs: A FreeBSD-ben a PAE tmogatsa csak az Intel IA-32 architektrj processzoraihoz rhet el. Emellett meg kell emltennk, hogy a FreeBSD-ben tallhat PAE tmogats nem lett szlesebb krben prbra tve, ezrt a FreeBSD tbbi megbzhat elemeihez kpest csak bta llapotnak tekinthet.

A FreeBSD PAE tmogatsnak van nhny hinyossga:


Egy fut program a virtulis memriban nem kpes 4 gigabyte-nl tbbet elrni. A bus_dma(9) felletet nem hasznl eszkzmeghajtk adathibkat okozhatnak a PAE-t tmogat rendszermagokban, s emiatt nem ajnljuk a hasznlatukat. Ebbl a megfontolsbl ksztettnk egy PAE nev kongurcis llomnyt a FreeBSD-hez, amelyben nem szerepel egyetlen olyan meghajt sem, amely ismereteink szerint nem mkdik egytt a PAE-t tmogat rendszermagokkal. Bizonyos nomhangolsi belltsok a memriahasznlatot a rendelkezsre ll zikai memria mennyisgbl szmtjk ki. A PAE tmogatssal mkd rendszerek esetben megjelen sok memria miatt azonban az ilyen eszkzk szksgtelenl tbb terletet foglalhatnak le. Erre plda lehet a kern.maxvnodes sysctl vltoz, amely a rendszermag ltal maximlisan felhasznlhat virtulis csompontok szmt korltozza. Ajnlott teht az ilyen s ehhez hasonl belltsok rtelmes rtkre trtn visszalltsa. Szksges lehet a rendszermag virtulis cmternek (KVA) nvelse vagy a rendszermag ltal tlsgosan nagy mretre foglalt cmter klnfle erforrsok (lsd fentebb) cskkentse a KVA kifogysnak elkerlsre. A KVA terletnek nvelst a KVA_PAGES belltsval tehetjk meg.

Ha gondjaink lennnek a teljestmnnyel vagy a megbzhatsggal, keressk fel a tuning(7) man oldalt. A pae(4) man oldalon pedig a FreeBSD PAE tmogatsrl tallhatunk napraksz informcikat.

217

Fejezet 8. A FreeBSD rendszermag testreszabsa

8.7. Ha valamilyen hiba trtnne


Ngyfle problma jelentkezhet egy sajt rendszermag ksztse sorn. Ezek: A config hibt jelez: Amikor a cong(8) parancs hibt jelez vissza a rendszermagunk kongurcis belltsainak feldolgozsa sorn, akkor minden bizonnyal csak egy apr hibt vtettnk valahol. Szerencsre a cong(8) kirja a hibs sor szmt, ezrt gyorsan fel tudjuk kutatni a hibt tartalmaz sort. Pldul, ha ezt ltjuk:
config: line 17: syntax error

Akkor gyzdjnk meg rla, hogy helyesen rtuk be az adott sorban szerepl kulcsszt. Ebben segtsgnkre lehet, ha sszevetjk a GENERIC kongurcis llomnnyal vagy ms hivatkozsokkal. A make hibt jelez: Ha a make jelez hibt, az ltalban arra utal, hogy az ltalunk korbban megadott rendszermag kongurcis llomnyt a cong(8) nem rtette meg rendesen. Megint azt tudjuk csak javasolni, hogy nzzk t a kongurcis belltsainkat, s ha ezutn sem sikerl megoldani a problmt, akkor mellkeljk egy levlben a rendszermagunk kongurcis belltsait s kldjk el a FreeBSD general questions levelezsi lista (http://lists.FreeBSD.org/mailman/listinfo/freebsd-questions) cmre, ahol a hozzrtk gyorsan tnzik. A rendszermag nem indul: Ha az j rendszermagunk nem indul vagy nem kpes felismerni az eszkzeinket, ne essnk ktsgbe! Szerencsre a FreeBSD tkletes megoldssal tud szolglni az sszefrhetetlen rendszermagok esetre: a FreeBSD rendszerbetltjben egyszeren vlasszuk ki az indtand rendszermagot. Ezt akkor tudjuk elhvni, amikor a rendszerindt men megjelenik. Vlasszuk ki a hatos, vagyis az Escape to a loader prompt (a betlt parancssornak elhvsa) menpontot. Mikor megjelenik a parancssor, rjuk be, hogy unload kernel, majd adjuk ki a boot /boot/kernel.old /kernel, parancsot, amiben brmilyen ms olyan rendszermagot is megnevezhetnk, ami korbban mr mkdtt. Ezrt amikor belltunk egy j rendszermagot, mindig rdemes a keznk gyben tartani legalbb egy olyan rendszermagot, amely mkdik. Miutn sikerlt elindtanunk az egyik hasznlhat rendszermagot, nzzk t mg egyszer a kongurcis llomnyt s prbljuk jra lefordtani a rendszermagot. A problma megoldst segtheti a /var/log/messages llomny ttanulmnyozsa is, ami tbbek kzt rgzti a rendszermag sikeres indulsa sorn keletkez zeneteket. Ezenkvl a dmesg(8) parancs is meg tudja jelenteni az aktulis rendszerindts zeneteit.
Megjegyzs: Ha gondok merlnnek fel a rendszermag elksztse sorn, mindenkppen tartsuk meg a GENERIC, vagy brmilyen msik olyan rendszermagot, amelyrl tudjuk, hogy mkdik. Nevezzk t, gy nem fog fellrdni a kvetkez fordts s telepts sorn. A kernel.old llomnyra ugyanis nem minden esetben szmthatunk, mivel az j rendszermagok teleptsnl a kernel.old mindig fellrdik a legutbb teleptett rendszermaggal, amely azonban nem felttlenl lesz mkdkpes. St, amint csak lehetsges, rakjuk a mkd rendszermagot a /boot/kernel knyvtrba vagy klnben a ps(1) s a hozz hasonl parancsok nem fognak rendesen mkdni. Mindezek elvgzshez egyszeren nevezzk t a j rendszermagot tartalmaz knyvtrt:
# mv /boot/kernel /boot/kernel.rossz # mv /boot/kernel.j /boot/kernel

218

Fejezet 8. A FreeBSD rendszermag testreszabsa A rendszermag mkdik, de a ps(1) viszont nem: Ha olyan rendszermagot teleptettnk, aminek a verzija nem egyezik meg a hozztartoz segdprogramokval, teht pldul -CURRENT rendszermagot raktunk egy -RELEASE rendszerhez, egyes rendszerllapotjelz parancsok, mint pldul a ps(1) vagy a vmstat(8) nem fognak mkdni. Ebben az esetben az egsz rendszert jra kell fordtanunk s teleptennk a rendszermagunkkal megegyez verzij forrsbl. Rszben ezrt sem klnsen ajnlott, hogy az opercis rendszer tbbi rsztl eltr verzij rendszermagot hasznljunk.

219

Fejezet 9. Nyomtats
rta: Sean Kelly. tdolgozta s frisstette: Jim Mock.

9.1. ttekints
A FreeBSD kpes rengeteg fle s fajta nyomtatval egyttmkdni, a legrgebbi vegyszeres nyomtattl kezdve egszen napjaink lzernyomtatjig, aminek ksznheten alkalmazsaikkal nagyon j minsg nyomtatsokat tudunk kszteni. A FreeBSD a helyi hlzaton nyomtatszervernek is bellthat. Ekkor a vele kzs hlzatra csatlakoz tbbi, FreeBSD, Windows vagy Mac OS rendszer szmtgptl kpes nyomtatsi krseket elfogadni. A FreeBSD gondoskodik rla, hogy egyszerre csak egy nyomtats kszljn el, szmon tartja, hogy mely felhasznlk s szmtgpek nyomtatnak a legtbbet, s minden feladathoz munkalapot (banner page) kszt, amiben tbbek kzt megtallhatjuk, hogy kihez tartozik. A fejezet elolvassa sorn megismerjk:

hogyan lltsuk be a FreeBSD nyomtatsi sort; hogyan teleptsnk nyomtatsi szrket, hogyan kezeljnk klnbz specilis nyomtatsi feladatokat, teht pldul miknt alaktsuk t a berkez dokumentumokat olyan nyomtatsi formtumra, amelyet a nyomtatnk is megrt; hogyan engedlyezzk a fejlc- vagy munkainformcik kinyomtatst; hogyan nyomtassunk ms szmtgpekhez csatlakoztatott nyomtatkkal; hogyan nyomtassunk a hlzatra kzvetlenl kapcsolt nyomtatkkal; hogyan lltsuk be a nyomtat korltait, pldul a nyomtatsi munkk mrett, amivel egyes felhasznlk nyomtatst visszafoghatjuk; hogyan ksztsnk nyomtatsi kimutatsokat s nyilvntartst a nyomtat hasznlatrl; hogyan keressk meg a nyomtats sorn felmerl problmk okait.

A fejezet elolvasshoz ajnlott:

egy j rendszermag belltsnak s teleptsnek ismerete (8 fejezet).

9.2. Bevezets
A FreeBSD-ben a nyomtatk mkdshez be kell lltani az LPD nyomtatsi rendszert. Ez a Berkeley sornyomtatsi rendszere, amelyet ezentl rviden csak LPD-nek fogunk hvni. Ez a FreeBSD alaprtelmezett szabvnyos nyomtatsvezrl rendszere. Ebben a fejezetben az LPD s annak kongurcija kerl bemutatsra. Ha mr tallkoztunk az LPD-vel vagy hozz hasonl rendszerekkel, akkor innen nyugodtan ugorhatunk az Kezdeti belltsok cm szakaszra. Az LPD vezrli a szmtgphez csatlakoztatott nyomtat sszes funkcijt. Szmos feladata van:

220

Fejezet 9. Nyomtats

Felgyeli a loklisan s hlzaton keresztl csatlakoztatott nyomtatk hozzfrseit. Lehetv teszi az tkldtt llomnyok kinyomtatst, amelyeket munkknak neveznk. Minden nyomtathoz fenntart egy nyomtatsi sort, amivel meg tudja akadlyozni, hogy egyszerre tbb felhasznl is hozz tudjon frni az egyes nyomtatkhoz. A fejlceket (vagy ms nven munka- vagy elvlaszt lapokat) nyomtat, gy a felhasznlk knnyen megtalljk a sajt nyomtatsaikat a tbbi kzt. Felgyeli a soros portokon csatlakoz nyomtatk kommunikcis belltsait. A hlzaton keresztl tkli a munkkat egy msik szmtgp LPD sorba. A nyomtatand munkk formzshoz lefuttatja az adott nyomtat nyelvhez s kpessgeihez illeszked specilis szrket. Nyilvntartja a nyomtat kihasznltsgt.

A belltsait tartalmaz llomny (/etc/printcap) s a specilis szrprogramok segtsgvel az LPD sokfle nyomtatn kpes az sszes emltett feladatot vagy annak egy rszt megvalstani.

9.2.1. Amirt nyomtatsi sort rdemes hasznlni


Amikor csak egyedl vagyunk a rendszerben, felmerlhet bennnk a krds, hogy minek is kellene neknk veszdni a nyomtatsi sor belltsval, hiszen nincs szksgnk sem a hozzfrsek vezrlsre, sem fejlcekre, sem pedig nyilvntartsra. Noha akr kzvetlenl is el tudjuk rni a nyomtatt, nhny okbl azrt mgis rdemes nyomtatsi sort hasznlni:

Az LPD a httrben nyomtat, ezrt ilyenkor nem kell megvrni, amikor az adat tmsoldik a nyomtatra. Az LPD tetszlegesen tudja alaktani a nyomtatsi munkkat: hozzjuk tud tenni klnbz adatokat (dtum s id), vagy a specilis llomnyokat (pldul a TEX DVI formtumt) kpes megrtetni a nyomtatval, s nem neknk kell mindezeket a lpseket elvgeznnk. Szmos nyomtatsi lehetsggel rendelkez szabad s kereskedelmi program arra szmt, hogy a rendszernkben nyomtatsi sor tallhat, ezrt egy ilyen belltsval sokkal knnyebb hasznlni ezeket a szoftvereket.

9.3. Kezdeti belltsok


gy tudjuk hasznlni a nyomtatkat az LPD nyomtatsi rendszervel, ha egyarnt belltjuk a nyomtatt s magt az LPD-t is. Itt a bellts kt szintjt trgyaljuk:

Az Alacsonyszint nyomtatbellts cm szakaszbl megtudhatjuk, hogyan tudunk csatlakoztatni egy nyomtatt, hogyan adjuk meg az LPD-nek, miknt kommunikljon vele, hogyan nyomtassunk ki egyszer szveges llomnyokat a nyomtatn. A Magasszint nyomtatbellts szakaszban bemutatjuk, hogyan nyomtassunk ki klnfle specilis llomnyokat, hogyan ksztessnk fejlceket, hogyan nyomtassuk hlzaton keresztl, hogyan vezreljk a nyomtatk hozzfrst s hogyan tartsuk nyilvn a nyomtat hasznlatt.

221

Fejezet 9. Nyomtats

9.3.1. Alacsonyszint nyomtatbellts


Ebben a szakaszban lthatjuk, mikppen kell belltani a nyomtatnkat s az LPD hogyan lesz kpes azt hasznlatba venni. Az alapoktl kezdnk:

A Hardveres bellts cm szakaszban abban kapunk segtsget, hogyan kell a nyomtatt a szmtgphez csatlakoztatni. A Szoftveres bellts cm szakaszban az LPD nyomtatsi rendszer belltst tartalmaz llomnyt (/etc/printcap) vesszk sorra.

Amennyiben olyan nyomtatt akarunk belltani, amely nem helyileg, hanem valamilyen hlzati protokollon keresztl csatlakozik, nzzk meg a Nyomtatk hlzati adatcsatlakozssal cm szakaszt. Habr ez a szakasz nevben csupn Alacsonyszint nyomtatbelltsrl szl, meglehetsen szertegaz tud lenni. A nyomtat hardveres s szoftveres letre keltse az egyik legnehezesebb feladat. Ha van egy mkd nyomtatnk, a fejlcek s a nyilvntarts belltsa tulajdonkppen mr gyerekjtk.

9.3.1.1. Hardveres bellts


Ebben a szakaszban a nyomtatk csatlakoztatsnak lehetsges mdozatairl esik sz. Beszlni fogunk mindenfle portokrl s kbelekrl, s a FreeBSD rendszermagjnak az egyes nyomtatk hasznlathoz szksges belltsairl is. Ha korbban tudtuk csatlakoztatni a nyomtatnkat, s ms opercis rendszerekkel mr sikeresen is nyomtattunk vele, akkor rgtn ugorhatunk is a Szoftveres belltsokat tartalmaz szakaszra. 9.3.1.1.1. Portok s kbelek A szemlyi szmtgpekhez kaphat nyomtatk ltalban a kvetkez hrom csatolfellet egyikvel rendelkeznek:

A soros, ms nven RS-232-es vagy COM porton keresztl kommunikl felletek a szmtgp soros portjn kldenek adatot a nyomtatnak. A soros csatolfelletek igen elterjedtek a szmtgpiparban, knnyen tudunk ilyen kbelt szerezni, gyorsan is gyrthat. Elfordulhat, hogy a soros csatolfelletek hasznlathoz valamilyen klnleges kbelre, valamint bonyolult kommunikcis belltsok megadsra van szksg. A legtbb soros port ltal elrhet legnagyobb adattviteli sebessg msodpercenknt 115 200 bit, ami miatt azonban a komolyabb grakai tartalmak nyomtatsa szinte lehetetlen. A prhuzamos csatolfelletek a szmtgpnk prhuzamos portjval kldenek adatokat a nyomtatnak. A prhuzamos felletek gyorsabbak az RS-232 soros felletnl, s a szmtgppiacon is gyakran megtallhatak. Knnyen tudunk ilyen kbelt szerezni, azonban kzileg nehezebb elkszteni. A prhuzamos csatolfelletekhez ltalban nem tartoznak kommunikcis belltsok, ezrt rendkvl egyszeren el lehet boldogulni velk. A prhuzamos felletekre olykor Centronics csatolfelletknt is hivatkoznak, amelyet egy nyomtattpus utn neveztek el.

A Universal Serial Bus (Univerzlis soros busz) rvidtseknt hasznlt USB elnevezs csatolfellet a prhuzamos s a soros felleteknl jval nagyobb sebessgre kpes. A hozztartoz kbelek felptse egyszer s az ruk olcs. Habr a nyomtats tern az USB hivatott levltani az RS-232-es soros s a prhuzamos felleteket, nem mindegyik UNIX rendszer tmogatja kellkppen. Ezt a problmt pldul gy kerlhetjk el, ha olyan nyomtatt vsrolunk, amelyen a legtbbhz hasonlan a prhuzamos s az USB csatlakozs is megtallhat.

222

Fejezet 9. Nyomtats A prhuzamos felleteken ltalban csak egy irnyban tudunk zeneteket kldeni (a szmtgptl a nyomtathoz), mikzben az USB s a soros fellet hasznlatval mind a kt irnyban is. FreeBSD alatt viszont mr az jabb (EPP s ECP) prhuzamos portok egy IEEE 1284 szabvny kbellel kpesek oda-vissza kommuniklni. A prhuzamos nyomtatk ktirny kommunikcijt ltalban kt md kzl az egyiken szoktk megvalstani. Az els esetben a FreeBSD a nyomtathoz egy specilis meghajtt hasznl, amely ismeri az ltala beszlt nyelvet. Ilyenek a tintasugaras nyomtatk, amelyek ms egyb llapotinformcik mellett ezen keresztl kpesek jelezni a tinapatronokban lev tinta mennyisgt. A msodik esetben a nyomtat ismeri a PostScript nyelvet. A PostScript nyelv munkk valjban a nyomtatnak kldtt programok. Hasznlatukhoz mg paprra sincs felttlenl szksg, s addhat, hogy kzvetlenl a szmtgpnek vlaszolnak. A PostScript is ktirny kommunikcin keresztl rtesti a szmtgpet az olyan gondokrl, mint pldul a PostScript programokban lev hibk vagy a papr beakadsa, amely informcinak a felhasznlk szoktak rlni. Hovatovbb ez a ktirny kommunikci a kulcsa a PostScript nyomtatk hatkony nyilvntartsnak is: egyszeren lekrdezzk a nyomtattl a lapszmllt (ami megadja, hogy a nyomtat eddig mennyi lapot nyomtatott ki), kikldjk a felhasznlhoz tartoz feladatot s ismt lekrdezzk a lapszmllt. A kt rtk kivonsbl tjkozdhatunk a felhasznl ltal ignyelt lapok mennyisgrl.

9.3.1.1.2. Prhuzamos portok A prhuzamos csatolfelleten rintkez nyomtat hasznlathoz kapcsoljunk ssze szmtgpnket s nyomtatnkat egy prhuzamos kbellel. Az erre vonatkoz konkrt utastsok a nyomtat s/vagy a szmtgp kziknyvben olvashatak. Jegyezzk meg, hogy a szmtgp melyik prhuzamos portjra csatlakoztattuk a kbelt. FreeBSD alatt az els ilyen port a ppc0 eszkz, a msodik pedig a ppc1 eszkz lesz s gy tovbb. A nyomtateszkz elnevezse ugyanezt a smt kveti: a /dev/lpt0 lesz az els prhuzamos porton lev nyomtat stb.

9.3.1.1.3. Soros portok A soros csatolfelletet hasznl nyomtatk bezemelshez elszr egy soros kbel segtsgvel kapcsoljuk ssze a szmtgpnkkel. Ennek pontos rszleteit a nyomtat s/vagy a szmtgpnk kziknyvben tallhatjuk meg. Ha nem vagyunk benne biztosak, hogy milyen a megfelel soros kbel, prbljunk az albbiak alapjn dnteni:

A modem kbele a kt oldaln lev az egymsnak megfelel tskket kzvetlenl sszekti. Ezt a tpust nevezik DTE-DCE kbelnek. A null-modem kbel bizonyos rintkezket rendesen, msokat pedig fordtva kt ssze (pldul a kldt a fogadval), illetve nmelyeket rvidre zr kzvetlenl a csatlakozn bell. Ez a tpus a DTE-DTE kbel. Nhny specilis nyomtat esetn elfordul mg a soros nyomtatkbel, amelyek leginkbb a null-modem kbelekez hasonltanak, azonban az ott rvidre zrt csatornk itt a nekik megfelel rintkezknek tovbbtanak jeleket.

Emellett mg a nyomtat ellapjn vagy az aljn tallhat kapcsolk segtsgvel be kell lltanunk a nyomtathoz tartoz kommunikcis paramtereket is. Itt vlasszuk azt a bps (a bitek szma msodpercenknt) rtket, amelyet mg a szmtgpnk s a nyomtatnk is egyarnt kpes tmogatni. Vlasszunk 7 vagy 8 adatbitet, pros, pratlan vagy kikapcsolt paritsbitet s 1 vagy 2 stopbitet. Ekkor tudjuk megadni a forgalomirnytsi protokollt is: lehet kikapcsolt, XON/XOFF (ez az n. svon belli vagy szoftveres) forgalomirnyts. Ne felejtsk el ezeket a belltsokat a most kvetkez szoftveres belltsok elvgzse sorn sem.

223

Fejezet 9. Nyomtats

9.3.1.2. Szoftveres bellts


Ebben a fejezetben trgyaljuk a FreeBSD-ben tallhat LPD nyomtatsi rendszer mkdshez s a nyomtatshoz szksges szoftveres belltsokat. me az elvgzend lpsek rvid vzlata: 1. 2. 3. 4. Amennyiben szksges, lltsuk be a rendszermagunkat nyomtat ltal hasznlt portra. Ehhez A rendszermag belltsa szakaszban olvashatjuk mit is kell pontosan tenni. Ha prhuzamos portot hasznlunk, akkor lltsuk be, hogy a prhuzamos port miknt fog kommuniklni. A prhuzamos port kommunikcis mdjnak belltsa cm szakasz trja fel ennek rszleteit. Prbljuk ki, hogy ezek utn az opercis rendszer kpes-e adatot kldeni a nyomtatnak. A nyomtat kommunikcijnak ellenrzse szakaszban kapunk erre pr javaslatot. Az /etc/printcap llomny felhasznlsval lltsuk be a nyomtatnkhoz a LPD-t. Errl a fejezet tovbbi rszei adnak majd felvilgostst.

9.3.1.2.1. A rendszermag belltsa Az opercis rendszer magja eszkzk egy adott csoportjval kpes egyttmkdni, amiben a soros s prhuzamos felleten csatlakoz nyomtatk is megtallhatak. Azonban ha a rendszermag nem ismeri fel mg valamelyiket, akkor a soros vagy prhuzamos portok hasznlathoz kln tmogatsra van szksg. gy tudjuk megnzni, hogy a jelenleg hasznlt rendszermag tmogatja-e a soros csatolfelletet:
# grep sioN /var/run/dmesg.boot

Itt az N nulltl kezdden adja meg a soros port sorszmt. Amennyiben ltunk valami ilyesmit:
sio2 at port 0x3e8-0x3ef irq 5 on isa sio2: type 16550A

Ez azt jelenti, hogy a rendszermag sikeresen szlelte a portot. A prhuzamos csatolfellet tmogatsrl gy gyzdhetnk meg:
# grep ppcN /var/run/dmesg.boot

Itt az N nulltl kezdden sorszmozza a prhuzamos portot. Ha eredmnyl valami hasonlt kapunk:
ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0 ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode ppc0: FIFO with 16/16/8 bytes threshold

Ez arra utal, hogy a rendszermagunk tud a portrl. Elfordulhat azonban, hogy az opercis rendszer csak akkor fogja szrevenni a nyomtatsra hasznlt soros vagy prhuzamos portot, ha tlltjuk a rendszermagunkat. A soros port tmogatsnak belltshoz olvassuk el a rendszermag belltsrl szl szakaszt. A prhuzamos port tmogatshoz szintn olvassuk el ugyanazt a szakaszt s a most a kvetkezt.

224

Fejezet 9. Nyomtats

9.3.1.3. A prhuzamos port kommunikcis mdjnak belltsa


A prhuzamos csatolfellet hasznlata esetn vlaszthatunk, hogy a FreeBSD milyen mdon tartsa a kapcsolatot a nyomtatval: megszaktsokkal vezrelje (interrupt-driven) vagy esetleg folyamatosan krdezgesse (polled). A FreeBSD ltalnos meghajtja (lpt(4)) a ppbus(4) alrendszert hasznlja, ami a portot a ppc(4) meghajtn keresztl vezrli.

A megszakts alap mdszer a GENERIC rendszermagban alaprtelmezs. Ilyenkor az opercis rendszer egy megszaktskrs felhasznlsval rtesl arrl, hogy a nyomtat mikor ll kszen adatok fogadsra. A lekrdezses mdszer hasznlata sorn az opercis rendszer folyamatosan rdekldik a nyomtat rendelkezsre llsrl. Amikor erre pozitv megerstst kap, akkor a rendszermag jabb adatokat kld.

A megszaktsos mdszer valamivel gyorsabb, azonban cserbe lefoglal egy rtkes IRQ vonalat. A HP jabb nyomtati lltlag nem mkdnek megfelelen ilyen mdban, valamilyen (pillanatnyilag mg nem teljesen tisztzott) idztsi problma miatt. Ezrt az ilyen nyomtatknak is valsznleg a lekrdezses mdszer kell hasznlniuk. Ms nyomtatk pedig habr mkdnek mind a kt mdszerrel, hihetetlenl lassak a megszaktsokkal. Ktflekppen llthatjuk be a kommunikcis mdot: a rendszermagon keresztl, vagy az lptcontrol(8) segdprogrammal. A rendszermagban gy llthatjuk be a kommunikcit: 1. rjuk t a rendszermag belltsait tartalmaz llomnyt. Keressk meg benne a hasznlt prhuzamos portnak megfelelen a ppc0, ppc1 (msodik prhuzamos port) vagy ppc2 (harmadik prhuzamos port) bejegyzst, s engedlyezzk.

A megszaktsos md hasznlathoz nyissuk meg a /boot/device.hints llomnyt, s az N helyre rjuk be a


hint.ppc.0.irq="N "

sorba a megfelel IRQ szmt. A rendszermag belltsait tartalmaz llomnynak tartalmaznia kell a ppc(4) meghajtt is:
device ppc

A lekrdezses md hasznlathoz a /boot/device.hints llomnybl tvoltsuk el a kvetkez sort:


hint.ppc.0.irq="N "

Nmely esetben azonban ennyi mg nem lesz elg a port lekrdezses belltshoz. Ugyanis ha a hozztartoz meghajt az acpi(4), akkor ez fogja felismerni, kezelni s a nyomtathoz tartoz portok hozzfrsi mdjt vezrelni. A problmt ezrt gyakran rdemes a acpi(4) belltsai kztt is keresni. 2. Mentsk el az llomnyt. Kongurljuk be, fordtsuk le s teleptsk az j rendszermagot. Ennek pontos rszleteit a rendszermag belltsrl szl fejezetben olvashatjuk.

A kommunikci mdjnak belltsa az lptcontrol(8) programmal: 1. A megszaktsos md belltshoz rjuk be:


# lptcontrol -i -d /dev/lptN

ahol az lptN a nyomtathoz tartoz eszkz neve. 2. A lekrdezses md belltshoz rjuk be:

225

Fejezet 9. Nyomtats
# lptcontrol -p -d /dev/lptN

ahol az lptN a nyomtathoz tartoz eszkz neve. Ha ezeket a parancsokat berakjuk az /etc/rc.local llomnyunkba, akkor azzal a rendszer minden egyes indtsa sorn belltjuk a szmunkra megfelel mdot. Errl tbbet az lptcontrol(8) man oldalrl tudhatunk meg.

9.3.1.4. A kommunikci ellenrzse


Mg mieltt nekiltnnk a nyomtatsi rendszer belltsnak, bizonyosodjuk meg rla, hogy az opercis rendszer kpes adatokat tovbbtani a nyomtatnak. Sokkal knnyebb egymstl fggetlenl megvizsglni a kommunikci s nyomtatsi rendszer mkdst. A nyomtatt gy tudjuk kiprblni, ha kldnk neki valamilyen szveget. Az lptest(1) tkletesen megfelel akkor, ha olyan nyomtatnk van, amely azonnal kinyomtatja a kapott szveget. Ez a program 96 sorban ltrehozza mind az sszes 96 kinyomtathat ASCII karaktert. A PostScript (vagy ms egyb nyelvet ismer) nyomtatknak azonban ennl kinomultabb prbra van szksge. Erre a clra tkletesen megfelel egy olyan kisebb PostScript programocska, mint pldul ez:
%!PS 100 100 moveto 300 300 lineto stroke 310 310 moveto /Helvetica findfont 12 scalefont setfont (Remek! Ez mukodik!) show showpage

Ezt a PostScript kdot nyugodtan elmenthetjk egy llomnyba, amelyet aztn a ksbbi szakaszokban megjelen pldk szerint hasznlni is tudunk majd.
Megjegyzs: A kziknyvben a nyomtat nyelve alatt leginkbb egy PostScript-szer nyelvet rtnk, nem pedig a Hewlett Packard PCL tpus nyelvt. Habr a PCL nagyon sokra kpes, hiszen keverhetjk mg benne akr a programokat s a nyers szvegeket is. Ezzel szemben a PostScript nem kpes nyers szveget kinyomtatni, ezrt az ilyen tpus nyomtatk mkdtetshez kln tmogatsra van szksgnk.

9.3.1.4.1. A prhuzamos nyomtat ellenrzse Ebben a szakaszban megtudhatjuk, hogy FreeBSD alatt miknt ellenrizzk a prhuzamos portra csatlakoz nyomtatk mkdst. A prhuzamos porton lev nyomtat kiprblshoz: 1. 2. A su(1) segtsgvel vljunk root felhasznlv. Kldjnk a nyomtatnak valamilyen adatot.

Ha a nyomtat kpes nyers szveget fogadni, akkor hasznljuk az lptest(1) programot. Ehhez gpeljk be:
# lptest > /dev/lptN

ahol az N nulltl kezdden a prhuzamos port sorszma.

Ha a nyomtat PostScript vagy ms nyomtatsi nyelvet ismer, akkor egy apr programot kell kldennk neki. Ehhez rjuk be:

226

Fejezet 9. Nyomtats
# cat > /dev/lptN

Ezutn soronknt rjuk be a programot, de vigyzzunk, mert az Enter vagy a Return lenyomsa utn mr nem tudjuk kijavtani! A program begpelse utn nyomjuk meg a Ctrl+D vagy brmely ms olyan billentykombincit, amivel ki tudunk lpni. Ezt a programot belerakhatjuk egy llomnyba is, amire aztn adjuk ki az albbi parancsot:
# cat
llomny > /dev/lptN

ahol az llomny a nyomtatra kldend program neve lesz. Ezutn a nyomtat megkezdi a nyomtatst. Ne aggdjunk, ha netaln valami furcsn nzne ki, mert a ksbbiekben ezt mg gyis rendbetesszk.

9.3.1.4.2. A soros nyomtat ellenrzse Ebben a szakaszban megtudhatjuk, hogyan ellenrizzk a FreeBSD s soros portra kttt nyomtat kapcsoldst. gy tudjuk kiprblni a soros porton csatlakoz nyomtatnkat: 1. 2. A su(1) paranccsal vljunk root felhasznlv. Nyissuk meg az /etc/remote llomnyt. Tegyk hozz a kvetkez sort:
printer:dv=/dev/port:br#bps:pa=parits

ahol a port a soros porthoz tartoz eszkzler neve (ttyd0, ttyd1, stb.), a bps a nyomtat ltal hasznlt adattviteli sebessg, vgl a parits a nyomtathoz hasznlt parits (ami lehet even (pros), odd (pratlan), none (nincs), vagy zero (nulla)). me egy olyan soros nyomtat belltsa (printer nven), amely sebessge 19 200 bps, a harmadik portra csatlakozik s nem hasznl paritst:
printer:dv=/dev/ttyd2:br#19200:pa=none

3.

Kapcsoldjunk a nyomtathoz a tip(1) segtsgvel. Ennek parancsa:


# tip printer

Ha az imnti lps nem mkdne, prblkozzunk az /etc/remote llomny jbli mdostsval, s a /dev/cuaaN eszkz helyett hasznljuk a /dev/ttydN eszkzt! 4. Kldjnk adatot a nyomtatnak.

Ha a nyomtat kpes nyers szveget nyomtatni, akkor hasznljuk az lptest(1) segdprogramot. Gpeljk be:
% $lptest

Ha a nyomtat a PostScript vagy egy hozz hasonl nyomtatsi nyelven kommunikl, akkor a nyomtatnak egy rvid programot kell kldennk. Soronknt gpeljk be a programot, azonban vigyzzunk arra, hogy a trls s minden ms szerkesztsre hasznlt billenty a nyomtat szmra is rtelmes lehet. Az is elfordulhat, hogy a program kldst egy specilis jelsorozattal tudjuk csak lezrni. A PostScript nyomtatk esetn ilyenkor elegend a Ctrl+D billentyk egyttes lenyomsa. Vagy tehetjk az egsz programot egy llomnyba, amihez aztn rjuk be ezt:
% >llomny

227

Fejezet 9. Nyomtats ahol az llomny a programot tartalmaz llomny neve. Miutn a tip(1) elkldte az llomnyt, nyomjuk le a lezrshoz szksges billentykombincit. Most mr meg kellene jelennie valaminek a nyomtatn. Az mg nem szmt, pontosan mi is lesz az ksbb mg majd gyis belltjuk.

9.3.1.5. A nyomtatsi rendszer aktivlsa: a /etc/printcap llomny


Csatlakoztattuk a nyomtatnkat, a mkdtetshez belltottuk a rendszermagot (amennyiben erre szksgnk volt), s tudtunk neki adatokat kldeni. Most mr kszen llunk arra, hogy LDP alkalmazson keresztl belltsuk a nyomtat hozzfrsnek vezrlst. Az LPD belltsait az /etc/printcap llomnyban talljuk. Az LPD nyomtatsi rendszer minden egyes mvelet eltt beolvassa ezt az llomnyt, ezrt a benne vgzett mdostsok szinte azonnal letbe is lpnek. A printcap(5) tartalma knnyen rthet, a /etc/printcap llomnyt egyszeren mdosthatjuk a kedvenc szvegszerkesztnkkel. A felptse teljesen megegyezik a tbbi hozz hasonl llomnyval: ilyenek pldul a /usr/share/misc/termcap s a /etc/remote. Az itt alkalmazott formtum teljes lerst a cgetent(3) man oldalon talljuk. A nyomtatsi rendszer egyszer belltsa az albbi lpsekbl ll: 1. 2. 3. 4. Adjunk nevet (s mg nhny lnevet) a nyomtatnak, rjuk ezeket az /etc/printcap llomnyba. A nevekrl A nyomtat elnevezse cm szakaszban kapunk felvilgostst. A(z alapbl bekapcsolt) fejlclapokat az sh tulajdonsg megadsval kapcsolhatjuk ki. A rszleteket A fejlclapok letiltsa cm szakaszban talljuk. Hozzunk ltre egy nyomtatsi knyvtrat, s adjuk meg a helyt az sd tulajdonsg belltsval. A nyomtatsi knyvtr ltrehozsa cm szakaszban fogunk errl tbbet mondani. lltsunk be egy nyomtat ltal hasznlt /dev knyvtrbeli lert, s az lp tulajdonsggal adjuk meg az /etc/printcap llomnyban. Errl rszletesebben A nyomtateszkz azonostsa cm szakaszban olvashatunk. Ha a nyomtat soros porton keresztl csatlakozik, az ms# tulajdonsggal mg meg kell adnunk A nyomtatsi rendszer kommunikcis paramterei szakaszban trgyaltakat is. Helyezznk el egy szrt a berkez nyers szvegek szmra. Errl A szvegszr teleptse cm szakasz rtekezik. Az lpr(1) parancs segtsgvel prbljuk ki a nyomtatst. Ennek pontos rszleteit a Prbljuk ki! s a Hibakeress cm fejezetekben tallhatjuk meg.
Megjegyzs: A magasabb szint nyomtatk, mint pldul a PostScript nyomtatk nem kpesek kzvetlenl nyers szveget nyomtatni. Az imnt felvzolt egyszer belltsi sma felttelezi, hogy csak olyan llomnyokat fogunk nyomtatni a nyomtatn, amelyeket meg is rt.

5. 6.

A felhasznlk gyakran arra szmtanak, hogy brmelyik ltaluk elrhet nyomtatn kpesek nyers szveget kinyomtatni. Az LPD alkalmazssal kapcsolatban ll programok is ltalban ugyanezt az elgondolst kvetik. Ha egy sajt nyelvvel rendelkez nyomtatt akarunk telepteni, de a nyomtat sajt nyelvn s a nyers szveg formjban rkez munkkat is rendesen ki akarjuk nyomtatni, akkor mindenkppen javasoljuk, hogy illesznk mg

228

Fejezet 9. Nyomtats egy tovbbi lpst is ebbe a sorba: illessznk a rendszerbe egy nyers szvegrl automatikusan PostScript (vagy ms egyb) nyelvre tolmcsol programot. Err a Szveges nyomtatsi feladatok PostScript nyomtatkon cm fejezetben olvashatunk. 9.3.1.5.1. A nyomtat elnevezse Az els (egyszer) lps a nyomtatnk nevnek kivlasztsa. Igazbl nem szmt, mennyire kifejez vagy ppen hbortos nevet adunk neki, hiszen emellett mg szmos lnvvel is illethetjk. Az /etc/printcap llomnyban megtallhat nyomtatk egyiknek legalbb az lp lnvvel rendelkeznie kell, mivel ez lesz az alaprtelmezett nyomtat neve. Teht ha a felhasznl nem adja meg sem a PRINTER krnyezeti vltozt, sem pedig az LPD-vel kapcsolatban ll aktulis parancsban a hasznlni kvnt nyomtat nevt, akkor a rendszer az lp nevt fogja keresni. Ezenkvl ltalban mg gyakran adnak egy olyan lnevet is a nyomtatnak, ahol annak teljes lersa, tbbek kzt a gyrtmnya s a tpusa szerepel. Ahogy sikerlt nevet s lneveket adni a nyomtatnak, rjuk is be ezeket az /etc/printcap llomnyba. Itt a nyomtat neveit balrl el kezdjk felsorolni, mindegyik lnevet egy fggleges vonallal vlasszunk el, s az utols utn pedig tegynk pontosvesszt. A most kvetkez pldban egy olyan vzt mutatunk be az /etc/printcap llomnyhoz, amiben kt nyomtatt (egy Diablo 630 mrkj sornyomtatt s egy Panasonic KX-P4455 tpus PostScript lzernyomtatt) adunk meg:
# # /etc/printcap (rose) # rattan|line|diablo|lp|Diablo 630 Line Printer: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:

Ebben a pldban az els nyomtat neve rattan, s ehhez tartozik mg a line, diablo, lp, s Diablo 630 Line Printer lnv. Mivel itt soroltuk fel az lp lnevet is, ezrt a rendszerben ez lesz az alaprtelmezett nyomtat. A msodik nyomtat neve bamboo, s lnevei tbbek kzt a ps, PS, S, panasonic, valamint a Panasonic KX-P4455 PostScript v51.4.

9.3.1.5.2. A fejlclapok letiltsa Az LPD nyomtatsi rendszer alaprtelmezs szerint minden egyes feladathoz fejlclapot kszt. Ez a lap szp nagy betkkel tartalmazza a munkt kiad felhasznl nevt, a gpet, amirl kldtk, s a feladat nevt. Sajnlatos mdon ez azonban inkbb akadlyozza a hibakeresst a nyomtat belltsban, ezrt most inkbb kapcsoljuk ki ezeket. Ha le akarjuk tiltani a fejlclapokat, az /etc/printcap llomnyban adjuk meg az sh (gy mint suppress header pages) tulajdonsgot. me egy plda az sh tulajdonsggal bvtett /etc/printcap llomnyra:
# # /etc/printcap (rose) - sehol sem lesznek fejlclapok # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :sh: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh:

229

Fejezet 9. Nyomtats Ebben a pldban meggyelhetjk a helyes felrsi mdot: az els sor a legbaloldalibb oszlopban kezddik, s az azt kvet sorok pedig bentebb. Minden bejegyzsben az utols kivtelvel mindegyik sor egy visszaper (backslash) karakterrel zrul.

9.3.1.5.3. A nyomtatsi knyvtr ltrehozsa A nyomtatsi rendszernk belltsnak kvetkez lpse a nyomtatsi knyvtr ltrehozsa. Ez egy olyan knyvtr, ahov a klnbz nyomtatsi feladatok kerlnek a feldolgozsuk eltt, valamint ahol a nyomtatsi rendszer tbbi llomnya lakozik. A nyomtatsi rendszer adatait trol knyvtrakat tartalmuk gyakori vltozsa miatt ltalban a /var/spool knyvtrba szoks tenni. Ezen knyvtrak tartalmt nem szksges menteni sem. Az mkdir(1) parancs futtatsval egyszeren jra ltre tudjuk hozni. ltalban minden nyomtathoz kln ltre szoktak hozni egy knyvtrat az adott nyomtat nevn. Erre plda:
# mkdir /var/spool/nyomtatnv

Azonban ha a hlzatunkon rengeteg nyomtat tallhat, akkor rdemes inkbb egyetlen knyvtrat hasznlni, amelyet az LPD szmra tartunk fenn.
# mkdir /var/spool/lpd # mkdir /var/spool/lpd/rattan # mkdir /var/spool/lpd/bamboo

Megjegyzs: Amennyiben fontos neknk a felhasznli nyomtatsok titkossgnak megvsa, rdemes levdennk a nyomtatsi knyvtrat, gy az nem lesz mindenki ltal elrhet. A nyomtatsi knyvtrak tulajdonosa egyedl s kizrlag a daemon felhasznl s a daemon csoport legyen, s hozz olvassi, rsi s keressi engedlyekkel rendelkezzen. Ezt fogjuk most belltani a pldinkban szerepl nyomtatinkhoz is:
# # # #
chown daemon:daemon /var/spool/lpd/rattan chown daemon:daemon /var/spool/lpd/bamboo chmod 770 /var/spool/lpd/rattan chmod 770 /var/spool/lpd/bamboo

Vgezetl az /etc/printcap llomnyban ezeket a knyvtrakat se felejtsk el megadni az LPD-nek. Itt a nyomtatsi knyvtr nevt az sd tulajdonsggal rjuk le:
# # /etc/printcap (rose) - a nyomtatsi knyvtrak hozzadsa # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :sh:sd=/var/spool/lpd/rattan: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh:sd=/var/spool/lpd/bamboo:

Vegyk szre, hogy a nyomtat neve ugyan a sor elejn kezddik, azonban a hozztartoz sszes tbbi sor mind bentebb kezddik s egy visszaper (backslash) karakterrel vlasztjuk le.

230

Fejezet 9. Nyomtats Ha az sd tulajdonsggal nem adunk meg semmilyen nyomtatsi knyvtrat, akkor ennek az rtke alaprtelmezs szerint a /var/spool/lpd lesz.

9.3.1.5.4. A nyomtateszkz azonostsa A Hardveres bellts cm szakaszban mr beazonostottuk, hogy a FreeBSD a /dev knyvtrban melyik eszkzlern keresztl fogja megszltani a nyomtatt. Most ideje ugyanezt tudatni az LPD dmonnal is. gy amikor a nyomtatsi rendszer ki szeretne nyomtatni egy munkt, a szrprogram nevben ezt az eszkzt nyitja meg (ahol a szrn keresztl tovbbtjuk az adatokat a nyomtat fel). Az lp tulajdonsg segtsgvel a /etc/printcap llomnyban soroljuk fel a nyomtatk /dev knyvtrban tallhat lerit. Az eddig hasznlt pldnkban most ttelezzk fel, hogy a rattan nev nyomtat az els prhuzamos porton tallhat, mg a bamboo nev a hatodik soros porton. Ebben a helyzetben gy kellene kiegsztennk az /etc/printcap llomnyunkat:
# # /etc/printcap (rose) - a hasznlni kvnt eszkzk # beazonostsa # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :sh:sd=/var/spool/lpd/rattan:\ :lp=/dev/lpt0: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh:sd=/var/spool/lpd/bamboo:\ :lp=/dev/ttyd5:

Az LPD alaprtelmezs szerint a /dev/lp eszkz fogja hasznlni, ha nem adjuk meg az lp tulajdonsgot az /etc/printcap llomnyban. Az /dev/lp azonban a FreeBSD-ben jelenleg nem ltezik. Ha a teleptend nyomtatnk valamelyik prhuzamos portra csatlakozik, akkor innen akr tovbb is lphetnk A szvegszr teleptse cm szakaszra. Ha viszont nem, kvessk a most kvetkez szakaszban szerepl utastsokat.

9.3.1.5.5. A nyomtatsi rendszer kommunikcis paramterei A soros portra csatlakoz nyomtatknl az LPD kpes belltani az adattviteli sebessget, a paritst, valamint ms egyb olyan kommunikcis paramtereket, amelyekkel a szrprogram adatokat tud tovbbtani a nyomtat fel. Ez tbb szempontbl is elnys, mivel:

Egyszeren az /etc/printcap llomny trsval ki tudunk prblni tbb kommunikcis belltst, nem kell magt a szrprogramot jrafordtanunk. A nyomtatsi rendszer kpes ugyanazt a szrt tbb, klnbz kommunikcis belltst alkalmaz nyomtathoz is hasznlni.

Az /etc/printcap llomnyban az lp tulajdonsggal megadott eszkzk soros kommunikcijnak belltsait az albbi tulajdonsgok hatrozzk meg:

231

Fejezet 9. Nyomtats
br#sebessg

Belltja az eszkz adattviteli sebessgt a sebessg rtkre, ahol a sebessg lehet 50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19 200, 38 400, 57 600 vagy 115 200 bit msodpercenknt (bps).
ms#stty-md

Belltja az eszkz megnyitsa utn hasznlt terminleszkz mkdsnek paramtereit. Az stty(1) man oldalon tbbet is megtudhatunk rluk. Miutn az LPD megnyitja az lp tulajdonsggal megadott eszkzt, belltja az ms# tulajdonsg rtke szerint annak jellemzit. Itt a parenb, parodd, cs5, cs6, cs7, cs8, cstopb, crtscts, s ixon mdok lehetnek lnyegesek, melyekrl az stty(1) man oldalon tbbet is megtudhatunk. lltsunk most akkor be az egyik kpzeletbeli nyomtatnkat a hatodik soros portra. Az adattviteli sebessge 38 400 bps lesz. A kommunikci mdjnl kapcsoljuk ki a paritst (-parenb), 8 bites karakterek legyenek (cs8), ne legyen modemes vezrls (clocal) s a hardveres forgalomirnyts legyen crtscts:
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh:sd=/var/spool/lpd/bamboo:\ :lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:

9.3.1.5.6. A szvegszr teleptse Most mr utasthatjuk az LPD-t, hogy milyen szvegszrt hasznljon a munkk nyomtatra kldshez. A szvegszr (text lter), vagy ms nven bemeneti szr (input lter) egy olyan program, amelyet az LPD egy nyomtatsi feladat elvgzsekor lefuttat. Amikor az LPD lefuttatja a nyomtathoz tartoz szvegszrt, a szr szabvnyos bemenetre elkldi a kinyomtatand munkt, s a szabvnyos kimenett pedig tirnytja az lp tulajdonsg ltal megadott nyomtateszkzre. Ennek megfelelen a szrnek a szabvnyos bemenetrl kell olvasnia az elvgzend feladatot, a szabvnyos kimenetre pedig a tnylegesen nyomtatandt kell kirnia. A szvegszrk rszleteirl a Hogyan mkdnek a szrk? szakasz szl. A mi esetnkben most szvegszrnek tkletesen megfelel egy olyan rvid szkript, ami a nyomtatra a munkt a /bin/cat paranccsal kldi ki. A FreeBSD-ben mg tallhatunk egy msik szrt is, amelynek a neve lpf. Ez kpes a trlst s alhzst jelz karaktereket rthetv tenni bizonyos nyomtatk szmra. Termszetesen itt hasznlhatunk kedvnk szerinti szrt is. Az lpf szr mkdsnek rszleteit Az lpf szvegszr cm szakaszban fejtjk ki bvebben. Elszr is ksztsnk egy /usr/local/libexec/if-simple nev egyszer szvegszr szkriptet. A kedvenc szvegszerkesztnkkel rjuk bele a kvetkez sorokat:
#!/bin/sh # # if-simple - egyszer szvegszr szkript az lpd-hez # Helye: /usr/local/libexec/if-simple # # Egyszeren tmsolja a kimenetre a bemenetrl rkez adatokat; nem # fogad el semmilyen paramtert. /bin/cat && exit 0 exit 2

Tegyk indthatv:

232

Fejezet 9. Nyomtats
# chmod 555 /usr/local/libexec/if-simple

Ezutn tjkoztassuk rla az LPD-t az /etc/printcap llomnyban tallhat if tulajdonsg megadsval. Itt most a pldnkban szerepl mind a kt nyomtathoz beillesztjk:
# # /etc/printcap (rose) - a szvegszr hozzadsa # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :sh:sd=/var/spool/lpd/rattan:\ :lp=/dev/lpt0:\ :if=/usr/local/libexec/if-simple: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh:sd=/var/spool/lpd/bamboo:\ :lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:\ :if=/usr/local/libexec/if-simple:

Megjegyzs: Az if-simple szkript megtallhat a /usr/share/examples/printing knyvtrban.

9.3.1.5.7. Az LPD elindtsa Az lpd(8) az /etc/rc szkriptbl, az lpd_enable vltoz rtknek megfelelen indul el. Ennek rtke alapbl NO, vagyis nem. Ha eddig mg nem tettk volna meg, akkor az /etc/rc.conf llomnyba most vegyk fel a kvetkez sort:
lpd_enable="YES"

Ezutn vagy indtsuk jra a szmtgpnket, vagy pedig adjuk ki az lpd(8) parancsot:
# lpd

9.3.1.5.8. Prbljuk ki! Elrkeztnk az LPD egyszer belltsnak utols lpshez. Sajnos azonban mg nem gratullhatunk, hiszen htra van mg a nyomtat kiprblsa s az esetlegesen elfordul hibk kijavtsa. A belltst gy tudjuk a legegyszerbben letesztelni, ha megprblunk valamit kinyomtatni. Az LPD rendszerben az lpr(1) parancs hasznlatval tudunk nyomtatsi feladatokat kiadni. A kommunikci ellenrzse cm szakaszban megtallhatjuk, hogy hozzunk ltre tesztelsre alkalmas szvegeket az lpr(1) s az lptest(1) programok segtsgvel. Az LPD belltsainak egyszer tesztelse: rjuk be:
# lptest 20 5 | lpr -Pnyomtatnv

233

Fejezet 9. Nyomtats ahol a nyomtatnv az /etc/printcap llomnyban megadott egyik nyomtat neve (vagy lneve) lehet. Az alaprtelmezett nyomtat kiprblshoz ne adjunk meg az lpr(1) parancsnak semmilyen -P paramtert. Mg egyszer megemltennk, hogy amennyiben PostScript nyomtatt tesztelnk, az elbbi helyett az lptest(1) paranccsal kldjnk ki egy PostScript programot. Ehhez tegyk a tesztel programunkat egy llomnyba, majd rjuk be az lpr llomnynv parancsot. A PostScript nyomtat esetn a kikldtt program eredmnyt kell ltnunk. Amennyiben az lptest(1) parancsot hasznljuk, valami ilyesmire kell szmtanunk:
!"#$%&()*+,-./01234 "#$%&()*+,-./012345 #$%&()*+,-./0123456 $%&()*+,-./01234567 %&()*+,-./012345678

A nyomtat kimertbb tesztelshez prbljunk meg nagyobb programokat kerteni valahonnan (ha a nyomtatnk valamilyen nyelven kommunikl) vagy adjunk meg az lptest(1) parancsnak ms paramtereket. Pldul az lptest 80 60 soronknt 80 karaktert rat ki 60 sorban. Amennyiben a nyomtat nem mkdne, nzzk meg a Hibakeresshez tartoz szakaszt.

9.4. Magasszint nyomtatbellts


Ebben a szakaszban olyan szrket mutatunk be, amelyek specilisan formzott llomnyok, fejlclapok, hlzati nyomtats, nyomtatsi nyilvntarts vagy szablyozs esetn hasznlhatak.

9.4.1. Szrk
Noha az LPD kpes hlzati protokollokat, nyomtatsi sorokat, hozzfrst s sok minden ms nyomtatsi feladatot kezelni, a tnyleges munka legnagyobb rsze a szrkben (lter) trtnik. A szrk olyan programok, amelyek tartjk a kapcsolatot a nyomtatval s megbrkznak annak eszkzfggsgeivel s klnleges ignyeivel. Az egyszer bellts sorn egy primitv szvegszrt lltottunk be (lsd A szvegszr teleptse) ami annyira egyszer, hogy szinte minden nyomtatn mkdnie kell. Azonban mindahhoz, hogy ki tudjuk hasznlni a klnbz talaktsi, nyilvntartsi lehetsgeket, valamint a nyomtatk klnlegessgeit s egyebeit, meg kell rtennk a szrk pontos mkdst. Az elbb emltett feladatok ugyanis teljesen a szr kezben vannak. Ezzel kapcsolatban azonban rossz hr, hogy ezeket a szrket neknk kell megrnunk. A j hr ellenben az, hogy knnyen tallunk ilyen szrket, vagy ha ppen nem lelnnk valamelyiket, akkor is gyorsan meg tudjuk ezeket rni. St, a FreeBSD alapbl tartalmaz is egyet, amit a /usr/libexec/lpr/lpf helyen tallunk meg, s sok olyan nyomtatval kpes egyttmkdni, amelyek nyers szveget tudnak nyomtatni. (Kezeli az llomnyokban felbukkan trlseket s tabulalsokat, valamint kpes nyilvntartst vezetni, de semmi tbbet.) Rajta kvl mg szmos szrt s szrelemet is tallhatunk a FreeBSD Portgyjtemnyben. Lssuk, mit tartogat szmunkra ez a rsz:

234

Fejezet 9. Nyomtats

A Hogyan mkdnek a szrk? cm szakaszban megprblunk egyfajta ttekintst adni a szrk nyomtatsi folyamatban betlttt szereprl. Mindenkppen rdemes elolvasnunk ezt a szakaszt, mivel ebben derl ki, hogy valjban mi is trtnik a fggny mgtt, vagyis amikor az LPD hasznlja ezeket a szrket. Ezzel a tudssal el tudjuk kerlni vagy ppen nyakon tudjuk cspni azokat a problmkat, amelyek a nyomtatinkhoz teleptett szrk hozzadsa sorn addhatnak. Az LPD alapbl arra szmt, hogy minden nyomtat kpes nyers szveget nyomtatni. Ez gondot okoz a PostScript (s minden ms nyelv alap) nyomtatk esetn, mivel azok nem kpesek nyers szveget nyomtatni. Szveges nyomtatsi feladatok PostScript nyomtatkon cm szakaszban viszont fny derl r, hogyan kerekedjnk fell ezen. Felttlenl olvassuk el, ha PostScript nyomtatnk van. A PostScript szmos program kzkedvelt kimeneti formtuma, st gyakran maguk a felhasznlk is szeretnek ilyen programokat rni. Sajnos azonban a PostScript nyomtatk egyltaln nem olcsk. A PostScript szimulcija nem PostScript nyomtatkon cm szakaszban megtudhatjuk, mikpp tudjuk gy mdostani a szrt, hogy nem PostScript nyomtatkon is tudjunk PostScript programokkal nyomtatni. Ezt a szakaszt akkor rdemes elolvasni, ha nincs PostScript nyomtatnk. A Konverzis szrk cm szakaszban elruljuk, miknt lehetsges automatizlni a klnbz llomnyformtumok s a nyomtatk ltal rthet formtumok kzti konverzikat, legyen az grakus vagy betszedsre vonatkoz adat. A szakasz elolvassa sorn megismerjk, hogyan tudjuk a nyomtatnkat kpess tenni az lpr -t paranccsal troff adatok, vagy a lpr -d paranccsal a TEX DVI llomnyainak, esetleg az lpr -v paranccsal raszteres kpek nyomtatsra s gy tovbb. Csak ajnlani tudjuk ennek elolvasst. A Kimeneti szrk cm szakaszban kiveszzk az LPD egyik kevsb hasznlt lehetsgt is, a kimeneti szrket. Hacsak nem fejlclapokat akarunk kszteni (lsd Fejlclapok), akkor ezt a szakaszt nyugodtan kihagyhatjuk. Az lpf szvegszr szakaszban bemutatsra kerl a FreeBSD-ben alapbl megtallhat lpf szr, amely egy sornyomtatnknl (vagy az gy viselked lzernyomtatknl) hasznlhat egyszer szvegszr. Ha nyers szvegek nyomtatsnl meg akarjuk oldani a nyomtatsi munkk nyilvntartst, vagy a trls karakter lttn a nyomtatnk fstlni kezdene, akkor mindenkppen rdemes belemerlnnk az lpf titkaiba.
Megjegyzs: A most kvetkez szkriptek mindegyike megtallhat a /usr/share/examples/printing knyvtrban.

9.4.1.1. Hogyan mkdnek a szrk?


Ahogy mr korbban is jeleztk, a szr egy olyan vgrehajthat program, amelyet az LPD indt el, amikor a nyomtatval eszkzfggetlen mdon kommunikl. Amikor az LPD egy feladat elvgzse sorn ki akar nyomtatni egy llomnyt, akkor elindt egy ilyen szrprogramot. A szr szabvnyos bemenetre elkldi a kinyomtatand llomnyt, a szabvnyos kimenett a nyomtatra, a szabvnyos hibajelzseit pedig egy naplllomnyba irnytja (ez utbbit az /etc/printcap) llomnyban az lf tulajdonsggal adhatjuk meg, vagy alaprtelmezs szerinti a /dev/console llomnyba kerl). Az LPD a hasznlni kvnt szrt s annak paramtereit az /etc/printcap llomnyban felsoroltak vagy az lpr(1) parancssorban megadottak szerint vlasztja ki. Pldul, ha a felhasznl a lpr -t parancsot adja ki, akkor az LPD a clknt megadott nyomtatnl szerepl tf tulajdonsg ltal megadott troff szrt kezdi el hasznlni. Amennyiben a felhasznl egyszeren csak nyers szveget akar nyomtatni, akkor az if szrnek kellene elindulnia (ez viszont csak rszben igaz: lsd Kimeneti szrk).

235

Fejezet 9. Nyomtats Hromfajta szr jelenhet meg az /etc/printcap llomnyban:

A szvegszr (text lter), ami a hagyomnyos szveges nyomtatsrt felels, s amit az LPD dokumentcijban rdekes mdon bemeneti szrnek (input lter) hvnak. Mivel az LPD arra szmt, hogy minden nyomtat alapbl kpes kinyomtatni brmilyen nyers szveget, ezrt a szvegszr feladata, hogy a nyomtat szmra gondoskodjon a tabultorok, trlsek s ms egyb specilis karakterek megfelel kezelsrl. Emellett ha olyan helyen vagyunk, ahol szksg van a nyomtatsi munkk nyilvntartsra is, a szvegszr ennek megoldsra is kpes, mghozz gy, hogy sszeszmolja a kinyomtatott sorokat s elosztja ezeket a nyomtat ltal oldalanknt nyomtatott sorok szmval. Egy szvegszr a kvetkez paramterekkel indulhat:
szrnv [-c] -w szlessg -l hossz -i behzs -n hozzfrs -h gpnv nyilvntarts

ahol a
-c

akkor jelenik meg, ha egy munkt az lpr -l paranccsal adunk t


szlessg

az /etc/printcap llomnyban denilt pw (page width, avagy oldalszlessg) tulajdonsg rtke, ami alapbellts szerint 132
hossz

a pl (page length, avagy oldalhossz) tulajdonsg rtke, amely az alapbellts szerint 66


behzs

az lpr -i parancs megadsa sorn hasznlt behzs mrtke, ami alapbl 0


hozzfrs

a nyomtatst vgz felhasznl hozzfrsnek megnevezse


gpnv

a gp neve, amirl a nyomtatsi munka rkezett


nyilvntarts

ez a nyilvntartst trol llomny af tulajdonsggal denilt neve

A konverzis szrk (conversion lter) egy adott llomnyformtumot hoznak a nyomtat szmra rtelmes formra. Pldul ditroff adatok kzvetlenl ugyan nem nyomtathatak, azonban a ditroff llomnyokhoz tudunk telepteni egy olyan szrt, amely a ditroff adatokat a nyomtat szmra is emszthet s nyomtathat formjv teszi. A Konverzis szrk cm szakasz tud ezekrl tbbet mondani. Ilyen esetekben krhetnk nyilvntartst. A konverzis szrk az albbi paramterekkel indulhatnak:
szrnv -x pixelszlessg -y pixelmagassg -n hozzfrs -h gpnv nyilvntarts

ahol a pixelszlessg a px tulajdonsg rtkbl (ami alapbl 0), a pixelmagassg a py tulajdonsg rtkbl (ami alapbl szintn 0) szrmazik.

236

Fejezet 9. Nyomtats

A kimeneti szr (output lter), ami csak akkor aktv, ha a szvegszr nem, vagy ha engedlyeztk fejlclapok nyomtatst. Tapasztalatom szerint az ilyen szrket ritkn hasznljk. A Kimeneti szrk cm szakasz mutatja be a mkdsket. Ekkor csupn kt paramternk van:
szrnv -w szlessg -l hosszsg

amik rendre megegyeznek a szvegszrk -w s -l paramtereivel. A szrk ki is tudnak lpni a kvetkez kdokkal (exit status): 0 A szr sikeresen kinyomtatta az llomnyt. 1 A szrnek nem sikerlt kinyomtatnia az llomnyt, azonban szeretn, ha az LPD jbl megprblkozna vele. Az LPD teht ebben az esetben jraindtja a szrt. 2 A szrnek nem sikerlt kinyomtatnia az llomnyt, s nem is kvnja jra megprblni. Ekkor az LPD eldobja az llomnyt. A FreeBSD kiadsokban megtallhat /usr/libexec/lpr/lpf szvegszr kpes a kapott szlessg s hossz paramterekkel megllaptani az oldaltrseket s a nyomtat hasznlatt nyilvntartani, amihez a hozzfrs, gpnv s nyilvntarts adatait hasznlja fel. Amikor majd igyeksznk mell jabb szrket beszerezni, ne felejtsk el ellenrizni, hogy egytt tudnak-e mkdni az LPD-vel. Ha a vlasz igen, akkor a fentebb emltett paramterek mindegyikt ismernik kell. Az ltalnos hasznlatra kszlt szrk ksztse sorn mi magunknak is be kell tartanunk ezeket az elvrsokat.

9.4.1.2. Szveges nyomtatsi feladatok PostScript nyomtatkon


Ha csak egyedl dolgozunk a szmtgpen s PostScript (vagy brmilyen ms nyelvet ismer) nyomtatnk van, valamint meggrjk, hogy soha nem kldnk sem mi, sem pedig nem kldetnk semmilyen ms programmal nyers szveget a nyomtatra, akkor tlphetjk ezt a szakaszt. Ha viszont egyarnt akarunk kldeni PostScript programot s nyers szveget tartalmaz munkkat a nyomtatnak, akkor ehhez knytelenek vagyunk a rendszernket belltani. Elszr is szksgnk van szvegszrre, ami megllaptja, hogy a frissen rkezett munka nyers szveget vagy PostScript programot tartalmaz-e. Minden PostScript-alap feladat a %! karaktersorozattal kezddik (a tbbi esetben olvassuk a nyomtat lerst). Szval, ha a nyomtatand llomny els kt karaktere ilyen, akkor egy PostScript programmal van dolgunk s kzvetlenl tovbbkldhetjk a munkt a nyomtatnak. Minden ms esetben a szrnek elbb t kell alaktania a szveget PostScript nyelvre. Hogyan rhetjk el mindezt? Ha soros nyomtatnk van, akkor erre a feladatra az lprps parancs tkletes. Az lprps egy olyan PostScript szr, amely mind a kt irnyban kpes kzvetteni. Folyamatosan rgzti egy llomnyba a nyomtat llapott, gy a felhasznlk s rendszergazdk pontosan ltjk a nyomtat jelenlegi llapott (pldul toner low (a toner hamarosan kifogy) vagy paper jam (a papr beragadt)). Ami viszont sokkal lnyegesebb, hogy a psif nev program kpes megmondani az rkez munka valdi tpust, s ennek megfelelen meg tudja hvni nyers szveg

237

Fejezet 9. Nyomtats talaktsra a textps (egy msik program, amit a lprps mell kapunk) parancsot. Ezutn az lprps elkldi a feladatot a nyomtatnak. Az lprps a FreeBSD Portgyjtemnynek rsze (lsd A Portgyjtemny), ezrt a hasznlni kvnt papr mrettl fggen pillanatok alatt magunk is letlhetjk, fordthatjuk s telepthetjk a print/lprps-a4 s print/lprps-letter csomagok valamelyikt. Az lprps teleptse utn egyszeren csak adjuk meg a psif elrsi tvonalt. Ha teht teleptettk a Portgyjtemnybl az lprps csomagot, akkor egy soros portra csatlakoz PostScript nyomtat esetn ezt kell bernunk az /etc/printcap llomnyba:
:if=/usr/local/libexec/psif:

Ezenkvl mg az rw tulajdonsggal meg kell mondanunk az LPD-nek, hogy a nyomtatt rsra s olvassra nyissa meg. Amennyiben a PostScript nyomtatnk a prhuzamos porton csatlakozik (s amirt a nyomtatnk nem kpes az lprps ltal ignyelt ktirny kommunikcira), szvegszrknt a kvetkez szkriptet fogjuk hasznlni:
#!/bin/sh # # psif - PostScript vagy nyers szveg nyomtatsa PostScript nyomtatn # Ez a szkriptes vltozat, NEM pedig az lprps-hez mellkelt szr # (a /usr/local/libexec/psif llomny)! # IFS="" read -r first_line first_two_chars=expr "$first_line" : \(..\) if [ "$first_two_chars" = "%!" ]; then # # PostScript: nyomtassuk ki. # echo "$first_line" && cat && printf "\004" && exit 0 exit 2 else # # Nyers szveg: alaktsuk t, majd nyomtassuk ki. # ( echo "$first_line"; cat ) | /usr/local/bin/textps && printf "\004" && exit 0 exit 2 fi

A fentebb szerepl szkriptben a textps programot hasznljuk a nyers szvegek PostScript programokra alaktshoz, de helyette brmilyen ms konvertl programot is ignybe vehetnk. A FreeBSD Portgyjtemnyben (lsd A Portgyjtemny) tallhatunk erre a clra egy a2ps nev programot is, amit esetleg rdemes lehet kzelebbrl megnznnk.

9.4.1.3. PostScript szimulcija nem PostScript nyomtatkon


A PostScript a magas sznvonal betszeds s nyomtats de facto szabvnya. Emellett azonban a PostScript egy kltsges szabvny is. Az Aladdin Enterprises-nak hla azonban ltezik egy hozz hasonl szabad szoftver, a Ghostscript, amely kpes FreeBSD-n is futni. A Ghostscript kpes a legtbb PostScript llomny olvassra, megjelentsre mindenfle eszkzkn, belertve a PostScriptet nem ismer nyomtatkat is. A Ghostscript s egy

238

Fejezet 9. Nyomtats specilis szvegszr teleptsvel el tudjuk rni, hogy egy nem PostScript nyomtat valdi PostScript nyomtatknt viselkedjen. Ha telepteni szeretnnk, a Ghostscript megtallhat a FreeBSD Portgyjtemnyben. Innen teht magunk is knnyedn le tudjuk tlteni, fordtani s telepteni. A PostScript nyomtats szimulcijhoz elszr egy szr segtsgvel szre kell vennnk, hogy egy PostScript formtum llomnyt kszlnk kinyomtatni. Ha nem ilyen a nyomtatand munka, akkor egyenesen a nyomtatra kldjk, azonban minden ms esetben elszr a Ghostscript segtsgvel talaktjuk egy olyan formtumba, amit a nyomtat is kpes feldolgozni. Nzznk erre egy pldt: a most kvetkez szvegszr a Hewlett Packard DeskJet 500-as nyomtatihoz hasznlhat. Ms nyomtat esetn cserljk ki a gs (Ghostscript) parancs -sDEVICE paramtert a neki megfelelre. (A teleptett Ghostscript ltal ismert nyomtatk listjt a gs -h paranccsal krdezhetjk le.)
#!/bin/sh # # ifhp - Ghostscripttel szimullt Postscript nyomtats DeskJet 500-on # Helye: /usr/local/libexec/ifhp # # LF karaktereket CR+LF-knt kezeljk (elkerlve ezzel a HP/PCL # nyomtatkon a "lpcszst"): # printf "\033&k2G" || exit 2 # # Az llomny els kt karakternek beolvassa # IFS="" read -r first_line first_two_chars=expr "$first_line" : \(..\) if [ "$first_two_chars" = "%!" ]; then # # Ez PostScript: kldjk t a Ghostscripten s nyomtassuk ki. # /usr/local/bin/gs -dSAFER -dNOPAUSE -q -sDEVICE=djet500 \ -sOutputFile=- - && exit 0 else # # Nyers szveg vagy HP/PCL, ezrt kldjk t kzvetlenl. Az utols # lap kidobshoz kldnk mg egy lapdobst is. # echo "$first_line" && cat && printf "\033&l0H" && exit 0 fi exit 2

Befejezsl az if tulajdonsgon keresztl rtestennk kell errl a szrrl az LPD-t is:


:if=/usr/local/libexec/ifhp:

239

Fejezet 9. Nyomtats Kszen is vagyunk! Most mr nyugodtan berhatjuk, hogy lpr ki kell tudnia nyomtatdnia.
sima.szveg

vagy lpr

akrmi.ps,

mind a kettnek

9.4.1.4. Konverzis szrk


Miutn elvgeztk az Alacsonyszint nyomtatbellts cm szakaszban lert belltsokat, a (nyers ASCII szveg mellett) kedvenc llomnyformtumainkhoz is minden bizonnyal szeretnnk telepteni nhny konverzis szrt. 9.4.1.4.1. Mirt hasznljunk konverzis szrket? A konverzis szrk segtsgvel llomnyok mindenfle formtumait knnyen ki tudjuk nyomtatni. Pldul tegyk fel, hogy a sokat dolgozunk a TEX betszed rendszerrel s egy PostScript nyomtatnk van. Minden alkalommal, amikor egy DVI llomnyt hozunk ltre a TEX forrsbl, azt kzvetlenl mg nem tudjuk a nyomtatra kldeni. Ehhez a kvetkez parancsokat kell kiadnunk:
% dvips hnr-elemzs.dvi % lpr hnr-elemzs.ps

Ha teleptnk egy konverzis szrt a DVI llomnyokhoz, meg tudjuk sprolni ezt a manulis talaktsi lpst azzal, hogy tadjuk ezt a feladatot az LPD-nek. gy ezutn mindig, amikor egy DVI llomnyt akarunk kinyomtatni, csupn egyetlen lpsre lesz szksgnk:
% lpr -d
hnr-elemzs.dvi

Az LPD-nek a -d paramterrel adjuk meg, hogy a nyomtats eltt hajtsa vgre a DVI talaktst. A Formzsi s konverzis belltsok cm szakaszban talljuk meg a tbbi konverzis opcit. Minden olyan konverzis belltshoz, amit hasznlni szeretnnk a nyomtatval, teleptennk kell egy konverzis szrt (conversion lter) s meg kell adnunk a nevt az /etc/printcap llomnyban. A konverzis szrk az egyszer nyomtatbelltsnl szerepl szvegszrkhz hasonltanak (lsd A szvegszr teleptse szakasz) azzal a kivtellel, hogy a nyers szvegek kinyomtatsa helyett ezek a szrk a nyomtat szmra rtelmes formtumra alaktjk az llomnyokat.

9.4.1.4.2. Milyen konverzis szrket rdemes telepteni? Olyan konverzis szrket teleptsnk, amelyekre gyakran szksgnk lehet. Ha pldul sok DVI adatot szeretnnk nyomtatni a jvben, akkor hasznljunk DVI konverzis szrt, vagy ha sok troff formtum adatot nyomtatunk, akkor minden bizonnyal jl fog jnni egy troff szr. A kvetkez tblzat foglalja ssze azokat a szrket, amelyekkel az LPD kpes egyttmkdni. Megtudhatjuk, hogy az /etc/printcap llomnyban melyik tulajdonsg tartozik hozzjuk s hogyan hvjuk meg ezeket az lpr paranccsal: llomnytpus cifplot DVI plot ditroff Tulajdonsg az /etc/printcap llomnyban
cf df gf nf

Az lpr kapcsolja
-c -d -g -n

240

Fejezet 9. Nyomtats llomnytpus FORTRAN forrs troff raster nyers szveg Tulajdonsg az /etc/printcap llomnyban
rf tf vf if

Az lpr kapcsolja
-f -f -v

nincs, -p, vagy -l

A pldnkban teht a lpr -d parancs hasznlata arra utal, hogy a nyomtatnak az /etc/printcap llomnybl a df tulajdonsgra van szksge. Minden hadakozs ellenre llthatjuk, hogy a FORTRAN forrsok s a plot ltal hasznlt szvegek formtuma napjainkra mr elavultnak tekinthet. Ezrt ezekhez az opcikhoz a sajt szrinkkel tetszleges formzsi lehetsgeket rendelhetnk. Pldul, ha Printerleaf (az Interleaf asztali kiadvnyszerkeszt formtuma) llomnyokat szeretnnk kzvetlenl nyomtatni, akkor valsznleg nem lesz szksgnk plot llomnyokra. Ezrt a gf tulajdonsgnak megadhatunk egy Printerleaf konverzis szrt, amelyen keresztl aztn a felhasznlk az lpr -g paranccsal Printerleaf llomnyokat tudnak nyomtatni.

9.4.1.4.3. Konverzis szrk teleptse Mivel a konverzis szrk az alap FreeBSD rendszeren kvlre kerlnek, ezrt ezeket minden valsznsg szerint valahol a /usr/local knyvtrban talljuk meg. Ezen bell is ltalban a /usr/local/libexec knyvtrban fordulnak el, mivel ezeket csak az LPD futtatja, senki msnak nincs rjuk szksge. A konverzis szrk aktivlshoz az /etc/printcap llomnyban egyszeren adjuk meg az alkalmas tulajdonsgoknak megfelel szrk elrsi tvonalait. A pldnkban most felvesznk egy DVI konverzis szrt a bamboo nev nyomtathoz. Itt ismt lthatjuk a korbban hasznlt /etc/printcap llomnyt, ahol most azonban a bamboo nev nyomtatnl hozzadtunk egy df tulajdonsgot:
# # /etc/printcap (rose) - egy df szr hozzadsa a bamboo # nev nyomtathoz # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :sh:sd=/var/spool/lpd/rattan:\ :lp=/dev/lpt0:\ :if=/usr/local/libexec/if-simple: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh:sd=/var/spool/lpd/bamboo:\ :lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:rw:\ :if=/usr/local/libexec/psif:\ :df=/usr/local/libexec/psdf:

A DVI szr ebben az esetben a /usr/local/libexec/psdf nven elrhet aprcska szkript. Ezt tallhatjuk benne:
#!/bin/sh # # psdf - DVI szr PostScript nyomtathoz

241

Fejezet 9. Nyomtats
# Helye: /usr/local/libexec/psdf # # Az lpr -d parancs hatsra hvdik meg # exec /usr/local/bin/dvips -f | /usr/local/libexec/lprps "$@"

A szkript a dvips parancsot szrknt futtatja (az -f paramterrel) a szabvnyos bemenetrl, ahova a nyomtatsi munkt is kapja. Ezutn elindtja az lprps PostScript szrt (lsd a Szveges nyomtatsi feladatok PostScript nyomtatkon cm szakaszt) az LPD ltal tadott paramterekkel. Az lprps parancs ezekkel a paramterekkel tartja nyilvn az gy kinyomtatott lapokat.

9.4.1.4.4. Tovbbi pldk konverzis szrkre A konverzis szrk teleptsnek nincs bevlt receptje, ezrt ebben a szakaszban bemutatunk rjuk nhny mkd illusztrcit. Ezeket tudjuk felhasznlni sajt szrk elksztsre. Vagy ha megtehetjk, hasznljuk kzvetlenl ezeket. Ebben a plda szkriptben Hewlett Packard LaserJet III-Si nyomtatkhoz hozunk ltre raszteres (pontosabban GIF formtum) konverzis szrt:
#!/bin/sh # # hpvf - GIF llomnyokat konvertl t HP/PCL-be, majd kinyomtatja # Helye: /usr/local/libexec/hpvf PATH=/usr/X11R6/bin:$PATH; export PATH giftopnm | ppmtopgm | pgmtopbm | pbmtolj -resolution 300 \ && exit 0 \ || exit 2

gy mkdik, hogy a GIF llomnyt elszr PNM (portable anymap), utna PGM (portable graymap), majd PBM (portable bitmap) formtumra alaktja, amibl vgl LaserJet/PCL-kompatibilis adat lesz. Ez lesz a hozztartoz /etc/printcap llomny:
# # /etc/printcap (orchid) # teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\ :lp=/dev/lpt0:sh:sd=/var/spool/lpd/teak:mx#0:\ :if=/usr/local/libexec/hpif:\ :vf=/usr/local/libexec/hpvf:

A most kvetkez szkript a groff betszed rendszerbl rkez troff adatokat alaktja t a bamboo nev PostScript nyomtat szmra:
#!/bin/sh # # pstf - a groff troff adait alaktja PS-re, majd kinyomtatja # Helye: /usr/local/libexec/pstf # exec grops | /usr/local/libexec/lprps "$@"

242

Fejezet 9. Nyomtats A szkript az lprps parancs segtsgvel kommunikl a nyomtatval. Ha a nyomtatnk prhuzamos porton csatlakozik, akkor helyette ezt a szkriptet hasznljuk:
#!/bin/sh # # pstf - a groff troff adatait alaktja PS-re, majd kinyomtatja # Helye: /usr/local/libexec/pstf # exec grops

Ksz is! A szr ltrekeltshez mindssze ennyit kell beillesztennk az /etc/printcap llomnyba:
:tf=/usr/local/libexec/pstf:

Most pedig jjjn a FORTRAN szerelmeseinek szvt megmelenget szkript. Ez egy olyan szvegszr, amely brmelyik nyers szveget kzvetlenl kezelni tud nyomtat esetn mkdik. A teak nev nyomtathoz helyezzk be:
#!/bin/sh # # hprf - FORTRAN szvegszr LaserJet 3si-hez # Helye: /usr/local/libexec/hprf # printf "\033&k2G" && fpr && printf "\033&l0H" && exit 0 exit 2

Az /etc/printcap llomnyban a teak nyomtathoz a kvetkez sor bersval tudjuk engedlyezni ezt a szrt:
:rf=/usr/local/libexec/hprf:

Most pedig kvetkezzen egy utols, de az eddigieknl valamivel sszetettebb plda. Ebben a korbban bemutatott teak nev LaserJet nyomtathoz fogunk hozzadni egy DVI szrt. Elszr is kvetkezzen a mvelet egyszerbb rsze: bvtsk ki az /etc/printcap llomnyt a DVI szr helynek megadsval:
:df=/usr/local/libexec/hpdf:

Ezutn kvetkezzk a nehezebb rsz: a szr elksztse. Ehhez szksgnk lesz egy DVI-rl LaserJet/PCL-re alakt programra. A FreeBSD Portgyjtemnyben (lsd A Portgyjtemny) tallunk is egyet: a csomag neve print/dvi2xx. A csomag teleptsvel megkapjunk a neknk kell dvilj2p programot, ami kpes DVI-t LaserJet IIp, LaserJet III s a LaserJet 2000 tpusok ltal ismert kdokra fordtani. A dvilj2p felhasznlstl fggetlenl a hpdf nven ltrehozni kvnt szrnk mg gy is bonyolult lesz, hiszen a dvilj2p nem tud olvasni a szabvnyos bemenetrl, hanem minden ron egy llomnnyal akar dolgozni. St, olyan llomnnyal, amelynek .dvi kiterjesztse van, ezrt mg a /dev/fd/0 (vagyis a szabvnyos bemenethez tartoz eszkzler) hasznlata is akadlyokba tkzik. rm mg az rmnkben, hogy a /tmp knyvtrat sem tudjuk felhasznlni ideiglenes link ltrehozsra: a szimbolikus linkeket a bin felhasznl s csoport birtokolja, a szrt pedig a daemon felhasznl futtatja. A /tmp knyvtrban radsul csak a tulajdonosaik kpesek llomnyokat tnevezni vagy trlni (sticky bit). Ezrt a szr ugyan ltre tudna hozni egy linket, azonban ezt a munkja vgeztvel nem lesz majd kpes trlni, mivel a link egy msik felhasznlhoz tartozik.

243

Fejezet 9. Nyomtats Ezrt a szr az aktulis knyvtrban fogja ltrehozni ezt a szimbolikus linket, ami jelen esetnkben a nyomtatsi rendszer ltal hasznlt knyvtr lesz (ezt az /etc/printcap llomny sd tulajdonsgval adjuk meg). Itt remekl el tudjk vgezni a feladataikat a szrk, klnsen mivel (nha) tbb hely van itt, mint a /tmp knyvtrban. Vgl lssuk magt a szrt:
#!/bin/sh # # hpdf - DVI adat nyomtatsa HP/PCL nyomtatn # Helye: /usr/local/libexec/hpdf PATH=/usr/local/bin:$PATH; export PATH # # Ltrehozunk egy fggvnyt az tmeneti llomnyok trlsre. Ezek # az aktulis knyvtrban jnnek ltre, ami pedig a nyomtatsi # rendszer adott nyomtathoz tartoz knyvtra lesz. # cleanup() { rm -f hpdf$$.dvi } # # Ltrehozunk egy fggvnyt a slyos hibk kezelsre: rassunk ki # egy adott zenetet s lpjnk ki a 2-es hibakddal. Ezzel zennk # az LPD-nek, hogy ne nyomtatassa jra a munkt. # fatal() { echo "$@" 1>&2 cleanup exit 2 } # # Ha a felhasznl eltvoltja a munkt a sorbl, akkor az LPD egy SIGINT # jelzst fog kldeni, ezrt prbljuk meg azt elkapni (nhny ms egyb # jelzssel egytt), gy mg tudjuk trlni az ideiglenesen # ltrehozott llomnyokat. # trap cleanup 1 2 15 # # Gondoskodjunk rla, hogy a feladat megkezdsekor mg egyetlen # hasznlt llomny sem ltezik. # cleanup # # Kssk ssze a szabvnyos bemenetet egy DVI llomnnyal (amit # majd nyomtatni akarunk). # ln -s /dev/fd/0 hpdf$$.dvi || fatal "Cannot symlink /dev/fd/0"

244

Fejezet 9. Nyomtats
# # LF = CR+LF # printf "\033&k2G" || fatal "Cannot initialize printer" # # Alaktsuk t az adatot s nyomtassunk. A dvilj2p ltal visszaadott rtk # nem tlsgosan megbzhat, ezrt ne is foglalkozzunk vele. # dvilj2p -M1 -q -e- dfhp$$.dvi # # Takartsunk el magunk utn s lpjnk ki szablyosan # cleanup exit 0

9.4.1.4.5. Automatikus konverzik: a konverzis szrk helyett A konverzis szrk sokat segtenek egy knyelmes nyomtatsi krnyezet kialaktsban, azonban a hasznlatukhoz a felhasznlknak (az lpr(1) parancson keresztl) egyenknt hivatkozniuk kell rjuk. Ha a rendszernk felhasznli nem elgg mveltek szmtstechnikai tren, akkor mg egy szr megadsa is zavar lehet szmukra. Ami mg ennl is rosszabb, hogy egy rosszul megadott szr hatsra a nyomtat sem fogja jl kezelni az adott llomny formtumt s erre vlaszul akr tbbszz lapot is pillanatok alatt kikphet magbl. A konverzis szrk teleptse helyett gyakran csak egy (alaprtelmezett) szvegszrre van szksgnk, amely kiderti a nyomtatand llomny pontos formtumt s magtl elindtja a neki megfelel konverzis szrt. Ilyen esetekben pldul a file parancs pont a hasznunkra vlhat. Persze bizonyos llomnytpusok kzt nagyon nehz klnbsget tenni de ezekre tovbbra is adhatunk mg kln konverzis szrket. A FreeBSD Portgyjtemnyben tallhatunk egy apsfilter elnevezs szvegszrt (print/apsfilter), ami kpes ilyen automatikus konverzira. Kpes felismerni a nyers szveget, PostScript programokat, DVI s szinte brmilyen formtum llomnyokat, lefuttatni rjuk a megfelel talaktstokat, majd kinyomtatni ezeket.

9.4.1.5. Kimeneti szrk


Az LPD nyomtatsi rendszer kezel egy eddig mg nem trgyalt szrtpust is: ez a kimeneti szr. A kimeneti szr a szvegszrhz hasonlan csak nyers szveg nyomtatsra hasznlatos, de tartalmaz nhny egyszerstst. Ha kizrlag csak kimeneti szrket alkalmazunk, akkor:

Az LPD az egsz nyomtatsi feladathoz egyetlen kimeneti szrt fog hasznlni, nem pedig minden llomnyhoz kln. Az LPD a kimeneti szr szmra nem nyjt semmilyen segtsget a munkn bell szerepl llomnyok kezdetnek vagy vgnek megllaptsban. Az LPD a szrnek nem adja t sem a felhasznl hozzfrst, sem pedig gpnevt, ezrt nyilvntartsra nem alkalmas. Mindent sszegezve lnyegben csak kt paramtert kap meg:
szrnv -wszlessg -lhossz

245

Fejezet 9. Nyomtats ahol a szlessg a krdses nyomtat pw tulajdonsgbl, a hossz pedig a pl tulajdonsgbl szrmazik. Ne bvljn el minket a szr egyszersge! Ha pldul a munkban minden llomnyt jabb lapon szeretnnk kezdeni, akkor azt kimeneti szrvel nem tudjuk megoldani. Erre a clra hasznljunk szvegszrt (msik nevn bemeneti szrt), lsd A szvegszr teleptse szakaszt. Hovatovbb, a kimeneti szr valjban sokkal bonyolultabb abban a tekintetben, hogy a berkez adatok kzl neki kell kikeresnie a specilis jelentssel br karaktereket ugyangy, ahogy az LPD helyett sajt magnak kell kldenie a jelzseket. Azonban a kimeneti szrk hasznlata elkerlhetetlen, ha pldul fejlclapokat akarunk nyomtatni, s esetleg mg klnbz inicializlsra hasznlatos specilis kdokat vagy karakterlncokat akarunk ez eltt kikldeni. (Ellenben badarsg a fejlclapoktl kvetelni a felhasznl adatait, hiszen az LPD a kimeneti szrnek nem ad semmilyen erre vonatkoz informcit.) Egyetlen nyomtat esetn az LPD egyarnt lehetv teszi kimeneti, szveg- s ms egyb szrk hasznlatt. Ilyenkor az LPD a kimeneti szrn keresztl csak a fejlcet tartalmaz oldal (lsd a Fejlclapok szakaszt) nyomtatst indtja el. Ezt kveten az LPD arra szmt, hogy a kimeneti szr kt karakter, az ASCII 031 s az ezt kvet ASCII 001, hatsra lelltja magt. Amikor teht a kimeneti szr rzkeli ezt a kt karaktert (031, 001), akkor a SIGSTOP jelzssel le kell llnia. Miutn az LPD lefuttatta a tbbi szrt, a SIGCONT jelzssel jraindtja a kimeneti szrt. Ha van kimeneti szrnk, de nincs szvegszrnk, akkor az LPD minden tovbbi feldolgozs nlkl tovbbadja a munkt a kimeneti szrnek. Ahogy mr korbban is emltettk, a kimeneti szr a munkban lev sszes llomnyt egyms utn nyomtatja ki, lapdobsok vagy brmilyen ms paprmozgats nlkl, ezrt valsznleg nem ez kell neknk. Az esetek tlnyom rszben ehhez elg egy szvegszr. A korbban szvegszrknt beharangozott lpf program kimeneti szrknt is kpes funkcionlni. Ha szksgnk lenne egy gyorsan sszecsaphat kimeneti szrre, s nem akarunk a specilis karakterek valamint a jelzsek kldsvel elidzni, akkor prblkozzunk az lpf hasznlatval. Az lpf parancsot mellesleg becsomagolhatjuk egy olyan szkriptbe is, amely elvgzi a nyomtat szmra szksges inicializlst.

9.4.1.6. Az lpf szvegszr


A FreeBSD binris terjesztshez mellkelt /usr/libexec/lpr/lpf program egy szvegszr (bemeneti szr), amely kpes (az lpr -i paranccsal hozzadott munkkat) tabullni, (az lpr -l paranccsal felvett munkkban) a vezrlkaraktereket gyelemen kvl hagyni, a munkban elfordul trlsek s behzsok nyomtatsi pozcijt igaztani s nyilvntartani a kinyomtatott lapokat. Kimeneti szrknt is tud viselkedni. Az lpf szr rengeteg nyomtatsi krnyezetben felhasznlhat. Habr nem kpes a nyomtatnak inicializl jelsorozatokat kldeni, mgis knny olyan szkriptet rni, amely elvgzi ezeket a hinyz kezdeti belltsokat, majd lefuttatja az lpf szrt. Az lpf akkor lesz kpes helyesen szmolni a kinyomtatott lapokat, ha ehhez az /etc/printcap llomnyban jl tltjk ki a pw s pl tulajdonsgokat. Ezen rtkek segtsgvel hatrozhat meg ugyanis, hogy mennyi szveg frt r egy lapra s gy mennyi lapot emsztett fel az adott felhasznl ltal kldtt munka. A nyomtats nyilvntartsval kapcsolatban A nyomtat hasznlatnak nyilvntartsa cm szakaszt rdemes elolvasni.

9.4.2. Fejlclapok
Ha nagyon sok felhasznlnk van, s sok klnbz nyomtatt is hasznlnak, akkor elbb vagy utbb minden bizonnyal elkerlhetetlenn fog vlni a fejlclapok hasznlata.

246

Fejezet 9. Nyomtats A fejlc-, vagy ms nven munka vagy elvlaszt lapok segtik el a kinyomtatott munkk azonostst. A tbbi dokumentumtl kirv mdon, ltalban dekoratv keretben, nagy, vastag betkkel nyomtatdnak ki, hogy a halomnyi papr kztt a felhasznlk knnyedn megtallhassk az elkldtt munkik eredmnyt. Termszetesen a fejlclapok nyilvnval htultje, hogy gy minden munkhoz mg egy lappal tbbet kell elhasznlni s mivel gyakorlatilag nhny percnl tovbb nincs is rjuk szksg, meglehetsen hamar a kukba kerlnek. (A fejlclapok munknknt jnnek ltre, nem pedig az munkkban lev llomnyokhoz egyenknt, ezrt nem is akkora pazarls ez.) Az LPD rendszer kpes magtl fejlclapokat kszteni a nyomtatsokhoz, amennyiben a nyomtatnk kpes kzvetlenl nyers szveget nyomtatni. Ha PostScript nyomtatnk van, akkor ennek legyrtshoz egy kls programra van szksgnk, lsd a Fejlclapok PostScript nyomtatkon szakaszt.

9.4.2.1. A fejlclapok engedlyezse


Az Alacsonyszint nyomtatbellts cm szakaszban az /etc/printcap llomnyban a sh (gy mint suppress header) tulajdonsggal kikapcsoltuk a fejlclapokat. A fejlclapok engedlyezshez mindsszesen el kell tvoltanunk ezt az sh tulajdonsgot. Ez tl egyszer, nemde? Igen, ez gy van. Elfordulhat, hogy szksgnk van mg egy olyan kimeneti szrre is, amely inicializl karaktereket kld a nyomtatnak. me egy plda ehhez a Hewlett Packard PCL-kompatibilis nyomtati esetre:
#!/bin/sh # # hpof - Kimeneti szr Hewlett Packard PCL-kompatibilis nyomtatkhoz # Helye: /usr/local/libexec/hpof printf "\033&k2G" || exit 2 exec /usr/libexec/lpr/lpf

Az of tulajdonsggal adjuk meg a kimeneti szrt. A Kimeneti szrk szakaszban errl rszletesebben is olvashatunk. A korbban ismertetett teak nev nyomtathoz most az albbi minta /etc/printcap llomnyt mellkeljk. Itt engedlyeztk a fejlclapokat s hozztettk az imnti kimeneti szrt:
# # /etc/printcap (orchid) # teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\ :lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:\ :if=/usr/local/libexec/hpif:\ :vf=/usr/local/libexec/hpvf:\ :of=/usr/local/libexec/hpof:

Mostantl kezdve, amikor a felhasznlk a teak nyomtatn akarnak nyomtatni, minden munkhoz kapni fognak egy fejlclapot. Amennyiben a kedves felhasznlk mgis keresgetni akarjk a nyomtatsaikat, az lpr -h paranccsal tetszleges mdon letilthatjk azokat. Az lpr(1) tbbi hasonl opcijt A fejlclapokhoz tartoz belltsok szakaszban talljuk.
Megjegyzs: Az LPD minden fejlclap utn egy lapdobst kld. Ha erre a clra a nyomtatnk egy eltr karaktert vagy karaktersorozatot hasznl, akkor azt az /etc/printcap llomny ff tulajdonsgval hatrozhatjuk meg.

247

Fejezet 9. Nyomtats

9.4.2.2. A fejlclapok vezrlse


A fejlclapok engedlyezsvel az LPD egy n. hossz fejlcet fog kszteni, vagyis a felhasznlt, gpet s a munkt jl azonost, egsz lapot kitlt risi betket. Erre egy plda (amiben a rose nev gprl kelly nyomtatta ki az outline elnevezs munkt):
k k k k k k k k k kk k k k k k ll l l l l l l l lll ll l l l l l l l lll

eeee e e eeeeee e e e eeee

y y y y yy yyy y y y y yyyy

y y y y y

o o o o

oooo o o o o oooo

u u u u u

u u u u uu uuu u

t t ttttt t t t t t tt

ll l l l l l l l lll

i ii i i i i iii n nnn nn n n n n n n n n n eeee e e eeeeee e e e eeee

r rrr rr r r r r r

o o o o

oooo o o o o oooo

ssss s ss ss s s ssss s

eeee e e eeeeee e e e eeee

248

Fejezet 9. Nyomtats

Job: outline Date: Sun Sep 17 11:04:58 1995

Ezt kveten az LPD elkld mg egy lapdobst is, ezrt maga a munka egy j oldalon fog kezddni (kivve, ha az
/etc/printcap llomnyban az adott nyomtathoz tartoz bejegyzsben megadtuk az sf (gy mint suppress

form feeds, vagyis a lapdobsok letiltsa) tulajdonsgot. Ha gy jobban tetszik, akkor az /etc/printcap llomnyban a sb tulajdonsggal az LPD utasthat rvid fejlcek ksztsre is. Ilyenkor a fejlclap tartalma mindssze ennyi lesz:
rose:kelly Job: outline Date: Sun Sep 17 11:07:51 1995

Alaprtelmezs szerint az LPD elszr a fejlclapot majd a munkt nyomtatja ki. Ezt a sorrendet az /etc/printcap llomnyban a hl (header last) tulajdonsggal meg tudjuk fordtani.

9.4.2.3. A nyomtat hasznlatnak nyilvntartsa


Az LPD ltal felknlt fejlclapok hasznlata sorn egyetlen irnyelv rvnyesl a nyilvntartsukban: a fejlclapok kltsgmentesek. De mirt? Azrt, mert kizrlag csak a kimeneti szr kpes a fejlclapok viselkedst irnytani, ami viszont nem kpes semmifle nyilvntartsra, hiszen nem kapja meg az ehhez szksges felhasznli- vagy gpnv informcikat, illetve nyilvntartsokat. Emiatt fogalma sincs rla, hogy kit terhel az adott nyomtat hasznlata. gy sem tudjuk megoldani a problmt, ha a szveg- vagy konverzis szrkben (ahol mr rendelkezsnkre llnak a felhasznl s a gpnek adatai) nveljk a lapok szmt eggyel a munkban, mivel a felhasznlk az lpr -h parancs hasznlatval kedvk szerint letilthatjk a fejlclapokat. Ezt ugyan alapveten a termszetet vni kvn felhasznlk rszestik elnyben, de ettl fggetlenl sem erszakolhatjuk r mindenkire. Az sem elg, ha minden szr ltrehozza a sajt fejlct (amirt aztn pnzt krhetnnk). Mivel ha a felhasznlk az lpr -h paranccsal le akarjk tiltani a fejlcek hasznlatt, attl a szrkhz mg mindig ltrejnnek, hiszen az LPD a -h opcirl semmilyen rtestst nem kld t a szrknek. Nos, ilyenkor mitvk legynk? A lehetsgeink:

Elfogadjuk az LPD elvt, s nem szmtunk fel kltsget a fejlclapokra. Az LPD helyett egy msik nyomtatsi rendszert hasznlunk, pldul az LPRng rendszert. A Ms nyomtatsi rendszerek cm szakaszban kiderl, milyen alternatvk rhetek el az LPD kivltsra. rjunk mi magunk egy intelligens kimeneti szrt. Normlis esetben a kimeneti szrk nem valk msra, csupn a nyomtat alaphelyzetbe hozsra vagy egyszerbb karakterkonverzik elvgzsre. Fejlclapokhoz s nyers szveget tartalmaz munkkhoz remekl hasznlhat (ahol nincs szveg- (avagy bemeneti) szr). Azonban ha a nyers szvegekhez van szvegszrnk, akkor az LPD a kimeneti szrt csak a fejlclapokhoz indtja el. Emellett a kimeneti szr az LPD ltal generlt fejlc szvegbl kpes megmondani, melyik felhasznlhoz s gphez tartozik a szbanforg fejlc. A mdszer egyetlen bkkenje, hogy a nyilvntartsokat trol llomnyrl viszont mg gy se tudunk semmilyen informcit szerezni (mivel nem kapjuk meg az af tulajdonsggal belltott llomny nevt). Ha azonban egy rendszerszinten elrhet llomnyba mentjk ezeket az adatokat, akkor akr

249

Fejezet 9. Nyomtats bele is drtozhatjuk ezt a kimeneti szrbe. A kimeneti szr az adatot megtallsban ilyenkor gy tudunk segteni, ha az /etc/printcap llomnyban az sh (rvid fejlc) tulajdonsgot lltjuk be. De ez igazbl sok hh semmirt, s a felhasznlk is jobban megbecslik az olyan nagylelk rendszergazdt, aki nem szmtja fel nekik a fejlclapokat.

9.4.2.4. Fejlclapok PostScript nyomtatkon


Ahogy arrl mr korbban is sz esett, az LPD kpes tbbfle nyomtat szmra is megfelel, nyers szveg fejlclapokat kszteni. Persze a PostScript kzvetlenl nem kpes nyers szvegek nyomtatsra, ezrt az LPD ezen lehetsge lnyegben hasznlhatatlan tbbnyire. Ilyen helyzetben a fejlclapok hasznlatnak nyilvnval mdja, hogy minden szvegszrt fejlcek gyrtsra utastunk. Ezek a szrk a felhasznlrl s a gprl kapott informcikbl ssze tudjk lltani a megfelel fejlclapot. A megolds htrnya, hogy ez mg olyankor is megtrtnik, amikor a felhasznlk az lpr -h paranccsal kldik a munkjukat. Ksrletezznk egy kicsit ezzel a mdszerrel! A most kvetkez szkript hrom paramtert fogad el (a felhasznl hozzfrst, a gp s a munka nevt), majd ezekbl ltrehoz egy egyszer PostScript formtum fejlcet:
#!/bin/sh # # make-ps-header - PostScript fejlc ltrehozsa a szabvny kimenetre # Helye: /usr/local/libexec/make-ps-header # # # Ezek itt a PostScript ltal hasznlt egysgekben vannak megadva # (72/col vagy 28/cm). rjuk t az ltalunk hasznlt paprmretre, # A4-re vagy amit ppen hasznlunk: # page_width=612 page_height=792 border=72 # # A paramterek ellenrzse. # if [ $# -ne 3 ]; then echo "Usage: basename $0 <user> <host> <job>" 1>&2 exit 1 fi # # Mentsk el ezeket, leginkbb az olvashatsg miatt. # user=$1 host=$2 job=$3 date=date # #

Kldjk el a PostScript-kdot a szabvnyos kimenetre.

250

Fejezet 9. Nyomtats
# exec cat <<EOF %!PS % % Gondoskodjunk rla, hogy ne zavarjuk az utnunk kvetkez % felhasznl munkjt. % save % % Csinljunk egy csf vastag szeglyt, krbe a papron. % $border $border moveto $page_width $border 2 mul sub 0 rlineto 0 $page_height $border 2 mul sub rlineto currentscreen 3 -1 roll pop 100 3 1 roll setscreen $border 2 mul $page_width sub 0 rlineto closepath 0.8 setgray 10 setlinewidth stroke 0 setgray % % Jelentsk meg a felhasznl azonostjt szp, feltn % betkkel. % /Helvetica-Bold findfont 64 scalefont setfont $page_width ($user) stringwidth pop sub 2 div $page_height 200 sub moveto ($user) show % % Most pedig mutassuk az unalmas rszleteket. % /Helvetica findfont 14 scalefont setfont /y 200 def [ (Job:) (Host:) (Date:) ] { 200 y moveto show /y y 18 sub def } forall /Helvetica-Bold findfont 14 scalefont setfont /y 200 def [ ($job) ($host) ($date) ] { 270 y moveto show /y y 18 sub def } forall % % Ennyi lett volna. % restore showpage EOF

Ezzel a szkripttel pedig mindegyik konverzis- s szvegszr elszr ltrehoz egy fejlclapot, majd kinyomtatja a felhasznl munkjt. me egy korbban mr bemutatott DVI szr, amit most kiegsztnk a fejlclapok hasznlatval:

251

Fejezet 9. Nyomtats
#!/bin/sh # # psdf - DVI szr PostScript nyomtathoz # Helye: /usr/local/libexec/psdf # # Az lpr -d parancs hatsra hvdik meg. # orig_args="$@" fail() { echo "$@" 1>&2 exit 2 } while getopts "x:y:n:h:" option; do case $option in x|y) ;; # Ignore n) login=$OPTARG ;; h) host=$OPTARG ;; echo "LPD started basename $0 wrong." 1>&2 *) exit 2 ;; esac done [ "$login" ] || fail "No login name" [ "$host" ] || fail "No host name" ( /usr/local/libexec/make-ps-header $login $host "DVI File" /usr/local/bin/dvips -f ) | eval /usr/local/libexec/lprps $orig_args

Lthatjuk, hogy a szrnek a felhasznli- s a gpnv megllaptshoz vgig kell nznie a paramterek listjt. Ez lnyegben minden ms konverzis szrnl ugyangy nz ki. Ez a lista azonban a szvegszrk esetn nmileg eltr (lsd a Hogyan mkdnek a szrk? szakaszt). Mr az elbbiekben is trgyaltuk, hogy ez a megolds, habr elgg egyszer, az lpr szmra nem teszi lehetv a fejlclapok letiltst (a -h opci). Ha a felhasznlink kmlni akarjk a fkat (vagy meg akarjk szni a fejlclapok gbeszk kltsgeit), akkor ezt nem tudjk megtenni, hiszen a szrk minden munkhoz kszteni fognak fejlceket. Ezt a korltozst csak gy tudjuk elsprni, ha bevetjk a A nyomtat hasznlatnak nyilvntartsa szakaszban lert cselt, teht ksztnk egy olyan kimeneti szrt, amely megkeresi az LPD-vel generlt fejlceket s ltrehozza azok PostScript vltozatt. Ha valaki az lpr -h paranccsal kld nyomtatnivalt, akkor LPD nem kszt hozz fejlclapot, ahogy a kimeneti szrnk sem. A kimeneti szr minden ms esetben beolvassa az LPD ltal kldtt szveget s tkldi a neki megfelel PostScript kdot a nyomtatra. Ha soros PostScript nyomtatnk van, akkor hasznlhatjuk a psof kimeneti szrhz tartoz lprps parancsot is, ami pontosan az elbbit vgzi el. Hozztennnk azonban, hogy a psof nem szmolja a fejlclapokat.

252

Fejezet 9. Nyomtats

9.4.3. Hlzati nyomtats


A FreeBSD tud hlozaton is nyomtatni, vagyis tud tvoli szmtgpeknek is nyomtatsi munkt kldeni. A hlzati nyomtats kifejezs ltalnossgban vve kt klnbz dolgra utalhat:

Egy tvoli szmtgphez kapcsolt nyomtat hozzfrst. A gphez a nyomtat a hagyomnyos soros vagy prhuzamos csatolfelleten keresztl kapcsoldik, amit aztn az LPD alkalmas belltsval a hlzaton mindenki szmra elrhetv tesznk. A Tvoli szmtgpekre csatlakoztatott nyomtatk cm szakasz errl szl. Egy kzvetlenl a hlzatra kapcsolt nyomtat hozzfrst. A nyomtat teht rendelkezik mg egy hlzati csatlakozssal is a hagyomnyos soros vagy prhuzamos fellet mellett (vagy ppen helyett). Egy ilyen nyomtat a kvetkezkppen mkdhet:

Elfogadja az LPD krseit, s mg kpes munkkat is trolni. Ebben az esetben teljesen egyenrtk egy LPD alkalmazst futtat szmtgppel. Ekkor nincs ms teendnk, csak kvetnnk kell a Tvoli szmtgpeken teleptett nyomtatk cm szakasz utastsait. Hlzati adatfolyamokkal dolgozik. Ebben az esetben a nyomtatt hozz kell kapcsolnunk a hlzaton tallhat egyik szmtgphez, ami majd a munkk trolsrt s folyamatos kldsrt lesz felels. A Nyomtatk hlzati adatcsatlakozssal szakasz az ilyen fajtj nyomtatk teleptsre tesz nhny javaslatot.

9.4.3.1. Tvoli szmtgpekre csatlakoztatott nyomtatk


Az LPD nyomtatsi rendszer alapbl kpes ms, szintn LPD-t (vagy vele kompatibilis rendszert) futtat szmtgpekre munkkat kldeni. Ezzel lnyegben az egyik gphez hozz tudunk kapcsolni egy nyomtatt, amit aztn a tbbiek szmra elrhetv tesznk. Ez olyan nyomtatk esetben is mkdik, amelyek ismerik az LPD ltal alkalmazott protokollt. A tvoli nyomtatshoz elszr teleptsk a nyomtatt valamelyik szmtgpre az Alacsonyszint nyomtatbellts szakaszban lertak szerint, s ezzel az lesz a nyomtatszervernk. Ezutn, amennyiben szksgesnek talljuk, vgezznk magasabb szint nyomtatbelltsokat is. Ne felejtsk el kiprblni a nyomtatn, hogy rendesen mkdik az LPD mindegyik olyan belltsval, amit engedlyeztnk. Emellett gondoskodjunk minden olyan jogosultsgrl is, amivel a helyi szmtgprl el tudjuk rni a tvoli szmtgp ltal felknlt LPD szolgltatst (lsd Tvoli szmtgpekrl rkez krsek szablyozsa). Ha olyan nyomtatt hasznlunk, aminek a hlzati fellete kompatibilis az LPD rendszerrel, akkor az elbb emltett nyomtatszerver lnyegben maga lesz a nyomtat, valamint a nyomtat neve a rajta belltott nv. Ezzel kapcsolatban olvassuk el a nyomtathoz s/vagy a hlzati csatoljhoz mellkelt dokumentcit.
Tipp: Amikor a Hewlett Packard Laserjet tpus nyomtatit hasznljuk, a text nev nyomtatnv magtl elvgzi a LF s CRLF formtum sortrsek kzti talaktst, ezrt ilyenkor nincs szksgnk a hpif szkriptre.

Ezutn ha szeretnnk ms gpek rszre is elrhetv tenni a frissen teleptett nyomtatnkat, adjuk meg mindegyikk /etc/printcap llomnyban a kvetkezket: 1. Tetszlegesen vlasztott nevet, lneveket. Az egyszersg kedvrt azonban itt rdemes ugyanazokat a neveket vlasztani, mint amit a nyomtatszerveren is hasznlunk. 2. Szndkosan hagyjuk az lp tulajdonsgot resen (:lp=:).

253

Fejezet 9. Nyomtats 3. Hozzunk ltre egy nyomtatsi knyvtrat, s jelljk meg a helyt az sd tulajdonsggal. Az LPD itt fogja sszegyjteni a munkkat, mieltt elklden azokat a nyomtatszervernek. 4. Adjuk meg a nyomtatszerver nevt az rm tulajdonsg segtsgvel. 5. Az rp tulajdonsggal adjuk meg a nyomtatszerverre csatlakoztatott nyomtat nevt. Ksz! Az /etc/printcap llomnyban mr nem kell megadni konverzis szrket, oldalbelltsokat s semmi ms egyebet. Lssunk mindezekre egy pldt. A rose nev szmtgphez kt nyomtat csatlakozik, a bamboo s a rattan. Most pedig belltjuk, hogy az orchid nev gp felhasznli kpesek legyenek ezekkel a nyomtatkkal dolgozni. Ekkor a most kvetkezk szerint fog kinzni az orchid (a Fejlclapok engedlyezse szakaszban bemutatott) /etc/printcap llomnya. Tartalmazza a teak nev nyomtat belltsait is, s ehhez fogjuk hozzadni a rose msik kt nyomtatjt:
# # # #

/etc/printcap (orchid) - a rose kt (tvoli) nyomtatjnak hozzadsa

# # A "teak" egy helyi nyomtat, kzvetlenl az orchidhoz # csatlakozik: # teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\ :lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:\ :if=/usr/local/libexec/ifhp:\ :vf=/usr/local/libexec/vfhp:\ :of=/usr/local/libexec/ofhp: # # A "rattan" rose-hoz csatlakozik, gy kldhetnk neki munkt: # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :lp=:rm=rose:rp=rattan:sd=/var/spool/lpd/rattan: # # A "bamboo" is a rose-hoz tartozik: # bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :lp=:rm=rose:rp=bamboo:sd=/var/spool/lpd/bamboo:

Ezutn ms csak ltre kell hoznunk a megfelel nyomtatsi knyvtrakat az orchid nev gpen:
# mkdir -p /var/spool/lpd/rattan /var/spool/lpd/bamboo # chmod 770 /var/spool/lpd/rattan /var/spool/lpd/bamboo # chown daemon:daemon /var/spool/lpd/rattan /var/spool/lpd/bamboo

Mostantl kezdve az orchid felhasznli kpesek lesznek nyomtatni a rattan s bamboo nev nyomtatkon is. Ezrt, ha az orchid egyik felhasznlja berja, hogy:
% lpr -P bamboo -d
sushi-lers.dvi

254

Fejezet 9. Nyomtats Az orchid gpen mkd LPD rendszer ezt a munkt a bemsolja a /var/spool/lpd/bamboo nev nyomtatsi knyvtrba s feljegyzi rla, hogy a nyomtatshoz DVI szrre lesz szksg. Ahogy rose gpen tallhat bamboo nyomtatsi knyvtrban elegend hely keletkezik, a kt LPD tkldi egyms kzt a rose nev gpre az llomnyt. Ezutn az llomny egszen addig vrakozik a rose nyomtatsi sorban, amg vgezetl kinyomtatsra nem kerl. A rose fogja talaktani DVI-rl PostScript formtumra talaktani (mivel a bamboo egy PostScript nyomtat).

9.4.3.2. Nyomtatk hlzati adatcsatlakozssal


Amikor hlzati krtyt vsrolunk a nyomtatnkhoz, ltalban kt vltozatukkal tallkozhatunk: az egyikk nyomtatsi rendszerknt mkdik (ez a drgbb), a msikuk pedig egyszeren csak soros vagy prhuzamos csatlakozn tovbbtand adatknt kzvetti az adatokat a nyomtat fel (az olcsbb). A drgbbik vltozatot az elz, Tvoli szmtgpekre csatlakoztatott nyomtatk cm szakaszban lertak szerint tudjuk hasznlni. Az /etc/printcap llomnyban ugyan meg tudjuk adni, hogy a nyomtat soros vagy prhuzamos portra csatlakozik, s azon keresztl milyen adattviteli sebessggel (amennyiben soros), forgalomirnytssal, tabullssal, sortrsi konvenci szerint stb. kommunikljunk vele. Azonban TCP/IP vagy ms hlzati porton l nyomtatk adatait itt nem tudjuk kifejteni. A hlzatra kttt nyomtatk hasznlathoz lnyegben egy olyan kln kifejlesztett kommunikcis programra van szksgnk, amely a szveg- vagy konverzis szrkhz hasonl mdon hvhat meg. Erre rgtn adunk is egy pldt: a netprint szkript a szabvnyos bemenetrl beolvassa az sszes kinyomtatand adatot s tkldi azokat a hlzatra csatlakoztatott nyomtatnak. A szkript els paramtereknt a nyomtat hlzati nevt adjuk meg, msodiknak pedig portot. Azonban megjegyezznk, hogy ez csak egyirny kommunikcit tesz lehetv (a FreeBSD-tl a nyomtatig). Sok hlzati nyomtat viszont kt irnyban is kpes kommuniklni, ezrt rdemes lehet ezt kihasznlni (a nyomtat llapotnak lekrdezsre, nyilvntartsok ksztsre stb).
#!/usr/bin/perl # # netprint - A hlzatra csatlakoztatott nyomtat szvegszrje # Helye: /usr/local/libexec/netprint # $#ARGV eq 1 || die "Usage: $0 <printer-hostname> <port-number>"; $printer_host = $ARGV[0]; $printer_port = $ARGV[1]; require sys/socket.ph; ($ignore, $ignore, $protocol) = getprotobyname(tcp); ($ignore, $ignore, $ignore, $ignore, $address) = gethostbyname($printer_host); $sockaddr = pack(S n a4 x8, &AF_INET, $printer_port, $address); socket(PRINTER, &PF_INET, &SOCK_STREAM, $protocol) || die "Cant create TCP/IP stream socket: $!"; connect(PRINTER, $sockaddr) || die "Cant contact $printer_host: $!"; while (<STDIN>) { print PRINTER; } exit 0;

255

Fejezet 9. Nyomtats Rengeteg szrben fel tudjuk hasznlni ezt a szkriptet. Pldul tegyk fel, hogy egy Diablo 750-N tpus sornyomtatt csatlakoztattunk a hlzatra, amely az 5100-as porton vrja a nyomtatand adatokat. A hlzati neve most scrivener lesz. me a hozztartoz szvegszr:
#!/bin/sh # # diablo-if-net - Az 5100-as porton figyel scrivener nev Diablo # nyomtat szvegszrje. Helye: /usr/local/libexec/diablo-if-net # exec /usr/libexec/lpr/lpf "$@" | /usr/local/libexec/netprint scrivener 5100

9.4.4. A nyomtat hasznlatnak szablyozsa


Ebben a szakaszban a nyomtat hasznlatnak korlzsrl runk. Az LPD rendszeren keresztl meghatrozhatjuk, hogy ki kpes helyben vagy tvolrl hozzfrni a nyomtathoz, mennyi msolatot nyomtathat, mennyi s egyenknt mekkora munkkat kldhet.

9.4.4.1. A msolatok szmnak szablyozsa


Az LPD segtsgvel a felhasznlk egy llomnyt knnyen ki tudnak nyomtatni akr tbbszr is. Ha (pldul) a felhasznl egy munka nyomtatshoz az lpr -#5 parancsot hasznlja, akkor a munkban lev sszes llomnybl t pldnyt kap. Ennek ltjogosultsgt azonban neknk kell megtlni. Amennyiben gy rezzk, hogy a tovbbi pldnyok ksztse csupn felesleges papr- s tintapazarls, akkor az sc tulajdonsg megadsval az /etc/printcap llomnyban kikapcsolhatjuk az lpr(1) -# lehetsg hasznlatt. gy amikor a felhasznlk a -# kapcsolval kldenek el munkkat a nyomtatra, a kvetkezt fogjk tapasztalni:
lpr: multiple copies are not allowed

Fordtsa:
lpr: msolatok nyomtatsa nem engedlyezett

Vigyzzunk arra, hogy ha tvoli szmtgpen zajlik a nyomtats (lsd Tvoli szmtgpekre csatlakoztatott nyomtatk), akkor az sc tulajdonsgot a tvoli szmtgp /etc/printcap llomnyban is be kell lltani, msklnben a felhasznlk egy msik szmtgprl mindig kpesek lesznek tbb pldny nyomtatsra. Nzznk erre egy pldt. Itt most a rose nev szmtgp /etc/printcap llomnyt vesszk szemgyre. Ebben a rattan egy nagyon szvlyes nyomtat lesz, ezrt engedlyezi a msolatok nyomtatst, azonban a bamboo nev lzernyomtat nla mr sokkal vlogatsabb lesz, ezrt a belltsai kzt az sc tulajdonsggal kikapcsoljuk a msodpldnyok nyomtatst:
# # /etc/printcap (rose) - A msolatok korltozsa a "bamboo" # nev nyomtatn # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :sh:sd=/var/spool/lpd/rattan:\ :lp=/dev/lpt0:\

256

Fejezet 9. Nyomtats
:if=/usr/local/libexec/if-simple: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh:sd=/var/spool/lpd/bamboo:sc:\ :lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:rw:\ :if=/usr/local/libexec/psif:\ :df=/usr/local/libexec/psdf:

Az sc tulajdonsgot az orchid /etc/printcap llomnyban is meg kell adni (s ha mr itt vagyunk, akkor tegyk meg ugyanezt a teak esetben is):
# # /etc/printcap (orchid) - Nincsenek msodpldnyok sem a helyi # "teak" nyomtatn, sem pedig a tvoli "bamboo" nyomtatn teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\ :lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:sc:\ :if=/usr/local/libexec/ifhp:\ :vf=/usr/local/libexec/vfhp:\ :of=/usr/local/libexec/ofhp: rattan|line|diablo|lp|Diablo 630 Line Printer:\ :lp=:rm=rose:rp=rattan:sd=/var/spool/lpd/rattan: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :lp=:rm=rose:rp=bamboo:sd=/var/spool/lpd/bamboo:sc:

Az sc tulajdonsg hasznlatval ugyan megakadlyozzuk az lpr -# parancs teljestst, azonban ez mg mindig nem v minket attl, hogy a felhasznlk kpesek legyenek tbbszr egyms utn lefuttatni az lpr(1) parancsot, vagy ppen egyetlen munkban tbb llomnyt is elkldeni:
% lpr forsale.sign forsale.sign forsale.sign forsale.sign forsale.sign

Szmos mdszer knlkozik az effajta visszalsek kivdsre (belertve a gyelmen kvl hagyst is), lehet velk ksrletezgetni!

9.4.4.2. A nyomtatk hozzfrsnek szablyozsa


A UNIX csoportkezelsvel s az /etc/printcap llomnyban tallhat rg tulajdonsg felhasznlsval korltozni tudjuk, ki milyen nyomtatn dolgozhat. Ehhez mindsszesen annyit kell tennnk, hogy besoroljuk egy csoportba azokat a felhasznlkat, amelyek hozzfrhetnek a nyomtathoz, s az rg tulajdonsggal megnevezzk azt. A csoporton kvli felhasznlkat (kztk magt a root felhasznlt is) pedig ezutn gy dvzli a rendszer, ha megprblnak valamit kinyomtatni egy korltozott felhasznls nyomtatn:
lpr: Not a member of the restricted group

Az zenet fordtsa:
lpr: Nem jogosult felhasznl

257

Fejezet 9. Nyomtats Ha erre a tvoli szmtgpek esetn szksgnk lenne (lsd Tvoli szmtgpekre csatlakoztatott nyomtatk), akkor tegyk ugyanazt, mint amit az sc (a msodpldnyok letiltsa, suppress multiple copies) tulajdonsg esetn is, vagyis az rg tulajdonsgot adjuk meg azokon a tvoli szmtgpeken is, amelyek hozz tudnak frni a megosztott nyomtathoz. Pldul megengedjk, hogy a rattan nev nyomtatt brki hasznlhassa, azonban a bamboo nyomtatn csak az artists nev csoport hasznlhatja. Kvetkezzen ht akkor a rose korbbrl mr ismert /etc/printcap llomnya:
# # /etc/printcap (rose) - A bamboo hozzfrsnek korltozsa # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :sh:sd=/var/spool/lpd/rattan:\ :lp=/dev/lpt0:\ :if=/usr/local/libexec/if-simple: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:\ :lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:rw:\ :if=/usr/local/libexec/psif:\ :df=/usr/local/libexec/psdf:

Most ne bntsuk a msik (az orchid nev gpen lev) /etc/printcap llomnyt. gy persze az orchid brmelyik felhasznlja nyomtathat a bamboo nyomtatn. De ez most egy olyan eset, ahol egybknt lekorltozzuk a orchid elrst is, ezrt az ott beengedett felhasznlk mr akr hasznlhatjk is a nyomtatt. Vagy sem.
Megjegyzs: Minden nyomtathoz csak egy ilyen csoportot adhatunk meg.

9.4.4.3. A bekldtt munkk mretnek szablyozsa


Ha sok felhasznl szeretne a nyomtatinkhoz hozzfrni, akkor minden bizonnyal meg akarunk adni egy fels hatrt a felhasznlk ltal bekldhet nyomtatsok mretre vonatkozan. Mivel a nyomtatsi knyvtraknak otthont ad llomnyrendszer is egyszer betelhet, ezrt mindenkppen rdemes gondoskodni arrl, hogy mindenki munkjt el tudjuk rendesen trolni. Az LPD az mx tulajdonsggal lehetsget ad arra, hogy lekorltozzuk a munkkban tallhat egyes llomnyok mrett. Ennek mrtkegysge egy BUFSIZ blokk, ami pedig 1024 byte. Ha rtkl nullt adunk meg, akkor nincs korltozs, viszont ha semmit sem rgztnk, akkor az mx tulajdonsg alaprtke, vagyis 1000 blokk lesz a hatr.
Megjegyzs: Ez az rtk a munkkban lev egyes llomnyok mretre vonatkozik, nem pedig a munkk teljes mretre.

Fontos tudni, hogy az LPD nem dobja vissza a mreten felli llomnyokat. Ehelyett a mret alatti rszt szpen berakja a sorba s kinyomtatja, a tbbi pedig elhagyja. Lehetne rajta vitzni, hogy ez mennyire helyes cselekedet.

258

Fejezet 9. Nyomtats Pldakppen deniljunk a korbban hasznlt rattan s bamboo nyomtatinkhoz ilyen korltokat. Mivel az artists csoport tagjai hajlamosak nagy PostScript llomnyokat kldeni, ezrt most lekorltozzuk ezt t megabyte-ra. A szveges nyomtatnk esetn azonban nem lesz semmilyen hatr:
# # #

/etc/printcap (rose)

# # Itt nincs korlt a munkkra: # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :sh:mx#0:sd=/var/spool/lpd/rattan:\ :lp=/dev/lpt0:\ :if=/usr/local/libexec/if-simple: # # t megabyte a PostScript: # bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:mx#5000:\ :lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:rw:\ :if=/usr/local/libexec/psif:\ :df=/usr/local/libexec/psdf:

Ismt hozztesszk, hogy ezek a korltok csak a helyi felhasznlkra vonatkoznak. Amennyiben tvolrl is el lehet rni ezt a nyomtatt, a tvoli felhasznlkat nem fog semmilyen korltozs rinteni. Azokon a szmtgpeken is meg kell adnunk az /etc/printcap llomnyban az mx tulajdonsgot. Ehhez a Tvoli szmtgpekre csatlakoztatott nyomtatk cm szakaszban tallunk segtsget. Van mg egy specilis mdszer, amivel kpesek vagyunk szablyozni a tvolrl rkez krsek mrett. Errl a Tvoli szmtgpekrl rkez krsek szablyozsa szakaszban olvashatunk.

9.4.4.4. Tvoli szmtgpekrl rkez krsek szablyozsa


Az LPD nyomtatsi rendszer tbb mdot is szolgltat a tvolrl rkez nyomtatsi munkk szablyozsra: Az elrs szablyozsa Az /etc/hosts.equiv s /etc/hosts.lpd llomnyok segtsgvel bellthatjuk, hogy mely tvoli szmtgpektl fogadjon el krseket az LPD. Az LPD minden krs elfogadsakor ellenrzi, hogy a kld szmtgp cme szerepel-e az emltett llomnyok valamelyikben. Ha nem, akkor az LPD visszautastja a krst. A kt llomny felptse egyszer, mert bennk minden sorban egy-egy hlzati nevet adunk meg. Hozztennnk azonban, hogy legynk vatosak, mivel az /etc/hosts.equiv llomnyt az ruserok(3) protokoll is hasznlja, ezrt ennek mdostsa hatssal van az rsh(1) s rcp(1) programok mkdsre. Pldul most nzzk meg a rose /etc/hosts.lpd llomnyt:
orchid violet madrigal.fishbaum.de

259

Fejezet 9. Nyomtats Ennek megfelelen teht a rose elfogadja az orchid, violet s madrigal.fishbaum.de nev tvoli szmtgpek krseit. Ha brmilyen ms gp prbl hozzfrni a rose ltal felknlt LPD szolgltatshoz, visszautastja. A mret szablyozsa Szablyozhatjuk tbbek kzt azt is, hogy mennyi szabad terletnek kell fennmaradnia a nyomtatsi knyvtrnak otthont ad llomnyrendszeren. A helyi nyomtat knyvtrban ehhez hozzunk ltre egy minfree nev llomnyt. Ide rjuk be, mennyi szabad lemezblokk (512 byte-os egysg a lemezen) szksgeltetik egy tvolrl berkez munka fogshoz. gy gondoskodhatunk rla, hogy a tvoli felhasznlk nem fogjk eltmteni az llomnyrendszernket, illetve ezzel egyttal adhatunk nmi elnyt a helyi felhasznlknak is: k ugyanis mg azutn is kpesek lesznek munkkat kldeni a nyomtatnak, miutn az llomnyrendszeren tallhat szabad terlet mennyisge mr rg a minfree llomnyban szerepl rtk al cskkent. Pldaknt most a bamboo nev nyomtatnkhoz adjunk meg egy ilyen minfree llomnyt. Ehhez az /etc/printcap llomnybl tudjuk kiderteni a hozztartoz nyomtatsi knyvtrat. Lssuk teht belle a bamboo bejegyzst:
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:mx#5000:\ :lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:rw:mx#5000:\ :if=/usr/local/libexec/psif:\ :df=/usr/local/libexec/psdf:

A nyomtatsi knyvtrat az sd tulajdonsg hatrozza meg. gy lltjuk most be, hogy az LPD szmra a tvoli munkk fogadshoz ebben a knyvtrban legalbb hrom megabyte (6144 blokk) szabad terletnek mindig lennie kell:
# echo 6144 > /var/spool/lpd/bamboo/minfree

A felhasznlk szablyozsa Az /etc/printcap llomnyban megadhat rs tulajdonsg segtsgvel korltozhatjuk a helyi nyomtatkhoz hozzfrni kpes tvoli felhasznlkat. Amikor az rs tulajdonsg szerepel egy helyben csatlakoz nyomtat lersnl, akkor az LPD csak abban az esetben fogad el tvoli felhasznlktl munkt, ha a munkt kld felhasznlnak ugyanazon a nven van a helyi gpen is hozzfrse. Msklnben az LPD vissza fogja utastani a krst. Ez a tulajdonsg klnsen fontos olyan krnyezetben, ahol (pldul) tbb szervezeti egysg hasznl egyetlen kzs hlzatot s bizonyos felhasznlk kpesek tlpni szervezeti egysgk hatrait, mivel ha a hozzfrst adunk neki a rendszereinkhez, akkor kpesek a sajt helykrl hasznlni ezeket. Ha ehelyett csupn a nyomtatinkat s a szmtgpnk sszes erforrst akarjuk megosztani, akkor ltrehozhatunk a szmukra olyan token hozzfrseket is, amikhez nem tartozik sem felhasznli knyvtr, sem pedig parancsrtelmez (pontosabban a /usr/bin/false).

9.4.5. A nyomtat hasznlatnak nyilvntartsa


Teht szksgnk lenne a nyomtatsok kltsgnek elszmolsra. Mirt is ne tennnk ilyet? A papr s a tinta bizony pnzbe kerl, amihez mg hozzjrulnak ms egyb karbantartsi kltsgek is a nyomtatk dugig vannak mindenfle mozg alkatrsszel, amelyek elbb-utbbi el is romlanak. Tegyk fel, hogy a nyomtatink kapacitsa,

260

Fejezet 9. Nyomtats kihasznltsga s karbantartsi kltsge alapjn mr megllaptottunk egy elszmolsi egysget (oldalanknt, mterenknt, akrminknt). De hogyan lssunk hozz a nyomtatsok kltsgnek tnyleges nyilvntartshoz? Van egy rossz hrnk: az LPD nyomtatsi rendszer nmaga nem tud segteni ebben a feladatban. A nyilvntarts nagyban fgg a hasznlt nyomtatktl, a nyomtatott formtumoktl s nyomtat ltalunk kiszabott kltsgeitl. A nyilvntarts ltrehozshoz t kell rnunk a nyomtathoz tartoz szrt (a nyers szvegek kltsgnek felszmtshoz) s konverzis szrket (a klnfle formtumok kltsgei miatt), amikkel aztn szmolhatjuk vagy lekrdezhetjk a kinyomtatott lapokat. Egyetlen kimeneti szr hasznlatval szinte semmire se megynk, mivel az nem kpes nyilvntarts vezetsre. Errl bvebb tmutatst a Szrk szakaszban tallhatunk. ltalnossgban vve kt mdon vezethetnk nyilvntartst:

Az idszakos elszmols a gyakoribb, mivel ez az egyszerbb. Amikor valaki kinyomtat egy munkt, a szr a nyilvntartst trol llomnyba feljegyzi a felhasznl azonostjt, a gpnek nevt s a kinyomtatott oldalakat. Ezutn minden hnapban, flvben, vben vagy akr tetszleges idkznknt sszegyjtjk a nyomtatk nyilvntartsait s kln feljegyezzk az egyes felhasznlk nyomtatsait, majd benyjtjuk rla a szmlt. Trljk az sszes naplllomnyt, s tiszta lappal kezdjk a kvetkez idszakot. Az azonnali elszmols mr nem annyira npszer, mivel nehezebb megvalstani. Ekkor a felhasznlk mr kzvetlenl a nyomtats utn megkapjk a szmlt, hasonlan a lemezkvtkhoz. Meg tudjuk akadlyozni ezzel azt is, hogy a felhasznlk tllphessk az elre kiszabott nyomtatsi kvtjukat, amit persze menet kzben lehet ellenrizni s lltgatni. A felhasznlk s kvtjuk nyomonkvetshez viszont szksgnk lesz egy kis adatbziskezelsre is.

Az LPD nyomtatsi rendszer mind a kt mdszer kivitelezshez tud segtsget nyjtani, hiszen amikor szrket lltunk be (vagyis szinte mindig), lehetsgnk van a nyilvntartst vgz programrszleteket is beilleszteni. s ami felttlenl elnys: risi mrtk rugalmassgot ajnl fel a nyilvntarts megvalstshoz. Pldul magunk vlaszthatjuk ki, hogy idszakos vagy azonnali elszmolst alkalmazunk. Meg tudjuk adni, milyen informcikat rgztsnk: felhasznli neveket, szmtgpek neveit, a munkk tpust, vagy a kinyomtatott oldalakat, a felhasznlt lapok terlett, a nyomtatsok idbeli ignyeit s gy tovbb. Ehhez mindssze csak a szrket kell mdostani.

9.4.5.1. Nyilvntarts gyorsan s egyszeren


A FreeBSD-ben egybl tallunk is kt programot, amivel pillanatok alatt ki tudunk alaktani egy egyszer idszakos elszmolsi rendszert. Ezek Az lpf szvegszr cm szakaszban ismertetett lpf s a nyomtatk nyilvntartsait tartalmaz llomnyok adatainak sszegyjtst s kirtkelst vgz pac(8). Ahogy korbban mr lertuk a szrkrl szl szakaszban (Szrk), az LPD a szveg- s konverzis szrket parancssorbl a nyilvntartst trol llomny nevvel indtja el. Ezt a paramtert a szrk aztn fel tudjk hasznlni a nyilvntartsok feljegyzshez. Az llomny nevt az /etc/printcap llomnyban szerepl af tulajdonsggal tudjuk megadni, vagy teljes elrsi ttal, vagy pedig a nyomtatsi knyvtrhoz viszonytva. Az LPD az lpf szrt a lap szlessgnek s hossznak megadsval indtja el (ezeket az rtkeket a pw s pl tulajdonsgokbl szrmaztatja). Az lpf ezek felhasznlsval meg tudja mondani, mennyi paprt hasznltunk el. Miutn kikldte az llomnyt a nyomtatra, nyilvntartsba is veszi. Ezek a tpus bejegyzsek valahogy gy nznek ki:
2.00 3.00 3.00 5.00 rose:andy rose:kelly orchid:mary orchid:mary

261

Fejezet 9. Nyomtats
2.00 orchid:zhang

Minden nyomtathoz rdemes kln nyilvntartst vezetni, mivel az lpf nem tartalmaz semmilyen beptett zrolsi megoldst, ezrt kt lpf prhuzamos futtatsa knnyen sszezagyvlhatja a kzsen hasznlt nyilvntartsok tartalmt. Az /etc/printcap llomnyban az af=acct tulajdonsg megadsval knnyen ltre tudunk hozni minden nyomtathoz kln nyilvntartst. Ilyenkor minden nyomtat knyvtrban megjelenik egy acct nev llomny. Amikor elrkeznk a nyomtatsok kiszmlzshoz, futtassuk le a pac(8) programot. Ehhez mindssze annyit kell tennnk, hogy tlpnk az elszmolni kvnt nyomtat knyvtrba s begpeljk a pac parancsot. Ekkor kapunk egy ehhez hasonl, dollr alap kimutatst:
Login orchid:kelly orchid:mary orchid:zhang rose:andy rose:kelly rose:mary rose:root total pages/feet 5.00 31.00 9.00 2.00 177.00 87.00 26.00 337.00 runs 1 3 1 1 104 32 12 154 price 0.10 0.62 0.18 0.04 3.54 1.74 0.52 6.74

$ $ $ $ $ $ $ $

A pac(8) a kvetkez paramtereket vrja:


-Pnyomtat

Az kirtkelend nyomtat neve. Ez a paramter csak akkor hasznlhat, ha az /etc/printcap llomnyban az af tulajdonsgnak teljes elrsi utat adtunk meg.
-c

A felhasznlk nevei helyett a zetend sszeg szerint rendezze a listt.


-m

Hagyja gyelmen kvl a nyilvntartsban szerepl gpek hlzati neveit. Ennek hatsra az alpha gprl nyomtat smith meg fog egyezni a gamma gprl nyomtatval. A bellts nlkl ez a kt felhasznl el fog trni.
-pr

A paramterknt megadott r dollr rtkkel szmol oldalanknt vagy lbanknt az /etc/printcap llomnyban megadott pc tulajdonsg rtke helyett (ami alapbl kt cent). Az r lebegpontos (vals) szmknt is megadhat.
-r

A rendezsi sorrend megfordtsa.


-s

Hozzon ltre egy elszmolst, majd trlje a hozz kapcsold nyilvntartsi adatokat.

262

Fejezet 9. Nyomtats
nv ...

Csak az adott nev felhasznlk adatait rtkelje ki. A pac(8) ltal alaprtelmezs szerint generlt kimutatsban lthatjuk az egyes gpekrl szrmaz egyes felhasznlk kinyomtatott oldalait. Ha neknk viszont nem szmt, hogy honnan kldtk a krseket (mivel brhonnan lehet kldeni), akkor a pac -m paranccsal az albbi tblzatot ksztetthetjk el:
Login andy kelly mary root zhang total pages/feet 2.00 182.00 118.00 26.00 9.00 337.00 runs 1 105 35 12 1 154 price 0.04 3.64 2.36 0.52 0.18 6.74

$ $ $ $ $ $

Itt megtalljuk a tnylegesen kizetend sszegeket is, amik kiszmtshoz a pac(8) az /etc/printcap llomny pc tulajdonsgt hasznlja (ez alapbl 200, avagy 2 cent oldalanknt). Ezzel a tulajdonsggal teht egy cent szzadrszben mrve tudjuk megadni az oldalaknti vagy lbanknti rakat. Ezt a belltst termszetesen a pac(8) -p opcijval fell tudjuk brlni. Arra azonban vigyzzunk, hogy a -p utn dollrban kell megadnunk az rat. Emiatt teht a
# pac -p1.50

parancs szerint minden egyes oldal msfl dollrba fog kerlni. Ezzel az opcival aztn alaposan megdnthetjk az rakat. Vgezetl megemltjk, hogy a pac -s parancs az ltala ltrehozott elszmolst egy kln llomnyba menti, amelynek a neve nagyjbl megegyezik a nyilvntartst vgzvel, de _sum-ra (mint summary, azaz elszmols) vgzdik. Ezutn nullzza a nyilvntartst. Amikor a pac(8) programot jra lefuttatjuk, jbl beolvassa a korbban elmentett elszmolsokat, majd hozzszmolja a tbbit a hagyomnyos nyilvntartsi adatokbl.

9.4.5.2. Hogyan tudjuk szmolni a kinyomtatott lapokat?


A nyilvntarts pontos vezetshez mg tvolrl is valamilyen mdon meg kell tudnunk mondani, hogy mennyi lapot hasznlt egy nyomtatsi munka vgrehajtsa. Ez a nyomtats nyilvntartsnak egyik alapvet problmja. A nyers szvegek esetben ez nem is annyira bonyolult: egyszeren szmoljuk ssze, hogy a munkban mennyi sor kinyomtatsra lesz szksg s vessk ssze ezt a nyomtat ltal lapoknt kinyomtatott sorok szmlva. Ne felejtsk el szmtsba venni a szvegben felbukkan trlsek hatst, vagy az olyan hossz sorokat, amelyek a valsgban tbb sorban fognak megjelenni. Viszont (Az lpf szvegszr cm szakaszban bemutatott) lpf program ezeket mind lekezeli a nyilvntartsok ksztse sorn. Ezrt ha szintn egy nyilvntartst vezetni kpes szvegszrt akarunk rni, akkor mindenkppen rdemes megnznnk az lpf forrskdjt. De hogyan bnjunk el a tbbi formtummal? Nos, a DVI-Laserjet s DVI-PostScript kzti talaktsok esetn a kinyomtatott lapok szmnak megllaptshoz meg kell tantanunk a szrnket rtelmezni a dvilj vagy dvips parancsok kimenett. Ugyanezt meg tudjuk tenni ms formtumok s ms konverzis programok hasznlata sorn is.

263

Fejezet 9. Nyomtats Azonban ezek a mdszerek nem veszik szmtsba, hogy a nyomtat egyltaln ki is nyomtatta-e az sszes elkldtt oldalt. Sok minden trtnhet mg addig, pldul beragadhat a papr, kifogyhat a tinta vagy akr felrobbanhat a nyomtat a felhasznlnak ettl fggetlenl mg zetnie kell. Mit lehet ilyenkor tenni? A precz nyilvntartsnak csak egyetlen biztos mdja ltezik. Olyan nyomtatt szerezznk be, amely kpes megmondani, mennyi lapot hasznlt el a nyomtats sorn, majd egy ilyet csatlakoztassunk soros porton vagy hlzaton keresztl. Szinte majdnem az sszes PostScript nyomtat tmogatja ezt a lehetsget, ahogy sok ms gyrtmny s tpus is (pldul a hlzati Imagen lzernyomtatk). A nyomtathoz tartoz szrt ehhez gy kell mdostani, hogy lekrdezzk a kinyomtatott lapok szmt a nyomtats utn s kizrlag erre az rtkre alapozva ksztnk nyilvntartst. Itt nincs szksg sem a sorok szmolsra, sem pedig az llomnyok (knnyen elhibzhat) tvizsglsra. Termszetesen lehetnk nagylelkek s ne szmtsunk fel semmit a nyomtatsrt.

9.5. A nyomtatk hasznlata


Ebbl a szakaszbl megtudhatjuk, hogyan hasznljuk a FreeBSD-n belltott nyomtatnkat. Rviden most itt foglaljuk ssze az ide tartoz felhasznli parancsokat: lpr(1) Munkkat nyomtat ki. lpq(1) Ellenrzi a nyomtatsi sorokat. lprm(1) Munkkat vesz ki a nyomtatsi sorokbl. Ezek mellett ltezik mg a nyomtatk s a hozzjuk tartoz sorok irnytsra alkalmas parancs is, az lpc(8), amelyre a A nyomtatk vezrlse cm szakaszban fogunk rszleteiben kitrni. A nyomtatk/sorok /etc/printcap llomnyban szerepl nevk szerinti megadshoz az lpr(1), lprm(1) s lpq(1) parancsok kzl mindegyik elfogadja a -P nyomtatnv paramtert. Ennek ksznheten kpesek vagyunk munkkat kldeni, eltvoltani vagy felgyelni az egyes nyomtatk soraiban. Ha nem hasznljuk a -P kapcsolt, akkor az rintett nyomtat a PRINTER krnyezeti vltoz ltal meghatrozott lesz. Vgl, ha a PRINTER nev krnyezeti vltozt sem lltottuk be, akkor a parancsok alaprtelmezett mdon az lp nev nyomtatt fogjk hasznlni. A tovbbiakban az alaprtelmezett nyomtat kifejezs a PRINTER krnyezeti vltoz ltal megnevezett nyomtatra fog utalni, illetve ha ezt nem deniltuk, akkor az lp nev nyomtatra.

9.5.1. Munkk nyomtatsa


Az llomnyok kinyomtatshoz rjuk be:

264

Fejezet 9. Nyomtats
% lpr
llomnynv ...

Ezzel kinyomtatjuk az sszes felsorolt llomnyt az alaprtelmezett nyomtatn. Ha nem adunk meg llomnyokat, akkor az lpr(1) parancs a szabvnyos bemenetrl vrja a nyomtatand adatokat. Pldul ezzel a paranccsal nhny igen fontos rendszerllomnyt tudunk kinyomtatni:
% lpr /etc/host.conf /etc/hosts.equiv

A nyomtat megvlasztshoz gy adjuk ki a parancsot:


% lpr -P nyomtatnv
llomnynv ...

Ez a plda kinyomtatja az aktulis knyvtr rszletes listjt a rattan nev nyomtatn:


% ls -l | lpr -P rattan

Mivel egyetlen llomnyt sem adtunk meg az lpr(1) programnak, az lpr parancs a nyomtatand adatokat a szabvnyos bemenetrl vrja, ami jelen esetnkben a ls -l parancs kimenete. Az lpr(1) ezeken fell mg kpes rtelmezni rengeteg formzsra, konverzira, msolatok ksztsre stb. utast kapcsolt is. Errl bvebben a Nyomtatsi belltsok cm szakaszban lesz sz.

9.5.2. Munkk felgyelete


Amikor az lpr(1) programmal nyomtatunk, az sszes nyomtatandnk egy nyomtatsi munknak nevezett csomagba kerl, ami pedig az LPD nyomtatsi rendszerbe. Minden nyomtathoz tartozik egy nyomtatsi sor, ahol rsznkrl s msok ltal eddig kiadott munkkat tallhatjuk. A nyomtat ezutn ezeket a munkkat rkezsi sorrend szerint dolgozza fel. Az alaprtelmezett nyomtathoz tartoz sor llapott az lpq(1) programmal tudjuk megnzni. Ha egy adott nyomtatra vagyunk kvncsiak, akkor hasznljuk a -P kapcsolt. Pldul a
% lpq -P bamboo

parancs a bamboo nev nyomtat sort fogja megmutatni. Pldakppen lssuk is ilyen esetben az lpq parancs eredmnyt:
bamboo Rank active 2nd 3rd is ready Owner kelly kelly mary and printing Job Files 9 /etc/host.conf, /etc/hosts.equiv 10 (standard input) 11 ...

Total Size 88 bytes 1635 bytes 78519 bytes

Itt hrom munkt lthatunk a bamboo nyomtatsi sorban. Az els munka, amit a kelly nev felhasznl kldtt, a 9-es munkaszmot kapta. A nyomtathoz tartoz sszes munka kap egy ilyen egyedi szmot. Tbbnyire nyugodtan gyelmen kvl hagyhatjuk, azonban szksgnk lehet r, ha ppen trlni kvnjuk a hozztartoz munkt. Ezzel majd a Munkk eltvoltsa cm szakaszban foglalkozunk. A kilences szm munka kt llomnyt tartalmaz: ha a parancssorban tbb llomnyt adunk meg az lpr(1) programnak, akkor az egy munknak szmt. Ez egyben a pillanatnyilag aktv munka (ezt a Rank oszlopban szerepl active rtk jelzi), teht a nyomtat ppen ezzel foglalatoskodik. A msodik munka kzvetlenl az lpr(1)

265

Fejezet 9. Nyomtats szabvnyos bemenetre rkezett. A harmadik a mary nev felhasznltl jtt, s ez egy nagyobbacska munka. A nyomtatand llomny elrsi tvonala tlsgosan hossz ahhoz, hogy ki lehessen rni, ezrt az lpr(1) csak hrom pontot jelez ki helyette. Az lpq(1) kimenetnek els sorai is nagyon hasznos informcit tartalmaz: megtudhatjuk, mit csinl ppen (legalbb is az LPD szerint) a nyomtat. A -l kapcsolval az lpq(1) parancstl krhetnk sokkal rszletesebb listzst is. Pldul gy nzhet ki a lpq -l parancs eredmnye:
waiting for bamboo to become ready (offline ?) kelly: 1st [job 009rose] /etc/host.conf 73 bytes /etc/hosts.equiv 15 bytes kelly: 2nd [job 010rose] (standard input)

1635 bytes

mary: 3rd [job 011rose] /home/orchid/mary/research/venus/alpha-regio/mapping 78519 bytes

9.5.3. Munkk eltvoltsa


Ha meggondoltuk volna magunkat egy munka kinyomtatsrl, az lprm(1) paranccsal mg trlni tudjuk a sorbl. Az lprm(1) gyakran mg a nyomtats alatt ll munkt is kpes eltvoltani, azonban elfordulhat, hogy a munka egy rsze mr nyomtatsra kerlt. Az alaprtelmezett nyomtat sorbl csak gy tudunk munkkat trlni, ha elszr az lpq(1) segtsgvel megkeressk a szmukat. Ha ez megvan, rjuk be:
% lprm munkaszm

Adott nyomtatrl a -P kapcsol segtsgvel tudunk munkkat trlni. A most kvetkez parancs a bamboo nev nyomtatrl trli a 10-es szm munkt:
% lprm -P bamboo 10

Az lprm(1) parancs esetn mg hasznlhatak az albbi rvidtsek is: lprm Eltvoltja a hozznk tartoz az sszes munkt (az alaprtelmezett nyomtatn). lprm felhasznl Eltvoltja az adott felhasznlhoz tartoz sszes munkt (az alaprtelmezett nyomtatn). Kizrlag a rendszergazdk kpesek erre, a rendes felhasznlk csak a sajt munkikat trlhetik. lprm A munka szma, a felhasznli nv vagy a -megadsa nlkl az lprm(1) trli az alaprtelmezett nyomtatn ppen aktv munkt, amennyiben az a mink. Csak a rendszergazdk kpesek brmilyen aktv munkt trlni.

266

Fejezet 9. Nyomtats Ha kiegsztjk az imnt emltett rvidtsket a -P paramter megadsval, akkor az alaprtelmezett nyomtat helyett brmelyik msikat is hasznlhatjuk. Pldul ez a parancs eltvoltja az aktulis felhasznl sszes munkjt a rattan nev nyomtatn:
% lprm -P rattan -

Megjegyzs: Hlzati krnyezetben az lprm(1) csak arrl a gprl engedi trlni a munkkat, amelyrl kldtk ezeket, mg abban az esetben is, amikor ugyanaz a nyomtat ms szmtgpekrl is elrhet. A kvetkez parancssorozat ezt igyekszik szemlltetni:
% lpr -P rattan % rlogin orchid % lpq -P rattan
myfile

Rank Owner active seeyan 2nd kelly

Job Files 12 ... 13 myfile

Total Size 49123 bytes 12 bytes

% lprm -P rattan 13

rose: Permission denied


% logout % lprm -P rattan 13

dfA013rose dequeued cfA013rose dequeued

9.5.4. Tl a nyers szvegen: nyomtatsi belltsok


Az lpr(1) parancs szmos olyan belltst enged, amelyekkel a szvegek formzst, grakk talaktst illetve ms llomnyformtumok hasznlatt, msolatok ksztst, munkk irnytst s mg sok minden mst el tudunk vgezni. Ebben a szakaszban pontosan ezekrl a kapcsolkrl lesz sz.

9.5.4.1. Formzsi s konverzis belltsok


Az lpr(1) most kvetkez opcii a munkkban tallhat llomnyok formzst vezrlik. Akkor hasznljuk ezeket a belltsokat, ha a munka nem tartalmaz nyers szveget, vagy ha nyers szveget akarunk formzni az pr(1) segdprogrammal. Pldul az albbi parancs kinyomtat egy halszati-jelents.dvi nev (a TEX betszed rendszerbl mr jl ismert) DVI llomnyt a bamboo nev nyomtatn:
% lpr -P bamboo -d
halszati-jelents.dvi

Ezek a belltsok a munkban szerepl minden egyes llomnyra vonatkoznak, ezrt nem keverhetjk (pldul) a DVI s ditroff formtum llomnyokat egy munkn bell. Ehelyett kln munkkban kell elkldennk az eltr formtum llomnyokat, s mindegyik munkhoz kln konverzis belltsokat kell megadnunk.
Megjegyzs: A -p s -T kapcsolk kivtelvel az itt felsorolt sszes belltsnak a kivlasztott nyomtathoz szksge van a megfelel konverzis szrre. Pldul a -d opci hasznlathoz kell egy konverzis szr a DVI formtumhoz. A Konverzis szrk cm szakasz errl ad bvebb tjkoztatst.

267

Fejezet 9. Nyomtats
-c

Cifplot llomnyok nyomtatsa.


-d

DVI llomnyok nyomtatsa.


-f

FORTRAN forrs nyomtatsa.


-g

Plot formtum adatok nyomtatsa.


-i szm

A kinyomtatott szveg behzsnak nvelse a szm rtkvel. Ha nem adjuk meg a szmot, akkor ennek rtke 8 lesz. Ez a bellts csak bizonyos konverzis szrkkel mkdik.
Megjegyzs: Ne hagyjunk helyet az -i s a szm kztt.

-l

A szveg formzs nlkli nyomtatsa, vezrlkarakterekkel egytt.


-n

Ditroff (eszkzfggetlen troff) adat nyomtatsa. -p Nyomtats eltt a szveg formzsa a pr(1) programmal. Lsd pr(1).
-T cm

Az llomny neve helyett a fejlcben a cmet jelenti meg a pr(1). Ennek a belltsnak csak a -p opcival egytt van hatsa.
-t

Troff adat nyomtatsa.


-v

Raszteres adatok nyomtatsa. Vegynk az imntiekre egy pldt. A kvetkez parancs az ls(1) szpen megformzott man oldalt nyomtatja ki az alaprtelmezett nyomtatn:
% zcat /usr/share/man/man1/ls.1.gz | troff -t -man | lpr -t

A zcat(1) kitmrti az ls(1) man oldalnak forrst s tadja a troff(1) parancsnak, ami ebbl ltrehoz a GNU troff formtumnak megfelel kimenetet s tovbbadja az lpr(1) parancsnak, ami vgl elkldi a munkt az LPD

268

Fejezet 9. Nyomtats nyomtatsi rendszernek. Mivel az lpr(1) parancsnak megadtuk az -t kapcsolt, a nyomtatsi rendszer a GNU troff formtumban rkez adatokat magtl t fogja alaktani olyan formtumra, amit a nyomtat is kpes lesz megrteni.

9.5.4.2. Munkk kezelse


Az lpr(1) most felsoroland belltsaival az LPD rendszert arra tudjuk utastani, hogy a munkt klnleges mdon kezelje: -# pldnyszm Egyetlen pldny helyett hozzon ltre pldnyszm szm pldnyt a munkban tallhat sszes llomnybl. A rendszergazda a nyomtat kmlse rdekben ezt a lehetsget letilthatja, amivel inkbb a fnymsol hasznlatra sztnzi a felhasznlkat. Lsd A msolatok szmnak szablyozsa szakasz. A bellts illusztrlsaknt most az alaprtelmezett nyomtatn elszr nyomtassuk ki hrom pldnyt a parser.c, majd ezutn a parser.h llomnyokbl:
% lpr -#3
parser.c parser.h

-m A rendszer kldjn levelet a munka teljestse utn. Ekkor az LPD a munka elvgzse utn levelet kld a helyi postakunkba. A levlben kifejti, hogy sikeres volt-e a nyomtats, vagy esetleg valamilyen hiba keletkezett, s ha hiba trtnt, akkor pontosan mi is volt az. -s Ne msolja kzvetlenl az llomnyokat a nyomtatsi knyvtrba, hanem ksztsen hozzjuk szimbolikus linkeket. Egy nagyobb munka nyomtatsa esetn javasolt hasznlni ezt a kapcsolt. Ezzel a megoldssal helyet tudunk sprolni a nyomtatsi knyvtrban (amikor a munknk knnyen megteltheti a nyomtatsi knyvtrat trol llomnyrendszert). Emellett idt is takartunk meg, mivel az LPD-nek nem kell a munka minden egyes bitjt tmsolni a nyomtatsi knyvtrba. Van azonban egy htrnya: mivel az LPD ekkor kzvetlenl az eredeti llomnyra fog hivatkozni, ezrt a nyomtats befejezsig azt nem mdosthatjuk vagy trlhetjk.
Megjegyzs: Ha egy tvoli nyomtatnak kldjk a munkt, akkor az LPD a helyi s a tvoli szmtgp kztt mgis knytelen lesz tmsolni a munkt, gy a -s kapcsol egyedl csak a helyi nyomtatsi knyvtrban fog helyet sprolni. Ettl eltekintve mg ilyenkor is hasznunkra vlhat.

-r Trlje a munkban szerepl llomnyokat, miutn tmsolta ezeket a nyomtatsi knyvtrba, vagy miutn a -s kapcsol hasznlatval kinyomtatta ezeket. Nagy krltekintssel hasznljuk!

269

Fejezet 9. Nyomtats

9.5.4.3. A fejlclapok belltsai


Az lpr(1) most kvetkez belltsai a munkk fejlcben megjelen szvegekre vannak hatssal. gy ha letiltottuk a fejlclapok hasznlatt, akkor ezek a kapcsolk lnyegben semmit sem lltanak. A Fejlclapok cm szakaszbl tudhatunk meg tbbet ezek belltsrl. -C szveg A fejlclapon megjelen hlzati nv helyett a szveg fog szerepelni. A hlzati nv ltalban annak a gpnek a neve, ahonnan a munkt kldtk. -J szveg A fejlclapon megjelen munka neve helyett a szveg fog megjelenni. A munka neve ltalban a benne szerepl els llomny nevvel egyezik meg, ha a szabvnyos bemenetrl nyomtatunk, akkor egyszeren csak stdin. -h Ne nyomtasson fejlclapot.
Megjegyzs: Bizonyos helyeken elfordulhat, hogy ennek a kapcsolnak nincs semmilyen hatsa a fejlclapok ltrehozsnak mdszerbl fakadan. A rszleteket lsd a Fejlclapok szakaszban.

9.5.5. A nyomtatk vezrlse


A nyomtatink rendszergazdjaknt neknk kell teleptenk, zembe helyeznnk s kiprblnunk ezeket. Az lpc(8) parancs hasznlatval mg jobban kpesek vagyunk kapcsolatba lpni velk. Az lpc(8) paranccsal:

el tudjuk indtani s le tudjuk lltani a nyomtatkat; be- s ki tudjuk kapcsolni a nyomtatsi soraikat; t tudjuk rendezni az egyes sorokban tallhat munkkat.

Elszr is essen pr a fogalmakrl: ha a nyomtat lellt, akkor semmit sem fog kinyomtatni a sorbl. A felhasznlk tovbbra is kpesek munkkat kldeni, amik azonban egszen addig fognak vrakozni, amg a nyomtatt el nem indtjuk vagy a sort ki nem rtjk. Ha egy sort kikapcsolunk, akkor (a root kivtelvel) egyetlen felhasznl sem kpes munkkat kldeni a nyomtatnak. A bekapcsolt sorok kpesek csak munkt fogadni. A nyomtat elindthat kikapcsolt sorral is, ilyenkor egszen addig folytatja a munkk kinyomtatst, amg a sor ki nem rl. ltalnosan elmondhat, hogy az lpc(8) parancs hasznlathoz a root felhasznl jogosultsgaira van szksgnk. Az lpc(8) parancsot minden ms esetben csak a nyomtat llapotnak ellenrzsre vagy a megakadt nyomtat jraindtsra hasznlhatjuk.

270

Fejezet 9. Nyomtats Foglaljuk rviden ssze az lpc(8) parancsait. A legtbb parancs kiadshoz mg szksges egy nyomtatnv paramter megadsa is, amivel megnevezzk az utastani kvnt nyomtatt. Helyette hasznlhat az all sz is, amivel az /etc/printcap llomnyban szerepl sszes nyomtatt egyszerre utasthatjuk.
abort nyomtatnv

Az aktulis munka megszaktsa s a nyomtat lelltsa. Ha a nyomtatsi sort mg nem kapcsoltuk ki, a felhasznlk kldhetnek tovbbi munkkat.
clean nyomtatnv

A nyomtat knyvtrbl trljk a rgi llomnyokat. Esetenknt addhat, hogy bizonyos munkk llomnyait nem takartotta el az LPD, klnsen abban az esetben, amikor a nyomtats vagy az adminisztrls sorn keletkezett valamilyen hiba. Ez a parancs segt megtallni a nyomtatsi knyvtrbl mr kikopott llomnyokat s trli ezeket.
disable nyomtatnv

Az jonnan rkez munkk besorolsnak kikapcsolsa. Ha a nyomtat mg mkdik, akkor folytatni fogja a sorban mg bennmaradt munkk nyomtatst. A rendszergazda (a root) mg a kikapcsolt sorok esetn is kldhet munkkat. Ez a parancs valjban akkor hasznos, ha egy j nyomtat vagy egy j szr mkdst prblgatjuk: ilyenkor rdemes kikapcsolni a nyomtatsi sort s root felhasznlknt munkkat kldeni. A tbbi felhasznl a tesztels befejezsig nem tud majd munkkat kldeni, vagyis egszen addig, amg a nyomtatsi sort vissza nem kapcsoljuk az enable paranccsal.
down nyomtatnv zenet

A nyomtat zemen kvl helyezse. Lnyegben megegyezik egy disable s utna egy stop parancs kiadsval. Az zenet akkor jelenik meg, amikor a valaki megprblja lekrdezni a nyomtat llapott az lpc status paranccsal, vagy amikor megnzi a nyomtatsi sort az lpq(1) paranccsal.
enable nyomtatnv

A nyomtathoz tartoz nyomtatsi sor bekapcsolsa. A felhasznlk ezutn mr kpesek lesznek a nyomtatnak munkkat kldeni, azonban egszen addig nem nyomtatdik ki semmi, amg a nyomtat el nem indtjuk.
help parancsnv

Megmutatja a parancsnv parancshoz tartoz sgt. A parancsnv megadsa nlkl a rendelkezsre ll parancsok listjt kapjuk meg.
restart nyomtatnv

Elindtja a nyomtatt. A felhasznlk ezt a parancsot tudjk hasznlni abban az esetben, amikor valamilyen megmagyarzhatatlan okbl az LPD mkdse megll, viszont ezzel nem tudjk elindtani a stop vagy down parancsokkal lelltott nyomtatt. A restart parancs megegyezik az abort s a start egyms utni kiadsval.
start nyomtatnv

Elindtja a nyomtatt, s a nyomtat nekilt kinyomtatni a sorban lev munkkat.

271

Fejezet 9. Nyomtats
stop nyomtatnv

Lelltja a nyomtatt, s a nyomtat az aktulis munka befejezse utn mr nem kezd neki jabbnak. Ettl fggetlenl a felhasznlk mg tovbbra is kpesek munkkat kldeni a nyomtatsi sorba.
topq nyomtatnv munka-vagy-felhasznlnv

trendezi a nyomtatnv nev nyomtat sort gy, hogy a megadott azonostj munkt vagy a megadott felhasznlnvhez tartoz munkkat a sor elejre teszi. Ennl a parancsnl nyomtatnvnek nem adhatjuk meg az all rtket.
up nyomtatnv

zembe helyezi a nyomtatt, tulajdonkppen a down parancs ellentte. Megegyezik egy egyms utn kiadott start s enable paranccsal. Az lpc(8) a fenti parancsokat a parancssorbl fogadja el. Ha itt nem adunk meg neki semmilyen parancsot, akkor az lpc(8) interaktv mdba vlt, ahol ugyanezeket a parancsokat adhatjuk ki, egszen az exit, quit parancsok vagy az llomnyvge jelzs begpelsig.

9.6. Ms nyomtatsi rendszerek


Ha derekasan vgigolvastuk eddig ezt a fejezetet, akkor mostanra mr valsznleg mindent tudunk a FreeBSD-ben tallhat LPD nyomtatsi rendszerrl. Ezzel egytt tisztban vagyunk a hinyossgaival is, aminek kapcsn termszetes mdon felmerlhet bennnk a krds: Milyen ms (FreeBSD-vel is mkdni kpes) nyomtatsi rendszerek lteznek mg? LPRng Az LPRng, aminek jelentse LPR Next Generation (Az LPR kvetkez genercija), a PLP teljesen jrart vltozata. Patrick Powell s Justin Mason (a PLP eredeti karbantartja) egyttes munkjnak gymlcse az LPRng. Az LPRng honlapja: http://www.lprng.org/. CUPS A CUPS, vagy ms nven a Common UNIX Printing System (Kzs UNIX-os nyomtatsi rendszer), egy hordozhat nyomtatsi rteg nyjt a UNIX-alap opercis rendszerek szmra. Az Easy Software Products fejlesztse s szinte az sszes UNIX gyrt s felhasznl szemben elfogadott szabvnyos nyomtatsi rendszer. A CUPS a nyomtatsi munkk s sorok kezelst az internetes nyomtatsi protokollon (Internet Printing Protocol, IPP) hasznlatval oldja meg. Cskkentett kpessgekkel ugyan, de a sornyomtat dmon (Line Printer Daemon, LPD), szerverzenet-blokk (Server Message Block, SMB), s AppSocket (ms nven JetDirect) protokollokat is ismeri. A CUPS a komolyabb UNIX-os nyomtatsi feladatokhoz ezeken fell mg a hlzati nyomtatk kzti vlasztst s PostScript nyomtatk lersn (PostScript Printer Description, PPD) alapul nyomtatsi belltsokat is tmogatja. A CUPS honlapja: http://www.cups.org/. HPLIP A HPLIP, msnven HP Linux Imaging and Printing, egy HP ltal kidolgozott programcsald, amely tmogatja a HP eszkzk nyomtatsi, lapolvassi s faxolsi lehetsgeit. A benne tallhat programok bizonyos

272

Fejezet 9. Nyomtats nyomtatsi feladatokhoz backendknt a CUPS nyomtatsi rendszert hasznljk. A HPLIP honlapja a http://hplipopensource.com/hplip-web/index.html cmen rhet el.

9.7. Hibakeress
Miutn az lptest(1) programmal elvgeztnk nhny egyszer prbt, a vrt helyett a kvetkezk egyikt kaphatuk eredmnyl: Egy kis id utn minden remekl mkdtt, vagy nem dobta ki az egsz lapot. A nyomtat nyomtatott egy keveset, aztn egy ideig csendben maradt s nem csinlt semmit. Ilyenkor a nyomtatnivalk megjelenshez minden bizonnyal meg kell nyomnunk a nyomtatn lev PRINT REMAINING vagy FORM FEED felirat gombokat. Ebben az esetben a nyomtat valsznleg mg arra vrt, hogy mg a nyomtats megkezdse eltt rkezik valamilyen tovbbi adat. Ettl a gondtl gy szabadulhatunk meg, ha belltunk egy szvegszrt, amely minden (szksges) esetben kld egy FORM FEED (lapdobs) jelzst is a nyomtatnak. Ez kell ltalban ahhoz, hogy a szveg a nyomtat bels pufferben megmaradt rsze azonnal kinyomtatdjon. Akkor is a javunkra vlhat ez, ha minden egyes munkt kln lapon akarunk kezdeni, mivel gy a kvetkez munka sosem kzvetlenl ott kezddik, ahol az elz munka befejezte a nyomtatst. A /usr/local/libexec/if-simple szr helyett a kvetkez szkript hasznlhatval tudunk minden munka utn elkldeni egy lapdobst:
#!/bin/sh # # if-simple - Egyszer lpd szvegszr # Helye: /usr/local/libexec/if-simple # # Egyszeren tmsolja a szabvny bemenetet a szabvny kimenetre, # s figyelmen kvl hagyja az sszes tbbi paramtert. # Minden nyomtatsi munka utn kld egy lapdobst (\f). /bin/cat && printf "\f" && exit 0 exit 2

Lpcssen jelentek meg a sorok. Ekkor a kvetkezt ltjuk a lapon:


!"#$%&()*+,-./01234 "#$%&()*+,-./012345 #$%&()*+,-./0123456

Az n. lpcshats ldozatv vltunk, amelyet a sortrst jelz karakter eltr rtelmezsei okoznak. A UNIX stlus opercis rendszerek erre mindssze egyetlen karaktert hasznlnak: ez a 10-es kd ASCII karakter (sordobs, Line Feed, LF). Az MS-DOS, OS/2 s msok pedig kt karakterrel oldjk meg ezt a feladatot: a 10-es s 13-as kd (kocsivissza, Carriage Return, CR) ASCII karakterekkel. A sortrseknl sok nyomtat az MS-DOS szoksait kveti. Amikor a FreeBSD-vel nyomtatunk, akkor csak egyetlen karaktert hasznlunk sortrsre. Ennek lttn a nyomtat lpteti a sort, azonban a fej vzszintes pozcijt nem vltoztatja meg a kvetkez sor nyomtatsnak

273

Fejezet 9. Nyomtats megkezdsekor. Erre lenne a kocsivissza karakter, vagyis ennek hatsra fogja a nyomtat a papr bal oldalra visszalltani a kvetkez nyomtatand karakter pozcijt. A FreeBSD gy szeretn utastani a nyomtatt: A nyomtat kocsivisszt kap A nyomtat sordobst kap Nhny mdszer ennek kivltsra:

A nyomtat visszalpteti a pozcit A nyomtat j sort kezd

A nyomtatn tallhat kapcsolk vagy vezrlpanel segtsgvel prbljuk meg tlltani a vezrlkarakterek nyomtat szerinti rtelmezst. Keressk meg a nyomtat kziknyvben, hogyan tudjuk ezt megcsinlni.
Megjegyzs: Ha a FreeBSD mellett ms opercis rendszerekkel is hasznlni akarjuk a nyomtatt, akkor azok indtsa eltt mindig t kell lltani a nyomtatt a megfelel rtelmezs alkalmazsra. Ilyenkor valsznleg a lentebb szerepl megoldsokat rszestjk majd inkbb elnyben.

lltsuk be gy a FreeBSD soros vonali meghajtjt, hogy magtl alaktsa t az LF karaktereket CR+LF prokk. Termszetesen ez a megolds csak a soros portra csatlakoz nyomtatk esetben mkdhet. Ehhez az /etc/printcap llomnyban a nyomtat lersnl az ms# tulajdonsgnl adjuk meg az onlcr mdot. Kldjnk olyan kdot a nyomtatnak, amelynek hatsra ideiglenesen mshogy fogja kezelni az LF karaktereket. Nzzk meg a nyomtathoz mellkelt tmutatban, hogy milyen kdokat tudunk ilyen clra hasznlni. Ha talltunk ilyen kdot, akkor rjuk t gy a hozztartoz szvegszrt, hogy a munkk eltt mindig elkldjk azt. Most bemutatjuk egy olyan szvegszr kdjt, amely a Hewlett-Packard PCL kdjait ismer nyomtatkhoz kszlt. Ebben a szrben elszr kiadjuk, hogy az LF karaktereket LF s CR karakterek kombincijnak tekintse a nyomtat, majd elkldjk magt a munkt, s a munka utols lapja utn pedig elkldnk egy lapdobst. Szinte az sszes Hewlett Packard nyomtatval mkdnie kell.
#!/bin/sh # # hpif - Egyszer lpd bemeneti szr a HP-PCL alap nyomtatkhoz # Helye: /usr/local/libexec/hpif # # Egyszeren tmsolja a szabvny kimenetet a szabvny bemenetre, s # figyelmen kvl hagyja a paramtereket. Elkldi a nyomtatnak, hogy # az LF karaktereket CR+LF-knt kezelje, majd a feladat befejeztvel # lapot dobat. printf "\033&k2G" && cat && printf "\033&l0H" && exit 0 exit 2

Pldaknt megadjuk mg az orchid nev szmtgp /etc/printcap llomnyt is. Ebben egyetlen nyomtat csatlakozik a prhuzamos portra, amelynek a tpusa LaserJet 3Si s a neve teak. Az elbb bemutatott szvegszrt hasznlja:
# # # /etc/printcap (orchid)

274

Fejezet 9. Nyomtats
teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\ :lp=/dev/lpt0:sh:sd=/var/spool/lpd/teak:mx#0:\ :if=/usr/local/libexec/hpif:

Egymsra rja a sorokat. A nyomtat nem lpteti a sorokat, ezrt az sszes sor egymson jelenik meg. Ez pontosan a ritka ellentte a fentebb lert lpcshatsnak. A FreeBSD ltal sortrsre hasznlt LF karakterek valamirt CR karakterekknt viselkednek, ezrt a nyomtat nem sort vlt, hanem a lap bal szlre lltja a fejet. A nyomtatn tallhat kapcsolkkal vagy vezrlpanellel gy lltsuk be az sordobs s kocsivissza karakterek rtelmezst: Amit a nyomtat kap CR LF Arra a nyomtat nyomtat CR CR + LF

A nyomtat elhagy karaktereket. Mikzben nyomtatunk, a nyomtat bizonyos karaktereket nem hajland megjelenteni. A problma ennl nagyobb, ha a nyomtat mkdse kzben egyre tbb s tbb karaktert hagy ki. Itt az a gond, hogy a nyomtat nem kpes tartani az iramot a szmtgp ltal a soros vonalon tkldtt adatok sebessgvel (ez a problma nem jelentkezhet a prhuzamos nyomtatk esetn). Kt mdon kerekedhetnk fell ezen:

Ha a nyomtat ismeri a XON/XOFF tpus forgalomirnytst, akkor az ms# tulajdonsgnl adjuk meg a FreeBSD szmra az ixon belltst. Ha a nyomtat ismeri a Request to Send / Clear to Send alap hardveres kzfogst (ms nven RTS/CTS forgalomirnytst), akkor az ms# tulajdonsgnl a crtscts belltst adjuk meg. Gondoskodjunk rla, hogy a szmtgpet s a nyomtat sszekt kbel meg tudjon majd brkzni ezzel a tpus forgalomirnytssal.

Mindenfle szemetet nyomtat. A nyomtat nem a nyomtatni kvnt szveget hozza ltre, hanem ssze-vissza nyomtat. Ez a soros nyomtatk helytelen kommunikcis belltsnak egy msik jellemz tnete. Ellenrizzk a br tulajdonsgnl megadott adattviteli sebessget s az ms# tulajdonsgnl megadott paritsi belltsokat. Egyeztessk a nyomtat sajt s az /etc/printcap llomnyban trolt belltsait. Semmi sem trtnik. Ha semmi sem trtnt, akkor a gond magval a FreeBSD-vel lehet, nem pedig a hardverrel. Az /etc/printcap llomnyba a vizsglni kvnt nyomtat lershoz (az lf tulajdonsggal) illessznk be naplzst. Pldul gy fog kinzni a rattan nev nyomtat bejegyzse az lf tulajdonsg megadsval kibvtve:
rattan|line|diablo|lp|Diablo 630 Line Printer:\ :sh:sd=/var/spool/lpd/rattan:\

275

Fejezet 9. Nyomtats
:lp=/dev/lpt0:\ :if=/usr/local/libexec/if-simple:\ :lf=/var/log/rattan.log

Miutn ezt megcsinltuk, prblkozzunk jra. Nzzk meg a naplllomnyban (ami a pldnkban a /var/log/rattan.log nevn rhet el), hogy ltunk-e valamilyen hibazenetet. Az itt tapasztalt hibazenetek nyomn elindulva igyekezznk megszntetni a problma forrst. Ha nem adjuk meg az lf tulajdonsgot, akkor az LPD erre a clra alaprtelmezs szerint a /dev/console llomnyt hasznlja.

276

Fejezet 10. Binris Linux kompatibilits


tdolgozta s egyes rszeit aktualizlta: Jim Mock. Eredetileg rta: Brian N. Handy s Rich Murphey.

10.1. ttekints
A FreeBSD szmos ms UNIX-szer opercis rendszerhez nyjt binris kompatibilitst, kztk a Linuxhoz is. Elcsodlkozhatnnk rajta, hogy vajon mirt kell tudnia a FreeBSD-nek Linux binrisokat futtatnia? A vlasz erre nagyon egyszer. Rengeteg cg s fejleszt kizrlag csak Linuxra fejleszt, hiszen ez mostansg egy nagyon izgalmas tma az informatika vilgban. Emiatt azonban a FreeBSD kzssgnek kln gyzkdnie kell ezeket a cgeket s fejlesztket, hogy ksztsk el a termkeik natv FreeBSD-s vltozatt. Ezzel az a gond, a legtbb ilyen cg egyszeren nem veszi szre, hogy ha ltezne a termkknek FreeBSD-re rt vltozata, akkor mg tbben hasznlnk. gy tovbbra is csak Linuxra fejlesztenek. Mit tudnak tenni ilyenkor a FreeBSD hasznli? Nos, ekkor jn jl a FreeBSD binris szint kompatibilitsa. Dihjban gy tudnnk sszefoglalni, hogy ennek ksznheten a FreeBSD felhasznlk kpesek a linuxos alkalmazsok kzel 90%-t mindenfle tovbbi mdosts nlkl futtatni. gy teht hasznlhat a StarOfce, Netscape Linux vltozata, az Adobe Acrobat, RealPlayer, VMware, Oracle, WordPerfect, Doom, Quake, s mg sok minden ms. St, egyes tapasztalatok szerint bizonyos helyzetekben a FreeBSD ltal futtatott Linux binrisok sokkal jobban teljestenek, mint Linux alatt. Azonban vannak olyan Linuxra jellemz, az opercis rendszer szintjn meghzd eszkzk, amelyek FreeBSD alatt nem hasznlhatak. FreeBSD-n nem fognak mkdni azok a Linux binrisok, amelyek tlzottan kihasznljk az olyan i386-os rendszerhvsokat, mint pldul a virtulis 8086 md. A fejezet elolvassa sorn megismerjk:

hogyan engedlyezzk rendszernkn a Linux kompatibilitst; hogyan teleptsnk linuxos osztott knyvtrakat; hogyan teleptsnk linuxos alkalmazsokat a FreeBSD rendszernkre; a FreeBSD Linux kompatibilitsnak implementcis rszleteit.

A fejezet elolvasshoz ajnlott:

kls szoftverek teleptsnek ismerete (4 fejezet).

10.2. Telepts
A binris Linux kompatibilits alaprtelmezs szerint nem engedlyezett. Legknnyebben gy tudjuk elrhetv tenni, ha betltjk a linux nev KLD modult (Kernel LoaDable). Ehhez root felhasznlknt a kvetkezket kell begpelni:
# kldload linux

Ha minden egyes rendszerindts sorn engedlyezni szeretnnk a binris kompatibilitst, akkor tegyk bele az /etc/rc.conf llomnyba ezt a sort:

277

Fejezet 10. Binris Linux kompatibilits


linux_enable="YES"

A modul betltdst a kldstat(8) paranccsal tudjuk ellenrizni:


% kldstat

Id Refs Address Size 1 2 0xc0100000 16bdb8 7 1 0xc24db000 d000

Name kernel linux.ko

Ha valamirt nem akarjuk vagy nem ppen nem tudjuk betlteni a modult, akkor a binris Linux kompatibilitst az options COMPAT_LINUX belltssal be is tudjuk pteni a rendszermagba. Ennek pontos menett a 8 fejezetben talljuk meg.

10.2.1. Linuxos futtatknyvtrak teleptse


A linuxos knyvtrakat kt mdon is felrakhatjuk: egyrszt a linux_base port teleptsvel, msrszt manulisan.

10.2.1.1. A knyvtrak teleptse a linux_base porttal


A futtatknyvtrakat a lehet legegyszerbben a emulators/linux_base porton keresztl tudjuk telepteni. Teljesen gy trtnik, mint a Portgyjtemny (/usr/ports/) akrmelyik msik portjnak teleptse. Csupn ennyit kell bernunk:
# cd /usr/ports/emulators/linux_base-f10 # make install distclean

Megjegyzs: A FreeBSD 8.0 kiadst megelz vltozataiban az emulators/linux_base-f10 port helyett az emulators/linux_base-fc4 portot hasznljuk.

A telepts vgeztvel kaptunk is egy mkd binris Linux kompatibilitst, habr egyes programok mg panaszkodhatnak a rendszerknyvtrak alverziit illeten. ltalnossgban vve ez azonban nem okoz nagyobb gondot.
Megjegyzs: A emulators/linux_base portnak tbb vltozata is hasznlhat, melyek az egyes Linux disztribciknak feleltethetek meg. Ilyenkor mindig rdemes kzlk azt vlasztani, amelyik a leginkbb megfelel a telepteni kvnt linuxos alkalmazs ignyeinek.

10.2.1.2. A knyvtrak teleptse manulisan


Ha korbban mg nem teleptettk volna a Portgyjtemnyt, akkor egynileg kell felraknunk az egyes knyvtrakat. Kzlk azokra lesz szksgnk, amelyeket maga az alkalmazs is hasznlni akar, valamint a futsidej linkerre. Emellett mg a FreeBSD rendszerkn lev Linux binrisok szmra a /compat/linux knyvtrban ltre kell hoznunk a gykr n. rnykknyvtrt is. A FreeBSD alatt elindtott Linux programok elszr ebben a knyvtrban fogjk keresni a hozzjuk tartoz osztott knyvtrakat. gy teht, amikor egy linuxos program betlti pldul a /lib/libc.so fggvnyknyvtrat, akkor a FreeBSD elszr a /compat/linux/lib/libc.so

278

Fejezet 10. Binris Linux kompatibilits llomnyt prblja meg megnyitni, majd ha az nem ltezik, akkor a /lib/libc.so llomnyt. Az osztott knyvtrak ezrt a /compat/linux/lib rnykknyvtrba teleptendek, s nem oda, ahova a linuxos ld.so mutat. ltalnossgban szlva eleinte elg csak azokat az osztott knyvtrakat megkeresni s felrakni, amelyekre a teleptend linuxos alkalmazsunknak tnylegesen szksge van. Egy id utn gyis sszegylnek azok a fontosabb fggvnyknyvtrak, amelyek segtsgvel mr minden tovbbi rfordts nlkl futtatni tudjuk a frissen importlt programokat.

10.2.1.3. Hogyan teleptsnk jabb osztott knyvtrakat?


Mit tegynk, ha az emulators/linux_base port teleptse utn az alkalmazs mg mindig kvetel nhny hinyz osztott knyvtrat? Honnan tudhatjuk meg, hogy milyen osztott knyvtrak kellenek majd egy Linux binris hasznlathoz s honnan szerezzk be ezeket? Erre alapvetn kt lehetsgnk van (az utastsokat root felhasznlknt kell majd vgrehajtanunk). Ha hozzfrnk egy Linux rendszerhez, akkor szedjk ssze az alkalmazsunk futtatshoz szksges osztott knyvtrakat s msoljuk ezeket a FreeBSD partcijra. Pldul: Tegyk fel, hogy FTP-n keresztl leszedtk a Doom Linux vltozatt s felraktuk egy ltalunk elrhet Linux rendszerre. Az ldd linuxdoom parancs segtsgvel ki tudjuk derteni, milyen osztott knyvtrak kellenek majd neknk:
% ldd linuxdoom

libXt.so.3 (DLL Jump 3.1) => /usr/X11/lib/libXt.so.3.1.0 libX11.so.3 (DLL Jump 3.1) => /usr/X11/lib/libX11.so.3.1.0 libc.so.4 (DLL Jump 4.5pl26) => /lib/libc.so.4.6.29

Az utols oszlopban lev llomnyokat msoljuk t, tegyk ezeket a /compat/linux knyvtrba, s hozzunk ltre az els oszlopban szerepl szimbolikus linkeket. gy teht a kvetkez llomnyok kellennek:
/compat/linux/usr/X11/lib/libXt.so.3.1.0 /compat/linux/usr/X11/lib/libXt.so.3 -> libXt.so.3.1.0 /compat/linux/usr/X11/lib/libX11.so.3.1.0 /compat/linux/usr/X11/lib/libX11.so.3 -> libX11.so.3.1.0 /compat/linux/lib/libc.so.4.6.29 /compat/linux/lib/libc.so.4 -> libc.so.4.6.29

Megjegyzs: Ha mr rendelkeznk az ldd kimenetnek els oszlopban szerepl fverziszm osztott knyvtr, akkor nem kell tmsolni az utols oszlopban lev llomnyokat, hiszen gy is mkdnie kellene mindennek. Ha viszont egy jabb vltozattal tallkozunk, akkor rdemes mgis inkbb tmsolni. Miutn a szimbolikus linkeket tirnytottuk az j vltozatra, a rgit akr trlhetjk is. Ha pldul ezek a knyvtrak elrhetek a rendszernkn:
/compat/linux/lib/libc.so.4.6.27 /compat/linux/lib/libc.so.4 -> libc.so.4.6.27

szrevesszk, hogy az ldd kimenetben az j binris egy jabb vltozatot ignyel:


libc.so.4 (DLL Jump 4.5pl26) -> libc.so.4.6.29

Ha csak az utols jegyben marad le valamivel a verziszm, akkor nem klnsebben aggdnunk a /lib/libc.so.4.6.29 miatt sem, hiszen a programnak egy picivel korbbi verzival is remekl kellene tudnia mkdnie. Termszetesen, ha akarjuk, ettl fggetlnl lecserlhetjk a libc.so llomnyt, ami ezt eredmnyezi:

279

Fejezet 10. Binris Linux kompatibilits


/compat/linux/lib/libc.so.4.6.29 /compat/linux/lib/libc.so.4 -> libc.so.4.6.29

Megjegyzs: A szimbolikus linkek karbantartsa csak a Linux binrisok esetn szksges. A FreeBSD sajt futsidej linkere magtl megkeresi a megfelel fverziszm knyvtrakat, ezrt emiatt ltalban nem kell aggdni.

10.2.2. Linux ELF binrisok teleptse


Az ELF binrisok futtatsa eltt nha mg szksg van a megblyegzs (branding) hasznlatra is. Ha egy blyegezetlen ELF binrist akarunk elindtani, akkor a kvetkez hibazenetet kapjuk:
% ./egy-linux-elf-binris

ELF binary type not known Abort

A FreeBSD rendszermagjnak a brandelf(1) paranccsal tudunk segteni a FreeBSD s a Linux binrisainak megklnbztetsben.
% brandelf -t Linux egy-linux-elf-binris

A GNU ltal fejlesztett eszkzk manapsg mr automatikusan elhelyezik az ELF binrisok azonostshoz szksges blyegeket, ezrt ez a lps a jvben egyre inkbb feleslegess vlik.

10.2.3. Tetszleges RPM formtum csomag teleptse


A FreeBSD a teleptett (akr linuxos) alkalmazsok nyomonkvetsre sajt csomagadatbzissal rendelkezik, amelynek kvetkezben a Linux ltal felknlt RPM adatbzisokat nem tmogatja. Ennek ellenre akrmelyik RPM alap Linux alkalmazs telepthet rendszernkre a kvetkez mdon:
# cd /compat/linux # rpm2cpio -q < /a/linuxos/allomny.helye.rpm | cpio -id

Ezt kveten a brandelf(1) segtsgvel lltsuk be az ELF binrisokat (knyvtrakat viszont ne!) megfelel tpusra. Ekkor ugyan nem lesznk kpesek rendesen eltvoltani az gy teleptett szoftvert, de ez a mdszer tesztelshez megfelel.

10.2.4. A nvfelold belltsa


Ha a nvfelolds (DNS) valamirt nem mkdne, vagy egy ehhez hasonl zenetet kapunk:

280

Fejezet 10. Binris Linux kompatibilits


resolv+: "bind" is an invalid keyword resolv+: "hosts" is an invalid keyword

Akkor az /compat/linux/etc/host.conf llomnyba be kell illesztennk a kvetkez sorokat:


order hosts, bind multi on

Az itt megszabott sorrend szerint elszr a /etc/hosts llomnyt nzi t, s majd csak ezutn prblja meg feloldani a nevet. Ha a /compat/linux/etc/host.conf llomny nem ltezik, akkor a linuxos alkalmazs a FreeBSD /etc/host.conf llomnyt tallja meg, s panaszkodni fog a FreeBSD eltr formtumra. Tvoltsuk el a bind szcskt, ha nem lltottunk be nvszervert az /etc/resolv.conf llomnyhoz.

10.3. A Mathematica teleptse


A Mathematica 5.X verzijhoz igaztotta: Boris Hollas. Ebben a szakaszban megismerhetjk, hogyan teleptsk a Mathematica 5.X Linux vltozatt FreeBSD rendszerekre. A Mathematica vagy a Mathematica for Students linuxos vltozatai kzvetlenl megrendelhetek a fejleszttl: http://www.wolfram.com/.

10.3.1. A Mathematica teleptjnek elindtsa


Elszr is jeleznnk kell a FreeBSD-nek, hogy a Mathematica binrisai a linuxos ABI-t (Appplication Binary Interface) fogjk hasznlni. Itt legknnyebben gy jrhatunk el, ha egyszeren belltjuk, hogy a rendszer a blyegezetlen ELF binrisokat automatikusan Linux binrisoknak tekintse:
# sysctl kern.fallback_elf_brand=3

Ennek ksznheten a FreeBSD most mr az sszes blyegezetlen ELF binris esetn a linuxos ABI-t fogja hasznlni, s gy a teleptt akr mr kzvetlenl a CD-rl is indthatjuk. Most msoljuk t a MathInstaller nev llomnyt a merevlemeznkre:
# mount /cdrom # cp /cdrom/Unix/Installers/Linux/MathInstaller helyi_knyvtr

Az llomnyban cserljk ki az els sorban tallhat /bin/sh hivatkozst a /compat/linux/bin/sh hivatkozsra. Ezzel biztosthatjuk be, hogy a teleptt a linuxos sh(1) fogja elindtani. Ezutn a kedvenc szvegszerkesztnkkel vagy a kvetkez szakaszban tallhat szkript segtsgvel helyettestsk benne a Linux) szveg sszes elfordulst a FreeBSD) szveggel. Mivel a Mathematica teleptje az uname -s parancsra kapott vlaszbl llaptja meg az opercis rendszer tpust, ezrt ezzel a mdostssal a FreeBSD-t is a Linuxhoz hasonl mdon fogja kezelni. A MathInstaller elindtsa utn most mr telepthet a Mathematica.

281

Fejezet 10. Binris Linux kompatibilits

10.3.2. A Mathematica llomnyainak mdostsa


A Mathematica teleptse sorn ltrejtt szkripteket a hasznlatuk eltt t kell rnunk. Amennyiben a Mathematicahoz tartoz programokat a /usr/local/bin knyvtrba teleptettk, akkor itt tallunk kell a math, mathematica, Mathematica s MathKernel llomnyokra mutat szimbolikus linkeket. Ezek mindegyikben cserljk ki a Linux) karakterlncot a FreeBSD) szvegre a kedvenc szvegszerkesztnkkel vagy az albbi szkripttel:
#!/bin/sh cd /usr/local/bin for i in math mathematica Mathematica MathKernel do sed s/Linux)/FreeBSD)/g $i > $i.tmp sed s/\/bin\/sh/\/compat\/linux\/bin\/sh/g $i.tmp > $i rm $i.tmp chmod a+x $i done

10.3.3. A Mathematica jelszavnak megszerzse


A Mathematica els indtsa sorn krni fog egy jelszt. Ha mg nem krtnk volna jelszt a fejleszttl, akkor a szmtgpnk azonostjnak (machine ID) megllaptshoz indtsuk el a telepts knyvtrban tallhat mathinfo nev programot. Ez az azonost lnyegben az elsdleges Ethernet krtynk MAC-cme lesz, ezrt a Mathematica nem futtathat tbb szmtgpen. Amikor e-mailen, telefonon vagy faxon keresztl regisztrljuk a termket a Wolframnl, akkor meg kell adnunk nekik ezt az azonostt machine ID nven, amire k elkldik a hozztartoz jelszt.

10.3.4. A Mathematica frontendjnek futtatsa hlzaton keresztl


A Mathematica a szabvnyos betkszletekkel meg nem jelenthet szimblumokhoz (integrljelek, szummk, grg betk, matematikai jellsek stb.) hasznl nhny olyan specilis bettpust, amelyek nem minden esetben llnak rendelkezsre. A X ltal hasznlt protokoll miatt ezeket a bettpusokat helyben kell telepteni. Ennek rtelmben a Mathematica CD-jn tallhat bettpusokat teleptennk kell a szmtgpnkre is. A CD-n ezeket ltalban a /cdrom/Unix/Files/SystemFiles/Fonts knyvtrban talljuk meg, vagy a merevlemezen a /usr/local/mathematica/SystemFiles/Fonts knyvtrban. Ezen bell pedig a Type1 s X alknyvtrakra van szksgnk. Az albbiakban lertak szerint tbb mdon is hasznlhatjuk ezeket. Az egyik ilyen mdszer, ha tmsoljuk az imnt emltett knyvtrakat a tbbi mell, vagyis a /usr/X11R6/lib/X11/fonts knyvtrba. Ekkor szksgnk lesz mg a fonts.dir llomny trsra is, ahova fel kell vennnk a bettpusok neveit, majd ennek megfelelen az els sorban mdostanunk a knyvtrban tallhat bettpusok szmt. De ugyangy lefuttathatjuk ebben a knyvtrban a mkfontdir(1) parancsot is. Az a msik megolds, ha a knyvtrakat gy msoljuk t a /usr/X11R6/lib/X11/fonts helyre:
# # # # # cd /usr/X11R6/lib/X11/fonts mkdir X mkdir MathType1 cd /cdrom/Unix/Files/SystemFiles/Fonts cp X/* /usr/X11R6/lib/X11/fonts/X

282

Fejezet 10. Binris Linux kompatibilits


# # # # # cp Type1/* /usr/X11R6/lib/X11/fonts/MathType1 cd /usr/X11R6/lib/X11/fonts/X mkfontdir cd ../MathType1 mkfontdir

Most adjuk hozz az j knyvtrakat a bettpusok knyvtraihoz:


# xset fp+ /usr/X11R6/lib/X11/fonts/X # xset fp+ /usr/X11R6/lib/X11/fonts/MathType1 # xset fp rehash

Ha az Xorg szervert hasznljuk, akkor az xorg.conf llomnyban megadhatjuk ezen knyvtrak automatikus betltst is.
Megjegyzs: Az XFree86 tpus szerverek esetn az XF86Config kongurcis llomnyt kell mdostanunk.

Ha mg nincs /usr/X11R6/lib/X11/fonts/Type1 nev knyvtrunk, akkor a pldban szerepl MathType1 knyvtrat nyugodtan tnevezhetjk Type1 nevre.

10.4. A Maple teleptse


rta: Aaron Kaplan. Ksznet: Robert Getschmann. A Maple egy Mathematicahoz hasonl kereskedelmi alkalmazs. A hasznlathoz elszr meg kell vsrolni a http://www.maplesoft.com/ cmrl, majd a licenc megszerzshez ugyanott regisztrlni. FreeBSD-re a szoftvert a kvetkez egyszer lpseken keresztl tudjuk telepteni. 1. 2. 3. 4. Indtsuk el a termkhez mellkelt INSTALL nev szkriptet. Vlasszuk a teleptprogram ltal felknlt opcik kzl a RedHat cmkjt. A telepts clknyvtra legyen a /usr/local/maple. Ha eddig mg nem tettk volna meg, rendeljk meg a Maple licenct a Maple Waterloo Software-tl (http://register.maplesoft.com/) s msoljuk az /usr/local/maple/license/license.dat llomnyba. Az Maple-hz mellkelt INSTALL_LIC szkript elindtsval teleptsk a FLEXlm licenckezelt. A szervernek adjuk meg a szmtgpnk hlzati nevt. Javtsuk t a /usr/local/maple/bin/maple.system.type llomnyt a kvetkez mdon:
----- itt kezddik a mdosts --------Sun Jul 8 16:35:33 2001 *** maple.system.type.orig --- maple.system.type Sun Jul 8 16:35:51 2001 *************** *** 72,77 **** --- 72,78 ---# the IBM RS/6000 AIX case MAPLE_BIN="bin.IBM_RISC_UNIX" ;; + "FreeBSD"|\

283

Fejezet 10. Binris Linux kompatibilits


"Linux") # the Linux/x86 case # We have two Linux implementations, one for Red Hat and ----- mdosts vge -------------------

Vigyzzunk, hogy a "FreeBSD"|\ kezdet sor vgn nem szabad semmilyen tovbbi whitespace karakternek lennie. Ez a javts arra utastja a Maple-t, hogy FreeBSD-t Linux rendszerknt ismerje fel. A bin/maple szkript hvja a bin/maple.system.type szkriptet, ami pedig a uname -a hvssal prblja kiderteni a opercis rendszer nevt. Ettl fggen vlasztja ki, hogy milyen tpus binrisokat fog futtatni. 5. Indtsuk el a licenckezel szervert. A most kvetkez szkripttel knnyedn el tudjuk indtani az lmgrd programot. A szkriptet /usr/local/etc/rc.d/lmgrd.sh nven hozzuk ltre:
----- nyissz ----------#! /bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin PATH=${PATH}:/usr/local/maple/bin:/usr/local/maple/FLEXlm/UNIX/LINUX export PATH LICENSE_FILE=/usr/local/maple/license/license.dat LOG=/var/log/lmgrd.log case "$1" in start) lmgrd -c ${LICENSE_FILE} 2>> ${LOG} 1>&2 echo -n " lmgrd" ;; stop) lmgrd -c ${LICENSE_FILE} -x lmdown 2>> ${LOG} 1>&2 ;; *) echo "Usage: basename $0 {start|stop}" 1>&2 exit 64 ;; esac exit 0 ----- nyissz -----------

6.

Prbljuk meg elindtani a Maple-t:


% cd /usr/local/maple/bin % ./xmaple

Szerencss esetben innentl kezdve mr minden mkdik. s ne felejtsnk el rni a Maplesoftnak, hogy szeretnnk egy natv FreeBSD verzit a termkkbl!

284

Fejezet 10. Binris Linux kompatibilits

10.4.1. ltalnos buktatk

A FLEXlm licenckezelvel esetenknt nehz lehet elboldogulni. Errl tmrl bvebben a http://www.globetrotter.com/ cmen tallunk lersokat. Az lmgrd nagyon vlogats a licencllomnyokat illeten s brmilyen aprsgra kiakad. Egy szablyos licencllomny valahogy gy nz ki:
# ======================================================= # License File for UNIX Installations ("Pointer File") # ======================================================= SERVER chillig ANY #USE_SERVER VENDOR maplelmg FEATURE Maple maplelmg 2000.0831 permanent 1 XXXXXXXXXXXX \ PLATFORMS=i86_r ISSUER="Waterloo Maple Inc." \ ISSUED=11-may-2000 NOTICE=" Technische Universitat Wien" \ SN=XXXXXXXXX Megjegyzs: A sorozatszmot termszetesen eltvoltottuk. Itt a chillig a szmtgp neve.

Az itt megadott licencllomny remekl hasznlhat egszen addig a pontig, amg bkn hagyjuk a FEATURE kezdet sort (melyet a licenckulcs vd).

10.5. A MATLAB teleptse


rta: Dan Pelleg. Ez a lers azt mutatja be, hogyan teleptsk FreeBSD rendszerekre a MATLAB version 6.5 Linux vltozatt. A Java Virtual Machine (lsd 10.5.3 Szakasz) hasznlattl eltekintve meglepen jl mkdik. A MATLAB Linux vltozata kzvetlenl megrendelhet a The MathWorks-tl, a http://www.mathworks.com cmen. Ne felejtsk el beszerezni a licencllomnyt s az elksztshez szksges tmutatt. Ha mr gy is arra jrunk, jelezzk a fejlesztknek, hogy ignyt tartannk a termkk natv FreeBSD-s vltozatra is!

10.5.1. A MATLAB teleptse


A MATLAB teleptshez a kvetkezket kell tennnk: 1. Helyezzk be a teleptt CD-t s csatlakoztassuk. A teleptszkript javaslatnak megfelelen vltsuk t a root felhasznlra. A szbanforg szkript elindtshoz gpeljk be a kvetkezt:
# /compat/linux/bin/sh /cdrom/install

285

Fejezet 10. Binris Linux kompatibilits


Tipp: A telept grakus. Ha a megjelent hasznlatrl szl hibazeneteket kapunk, akkor adjuk ki a
setenv HOME ~FELHASZNL parancsot, ahol a FELHASZNL annak a felhasznlnak a neve legyen, amivel

az imnt meghvtuk a su(1) programot.

2.

Amikor a MATLAB knyvtrt kell megadnunk, ezt rjuk be: /compat/linux/usr/local/matlab.


Tipp: A telepts tovbbi rszeinek megknnytse rdekben rjuk be ezt a parancssorba: set
MATLAB=/compat/linux/usr/local/matlab

3.

Miutn megkaptuk a MATLAB licenct, az tmutats szerint szerkesszk t.


Tipp: A licencllomnyt a kedvenc szvegszerkesztnkkel akr mr korbban el is kszthetjk, s majd amikor a teleptnek szksge lesz r, msoljuk be $MATLAB/license.dat helyre.

4.

Futtassuk le a teleptst.

Ezzel befejezdtt a MATLAB hagyomnyos teleptse. Innentl mr csak a FreeBSD rendszer hozztapasztsn fogunk dolgozni.

10.5.2. A licenckezel elindtsa


1. Hozzunk ltre szimbolikus linkeket a licenckezel szkriptjeire:
# ln -s $MATLAB/etc/lmboot /usr/local/etc/lmboot_TMW # ln -s $MATLAB/etc/lmdown /usr/local/etc/lmdown_TMW

2.

Hozzunk ltre egy indtszkriptet /usr/local/etc/rc.d/flexlm.sh nven. A lentebb lthat minta a MATLABhoz mellkelt $MATLAB/etc/rc.lm.glnx86 llomny egy mdostott vltozata. Benne az llomnyok helyt s a licenckezel indtsnak krlmnyeit vltoztattuk meg (hogy Linux emulci alatt fusson).

#!/bin/sh case "$1" in start) if [ -f /usr/local/etc/lmboot_TMW ]; then /compat/linux/bin/sh /usr/local/etc/lmboot_TMW -u felhasznl && echo MATLAB_lmg fi ;; stop) if [ -f /usr/local/etc/lmdown_TMW ]; then /compat/linux/bin/sh /usr/local/etc/lmdown_TMW > /dev/null 2>&1 fi ;; ) * echo "Usage: $0 {start|stop}" exit 1 ;;

286

Fejezet 10. Binris Linux kompatibilits


esac exit 0 Fontos: Tegyk ezt az llomnyt vgrehajthatv:
# chmod +x /usr/local/etc/rc.d/flexlm.sh

A fenti szkriptben cserljk ki a felhasznl nevt a rendszernkben lev egyik felhasznl nevre (ami persze nem a root).

3.

A licenckezelt az albbi paranccsal indtsuk el:


# /usr/local/etc/rc.d/flexlm.sh start

10.5.3. A Java futtat krnyezet lestse


A Java futtat krnyezet (Java Runtime Environment, JRE) linkjt irnytsuk t egy FreeBSD alatt mkd vltozatra:
# cd $MATLAB/sys/java/jre/glnx86/ # unlink jre; ln -s ./jre1.1.8 ./jre

10.5.4. A MATLAB indtszkriptjnek elksztse


1. Hozzunk ltre egy ilyen indtszkriptet a /usr/local/bin/matlab knyvtrban:
#!/bin/sh /compat/linux/bin/sh /compat/linux/usr/local/matlab/bin/matlab "$@"

2.

Futtassuk le a chmod +x /usr/local/bin/matlab parancsot.


Tipp: A szkript lefutsa sorn a emulators/linux_base verzijtl fggen hibkat is kaphatunk. Ha el akarjuk kerlni ezeket, akkor szerkesszk t a /compat/linux/usr/local/matlab/bin/matlab llomny kvetkez sort:
if [ expr "$lscmd" : .*->.* -ne 0 ]; then

(a 13.0.1 szm verziban ez 410. sor) erre:


if test -L $newbase; then

287

Fejezet 10. Binris Linux kompatibilits

10.5.5. A MATLAB lellt szkriptjnek elksztse


A MATLAB szablytalan kilpseit az albbi utastsok nyomn tudjuk megszntetni. 1. Hozzunk ltre egy $MATLAB/toolbox/local/finish.m nev llomnyt, majd rjuk bele ezt a sort:
! $MATLAB/bin/finish.sh Megjegyzs: A $MATLAB szveget pontosan gy rjuk be.

Tipp: Ugyanebben a knyvtrban talljuk a belltsaink kilps eltti mentsrt felels finishsav.m s finishdlg.m llomnyokat. Ha ezek valamelyikt mdostjuk, akkor a elbbi parancsot kzvetlenl a save utn szrjuk be.

2.

Hozzunk ltre egy $MATLAB/bin/finish.sh llomnyt, amiben szerepeljen a kvetkez:


#!/usr/compat/linux/bin/sh (sleep 5; killall -1 matlab_helper) & exit 0

3.

Tegyk vgrehajthatv:
# chmod +x $MATLAB/bin/finish.sh

10.5.6. A MATLAB hasznlata


Most mr a matlab parancs begpelsvel brmikor elindthatjuk.

10.6. Az Oracle teleptse


rta: Marcel Moolenaar.

10.6.1. Elsz
Ez a lers azt mutatja be, hogyan teleptsk FreeBSD-re az Oracle 8.0.5 s Oracle 8.0.5.1 Enterprise Edition Linux vltozatait.

10.6.2. A Linux krnyezet teleptse


Teleptsk a emulators/linux_base s devel/linux_devtools portokat a Portgyjtemnybl. Amennyiben ennek sorn nehzsgekbe tkznnk, prblkozzunk a korbbi vltozataikkal.

288

Fejezet 10. Binris Linux kompatibilits Fel kell raknunk a Red Hat Tcl csomagjt is, ha az alkalmazshoz tartoz intelligens gynkt is futtatni szeretnnk. Ez a tcl-8.0.3-20.i386.rpm. A hivatalos RPM port segtsgvel az albbi ltalnos parancson keresztl tudunk csomagokat telepteni:
# rpm -i --ignoreos --root /compat/linux --dbpath /var/lib/rpm csomag

A csomag teleptsnek semmilyen hibt nem kellene okoznia.

10.6.3. Az Oracle krnyezetnek ltrehozsa


Az Oracle teleptshez elszr ki kell alaktanunk a megfelel krnyezetet. Ez a lers kifejezetten arrl szl, hogy FreeBSD-n hogyan futtassuk a linuxos Oracle-t, nem pedig az Oracle teleptsi tmutatjban bemutatottakat taglalja.

10.6.3.1. A rendszermag hangolsa


Ahogy a Oracle teleptsi tmutatjban is olvashatjuk, be kell lltanunk az osztott memria maximlis mrett. FreeBSD alatt erre a clra ne hasznljuk a SHMMAX rtket, mivel az SHMMAX az SHMMAXPGS s PGSIZE rtkekbl szmoldik ki. Ezrt neknk itt a SHMMAXPGS rtkt kell meghatroznunk. Minden egyb bellts trtnhet az tmutatban megadottak szerint. Pldul:
options options options options options options SHMMAXPGS=10000 SHMMNI=100 SHMSEG=10 SEMMNS=200 SEMMNI=70 SEMMSL=61

Hangoljuk be ezeket az rtkeket a Oracle tervezett hasznlathoz. Emellett a kongurcis llomnyban ne feledkezznk meg az albbi belltsok megadsrl sem:
options SYSVSHM #SysV osztott memria options SYSVSEM #SysV szemaforok options SYSVMSG #SysV folyamatok kzti kommunikci

10.6.3.2. Az Oracle hozzfrse


Egy rendes hozzfrshez hasonlan hozzunk ltre egy kln oracle hozzfrst is rendszernkn. Az oracle hozzfrs annyira klnleges, hogy csak linuxos parancsrtelmezt trstsunk hozz. Ehhez vegyk fel /compat/linux/bin/bash sort az /etc/shells llomnyba, majd lltsuk t az oracle nev felhasznl parancsrtelmezjt a /compat/linux/bin/bash programra.

10.6.3.3. Krnyezet
A megszokott Oracle krnyezeti vltozk, mint pldul a ORACLE_HOME s ORACLE_SID mellett mg denilnunk kell a kvetkezket is:

289

Fejezet 10. Binris Linux kompatibilits Vltoz


LD_LIBRARY_PATH CLASSPATH PATH

rtk
$ORACLE_HOME/lib $ORACLE_HOME/jdbc/lib/classes111.zip /compat/linux/bin /compat/linux/sbin /compat/linux/usr/bin /compat/linux/usr/sbin /bin /sbin /usr/bin /usr/sbin /usr/local/bin $ORACLE_HOME/bin

Javasoljuk, hogy az sszes krnyezeti vltozt a .profile llomnyban adjuk meg. Ennek megfelelen a plda belltsai gy fognak kinzni benne:
ORACLE_BASE=/oracle; export ORACLE_BASE ORACLE_HOME=/oracle; export ORACLE_HOME LD_LIBRARY_PATH=$ORACLE_HOME/lib export LD_LIBRARY_PATH ORACLE_SID=ORCL; export ORACLE_SID ORACLE_TERM=386x; export ORACLE_TERM CLASSPATH=$ORACLE_HOME/jdbc/lib/classes111.zip export CLASSPATH PATH=/compat/linux/bin:/compat/linux/sbin:/compat/linux/usr/bin PATH=$PATH:/compat/linux/usr/sbin:/bin:/sbin:/usr/bin:/usr/sbin PATH=$PATH:/usr/local/bin:$ORACLE_HOME/bin export PATH

10.6.4. Az Oracle teleptse


A Linux emultorban meghzd apr egyenletlensgek miatt a telepts eltt ltre kell hoznunk egy .oracle nev alknyvtrat a /var/tmp knyvtrban. Helyezzk ezt a oracle felhasznl tulajdonba. Ezt kveten minden tovbbi gond nlkl kpesek lesznk az Oracle teleptsre. Ha netaln mgis problmkba tkznnk, elszr mindig az Oracle teleptsi s kongurcis llomnyait ellenrizzk! Az Oracle teleptse utn rakjuk fel a kvetkez szakaszokban bemutatand javtsokat. Gyakran problmt okoz, ha a TCP protokollt mg nem teleptettk. Ennek kvetkezmnyekppen ugyanis nem tudnak elindulni a TCP alap szolgltatsok. Az albbi mveletek ebben igyekeznek segteni:
# # # # # # cd $ORACLE_HOME/network/lib make -f ins_network.mk ntcontab.o cd $ORACLE_HOME/lib ar r libnetwork.a ntcontab.o cd $ORACLE_HOME/network/lib make -f ins_network.mk install

Ne felejtsk el ismt elindtani a root.sh szkriptet!

10.6.4.1. A root.sh javtsa


Az Oracle teleptse sorn root (privilegizlt) felhasznlknt elvgzend mveleteket a root.sh elnevezs szkriptben talljuk. Ez a szkript a orainst knyvtrba kerl. A chown parancs helyes lefutshoz alkalmazzunk az albb mellkelt javtst, vagy az egsz szkriptet egy linuxos parancsrtelmezbl indtsuk el.

290

Fejezet 10. Binris Linux kompatibilits


*** orainst/root.sh.orig Tue Oct 6 21:57:33 1998 --- orainst/root.sh Mon Dec 28 15:58:53 1998 *************** *** 31,37 **** # This is the default value for CHOWN # It will redefined later in this script for those ports # which have it conditionally defined in ss_install.h ! CHOWN=/bin/chown # # Define variables to be used in this script --- 31,37 ---# This is the default value for CHOWN # It will redefined later in this script for those ports # which have it conditionally defined in ss_install.h ! CHOWN=/usr/sbin/chown # # Define variables to be used in this script

Ha nem CD-rl teleptjk az Oracle-t, akkor akr a root.sh forrst is kijavthatjuk. A neve rthd.sh, s a forrsfa
orainst knyvtrban tallhatjuk.

10.6.4.2. A genclntsh javtsa


A genclntsh szkript a kliensek ltal hasznlt osztott knyvtr ltrehozsra alkalmazhat. ltalban demk fordtshoz van r szksg. Az albbi javts alkalmazsval a PATH vltoz rtke trlhet:
*** bin/genclntsh.orig Wed Sep 30 07:37:19 1998 --- bin/genclntsh Tue Dec 22 15:36:49 1998 *************** *** 32,38 **** # # Explicit path to ensure that were using the correct commands #PATH=/usr/bin:/usr/ccs/bin export PATH ! PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH # # each product MUST provide a $PRODUCT/admin/shrept.lst --- 32,38 ---# # Explicit path to ensure that were using the correct commands #PATH=/usr/bin:/usr/ccs/bin export PATH ! #PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH # # each product MUST provide a $PRODUCT/admin/shrept.lst

10.6.5. Az Oracle futtatsa


Ha rendesen kvettk az imnti utastsokat, akkor most mr gy tudjuk futtatni az Oracle-t, mintha csak Linuxon futna.

291

Fejezet 10. Binris Linux kompatibilits

10.7. Az SAP R/3 teleptse


rta: Holger Kipp. Az eredeti verzit SGML-re ltette: Valentino Vaschetto. Az SAP tpus rendszerek teleptshez FreeBSD-re hivatalosan nem kaphatunk mszaki seglynyjtst csak a minstett plaformokat tmogatjk.

10.7.1. Elsz
Ez a lers az SAP R/3 rendszer s Oracle adatbzis Linux vltozatainak teleptst mutatja be FreeBSD-n, belertve a FreeBSD s az Oracle teleptst. Ktfle kongurcit runk le:

SAP R/3 4.6B (IDES) s Oracle 8.0.5, FreeBSD 4.3-STABLE SAP R/3 4.6C s Oracle 8.1.7, FreeBSD 4.5-STABLE

Habr ez a dokumentum igyekszik az sszes fontos lpst a lehet legrszletesebb mdon trgyalni, semmikppen sem clja az Oracle s az SAP R/3 alkalmazsokhoz mellkelt teleptsi tmutatk kivltsa. A kifejezetten az SAP vagy az Oracle Linux vltozataira vonatkoz krdsek, valamint az Oracle s az SAP OSS konkrt hasznlatval kapcsolatos lersok tekintetben a sajt dokumentcijukat olvassuk el.

10.7.2. A szoftver
Az SAP teleptshez az albbi CD-ket hasznltuk fel:

10.7.2.1. SAP R/3 4.6B, Oracle 8.0.5


Nv KERNEL RDBMS EXPORT1 EXPORT2 EXPORT3 EXPORT4 EXPORT5 EXPORT6 Szm 51009113 51007558 51010208 51010209 51010210 51010211 51010212 51010213 Lers SAP Kernel Oracle / telept / AIX, Linux, Solaris Oracle / RDBMS 8.0.5.X / Linux IDES / DB-Export / 1. lemez IDES / DB-Export / 2. lemez IDES / DB-Export / 3. lemez IDES / DB-Export / 4. lemez IDES / DB-Export / 5. lemez IDES / DB-Export / 6. (utols) lemez

Emellett mg hasznltuk az Oracle 8 Server (az elzetes 8.0.5 vltozat a Linux 2.0.33 verzijhoz) CD-jt is, amely igazbl nem felttlenl szksges, valamint a FreeBSD (a 4.3 RELEASE kiadsa utn nem sokkal lev) 4.3-STABLE vltozatt.

10.7.2.2. SAP R/3 4.6C SR2, Oracle 8.1.7

292

Fejezet 10. Binris Linux kompatibilits Nv KERNEL RDBMS EXPORT1 EXPORT1 EXPORT1 EXPORT1 LANG1 Szm 51014004 51012930 51013953 51013953 51013953 51013953 51013954 Lers SAP Kernel Oracle / SAP Kernel 4.6D vltozat / DEC, Linux Oracle 8.1.7/ RDBMS / Linux 4.6C kiads SR2 / Export / 1. lemez 4.6C kiads SR2 / Export / 2. lemez 4.6C kiads SR2 / Export / 3. lemez 4.6C kiads SR2 / Export / 4. (utols) lemez 4.6C kiads SR2 / Nyelvi tmogats / nmet, angol, francia / 1. lemez

A teleptend nyelvtl fggen egyb nyelvi tmogatst tartalmaz CD hasznlata is szksgess vlhat. Itt most csak a nmet s angol nyelveket hasznljuk, ezrt elegend az els CD. Csendben hozztesszk, hogy mind a ngy EXPORT CD szma megegyezik. Ugyangy a hrom nyelvi CD-nek is megegyeznek a szmai (ez eltr a 4.6B IDES kiads CD szmozstl). Az rs pillanatban a FreeBSD 4.5-STABLE (2002.03.20-i) vltozatt hasznljuk.

10.7.3. SAP fzetek


Az SAP R/3 teleptsvel kapcsolatban az albbi fzetek bizonyultak hasznosnak:

10.7.3.1. SAP R/3 4.6B, Oracle 8.0.5


Szm 0171356 0201147 0373203 0072984 0130581 0144978 0162266 Cm SAP Software on Linux: Essential Comments INST: 4.6C R/3 Inst. on UNIX - Oracle Update / Migration Oracle 8.0.5 --> 8.0.6/8.1.6 LINUX Release of Digital UNIX 4.0B for Oracle R3SETUP step DIPGNTAB terminates Your system has not been installed correctly Questions and tips for R3SETUP on Windows NT / W2K

10.7.3.2. SAP R/3 4.6C, Oracle 8.1.7


Szm 0015023 0045619 0171356 0195603 0212876 Cm Initializing table TCPDB (RSXP0004) (EBCDIC) R/3 with several languages or typefaces SAP Software on Linux: Essential Comments RedHat 6.1 Enterprise version: Known problems The new archiving tool SAPCAR

293

Fejezet 10. Binris Linux kompatibilits Szm 0300900 0377187 0387074 0387077 0387078 Cm Linux: Released DELL Hardware RedHat 6.2: important remarks INST: R/3 4.6C SR2 Installation on UNIX INST: R/3 4.6C SR2 Inst. on UNIX - Oracle SAP Software on UNIX: OS Dependencies 4.6C SR2

10.7.4. Hardverkvetelmnyek
Az albbi hardvereszkzk szksgesek az SAP R/3 rendszer teleptshez. Az les hasznlathoz ennl termszetesen valamivel tbb kell majd: Vltozat Processzor Memria Szabad hely a merevlemezen 4.6B Kt Pentium III 800MHz 1GB ECC 50 - 60GB (IDES) 4.6C Kt Pentium III 800MHz 2GB ECC 50 - 60GB (IDES)

les hasznlatra nagyobb gyorsttrral rendelkez Xeon processzorokat, nagysebessg httrtrakat (SCSI, hardveres RAID vezrlvel), USV s ECC memria modulok ajnlottak. A nagy trignyt egybknt az elre belltott IDES rendszer indokolja, ami egy 27 GB mret adatbzist hoz ltre a telepts sorn. Ez a terlet ltalban elegend egy frissen indul rendszer s hozztartoz alkalmazsadatok trolsra.

10.7.4.1. SAP R/3 4.6B, Oracle 8.0.5


A kvetkez hardverkongurcit hasznltuk: kt 800 MHz-es Pentium III processzor s a hozzjuk tartoz alaplap, egy Adaptec 29160 Ultra160 SCSI-vezrl (a 40/80 GB mret DLT szalagos meghajt s CD-meghajt hasznlathoz) s egy Mylex AcceleRAID RAID-vezrl (2 csatorna, 6.00-1-00 verzij rmware s 32 MB memria), amihez kt 17 GB-os (tkrztt) merevlemez s ngy 36 GB-os merevlemez (RAID 5) csatlakozik.

10.7.4.2. SAP R/3 4.6C, Oracle 8.1.7


Itt a hardver egy Dell PowerEdge 2500 volt: ktprocesszoros alaplap, kt darab 1000 MHz-es Pentium III processzorral (fejenknt 256 KB gyorsttrral), 2 GB PC133-as ECC SDRAM memrival, PERC/3 DC PCI RAID-vezrlvel (128 MB memria), valamint egy EIDE DVD-meghajtval. A RAID-vezrlre kt, egyenknt 18 GB mret merevlemezt (tkrzve) s ngy 36 GB mret merevlemezt csatlakoztattunk (RAID 5-ben).

10.7.5. A FreeBSD teleptse


Elszr is teleptennk kell a FreeBSD-t. Ez tbb mdon is lehetsges, ezekrl a 2.13 Szakaszban olvashatunk bvebben.

294

Fejezet 10. Binris Linux kompatibilits

10.7.5.1. A lemezek felosztsa


Az egyszersg kedvrt az SAP R/3 46B s SAP R/3 46C SR2 teleptse sorn is ugyanazt a felosztst hasznltuk. Egyedl az eszkzk nevei vltoztak, mivel a telepts eltr hardvereken trtnt (/dev/da) s /dev/amr, teht ha az AMI MegaRAID esetn a /dev/da0s1a helyett a /dev/amr0s1a eszkzt lthatjuk): llomnyrendszer
/dev/da0s1a /dev/da0s1b /dev/da0s1e /dev/da0s1f /dev/da1s1e /dev/da1s1f /dev/da1s1g

Mret (1 KB-os blokkokban) 1.016.303 2.032.623 8.205.339 45.734.361 2.032.623 2.032.623

Mret (GB-ban) 1 6 2 8 45 2 2

Csatlakozsi pont
/

lapozllomny
/var /usr /compat/linux/oracle /compat/linux/sapmnt /compat/linux/usr/sap

Elre lltsuk be s inicializljuk a kt logikai meghajtt a Mylex s a PERC/3 RAID-vezrlkn. A hozztartoz szoftver a BIOS indtsnak fzisban hvhat be. A lemezek felosztsa nmileg eltr az SAP ltal javasoltaktl, mivel az SAP szerint az Oracle knyvtrait (nhny msikkal egytt) kln-kln rdemes csatlakoztatni mi most az egyszersts kedvrt csak ltrehoztuk ezeket.

10.7.5.2. A make world s egy j rendszermag


Tltsk le a legfrissebb -STABLE forrsokat. Fordtsuk jra az sszes forrst (make world) s a belltsainak elvgzse utn a sajt rendszermagunkat is. Itt ne felejtsk el megadni az SAP R/3 s az Oracle mkdshez szksges paramtereket.

10.7.6. A Linux krnyezet teleptse


10.7.6.1. Az linuxos alaprendszer teleptse
Elsknt a linux_base portot kell felraknunk (root felhasznlknt):
# cd /usr/ports/emulators/linux_base-fc4 # make install distclean

10.7.6.2. A linuxos fejleszti krnyezet teleptse


Ha az Oracle-t FreeBSD-re a 10.6 Szakaszban lertak szerint akarjuk telepteni, akkor szksgnk lesz a linuxos fejleszteszkzkre is:
# cd /usr/ports/devel/linux_devtools # make install distclean

295

Fejezet 10. Binris Linux kompatibilits A linuxos fejlesztkrnyezetet csak az SAP R/3 46B IDES teleptsnl raktuk fel. Nincs r szksgnk, ha a FreeBSD rendszeren nem akarjuk jralinkelni az Oracle adatbzist. Pontosan ez a helyezet, amikor egy Linux rendszerhez gyrtott Oracle kszletet hasznlunk.

10.7.6.3. A szksges RPM csomagok teleptse


Az R3SETUP elindtshoz PAM tmogatsra is szksgnk lesz. Amikor elszr prbltuk meg telepteni a FreeBSD 4.3-STABLE vltozatra az SAP-t, felraktuk PAM-et s az sszes hozztartoz csomagot, majd vgl gy brtuk mkdsre, hogy knyszertettk a PAM teleptst is. Az SAP R/3 4.6C SR2 esetn szintn sikerlt nmagban felrakni a PAM RPM csomagjt is, teht gy nz ki, hogy a fggsgeit mr nem kell telepteni:
# rpm -i --ignoreos --nodeps --root /compat/linux --dbpath /var/lib/rpm \ pam-0.68-7.i386.rpm

Az Oracle 8.0.5 verzijhoz mellkelt intelligens gynk futtatshoz fel kell rakni a RedHat tcl-8.0.5-30.i386.rpm nev Tcl csomagjt is (msklnben a az Oracle teleptse kzben szksges jralinkels nem fog mkdni). Vannak ugyan egybknt is gondok az Oracle jralinkelsvel, azonban ez linuxos problma, nem pedig FreeBSD-s.

10.7.6.4. Nhny tovbbi tipp


Hasznos lehet, ha felvesszk a linprocfs bejegyzst az /etc/fstab llomnyba. Ennek pontos rszleteit a linprocfs(5) man oldalon talljuk meg. Msik fontos paramter a kern.fallback_elf_brand=3, amelyet az /etc/sysctl.conf llomnyba kell beszrnunk.

10.7.7. Az SAP R/3 krnyezetnek ltrehozsa


10.7.7.1. A szksges llomnyrendszerek s csatlakozsi pontok ltrehozsa
Egy egyszerbb teleptshez elg csupn a kvetkez llomnyrendszereket elkszteni: csatlakozsi pont
/compat/linux/oracle /compat/linux/sapmnt /compat/linux/usr/sap

mret GB-ban 45 GB 2 GB 2 GB

Ksztennk kell mg nhny linket is, klnben az SAP teleptje panaszkodni fogni az ellenrzsk sorn:
# ln -s /compat/linux/oracle /oracle # ln -s /compat/linux/sapmnt /sapmnt # ln -s /compat/linux/usr/sap /usr/sap

Az egyik ilyen telepts kzben megjelen hibazenet (a PRD rendszer s az SAP R/3 4.6C SR2 teleptse esetn):
INFO 2002-03-19 16:45:36 R3LINKS_IND_IND SyLinkCreate:200 Checking existence of symbolic link /usr/sap/PRD/SYS/exe/dbg to

296

Fejezet 10. Binris Linux kompatibilits


/sapmnt/PRD/exe. Creating if it does not exist... WARNING 2002-03-19 16:45:36 R3LINKS_IND_IND SyLinkCreate:400 Link /usr/sap/PRD/SYS/exe/dbg exists but it points to file /compat/linux/sapmnt/PRD/exe instead of /sapmnt/PRD/exe. The program cannot go on as long as this link exists at this location. Move the link to another location. ERROR 2002-03-19 16:45:36 R3LINKS_IND_IND Ins_SetupLinks:0 can not setup link /usr/sap/PRD/SYS/exe/dbg with content /sapmnt/PRD/exe

10.7.7.2. A felhasznlk s knyvtrak ltrehozsa


Az SAP R/3 rendszernek kt felhasznlra s hrom csoportra van szksge. Az ignyelt felhasznlk nevei az SAP rendszer azonostjtl (System ID, SID) fggenek, amely hrom betbl ll. Egyes ilyen rendszerazonostk az SAP szmra vannak fenntartva. (Pldul a SAP s a NIX. Ezek teljes listjt az SAP dokumentcijban talljuk meg.) Erre az IDES teleptshez az IDS, a 4.6C SR2 teleptsnl a PRD neveket adtuk, mivel ezeket a rendszereket les hasznlatra szntk. Ennlfogva a kvetkez csoportokat hoztuk ltre hozzjuk (a csoportok azonosti ugyan eltrhetnek az ltalunk hasznltaktl): csoport azonostja 100 101 102 csoport neve dba sapsys oper lers Adatbzis adminisztrtor SAP rendszer Adatbzis opertor

Az Oracle alaprtelmezett teleptsnl csak a dba csoport jn ltre. A dba csoportot oper csoportknt is hasznlhatjuk (bvebb informcikrt lsd az Oracle s az SAP dokumentcijt). Ezenkvl az albbi felhasznlkra van mg szksgnk: felhasznli azonost 1000 1002 felhasznli nvltalnos nv idsadm/prdadm oraids/oraprd
sid adm

csoport sapsys dba

egyb csoportok oper oper

lers SAP adminisztrtor Oracle adminisztrtor

orasid

Az adduser(8) parancs hasznlata sorn a kvetkezkre lesz szksgnk egy SAP Administrator ltrehozshoz (gyeljk a parancsrtelmezt (shell) s a felhasznli knyvtrat (home directory)):
Name: sid adm Password: ****** Fullname: SAP Administrator SID Uid: 1000 Gid: 101 (sapsys) Class: Groups: sapsys dba HOME: /home/sid adm

297

Fejezet 10. Binris Linux kompatibilits


Shell: bash (/compat/linux/bin/bash)

Ugyangy az Oracle Administrator esetben:


Name: orasid Password: ****** Fullname: Oracle Administrator SID Uid: 1002 Gid: 100 (dba) Class: Groups: dba HOME: /oracle/sid Shell: bash (/compat/linux/bin/bash)

A dba s oper csoportok hasznlata sorn ne felejtsk el megadni az oper csoportot sem.

10.7.7.3. Knyvtrak ltrehozsa


A knyvtrakat ltalban kln llomnyrendszerekknt hozzk ltre, de ez teljesen az ignyeinken mlik. Mi most egyszer knyvtrakknt alaktottuk ki ezeket, ezrt tulajdonkppen ugyanazon a RAID 5 tmbn tallhatak meg: Ehhez elszr belltjuk az egyes knyvtrak tulajdonosait s engedlyeit (root felhasznlknt):
# # # # # chmod chmod chown chown chmod 775 /oracle 777 /sapmnt root:dba /oracle sid adm:sapsys /compat/linux/usr/sap 775 /compat/linux/usr/sap

Msodsorban orasid felhasznlknt hozzuk ltre az /oracle/SID alknyvtrait:


# # # # # # su - orasid cd /oracle/SID mkdir mirrlogA mirrlogB origlogA origlogB mkdir sapdata1 sapdata2 sapdata3 sapdata4 sapdata5 sapdata6 mkdir saparch sapreorg exit

Az Oracle 8.1.7 teleptsnl mg tovbbi knyvtrakra is szksgnk lesz:


# # # # # # # # su - orasid cd /oracle mkdir 805_32 mkdir client stage mkdir client/80x_32 mkdir stage/817_32 cd /oracle/SID mkdir 817_32

Megjegyzs: A client/80x_32 knyvtrnak pontosan ilyen nvvel kell rendelkeznie. Ne cserljk ki a benne szerepl x-et semmire se!

298

Fejezet 10. Binris Linux kompatibilits A harmadik lpsben ltrehozzuk a sid adm felhasznlhoz tartoz knyvtrakat:
# # # # # su - sid adm cd /usr/sap mkdir SID mkdir trans exit

10.7.7.4. Az /etc/services
A SAP R/3 mkdshez fel kell vennnk nhny olyan bejegyzst is az /etc/services llomnyba, amelyek a FreeBSD teleptse sorn nem jnnek ltre. gy teht rjuk be az albbi sorokat (legalbb a hasznlni kvnt pldny szmhoz ill sorokat adjuk meg ez jelen esetnkben most a 00. Termszetesen az sem okoz gond, ha a dp, gw, sp s ms esetn berjuk az sszes pldnynak megfelel portot 00-tl 99-ig). Amennyiben a SAProuter vagy az SAP OSS hasznlatra lenne szksgnk, akkor adjuk meg a SAProuter ltal lefoglalt 99-es pldnynak megfelel 3299-es portot a rendszernkn:
sapdp00 sapgw00 sapsp00 sapms00 sapmsSID sapgw00s 3200/tcp 3300/tcp 3400/tcp 3500/tcp 3600/tcp 4800/tcp # # # # # # 3200 3300 3400 3500 SAP zenetkezel szerver 3600 biztonsgos SAP tjr 4800 SAP menetirnyt SAP tjr + + + + + + a a a a a a pldny pldny pldny pldny pldny pldny szma szma szma szma szma szma

10.7.7.5. A szksges nyelvi belltsok


Az SAP-nek legalbb kt olyan nyelvre van szksge, amely nem rszei az alap RedHat teleptseknek. Az SAP a sajt FTP szervereirl elrhetv tette az ehhez szksges RPM csomagokat (amelyek viszont csak OSS tpus hozzfrs birtokban tlthetek le). A 0171356 szm jegyzet tartalmazza a beszerzend RPM-ek listjt. Megcsinlhatjuk gy is, hogy egyszeren csak linkeket hozunk ltre (pldul az de_DE s en_US knyvtrakra), habr ezt egy les rendszer esetben semmikppen sem ajnljuk (az IDES rendszerrel tapasztalataink szerint eddig mg remekl mkdtt). Az albbi nyelvi belltsok fognak teht neknk kelleni:
de_DE.ISO-8859-1 en_US.ISO-8859-1

gy hozzuk ltre hozzjuk a linkeket:


# cd /compat/linux/usr/share/locale # ln -s de_DE de_DE.ISO-8859-1 # ln -s en_US en_US.ISO-8859-1

A telepts sorn az imntiek hinya gondokat okozhat. Ha folyamatosan gyelmen kvl hagyjuk az ezekbl fakad hibkat (vagyis a CENTRDB.R3S llomnyban a gondot okoz lpsek STATUS rtkt OK-ra lltjuk), akkor komolyabb erfesztsek megttele nlkl majd kptelenek lesznk bejelentkezni a frissen teleptett SAP rendszernkbe.

299

Fejezet 10. Binris Linux kompatibilits

10.7.7.6. A rendszermag nomhangolsa


Az SAP R/3 rendszerek temrdek mennyisg erforrst ignyelnek. Ennek kielgtsre az albbi paramtereket adjuk hozz a rendszermag belltsait tartalmaz llomnyhoz:
# Adjunk a memriazablknak (SAP s Oracle): options MAXDSIZ="(1024*1024*1024)" options DFLDSIZ="(1024*1024*1024)" # Kell nhny System V bellts is: options SYSVSHM # SYSV tpus osztott memria be options SHMMAXPGS=262144 # a megoszthat memria maximlis mrete lapokban #options SHMMAXPGS=393216 # a 46C teleptsekor ezt hasznljuk options SHMMNI=256 # az osztott memrikhoz tartoz azonostk maximlis szma options SHMSEG=100 # a fut programonknt megoszthat szegmensek maximuma options SYSVMSG # SYSV tpus zenetsorok options MSGSEG=32767 # a rendszerben kering zenetszegmensek maximlis szma options MSGSSZ=32 # az zenetszegmensek mrete. 2 hatvnya LEGYEN options MSGMNB=65535 # maximlis karakter zenetsoronknt options MSGTQL=2046 # a rendszerben lev zenetek maximuma options SYSVSEM # SYSV tpus szemaforok options SEMMNU=256 # a szemaforok UNDO struktrinak szma options SEMMNS=1024 # a rendszerben lev szemaforok szma options SEMMNI=520 # a szemaforok azonostinak mennyisge options SEMUME=100 # az UNDO kulcsok szma

Az itt megadott minimum rtkek az SAP ltal kiadott dokumentcikbl szrmaznak. Mivel a Linux vltozathoz errl nincs kln lers, ezrt a (32 bites) HP-UX vltozat dokumentcii kztt rdemes ennek utnanzni. Mivel a 4.6C SR2 teleptshez hasznlt rendszeren valamivel tbb zikai memria llt rendelkezsnkre, ezrt az osztott szegmensek mrett nagyobbra tudtuk megvlasztani mind az SAP s mind az Oracle esetben, ami magyarzza a megoszthat lapok nagyobb szmt.
Megjegyzs: Az FreeBSD i386 vltozatnak teleptse sorn hagyjuk meg a MAXDSIZ s DFLDSIZ rtkek alaprtelmezett 1 GB-os maximumt. Ellenkez esetben ezekhez hasonl furcsa hibazeneteket lthatunk: ORA-27102: out of memory vagy Linux Error: 12: Cannot allocate memory.

10.7.8. Az SAP R/3 teleptse


10.7.8.1. Az SAP CD-k elksztse
Sok CD-t kell a telepts sorn mozgatni, teht csatlakoztatni s levlasztani. Ha viszont elegend meghajtval rendelkeznk, akkor akr csatlakoztathatjuk egyszerre is az sszeset. Vagy felmsolhatjuk a CD-t tartalmt a nekik megfelel knyvtrakba:
/oracle/SID /sapreorg/cd-neve

ahol a cd-neve a kvetkezk valamelyike: KERNEL, RDBMS, EXPORT1, EXPORT2, EXPORT3, EXPORT4, EXPORT5 s EXPORT6 (4.6B/IDES), valamint KERNEL, RDBMS, DISK1, DISK2, DISK3, DISK4 s LANG (4.6C SR2). A

300

Fejezet 10. Binris Linux kompatibilits csatlakoztatott CD-ken tallhat llomnyok neveinek nagybetseknek kell lennik. Ha nem gy lenne, akkor a csatlakoztatsnl adjuk meg a -g opcit. gy teht a kvetkez parancsokat kell kiadnunk:
# mount_cd9660 -g /dev/cd0a /mnt # cp -R /mnt/* /oracle/SID /sapreorg/cd-neve # umount /mnt

10.7.8.2. A teleptszkript futtatsa


Elsknt egy install nev knyvtrat kell elksztennk:
# cd /oracle/SID /sapreorg # mkdir install # cd install

Ezutn futtassuk le a teleptszkriptet, ami pedig bemsolja az install knyvtrba szinte az sszes fontos llomnyt:
# /oracle/SID /sapreorg/KERNEL/UNIX/INSTTOOL.SH

Az IDES (4.6B) vltozathoz egy teljes SAP R/3 bemutat rendszer is tartozik, ezrt a megszokott hrom CD helyett hat EXPORT tpus CD-bl ll. Itt a CENTRDB.R3S teleptsablon csak a szabvny kzponti pldnyt hozza ltre (R/3 s az adatbzis), az IDES kzponti pldnyt mr nem. Ezrt az EXPORT1 knyvtrbl ki kell msolnunk a CENTRDB.R3S llomnyt, klnben az R3SETUP csak hrom EXPORT CD-t fog krni. Az jabb SAP 4.6 SR2 kiadshoz ngy EXPORT CD tartozik. A telepts folyamatt a CENTRAL.R3S llomnyban lev paramterek vezrlik. A korbbi kiadsokkal ellenttben nincsenek kln sablonok az adatbzissal s a nlkle teleptend kzponti pldnyok szmra. Az SAP az adatbzisok teleptsre kln sablont hasznl. jrakezdskor a teleptst ettl fggetlenl elegend az eredeti llomnnyal jraindtani. A telepts kzben s utn az SAP-nek a hostname paranccsal csak a gp sajt nevt, nem pedig a teljes hlzati nevt kell megadnunk. Ilyenkor ezt vagy egyenknt begpeljk, vagy ltrehozunk r egy lnevet az orasid s sid adm (valamint a megfelel lpsekben a root) felhasznlknak: alias hostname=hostname -s. Ezenkvl mg az SAP teleptsekor ltrehozott mindkt felhasznl .profile s .login llomnyait is bellthatjuk ennek megfelelen.

10.7.8.3. Az R3SETUP 4.6B verzijnak indtsa


Ne felejtsk el jl belltani az LD_LIBRARY_PATH krnyezeti vltozt:
# export LD_LIBRARY_PATH=/oracle/IDS/lib:/sapmnt/IDS/exe:/oracle/805_32/lib

A telepts knyvtrban root felhasznlknt indtsuk el az R3SETUP programot:


# cd /oracle/IDS/sapreorg/install # ./R3SETUP -f CENTRDB.R3S

A szkript ezek utn feltesz nhny krdst (az alaprtelmezett vlaszok zrjelben, kzvetlenl a megadottak utn): Krds Alaprtelmezs Vlasz

301

Fejezet 10. Binris Linux kompatibilits Krds Enter SAP System ID Enter SAP Instance Number Enter SAPMOUNT Directory Enter name of SAP central host Enter name of SAP db host Select character set Alaprtelmezs [C11] [00] [/sapmnt] [troubadix.domain.de] [troubadix] [1] (WE8DEC) Vlasz IDSEnter Enter Enter Enter Enter Enter 1Enter

Enter Oracle server version (1) Oracle 8.0.5, (2) Oracle 8.0.6, (3) Oracle 8.1.5, (4) Oracle 8.1.6 Extract Oracle Client archive [1] (Yes, extract) Enter path to KERNEL CD Enter path to RDBMS CD Enter path to EXPORT1 CD Directory to copy EXPORT1 CD Enter path to EXPORT2 CD Directory to copy EXPORT2 CD Enter path to EXPORT3 CD Directory to copy EXPORT3 CD Enter path to EXPORT4 CD Directory to copy EXPORT4 CD Enter path to EXPORT5 CD Directory to copy EXPORT5 CD Enter path to EXPORT6 CD [/sapcd] [/sapcd] [/sapcd] [/oracle/IDS/sapreorg/CD4_DIR] [/sapcd] [/oracle/IDS/sapreorg/CD5_DIR] [/sapcd] [/oracle/IDS/sapreorg/CD6_DIR] [/sapcd] [/oracle/IDS/sapreorg/CD7_DIR] [/sapcd] [/oracle/IDS/sapreorg/CD8_DIR] [/sapcd]

Enter /oracle/IDS/sapreorg/KERNEL /oracle/IDS/sapreorg/RDBMS /oracle/IDS/sapreorg/EXPORT1 Enter /oracle/IDS/sapreorg/EXPORT2 Enter /oracle/IDS/sapreorg/EXPORT3 Enter /oracle/IDS/sapreorg/EXPORT4 Enter /oracle/IDS/sapreorg/EXPORT5 Enter /oracle/IDS/sapreorg/EXPORT6 Enter 850Enter (megabyte) Enter Enter Enter Enter Enter Enter Enter

Directory to copy EXPORT6 CD [/oracle/IDS/sapreorg/CD9_DIR] Enter amount of RAM for SAP + DB Service Entry Message Server Enter Group-ID of sapsys Enter Group-ID of oper Enter Group-ID of dba Enter User-ID of sid adm Enter User-ID of orasid Number of parallel procs [3600] [101] [102] [100] [1000] [1002] [2]

Ha a CD-ket nem klnbz helyekre msoltuk, akkor az SAP teleptje nem fogja megtallni a ezeket (a rajtuk lev LABEL.ASC segt neki az azonostsban) s krni fogja a CD csatlakoztatst, illetve a csatlakozsi pontjnak megadst. A CENTRDB.R3S sem minden esetben mentes a hibktl. A tapasztalataink szerint az EXPORT4 cmkj CD-t krte jra, mikzben a helyes kulcsokat jelezte ki (6_LOCATION, majd 7_LOCATION stb.), gy egyszeren csak lpjnk tovbb az rtkek meghagysval. Fggetlenl az imnti megemltett problmktl, egszen az Oracle adatbziskezel teleptsig mindennek mkdnie kellene.

302

Fejezet 10. Binris Linux kompatibilits

10.7.8.4. Az R3SETUP 4.6C SR2 elindtsa


lltsuk be jl az LD_LIBRARY_PATH krnyezeti vltoz rtkt. Ez nmileg eltr a 4.6B s az Oracle 8.0.5 prosnak belltstl:
# export LD_LIBRARY_PATH=/sapmnt/PRD/exe:/oracle/PRD/817_32/lib

A telepts knyvtrbl root felhasznlknt indtsuk el az R3SETUP programot:


# cd /oracle/PRD/sapreorg/install # ./R3SETUP -f CENTRAL.R3S

A szkript ezek utn feltesz nhny krdst (az alaprtelmezett vlaszok zrjelben, kzvetlenl a megadottak utn): Krds Enter SAP System ID Enter SAP Instance Number Enter SAPMOUNT Directory Enter name of SAP central host Enter Database System ID Enter name of SAP db host Alaprtelmezs [C11] [00] [/sapmnt] [majestix] [PRD] [majestix] Vlasz PRDEnter Enter Enter Enter PRDEnter Enter Enter 2Enter Enter /oracle/PRD/sapreorg/KERNEL 1800Enter (megabyte) Enter Enter Enter Enter Enter Enter 3Enter (nincs tmogats) Enter Enter

Select character set [1] (WE8DEC) Enter Oracle server version (2) Oracle 8.1.7 Extract Oracle Client archive Enter path to KERNEL CD [1] (Yes, extract) [/sapcd]

Enter amount of RAM for SAP + DB 2044 Service Entry Message Server [3600] Enter Group-ID of sapsys Enter Group-ID of oper Enter Group-ID of dba Enter User-ID of oraprd Enter User-ID of prdadm LDAP support Installation step completed Choose installation service [100] [101] [102] [1002] [1000] [1] (continue) [1] (DB inst,le)

Az OSUSERDBSID_IND_ORA s OSUSERIDADM_IND_ORA lpsekben az orasid s sid adm) felhasznlk ltrehozsa hibkra futhat. Fggetlenl az emltett problmktl, az Oracle adatbziskezel teleptsig mindennek remekl kell mkdnie.

10.7.9. Az Oracle 8.0.5 teleptse


Az Oracle Linux vltozatnak teleptse sorn felmerl problmk tekintetben keressk fel az SAP fzeteket s az

303

Fejezet 10. Binris Linux kompatibilits Oracle Readme llomnyait. A legtbb, ha nem is az sszes gondot az egymssal nem kompatibilis fggvnyknyvtrak okozzk. Az Oracle teleptsnek rszleteit a Az Oracle teleptse cm szakaszban talljuk.

10.7.9.1. Az Oracle 8.0.5 teleptse az orainst segtsgvel


Az Oracle 8.0.5 verzijnak hasznlata esetn nhny tovbbi fggvnyknyvtr jralinkelsre is szksg lesz, mivel az Oracle 8.0.5 mg a rgi glibc knyvtrral lett fordtva (RedHat 6.0), viszont a RedHat 6.1 mr a glibc jabb verzijt hasznlja. A linkels mkdshez az albbi csomagokat kell mg teleptennk:
compat-libs-5.2-2.i386.rpm compat-glibc-5.2-2.0.7.2.i386.rpm compat-egcs-5.2-1.0.3a.1.i386.rpm compat-egcs-c++-5.2-1.0.3a.1.i386.rpm compat-binutils-5.2-2.9.1.0.23.1.i386.rpm

A rszleteket lsd az SAP fzeteiben vagy az Oracle Readme llomnyaiban. Amennyiben ez nem oldhat meg, akkor az eredeti binrisok, esetleg az eredeti RedHat rendszerbl szrmaz jralinkelt binrisok is hasznlhatak (habr a telepts pillanatban szemlyesen ezt nem tudtuk ellenrizni). Az intelligens gynk lefordtshoz fel kell raknunk a RedHat sajt Tcl csomagjt. Ha ehhez nem tudjuk beszerezni a tcl-8.0.3-20.i386.rpm csomagot, akkor a RedHat 6.1 vltozathoz kszlt tcl-8.0.5-30.i386.rpm is megteszi. Az jralinkelstl eltekintve a telepts tbbi rsze szinte adja magt:
# # # # # # su - oraids export TERM=xterm export ORACLE_TERM=xterm export ORACLE_HOME=/oracle/IDS cd $ORACLE_HOME/orainst_sap ./orainst

Az Oracle On-Line Text Viewer kikapcsolsn (mivel az jelenleg nem Linux alatt sem rhet el) kvl mindegyik kpernyt hagyjuk jv az Enter billenty lenyomsval. Az Oracle ezutn a rendelkezsre ll gcc, egcs vagy i386-redhat-linux-gcc helyett a i386-glibc20-linux-gcc hasznlatval jra akarjuk linkelni magt. Id hinyban az Oracle 8.0.5 PreProduction kiadsbl emeltnk ki binrisokat, de az adatbziskezel rendszer fellesztsre tett els ksrleteink kudarcba fulladtak, s ezutn a megfelel RPM-ek sszeszedse valdi rmlomnak bizonyult.

10.7.9.2. Az Oracle 8.0.5 Pre-production Release for Linux (Kernel 2.0.33) teleptse
A telepts nagyon knny. Csatlakoztassuk a CD-t, majd indtsuk el a teleptt. Ezutn meg kell adnunk az Oracle felhasznli knyvtrt s a telept odamsolja az sszes binrist. Habr a telepts megkezdse eltt a korbbi ksrleteink nyomt nem tntettk el. Ezt kveten az Oracle adatbzisrendszer minden tovbbi gond nlkl elindthat.

304

Fejezet 10. Binris Linux kompatibilits

10.7.10. Az Oracle 8.1.7 Linux vltozatnak teleptse


Szedjk le az oracle8172.tgz llomnyt a Linux rendszeren ltrehozott knyvtrbl, s bontsuk ki a /oracle/SID /817_32/ knyvtrba.

10.7.11. Az SAP R/3 teleptsnek folytatsa


Elszr is ellenrizzk az isamd (sid adm) s oraids (orasid ) felhasznlk krnyezeti belltsait. A .profile, .login s .cshrc llomnyaikban a korbbi belltsok szerint kell szerepelnie a hostname parancsnak. Ha mg mindig a teljes hlzati nv lenne meg bennnk, akkor a hostname parancsot t kell rni mind a hrom llomnyban a hostname -s parancsra.

10.7.11.1. Az adatbzis feltltse


Ezutn az R3SETUP folytathat vagy jraindthat (attl fggen, hogy a kilps vlasztottuk-e vagy sem). Az R3SETUP ekkor ltrehozza az adatbzisban a tblkat s az R3load meghvsval feltlti ezeket adatokkal (a 46B IDES vltozat esetben az EXPORT1 - EXPORT6, a 46C esetben pedig a DISK1 - DISK4 lemezekrl). Amikor a feltlts befejezdtt (ami akr rkig is eltarthat), szksg lesz mg nhny jelsz megadsra is. A prbateleptseknl nyugodtan hasznlhatjuk a jl ismert alaprtelmezett jelszavakat (azonban mindenkppen vltoztassuk meg ezeket, ha egy kicsit is szmt a biztonsg!): Krds Enter Password for sapr3 Conrum Password for sapr3 Enter Password for sys Conrm Password for sys Enter Password for system Conrm Password for system Vlasz sapEnter sapEnter change_on_installEnter change_on_installEnter managerEnter managerEnter

A 4.6B teleptse sorn mg gondjaink akadtak a dipgntab hasznlatval.

10.7.11.2. Az Oracle Listener elindtsa


gy kell elindtani az orasid felhasznlval az Oracle Listenert:
% umask 0; lsnrctl start

Ha mshogy prblkozunk, akkor az ORA-12546 kd hibt fogjuk kapni, mert a hlzati portok socketei nem rendelkeznek a szksges engedlyekkel. Lsd a 072984-es SAP fzet.

10.7.11.3. Az MNLS tblk frisstse


Ha nem Latin 1 kdols nyelveket akarunk importlni az SAP rendszerbe, akkor frisstennk kell a tbbnyelv nyelvi tmogatshoz (Multi National Language Support, MNLS) tartoz tblzatokat. Ezek bemutatst a 15023 s 45619 szm SAP OSS fzetekben olvashatjuk. Minden ms esetben az SAP teleptsekor nyugodtan kihagyhatjuk.

305

Fejezet 10. Binris Linux kompatibilits


Megjegyzs: Ha mg nincs is konkrtan szksgnk az MNLS-re, akkor is ellenriznnk s inicializlnunk kell a TCPDB tblt. A 0015023 s 0045619 szm SAP fzetekben tudhatunk meg errl tbbet.

10.7.12. Telepts utni teendk


10.7.12.1. Az SAP R/3 licenckulcsnak megszerzse
Az SAP R/3 licenckulcst kln kell krni. Fontos, mert a teleptshez hasznlatos ideiglenes licenc csak ngy htig rvnyes. Elszr szerezzk meg a hardverkulcsot. Jelentkezznk be az idsadm felhasznlval s adjuk ki a saplicense parancsot:
# /sapmnt/IDS/exe/saplicense -get

Ha a saplicense paramter nlkl meghvsra vlaszul opcikat listz ki. A licenckulcsot megrkezse utn gy tudjuk lesteni:
# /sapmnt/IDS/exe/saplicense -install

Ezutn a kvetkez rtkeket kell megadni:


SAP SYSTEM ID CUSTOMER KEY INSTALLATION NO EXPIRATION DATE LICENSE KEY = = = = =
SID, 3 karakter hardverkulcs, 11 karakter telepts szma, 10 szmjegy hhnn, teht "99991231" licenckulcs, 24 karakter

10.7.12.2. A felhasznlk ltrehozsa


Hozzunk ltre egy felhasznlt a 000 kliensen bell (a csak rajta bell elvgezhet feladatokhoz, aki klnbzik a sap* s ddic felhasznlktl). Felhasznlnvknt ltalban a wartung nevet vlasztottuk (ami angolul a service nvnek, avagy szolgltatsnak felel meg). A sap_new s sap_all nev prolok is kellenek. A biztonsgossg kedvrt a kliens sszes alaprtelmezett felhasznljnak (belertve a sap* s ddic felhasznlkat is) vltoztassuk meg a jelszavt.

10.7.12.3. A szlltsi rendszer, a prolok, mkdsi mdok stb. belltsa


A ddic s sap* felhasznlktl eltr nev felhasznlval a 000 kliensen bell legalbb a kvetkezket vgezzk el: Feladat A szlltsi rendszer (Transport System) belltsa, pldul a Stand-Alone Transport Domain Entity rtkre A rendszer proljnak ltrehozsa s szerkesztse A mkdsi mdok s pldnyok karbantartsa Tranzakci STMS RZ10 RZ04

306

Fejezet 10. Binris Linux kompatibilits Az imnti s az sszes tbbi telepts utni lpsek lersa teljes egszben megtallhat az SAP teleptsi tmutatiban.

10.7.12.4. Az initsid .sap (initIDS.sap) szerkesztse


Az /oracle/IDS/dbs/initIDS.sap llomny tartalmazza a SAP tartalk proljt. Itt tbbek kzt a hasznlni kvnt szalag mrett, a tmrts tpust s hasonl paramtereket kell denilni. A sapdba / brbackup futtatshoz a kvetkez rtkeket vltoztattuk meg:
compress = hardware archive_function = copy_delete_save cpio_flags = "-ov --format=newc --block-size=128 --quiet" cpio_in_flags = "-iuv --block-size=128 --quiet" tape_size = 38000M tape_address = /dev/nsa0 tape_address_rew = /dev/sa0

Magyarzat:
compress (tmrts): HP DLT1 tpus szalagot hasznltunk, ami tud hardveres tmrtst. archive_function (archivlsi hzirend): Ez adja meg, hogy alaprtelmezs szerint mi trtnjen az Oracle

archvlt naplival: az j naplllomnyok elszr a szalagra mentdnek, majd a mr lementett naplk ismt mentsre kerlnek s vgl trldnek. Ezzel sok fejfjstl meneklnk meg, mivel ilyenkor az archivl szalagok esetleges srlse esetn is valsznleg kpesek lesznk visszalltani az adatbzist.
cpio_flags (a cpio belltsa): A -B hasznlata alaprtelmezs, amivel a blokkok mrete 5120 byte-ra lltdik. A DLT tpus szalagokhoz a HP legalbb 32 KB-os blokkmretet javasolt, ezrt a --block-size=128 belltssal ezt 64 KB-ra nveltk. Szksgnk volt a --format=newc belltsra is, mivel 65535-nl tbb inode szmunk van. Az utols bellts a --quiet, amivel megakadlyozzuk, hogy a cpio lementett blokkokat sszefoglal kijelzsre begerjedjen a brbackup. cpio_in_flags (a cpio bemeneti belltsai): A szalagok visszatltsnl hasznlt belltsok. A formtumot

automatikusan felismeri.
tape_size (szalagmret): Ezzel adjuk meg ltalban a szalag nyers kapacitst. Biztonsgi okokbl (hardveres

tmrtst hasznlunk) ez az rtk a tnylegesnl valamivel kisebb.


tape_address (szalagos eszkz): a cpio ltal hasznlhat nem visszatekerhet eszkz. tape_address_rew (visszatekerhet szalagos eszkz): A cpio ltal hasznlhat visszatekerhet eszkz.

10.7.12.5. Telepts utni belltsok


Az SAP albbi paramtereit kell belltani a telepts utn (IDES 46B, 1 GB memrival): Nv ztta/roll_extension abap/heap_area_dia abap/heap_area_nondia em/initial_size_MB rtk 250000000 300000000 400000000 256

307

Fejezet 10. Binris Linux kompatibilits Nv em/blocksize_kB ipc/shm_psize_40 0013026 SAP fzet: Nv ztta/dynpro_area 0157246 SAP fzet: Nv rdisp/ROLL_MAXFS rdisp/PG_MAXFS rtk 16000 30000 rtk 2500000 rtk 1024 70000000

Megjegyzs: A fenti paramterek hasznlatval egy 1 gigabyte zikai memrival rendelkez rendszer esetn nagyjbl gy alakul a memriahasznlat:
Mem: 547M Active, 305M Inact, 109M Wired, 40M Cache, 112M Buf, 3492K Free

(547 MB aktv, 305 MB inaktv, 109 MB rgztett, 40 MB gyorsttr, 112 MB puffer, 3492 KB szabad)

10.7.13. A telepts sorn add problmk


10.7.13.1. Az R3SETUP jraindtsa egy problma kijavtsa utn
Az R3SETUP hiba esetn lell. Miutn tnztk a hibra utal naplkat s elhrtottuk a hiba okt, jra el kell indtanunk az R3SETUP programot, majd a REPEAT opci kivlasztsval prbljuk megismtelni az R3SETUP ltal kifogsolt legutbbi mveletet. Az R3SETUP jraindtshoz egyszeren adjuk meg a megfelel R3S llomnyt:
# ./R3SETUP -f CENTRDB.R3S

a 4.6B verzi esetn, vagy a


# ./R3SETUP -f CENTRAL.R3S

a 4.6C verzi esetn, fggetlenl attl, hogy a hiba a CENTRAL.R3S vagy DATABASE.R3S llomnyoknl keletkezett.
Megjegyzs: Egyes lpseknl az R3SETUP gy vli, hogy az SAP programjai mkdnek (mivel a hozzjuk tartoz lpseket mr megtettk), gy a hibk miatt az adatbzist esetleg korbban nem tudta elindtani. Ezrt a hibk kijavtsnak vgeztvel az R3SETUP ismtelt indtsa eltt neknk kell beindtani mind az adatbzist, mind pedig az SAP rendszert.

308

Fejezet 10. Binris Linux kompatibilits


Ne felejtsk el jra elindtani az Oracle Listener segdprogramjt sem (az orasid felhasznlval adjuk ki a umask 0; lsnrctl start parancsot), ha az idkzben lellt volna (pldul a rendszer knyszer jraindtsa miatt).

10.7.13.2. OSUSERSIDADM_IND_ORA az R3SETUP kzben


Ha az R3SETUP panaszkodik ebben a lpsben, akkor rjuk t az ltala ekkor hasznlt sablont (a 4.6B esetn ez a CENTRDB.R3S, illetve a 4.6C esetn ez a CENTRAL.R3S vagy a DATABASE.R3S). Keressk a [OSUSERSIDADM_IND_ORA] szveget, vagy csak a STATUS=ERROR bejegyzst, majd rjuk be a kvetkez rtkeket:
HOME=/home/sid adm (res volt) STATUS=OK (ERROR sttusza volt)

Ezutn indtsuk jra az R3SETUP programot.

10.7.13.3. OSUSERDBSID_IND_ORA az R3SETUP kzben


Az R3SETUP ebben a lpsben is hajlamos panaszkodni. Az itt felbukkan hiba hasonl az OSUSERSIDADM_IND_ORA lpsben jelentkezhz. Szerkesszk t az R3SETUP ltal ilyenkor hasznlt sablont (4.6B verzi esetn ez a CENTRDB.R3S, illetve 4.6C verzinl a CENTRAL.R3S vagy DATABASE.R3S). Keressk meg a [OSUSERDBSID_IND_ORA] rszt, vagy csak a STATUS=ERROR bejegyzst, majd rjuk t az ebben a szakaszban szerepl rtket gy:
STATUS=OK

Indtsuk jra az R3SETUP programot.

10.7.13.4. oraview.vrf FILE NOT FOUND hiba az Oracle teleptse kzben


A telepts megkezdse eltt nem tiltottuk le az Oracle On-Line Text Viewer felrakst. Habr Linux esetn ez nem hasznlhat, alaprtelmezs szerint mgis ki van vlasztva. Az Oracle telept menjben tiltsuk le ezt s nlkle kezdjk jra a teleptst.

10.7.13.5. TEXTENV_INVALID hiba az R3SETUP, RFC vagy SAPgui Start programokban


Ha ilyen hibval kerlnk szembe, akkor hinyoznak a megfelel nyelvi llomnyok. A 0171356 SAP fzet tartalmazza a teleptend RPM csomagok felsorolst (pldul a RedHat 6.1 esetn a saplocales-1.0-3 s saposcheck-1.0-1). Amennyiben gyelmen kvl hagyjuk az ilyen hibkat, s az R3SETUP minden kiakadsnl trjuk (a CENTRDB.R3S llomnyban) az STATUS rtkt az ERROR rtkrl az OK rtkre s jraindtjuk, az SAP nem lltdik be jl s nem tudunk a SAPgui alkalmazssal rcsatlakozni a frissen teleptett rendszerre mg akkor sem, ha el tudtuk indtani. Amikor a rgebbi linuxos SAPgui alkalmazssal csatlakozunk, a kvetkez zeneteket kapjuk:
Sat May 5 14:23:14 2001 *** ERROR => no valid userarea given [trgmsgo. 0401]

309

Fejezet 10. Binris Linux kompatibilits


Sat May 5 14:23:22 2001 *** ERROR => ERROR NR 24 occured [trgmsgi. 0410] *** ERROR => Error when generating text environment. [trgmsgi. 0435] *** ERROR => function failed [trgmsgi. 0447] *** ERROR => no socket operation allowed [trxio.c 3363] Speicherzugriffsfehler

Ez a viselkeds annak ksznhet, hogy az SAP R/3 nem kpes jl sszerendelni a nyelvi belltsokat, st, magt sem kpes jl belltani (hinyoznak nmely bejegyzsek az adatbzis egyes tbliban). Az SAP-hez gy tudunk ilyenkor csatlakozni, ha a DEFAULT.PFL llomnyba felvesszk a kvetkez bejegyzseket (lsd 0043288 fzet):
abap/set_etct_env_at_new_mode = 0 install/collate/active = 0 rscp/TCP0B = TCP0B

Majd indtsuk jra az egsz SAP rendszert. Ezutn mr tudunk csatlakozni hozz, mg ha az orszgra jellemz nyelvi belltsok nem is mkdnek tkletesen. Miutn korrigltuk az orszg belltsait (s felraktuk a megfelel nyelvi llomnyokat), tvoltsuk el az imnti bejegyzseket a DEFAULT.PFL llomnybl s indtsuk jra az SAP rendszert.

10.7.13.6. Az ORA-00001 hiba


Ez a hiba FreeBSD alatt az Oracle 8.1.7 hasznlata sorn kvetkezhet be. Akkor trtnik, amikor az Oracle adatbzis nem volt kpes rendesen inicializlni magt s sszeomlott, aminek rvn szemaforokat s memrit hagyott megosztva a rendszerben. gy az adatbzis kvetkez indtsakor kapunk egy kvr ORA-00001 hibt. Az ipcs -a paranccsal keressk meg ezeket, majd az ipcrm segtsgvel pedig szmoljuk fel.

10.7.13.7. Az ORA-00445 (a PMON httrprogram nem indult el) hiba


Ez a hiba az Oracle 8.1.7 hasznlatakor kvetkezhet be. Akkor kapjuk ezt a hibt, amikor prdadm felhasznlknt a elindtjuk startsap szkriptet (pldul startsap_majestix_00). Erre gygyr lehet, ha ehelyette az adatbzis elindtshoz az oraprd felhasznlval adjuk ki az svrmgrl parancsot:
% svrmgrl

SVRMGR> connect internal; SVRMGR> startup; SVRMGR> exit

10.7.13.8. Az ORA-12546 (A Listener indtsa megfelel engedlyekkel) hiba


Az Oracle Listener alkalmazst oraids felhasznlknt az albbi paranccsal indtsuk el:
# umask 0; lsnrctl start

Msklnben ORA-12546 hibt kapunk, mivel a hlzati portokhoz tartoz socketek nem rendelkeznek a megfelel engedlyekkel. Lsd 0072984 SAP fzet.

310

Fejezet 10. Binris Linux kompatibilits

10.7.13.9. Az ORA-27102 (Nincs elg memria) hiba


Akkor fordul el ilyen hiba, amikor a MAXDSIZ s DFLDSIZ rtkeit 1 GB-nl (1024 x 1024 x 1024-nl) nagyobbra lltottuk. Mell mg kapunk egy Linux Error 12: Cannot allocate memory hibt is.

10.7.13.10. [DIPGNTAB_IND_IND] az R3SETUP kzben


Errl alapveten a 0130581 szm SAP fzet ad tjkoztatst (az R3SETUP DIPGNTAB lpse hibra fut). Az IDES teleptse sorn az SAP rendszer valamirt az IDS nv helyett egy res karakterlncot hasznl. Ez a knyvtrak elrsben kisebb gondokat okoz, mivel az elrsi tvonaluk a SID -bl generldik (ami ebben az esetben az IDS). Teht a
/usr/sap/IDS/SYS/... /usr/sap/IDS/DVMGS00

helyett a kvetkezt prblja meg elrni:


/usr/sap//SYS/... /usr/sap/D00

A telepts folytatshoz ltrehoztunk egy linket s egy msik knyvtrat:


# pwd

/compat/linux/usr/sap
# ls -l

total 4 drwxr-xr-x drwxr-x--x lrwxr-xr-x drwxrwxr-x drwxrwxr-x

3 5 1 2 11

idsadm idsadm root idsadm idsadm

sapsys sapsys sapsys sapsys sapsys

512 May 512 May 7 May 5 512 May 512 May

5 11:20 D00 5 11:35 IDS 11:35 SYS -> IDS/SYS 5 13:00 tmp 4 14:20 trans

szrevettk, hogy a SAP fzetekben (0029227 s 0008401) ugyanezt a viselkedst rjk le. Az SAP 4.6C teleptsnl azonban ilyen hibval nem tallkoztunk.

10.7.13.11. [RFCRSWBOINI_IND_IND] az R3SETUP kzben


Az SAP 4.6C teleptse folyamn ez a hiba csupn egy korbban bekvetkezett msik hiba uthatsa volt. Itt t kell nznnk az sszes rintett naplt s ki kell javtanunk a tnyleges problmt. Amennyiben a naplk tvizsglsa utn csak ezt talljuk egyedli hibnak (lsd SAP fzetek), lltsuk t (a CENTRDB.R3S llomnyban) a STATUS rtkt az OK rtkre, majd indtsuk jra az R3SETUP programot. A telepts befejezse utn hajtsuk vgre az SE38 tranzakcibl az RSWBOINS riportot. A tovbbi RFCRSWBOINI s RFCRADDBDIF lpsekkel kapcsolatban lsd a 0162266 SAP fzetet.

10.7.13.12. [RFCRADDBDIF_IND_IND] az R3SETUP kzben


Itt az elbbihez hasonl felttelek lnek: mindenkppen ellenrizzk a naplkban, hogy a hibt nem egy korbban keletkezett hiba okozta.

311

Fejezet 10. Binris Linux kompatibilits Ha tnyleg csak az 0162266 SAP fzetben lertak rvnyesek, akkor (a CENTRDB.R3S llomnyban) lltsuk a gondot okoz lps STATUS rtkt az ERROR rtkrl az OK rtkre, s indtsuk jra az R3SETUP programot. A telepts utn pedig hajtsuk vgre az SE38 tranzakcibl az RADDBDIF riportot.

10.7.13.13. A sigaction sig31: File size limit exceeded hiba


Ez a disp s work SAP programok indtsa sorn trtnhet meg. Az SAP rendszert indt startsap szkriptrl levlva indulnak el a tbbi SAP program elindtsrt felels alfolyamatok. Ennek eredmnyekppen a szkript maga nem fogja szrevenni a hibt. Az SAP programok elindulst az ps ax | grep SID paranccsal tudjuk ellenrizni. Az eredmnyl kapott listban az sszes aktv Oracle s SAP programnak szerepelnie kell. Ha ebbl az tnik ki, hogy bizonyos programok hinyoznak, vagy nem kpesek kapcsoldni az SAP rendszerhez, akkor az /usr/sap/SID /DVEBMGSnr/work/ knyvtrban nzzk t a hozzjuk tartoz naplllomnyokat. Elssorban a dev_ms s a dev_disp llomnyok fontosak szmunkra. A 31-es jelzs akkor keletkezik, ha az Oracle s az SAP ltal hasznlt osztott memria mrtke meghaladja a rendszermag belltsai kzt megadott rtket. Ezt teht ennek nvelsvel lehet orvosolni:
# az les 46C rendszereknek tbb kell: options SHMMAXPGS=393216 # a 46B beri kevesebbel is: #options SHMMAXPGS=262144

10.7.13.14. A saposcol nem indul


A saposcol (4.6D verzi) programmal akad nhny problma. Az SAP rendszer az saposcol segtsgvel prbl adatokat gyjteni a rendszer teljestmnyrl. Mivel ez a program nem felttlenl szksges az SAP rendszer mkdshez, ez a problma nem tekinthet komolynak. A korbbi (4.6B) verzikban ugyan mkdik, de semmilyen adatot nem kpes begyjteni (mivel a legtbb hvs, pldul a processzorhasznlat fggvnye, egyszeren csak nullt ad vissza).

10.8. Tmk haladknak


Ha kvncsiak vagyunk a Linux emulci mkdsre, olvassuk el ezt a szakaszt. Az itt ismertettek leginkbb Terry Lambert (<tlambert@primenet.com>) FreeBSD chat levelezsi lista (http://lists.FreeBSD.org/mailman/listinfo/freebsd-chat) cmre rt levele nyomn kerlnek bemutatsra (Az zenet azonostja: <199906020108.SAA07001@usr09.primenet.com>).

10.8.1. Hogyan mkdik?


A FreeBSD rendelkezik egy n. vgrehajtsi osztly betltvel (execution class loader). Ez lnyegben a execve(2) rendszerhvs alatt meghzd absztrakcis rteg.

312

Fejezet 10. Binris Linux kompatibilits A FreeBSD-nek a #! karaktersorozat hatsra parancsrtelmezk vagy a hozzjuk tartoz szkriptek betltsre utast biztonsgi betlt helyett van egy listja az alkalmas betltkrl. A UNIX rendszerek a hagyomnyok szerint egyetlen betltvel rendelkeznek, ami elszr megvizsglja a betlteni kvnt llomny bvs szmt (ami ltalban az els 4 vagy 8 byte) s ez alapjn eldnti, hogy az adott formtum tmogatott-e. Amennyiben ez gy van, meghvja a betltt. Ha a binris tpusa nem ismert a rendszer szmra, akkor az execve(2) hvs hibval tr vissza, s a parancsrtelmez prblja meg a sajt parancsaiknt rtelmezni. Eddig ez volt az alaprtelmezs, akrmilyen parancsrtelmeznk is volt. Ksbb az sh(1) kdjba bekerlt egy aprcska okosts, amivel megnzte az llomny els kt karaktert, s ha az :\n volt, akkor a futtatshoz maga helyett a csh(1) parancsrtelmezt hvta meg (ezt lltlag elszr a SCO csinlta). A FreeBSD viszont vgignzi a betltk teljes listjt, amiben a sor vgn szerepel egy ltalnos #! formtum betlt. Ez az llomny futtatshoz hasznlatos rtelmezk kdjt keresi, s ha egyet sem sikerl azonostania, akkor a /bin/sh programot indtja el. A Linux ABI tmogatst a FreeBSD gy oldja meg, hogy elszr szleli az ELF binris bvs szmt (ekkor mg nem tesz klnbsget a FreeBSD, Solaris, Linux vagy ms ELF tpus binrisokat hasznl opercis rendszerek kzt). Ezutn az ELF formtum betltje az ELF llomny megjegyzseket trol szakaszban blyegek (brand) utn kutat, ami SVR4 s Solaris ELF binrisok esetn nem ltezik. A Linux binrisokat mkdskhz a brandelf(1) segtsgvel Linux tpusnak kell megblyegezni:
# brandelf -t Linux llomny

Miutn ezt megcsinltuk, az ELF betlt szre fogja venni az llomny Linux tpust. Mikor az ELF betlt szleli, hogy az llomny Linux tpus, kicserli egy mutat rtkt a proc struktrban. Minden rendszerhvs ezen a mutatn keresztl rhet el (a hagyomnyos UNIX rendszerekben ez a rendszerhvsokat tartalmaz sysent[] struktratmb). Emellett a frissen elindtott program szoftveres megszaktsait tartalmaz tmbjhez belltja a specilis jelzsek kezelst, valamint a Linux modul ltal vgzett nhny tovbbi (kisebb) javtst. A Linux rendszerhvsokat tartalmaz tmb tbbek kzt tartalmazza a sysent[] bejegyzsek egy listjt, amelyek cmei a rendszermag Linux moduljra mutatnak. Amikor a Linux binris hv egy rendszerhvst, a hozztartoz szoftveres megszakts kdja a proc struktrbl a neki megfelel rendszerhvs kdjt hivatkozza, gy FreeBSD rendszerhvs belpsi pontja helyett a Linuxt kapja meg. Radsul Linux mdban a klnbz llomnyok hivatkozsai is tirnytdnak. Ez lnyegben olyan, mint amit az llomnyrendszerek csatlakoztatsnl a union bellts csinl (ami nem egyezik meg az unionfs llomnyrendszerrel!). Ilyenkor az llomnyokat elszr a /compat/linux/eredeti-hely knyvtrban keresi, s majd ha ott nem tallja, csak akkor kezdi el keresni az /eredeti-hely ponton. Ezzel oldhatjuk meg, hogy ms binrisok futtatst ignyl binrisok is kpesek legyenek rendesen mkdni (pldul gy az egsz linuxos eszkztr tud futni a Linux ABI-n keresztl). Egyttal arra is utal, hogy ha a Linux binrisok szmra nem ll rendelkezsre a megfelel binris, akkor FreeBSD binrisokat is el tudnak indtani. Ha a uname(1) programot pedig bemsoljuk a /compat/linux knyvtron bellre, akkor a Linux binrisok kptelenek lesznek megmondani, hogy nem Linux alatt futnak.

313

Fejezet 10. Binris Linux kompatibilits gy lnyegben egy Linux magot tallunk a FreeBSD rendszermagjban. A benne megtallhat klnbz szolgltatsokat megvalst fggvnyek: az llomnymveletek, a virtulis memria kezelse, a jelzsek kldse s System V tpus folyamatok kzti kommunikci stb. megegyeznek a FreeBSD s a Linux hvsai esetn egyarnt. Egyetlen eltrs, hogy a FreeBSD binrisok a FreeBSD segdfggvnyein (glue function), a Linux binrisok pedig a Linux segdfggvnyein keresztl frnek hozzjuk (a legels opercis rendszerek tulajdonkppen csak a sajt segdfggvnyeiket tartalmaztk: a hvst kezdemnyez program proc struktrjban a fggvnyek dinamikusan belltott cme helyett egy globlis sysent[] struktratmbben troltk a meghvhat fggvnyeket). Melyik kzlk a FreeBSD natv ABI-ja? Ez teljesen lnyegtelen. Alapveten az egyetlen klnbsg csupn annyi (pillanatnyilag, de ez a jvben mg vltozhat, valsznleg hamarosan), hogy a FreeBSD segdfggvnyei statikusan megtallhatak a rendszermagban, mg a Linux segdfggvnyei egyarnt elrhetek modulbl vagy statikus linkelssel. Na igen, de akkor ez most emulci? Nem. Ez egy ABI, nem emulci. Itt sz sincs emultorrl (ahogy szimultorrl sincs). De akkor mgis mirt hvjk ezt sokszor Linux emulcinak? Ht hogy nehezebb legyen eladni a FreeBSD-t! Komolyra fordtva a szt: ennek a kezdeti vltozata akkoriban szletett meg, amikor erre mg nem volt rendes sz. Nem mondhattuk, hogy a FreeBSD befordts vagy egy modul betltse nlkl kpes lett volna Linux binrisokat futtatni, ezrt valamilyen mdon meg kellett neveznnk az ilyenkor betlttt kdot ebbl lett a Linux emultor.

314

III. Rendszeradminisztrci
A FreeBSD kziknyv fennmarad fejezeteiben a FreeBSD rendszerek adminisztrcijnak klnbz aspektusait mutatjuk be. Mindegyik fejezet elejn megtudhatjuk mit is fogunk megismerni a fejezet elolvassa sorn, illetve arrl is informcikat kapunk, hogy mivel kell mr tisztban lennnk a trgyalt anyag feldolgozshoz. Ezeket a fejezeteket annak rdekben alaktottuk ki, hogy az adott tmkban ismereteket adjunk. Nincs kztk semmilyen sorrendi ktttsg, st, ezeket egyltaln nem is szksges elolvasni a FreeBSD alapvet hasznlathoz.

Fejezet 11. Bellts s nomhangols


rta: Chern Lee. Az alapjul szolgl bemutatst rta: Mike Smith. Valamint az alapjt kpz tuning(7) oldalt rta: Matt Dillon.

11.1. ttekints
A FreeBSD egyik fontos szempontja a rendszer megfelel belltsa, aminek segtsgvel elkerlhetjk a ksbbi frisstsek sorn keletkez kellemetlensgeket. Ez a fejezet a FreeBSD belltsi folyamatbl kvn minl tbbet bemutatni, kztk a FreeBSD rendszerek nomhangolsra sznt paramtereket. A fejezet elolvassa sorn megismerjk:

hogyan dolgozzunk hatkonyan az llomnyrendszerekkel s a lapozllomnyokkal; az rc.conf belltsnak alapjait s a /usr/local/etc/rc.d knyvtrban tallhat indtsi rendszert; hogyan lltsunk be s prbljunk ki egy hlzati krtyt; hogyan lltsunk be virtulis cmeket a hlzati eszkzkeinken; hogyan hasznljuk az /etc knyvtrban megtallhat klnfle kongurcis llomnyokat; hogyan hangoljuk a FreeBSD mkdst a sysctl vltozinak segtsgvel; hogyan hangoljuk a lemezek teljestmnyt s mdostsuk a rendszermag korltozsait.

A fejezet elolvasshoz ajnlott:


a UNIX s a FreeBSD alapjainak megrtse (3 fejezet); a rendszermag belltshoz s fordtshoz ktd alapok ismerete (8 fejezet).

11.2. Kezdeti belltsok


11.2.1. A partcik kiosztsa
11.2.1.1. Alappartcik
Amikor a bsdlabel(8) vagy a sysinstall(8) segtsgvel llomnyrendszereket teleptnk, nem szabad gyelmen kvl hagynunk a tnyt, hogy a merevlemezes egysgekben a kls svokbl gyorsabban lehet hozzfrni az adatokhoz, mint a belskbl. Emiatt a kisebb s gyakrabban elrni kvnt llomnyrendszereket a meghajt lemeznek klsejhez kzel kell ltrehozni, mg pldul a /usr partcihoz hasonl nagyobb partcikat annak bels rsze fel. A partcikat a kvetkez sorrendben rdemes kialaktani: gykr (rendszerindt), lapozllomny, /var s /usr. A /var mretnek tkrznie kell a szmtgp szndkolt hasznlatt. A /var partcin foglalnak helyet a felhasznlk postaldi, a naplllomnyok s a nyomtatsi sorok. A postaldk s a naplllomnyok egszen vratlan mrtkben is kpesek megnvekedni attl fggen, hogy mennyi felhasznlnk van a rendszerben s hogy mekkora naplkat tartunk meg. Itt a legtbb felhasznlnak soha nem lesz szksge egy gigabyte-nl tbb helyre.

316

Fejezet 11. Bellts s nomhangols


Megjegyzs: Bizonyos esetekben a /var/tmp knyvtrban azrt ennl tbb trterlet szksgeltetik. Amikor a pkg_add(1) segtsgvel egy friss szoftvert teleptnk a rendszernkre, akkor a program a /var/tmp knyvtrba tmrti ki a hozztartoz csomag tartalmt. Ezrt a nagyobb szoftvercsomagok, mint pldul a Firefox vagy az OpenOfce esetn gondok merlhetnek fel, ha nem rendelkeznk elegend szabad terlettel a /var/tmp knyvtrban.

A /usr partci tartalmaz a rendszer mkdshez elengedhetetlenl szmos fontos llomnyt, tbbek kzt a portok gyjtemnyt (ajnlott, lsd ports(7)) s a forrskdot (vlaszthat). A portok s az alaprendszer forrsai telepts sorn vlaszthatak, de teleptsk esetn akkor ezen a partcin legalbb kt gigabyte-nyi hely ajnlott. Vegyk gyelembe a trbeli ignyeket, amikor megvlasztjuk partcik mrett. Igen kellemetlen lehet, amikor gy futunk ki az egyik partcin a szabad helybl, hogy a msikat alig hasznljuk.
Megjegyzs: Egyes felhasznlk szerint elfordulhat, hogy a sysinstall(8) Auto-defaults opcija a /var s / partcik mrett tl kicsire vlasztja. Partcionljuk okosan s nagylelken!

11.2.1.2. A lapozllomny partcija


ltalnos szably, hogy a lapozllomnyt trol partci mrete legyen a rendszer zikai memrijnak (RAM) ktszerese. Pldul, ha a szmtgpnk 128 megabyte memrival rendelkezik, akkor a lapozllomny mretnek 256 megabyte-nak kell lennie. Az ennl kevesebb memrit maguknak tud rendszerek tbb lapozllomnnyal jobban teljestenek. 256 megabyte-nl kevesebb lapozllomnyt semmikppen sem ajnlunk, s inkbb a zikai memrit rdemes bvtennk. A rendszermag virtulis memrit kezel lapozsi algoritmusait gy lltottk be, hogy abban az esetben teljestsenek a legjobban, ha a lapozllomny mrete legalbb ktszerese a kzponti memria mennyisgnek. A tl kicsi lapozllomny belltsa rontja a virtulis memria lapkeresssi rutinjnak hatkonysgt s a memria bvtse esetn mg tovbbi gondokat is okozhat. A tbb SCSI-lemezzel (vagy a klnbz vezrlkre csatlakoztatott tbb IDE-lemezzel) br nagyobb rendszerek esetben rdemes minden egyes (de legfeljebb ngy) meghajtra belltani lapozllomnyt. A lapozllomnyoknak kzel azonos mretnek kell lennik. A rendszermag tetszleges mreteket kpes kezelni, azonban a belsejben alkalmazott adatszerkezetek a legnagyobb lapozllomny mretnek ngyszeresig kpesek nvekedni. Ha a lapozllomnyokat nagyjbl ugyanazon a mreten tartjuk, akkor a rendszermag kpes lesz a lapozshoz felhasznlt terletet optimlisan elosztani a lemezek kztt. A nagyobb lapozllomnyok hasznlata mg akkor is jl jn, ha nem is hasznljuk annyira. Segtsgvel sokkal knnyebben talpra tudunk llni egy elszabadult program tombolsbl, s nem kell rgtn jraindtanunk a rendszert.

11.2.1.3. Mirt partcionljunk?


Egyes felhasznlk gy gondoljk, hogy egyetlen nagyobb mret partci mindenre megfelel, m ez a gondolat tbb okbl is helytelennek tekinthet. Elszr is, minden egyes partcinak eltr a mkdsi jellemzje, s klnvlasztsukkal lehetv vlik az llomnyrendszerek megfelel behangolsa. Pldul a rendszerindtshoz hasznlt s a /usr partcikat tbbsgben csak olvassra hasznljk, s nem sokat rnak rjuk. Ekzben a /var s /var/tmp knyvtrakban zajlik az rsok s olvassok tlnyom rsze. A rendszer megfelel felosztsval a kisebb, intenzvebben rt partcikon megjelen tredezettsg nem szivrog t a tbbsgben csak olvassra hasznlt partcikra. Ha a sokat rt partcikat kzel tartjuk a lemez szlhez, akkor

317

Fejezet 11. Bellts s nomhangols azokon a partcikon nvekszik az I/O teljestmnye, ahol az a leggyakrabban megjelenik. Mivel mostansg az I/O teljestmnyre inkbb a nagyobb partcik esetn van szksg, azzal nem rnk el ebben klnsebb mrtk nvekedst, ha a /var partcit a lemez szlre toljuk. Befejezskppen hozztesszk, hogy ennek vannak biztonsgi megfontolsai is. Egy kisebb s takarosabb rendszerindt partci, ami tbbnyire rsvdett, nagyobb esllyel l tl egy csfos rendszersszeomlst.

11.3. A mag belltsa


A rendszer belltsaira vonatkoz informcik kzponti lelhelye az /etc/rc.conf llomny. Ez az llomny tartalmazza a belltsokra vonatkoz adatok szles krt, amelyet elssorban a rendszer indulsa sorn a rendszer belltsra hasznlnak. Erre a neve is utal: ez az rc* llomnyok kongurcis llomnya. A rendszergazda az rc.conf llomnyban tudja fellbrlni az /etc/defaults/rc.conf llomnyban szerepl alaprtelmezett belltsokat. Az alaprtelmezseket tartalmaz llomnyt nem szabad kzvetlenl tmsolni az /etc knyvtrba, hiszen alaprtelmezett rtkeket tartalmaz, nem pedig mintkat. Minden rendszerfgg belltst magban az rc.conf llomnyban kell elvgezni. Szmos stratgia ltezik a tmegesen adminisztrlt szmtgpeknl a kzs s rendszerfgg belltsok klnvlasztsra, ezltal a karbantartsi kltsgek cskkentsre. A kzs belltsokat ajnlott egy msik helyre, pldul az /etc/rc.conf.site llomnyba rakni, majd hivatkozni erre a kizrlag csak rendszerfgg informcikat tartalmaz /etc/rc.conf llomnybl. Mivel az rc.conf llomnyt az sh(1) dolgozza fel, ezt elg knnyen el tudjuk rni. Pldul:

rc.conf:
. /etc/rc.conf.site hostname="node15.example.com" network_interfaces="fxp0 lo0" ifconfig_fxp0="inet 10.1.1.1"

rc.conf.site:
defaultrouter="10.1.1.254" saver="daemon" blanktime="100"

Az rc.conf.site llomny ezt kveten az rsync parancs hasznlatval mr sztszrhat a rendszerben, mikzben az rc.conf llomny mindenkinl egyedi marad. Ha a rendszert a sysinstall(8) vagy a make world hasznlatval frisstjk, akkor az rc.conf tartalma nem rdik fell, gy a rendszer belltsairl szl adatok nem vesznek el.

11.4. Az alkalmazsok belltsa


A teleptett alkalmazsok ltalban sajt kongurcis llomnyokkal, amelyek pedig sajt formtummal stb. rendelkeznek. Fontos, hogy ezeket az llomnyokat az alaprendszertl elklntve troljuk, ezltal a csomagkezel eszkzk knnyen rjuk tudjanak tallni s dolgozni velk.

318

Fejezet 11. Bellts s nomhangols Ezeket az llomnyokat ltalban a /usr/local/etc knyvtrban talljuk meg. Amennyiben egy alkalmazshoz tbb kongurcis llomny is tartozik, akkor ahhoz ezen bell egy kln alknyvtr jn ltre. Normlis esetben, amikor egy portot vagy csomagot teleptnk, minta kongurcis llomnyokat is kapunk. Ezek nevben tbbnyire a .default uttag szerepel. Ha mg nincs kongurcis llomny az adott alkalmazshoz, akkor a .default jelzs llomnyokbl ez ltrehozhat. Pldakppen most tekintsk a /usr/local/etc/apache knyvtr tartalmt:
-rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r-1 1 1 1 1 1 1 1 1 1 root root root root root root root root root root wheel wheel wheel wheel wheel wheel wheel wheel wheel wheel 2184 2184 9555 9555 12205 12205 2700 2700 7980 7933 May May May May May May May May May May 20 20 20 20 20 20 20 20 20 20 1998 1998 1998 1998 1998 1998 1998 1998 1998 1998 access.conf access.conf.default httpd.conf httpd.conf.default magic magic.default mime.types mime.types.default srm.conf srm.conf.default

Az llomnyok mrete jl mutatja, hogy csak az srm.conf vltozott meg. Az Apache ksbbi frisstsei ezt az llomnyt nem fogjk fellrni.

11.5. Szolgltatsok indtsa


rta: Tom Rhodes. A felhasznlk kzl sokan vlasztjk a FreeBSD Portgyjtemnyben tallhat kls szoftverek teleptst. A teleptett szoftvert gyakran ilyenkor gy kell belltani, hogy a rendszer indulsval egytt induljon. Az olyan szolgltatsok, mint pldul a mail/postfix vagy a www/apache13 csupn kt olyan szoftvercsomag, amelyet a rendszerrel egytt kell elindtani. Ebben a szakaszban a kls szoftverek indtsra hasznlatos eljrsokkal foglalkozunk. A FreeBSD-ben megjelen legtbb szolgltats, mint pldul a cron(8), a rendszerindt szkripteken keresztl kel letre. Habr ezek a szkriptek a FreeBSD egyes verzii vagy az egyes gyrtk esetn klnbzhetnek, azonban az mindegyikkben kzs, hogy az elindtsukra vonatkoz belltsok egyszer indtszkriptekkel adhatak meg.

11.5.1. Az alkalmazsok rszletesebb belltsa


Most miutn a FreeBSD rendelkezik egy rc.d knyvtrral, az alkalmazsok indtsnak belltsa is knnyebb s gyesebb vlt. Az rc.d mkdsrl szl szakaszban megismert kulcsszavak segtsgvel az alkalmazsok mostantl kezdve a tbbi szolgltats, pldul a DNS utn indulnak el, s az rc.conf llomnyon keresztl a szkriptekbe huzalozottak helyett most mr tetszleges paramtereket is tadhatunk stb. Egy egyszer szkript ehhez hasonlan nz ki:
#!/bin/sh # # PROVIDE: utility # REQUIRE: DAEMON # KEYWORD: shutdown

319

Fejezet 11. Bellts s nomhangols

. /etc/rc.subr name="utility" rcvar=set_rcvar command="/usr/local/sbin/utility" load_rc_config $name # # NE VLTOZTASSUK MEG AZ ITT LV ALAPRTELMEZSEKET, # INKBB AZ /etc/rc.conf LLOMNYBAN LLTSUK BE EZEKET # utility_enable=${utility_enable-"NO"} utility_pidfile=${utility_pidfile-"/var/run/utility.pid"} pidfile="${utility_pidfile}" run_rc_command "$1"

Ez a szkript gondoskodik arrl, hogy a utility nev alkalmazs a DAEMON szolgltats utn induljon el. Emellett mg felknl egy mdszert a PID avagy fut programok azonostjnak belltsra s nyomonkvetsre is. Ezt kveten az /etc/rc.conf llomnybl az alkalmazs elindthat az albbi sor hozzadsval:
utility_enable="YES"

Ez a mdszer megknnyti a paranccsorban tadott paramterek mdostst, az /etc/rc.subr llomnyban szerepl alaprtelmezett fggvnyek hasznlatt, az rcorder(8) segdprogrammal szembeni kompatibilitst s az rc.conf llomny knnyebb belltst.

11.5.2. Szolgltatsok indtsa szolgltatsokkal


Ms szolgltatsok, mint pldul a POP3 vagy IMAP szerverek dmonai stb. az inetd(8) segtsgvel indthatak el. Ez a Portgyjtemnybl teleptett szolgltatsok esetn magval vonja az adott segdprogram felvtelt vagy a hozztartoz sor engedlyezst az /etc/inetd.conf llomnyban. Az inetd mkdsvel s annak belltsval mlyrehatbban az inetd szakasza foglalkozik. A legtbb esetben a cron(8) dmon hasznlata kzenfekv a rendszerszint szolgltatsok elindtsban. Ez a megkzelts szmos elnyt tartogat, mivel a cron ezeket a programokat a felhasznl crontab llomnya alapjn futtatja. Ezzel a mezei felhasznlk szmra is lehetv vlik, hogy elindtsanak s karbantsanak alkalmazsokat. A cron segdprogramnak van egy olyan specilis lehetsge, hogy az id helyett a @reboot rtket adhatjuk meg. Ennek hatsra a feladat a cron(8) indtsval egytt fut le, teht megszokott esetben a rendszer indtsa sorn.

320

Fejezet 11. Bellts s nomhangols

11.6. A cron segdprogram belltsa


rta: Tom Rhodes. A cron(8) a FreeBSD egyik leghasznosabb segdprogramja. A cron segdprogram a httrben fut s folyamatosan gyeli az /etc/crontab llomnyt. Emellett a cron j crontab llomnyok utn kutatva folyamatosan ellenrzi a /var/cron/tabs knyvtrat. Ezek a crontab llomnyok olyan feladatokrl trolnak adatokat, amelyeket a cron programnak egy adott pillanatban el kell vgeznie. A cron a kongurcis llomnyok kt kln fajtjt, a rendszer- s felhasznli crontabokat hasznlja. A kt tpus kztt lev egyetlen klnbsg a hatodik mezben tallhat. A rendszerszint crontabok esetben a hatodik mez annak a felhasznlnak a nevt tartalmazza, amivel a program fut. Ezzel a rendszer szintjn mkd crontaboknak megadatott az a kpessg, hogy tetszleges felhasznl nevben futtassanak programokat. A felhasznlk crontabjaiban a hatodik mez a futtatand parancsot tartalmazza, s ilyenkor az sszes parancs a crontabot ltrehoz felhasznl nevben hajtdik vgre. Ez utbbi egy fontos biztonsgi jellemz.
Megjegyzs: A felhasznli crontabok lehetv teszik az egyes felhasznlk szmra, hogy a root felhasznl jogosultsgai nlkl kpesek legyenek feladatokat temezni, ugyanis a felhasznlhoz tartoz crontabban szerepl parancsok mindegyike a tulajdonosnak engedlyeivel fut. Az tlagos felhasznlkhoz hasonlan a root felhasznlnak is lehet crontabja, ami nem ugyanazt, mint az /etc/crontab (a rendszer sajt crontab llomnya). De mivel a rendszernek kln crontabja van, ezrt a root felhasznlnak nem kell kln crontabot ltrehozni.

Vessnk egy pillanatst az /etc/crontab (a rendszer crontabjnak) tartalmra:


# /etc/crontab - a root crontabja FreeBSD alatt # # $FreeBSD: src/etc/crontab,v 1.32 2002/11/22 16:13:39 tom Exp $ # # SHELL=/bin/sh PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin HOME=/var/log # # #minute hour day month wday who command # # */5 * * * * root /usr/libexec/atrun

A FreeBSD legtbb kongurcis llomnyhoz hasonlan itt is a # jelli a megjegyzseket. Az ilyen megjegyzsek remekl hasznlhatak annak feljegyzsre, hogy mit s mirt akarunk futtatni. A megjegyzsek azonban nem szerepelhetnek a paranccsal egy sorban, mivel msklnben a parancs rszeknt kerlnek rtelmezsre. Teht mindig j sorba kell raknunk ezeket. Az res sorokat a program nem veszi gyelembe. Elszr is meg kell adnunk egy krnyezetet. Az egyenlsg (=) karakter hasznlatos a krnyezeti belltsok meghatrozsra, ahogy mindezt az itteni pldban is tapasztalhatjuk a SHELL, PATH s HOME rtkek esetben. Ha nem adunk meg mst, akkor a cron az alaprtelmezs szerinti sh parancsrtelmezt hasznlja. Ha nem adjuk meg a PATH vltoz rtkt, akkor minden llomnyra abszolt elrsi ttal kell hivatkoznunk, mivel

321

Fejezet 11. Bellts s nomhangols ennek nincs alaprtelmezett rtke. Ha nem deniljuk a HOME vltoz rtkt, akkor a cron a parancshoz tartoz felhasznl knyvtrbl fog dolgozni. Ez a sor rja le a megadhat ht mezt. Az itt szerepl rtkek a minute (perc), hour (ra), mday (a hnap napja), month (hnap), wday (a ht napja), who (ki) s command (mit). A mezk szinte maguktl rtetdnek. A minute egy rn bell adja meg azokat a perceket, amikor az adott parancsot le kell futtatni. A hour hasonl a minute belltshoz, csak az itt szerepl rtkt rkban kell rtelmezni. Az mday a hnap napjaiban szmol. A month hasonl a minute s hour opcikhoz, de ez hnapot jell. A wday a ht egy napjt jelzi. Ezeknek a mezknek numerikus, valamint a huszonngy rs idformtumnak megfelel rtkeket kell tartalmazniuk. A who mez, a tbbiektl eltr mdon, csak az /etc/crontab llomnyban jelenik meg. Ez a mez adja meg, hogy a parancsot milyen felhasznlval kell futtatni. Ez az opci nem jelenik meg a felhasznlk sajt crontab llomnyainak teleptsekor. A sor vgn lthatjuk mg a command oszlopot is. Ez az utols mez, s ide kerl a vgrehajtand parancs. Ez az utols sor a fentebb trgyalt rtkeket hatrozza meg. szrevehetjk, hogy a sor egy */5 alak felrssal kezddik, amelyet tovbbi * karakterek kvetnek. A * karakterek jelentse els-utols, ami arra utal, hogy mindig. Ennek megfelelen gy rtelmezhetjk ezt a sort, hogy a root felhasznlval le kell futtatni az atrun parancsot minden tdik percben, fggetlenl attl, hogy milyen nap vagy hnap van. Az atrun parancsrl rszletesebban az atrun(8) man oldaln kapunk felvilgostst. Az itt szerepl parancsoknak tetszleges mennyisg paramter tadhat, azonban a tbb soron keresztl tvel parancsok trdelst a sor vgn a \ karakterrel kell jelezni. Ez mindegyik crontab llomny alapbelltsa, habr ettl ltalban egy dologban eltrnek. A hatodik mez, ahol a felhasznlt adtuk meg, csak a rendszer /etc/crontab llomnyban jelenik meg. Ez a mez a felhasznlk crontab llomnyaibl kimarad.

11.6.1. Egy crontab teleptse


Fontos: Nem ktelez az itt ismertetsre kerl mdon szerkeszteni vagy telepteni a rendszer crontabjt. Egyszeren nyissuk meg a kedvenc szvegszerkesztnkkel s a cron segdprogram majd szreveszi, hogy az llomny megvltozott, majd ennek megfelelen neki is lt a mdostott vltozat hasznlatnak. Errl a GYIK-ban (angolul) (http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/faq/admin.html#ROOT-NOT-FOUND-CRON-ERRORS) tbbet is megtudhatunk.

Egy frissen ksztett felhasznli crontab teleptshez elszr a kedvenc szvegszerkesztnk segtsgvel ltre kell hoznunk a megfelel formtum llomnyt, majd hasznlnunk a crontab segdprogramot. Ennek ltalnos alakja:
% crontab crontab_llomny

Ebben a pldban a crontab_llomny a korbban ltrehozott crontab neve lesz. Lehetsgnk van lekrdezni a teleptett crontab llomnyokat: egyszeren adjuk t a -l kapcsolt a crontab parancsnak s nzzk meg mit ad vissza. A crontab -e hasznlata olyan felhasznlk szmra ajnlott, akik sablon alkalmazsa nlkl szeretnnek teljesen maguktl megrni egy crontab llomnyt. Ennek hatsra a kivlasztott szvegszerkeszt egy res llomnyt kap. Miutn ezt az llomnyt elmentettk, a crontab programmal magtl teleptsre kerl.

322

Fejezet 11. Bellts s nomhangols Ha a ksbbiekben trlni akarjuk a felhasznlnkhoz tartoz crontab llomnyt, akkor erre a clra hasznljuk a crontab -r kapcsoljt.

11.7. Az rc hasznlata FreeBSD alatt


rta: Tom Rhodes. A rendszer indtsra a FreeBSD 2002-ben tvette a NetBSD rc.d rendszert. Ezt a felhasznlk knnyen felismerhetik a /etc/rc.d knyvtrban tallhat llomnyokrl. A legtbbjk olyan alapvet szolgltatsok, amelyeket a start, stop s restart paramterekkel lehet vezrelni. Pldul az sshd(8) az albbi paranccsal indthat jra:
# /etc/rc.d/sshd restart

Ez az eljrs hasonl a tbbi szolgltats esetn is. Termszetesen ezek a szolgltatsok ltalban maguktl indulnak el a rendszer indtsa sorn az rc.conf(5) llomnyban megadott szerint. Pldul ha a rendszernk indulsakor szeretnnk aktivlni a hlzati cmfordtssal foglalatoskod dmont, akkor csak adjuk hozz az /etc/rc.conf llomnyhoz a kvetkez sort:
natd_enable="YES"

Amennyiben a natd_enable="NO" sor mr szerepel benne, akkor egyszeren rjuk t a NO rtket YES-re. Ezutn az rc szkriptek a a rendszer kvetkez indtsakor a lentieknek megfelelen automatikusan elindtjk a hozztartoz szolgltatsokat is. Mivel az rc.d rendszert elssorban arra hasznljk, hogy szolgltatsokat indtsanak el vagy lltsanak le az opercis rendszerrel egytt, a szabvnyos start, stop s restart paramterek csak abban az esetben ltjk a feladatukat, ha a nekik megfelel vltozkat belltottuk az /etc/rc.conf llomnyban. Teht pldul a sshd restart csak abban az esetben fog brmit is csinlni, ha az /etc/rc.conf llomnyban az sshd_enable vltozt a YES rtkre lltottuk. Ha az /etc/rc.conf belltsaitl fggetlenl kvnunk egy szolgltatsnak start, stop vagy restart parancsot adni, akkor el kell tennnk egy one szt. Pldul ha az sshd szolgltats jraindtshoz az /etc/rc.conf tartalmt gyelmen kvl akarjuk hagyni, akkor ezt a parancsot kell kiadnunk:
# /etc/rc.d/sshd onerestart

Knnyen le tudjuk ellenrizni, hogy az adott szolgltats az /etc/rc.conf rszrl engedlyezett-e, ha a neki megfelel rc.d szkriptnek megadjuk az rcvar paramtert. Ennek segtsgvel pldul a rendszergazda gy kpes ellenrizni, hogy a sshd szolgltatst engedlyezi-e az /etc/rc.conf:
# /etc/rc.d/sshd rcvar

# sshd $sshd_enable=YES

Megjegyzs: A msodik sor (# sshd) az sshd parancs kimenete, nem pedig a root parancssora.

A status paramterrel kiderthetjk, hogy egy szolgltats aktv-e. Ezzel pldul gy tudjuk ellenrizni a sshd szolgltats mkdst:

323

Fejezet 11. Bellts s nomhangols


# /etc/rc.d/sshd status

sshd is running as pid 433.

Az zenet:
Az sshd a 433-as azonostval fut.

Bizonyos esetekben a reload paramter hasznlatval lehetsgnk a szolgltatsok jraindtsra is. Ilyenkor a rendszer megprbl egy olyan jelzst kldeni a szolgltatsnak, amivel a kongurcis llomnyainak jraolvasst kri. A legtbbszr lnyegben ez a SIGHUP jelzst kikldst rejti magban. Ez a lehetsg azonban nem mindegyik szolgltats esetn rhet el. Az rc.d rendszer nem csupn hlzati szolgltatsok esetn hasznlatos, hanem nagyrszben hozzjrul a rendszer indtshoz is. Erre vegyk pldnak a bgfsck llomnyt. Amikor ez a szkript lefut, a kvetkez zenetet jelenti meg:
Starting background file system checks in 60 seconds.

Az zenet fordtsa:
A httrben 60 msodperc mlva megkezddik az llomnyrendszerek ellenrzse.

Ennek megfelelen teht ezt az llomnyt az llomnyrendszerek httrben foly ellenrzsre hasznljk, ami pedig a rendszer indtsa sorn fut le. Szmos rendszerszolgltats ignyel a mkdshez tovbbi szolgltatsokat. Pldul a NIS s ms egyb tvoli eljrshvson alap szolgltatsok egszen addig nem kpesek elindulni, amg az rpcbind (portmapper) szolgltatst el nem indtjuk. Az ilyen jelleg gondok feloldsra az indtszkriptek elejn lev megjegyzsekben tallhat egy kevs metainformci a szkript mkdshez szksges elemekre (fggsgeire) vonatkozan. A rendszer indtsa kzben az rcorder(8) nev program kpes a megjegyzsek kzt ezeket az informcikat feldolgozni s ebbl megllaptani, hogy a fggsgi viszonyok betartsval milyen sorrendben kell elindtani a rendszer ltal felknlt szolgltatsokat. Ehhez a kvetkez kulcsszavakat kell megadni az egyes indt szkriptek elejn (az rc.subr(8) gy tudja engedlyezni az indt szkriptet):
PROVIDE: segtsgvel megmondjuk, hogy ez

az llomny milyen szolgltatsokat nyjt.

A kvetkez kulcsszavak az egyes indtllomnyok elejn szerepelhetnek. Nem kell felttlenl hasznlnunk ezeket, de velk az rcorder(8) munkjt segthetjk:
REQUIRE: felsoroljuk azokat a

szolgltatsokat, amelyek a futshoz kellenek. Az llomny teht az itt megadott

szolgltatsok utn fog lefutni.


BEFORE: felsoroljuk azokat a

szolgltatsokat, amelyek eltt futtatni kell ezt az llomnyt.

Az indt szkriptekben a kulcsszavak gyes megvlasztsval a rendszergazda nagyon noman kpes az indtskor vgrehajtd szkriptek sorrendjt szablyozni s a tbbi UNIX alap opercis rendszerbl ismert futtatsi szintek hasznlata nlkl vezrlelni a rendszerben megjelen szolgltatsokat. Az rc.d rendszerrl bvebben az rc(8) s rc.subr(8) man oldalakon olvashatunk. Ha szeretnnk sajt rc.d szkripteket rni vagy javtani a mr megleveken, akkor ez a cikk (http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/rc-scripting) (angolul) segtsgnkre lehet.

324

Fejezet 11. Bellts s nomhangols

11.8. A hlzati krtyk belltsa


rta: Marc Fonvieille. Manapsg mr el sem tudunk kpzelni szmtgpet hlzati csatlakozs nlkl. A hlzati csatolkrtyk hozzadsa s belltsa egy FreeBSD rendszergazda mindennapos feladata.

11.8.1. A megfelel meghajtprogram feldertse


Mieltt brminek is nekikezdennk, rdemes tisztban lennnk azzal, hogy a rendelkezsnkre ll krtya milyen tpus, milyen chipet hasznl s hogy PCI vagy ISA buszon csatlakozik-e. A FreeBSD a PCI s ISA csatols krtyk szles spektrumt ismeri. Az egyes kiadsokhoz mellkelt Hardware Compatibility List (Hardverkompatibilitsi lista) dokumentumokban tudjuk ellenrizni, hogy a krtykat ismeri a rendszer. Miutn meggyzdtnk rla, hogy a krtynkat ismeri a rendszer, meg kell keresnnk a hozztartoz meghajtt. A /usr/src/sys/conf/NOTES s a /usr/src/sys/arch/conf/NOTES llomnyok tartalmazzk a hlzati krtyk meghajtinak rvid lerst, benne a tmogatott chipsetek s krtyk tpusaival. Ha ez alapjn nem tudjuk teljes biztosggal eldnteni, hogy melyik a szmunkra megfelel meghajt, nzzk meg a sajt man oldalt. Ezen a man oldalon megtalljuk az ltal ismert sszes eszkzt s velk kapcsolatban elfordul jellemz problmkat. Ha egy elterjedt tpust sikerlt beszereznnk, akkor nem kell klnsebben sokig keresnnk a neki megfelel meghajtt. Az ismertebb hlzati krtyk meghajti ugyanis alapbl benne vannak a GENERIC rendszermagban, ezrt a rendszer indtsa sorn ehhez hasonlan meg is jelennek a krtyk:
dc0: <82c169 PNIC 10/100BaseTX> port 0xa000-0xa0ff mem 0xd3800000-0xd38 000ff irq 15 at device 11.0 on pci0 dc0: Ethernet address: 00:a0:cc:da:da:da miibus0: <MII bus> on dc0 ukphy0: <Generic IEEE 802.3u media interface> on miibus0 ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto dc1: <82c169 PNIC 10/100BaseTX> port 0x9800-0x98ff mem 0xd3000000-0xd30 000ff irq 11 at device 12.0 on pci0 dc1: Ethernet address: 00:a0:cc:da:da:db miibus1: <MII bus> on dc1 ukphy1: <Generic IEEE 802.3u media interface> on miibus1 ukphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto

Ebben a pldban lthatunk is kt olyan krtyt, amelyek a dc(4) meghajtt hasznljk. Ha a hlzati krtynk meghajtja nem szerepel a GENERIC kongurciban, akkor a mkdshez be kell tlteni a megfelel meghajtt. Ezt alapveten ktflekppen rhetjk el:

Ennek legegyszerbb mdja, ha a kldload(8) hasznlatval alkalmanknt vagy a /boot/loader.conf llomnyban a megfelel sor hozzadsval a rendszer indtsval egytt betltjk a hlzati krtya meghajtjhoz tartoz modult. Nem mindegyik hlzati krtya meghajtja rhet el modul formjban. Erre konkrt pldul szolglnak az ISA krtykhoz tartoz modulok. Msik lehetsgnk, ha statikusan beptjk a krtynk tmogatst a rendszermagba. A /usr/src/sys/conf/NOTES s az /usr/src/sys/arch/conf/NOTES llomnyok, valamint a meghajthoz tartoz man oldal elolvassbl megtudhatjuk a rendszermag belltsait tartalmaz llomnyban megadand paramtereket. A rendszermag jrafordtst lsd 8 fejezet. Ha a rendszermag (GENERIC) az induls sorn szlelte a krtynkat, nem kell jat ksztennk.

325

Fejezet 11. Bellts s nomhangols

11.8.1.1. A Windows NDIS meghajtinak hasznlata


Sajnos mg mindig sok olyan gyrt akad, akik a nylt forrs kzssg szmra nem adjk ki a meghajtik mkdsnek alapjait, mivel az ilyen adatokat szakmai titkoknak tekintik. Ebbl kvetkezik, hogy a FreeBSD s ms opercis rendszerek fejleszti szmra kt vlaszts marad: vagy a gyri meghajtk visszafejtsnek hossz s fjdalmas tjn haladva fejlesztik ki a sajt meghajtjukat, vagy pedig a Microsoft Windows platformra kiadott meghajtk binrisait hasznostjk. A legtbb fejleszt, kztk a FreeBSD fejleszti is, ez utbbi megkzeltst vlasztottk. Bill Paul (wpaul) jvoltbl a FreeBSD 5.3-RELEASE vltozatban megjelent a Network Driver Interface Specication (NDIS, avagy hlzati meghajtk szabvnyos fellete) natv tmogatsa. A FreeBSD NDISulator (msnven Project Evil, a Gonosz terve) nev komponense fog egy Windows-os meghajtt s elhiteti vele, hogy a Windows-szal kommunikl. Mivel az ndis(4) meghajt Windows binrisokat hasznl fel, ezrt csak i386 s amd64 rendszerek esetn rhet el.
Megjegyzs: Az ndis(4) meghajt leginkbb a PCI, CardBus s PCMCIA csatolj eszkzk tmogatsra lett kitallva, az USB eszkzket mg nem ismeri.

Az NDISulator hasznlathoz hrom tnyezre van szksgnk: 1. A rendszermag forrsa 2. a Windows XP meghajt binrisa (.SYS a kiterjesztse) 3. a Windows XP meghajt kongurcis llomnya (.INF a kiterjesztse) Keressk meg az emltett llomnyokat az adott krtyhoz. Ezeket ltalban a mellkelt CD-n vagy a gyrt honlapjn talljuk meg. A most kvetkez pldkban a W32DRIVER.SYS s a W32DRIVER.INF neveket fogjuk hasznlni.
Megjegyzs: A Windows i386 architektrj verzijhoz kszlt meghajtprogramokat nem tudjuk a FreeBSD/amd64 verzijval hasznlni. A mkdshez amd64-re kszlt Windows-os meghajtkra van szksg.

A kvetkez lps a meghajt binrisainak betlthet modulba fordtsa. Ennek elrshez hasznljuk az ndisgen(8) parancsot a root felhasznlval:
# ndisgen /windowszos/meghajt/W32DRIVER.INF /windowsos/meghajt/W32DRIVER.SYS

Az ndisgen(8) egy interaktv segdprogram, amely mkdse kzben mg rkrdez nhny szksges informcira. Az aktulis knyvtrban ltrehoz egy rendszermagmodult, amelyet az albbi mdon tudunk betlteni:
# kldload ./W32DRIVER.ko

Az ellltott modul mell be kell tltennk mg az ndis.ko s az if_ndis.ko modulokat is. Ez ltalban minden olyan modul esetn megtrtnik magtl, amely fgg az ndis(4) hasznlattl. Kzileg az kvetkez parancsokkal tudjuk ezeket betlteni:
# kldload ndis # kldload if_ndis

326

Fejezet 11. Bellts s nomhangols Itt az els parancs betlti az NDIS miniport meghajt burkolsra sznt kdot, valamint a msodik a tnyleges hlzati csatolfelletet. Most pedig a dmesg(8) kimenetben ellenrizzk, hogy trtnt-e valamilyen hiba a betlts sorn. Ha minden jl ment, akkor az albbiakhoz hasonl kimenetet produklt:
ndis0: ndis0: ndis0: ndis0: ndis0: <Wireless-G PCI Adapter> mem 0xf4100000-0xf4101fff irq 3 at device 8.0 on pci1 NDIS API version: 5.0 Ethernet address: 0a:b1:2c:d3:4e:f5 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 11g rates: 6Mbps 9Mbps 12Mbps 18Mbps 36Mbps 48Mbps 54Mbps

Innentl kezdve az ndis0 nev eszkzt gy tudjuk hasznlni, mint brmelyik ms hlzati felletet (pldul dc0). A tbbi modulhoz hasonl mdon be tudjuk lltani, hogy a rendszer indulsval egytt betltdjenek az NDIS modulok. Ehhez elszr msoljuk az imnt ltrehozott modult, az W32DRIVER.ko llomnyt a /boot/modules knyvtrba. Ezutn adjuk hozz a kvetkez sort a /boot/loader.conf llomny tartalmhoz:
W32DRIVER_load="YES"

11.8.2. A hlzati krtya belltsa


Ahogy betltdtt a megfelel meghajt a hlzati krtynkhoz, be is kell lltanunk a krtyt. A hlzati krtyk sok ms dologgal egytt bellthatak a telepts sorn a sysinstall segtsgvel. A rendszernkben belltott hlzati csatolfelletek megjelentshez gpeljk be a kvetkez parancsot:
% ifconfig

dc0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet 192.168.1.3 netmask 0xffffff00 broadcast 192.168.1.255 ether 00:a0:cc:da:da:da media: Ethernet autoselect (100baseTX <full-duplex>) status: active dc1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet 10.0.0.1 netmask 0xffffff00 broadcast 10.0.0.255 ether 00:a0:cc:da:da:db media: Ethernet 10baseT/UTP status: no carrier lp0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500 lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 inet 127.0.0.1 netmask 0xff000000 tun0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500

Megjegyzs: A FreeBSD korbbi vltozatainl az ifcong(8) parancsnak ehhez mg meg kell adni az -a kapcsolt is. Az ifcong(8) rvnyes paramterezsvel kapcsolatban legynk szvesek elolvasni a hozztartoz man oldalt. Hozztennnk, hogy IPv6 (inet6 stb.) tpus bejegyzsek nem szerepelnek a pldban.

Az elbbi parancs kimenetben a kvetkez eszkzk jelentek meg:

327

Fejezet 11. Bellts s nomhangols


dc0: az dc1: a lp0: a lo0: a

els Ethernet fellet

msodik Ethernet fellet prhuzamos port fellete loopback eszkz ppp ltal hasznlt tunnelhez tartoz eszkz

tun0: a

A FreeBSD a krtyhoz tartoz meghajt nevvel s egy sorszmmal azonostja a rendszermag indulsa sorn tallt eszkzket. Pldul az sis2 a rendszerben tallhat harmadik olyan eszkz, amely a sis(4) meghajtt hasznlja. A pldban a dc0 eszkz aktv s mkdkpes. Ennek legfontosabb jelei: 1. Az UP sz mutatja, hogy a krtyt sikerlt belltani s kszen ll a hasznlatra. 2. A krtya internet (inet) cme (jelen esetnkben ez 192.168.1.3). 3. rvnyes hlzati maszkkal rendelkezik (netmask, ahol a 0xffffff00 a 255.255.255.0 cmnek felel meg). 4. rvnyes broadcast (zenetszr) cmmel rendelkezik (ami itt most 192.168.1.255). 5. A krtya MAC-cme (ether) 00:a0:cc:da:da:da. 6. A hozztartoz zikai eszkz kivlasztsa automatikus (media: Ethernet autoselect (100baseTX <full-duplex>)). Lthatjuk, hogy a dc1 eszkzt egy 10baseT/UTP tpus zikai eszkzhz lltottuk be. Az egyes meghajtkhoz tartoz zikai mdokrl a nekik megfelel man oldalakon olvashatunk. 7. A kapcsolat llapota (status) active rtk, teht van vonal. A dc1 esetn lthatjuk, hogy a status: no carrier (nincs vonal). Ez teljesen normlisnak tekinthet minden olyan esetben, amikor a krtyba mg nem dugtunk Ethernet-kbelt. Amennyiben az ifcong(8) kimenete valami ilyesmi:
dc0: flags=8843<BROADCAST,SIMPLEX,MULTICAST> mtu 1500 ether 00:a0:cc:da:da:da

akkor az arra utal, hogy a krtyt nem lltottuk be. A krtya belltshoz a root felhasznl jogosultsgaira van szksgnk. A hlzati krtyk belltsa az ifcong(8) segtsgvel elvgezhet parancssorbl is, de a gp jraindtsakor az gy megadott rtkek elvesznek. Ezrt az /etc/rc.conf llomnyba kell felvennnk a hlzati krtyk rvnyes belltsait. A kedvenc szvegszerkesztnkben nyissuk meg az /etc/rc.conf llomnyt. Minden egyes hlzati csatolhoz fel kell vennnk benne egy sort, ennek megfelelen most a pldhoz tartoz mdon az albbiakat:
ifconfig_dc0="inet 192.168.1.3 netmask 255.255.255.0" ifconfig_dc1="inet 10.0.0.1 netmask 255.255.255.0 media 10baseT/UTP"

A dc0 s dc1 neveket kell a rendszernkben tnylegesen megtallhat eszkzk neveire kicserlni, valamint megadni a nekik megfelel cmeket. A krtya meghajtjnak s az ifcong(8) man oldalnak elolvassval kiderthetjk az itt megadhat tovbbi belltsokat, valamint az rc.conf(5) man oldaln rszletesebben megismerhetjk az /etc/rc.conf formai kvetelmnyeit. Ha a telepts sorn belltottuk volna a hlzati kapcsolatokat, akkor tapasztalhatjuk, hogy egyes hlzati krtyk sorai itt mr szerepelnek. Ellenrizzk le az /etc/rc.conf tartalmt mieltt bvtennk!

328

Fejezet 11. Bellts s nomhangols Mindezek mellett az /etc/hosts llomnyba is be kell rnunk a helyi hlzatunkon tallhat klnfle gpek neveit s IP-cmeit, ha mg nem szerepelnnek ott. Errl tovbbi rszleteket a hosts(5) man oldalrl s az /usr/share/examples/etc/hosts llomnybl tudhatunk meg.

11.8.3. Tesztels s hibaelhrts


Miutn az /etc/rc.conf llomnyban elvgeztk a szksges vltoztatsokat, rdemes jraindtanunk a rendszernket. Ennek rvn rvnyestjk a csatolfelletekkel kapcsolatos vltoztatsainkat s ellenrizzk, hogy gy a rendszer mindenfle hibazenet nlkl kpes elindulni. Ahogy a rendszernk mkdkpess vlt, ki is tudjuk prblni a hlzati felleteket.

11.8.3.1. Az Ethernet krtyk tesztelse


Az Ethernet krtyk helyes belltsnak vizsglathoz kt dolgot kell kiprblnunk. Elszr is pingeljk magt a felletet, majd ezutn pingeljnk meg a helyi hlzaton egy msik szmtgpet. Elsknt teht prbljuk meg a helyi felletet:
% ping -c5 192.168.1.3

PING 192.168.1.3 (192.168.1.3): 56 data bytes 64 bytes from 192.168.1.3: icmp_seq=0 ttl=64 time=0.082 64 bytes from 192.168.1.3: icmp_seq=1 ttl=64 time=0.074 64 bytes from 192.168.1.3: icmp_seq=2 ttl=64 time=0.076 64 bytes from 192.168.1.3: icmp_seq=3 ttl=64 time=0.108 64 bytes from 192.168.1.3: icmp_seq=4 ttl=64 time=0.076

ms ms ms ms ms

--- 192.168.1.3 ping statistics --5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max/stddev = 0.074/0.083/0.108/0.013 ms

Most pedig pingeljnk meg egy msik szmtgpet a helyi hlzaton:


% ping -c5 192.168.1.2

PING 192.168.1.2 (192.168.1.2): 56 data bytes 64 bytes from 192.168.1.2: icmp_seq=0 ttl=64 time=0.726 64 bytes from 192.168.1.2: icmp_seq=1 ttl=64 time=0.766 64 bytes from 192.168.1.2: icmp_seq=2 ttl=64 time=0.700 64 bytes from 192.168.1.2: icmp_seq=3 ttl=64 time=0.747 64 bytes from 192.168.1.2: icmp_seq=4 ttl=64 time=0.704

ms ms ms ms ms

--- 192.168.1.2 ping statistics --5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max/stddev = 0.700/0.729/0.766/0.025 ms

Ha belltottuk az /etc/hosts llomnyt, akkor a 192.168.1.2 helyett a gp nevt is megadhatjuk.

329

Fejezet 11. Bellts s nomhangols

11.8.3.2. A hibk elhrtsa


A hardverek s szoftverek belltsaiban mindig is valdi kn megtallni a hibkat, s ezeket a knokat tbbnyire gy tudjuk enyhteni, ha elszr az egyszer hibaforrsokat szrjk ki. Csatlakoztattuk a hlzati kbelt? Tisztessgesen belltottuk a hlzati szolgltatsokat? Jl lltottuk be a tzfalat? A FreeBSD kpes kezelni a krtyt? A hibajelentsek elkldse eltt mindig bjjuk t a tmogatott hardvereszkzk listjt. A FreeBSD verzikat frisstsk a legjabb STABLE vltozatra. Olvassuk t a levelezsi listk archvumait vagy legalbb keressnk r a tmra az interneten. Ha a krtya mkdik, de a teljestmnye nem kielgt, rdemes ennek utnanzni a tuning(7) man oldalon. Ilyenkor rdemes ellenrizni a hlzati belltsainkat is, mivel a helytelen belltsok gyakran okoznak teljestmnyvesztst. Bizonyos esetekben lthatunk egy vagy kt device timeout tpus hibt is, ami a krtyk egyes fajtinl elfogadhat. Ha azonban folyamatosan megjelennek vagy zavarv vlnak, rdemes utnanznnk, hogy az eszkz nem tkzik-e valamelyik msikkal. Mindenkppen gyzdjnk meg a kbelek psgrl s csatlakoztatsrl. Mg az is elkpzelhet, hogy egyszeren csak egy msik hlzati krtyra van szksgnk. Nha felbukkanak watchdog timeout jelleg hibk is. Ilyenkor elsknt mindig a hlzati kbelt ellenrizzk. Egyes krtyknak olyan PCI foglalatra van szksgk, ami tmogatja a Bus Mastering opcit. Nhny rgebbi alaplapon csak ilyen PCI bvthely tallhat (ami ltalban a 0. foglalat). Olvassunk utna a hlzati krtya s az alaplap dokumentcijban, htha ezek okozzk a problmt. A No route to host zenet akkor jelenik meg, ha a rendszer kptelen megllaptani, milyen ton jutassa el a csomagokat a megadott clhoz. Ez tbbnyire olyankor trtnik meg, amikor nem adtunk meg alaprtelmezett kzbestsi irnyt (default route) vagy nem dugtuk be a hlzati kbelt. A netstat -rn kimenetbl meg tudjuk llaptani, hogy ltezik-e rvnyes t az elrni kvnt cl fel. Ha nincs, akkor haladjunk tovbb a 31 fejezetre. A ping: sendto: Permission denied jelleg zeneteket tbbsgben egy helytelenl belltott tzfal okozza. Ha az ipfw mkdst engedlyeztk a rendszermagban, de nem adtunk meg hozz szablyokat, akkor az alaprtelmezett hzirend szerint minden forgalmat blokkolni fog, teht mg a pingeket is! Ezzel kapcsolatban a 30 fejezet elolvasst ajnljuk. Elfordulhat, hogy a krtya teljestmnye igen gyenge vagy az tlagos alatt van. Ilyenkor a zikai eszkz autoselect (automatikus) tpus kivlasztsa helyett rdemes megadnunk a konkrt eszkznek megfelel tpust. Habr ez a legtbb hardver esetn bevlik, nem mindenki szmra jelent megoldst. Ismtelten csak annyit tudunk ehhez hozztenni, hogy ellenrizzk a hlzati belltsainkat s olvassuk el a tuning(7) man oldalt.

11.9. Virtulis cmek


A FreeBSD alkalmazsa sorn igen gyakori a virtulis cmek hasznlata, aminek segtsgvel egyetlen szerver tbb szerverknt kpes ltszdni a hlzaton. Ezt gy rik el, hogy egyetlen fellethez tbb hlzati cmet rendelnek hozz. Az adott hlzati csatolfelletnek van egy valdi cme s tetszleges szm lcme. Ezeket az lcmeket ltalban az /etc/rc.conf llomnyban kell feltntetni. Az fxp0 fellet esetn az lcmek megadsa valahogy gy nz ki:
ifconfig_fxp0_alias0="inet xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx"

330

Fejezet 11. Bellts s nomhangols Figyeljk meg, hogy az lcmekhez tartoz bejegyzsek az alias0 nvvel kezddnek s szm szerint nvekvleg kvetkeznek egyms utn (pldul, _alias1, _alias2 s gy tovbb). A bellts a sorozat els kimarad tagjnl megszakad. Az lcmek hlzati maszkjnak pontos meghatrozsa nagyon fontos, de szerencsre nem klnsebben bonyolult. Minden fellet esetn lennie kell egy olyan cmnek, ami helyesen reprezentlja a hlzat hlzati maszkjt. Minden egyb olyan cmnek, ami ugyanabba az alhlzatba esik, vgig 1-esekbl ll hlzati maszkkal kell rendelkeznik (ami felrhat 255.255.255.255 vagy 0xffffffff formjban is). Pldul vegyk azt, hogy az fxp0 felleten keresztl kt hlzathoz csatlakozunk, melyek kzl az egyik a 10.1.1.0, amelynek hlzati maszkja 255.255.255.0, s a 202.0.75.16, amelynek hlzati maszkja 255.255.255.240. Azt szeretnnk elrni, hogy a rendszernk az 10.1.1.1 cmtl az 10.1.1.5 cmig, valamint a 202.0.75.17 cmtl a 202.0.75.20 cmig jelenjen meg a nekik megfelel hlzatokon. Ahogy arra mr fentebb is utaltunk, az adott hlzati tartomnyban csak az els cmnek (ebben az esetben ez a 10.0.1.1 s a 202.0.75.17) kell valdi hlzati maszkkal rendelkeznie. Minden tovbbi cmnek (a 10.1.1.2 s 10.1.1.5 kztt, valamint a 202.0.75.18 s 202.0.75.20 kztt) legyen 255.255.255.255 a hlzati maszkja. Az albbi /etc/rc.conf bejegyzsek ennek az elrendezsnek megfelelen lltjk be a krtyt:
ifconfig_fxp0="inet 10.1.1.1 netmask 255.255.255.0" ifconfig_fxp0_alias0="inet 10.1.1.2 netmask 255.255.255.255" ifconfig_fxp0_alias1="inet 10.1.1.3 netmask 255.255.255.255" ifconfig_fxp0_alias2="inet 10.1.1.4 netmask 255.255.255.255" ifconfig_fxp0_alias3="inet 10.1.1.5 netmask 255.255.255.255" ifconfig_fxp0_alias4="inet 202.0.75.17 netmask 255.255.255.240" ifconfig_fxp0_alias5="inet 202.0.75.18 netmask 255.255.255.255" ifconfig_fxp0_alias6="inet 202.0.75.19 netmask 255.255.255.255" ifconfig_fxp0_alias7="inet 202.0.75.20 netmask 255.255.255.255"

11.10. Kongurcis llomnyok


11.10.1. Az /etc felptse
A belltsokkal kapcsolatos informcik szmos knyvtrban troldnak. Tbbek kzt:
/etc /etc/defaults /etc/mail /etc/ppp /etc/namedb /usr/local/etc /usr/local/etc/rc.d

ltalnos rendszerszint belltsok. Az itt lev adatok a rendszer egszre vonatkoznak. A rendszer kongurcis llomnyainak alaprtelmezett vltozatait. A sendmail(8) belltshoz tartoz tovbbi llomnyok, egyb levlkldshez hasznlt adatok. A felhasznli s rendszermag szint ppp programok belltsai. A named(8) mkdshez szksges adatok alaprtelmezett helye. ltalban a named.conf s a znk lerst trol llomnyok kerlnek ide. A teleptett alkalmazsok kongurcis llomnyai. Nha alkalmazsonknt kln knyvtrakba kerlnek a benne tallhat llomnyok. A teleptett alkalmazsok indtsval s lelltsval kapcsolatos szkriptek.

331

Fejezet 11. Bellts s nomhangols

/var/db

Automatikusan generlt rendszerszint adatbzisok a csomagokkal, a programok helyvel stb. kapcsolatosan.

11.10.2. Hlzati nevek


11.10.2.1. /etc/resolv.conf
Az /etc/resolv.conf hatrozza meg, hogy a FreeBSD nvfeloldja miknt fr hozz az internet tartomnynv rendszerhez (a DNS-hez). Az resolv.conf llomnyban leggyakrabban a kvetkez bejegyzsek fordulnak el:
nameserver search domain

Annak a nvszernek az IP-cme, ahova a nvfelold kldi a krseit. A nvszervereket a felrs sorrendjben krdezi meg, maximum hrmat. A hlzati nevek kereslistja. Ezt ltalban a helyi hlzati nevek tartomnya hatrozza meg. A helyi tartomny neve.

Egy tlagos resolv.conf tartalma:


search example.com nameserver 147.11.1.11 nameserver 147.11.100.30

Megjegyzs: Csak egy search s domain opcit szabad megadni.

A DHCP hasznlatakor a dhclient(8) fell szokta rni a resolv.conf tartalmt a DHCP szervertl kapott informcikkal.

11.10.2.2. /etc/hosts
Az /etc/hosts az internet kezdeti napjaira emlkeztet egyszer szveges adatbzis. A nevek s IP-cmek kzti lekpzseket a DNS s NIS rendszerekkel karltve oldja fel. Ide a helyi hlzaton csatlakoz szmtgpek neveit lehet berni ahelyett, hogy erre a clra belltannk egy kln named(8) szervert. Ezenkvl mg az /etc/hosts llomnyba internetes nevek rekordjt is felvehetjk, amivel gy cskkenthetjk a gyakran hasznlt nevek feloldsra irnyul kls krseket.
# # # # # # # $FreeBSD$

A hlzati nevek adatbzisa Ebbe az llomnyba rakjuk a helyi hlzaton tallhat cmeket s a hozzjuk tartoz hlzati neveket, ahol szinte ugyanez az

332

Fejezet 11. Bellts s nomhangols


# adatbzis megtallhat. A my.domain helyre a sajt gpnk # nevt rjuk be. # # A DNS vagy NIS alkalmazsa esetn ez az llomny nem felttlenl kerl # felhasznlsra. A nvfelolds sorrendjt az /etc/nsswitch.conf # llomnyban adhatjuk meg. # ::1 localhost localhost.my.domain 127.0.0.1 localhost localhost.my.domain # # Egy kpzeletbeli hlzat. #10.0.0.2 myname.my.domain myname #10.0.0.3 myfriend.my.domain myfriend # # Az RFC 1918-nak megfelelen a kvetkez IP-cmekkel rendelkez # alhlzatok sosem csatlakozhatnak kzvetlenl az internetre: # # 10.0.0.0 10.255.255.255 # 172.16.0.0 172.31.255.255 # 192.168.0.0 192.168.255.255 # # Amikor csatlakozunk az internethez, egy valdi, hivatalosan # kiosztott szmra lesz szksgnk. Ne talljunk ki magunknak # hlzati cmeket, hanem hasznljuk az internetszolgltattl # kapott cmet (amennyiben rendelkeznk # ilyennel) vagy az # regionlis internetes nyilvntartsban szerepl cmek kzl # valamelyiket (ARIN, APNIC, LACNIC, RIPE NCC vagy AfriNIC).

Az /etc/hosts formai felptse igen egyszer:


[internetes cm] [hivatalos hlzati nv] [lnv1] [lnv2] ...

Teht pldul:
10.0.0.1 azEnValodiNevem.aHalozaton.hu azEnValodiNevem izemize1 izemize2

A rszletekrt keressk fel a hosts(5) man oldalt.

11.10.3. A naplllomnyok belltsa


11.10.3.1. syslog.conf
A syslog.conf llomny a syslogd(8) program belltsait tartalmazza. Segtsgvel megadhatjuk, hogy a syslog ltal generlt zenetek egyes tpusait milyen naplllomnyokba mentsk.
# $FreeBSD$ # # Ebben az llomnyban HASZNLHATAK szkzk a mezk elvlasztsra, # habr a tbbi *nix-tpus rendszer inkbb tabultorokat hasznl

333

Fejezet 11. Bellts s nomhangols


# erre a clra. Ha tbb rendszeren is hasznlni akarjuk ezt az # llomnyt, akkor ne hasznljunk szkzket. # # A tbbit lsd a syslog.conf(5) man oldalon. # .err;kern.debug;auth.notice;mail.crit /dev/console .notice;kern.debug;lpr.info;mail.crit;news.err /var/log/messages * security.* /var/log/security mail.info /var/log/maillog lpr.info /var/log/lpd-errs cron.* /var/log/cron root *.err root *.notice;news.err root *.alert *.emerg * # Tegyk vissza ezt a sort, ha a /dev/console eszkzre kirt # zeneteket t akarjuk irnytani az /var/log/console.log llomnyba. #console.info /var/log/console.log # Ha az sszes zenetet a /var/log/all.log llomnyba akarjuk menteni, # akkor tegyk vissza ezt a sort. #*.* /var/log/all.log # Ha egy "loghost" nev gpre szeretnnk naplzni, akkor tegyk vissza # ezt a sort. #*.* @loghost # Az inn hasznlatakor tegyk vissza ezeket a sorokat. # news.crit /var/log/news/news.crit # news.err /var/log/news/news.err # news.notice /var/log/news/news.notice !startslip /var/log/slip.log *.* !ppp /var/log/ppp.log *.*

A syslog.conf(5) man oldalnak elolvassval tudhatunk meg tbbet ezekrl.

11.10.3.2. newsyslog.conf
A newsyslog.conf a newsyslog(8) belltsait trol llomny. Ez egy olyan program, ami ltalban a cron(8) futtat le. A newsyslog(8) dnti el, hogy mikor van szksg a naplk archivlsra s trendezsre. Ennek sorn a logfile llomnybl logfile.0 lesz, a logfile.0 llomnybl pedig logfile.1 s gy tovbb. Bellthatjuk gy is, hogy a naplllomnyokat archivlja gzip(1) formtumban, aminek megfelelen ezek logfile.0.gz, logfile.1.gz s ehhez hasonl nvvel jnnek ltre. A newsyslog.conf megadja, hogy melyik naplllomnyokat kell felgyelni, mennyi pldnyt tartsunk meg bellk s mikor kell velk foglalkozni. A naplllomnyok trendezhetek s/vagy archivlhatak egy adott mret elrsekor vagy egy adott id eltelte utn.
# A newsyslog konfigurcis llomnya # $FreeBSD$ # # llomnynv [tulajdonos:csoport] /var/log/cron

md 600

darab mret mikor [ZB] [/pid_llomny] [jelzs] 3 100 * Z

334

Fejezet 11. Bellts s nomhangols


/var/log/amd.log /var/log/kerberos.log /var/log/lpd-errs /var/log/maillog /var/log/sendmail.st /var/log/messages /var/log/all.log /var/log/slip.log /var/log/ppp.log /var/log/security /var/log/wtmp /var/log/daily.log /var/log/weekly.log /var/log/monthly.log /var/log/console.log 644 644 644 644 644 644 600 600 600 600 644 640 640 640 640 7 7 7 7 10 5 7 3 3 10 3 7 5 12 5 100 100 100 * * 100 * 100 100 100 * * 1 * 100 Z * Z * Z * @T00 Z 168 B Z * @T00 Z Z * Z * Z * @01T05 B @T00 Z $W6D0 Z $M1D0 Z Z *

Tovbbi informcikat a newsyslog(8) man oldalrl nyerhetnk.

11.10.4. sysctl.conf
A sysctl.conf llomny leginkbb az rc.conf llomnyhoz hasonlt, benne az rtkeket vltoz=rtk prokban adhatjuk meg. Az itt denilt rtkek akkor kerlnek tnylegesen belltsra, amikor a rendszer tbbfelhasznls mdba vlt. Ezen a mdon nem mindegyik vltoz rtkt tudjuk tlltani. A sysctl.conf llomnyban az albbi rtk belltsval tudjuk belltani, hogy a rendszer ne naplzza, amikor a programok vgzetes jelzssel fejezdnek be, valamint azt, hogy a felhasznlk lthassk egyms fut programjait:
# Ne naplzzuk a vgzetes jelzsekhez (pldul sig 11) tartoz kilpseket. kern.logsigexit=0 # Ne engedjk a felhasznlknak, hogy lssk egy msik felhasznl # azonostjval fut programokat. security.bsd.see_other_uids=0

11.11. Finomhangols a sysctl hasznlatval


A sysctl(8) egy olyan fellet, amely lehetsget biztost egy mkd FreeBSD rendszer megvltoztatsra. Segtsgvel tbbek kzt hozzfrhetnk a TCP/IP protokollkszlet s a virtulis memrit kezel alrendszer rengeteg apr opcijhoz, melyek megfelel belltsval egy tapasztalt rendszergazda kezben drasztikusan nvelhet a rendszer teljestmnye. A sysctl(8) alkalmazsval tbb mint tszz rendszerszint vltoz krdezhet le s llthat be. A sysctl(8) kt funkcit rejt magban: a rendszer belltsainak lekrdezst s mdostst. gy nzhetjk meg az sszes lekrdezhet vltozt:
% sysctl -a

335

Fejezet 11. Bellts s nomhangols gy krhetjk egy konkrt vltoz, pldul a kern.maxproc rtkt:
% sysctl kern.maxproc

kern.maxproc: 1044

Egy adott vltoz rtknek mdostshoz pedig hasznljuk a vltoz=rtk felrst:


# sysctl kern.maxfiles=5000

kern.maxfiles: 2088 -> 5000

A sysctl vltozk rtkei lehetnek karakterlncok, szmok s logikai rtkek (ahol az 1 az igennek, a 0 a nemnek felel meg). Ha a szmtgp indtsakor automatikusan be akarunk lltani bizonyos vltozkat, akkor vegyk fel ezeket az /etc/sysctl.conf llomnyba. Ennek pontosabb rszleteit a sysctl.conf(5) man oldalon s a 11.10.4 Szakaszban tallhatjuk meg.

11.11.1. A sysctl(8) rsvdett rtkei


rta: Tom Rhodes. Egyes esetekben szksges lehet a sysctl(8) rsvdett vltozinak mdostsa. Habr gyakran elengedhetetlen, ezt kizrlag csak a rendszer (jra)indtsakor tudjuk megtenni. Pldul egyes laptopoknl a cardbus(4) eszkz nem prblkozik tbb memriaterlet hasznlatval, ezrt egy ehhez hasonl hibval lell:
cbb0: Could not map register memory device_probe_and_attach: cbb0 attach returned 12

Az ilyen s ehhez hasonl esetekben gyakran olyan sysctl(8) vltozk alaprtelmezett rtkeit kellene megvltoztatnunk, amelyek rsvdettek. Ilyenkor tegyk az rintett sysctl(8) vltoz objektumazonostjt (OID) s a hozztartoz rtket a /boot/loader.conf llomnyunkba. Az alaprtelmezseket a /boot/defaults/loader.conf llomnyban talljuk meg. A fentebb trgyalt problma megoldshoz a felhasznlnak a hw.pci.allow_unsupported_io_range=1 rtket kell belltania az elbb emltett llomnyban. Ezutn mr a cardbus(4) megfelelen fog mkdni.

11.12. A lemezek nomhangolsa


11.12.1. Sysctl vltozk
11.12.1.1. vfs.vmiodirenable
A vfs.vmiodirenable sysctl vltoz rtke lehet 0 (ki) vagy 1 (be, s ez az alaprtelmezs is). Ez a vltoz vezrli a knyvtrak gyorsttrazst a rendszerben. A knyvtrak tbbsge kis mret, gy az llomnyrendszerbl csak egyetlen (ltalban 1 KB mret) darabkt hasznlnak s mg ennl is kevesebbet (ltalban 512 byte-ot) a pufferben. A vltoz kikapcsolt (avagy 0) rtke mellett a puffer csak rgztett szm knyvtrat traz be mg abban

336

Fejezet 11. Bellts s nomhangols az esetben is, amikor temrdek mennyisg memria ll a rendelkezsre. Ha viszont (az 1 rtkkel) engedlyezzk, akkor a rendszer a knyvtrak trazsra felhasznlja a virtulis memriban pufferelt lapokat is, amivel lnyegben az sszes elrhet memrit a knyvtrak trazsra fordtja. Ilyenkor azonban az egyes knyvtrak trazsra hasznlt legkisebb memriaterlet a zikai lapmrettel egyezik meg (ami ltalban 4 KB) s nem 512 byte. Abban az esetben javasoljuk ennek a belltsnak a hasznlatt, ha olyan szolgltatsokkal dolgozunk, amelyek nagy szm llomnnyal dolgoznak egyszerre. Ilyen szolgltatsok tbbek kzt a webes gyorsttrak, nagyobb levelezrendszerek s hrrendszerek. Az opci engedlyezse alapveten nem veti vissza a rendszer teljestmnyt mg akkor sem, ha ezzel memrit pazarlunk el, de ezt igazbl rdemes kiksrletezni.

11.12.1.2. vfs.write_behind
A vfs.write_behind sysctl vltoz alaprtelmezett rtke 1 (bekapcsolt). Ez arra utastja az llomnyrendszert, hogy csak akkor kldje ki az adatokat az eszkzre, ha bellk teljes frtk gyltek ssze. Ez jellemz mdon nagyobb szekvencilis llomnyok rsa esetn kedvez. Arra szolgl, hogy segtsgvel el lehessen kerlni az I/O tlsgosan gyakori mdostsok okozta terhelst. Bizonyos krlmnyek kzt ez azonban lassthatja a fut programok mkdst, ezrt ilyenkor rdemes megfontolni a kikapcsolst.

11.12.1.3. vfs.hirunningspace
A vfs.hirunningspace sysctl vltoz rtke azt adja meg, hogy tetszleges szm pldnynl rendszerszinten mekkora mrtk rsi mvelet irnythat t a lemezvezrlk soraiba. Az alaprtelmezs tbbnyire elegend, de olyan gpeken, ahol sok lemez dolgozik egyszerre, ez az rtk ngy vagy t megabyte-ra is felszkhet! Hozztennnk, hogy ha ezt az rtket tlsgosan nagyra lltjuk (s gy tllpjk a puffer rsi kszbrtkt), akkor ezzel hihetetlenl gyenge frtzsi teljestmnyt nyernk. Semmikpp se lltsuk tlzottan nagy rtkre! A nagyobb rsi rtkek a velk prhuzamos olvassok szmra ksleltetst is jelentenek. Tallhatunk mg ms egyb pufferelsi s gyorsttrazsi sysctl vltozkat, azonban ezek megvltoztatst egyltaln nem javasoljuk, mivel a virtulis memria alrendszer kivlan tudja nllan lltani ezeket a paramtereit.

11.12.1.4. vm.swap_idle_enabled
A vm.swap_idle_enabled sysctl vltoz mdostsa olyan nagyobb tbbfelhasznls rendszerekben bizonyulhat hasznosnak, ahol sok felhasznl lp be s lp ki a rendszerbe s sok az resjratban fut program. Az ilyen jelleg rendszerek hajlamosak nagy mennyisg folyamatos terhelst mrni a tartalkolt szabad memrira. A bellts engedlyezsvel, valamint a vm.swap_idle_threshold1 s a vm.swap_idle_threshold2 vltozkon keresztl a kilapozs reakciidejnek alkalmas behangolsval a megszokottnl gyorsabban lenyomhatjuk az resjratban dolgoz programokhoz tartoz memrialapok prioritst, amivel a kilapozsokat vezrl dmon kezre jtszunk. Azonban tnyleg csak akkor engedlyezzk ezt a lehetsget, ha valban szksgnk van r, mivel gy a memrit jval elbb lapozzuk ki s ezzel tbb lapozllomnyt s lemezteljestmnyt emsztnk fel. Kisebb rendszerekben jl behatrolhat a hatsa, azonban a nagyobb rendszerekben, ahol mr eleve visszafogott mrtk lapozs trtnik, ez a bellts lehetv teszi a virtulis memrit kezel alrendszer szmra, hogy knnyedn ki- s be rakosgasson komplett fut programokat a memriba.

337

Fejezet 11. Bellts s nomhangols

11.12.1.5. hw.ata.wc
A FreeBSD 4.3 egyszer mr kacrkodott a IDE-lemezek rsi puffernek kikapcsolsval. Ez ugyan cskkentette az IDE-lemezek rsi svszlessgt, azonban bizonyos merevlemezgyrtk gondatlansgbl ered slyos adatvesztsek miatt szksges volt a hasznlata. A gond ezzel kapcsolatban ott van, hogy egyes IDE-meghajtk hazudnak az rsok teljestsrl. A lemezek rsi gyorsttrazsnak bekapcsolsval az IDE-meghajtk nem csak az rsok sorrendjt rendezik t, hanem nagyobb terhels esetn egyes blokkokat jval ksbb is rgztenek. Ezrt a rendszer esetleges sszeomlsa vagy egy ramkimarads slyos krokat okozhat az llomnyrendszerben. A FreeBSD gy dnttt, hogy a megbzhatsgot vlasztja. Sajnos ez olyan nagysg teljestmnyvesztst okozott, hogy a kvetkez kiadsban mr knytelenek voltunk alaprtelmezs szerint is visszakapcsolni ezt a lehetsget. A hw.ata.wc nev sysctl vltoz vizsglatval ellenrizhetjk a rendszernkn rvnyes alaprtelmezett belltst. Amennyiben az IDE rsok gyorsttrazsa nem engedlyezett, akkor ezt a vltoz rtknek 1-re lltsval llthatjuk vissza. Ezt a rendszer indtsakor a rendszerbetltben tehetjk meg. A rendszermag indtsa utn ennek mr nincs hatsa. A rszleteket a ata(4) man oldalon tudhatjuk meg.

11.12.1.6. SCSI_DELAY (kern.cam.scsi_delay)


A rendszermag SCSI_DELAY nev belltsa a rendszer indulsnak idejt hivatott mrskelni. Az alaprtelmezett rtke viszonylag magas, innen szrmazik a rendszer indtsa sorn keletkez 15 msodperces csszst. ltalban az is megfelel, aa ezt visszavesszk az 5 rtkre (fleg a modernebb meghajtk szmra). A FreeBSD jabb (5.0 vagy ksbbi) vltozataiban ez az rtk mr a kern.cam.scsi_delay sysctl vltoz rtkvel is megadhat a rendszer indtsakor. Azonban gyeljnk r, hogy mind a nomhangolshoz hasznlt vltoz, mind pedig rendszermag belltsa ezredmsodpercben s nem msodpercben rtelmezi ezt az rtket.

11.12.2. Soft Updates


A tunefs(8) nev program hasznlhat az llomnyrendszerek nomhangolsra. Nagyon sok opcit tallhatunk benne, de itt most csak a Soft Updates ki- s bekapcsolsval foglalkozunk, amit a kvetkez mdon tehetnk meg:
# tunefs -n enable /allomanyrendszer # tunefs -n disable /allomanyrendszer

Amg egy llomnyrendszer csatlakoztatott llapotban van, addig nem mdosthat a tunefs(8) paranccsal. A Soft Updates bekapcsolsra ezrt az a legalkalmasabb idpont, amikor egyfelhasznls mdban vagyunk s mg egyetlen partcit sem csatlakoztattunk. A Soft Updates bellts engedlyezse a memriban pufferelt gyorsttron keresztl jelents mrtkben fokozza a metaadatok teljestmnyt, elssorban az llomnyok ltrehozst s trlst. A Soft Updates hasznlatt ezrt minden llomnyrendszer esetn ajnljuk. A Soft Updates alkalmazsnak kt rossz oldalra kell tekintettel lennnk. Elszr is a Soft Updates a rendszer sszeomlsa esetn ugyan garantlja az llomnyrendszer konzisztencijt, de knnyen elkpzelhet, hogy tbb msodperccel (vagy akr egy egsz perccel!) htrbb jr a zikai lemez frisstsben. Msodszor a Soft Updates kslelteti az llomnyrendszer blokkjainak felszabadtst. Ha van egy olyan llomnyrendszernk (mint pldul a rendszer indtshoz hasznlt gykr partci), ami mr majdnem betelt, akkor egy nagyobb frissts, pldul a make installworld parancs kiadsa, sorn az llomnyrendszer egyszeren kifogy a helybl s gy a frissts meghisul.

338

Fejezet 11. Bellts s nomhangols

11.12.2.1. Bvebben a Soft Updates mkdsrl


Kt hagyomnyos megkzelts ltezik az llomnyrendszerek metaadatainak visszarsra. (A metaadatok mdostsakor olyan nem adatot tartalmaz blokkok vltoznak meg, mint pldul az llomnyokra vonatkoz informcik vagy a knyvtrak.) Eredetileg alaprtelmezs szerint a metaadatok vltozsait szinkron mdon rtk ki. Amikor egy knyvtr megvltozott, a rendszer egszen addig vrt, amg ez a vltozs a lemezre nem rdott. Ugyanekkor az llomnyok adatait tartalmaz pufferek (az llomnyok tartalma) tkerltek a pufferelt gyorsttrba, hogy majd ksbb, aszinkron mdon kerljenek kirsra. Ennek az implementcinak a biztonsgos mkds volt az elnye, mivel gy a metaadatok mg akkor is konzisztens llapotban maradtak, amikor valamilyen hiba kvetkezett be. Teht egy llomny vagy teljesen ltrejtt vagy egyltaln nem. Ha az llomnyhoz tartoz blokkok mr nem tudtak kijutni a gyorsttrbl az sszeomls ideje eltt, akkor az fsck(8) felismerte ezt a helyzetet s az llomnyrendszer ilyen jelleg hibjt gy orvosolta, hogy az adott llomny mrett nullra lltotta. Ezenkvl mg az implementcis rszletek is tisztk s egyszerek maradtak. Ennek viszont htrnya, hogy a metaadatok kezelse lass. Ha pldul kiadunk egy rm -r parancsot, akkor az a knyvtrban lev llomnyokat szekvencilisan dolgozza fel, de minden egyes vltoztatst (az llomnyok trlst) csak szinkron mdon rgzti a lemezre. Ezek a frisstsek rintik magt a knyvtrat, az llomnyokkal kapcsolatos informcikat trol tblzatot (az n. inode tblt) s minden valsznsg szerint az llomnyok ltal lefoglalt blokkokat is kzvetve. Hasonl megfontolsok lnek a nagyobb knyvtrszerkezetek kibontsa esetn is (tar -x). A msodik lehetsg a metaadatok aszinkron frisstse. Ez az alaprtelmezs a Linux ext2fs s BSD-k mount -o async opcival csatlakoztatott UFS llomnyrendszerei esetn. Ilyenkor minden metaadattal kapcsolatos aktualizls egyszeren bekerlt a pufferelt gyorsttrba, teht az llomnyok adatai s ezek a tpus frisstsek keverednek. Ennek a megvalstsnak az az elnye, hogy nem kell megvrni, amg a metaadatok is kirdnak a lemezre, ezrt a metaadatok risi mennyisg vltozsval jr mveletek sokkal gyorsabban hajtdnak vgre, mint a szinkron esetben. St, maga az implementci is tiszta s egyszer marad, ezrt a kdban megjelen hibk beszivrgsnak kockzata alacsony. A mdszer htrnya, hogy egyltaln semmilyen garancit nem kapunk az llomnyrendszer konzisztencijra. Ha teht egy rengeteg metaadat megvltozsval egyttjr mvelet kzben trtnik valamilyen problma (ramkimarads, vagy valaki egyszeren megnyomja a reset gombot), akkor az llomnyrendszer elre kiszmthatatlan llapotba kerl. A rendszer jbli indtsakor ezrt nincs lehetsgnk megvizsglni az llomnyrendszer llapott. Elkpzelhet, hogy az llomnyokhoz tartoz adatok mr kikerltek a lemezre, mikzben a r vonatkoz inode- vagy knyvtri bejegyzsek mg nem. gy lnyegben lehetetlen olyan fsck implementcit kszteni, ami kpes lenne eltntetni ezt a koszt (hiszen az ehhez szksges adatok nem llnak rendelkezsre). Ha az llomnyrendszer helyrehozhatatlanul krosodott, akkor csak a newfs(8) s a biztonsgi ments visszalltsa segthet rajta. Ezt ltalban gy kszblik ki, hogy az egszhez hozzteszik mg a mdostott terletek feljegyzst, amit gyakran csak naplzsnak (journaling) neveznek, habr ezt az elnevezst nem mindenhol ilyen rtelemben hasznljk, ezrt a tranzakcik naplzsnak ms formira is utalhat. A metaadatok frisstse ebben az esetben is csak szinkron mdon trtnik, de csak a lemez egy kisebb terletre. Ksbb ez a megfelel helyre kerl. Mivel a lemez naplzsra fordtott rsze egy viszonylag kis mret, folytonos terlet, a lemez fejnek mg a megterhelbb mveletek esetn sem kell sokat mozognia, ezrt valjban ez a megolds gyorsabb, mint a mezei szinkron frisstsek. Az implementci bonyolultsga tovbbra is jl behatrolhat, a velejr hibalehetsgek kockzata alacsony. Htrnya, hogy minden metaadat ktszer rdik ki (egyszer a naplzsi terletre, aztn a megfelel helyre), ezrt ez a htkznapi hasznlat sorn visszaess tapasztalhat a teljestmnyben. Msrszrl azonban egy sszeomls esetn a naplzsi terlet segtsgvel minden fggben lev metaadattal kapcsolatos mvelet knnyen visszafordthat vagy lezrhat a rendszer kvetkez indtsakor, s ezzel gy egy gyors helyrelltst nyernk. Kirk McKusick, a Berkeley FFS fejlesztje ezt a problmt a Soft Updates segtsgvel hidalta t: a metaadatokkal kapcsolatos minden fggben lev frisstst a memriban tart, majd ezeket rendezett sorrendben rja ki a lemezre

339

Fejezet 11. Bellts s nomhangols (a metaadatok rendezett frisstse). Ennek kvetkezmnyekppen a metaadatok komolyabb frisstse sorn a ksbb rkez mdostsoknak lehetsgk van elkapni a memriban lev korbbi vltozataikat, ha azok mg nem kerltek ki a lemezre. gy az sszes, pldul knyvtrakon vgzett, mvelet a lemezre rs eltt ltalban elszr a memriban jtszdik le (a adatblokkok a pozcijuknak megfelelen kerlnek rendezsre, ezrt a rjuk vonatkoz metaadatok eltt nem jutnak ki a lemezre). Ha ekzben a rendszer sszeomlik, akkor gy implicit mdon a napl visszalapozst eredmnyezi: minden olyan mvelet, ami mr nem tudott kijutni a lemezre, meg nem trtntnek szmt. Ezen a mdon az llomnyrendszernek egy 30 s 60 msodperc kzti korbbi llapota marad fenn. Az algoritmus garantlja, hogy az sszes hasznlt erforrs a nekik megfelel bittrkpekben helyesen jelldik, a blokkokban s az inode-okban. Az sszeomls utn az erforrsok kiosztsval kapcsolatban csak egyetlen hiba lphet fel: amikor olyan erforrsok jelldnek hasznltnak amely igazbl szabadok. Az fsck(8) azonban kpes felismerni ezeket a helyzeteket s felszabadtani a nem hasznlt erforrsokat. A mount -f parancs kiadsval minden tovbbi kvetkezmny nlkl gyelmen kvl hagyhatjuk az llomnyrendszer flksz llapott s csatlakoztathatjuk az llomnyrendszereket. Az hasznlatban mr nem lev erforrsok felszabadtshoz az fsck(8) parancsot ksbb kell futtatni. Ez az alaptlet hzdik meg a httrben vgzett lemezellenrzs mgtt. A rendszer indtsakor az llomnyrendszernek csupn egy pillanatkpt rgztjk, s az fsck tnyleges lefuttatst ksbbre toljuk. Mivel mindegyik llomnyrendszer csatlakoztathat flksz llapotban, ezrt a rendszer kpes elindulni tbbfelhasznls mdban. Ekzben a httrben az fsck betemezhet minden olyan llomnyrendszer szmra, ahol arra szksg van, hogy szabadtsa fel az esetlegesen mr nem hasznlt erforrsokat. (gy a Soft Updates opcit nem alkalmaz llomnyrendszerek esetn tovbbra is szksg van az eltrben elvgzett fsck parancsra.) A mdszer elnye, hogy gy a metaadatokkal kapcsolatos mveletek kzel olyan gyorsak, mint az aszinkron mdon vgzett frisstsek (teht gyorsabb mintha naplznnk, ami ugye minden metaadatot ktszer r ki). A htrnya a bonyolultabb kd (ami miatt nvekszik az olyan hibk lehetsge, amik rzkenyen befolysolhatjk a felhasznli adatok elvesztst) s a nagyobb memriaigny. Ezenkvl mg van nhny olyan egyni jellemzje, amit meg kell szokni. A rendszer sszeomlsa utn az llomnyrendszer valamivel rgebbi lesz. Amikor pedig megszokott szinkron megkzelts szerint az fsck lefutsa utn nulla mret llomnyok jnnnek ltre, ezek az llomnyok a Soft Updates esetn egyltaln meg sem jelennek, mivel sem a rjuk vonatkoz metaadatok, sem pedig a tartalmuk nem kerlt ki a lemezre. Egy rm lefuttatsa utn a lemezterlet addig nem kerl felszabadtsra, amg a frisstsek teljesen r nem kerlnek a lemezre. Ez nagyobb mennyisg adat teleptsekor gondokat okozhat egy olyan llomnyrendszeren, ahol nincs elegend hely az llomnyok ktszeri trolsra.

11.13. A rendszermag korltainak nomhangolsa


11.13.1. Az llomnyok s a fut programok korltozsai
11.13.1.1. kern.maxfiles
A kern.maxfiles rtke a rendszernk ignyeinek megfelelen nvelhet vagy cskkenthet. Ez a vltoz adja meg a rendszernkben lev llomnylerk maximlis szmt. Amikor az llomnylerkat trol tblzat megtelik, a rendszer zenetpufferben egy file: table is full zenet jelenik meg, amit a dmesg paranccsal tudunk megnzni. Minden megnyitott llomny, csatlakozs vagy FIFO elhasznl egy llomnylert. Egy nagymret szerver knnyen felemszthet tbb ezernyi llomnylert attl fggen, hogy milyen s mennyi szolgltatst futtat egyms mellett.

340

Fejezet 11. Bellts s nomhangols A FreeBSD korbbi kiadsaiban a kern.maxfiles a rendszermag belltsait tartalmaz llomny maxusers (a rendszerben egyszerre jelenlev felhasznlk maximumnak) rtkbl szrmazott, teht a kern.maxfiles a maxusers rtkvel arnyosan nvekszik. Amikor ksztnk egy sajt rendszermagot, mindig rdemes a rendszernk hasznlatnak megfelelen belltani ezt az rtket, mivel a rendszermag ebbl a szmbl hatrozza meg a legtbb elre meghatrozott korltait. Mivel mg egy komoly szerveren sem jelentkeznek be egyszerre 256 felhasznlnl tbben, nagyjbl ugyanannyi erforrsra van szksge, mint egy nagyobb webszervernek. A kern.maxusers rtke a rendelkezsre ll memrinak megfelelen magtl mretezdik a rendszer indtsakor, s amit futs kzben csak a kern.maxusers sysctl vltoz rsvdett rtknek lekrdezsbl tudhatunk meg. Egyes oldalak zemeltetse a kern.maxusers gy megllaptott rtktl nagyobbat vagy ppen kisebbet ignyel, ezrt a betltskor minden gond nlkl t lehet lltani 64, 128 vagy 256 rtkre. Senkinek sem ajnljuk, hogy 256 fel menjen, hacsak tnyleg nincs szksge ekkora mennyisg llomnylerra. A kern.maxusers fggvnyben belltott alaprtelmezett rtkek tetszleges mdon tllthatak a rendszer indtsakor vagy futs kzben a /boot/loader.conf mdostsval (az ide kapcsold javaslatokrl bvebben lsd a loader.conf(5) man oldalt vagy a /boot/defaults/loader.conf llomnyt) illetve a lers ms rszn megadott mdok szerint. A korbbi kiadsokban gy lehet nszablyozra lltani a maxusers belltst, ha explicit mdon 0 rtket adtunk meg neki 1. A maxusers paramter belltsakor legalbb rdemes 4-et megadni, klnsen akkor, ha hasznljuk az X Window Systemet vagy szoftvereket fordtunk le. Azrt van erre szksg, mert a maxusers rtke ltal szablyozott legfontosabb mennyisg az egyszerre futtathat programok tblzatnak maximlis mrete, amelyet gy szmolunk ki: 20 + 16 * maxusers. Teht ha a maxusers rtkt 1-re lltjuk be, akkor az elbb kplet rtelmben csak 36 programunk futhat egymssal prhuzamosan, belertve mindazt a kb. 18 programot, amik a rendszerrel egytt indulnak, illetve mg azt a tovbbi 15 programot, amit az X Window System hasznlatval indtunk el. Mg egy olyan egyszer dolog is, mint pldul egy man oldal megnzse legalbb kilenc programot elindt a szrshez, kitmrtshez s megnzshez. Azonban ha a maxusers rtkt 64-re lltjuk, akkor egyszerre akr mr 1044 programot futtathatunk, ami szinte mindenre elegend. Ha persze egy j program indtsakor kapunk egy proc table full tpus zenetet vagy nagy szm konkurens felhasznlval futtatunk szervert (ilyen pldul a ftp.FreeBSD.org), akkor rdemes nvelni ezt a szmot s jrafordtani a rendszermagot.
Megjegyzs: A maxusers nem korltozza a szmtgpre egyszerre bejelentkezni kpes felhasznlk szmt. Egyszeren csak belltja nhny tblzat mrett s az egyszerre futtathat programok mennyisgt a rendszert egyidejleg hasznlni kvn felhasznlk maximlis szmnak gyelembevtelvel.

11.13.1.2. kern.ipc.somaxconn
Az kern.ipc.somaxconn sysctl vltoz a berkez TCP kapcsolatokat fogad sor hosszt hatrozza meg. Ennek az alaprtelmezett rtke 128, ami az j kapcsolatok megbzhat kezelshez ltalban kevs egy ersen leterhelt webszerver szmra. Ilyen helyzetekben ezt az rtket javasolt 1024-re vagy mg annl is nagyobbra lltani. Az egyes szolgltatsok dmonai ugyan szintn le szoktk korltozni a fogadsoruk mrett (pldul a sendmail(8) vagy az Apache), de gyakran tallunk a belltsai kztt olyat, amivel ennek a sornak a mrete nvelhet. A nagyobb fogadsorok mellesleg j szolglatot tesznek a Denial of Service (DoS) tpus tmadsokkal szemben is.

341

Fejezet 11. Bellts s nomhangols

11.13.2. Hlzati korltozsok


A rendszermag NMBCLUSTERS nev belltsa szab hatrt a rendszer rszre elrhet memriapufferek mennyisgnek. Egy nagyobb forgalm szerver esetn a pufferek alacsony szma gtat szabhat a FreeBSD kpessgeinek. Minden klaszter nagyjbl 2 KB memrit takar, gy az 1024-es rtk azt jelenti, hogy a rendszermag memrijbl 2 megabyte-ot fordtunk a hlzati pufferelsre. Egyszeren kiszmthat mennyire is van szksgnk: ha van egy webszervernk, ami egyszerre legfeljebb 1000 prhuzamos kapcsolatot fogad, s minden kapcsolat lefoglal 16 KB-ot a fogad-, valamint jabb 16 KB-ot a kldpuffer szmra, akkor megkzeltleg 32 MB-nyi hlzati pufferre lesz szksgnk a webszerver hatkony mkdshez. Ezt az rtket gyakran mg rdemes megszorozni kettvel, gy 2 x 32 MB / 2 KB = 64 MB / 2 KB = 32768. Tbb memrival rendelkez szmtgpek esetn egy 4096 s 32768 kzti rtket javaslunk. Semmilyen krlmnyek kztt ne adjunk meg ennl nagyobb rtket, mert ezzel a rendszer mr az indtsa sorn sszeomolhat. A netstat(1) -m belltsval ellenrizhetjk a hlzati klaszterek kihasznltsgt. A kern.ipc.nmbclusters vltoz rtkt a rendszer indtsakor rdemes megvltoztatni. A FreeBSD korbbi vltozataiban ehhez a rendszermag NMBCLUSTERS nev cong(8) paramternek mdostsra van szksgnk. Az olyan forgalmasabb szervereken, ahol sokat hasznljk a sendle(2) rendszerhvst, szksgnk lehet a sendle(2) ltal hasznlt pufferek szmnak nvelsre a rendszermag NFSBUFS nev kongurcis paramtern vagy a /boot/loader.conf llomnyon keresztl (lsd loader(8)). Amikor a fut programok kzl sokan vannak sfbufa llapotban, akkor az egyrtelmen annak a jele, hogy ezen a paramteren lltanunk kell. A kern.ipc.nsfbufs egy rsvdett vltozt, amelyet a rendszermag llt be. Ez a paramter nvlegesen a kern.maxusers vltoz rtknek megfelelen vltozik, de bizonyos esetekben ettl fggetlenl nllan kell behangolni.
Fontos: Annak ellenre, hogy egy socketet blokkolsmentesnek jelltnk meg, a sendle(2) meghvsa egy blokkolsmentes socketre blokkoldst eredmnyezhet egszen addig, amg a hasznlathoz elegend struct sf_buf struktra ssze nem gylik.

11.13.2.1. net.inet.ip.portrange.*
A net.inet.ip.portrange.* sysctl vltozk vezrlik a TCP s UDP csatlakozsokhoz automatikusan hozzrendelt portszmok tartomnyt. Hrom ilyen tartomny ltezik: az als, az alaprtelmezett s a fels tartomny. A legtbb hlzati program a net.inet.ip.portrange.first s net.inet.ip.portrange.last vltozk ltal rendre az 1024-tl 5000-ig kijellt alaprtelmezett tartomnyt hasznlja. A kimen kapcsolatok is rgztett porttartomnyokat kvetnek, s adott krlmnyek mellett be lehet lltani gy a rendszernket, hogy ezen kvl osszon ki portokat. Ez a legtbbszr akkor fordul el, amikor egy ersen leterhelt webproxyt mkdtetnk. A porttartomnyok nem okoznak gondot olyan szervereknl, ahol ltalban bejv kapcsolatokra lehet szmtani, teht pldul webszerverek esetn, vagy ahol korltozott a kimen kapcsolatok szma, mint pldul a levelek tovbbtsnl. Ha olyan helyzetbe keverednnk, ahol mr kifutunk a felhasznlhat portokbl, a net.inet.ip.portrange.last mrskelt nvelsvel javasolt kitrni. Ilyenkor a 10000, 20000 vagy 30000 rtkek elfogadhatak. Amikor megvltoztatjuk a porttartomnyok hatrait, eltte mindig gondoljuk t, milyen hatssal lehet ez a tzfalra. Egyes tzfalak blokkolhatnak bizonyos tartomnyokat (ltalban az alacsonyabbakat) s arra szmtanak, hogy a rendszerek a kimen kapcsolatokhoz a nagyobb szm portokat hasznljk ebbl kifolylag nem ajnlott cskkenteni a net.inet.ip.portrange.first rtkt.

342

Fejezet 11. Bellts s nomhangols

11.13.2.2. A TCP svszlessg-ksletets szorzat


A TCP svszlessg-ksleltets szorzat korltozsa hasonlt a NetBSD-ben megtallhat TCP/Vegas implementcihoz. A net.inet.tcp.inflight.enable sysctl vltoz 1-re lltsval lehet engedlyezni. A rendszer ilyenkor minden egyes kapcsolathoz megprblja kiszmtani a svszlessg-ksleltets szorzatot s az optimlis tviteli sebessg fenntartshoz illeszkeden korltozni a hlzat fel kldtt adatok sornak hosszt. Ez a lehetsg mg olyankor hasznosnak bizonyulhat, amikor modemen, Gigabit Etherneten vagy nagysebessg WAN (vagy brmilyen ms nagy svszlessg-ksleltets szorzattal br) sszekttetseken keresztl kldnk t adatokat, klnsen abban az esetben, amikor ablakmretezst is hasznlnunk vagy nagy kldsi ablakot lltottunk be. Az engedlyezsekor ne felejtsk el net.inet.tcp.infligt.debug vltozt sem belltani 0-ra (amivel gy kikapcsoljuk a nyomkvetst) s les hasznlat esetn pedig elnys lehet a net.inet.cp.inflight.min vltozt legalbb 6144-re lltani. Azonban hozztesszk, hogy sszekttetstl fggen a nagy minimum rtkek tulajdonkppen kikapcsoljk a svszlessgkorltozst. Ez a korltozsi lehetsg cskkenti a kzbens t adatinak s csomagvltsokhoz tartoz sorok mrett, mikzben cskkenti a helyi szmtgp felletn felpl sorok mrett is. Ha kevesebb csomagot rakunk be a sorba, akkor az interaktv kapcsolatok, klnsen a lassabb modemek esetben, kisebb krbejrsi idvel (Round Trip Time) mkdnek. Tovbb megemltennk, hogy ez a lehetsg csak az adatok kldsre (feltltsre, szerveroldalra) van hatssal. Semmilyen befolysa nincs az adatok fogadsra (letltsre). A net.inet.tcp.inflight.stab lltgatsa nem ajnlott. A paramter rtke alaprtelmezs szerint 20, ami legfeljebb 2 csomag hozzadst jelenti a svszlessg-ksleltets szorzat ablaknak kiszmtsakor. Erre a kiegszt ablakra azrt van szksg, hogy stabilizlni tudjuk vele az algoritmust s javtani tudjuk a vltoz felttelekre adott reakcit, de lassabb sszekttetsek esetben nagyobb ping idket is eredmnyezhet (habr ezek mg gy kisebbek, mint ha nem hasznlnnk az algoritmust). Ilyen esetekben megprblhatjuk 15-re, 10-re vagy esetleg 5-re visszavenni a paramter rtkt, de ekkor a kvnt hats elrshez minden bizonnyal a net.inet.tcp.inflight.min rtkt is reduklunk kell majd (pldul 3500-ra). Ezen paramterek megvltoztatst csak vgs esetben ajnljuk!

11.13.3. Virtulis memria


11.13.3.1. kern.maxvnodes
A vnode egy llomny vagy knyvtr bels brzolsa. Ennek megfelelen a vnode-ok szmnak nvelsvel az opercis rendszer sprolni tud a lemezmveletekkel. Ezt ltalban maga az opercis rendszer szablyozza, s nincs szksg a nomhangolsra. Nhny esetben, amikor a lemezmveletek jelentik a rendszerben a szk keresztmetszetet s a kezdenek elfogyni a vnode-ok, szksg lehet ennek a szmnak a nvelsre. Ehhez az inaktv s szabad zikai memria mennyisgt kell szmtsba vennnk. gy krhetjk le a pillanatnyilag hasznlatban lev vnode-ok mennyisgt:
# sysctl vfs.numvnodes

vfs.numvnodes: 91349

gy tudhatjuk meg a vnode-ok maximlis szmt:


# sysctl kern.maxvnodes

kern.maxvnodes: 100000

343

Fejezet 11. Bellts s nomhangols Ha a vnode-ok aktulis kihasznltsga megkzelti a cscsrtket, nagyjbl ezerrel javasolt megnvelni a kern.maxvnodes rtkt. Ezutn gyeljk tovbbra is a vfs.numvnodes vltozst. Ha ismt felkszik a maximlis rtkre, akkor nveljk megint egy keveset a kern.maxvnodes rtkn. Ekzben a top(1) hasznlatval gyelhetjk a memria kihasznltsgnak nvekedst is, ilyenkor teht tbb memrinak kell hasznlatban lennie.

11.14. A lapozterlet bvtse


Nem szmt mennyire tervezk jl elre, mindig elfordulhat, hogy a rendszernk mgsem teljesti a kitztt elvrsokat. Amennyiben tovbbi lapozterlet hozzadsra lenne szksgnk, azt igen knnyen megtehetjk. Hromflekppen nvelhetjk a lapozsra sznt terletet: hozzadunk a rendszerhez egy jabb merevlemezes meghajtt, NFS-en keresztl lapozunk, vagy egy mr meglev partcin hozunk ltre lapozllomnyt. A lapozterlet titkostsval, valamint annak lehetsgeivel s okaival kapcsolatban lapozzuk fel a kziknyv 18.17 Szakaszt.

11.14.1. Lapozs egy j merevlemezre


A lapozterlet bvtsnek legjobb mdja termszetesen remek indok egy j merevlemez beszerzsre is. Elvgre egy merevlemezt mindig fel tudunk ilyen clra hasznlni. Ha ezt a megoldst vlasztjuk, eltte ajnlott (jra) elolvasni a kziknyv 11.2 Szakaszban a lapozterletek elrendezsre vonatkoz javaslatokat.

11.14.2. Lapozs NFS-en keresztl


NFS-en keresztl csak akkor lapozzunk, ha ezt helyi lemezek segtsgvel nem tudjuk megtenni. Az NFS alap lapozs hatkonysgt ersen behatrolja a rendelkezsre ll hlzati svszlessg s tovbbi terheket r az NFS szervernkre is.

11.14.3. Lapozllomnyok
Lapozllomnynak egy adott mret llomnyt hozzunk ltre. Ebben a pldban erre egy /usr/swap0 nev, 64 MB mret llomnyt fogunk hasznlni. Termszetesen brmilyen ms nevet is vlaszthatunk. Plda 11-1. Lapozllomny ltrehozsa FreeBSD-ben 1. Gyzdjnk meg rla, hogy a rendszermagunk belltsai kztt megtallhat a memrialemez meghajtjnak (md(4)) hasznlata. Ez a GENERIC rendszermag alapbl tartalmazza.
device md # Memria "lemezek"

2. Hozzunk ltre egy lapozllomnyt (/usr/swap0):


# dd if=/dev/zero of=/usr/swap0 bs=1024k count=64

3. lltsuk be r a megfelel engedlyeket (/usr/swap0):


# chmod 0600 /usr/swap0

344

Fejezet 11. Bellts s nomhangols 4. Adjuk meg a lapozllomnyt az /etc/rc.conf llomnyban:


swapfile="/usr/swap0"

# lltsuk be swapfile rtkt, ha kls lapozllomnyra van szksg

5. Indtsuk jra a szmtgpnket, vagy a lapozllomny azonnali hasznltba vtelhez rjuk be:
# mdconfig -a -t vnode -f /usr/swap0 -u 0 && swapon /dev/md0

11.15. Energia- s erforrsgazdlkods


rta: Hiten Pandya s Tom Rhodes. Fontos a hardveres erforrsaink hatkony kihasznlsa. Az ACPI megjelense eltt az opercis rendszerek csak nehzkesen s rugalmatlanul tudtk kezelni a rendszer energiafelhasznlsi s hszablyzsi lehetsgeit. A hardvert a BIOS kezelte, ezrt a felhasznl kevesebbet tudott ltni s irnytani az energiagazdlkodsi belltsokbl. Az Fejlett energiagazdlkods (Advanced Power Management, APM) ehhez nyjtott egy ersen korltozott felletet. Napjaink opercis rendszereiben az energia- s erforrskezels az egyik legfontosabb alkotelem. Pldul, ha az opercis rendszerrel folyamatosan gyelni akarjuk a rendszer hmrskletnek vratlan nvekedst (s errl gyelmeztetst krni). A FreeBSD kziknyvnek ezen szakaszban az ACPI-rl adunk egy tfog ttekintst, a vgn pedig sszefoglaljuk a tmhoz tartoz irodalmat.

11.15.1. Mi az ACPI?
A specilis energia- s kongurcis illeszt fellet (Advanced Conguration and Power Interface, avagy ACPI) gyrtk egy csoportja ltal ltrehozott szabvny, amely hardveres erforrsok s az energiagazdlkods egysges fellett rgzti (innen a neve). Dnt szerepet jtszik a Belltsok s az energiagazdlkods opercis rendszerek ltai vezrlsben, vagyis segtsgvel az opercis rendszer mg nagyobb mrtkben s rugalmassggal tudja irnytani ezeket a lehetsgeket. A modern opercis rendszerek az ACPI felbukkansval kitoltk a jelenleg meglev Plug and Play felletek korltait. Az ACPI az APM kzvetlen leszrmazottja.

11.15.2. A Fejlett energiagazdlkods (APM) hinyossgai


A Fejlett energiagazdlkods (APM) a rendszer ltal felhasznlt energit annak elfoglaltsga alapjn vezrli. Az APM-et tmogat BIOS-t a (rendszert) gyrt lltja el s az adott hardverplatformra jellemz. Az APM opercis rendszerben lev meghajtja hozzfrst biztost az APM szoftveres fellethez, amivel lehetsg nylik az energiaszintek kezelsre. Az APM-et 2000 eltt s krl mg mindig hasznltk egyes rendszerek gyrtsnl. Az APM hasznlata ngy nagyobb gondot rejt magban. Elszr is, az energiagazdlkodst a (gyrtfgg) BIOS vgzi el, s az opercis rendszernek errl semmilyen ismerete nincsen. Ennek egyik pldja az, amikor a felhasznl az APM-et ismer BIOS-ban belltja a merevlemezek automatikus kikapcsolsnak idejt, majd amikor ez letelik, a BIOS az opercis rendszer tudta nlkl egyszeren lelltja a lemezt. Msodszor: az APM mkdst a BIOS-ban programoztk le, s teljesen az opercis rendszer hatskrn tl tevkenykedik. Ez azt jelenti, hogy a felhasznl csak gy tudjuk korriglni az APM-es BIOS-ok problmit, ha frissti az alaplapi ROM-ot. Ez viszont egy nagyon kockzatos folyamat, aminek hibja rvn a rendszernk helyrehozhatatlan llapotba kerl. Harmadszor: az APM

345

Fejezet 11. Bellts s nomhangols alapveten egy gyrtfgg megolds, ami azt vonja maga utn, hogy sok az tfeds (ugyanazt valstjk meg tbb mdon), s ha az egyik gyrt BIOS-ban hibt tallnak, akkor a msikban az nem felttlenl javthat. Vgl, de nem utols sorban, az APM alap BIOS-okban nincs elg hely az igazn kinomult energiagazdlkodsi smk vagy brmi ms kialaktsra, amivel a felhasznlk kpesek lennnek az ignyeikhez alaktani a szmtgpet. A Plug and Play BIOS (PNPBIOS) sok szempontbl megbzhatatlannak bizonyult. A PNPBIOS radsul egy 16 bites megolds, ezrt az opercis rendszereknek 16 bites emulcit kell hasznlniuk a PNPBIOS eszkzeinek elrshez. A FreeBSD APM meghajtjnak dokumentcijt az apm(4) man oldalon talljuk.

11.15.3. Az ACPI belltsa


Az acpi.ko meghajt alaprtelmezs szerint a loader(8) segtsgvel tltdik be, s ne is fordtsuk bele a rendszermagba. Ezt azzal tudnnk magyarzni, hogy modulokkal knnyebb dolgozni, pldul ha a rendszermag jrafordtsa nlkl egy msik acpi.ko modult akarunk hasznlni. Ezzel a lnyegben tesztels is egyszerbb vlik. Msik magyarzat, hogy a rendszer ACPI tmogatsa nem minden esetben mkdik rendesen. Ha a rendszer indtsa sorn valamilyen problmt tapasztalunk, akkor prblkozzunk meg az ACPI kikapcsolsval. Ezt a meghajtt nem lehet s nem is szabad kidobni a memribl, mivel a hardverrel a rendszerbuszon keresztl tartja a kapcsolatot. Az ACPI a hint.acpi.0.disabled="1" sor megadsval kapcsolhat a /boot/loader.conf llomnyban vagy a loader(8) parancssorban.
Megjegyzs: Az ACPI s APM egyszerre nem hasznlatak. Kzlk a ksbb betlttt magtl kilp, ha szreveszi, hogy a msikuk mr mkdsbe lpett.

Az ACPI s az acpiconf(8) hasznlatval a rendszernk kszenlti mdba helyezhet az -s valamint az 1-5 paramterek megadsval. Ezek kzl is csak a legtbb felhasznl szmra az 1 vagy a 3 (llapot mentse a zikai memriba) rdekes. Az 5 opci egy szoftveres kikapcsolst eredmnyez, ehhez hasonlan:
# halt -p

A tovbbi opcik a sysctl(8) man oldalrl rhetek el. Ezen kvl mg olvassuk el az acpi(4) s acpiconf(8) man oldalakat is.

11.16. A FreeBSD ACPI tmogatsnak hasznlata s nyomonkvetse


rta: Nate Lawson. Segtsgre volt mg: Peter Schultz s Tom Rhodes. Az ACPI az eszkzk feldertsnek, energiagazdlkodsnak s a korbban a BIOS ltal kezelt hardverek szabvnyostott hozzfrsnek alapjaiban j mdja. Az ACPI folyamatosan fejldik, de tjt az egyes alaplapok ACPI Machine Language (AML) bytekd implementcijban megjelen hibk, a FreeBSD rendszermag alrendszereinek befejezetlensge s az Intel ACPI-CA rtelmezjben lev hibk lasstjk.

346

Fejezet 11. Bellts s nomhangols Ez a lers azzal a szndkkal kszlt, hogy segtsnk a felhasznlknak megtallni az ltaluk tapasztalt problmk gykert s ezzel kisegteni az ACPI fejlesztket a nyomonkvetsben s kijavtsban. Ksznjk, hogy ezt elolvassuk s segdkeznk a rendszernkkel kapcsolatban felmerlt problmk orvosolsban!

11.16.1. A nyomkvetsi informcik bekldse


Megjegyzs: Mieltt bekldennk brmilyen problmt is, gondoskodjunk rla, hogy a BIOS-unk, s ha lehetsges, akkor a begyazott vezrlk, legfrissebb verzijt hasznljuk.

Megkrnnk azokat, akik hibt akarnak bejelenteni, hogy a kvetkez informcikat kldjk a freebsd-acpi@FreeBSD.org (mailto:freebsd-acpi@FreeBSD.org) cmre:

A hibs mkds lersa, belertve a rendszer tpust s gyrtmnyt, illetve minden olyat, aminek kze lehet a hibhoz. Ha eddig mg nem tapasztaltuk, igyekezznk minl pontosabban lerni a hiba keletkezsnek folyamatt. A boot -v paranccsal indtott rendszer dmesg(8) kimenett, belertve a vizsglni kvnt hiba ltal okoztt sszes hibazenetet. A boot -v paranccsal s az ACPI hasznlata nlkl indtott rendszer dmesg(8) kimenete abban az esetben, ha ez segt megoldani a problmt. A sysctl hw.acpi parancs kimenete. Ezzel egybknt kitnen kiderthet milyen lehetsgeket is knl fel a rendszernk. Az ltalunk hasznlt ACPI forrsnyelvnek (ACPI Source Language, ASL) elrhetsge az interneten. Mivel ezek akr igen nagyok is lehetnek, ezrt a listra kzvetlenl ne kldjnk ASL kdokat! Az ASL msolatt az albbi parancs kiadsval hozhatjuk ltre:
# acpidump -dt > nv -rendszer .asl

(Adjuk meg a nv helyett a bejelentkezshez hasznlt nevnket s a rendszer helyett pedig a gyrtt/tpust. Pldul: njl-FooCo6000.asl) Habr a legtbb fejleszt a FreeBSD-CURRENT levelezsi lista (http://lists.FreeBSD.org/mailman/listinfo/freebsd-current)t gyeli, a problmink lerst mindenkppen a freebsd-acpi (http://lists.FreeBSD.org/mailman/listinfo/freebsd-acpi) listra kldjk, hogy biztosan szrevegyk. Legynk trelmesek, hiszen emellett mindannyiunk dolgozik. Ha az ltalunk felfedezett hiba nem teljesen egyrtelm, akkor a fejlesztk valsznleg meg fognak krni arra, hogy a send-pr(1) hasznlatval hozzunk rla ltre egy hivatalos hibajelentst. A hibajelents ksztsekor lehetleg a fentebb megadott informcikat ugyangy adjuk meg. Ez segt a problma szemmel tartsban s elhrtsban. Az freebsd-acpi (http://lists.FreeBSD.org/mailman/listinfo/freebsd-acpi) lista kihagysa nlkl kzvetlenl ne kldjnk hibajelentst, mivel a hibabejelent rendszert elssorban emlkeztetnek hasznljuk, nem pedig a hibk tnyleges bejelentsre. Gyakran elfordul, hogy valaki korbban mr tallkozott a problmnkkal.

11.16.2. Httr
Az ACPI minden olyan modern szmtgpben megtallhat, mely megfelel az ia32 (x86), ia64 (Itanium) vagy amd64 (AMD) architektrnak. A teljes szabvny rengeteg lehetsget biztost, tbbek kzt a processzor teljestmnynek kezelst, az energiaszintek vezrlst, hznkat, klnfle akkumultor rendszereket, begyazott

347

Fejezet 11. Bellts s nomhangols vezrlk s a buszok felsorolst. A legtbb rendszer ltalban nem a teljes szabvnyt valstja meg. Pldul egy asztali rendszer ltalban csak a buszok felsorolsval kapcsolatos rszeket tartalmazza, mikzben egy laptop felajnlhatja a hts s az akkumultor kezelst is. A laptopokban gyakorta tallunk kszenlti zemmdot a maguk elbonyoltott formjban. Egy ACPI-nak megfelel rendszert szmos sszetev alkot. A BIOS-ok s chipkszletek gyrti a memriban egy elre rgztett ponton elhelyeznek bizonyos tblzatokat (pldul FADT), amelyekkel megadjk pldul az APIC sszerendelseit (ezt az SMP rendszerek hasznljk), a kongurcis regisztereket s az egyszerbb kongurcis rtkeket. Itt ezenkvl mg bytekdok egy tblzata (amit Differencilt rendszerlert tblnak, Differentiated System Description Table, DSDT neveznk) is megtallhat, ahol az eszkzk s mdszerek neveit szerepelnek faszer elrendezsben. Az ACPI-hoz tartoz meghajtnak rtelmeznie kell tudnia ezeket a rgztett tblzatokat, implementlnia egy bytekd-rtelmezt, mdostania az eszkzmeghajtkat s a rendszermagot az ACPI alrendszerbl rkez informcik befogadshoz. A Linuxszal s a NetBSD-vel kzsen a FreeBSD kapott egy ilyen rtelmezt az Inteltl (ACPI-CA). Az ACPI-CA forrskdja a rendszer forrsai kztt, a src/sys/dev/acpica knyvtrban tallhatak. A src/sys/dev/acpica/0sd knyvtrban tallhat forrsok pedig lehetv teszik, hogy az ACPI-CA mkdhessen FreeBSD-n. Vgezetl, az ACPI eszkzket megvalst meghajtk a src/sys/dev/acpica knyvtrban tallhatak.

11.16.3. Gyakori problmk


Az ACPI megfelel mkdshez minden alkotrsznek helyesen kell mkdnie. A most kvetkezendkben elfordulsuk gyakorisga szerint felsorolunk nhny ismert problmt, valamint a hozzjuk tartoz javtsokat vagy elkerlsk mdszert.

11.16.3.1. Gondok az egrrel


Egyes esetekben felfggesztett llapotbl visszatrve az egernk nem hajland mkdni. Ezt gy lehet elkerlni, ha /boot/loader.conf llomnyba berjuk a hint.psm.0.flags="0x3000" sort. Ha ez nem segt, akkor a fentieknek megfelelen kldjnk be egy hibajelentst.

11.16.3.2. Felfggeszts/Folytats
Az ACPI hrom (STR) llapotban kpes a zikai memria segtsgvel kszenlti mdba vltani, ezek az S1-S3, s egy llapotban hasznlja a lemezt (STD), amelyet S4-nek hvnak. Az S5 neve a szoftveres kikapcsols, ami egy olyan llapotot takar, amikor a rendszernk ram alatt van, de mg nem zemel. Az S4BIOS llapot a BIOS segtsgvel a lemezre menti a rendszert, az S4OS llapotot pedig teljes egszben az opercis rendszer valstja meg. A rendszernk ltal ismert kszenlti mdokat a sysctl hw.acpi paranccsal ellenrizhetjk. me mindez egy Thinkpad esetn:
hw.acpi.supported_sleep_state: S3 S4 S5 hw.acpi.s4bios: 0

Ez azt jelenti, hogy az acpiconf -s parancs kiadsval kiprblhatjuk az S3, S4OS, s S5 llapotokat. Ha az s4bios rtke egy (1), akkor az S4BIOS tmogatsa helyett az S4 OS llapotot kapjuk.

348

Fejezet 11. Bellts s nomhangols A felfggeszts s folytats kiprblsa sorn kezdjk az S1 llapottal, mr amennyiben az tmogatott a rendszernkn. Ez az llapot tbbnyire hasznlhat, mivel nem ignyel tlsgosan sok tmogatst a meghajt rszrl. Eddig mg senki sem implementlta az S2 llapotot, de ha ezt is tudja a rendszernk, akkor az S1-hez hasonlt nyernk vele. A kvetkez prba az S3 llapot. Ez a legmlyebb STR llapot, s a hardver megfelel jralesztshez rengeteg tmogats szksgeltetik a meghajt rszrl. Ha gondjaink lennnek a rendszernk felbresztsvel, nyugodtan rjunk egy levelet a freebsd-acpi (http://lists.FreeBSD.org/mailman/listinfo/freebsd-acpi) listra, m a problma gyors megolddsban ne remnykedjnk, hiszen ehhez mg temrdek meghajtn s hardveren kell tesztelni s kell dolgozni. A problmt nagy mrtkben segti klnvlasztani, ha igyeksznk minl tbb meghajtt kivenni a rendszermagbl. Ha gy javul a helyzet, akkor mr knnyen le lehet szkteni arra a meghajtra a krt, aminek betltsvel esetleg gondok akadhatnak. ltalban ilyenek a binris meghajtk, mint pldul az nvidia.ko, az X11 megjelentsrt felels s az USB eszkzk meghajti, mikzben az Ethernet eszkzk remekl szoktak mkdni. Ha klnsebb gond nlkl kpesek vagyunk betlteni s eltvoltani ezeket a meghajtkat, akkor ezt a folyamatot nllstani is tudjuk gy, hogy az /etc/rc.suspend s /etc/rc.resume szkriptekbe beillesztjk az ehhez szksges parancsokat. Ezekben egybknt tallunk is egy megjegyzsbe rakott pldt a meghajtk betltsrl s eltvoltsrl. Ha az breszts utn elszemeteldik a kperny tartalma, akkor lltsuk t a hw.acpi.reset_video vltoz rtkt nullra (0). Sokat segthet meg az is, ha a hw.acpi.sleep_delay rtkt cskkentjk vagy nveljk. Megprblhatjuk azt is, hogy elindtunk egy frissebb Linux disztribcit ACPI tmogatssal s ugyanazon a hardveren kiprbljuk az ltala felknlt felfggesztsi s folytatsi lehetsget. Ha Linux alatt ez megbzhatan mkdik, akkor nagy a valsznsge, hogy ez FreeBSD alatt az egyik meghajt hibjbl fakadan nem hasznlhat. gy fokozatosan le is tudjuk szkteni a pontosan melyikkel lehet a gond, s ezzel pedig a fejlesztk munkjt segtjk. Megjegyeznnk, hogy az ACPI-t karbantart fejlesztk ltalban nem foglalkoznak ms meghajtkkal (pldul hangkrtya vagy ATA stb.), ezrt az adott meghajtval kapcsolatos hibrl javasolt rtesteni a freebsd-current (http://lists.FreeBSD.org/mailman/listinfo/freebsd-current) listt s a meghajtrt felels fejlesztt is. Ha van egy kis kedvnk s idnk, mi magunk is belebiggyeszthetnk a meghajtba nhny printf(3) fggvnyt annak kidertsre, pontosan hol is fagy le a folytatsi funkci. Vgl megprblkozhatunk az ACPI kikapcsolsval is, s ttrhetnk helyette az APM hasznlatra. Ha az APM-mel mkdnek a kszenlti llapotok, akkor rdemes inkbb azzal dolgozni, klnsen a rgebbi (2000 eltti) hardverek esetben. A gyrtknak eltartott egy ideig, amg rendes ACPI tmogatst voltak kpesek adni, ezrt a rgebbi hardvereknl inkbb a BIOS-nak akadnak gondjai az ACPI-val.

11.16.3.3. A rendszer lemerevedik (ideiglenesen vagy teljesen)


A legtbb rendszer olyankor akad meg, amikor sok megszakts elveszik, vagy amikor ppen sok megszakts rkezik egyszerre. A chipkszleteknek szmos baja szrmazik abbl, hogy a BIOS milyen mdon lltja be a rendszer indtsa eltt a megszaktsokat, mennyire helyes az APIC (MADT) tblzata s hogyan vezrli a Rendszervezrl megszaktst (System Control Interrupt, SCI). A megszakts-viharok a vmstat -i parancs kimenetben szerepl elveszett megszaktsokbl azonosthatk be, ahol keressnk r az acpi0 sorra. Ha ez a szmll msodpercenknt kettnl tbbel nvekszik, akkor a megszaktsaink viharba keveredtek. Ha a rendszer ltszlag lefagyott, prbljuk meg elhvni a DDB-t (konzolban a CTRL+ALT+ESC) s gpeljk be, hogy show interrupts. A megszaktsi problmkkal kapcsolatban egyetlen remnynk az APIC tmogats kikapcsolsa lehet a loader.conf llomnyban a hint.apic.0.disabled="1" sor hozzadsval.

349

Fejezet 11. Bellts s nomhangols

11.16.3.4. Vgzetes hibk


Az ACPI-vel kapcsolatos vgzetes hibk viszonylag ritkk, s javtsuk a legfontosabb. Ilyenkor az els teendnk elklnteni a hiba reproduklsnak egyes lpseit s (ha lehetsges) lekrni a hvsi lncot. Kvessk az options DDB s a soros vonali konzol belltshoz adott tancsokat (lsd 26.6.5.3 Szakasz) vagy hozzunk ltre egy dump(8) partcit. A DDB-ben a hvsi lncot a tr parancs segtsgvel krhetjk le. Ha kzzel rjuk le lncot, akkor legalbb az als t (5) s a fels t (5) sort mindenkppen jegyezzk fel! Ezutn prbljuk meg gy szkteni a problma lehetsgt, hogy az ACPI hasznlata nlkl indtjuk a rendszert. Ha ezzel nincs semmi gond, akkor a debug.acpi.disable vltoz rtknek megfelel belltsval egyenknt meg tudjuk gyelni az ACPI alrendszer egyes rszeit. Ehhez pldkat az acpi(4) man oldalon tallunk.

11.16.3.5. Felfggeszts vagy lellts utn elindul a rendszer


Elszr is prbljuk meg a hw.acpi.disable_on_poweroff vltoz rtkt 0-ra lltani a loader.conf(5) llomnyban. Ezzel tvoltartjuk az ACPI alrendszert a rendszer lelltsi folyamattl. Egyes rendszereknek valamilyen okbl kifolylag szksgk van itt az 1 (az alaprtelmezett) rtkre. Ez tbbnyire megoldja a problmt, amikor a rendszer vratlanul elindul a kszenlti md aktivlskor vagy kikapcsolskor.

11.16.3.6. Egyb problmk


Ha ms gondjaink lennnek az ACPI-val (dokkol llomsunk van, egyes eszkzket nem vesz szre stb.), akkor termszetesen errl is kldjnk egy lerst a levelezsi listra. Azonban vegyk gyelembe, hogy egyes problmk a ACPI alrendszer eddig mg nem implementlt, befejezetlen rszeihez ktdnek, ezrt azok megoldsa mg vrat magra. Krnk mindenkit, hogy legyen trelemmel s lljon kszen a kikldtt javtsok tesztelsre!

11.16.4. ASL, acpidump s IASL


A problmk leggyakoribb forrsa, hogy a BIOS-gyrtk rossz (vagy kifejezetten hibs!) bytekdokat adnak. Ez ltalban a kvetkezhz hasonl rendszerzenetbl derl ki:
ACPI-1287: *** Error: Method execution failed [\\_SB_.PCI0.LPC0.FIGD._STA] \\ (Node 0xc3f6d160), AE_NOT_FOUND

Az ilyen jelleg hibkat gyakran gy lehet orvosolni, ha a BIOS-unkat frisstjk a legjabb verzira. A legtbb ilyen zenet teljesen rtalmatlan, de ha vannak ms problmink is, pldul az akkumultor llapota nem olvashat le, akkor elszr az AML krnykn rdemes kutakodnunk. A bytekd, ms nven AML, az ASL elnevezs forrsnyelvbl szrmazik. Az AML egy DSDT nven ismert tblzatban tallhat meg. Az ASL msolatt az acpidump(8) paranccsal kszthetjk el. Paramterknt egyarnt adjuk meg a -t (megmutatja a rgztett tblk tartalmt) s -d (visszafejti az AML kdokat az ASL nyelvre) kapcsolkat. A felrs pontos formtumt a A nyomkvetsi informcik bekldse cm szakaszban olvashatjuk. Elsknt prbljuk meg jrafordtani az gy nyert ASL programot s keressnk benne hibkat. A gyelmeztetsek ltalban nyugodtan gyelmen kvl hagyhatak, azonban a hibk olyan implementcis hibkra utalnak, amelyek akadlyozzk az ACPI helyes mkdst. Az ASL jrafordtst az albbi paranccsal tudjuk elvgezni:
# iasl sajt.asl

350

Fejezet 11. Bellts s nomhangols

11.16.5. Az ASL kijavtsa


Vgeredmnyben az a clunk, hogy az ACPI megfelel mkdshez senkinek se kelljen hozznylnia semmihez. Azonban mg mindig szksg van BIOS-gyrtk ltal elkvetett gyakori hibk elkerlsnek kifejlesztsre. A Microsoft rtelmezje (acpi.sys s acpiec.sys) nem ellenrzi szigoran a szabvny szerinti megfelelst, ezrt szmos olyan BIOS-gyrt, akik csak Windows alatt tesztelik az ACPI implementcijukat, soha nem fogjk kijavtani a ASL kdjukban ejtett hibikat. Remnykednk, hogy folyamatosan sikerl felderteni s dokumentlni a Microsoft rtelmezje ltal eltrt szabvnyon kvli viselkedst s leutnozni FreeBSD alatt is, hogy gy ne kelljen a felhasznlknak kzzel a sajt ASL forrsaikat javtgatni. Az ebbl fakad hibkat gy tudjuk elkerlni s segteni a fejlesztknek azonostani a hozz trsul viselkedst, hogy magunk javtjuk az ASL-ben felfedezett hibkat. Ha ez bevlik, akkor kldjk el a rgi s j ASL kzti diff(1)-et a fejlesztknek, akik gy majd az ACPI-CA-ban ki tudnak dolgozni egy megoldst a hibs viselkedsre, ezzel a javtsunk szksgtelenn vlik. Most pedig kvetkezzenek a legismertebb hibazenetek, az okaik s javtsuk:

11.16.5.1. Opercis rendszeri fggsgek


Nhny AML gy gondolja, hogy a vilg csak a klnbz Windows verzikbl ll. A FreeBSD-nek megadhat, hogy msik opercis rendszernek adja ki magt, s ezzel taln meg is szntethet pr hiba. Ezt a legegyszerbb gy tudjuk megtenni, ha a /boot/loader.conf llomnyhoz hozzfzzk a hw.acpi.osname="Windows 2001" sort, vagy itt egy olyan karakterlncot adunk meg, amit az ASL forrsban lttunk.

11.16.5.2. Hinyz visszatrsi rtk


Bizonyos mdszerek a szabvny szerint elvrtaktl eltren nem adnak vissza explicit mdon rtket. Mivel az ACPI-CA ezt nem kezeli le, ezrt a FreeBSD rszrl tartalmaz egy olyan mdostst, amivel implicit mdon is vissza lehet adni rtket. Ha biztosak akarunk lenni a visszaadni kvnt rtkben, akkor helyezznk el a megfelel helyekre explicit Return utastsokat. Az iasl a -f paramterrel knyszerthet az ilyen ASL forrsok lefordtsra.

11.16.5.3. Az alaprtelmezett AML fellbrlsa


Miutn mdostottuk a sajt.asl llomnyunkat, gy tudjuk lefordtani:
# iasl sajt.asl

Az -f kapcsol megadsval kiknyszerthetjk az AML ltrehozst mg abban az esetben is, amikor hibkat tartalmaz. gyeljnk r, hogy bizonyos hibkat (pldul a hinyz visszatrsi rtkeket) a fordt magtl kikerl. Az iasl alaprtelmezett kimenete a DSDT.aml llomny. A /boot/loader.conf trsval gy tudjuk ezzel helyettesteni a BIOS-unk hibs vltozatt (ami mg mindig megtallhat a ash memriban):
acpi_dsdt_load="YES" acpi_dsdt_name="/boot/DSDT.aml"

Ehhez ne felejtsk el a sajt DSDT.aml llomnyunkat bemsolni a /boot knyvtrba.

351

Fejezet 11. Bellts s nomhangols

11.16.6. Nyomkvetsi informcik kinyerse az ACPI-bl


Az ACPI meghajtja nagyon rugalmas nyomkvetsi lehetsgekkel rendelkezik. Ennek rvn ugyangy megadhatjuk a nyomonkvetni kvnt alrendszert, mint ahogy annak mlysgt is. A nyomkvetni kvnt alrendszereket rtegekknt adjuk meg, valamint ezek ACPI-CA komponensekre (ACPI_ALL_COMPONENTS) s ACPI hardvertmogatsra (ACPI_ALL_DRIVERS) bomlanak le. A nyomkvetskor keletkez kimenet rszletessgt a szintknt adjuk meg, ami az ACPI_LV_ERROR-tl (csak a hibk) ACPI_LV_VERBOSE-ig (minden) terjedhet. A szint itt egy bitmaszk, ezrt szkzzel elvlasztva egyszerre tbb bellts megadhat. Ha tlsgosan sok zenet rkezik a konzol zenetpufferbe, akkor szksgnk lehet a soros konzol keresztli nyomkvetsre is. Az sszes szint s rteg az acpi(4) man oldalon tallhat meg. A nyomkvets alaprtelmezs szerint nem engedlyezett. Az engedlyezshez hozz kell adnunk az options ACPI_DEBUG sort a rendszermagunk belltsait tartalmaz llomnyhoz, amennyiben a rendszermagba fordtjuk az ACPI tmogatst. Ha az /etc/make.conf llomnyba rjuk bele az ACPI_DEBUG=1 sort, akkor azt globlis engedlyezhetjk. Ha modulknt hasznljuk, elegend csak a kvetkez mdon jrafordtani az acpi.ko modult:
# cd /sys/modules/acpi/acpi && make clean && make ACPI_DEBUG=1

Teleptsk fel a acpi.ko modult a /boot/kernel knyvtrba s lltsuk be a szmunkra megfelel szintet s rteget a loader.conf llomnyban. Az albbi pldban engedlyezzk az sszes ACPI-CA komponens s az sszes ACPI hardvermeghajt (processzor, LID stb.) nyomkvetst. Csak a hibazeneteket rja ki rszletesen.
debug.acpi.layer="ACPI_ALL_COMPONENTS ACPI_ALL_DRIVERS" debug.acpi.level="ACPI_LV_ERROR"

Ha az ltalunk keresett informcit egy adott esemny vltja ki (pldul egy felfggeszts vagy egy breszts), akkor nem is fontos trnunk hozz a loader.conf llomnyt, hanem helyette a rendszer indtsa utn hasznljuk a sysctl parancsot a rteg s a szint megadsra akkor, amikor a rendszert felksztjk az esemnyre. A sysctl vltozkat ugyangy neveztk el, mint a loader.conf llomnyban tallhat belltsokat.

11.16.7. Hivatkozsok
Az ACPI-rl az albbi helyeken tallunk rszletesebb informcikat:

A FreeBSD ACPI levelezsi lista (http://lists.FreeBSD.org/mailman/listinfo/freebsd-acpi) Az ACPI levelezsi lista archvuma: http://lists.freebsd.org/pipermail/freebsd-acpi/ A korbbi ACPI levelezsi lista archvuma: http://home.jp.FreeBSD.org/mail-list/acpi-jp/ Az ACPI 2.0 specikcija: http://acpi.info/spec.htm A FreeBSD kvetkez man oldalai: acpi(4), acpi_thermal(4), acpidump(8), iasl(8), acpidb(8) A DSDT nyomkvetse (angolul) (http://www.cpqlinux.com/acpi-howto.html#x_broken_dsdt). (Pldnak a Compaqot hozza fel, de ltalnossgban vve hasznos.)

352

Fejezet 11. Bellts s nomhangols

Megjegyzsek
1. Az nszablyoz algoritmus a maxusers rtkt a rendszerben tallhat memrinak megfelelen legalbb 32-re, legfeljebb 384-re lltja.

353

Fejezet 12. A FreeBSD rendszerindtsi folyamata


12.1. ttekints
A szmtgp indulst s a rajta tallhat opercis rendszer betltdst rendszerindtsi folyamatnak nevezzk, vagy egyszeren csak bootolsnak. A FreeBSD rendszerindtsi folyamata nagymrtk rugalmassgot knl a rendszer indulst kvet esemnyek vezrlst illeten, legyen az a szmtgpre teleptett klnfle opercis rendszerek egyiknek kivlasztsa, vagy pedig ugyanazon opercis rendszer valamelyik vltozatnak vagy rendszermagjnak kivlasztsa. Ez a fejezet rszleteiben bemutatja a rendszerindtshoz kapcsold kongurcis opcikat, illetve a FreeBSD bootolsnak testreszabhatsgt. Ebbe minden belertend, ami a FreeBSD rendszermag beindulsa s az eszkzk keresse sorn trtnik, majd az init(8) elindtsval zrul. Ha nem vagyunk teljesen biztosak benne, ez pontosan mikor is kvetkezik be, gyeljk, amikor a szveg szne fehrrl szrkre vlt. A fejezet elolvassa sorn megismerjk:

milyen elemekbl ll a FreeBSD rendszertlt alrendszere, s ezek miknt kapcsoldnak egymshoz; melyek azok a FreeBSD rendszerindtsban rsztvev elemeknek tadhat opcik, amelyekkel vezrelhet ez a folyamat; a device.hints(5) alapjait.
Csak x86: Ez a fejezet kizrlag csak az Intel x86 tpus architektrjn fut FreeBSD rendszerindtsi folyamatt mutatja be.

12.2. A rendszerindts problmja


Az opercis rendszer elindtsa a szmtgp bekapcsolsa utn egy felettbb rdekes problmt vet fel. Denci szerint a szmtgp ugyanis egy lpst sem tud megtenni az opercis rendszer elindulsa nlkl. Pldul nem tud programokat futtatni a lemezrl. Eszerint ha a szmtgpnk nem kpes programokat futtatni a lemezrl az opercis rendszer segtsge nlkl, viszont az opercis rendszer programjai a lemezen vannak, mgis hogyan kpes elindulni maga az opercis rendszer? Maga a problma a Mnchausen br kalandjai c. knyvben lertakhoz hasonl. A trtnet szerint ugyanis a fszerepl egy mocsrban ragadt derk lovval, azonban sikerlt kihznia magt belle a sajt hajnl fogva. Ez a motvum vlt a szmtgpek hskorban a rendszerbetlts alapjv, vagyis ahogyan betltttk az opercis rendszereket. (Ford.: ezt az angolban bootstrappingnek hvjk, mivel a trtnet angol vltozata szerint a csizmjn (boot) emelkedett ki. Ebbl alakult ki ksbb az elterjedt bootols sz is.) Az x86-os kongurcikon a BIOS (Basic Input/Output System, avagy alapvet be- s kimeneti rendszer) felels az opercis rendszer betltsrt. Ehhez a BIOS elszr megkeresi a merevlemezen egy specilis helyn tallhat Master Boot Record-ot (MBR). A BIOS elegend tudssal rendelkezik az MBR beolvasshoz s lefuttatshoz, s

354

Fejezet 12. A FreeBSD rendszerindtsi folyamata felttelezi, hogy az MBR majd elvgzi az opercis rendszer betltshez szksges tovbbi feladatokat, helyenknt a BIOS kzremkdsvel. Az MBR-ben tallhat programkdot hvjk ltalban boot managernek, kivltkpp abban az esetben, amikor az a felhasznlval is kommunikl. Ilyenkor a boot manager tbbnyire tovbbi kdot tartalmaz a lemez els svjn vagy az egyik llomnyrendszerben. (A boot managereket nha boot loadernek is nevezzk, de a FreeBSD-s terminolgia ezt a kifejezst a rendszerindts egy ksbbi fokozatra hasznlja.) Npszerbb boot managerek: boot0 (avagy Boot Easy, a FreeBSD alapvet boot managere), GRUB, GAG s a LILO. (Ezek kzl egyedl csak a boot0 fr el az MBR-ben.) Amennyiben merevlemezeinken csupn egyetlen opercis rendszer foglal helyet, akkor egy szabvnyos MBR tkletes megfelel. Ez az MBR megkeresi az els indthat (ms nven aktv) slice-ot a lemezen, majd lefuttatja a benne tallhat indtkdot az opercis rendszer tbbi rsznek fellesztshez. Az fdisk(8) ltal alaprtelmezs szerint teleptett MBR pontosan ilyen. Ennek alapja a /boot/mbr llomny. Ha viszont tbb opercis rendszert is teleptettnk a lemezeinkre, akkor egy ettl eltr boot managert rdemes hasznlnunk, olyat, amely kpes felsorolni a rendelkezsre ll opercis rendszereket, lehetv tve, hogy vlasztani lehessen az indtsuk kztt. Ezek kzl kettrl esik sz a kvetkez alfejezetekben. A FreeBSD rendszertlt alrendszernek fennmarad rsze hrom fokozatra bonthat. Az els fokozatot az MBR indtja el, amely pontosan eleget tud ahhoz, hogy a szmtgpet egy elre megadott llapotba hozza s lefutassa rajta a msodik fokozatot. A msodik fokozat ennl mr egy kicsivel tbbre kpes, majd ezt kveti a harmadik fokozat. Ez a fokozat zrja le vgl az opercis rendszer betltsnek feladatt. A munka teht ezen hrom fokozat kztt oszlik meg, mivel a PC-szabvnyok komoly korltozsokat tesznek az els, illetve msodik fokozatban futtathat programok mretre. Ha egy fzzk ssze a feladatokat, akkor a FreeBSD szmra egy sokkal rugalmasabb betltt kapunk. Ezutn beindul a rendszermag (ms nven kernel), s nekilt a szmtgpben rendelkezsre ll hardvereszkzk keressnek, majd elkszti ket a hasznlatra. Ahogy a rendszermag beindtsnak folyamata vget rt, az tadja a vezrlst az init(8) nev felhasznli programnak, amely megbizonyosodik a lemezek hasznlhatsgrl. Az init(8) ezt kveten megkezdi az erforrsok felhasznli szint bekongurlst: csatlakoztatja az llomnyrendszereket, belltja a hlzati krty(ka)t, s elindtja mindazon programokat, amelyeknek egy FreeBSD rendszer indulsakor futnia kell.

12.3. A boot manager s az induls fokozatai


12.3.1. A boot manager
Az MBR-ben tallhat programkdot, avagy boot managert, sokszor csak a rendszerindts nulladik fokozataknt emlegetik. Ez az alfejezet a korbban emltett kt boot managert trgyalja: a boot0-t s a LILO-t. A boot0 boot manager: A FreeBSD teleptje vagy a boot0cfg(8) ltal kialaktott MBR alaprtelmezett llapotban a /boot/boot0 llomnyon alapszik. (A boot0 program nagyon egyszer, hiszen az MBR-ben elhelyezhet kd csak 446 byte hosszsg lehet, mert a vgben mg el kell frnie a slice-tblnak s az 0x55AA azonostnak.) Ha teleptettk a boot0-t s a lemezeinken tbb opercis rendszer is megtallhat, akkor a rendszerindts sorn egy hasonl kpet kell ltnunk:

355

Fejezet 12. A FreeBSD rendszerindtsi folyamata Plda 12-1. A boot0 munkban


F1 F2 F3 F4 F5 DOS FreeBSD Linux ?? Drive 1

Default: F2

Ms opercis rendszerek, klnsen a Windows, teleptsk sorn fellrjk a mr meglev MBR-t a sajtjukkal. Ha ez trtnne, vagy egyszeren csak szeretnnk a meglev MBR-t lecserlni a FreeBSD MBR-jvel, adjuk ki a kvetkez parancsot:
# fdisk -B -b /boot/boot0 eszkznv

ahol az eszkznv annak az eszkznek a neve, ahonnan a rendszert indtani szeretnnk, teht pldul ad0 az els IDE-lemez esetn, vagy ad2 a msodik IDE-vezrln tallhat els IDE-lemez esetn, illetve da0 az els SCSI-lemez esetn, s gy tovbb. Ha testre akarjuk szabni az MBR-t, hasznljuk a boot0cfg(8)-t. A LILO boot manager: Ezen boot manager teleptshez s belltshoz, elsknt indtsuk el a Linuxot s vegyk hozz az albbi sort a rendszernkben tallhat /etc/lilo.conf kongurcis llomnyhoz:
other=/dev/hdXY table=/dev/hdX loader=/boot/chain.b label=FreeBSD

A fenti sablont kiegsztve, a linuxos konvencik szerint adjuk meg a FreeBSD elsdleges partcijt s meghajtjt gy, hogy a X -et trjuk a linuxos meghajt betjelre s az Y -t trjuk a Linux elsdleges partcijnak szmra. Ha SCSI-meghajtt hasznlunk, a /dev/hd rszt is t kell rnunk az elbbiek mellett /dev/sd -re. A loader=/boot/chain.b sor elhagyhat abban az esetben, ha mind a kt opercis rendszer ugyanazon a meghajtn tallhat. Ha befejeztk a mdostst, futtassuk le a /sbin/lilo -v parancsot a vltoztatsaink letbe lptetshez. Ezt ellenrizhetjk is a kpernyn megjelen zenetek alapjn.

12.3.2. Az els fokozat (/boot/boot1) s a msodik fokozat (/boot/boot2)


Az els s a msodik fokozat fogalmilag ugyanannak a programnak a rsze, a lemezen ugyanott helyezkedik el. A trbeli megszortsok miatt ugyan el kellett vlasztani ket egymstl, de a teleptsk mindig egy helyre trtnik. A telept vagy a bsdlabel (lsd lentebb) hasznlata sorn a /boot/boot nev kombinlt llomnybl msoldnak ki. Az llomnyrendszereken kvl tallhatak, az aktv slice els svjban, annak els szektortl kezdden. Ez az a hely, ahol a boot0, illetve a tbbi boot manager is keresi a rendszerindts folytatsra alkalmas programot. A felhasznlt szektorok szma knnyedn kiderthet a /boot/boot mretbl. Legfeljebb 512 byte-os mretnl fogva a boot1 llomny nagyon egyszer felpts, s ppen csak annyit tud a slice-ra vonatkoz informcikat trol FreeBSD bsdlabel-rl, hogy megtallja a boot2-t s elindtsa. A boot2 mr egy kicsivel gyesebb, s ismeri elgg a FreeBSD llomnyrendszert ahhoz, hogy megtalljon rajta llomnyokat, valamint kpes egy egyszer felletet nyjtani a rendszermag vagy a betlt megvlasztshoz.

356

Fejezet 12. A FreeBSD rendszerindtsi folyamata Mivel a betlt pedig mr ennl is okosabb, s egy knnyen hasznlhat rendszerindtsi kongurcit tud a felhasznl szmra nyjtani, ezrt a boot2 ltalban ezt indtja el, de eltte kzvetlenl a rendszermag futtatst vgzi el. Plda 12-2. A boot2 mkds kzben
>> FreeBSD/i386 BOOT Default: 0:ad(0,a)/boot/loader boot:

Ha le kellene vltani a korbban teleptett boot1 s boot2 fokozatokat, hasznljuk a bsdlabel(8)-t:


# bsdlabel -B lemezslice

ahol a lemezslice annak a lemeznek s slice-nak a kombincija, ahonnan indtjuk a rendszernket, pldul az els IDE-lemez els slice-a esetn ez az ad0s1.
A veszlyesen dediklt md (Dangerously Dedicated Mode)Amikor a bsdlabel(8) meghvsakor csak a lemez nevt hasznljuk, pldul ad0-t, a parancs egy veszlyesen dediklt lemezt hoz ltre, slice-ok nlkl! Szinte biztos, hogy nem ez az, amire szksgnk lenne, ezrt mindig ellenrizzk kiadsa eltt a bsdlabel(8) parancsot!

12.3.3. A harmadik fokozat (/boot/loader)


A betlt a hrom fokozat rendszertlts utols llomsa. Az llomnyrendszerben /boot/loader nven tallhatjuk meg. A rendszertltt az egyszer kongurlhatsgot tmogat, felhasznlbart eszkznek terveztk, s knnyen megtanulhat, beptett parancsokat hasznl, melyek mgtt egy sszetettebb parancsokat ismer, ersebb rtelmez ll.

12.3.3.1. A rendszertlt mkdse


Az inicializls sorn a rendszertlt megprblja megkeresni a konzolt s a lemezek kzl igyekszik megtallni azt, amelyikrl elindult a rendszer. A keressek eredmnynek megfelelen belltja a vltozkat, majd elindul egy rtelmez, ahol vagy szkriptbl olvasva vagy pedig interaktvan feldolgozsra kerlnek a parancsok. A rendszertlt ezt kveten beolvassa a /boot/loader.rc llomnyt, ami pedig alaprtelmezs szerint feldolgozza a /boot/defaults/loader.conf llomnyt, ahol a vltozk rtelmes kezdrtket kapnak, valamint feldolgozza mg a /boot/loader.conf llomnyt is, ahol a vltozk rtkeit vltoztathatjuk meg. Miutn ez lezajlott, a loader.rc a vltozk rtkeinek megfelelen cselekszik, betltve az ily mdon kivlasztott rendszermagot s a hozz vlasztott modulokat. Vgezetl, a rendszertlt beiktat egy, alaprtelmezs szerint 10 msodperces vrakozsi sznetet, majd elindtja a rendszermagot, ha azt meg nem szaktjuk egy billenty lenyomsval. Ha megszaktjuk ezt a vrakozst, a rendszertlt egy parancssort ad, amin keresztl egyszer parancsokat adhatunk ki neki: llthatjuk a vltozk rtkeit, modulokat tvolthatunk el a memribl, modulokat tltethetnk be, elindthatjuk a rendszert vagy jraindthatjuk a szmtgpet.

357

Fejezet 12. A FreeBSD rendszerindtsi folyamata

12.3.3.2. A rendszertlt beptett parancsai


Kvetkezzenek a leggyakrabban hasznlt parancsok a rendszertltben. Az sszes itt elrhet parancsot a loader(8) man oldalon talljuk meg. autoboot msodperc Megkezdi a rendszermag betltst, ha nem szaktjuk meg a vrakozst msodpercekben megadott idtartam alatt. Ekkor egy visszaszmllst lthatunk, ami az alaprtelmezs szerint 10 msodperctl indul. boot [-opcik] [rendszermag ] Amennyiben lteznek, a megadott opcikkal azonnal megkezdi a megadott rendszermag betltst. A rendszermag paramter csak abban az esetben adhat meg, ha eltte kiadtunk egy unload parancsot, msklnben a korbban betlttt rendszermaggal indul a rendszer. boot-conf Vgigmegy a modulok ugyanazon automatikus kongurcijn, ahogy az a normlis rendszerindts sorn is trtnik. Ezen parancs hasznlatnak csak akkor van rtelme, ha eltte az unload parancsot hasznljuk, megvltoztatunk egy-kt vltozt, ltalban a kernel-t. help [tmakr ] A /boot/loader.help llomnyban fellelhet sgzeneteket mutatja meg. Ha tmakrnek indexet adunk meg, akkor az elrhet tmakrk listjt kapjuk meg. include llomnynv . . . Feldolgozza a megnevezett llomnyt: beolvassa, majd sorrl-sorra rtelmezi. Hiba esetn azonnal meglltja a feldolgozst. load [-t tpus] llomnynv A nv alapjn betlti a rendszermagot, modult vagy az adott tpus llomnyt. Az llomnynv utn megadott tovbbi paramterek az llomnynak addnak t. ls [-l] [elrsi tvonal] Kilistzza a megadott elrsi tvonalon tallhat llomnyokat, vagy ennek hinyban a gykr tartalmt. Ha hozztesszk a -l kapcsolt, az llomnyok mrete is lthat vlik. lsdev [-v] Kilistzza az sszes olyan eszkzt, ahonnan modulokat tlthetnk be. Amennyiben a -v kapcsolt is megadjuk, tovbbi rszleteket tudhatunk meg rluk. lsmod [-v] Kilistzza a betlttt modulokat. Ha tbbet szeretnnk megtudni rluk, adjuk meg a -v kapcsolt. more llomnynv Megmutatja a megadott llomny tartalmt, minden LINES szm sor utn sznetet tartva.

358

Fejezet 12. A FreeBSD rendszerindtsi folyamata reboot Azonnal jraindtja a szmtgpet. set vltoz set vltoz=rtk Belltja a rendszertlt krnyezeti vltozjnak rtkt. unload Eltvoltja a memribl az sszes betlttt modult.

12.3.3.3. Rendszertlt pldk


me nhny konkrt plda a rendszertlt hasznlatra:

gy indthatjuk egyfelhasznls mdban az ltalunk hasznlt rendszermagot:


boot -s

Tvoltsuk el a betlttt rendszermagot s a moduljait, s tltsk be helyettk a korbbi (vagy egy msik) rendszermagot:
unload load kernel.old

Itt hasznlhatjuk a kernel.GENERIC nevet is, amely a teleptlemezen tallhat ltalnos rendszermagra utal, vagy a kernel.old nevet, amely a korbban hasznlt rendszermagot rejti (pldul amikor rendszermagot frisstettnk vagy ksztettnk magunknak).
Megjegyzs: A kvetkezkppen lehet betlteni a szoksos moduljainkat egy msik rendszermaggal:
unload set kernel="kernel.old " boot-conf

Egy rendszermag-kongurcis szkript (automatizlt szkript, amely ugyanazokat a belltsokat vgzi el, amiket mi magunk tennnk akkor, amikor a rendszermagot indtjuk) betltse:
load -t userconfig_script /boot/kernel.conf

12.3.3.4. Rendszerbetlt kpernyk


Ksztette: Joseph J. Barbish. A rendszertlts sorn megjelen rendszerzenetek megjelentse helyett egy sokkal megnyerbb, ltvnyosabb rendszerindtst tudunk elrni betlt kpernyk hasznlatval. Egy ilyen kpet egszen a konzolos bejelentkezsig vagy az X felett fut valamelyik bejelentkez kperny megjelensig lthatunk. FreeBSD alatt alapveten kt tpus krnyezet ltezik. Ezek kzl az egyik a hagyomnyos virtulis konzolos parancssoros fellet. Ekkor a rendszertlts befejezdsekor egy szveges parancssori bejelentkez promptot kapunk. A msik krnyezet az X11 ltal felknlt grakus fellet. Miutn teleptettk az X11 szervert s valamelyik

359

Fejezet 12. A FreeBSD rendszerindtsi folyamata munkakrnyezetet, teht pldul a GNOME, a KDE vagy XFce krnyezetek valamelyikt, a startx paranccsal indthatjuk el a grakus felletet. Nmely felhasznlk a megszokott szveges bejelentkezs helyett is inkbb valamelyik X11 alap grakus bejelentkezst szeretnk hasznlni. A klnbz bejelentkez kpernyk, mint amilyen az Xorg esetn az XDM, a GNOME esetn a gdm, vagy a KDE esetn a kdm (illetve a Portgyjtemnybl szrmaz egyb megoldsok) alapveten a konzolos bejelentkezs helyett nyjtanak egy grakus bejelentkez felletet. Ilyenkor a sikeres bejelentkezst kveten a felhasznl kzvetlenl egy grakus krnyezetbe kerl. A parancssoros fellet esetn a rendszertlt kperny elrejti az sszes rendszerzenetet s a rendszer indtsakor futtatott programok zeneteit. Az X11 hasznlata esetn azonban a felhasznlk ezzel egytt mr a tbbi, alaprtelmezs szerint grakus fellettel rendelkez rendszerhez (Microsoft Windows vagy ms nem-UNIX opercis rendszer) hasonl lmnyt nyernek. 12.3.3.4.1. A rendszerbetlt kpek tmogatsa A FreeBSD csak BMP (.bmp) vagy ZSoft PCX formtum, 256 szn rendszerbetlt kpek megjelentst tmogatja. Emellett szabvnyos VGA krtykon csak akkor fog mkdni, ha a kp 320x200 vagy annl kisebb felbonts. Nagyobb mret kpek esetn, egszen az 1024x768-as felbontsig, a FreeBSD VESA tmogatsra lesz szksgnk. Ezt vagy a rendszer indtsakor a VESA modul betltsvel engedlyezhetjk, vagy ha a rendszermag kongurcis llomnyban megadjuk a VESA sort s ksztnk egy sajt rendszermagot (lsd 8 fejezet). A VESA tmogatson keresztl a felhasznlk a teljes kpernyt betlt rendszerbetlt kpeket is meg tudnak gy jelenteni. A rendszerbetlt kperny a rendszer indtsa kzben brmikor tetszlegesen kikapcsolhat egy tetszleges billenty lenyomsval. A megadott betltkperny alaprtelmezs szerint a kpernyvd szerept is betlti az X11 felletn kvl. Ha teht egy ideig nem hasznljuk a szmtgpnket, akkor a kperny tvlt a betltkpre s folyamatosan vltoztatni kezdi az intenzitst, a nagyon vilgosbl a nagyon sttbe, majd jrakezdi. Az alaprtelmezett kpernyvd az /etc/rc.conf llomnyban a saver= sor megadsval llthat t. Ehhez a belltshoz tbb klnbz beptett kpernyvd tartozik, ezek teljes listjt a splash(4) man oldalon olvashatjuk. Ezek kzl az alaprtelmezett a warp. Az /etc/rc.conf llomnyban megadhat saver= csak a virtulis konzolokra vonatkozik, az X11 bejelentkez kpernyire semmilyen hatssal sincs. A rendszerbetlt nhny zenete, valamint a rendszerindtsi opcikat tartalmaz men s a hozztartoz visszaszmlls mg a rendszerbetlt kperny hasznlata sorn is meg fog jelenni. A http://artwork.freebsdgr.org (http://artwork.freebsdgr.org/node/3/) cmen tallhatunk nhny ilyen betltkpernyt. A sysutils/bsd-splash-changer port teleptsvel pedig a rendszer egyes indtsakor egy elre megadott gyjtemnybl tudunk vletlenszeren vlasztani egyet.

12.3.3.4.2. A rendszerbetlt kpek hasznlata A betltkpet tartalmaz (.bmp vagy .pcx kiterjeszts) llomnyt a rendszerindt partcira, pldul a /boot knyvtrba kell tennnk. A norml (256 szn, legfeljebb 320x200-as felbonts) kpek esetn a kvetkez sorokat adjuk hozz a /boot/loader.conf llomnyhoz:
splash_bmp_load="YES" bitmap_load="YES"

360

Fejezet 12. A FreeBSD rendszerindtsi folyamata


bitmap_name="/boot/betltkp.bmp"

Nagyobb felbonts esetn (legfeljebb 1024x768-as mretig) pedig a /boot/loader.conf llomnynak a kvetkezket kell tartalmaznia:
vesa_load="YES" splash_bmp_load="YES" bitmap_load="YES" bitmap_name="/boot/betltkp.bmp"

Az imnti pldban feltteleztk, hogy a /boot/betltkp.bmp llomnyt hasznlt betltkpknt. Amikor azonban PCX llomnyokat akarunk hasznlni, a kvetkez sorokat kell megadnunk, a felbontstl fggen a vesa_load="YES" sorral kiegsztve:
splash_pcx_load="YES" bitmap_load="YES" bitmap_name="/boot/betltkp.pcx "

Termszetesen a kp neve sem csak betltkp lehet. Tetszlegesen elnevezhetjk, egyedl csak arra kell gyelnk, hogy BMP vagy PCX formtum legyen: splash_640x400.bmp vagy pldul blue_wave.pcx. Tovbbi rdekes belltsok a loader.conf llomnybl:
beastie_disable="YES"

Ennek megadsakor nem jelenik meg a rendszerindtsi lehetsgeket felknl men, de a visszaszmlls megmarad. Hiba tiltjuk le a ment, ilyenkor tovbbra is vlasztanunk kell a lehetsgek kzl.
loader_logo="beastie"

Ezzel a belltssal a menben lthat FreeBSD feliratot cserlhetjk le a korbbi kiadsokban szerepl sznes dmonos emblmra.

12.4. Kapcsolat a rendszermaggal a rendszerindts folyamn


Ahogy sikerlt betlteni (a szoksos mdon) a rendszertltvel vagy (a rendszertlt tugrsval) a boot2 segtsgvel, a rendszermag megvizsglja az esetlegesen tvett rendszerindtsi paramtereket, s azoknak megfelelen viselkedik.

12.4.1. A rendszermag paramterei


A rendszermag leginkbb hasznlt paramterei:
-a

a rendszermag inicializlsa sorn rkrdez a gykr llomnyrendszerknt csatlakoztatand eszkzre.

361

Fejezet 12. A FreeBSD rendszerindtsi folyamata


-C

a rendszer indtsa CD-rl.


-c

a UserCong, a rendszerindts sorn hasznlt rendszermag-bellt, futtatsa.


-s

a rendszer indtsa egyfelhasznls mdban.


-v

rszletesebb informcik megjelentse a rendszermag indtsa sorn.


Megjegyzs: Ezeken kvl mg szmos paramter ltezik, a teljes listt a boot(8) man oldalon tallhatjuk meg.

12.5. Eszkz tmutatk (device.hints)


rta: Tom Rhodes.
Megjegyzs: Ez a lehetsg csak a FreeBSD 5.0 vagy annl ksbbi verziiban jelenik meg.

A rendszerindts kezdeti szakaszban a loader(8) beolvassa a device.hints(5) llomnyt. Ebben az llomnyban troldnak a gyakran csak eszkz tmutatknak nevezett vltozk, amelyek a rendszermag szmra nyjtanak hasznos informcikat az induls sorn. Ezeket az tmutatkat az eszkzmeghajtk hasznostjk az ltaluk ismert eszkzk belltsa sorn. Az eszkzkre vonatkoz ilyen jelleg tmutatsok a harmadik fzisban megjelen parancssorban is megadhatak. A vltozkat a set (bellt) parancs segtsgvel tudunk felvenni, mg az unset (eltvolt) parancs tudunk trlni, valamint a show (megmutat) paranccsal megjelenteni az rtkket. St, ezen a ponton a /boot/device.hints llomnnyal mr belltott vltozkat is fellbrlhatjuk. A rendszerindt parancssorban elvgzett mdostsok viszont nem fognak megmaradni, s a kvetkez rendszerindts alkalmval elvesznek. Ahogy a rendszernk hasznlatra ksz llapotba kerlt, a kenv(1) parancs hasznlhat a vltozk rtkeinek listzshoz. A /boot/device.hints llomnyban soronknt egy-egy vltozt tudunk megadni, illetve a kettskereszttel (#) bevezetve megjegyzseket illeszthetnk bele. A sorok szerkezete az albbi:
tmutat.meghajt.egysg.kulcssz="rtk "

A harmadik fzisban pedig gy adhatjuk meg:


set tmutat.meghajt.egysg.kulcssz=rtk

362

Fejezet 12. A FreeBSD rendszerindtsi folyamata Itt a meghajt az eszkzmeghajt neve, az egysg az eszkzmeghajt ltal kezelt egyik egysg sorszma, a kulcssz pedig az tmutatshoz tartoz kulcssz. Ez a kvetkezk egyike lehet:
at: az

tmutats az eszkz ltal hasznlt buszra vonatkozik. tmutats az eszkz ltal hasznlt I/O-cmre vonatkozik.

port: az irq: az drq: az

tmutats az eszkz ltal hasznlt megszakts sorszmra vonatkozik. tmutats az eszkz ltal hasznlt DMA-csatorna sorszmra vonatkozik. tmutats az eszkz ltal hasznlt zikai memriaterlet kezdcmre vonatkozik. eszkzhz tartoz bitek belltsa. az rtke 1, akkor az adott eszkz hasznlatt letiltjuk.

maddr: az flags: az

disabled: ha

Az eszkzmeghajtk elfogadhatnak (vagy vrhatnak) olyan tmutatsokat is, amelyek itt nem szerepelnek, ezrt mindegyik esetben rdemes ttekinteni a hozzjuk tartoz man oldalt. Bvebben informcirt lsd a device.hints(5), kenv(1), loader.conf(5) s loader(8) man oldalakat.

12.6. Init: A folyamatirnyts elindtsa


Miutn a rendszermag sikeresen elindult, tadja a vezrlst a init(8) felhasznli folyamatnak, amely vagy az /sbin/init, vagy pedig a rendszerindtban megadott init_path vltoz ltal mutatott program.

12.6.1. Az automatikus jraindulsi folyamat


Az automatikus jraindulsi folyamat gondoskodik rla, hogy az indulst kveten rendelkezsre ll llomnyrendszerek ne legyenek srltek. Amennyiben mgis srltek s a fsck(8) nem tudja megjavtani ket, az init(8) a rendszert egyfelhasznls mdba lltja, ahol a rendszergazdnak kell kzvetlenl megoldania a fennll problmkat.

12.6.2. Egyfelhasznls md
Ezt a mdot az automatikus jraindtsi folyamat sorn rhetjk el, vagy akkor, ha a rendszert a -s kapcsolval indtjuk, esetleg a rendszerindtban belltjuk a boot_single vltozt. Ezt a mdot tbbfelhasznls mdban, a shutdown(8) hvsval is aktivlhatjuk, ha nem adjuk meg az jraindtst (-r) vagy lelltst (-h) kr opcik egyikt sem. Ha az /etc/ttys llomnyban a console rtkt insecure (nem biztonsgos)ra lltjuk, a rendszer az egyfelhasznls mdba lps eltt krni fogja a root felhasznl jelszavt. Plda 12-3. Nem biztonsgos konzol megadsa az /etc/ttys-ben
# name getty type status comments # # If console is marked "insecure", then init will ask for the root password # when going to single-user mode. console none unknown off insecure

363

Fejezet 12. A FreeBSD rendszerindtsi folyamata


Megjegyzs: Az insecure (nem biztonsgos) konzol az, ahol nem tekintjk megbzhatnak a rendszerkonzol zikai biztonsgt, s biztosak akarunk lenni benne, hogy csak az kpes hasznlni a rendszert egyfelhasznls mdban, aki ismeri a root felhasznl jelszavt. Ez teht nem arra utal, hogy magt a konzolt akarjuk nem biztonsgos mdban mkdtetni. Szval, ha biztonsgot akarunk, az insecure-t vlasszuk, ne pedig a secure-t.

12.6.3. Tbbfelhasznls md
Ha az init(8) mindent rendben tall, vagy ha a felhasznl kilpett az egyfelhasznls mdbl, a rendszer tbbfelhasznls mdba lp t, ahol megkezdi az erforrsok kongurlst.

12.6.3.1. Az erforrsok kongurcija (rc)


Az erforrsok kongurl alrendszer beolvassa a folyamathoz kapcsold vltozk alaprtelmezett rtkeit az /etc/defaults/rc.conf llomnybl, majd mdostja ket a rendszer egyni belltsai szerint, amit a /etc/rc.conf llomnybl olvas ki. Ezutn elvgzi meg az /etc/fstab alapjn az llomnyrendszerek csatlakoztatst, elindtja a hlzati szolgltatsokat, egyb rendszerdaemonokat, s vgezetl lefuttatja a teleptett csomagok indtszkriptjeit. Az erforrsokat kongurl alrendszerrl magrl az rc(8) man oldalon, valamint az rintett szkriptek tanulmnyozsval tudhatunk meg tbbet.

12.7. A lelltsi folyamat


A shutdown(8) paranccsal vezrelt lellts sorn az init(8) megprblja lefuttatni az /etc/rc.shutdown szkriptet, majd ezt kveten TERM (befejeztets) jelzst kld az aktulisan fut folyamatoknak, s kis id mlva pedig KILL (lellts) jelzst azokat, amelyek mg nem lltak le addig a pillanatig. Azokon az architektrkon s rendszereken, ahol elrhet a fejlett energiagazdlkods tmogatsa, a FreeBSD-t a shutdown -p now paranccsal llthatjuk le, amit kzvetlenl a szmtgp automatikus kikapcsolsa kvet. A FreeBSD-s rendszer jraindtshoz egyszeren csak adjuk ki a shutdown -r now parancsot. Fontos tudni, hogy alaprtelmezs szerint a shutdown(8) hasznlathoz root felhasznlnak, vagy legalbb az operator csoport tagjnak kell lennnk. Erre feladatokra egybknt a halt(8) s reboot(8) parancsok is hasznlhatak. Alkalmazsukrl bvebben a hozzjuk, valamint a shutdown(8)-hoz tartoz man oldalakon tallhatunk bvebben informcikat.
Megjegyzs: Az energiagazdlkods hasznlathoz a rendszermagnak beptve vagy a megfelel modul betltsvel bizostania kell az acpi(4) tmogatst.

364

Fejezet 13. Felhasznlk s hozzfrsek alapvet kezelse


rta: Neil Blakey-Milner.

13.1. ttekints
A FreeBSD lehetv teszi, hogy egyazon idben egyszerre tbb felhasznl is dolgozhasson a szmtgpen. Kzlk nyilvnvalan csak egy kpes eltte lni 1, de rajta kvl mg sok ms felhasznl is be tud jelentkezni a munkjhoz hlzaton keresztl. A rendszer hasznlathoz minden egyes felhasznlnak hozzfrssel kell rendelkeznie. A fejezet elolvassa sorn megismerjk:

a FreeBSD rendszerben megtallhat klnfle felhasznli hozzfrsek kzti klnbsgeket; hogyan ksztsnk j felhasznli hozzfrseket; hogyan trljnk felhasznli hozzfrseket; hogyan vltoztassuk meg a hozzfrs adatait, mint pldul a felhasznlk teljes nevt vagy a vlasztott parancsrtelmezjt; hogyan korltozzuk az egyes hozzfrseket vagy hozzfrsek egy csoportjt az olyan erforrsok, mint pldul a memria vagy a processzorid vdelmben; hogyan hasznljuk csoportokat a hozzfrsek karbantartsnak megknnytsre.

A fejezet elolvasshoz ajnlott:

a UNIX s a FreeBSD alapjainak ismerete (3 fejezet).

13.2. Bevezets
A rendszert brmilyen fajta mdon csak hozzfrseken keresztl tudjuk elrni, minden programot felhasznlk futtatnak, ezrt a felhasznlk s hozzfrsek kezelse a FreeBSD rendszerek szerves rsze. A FreeBSD rendszerben minden hozzfrs rendelkezik bizonyos informcikkal az azonostshoz. Felhasznl neve A felhasznlnevet a login: felirat megjelensekor kell megadni. A felhasznlk neveinek egyedinek kell lenni a szmtgpen, teht kt felhasznl nem hasznlhatja ugyanazt a nevet. A passwd(5) man oldalon megtallhatjuk azokat a szablyokat, amik az rvnyes felhasznlnevek ltrehozsra vonatkoznak. ltalnossgban elmondhat, hogy a felhasznlneveknek kisbetsek kell lennik s legfeljebb nyolc karakterbl llhatnak.

365

Fejezet 13. Felhasznlk s hozzfrsek alapvet kezelse Jelsz Minden hozzfrshez tartozik egy jelsz is. Ez a jelsz lehet akr res is, ebben az esetben nincs szksg jelszra a hozzfrshez. Ez viszont tbbnyire egy nagyon rossz tlet: minden hozzfrst ersen ajnlott jelszval vdeni. Felhasznl azonostja (User ID, UID) Az UID egy szm, amely hagyomnyosan 0-tl 65535-ig terjed 2, s a felhasznl rendszeren belli egyedi azonostsra hasznlatos. A FreeBSD az UID-ot a felhasznlk beazonostsra hasznlja brmelyik parancs, amely lehetv teszi felhasznlnevek megadst, t fogja alaktani UID-d, mieltt tnylegesen dolgozni kezdene vele. Ez teht azt jelenti, hogy tbb hozzfrsnk is lehet tbb klnbz felhasznlnvvel, de ugyanazzal az UID-del. Legalbb is a FreeBSD ezeket egyetlen felhasznlnak tekinti, de nem is valszn, hogy ilyenre valaha szksgnk is lenne. Csoportazonost (Group ID, GID) A csoportazonost (Group ID, GID) egy szm, amely ltalban 0-tl 65535-ig terjed 2, s azt az elsdleges csoportot azonostja be egyedileg, amihez a felhasznl tartozik. A csoportok segtsgvel az erforrsok hozzfrsnek vezrlst tudjuk megoldani a felhasznlk GID-jvel az UID-dek helyett. Ezzel jelents mrtkben cskkenthet egyes kongurcis llomnyok mrete. Egy felhasznl egyszerre tbb csoport tagja is lehet. Bejelentkezsi osztly A bejelentkezsi osztlyok a csoportszervezs kibvtst clozzk meg, tovbbi rugalmassgot nyjtanak, amikor a rendszert az egyes felhasznlk ignyeihez szabjuk. Jelszvltsi id Alaprtelmezs szerint a FreeBSD nem knyszerti r a felhasznlkat, hogy rendszeresen megvltoztassk a jelszavukat. Ezt felhasznlnknt kiknyszerthetjk, s gy az egyes, vagy akr az sszes felhasznlt ktelezhetjk az adott idkznknt jelszvltsra. A hozzfrs lejrati ideje A FreeBSD-ben alaprtelmezs szerint nem vlnek el a hozzfrsek. Ha azonban olyan hozzfrseket kell ltrehoznunk, melyeknek korltoznunk kell az lettartamukat, mint pldul egy iskolban a dikok szmra, akkor ilyenkor meg tudjuk adni a lejratuk idejt. Ezen dtum utn a hozzfrssel mr nem lehet bejelentkezni a rendszerbe, viszont a hozztartoz knyvtrban trolt llomnyok tovbbra is megmaradnak. Felhasznl teljes neve Mg a felhasznlnv tkletesen azonostja a FreeBSD szmra a hozzfrst, nem felttlenl tkrzi a felhasznl valdi nevt. Ezt az informcit is meg lehet adni a hozzfrshez. Felhasznli knyvtr A felhasznli knyvtr a rendszerben tallhat azon knyvtr teljes elrsi tvonala, ahov a felhasznl a bejelentkezst kveten kerl. Elterjedt megszoks, hogy az sszes felhasznl knyvtrt a /home/felhasznlnv vagy a /usr/home/felhasznlnv knyvtrba teszik. A felhasznlk ezekben a knyvtrakban troljk a szemlyes llomnyaikat, s tetszleges knyvtrakat ltrehozhatnak benne.

366

Fejezet 13. Felhasznlk s hozzfrsek alapvet kezelse Felhasznli parancsrtelmez A parancsrtelmez biztostja azt az alaprtelmezett krnyezetet, amiben a felhasznl kapcsolatba tud lpni a rendszerrel. Tbbfle parancsrtelmez is akad, s a tapasztaltabb felhasznlk ragaszkodnak is nmelyikkhz, amely gyakran lthat is a hozzfrsk belltsaiban. Hrom f tpusa van a hozzfrseknek: az adminisztrtori, a rendszer- s a felhasznli hozzfrsek. Az adminiszttori hozzfrs, amelyre gyakran rootknt hivatkoznak, hasznlatos a rendszer karbantartsra, s semmilyen korltozs nem rvnyes r. A rendszerhozzfrsek szolgltatsokat futtatnak. Vgezetl a felhasznli hozzfrseket hasznljk a valdi emberek, akik bejelentkeznek, leveleket olvasnak s gy tovbb.

13.3. Az adminisztrtori hozzfrs


Az adminiszttori hozzfrs, amelyet ltalban csak rootnak neveznk, a rendszeradminisztrcis feladatok elvgzshez van igaztva, s nem ajnlott az olyan htkznapi tevkenysgek elvgzshez, mint pldul a levelek olvassa s rsa, a rendszer bejrsa vagy a programozs. Ezrt az adminisztrtor, eltren az tlagos felhasznli hozzfrsektl, kpes mindenfle hatrok nlkl tevkenykedni, s az adminisztrtori hozzfrs helytelen hasznlata ltvnyos katasztrfkat idzhet el. A felhasznli hozzfrsek kptelenek mer vletlensgbl tnkretenni a rendszert, ezrt ltalnossgban vve az a legjobb, ha egyszer felhasznli hozzfrseket hasznlunk, amint mdunk van r, hacsak nincs szksgnk kifejezetten klnleges jogosultsgokra. Minden esetben rdemes alaposan megfontolni az adminisztrtorknt kiadott parancsokat, mivel egyetlen hinyz szkz vagy ms egyb karakter helyrehozhatatlan krokat okozhat a rendszerben. Ezrt, ha mg nem tettk volna meg korbban, legyen az els dolgunk a fejezet elolvassa utn, hogy ltrehozunk egy kiemelt jogosultsgokkal nem rendelkez felhasznlt sajt magunk szmra a htkznapi feladatok lebonyoltsra. Ez ugyangy vonatkozik a tbbfelhasznls s az egyfelhasznls mdban fut rendszerekre is. A fejezet egy ksbbi rszben lerjuk, hogyan lehet tovbbi hozzfrseket ltrehozni s hogyan kell vltani egy mezei felhasznl s az adminisztrtor hozzfrse kztt.

13.4. Rendszerhozzfrsek
A rendszer ltal hozzfrsek azok, amelyek olyan szolgltatsok futtatsrt felelsek, mint pldul a DNS, levelezs, webszerverek s gy tovbb. Ennek oka a biztonsg: ha minden szolgltatst adminisztrtorknt futtatnnk, brmit meg tudnnak tenni a rendszerben. Ilyen rendszerfelhasznlk a daemon, operator, bind (a nvfeloldshoz), news, s a www. A nobody (senki) egy ltalnos jogosultsgok nlkli rendszerfelhasznl. Mindazonltal nem szabad elfelejtennk, hogy minl tbb szolgltatst bzunk a nobody-ra, annl tbb llomny s program kerl vele kapcsolatba s ennlfogva annl ersebb vlik a rendszer szmra ez a felhasznl.

13.5. Felhasznli hozzfrsek


A felhasznli hozzfrsek a vals felhasznlk elsdleges eszkzei a rendszer fel, s ezek a hozzfrsek

367

Fejezet 13. Felhasznlk s hozzfrsek alapvet kezelse szigetelik el a felhasznlkat s a krnyezeteket, megakadlyozva, hogy a felhasznlk krt okozzanak akr a rendszerben, akr egymsnak, valamint lehetv teszik a felhasznlk szmra a krnyezeteik testreszabst anlkl, hogy tbbiekt mdostani kellene. Minden olyan szemlynek, aki hozz akar frni a rendszernkhz, rendelkeznie kell felhasznli azonostval. Ezltal meg tudjuk llaptani ki mivel foglalkozik ppen a rendszerben, s meg tudjuk akadlyozni, hogy a felhasznlk elrjk egyms belltsait, olvassk egyms leveleit s gy tovbb. Minden felhasznl alaktani tudja a sajt krnyezett, s ezzel mintegy berendezkedik a rendszernkben, klnfle parancsrtelmezk, szvegszerkesztk, billenty-hozzrendelsek s nyelvek hasznlatval.

13.6. A hozzfrsek mdostsa


Egy UNIX-os krnyezetben tbb klnbz parancs kzl vlaszthatunk a felhasznli hozzfrsek mdostsakor. A legltalnosabb parancsokat az albbiakban foglaljuk ssze, amelyet ezutn a hasznlatukat rszletesebben bemutat pldk kvetnek. Parancs adduser(8) rmuser(8) chpass(1) passwd(1) pw(8) Lers az j felhasznlk felvtelre ajnlott parancssoros alkalmazs a felhasznlk eltvoltsra ajnlott parancssoros alkalmazs rugalmas eszkz a felhasznli adatbzis informciinak megvltoztatsra egy egyszer parancssoros segdprogram a elhasznli jelszavak megvltoztatshoz egy erteljes s rugalmas segdeszkz a felhasznli hozzfrsek teljeskr mdostshoz

13.6.1. adduser
A adduser(8) a felhasznlk hozzadsra hasznlhat egyszer program. Bejegyzseket hoz ltre a rendszer passwd s group llomnyaiban. Ezen kvl mg ltrehozza az j felhasznl knyvtrt is, odamsolja az alaprtelmezett kongurcis llomnyokat a /usr/share/skel knyvtrbl (ezek a felhasznlknl ponttal kezdden jelennek meg, de az emltett knyvtrban dot eltaggal szerepelnek), s opcionlisan kld egy dvzllevelet az jdonslt felhasznlnak. Plda 13-1. Felhasznl hozzadsa a FreeBSD-ben
# adduser

Username: jantyik Full name: Jantyik Zsolt Uid (Leave empty for default): Login group [jantyik]: Login group is jantyik. Invite jantyik into other groups? []: wheel Login class [default]: Shell (sh csh tcsh zsh nologin) [sh]: zsh Home directory [/home/jantyik]: Use password-based authentication? [yes]: Use an empty password? (yes/no) [no]:

368

Fejezet 13. Felhasznlk s hozzfrsek alapvet kezelse


Use a random password? (yes/no) [no]: Enter password: Enter password again: Lock out the account after creation? [no]: Username : jantyik Password : **** Full Name : Jantyik Zsolt Uid : 1001 Class : Groups : jantyik wheel Home : /home/jantyik Shell : /usr/local/bin/zsh Locked : no OK? (yes/no): yes adduser: INFO: Successfully added (jantyik) to the user database. Add another user? (yes/no): no Goodbye!
#

Megjegyzs: A jelsz a bers sorn egyltaln nem jelenik meg, mg csillagokat sem lthatunk a karakterek helyn. Ezrt vigyzzunk, nehogy elgpeljk vletlenl a jelszt!

13.6.2. rmuser
Az rmuser(8) hasznlhat a felhasznlk teljes eltvoltsra a rendszerbl. Az rmuser(8) az albbi lpeseket hajtja vgre: 1. 2. 3. 4. 5. 6. 7. 8. Eltvoltja a felhasznl crontab(1) bejegyzseit (amennyiben lteznek). Eltvoltja az at(1) felhasznlhoz tartoz munkit. Lelltja a felhasznl ltal birtokolt sszes fut programot. Eltvoltja a felhasznlt a rendszer helyi jelsz llomnybl. Eltvoltja a felhasznl knyvtrt (amennyiben az a felhasznl birtokban van). Eltvoltja a felhasznlhoz tartoz berkez leveleket tartalmaz llomnyt a /var/mail knyvtrbl. Eltvoltja a felhasznl tulajdonban lev sszes llomnyt az olyan ideiglenes trhelyekrl, mint pldul a
/tmp knyvtr.

Vgezetl eltvoltja a felhasznl nevt az sszes olyan csoportbl, amihez az /etc/group szerint tartozik.
Megjegyzs: Ha menetkzben egy csoport ress vlik, s a csoport neve megegyezik a felhasznl nevvel, a csoportot is eltvoltsra kerl. Ez kiegszti a adduser(8) eszkzzel ltrehozott felhasznlnknti egyedi csoportokat.

369

Fejezet 13. Felhasznlk s hozzfrsek alapvet kezelse A rmuser(8) nem hasznlhat adminisztrtori hozzfrsek trlsre, mivel az szinte majdnem mindig a teljes sszeomlst vonja maga utn. Alaprtelmezs szerint interaktv mdban mkdik, melynek sorn megprbl megbizonyosodni rla, hogy tnyleg a megfelel dolgot cselekedjk. Plda 13-2. rmuser Hozzfrsek interaktv eltvoltsa
# rmuser jantyik

Matching password entry: jantyik:*:1001:1001::0:0:Jantyik Zsolt:/home/jantyik:/usr/local/bin/zsh Is this the entry you wish to remove? y Remove users home directory (/home/jantyik)? y Updating password file, updating databases, done. Updating group file: trusted (removing group jantyik -- personal group is empty) done. Removing users incoming mail file /var/mail/jantyik: done. Removing files belonging to jantyik from /tmp: done. Removing files belonging to jantyik from /var/tmp: done. Removing files belonging to jantyik from /var/tmp/vi.recover: done.
#

13.6.3. chpass
A chpass(1) segtsgvel meg tudjuk vltoztatni a felhasznli adatbzisban tallhat informcikat, mint pldul a jelszavakat, parancsrtelmezket s a szemlyes adatokat. Csak a rendszeradminisztrtoroknak, mint pldul magnak az adminisztrtornak, szabad megvltoztatnia a felhasznlk adatait a chpass(1) programmal. Amikor az opcionlisan megadhat felhasznli nvtl eltekintve nem adunk t neki paramtereket, a chpass(1) egy szvegszerkesztben megnyitja az rintett felhasznl adatait. Miutn kilptnk belle, a felhasznli adatbzist a megvltoztatott adatokatnak megfelelen frissti.
Megjegyzs: Ha nem adminisztrtorknt hvjuk meg, akkor a rendszer krni fogja a jelszavunkat, miutn kilptnk a szvegszerkesztbl.

Plda 13-3. A chpass interaktv hasznlata adminisztrtorknt


# A jantyik nev felhasznl adatainak mdostsa. Login: jantyik Password: * Uid [#]: 1001 Gid [# or name]: 1001 Change [month day year]: Expire [month day year]: Class: Home directory: /home/jantyik Shell: /usr/local/bin/zsh Full Name: Jantyik Zsolt

370

Fejezet 13. Felhasznlk s hozzfrsek alapvet kezelse


Office Location: Office Phone: Home Phone: Other information:

Egy tlagos felhasznl a bemutatott adatoknak csak igen kis rszt kpes mdostani, s azokat is csak sajt maga szmra. Plda 13-4. A chpass interaktv hasznlata norml felhasznlknt
# A jantyik nev felhasznl adatainak megvltoztatsa. Shell: /usr/local/bin/zsh Full Name: Jantyik Zsolt Office Location: Office Phone: Home Phone: Other information:

Megjegyzs: A chfn(1) s chsh(1) parancsok csupn linkek a chpass(1) parancsra, akrcsak a ypchpass(1), ypchfn(1) s az ypchsh(1). A NIS tmogatsa teljesen magtl mkdik, ezrt az yp eltag hasznlata nem ktelez. Ha ez nem rthet, nem kell megijedni, a NIS-t majd a 29 fejezetben bemutatjuk.

13.6.4. passwd
Felhasznlknt a sajt jelszavunkat, adminisztrtorknt pedig brmelyik felhasznl jelszavt a passwd(1) segtsgvel vloztathatjuk meg a megszokott mdon.
Megjegyzs: A vletlen balesetek s az illetktelen vltoztatsok ellen vdelmet nyjt, hogy az eredeti jelszt is meg kell adnunk az j jelsz belltshoz.

Plda 13-5. A jelszavunk megvltoztatsa


% passwd

Changing local password for jantyik. Old password: New password: Retype new password: passwd: updating the database... passwd: done

Plda 13-6. Egy msik felhasznl jelszavnak megvltoztatsa adminisztrtorknt


# passwd jantyik

Changing local password for jantyik. New password:

371

Fejezet 13. Felhasznlk s hozzfrsek alapvet kezelse


Retype new password: passwd: updating the database... passwd: done

Megjegyzs: Ahogy a chpass(1), az yppasswd(1) is csak egy link a passwd(1) parancsra, gy a NIS mind a kt megadsi mdban mkdik.

13.6.5. pw
A pw(8) egy olyan parancssori segdprogram, amellyel felhasznlkat s csoportokat tudunk ltrehozni, trlni, mdostani s megjelenteni. Ez tulajdonkppen a rendszer felhasznlkat s csoportokat trol llomnyainak egyfajta kezelfellete. A pw(8) kivlan paramterezhet, aminek ksznheten remekl kiaknzhat tudsa a klnfle parancsrtelmezk szkriptjeiben, habr a kezd felhasznlk nehzkesebbnek rezhetik a kezelst a korbban mutatott parancsokhoz kpest.

13.7. A felhasznlk korltozsa


Ha mr vannak felhasznlink, gyakran szba kerlhet esetkben a rendszer hasznlatnak korltozsa. A FreeBSD rengeteg mdon engedi korltozni a rendszergazdnak az egynenknt hasznlhat erforrsok mennyisgt a rendszerben. Ezeket a korltok kt rszre oszthatak: a lemezkvtkra s egyb erforrskorltokra. A lemezkvtk a felhasznlk lemezhasznlatt korltozzk, s lehetv teszik, hogy lland jraszmols nlkl, gyorsan ellenrizni tudjuk ennek mrtkt. A kvtkat a 18.15 Szakaszban rszletezzk. A tbbi erforrs korltozsa magban foglalja a processzorid, memria s minden olyan erforrs behatrolst, amihez a felhasznl csak hozz tud frni. Ezeket bejelentkezsi osztlyokon keresztl hatrozzuk meg, ezekrl esik itt most sz. A bejelentkezsi osztlyokat a /etc/login.conf llomnyban adhatjuk meg. Ennek pontos ismertetse nem trgya ennek a szakasznak, de ezt megtallhatjuk a login.conf(5) man oldalon. Elegend csak annyit mondanunk, hogy minden felhasznlhoz tartozik egy bejelentkezsi osztly (alaprtelmezs szerint a default nev), s minden egyes bejelentkezsi osztlyhoz tulajdonsgok egy halmaza trsul. Ezek a bejelentkezsi tulajdonsgok nv =rtk prosokbl llnak, ahol nv egy jl ismert azonost, illetve az rtk egy tetszleges sztring, melyet a nevtl fgg mdon dolgozunk fel. A bejelentkezsi osztlyok s tulajdonsgok belltsa elgg magtl rtetd, s login.conf(5) man oldal is jl lerja.
Megjegyzs: A rendszer ltalban nem magt az /etc/login.conf llomnyban tallhat belltsokat olvassa be, hanem az /etc/login.conf.db llomnyt, amiben gyorsabban lehet keresni. Az /etc/login.conf llomnybl az /etc/login.conf.db llomnyt az albbi paranccsal tudjuk legyrtani:
# cap_mkdb /etc/login.conf

372

Fejezet 13. Felhasznlk s hozzfrsek alapvet kezelse Az erforrsok korltozsa kt irnyban is eltr a sima htkznapi bejelentkezsi tulajdonsgoktl. Elszr is minden korlthoz ltezik egy gyenge (aktulis) s egy ers korlt. A gyenge korltok a felhasznlk vagy az alkalmazsok rszrl mg nomthatak, de az ers korlton tl mr nem. Ez utbbit mindig tudja cskkenteni a felhasznl, de sose tudja nvelni. Msodsorban a legtbb erforrskorlt az adott felhasznl ltal futtatott programokra egyenknt vonatkozik, nem pedig az sszesre egyttesen. Megjegyezzk, hogy azonban ezeket az eltrseket a korltok klnleges kezelse indokolja, nem pedig a bejelentkezsi tulajdonsgok rendszernek megvalstsa (teht a korltok valjban nem ezen tulajdonsgok specilis esetei.) gy aztn, minden tovbbi magyarzkods nlkl, felsoroljunk alant a leggyakrabban alkalmazott erforrskorltokat (a tbbi, ms egyb bejelentkezsi tulajdonsgokkal egytt, megtallhat a login.conf(5) man oldalon).
coredumpsize

A program ltal ltrehozott memriakivonat maximlis mrett hatrolja be ez a korlt, rtelemszeren a tbbi lemezterletre vonatkoz korltnak (pldul a filesize vagy a lemezkvtk) alrendelt mdon. Mindazonltal ezt gyakran hasznljuk egyfajta enyhbb lemezfoglalsi korltknt. Mivel nem maguk a felhasznlk hozzk ltre ezeket az llomnyokat s sokszor nem is trlik le ezeket, ez a bellts azonban megmentheti ezeket a nagyobb programok (mint pldul az emacs) sszeomlsa sorn keletkez memriakivonatok felesleges helyfoglalstl.
cputime

Az a maximlis processzorid, amit a felhasznl ltal futtatott programok egyenknt fogyaszthatnak. A vtkez programok futst a rendszermag lelltja.
Megjegyzs: Ez a korlt a processzoridre vonatkozik, nem pedig a processzor kihasznltsgnak szzalkra, ahogy a top(1) s a ps(1) szokta megjelenteni. Ez utbbi alapjn korltozni ugyanis, mg ezen lers ksztsnek pillanataiban nem lehetsges, s meglehetsen hasztalan is lenne: egy fordtprogram ami minden bizonnyal egy szablyosan fut program knnyen fel tudja emszteni majdnem az egsz processzort egy idre.

filesize

A felhasznl ltal birtokolhat llomnyok maximlis mrete. Eltren a lemezkvtktl, ez a korlt az egyes llomnyokra vonatkozik, nem pedig a felhasznl sszes llomnyra egyttesen.
maxproc

A felhasznl ltal egyidben, az eltrben s a httrben futtathat programok maximlis szma. rthet okokbl ez az rtk nem lehet nagyobb, mint a rendszerben a sysctl(8) ltal denilt kern.maxproc (a rendszermag ltal maximlisan futtathat programok szmnak) rtke. rdemes mg tovbb megjegyezni, hogy ez a bellts gtolhatja a felhasznl munkjt: gyakran hasznos lehet egyszerre tbb pldnyban is bejelentkezni a rendszerbe vagy csvekkel sszekapcsolt programokat futtatni. Bizonyos feladatok, mint

373

Fejezet 13. Felhasznlk s hozzfrsek alapvet kezelse pldul egy nagyobb program lefordtsa, tbb program futsra is sztterjedhetnek (pldul a make(1), cc(1) s egyb kztes feldolgozkra).
memorylocked

Ezzel korltozhatjuk az egyes fut programok ltal zrolhat memriaterlet mrett a kzponti memriban (lsd mlock(2)). Egyes rendszerkritikus programok, mint pldul az amd(8), zroljk magukat a kzponti memriban, s ezrt soha nem lapozdnak ki onnan. Ennek ksznheten nem rinti ezeket a rendszer lapozsbl ered esetleges lelassulsa.
memoryuse

Ez az a maximlis memriamennyisg, amelyet egy fut program egyszerre hasznlhat. Ebbe egyttesen belertend a kzponti memriban s a lapozllomnyban elfoglalt hely. Ez ugyan nem minden szempontbl korltozza egy program memriahasznlatt, de indulsnak megfelel.
openfiles

A felhasznl egyes futtatott programjai ltal egy idben megnyithat llomnyok maximlis szma. FreeBSD-ben az llomnyok kz a foglalatok s az IPC-csatornk is beszmtanak. Ezrt vigyzzunk, nehogy vletlenl tlsgosan alacsonyra lltsuk ezt az rtket. Ezt rendszerszinten a kern.maxfiles sysctl(8) rtk hatrozza meg.
sbsize

A korltozs a felhasznl ltal egyszerre maximlisan elrhet hlzati memria s gy a rendszermag puffereire vonatkozik. Eredetileg a rgebbi, sok csatlakozst felemszt DoS (Denial of Service) tmadsok ellen nyjtana vdelmet, de ltalnossgban alkalmazhat a hlzati kommunikci korltozsra is.
stacksize

Ez a felhasznl ltal mkdtetett egyes programok vermeinek maximlis mrete. nmagban nem elegend a programok ltal hasznlt memriamennyisg lekorltozsra, gy emiatt inkbb a tbbi korlttal egytt rdemes alkalmazni. Van nhny tnyez, amire rdemes odagyelni az erforrsok korltainak belltsa sorn. Most kvetkezik pr tipp, javaslat s egyb megjegyzs a tmhoz.

A rendszerindts sorn az /etc/rc ltal indtott programok a daemon bejelentkezsi osztlyba tartoznak. Habr a rendszerrel rkez /etc/login.conf llomnyban remekl be van lltva a legtbb korlt, de neknk, mint rendszergazdknak, kell ismernnk a sajt rendszernk korltait. Ezen korltok tlzott tgtsval a rendszernk knnyen leterhelhetv vlik, mg a tlzott szktsvel akadlyozhatjuk a hatkony hasznlatt. A X Window System (X11) felhasznlinak a tbbi felhasznlnl valsznleg jval tbb erforrshoz kell tudniuk hozzfrni. Az X11 mr nmagban sok erforrst eszik, de egyben btortja is a felhasznlkat tbb program prhuzamos futtatsra.

374

Fejezet 13. Felhasznlk s hozzfrsek alapvet kezelse

Ne felejtsk el, hogy sok korlt az egyes klnllan fut programokra vonatkozik, nem pedig a felhasznl sszes futtatott programjra. Pldul ha belltjuk 50-re az openfiles rtkt, a felhasznl ltal elindtott programok mindegyike legfeljebb 50 llomnyt tud majd megnyitni. Emiatt a felhasznl ltal egyszerre tnylegesen megnyithat llomnyok szma az openfiles s a maxproc aktulis rtkeinek szorzatbl addik. Ugyanez igaz a memriahasznlatra is.

Az erforrsok korltozsrl, a bejelentkezsi osztlyokrl s tulajdonsgaikrl a hozzjuk tartoz man oldalakon olvashatunk: cap_mkdb(1), getrlimit(2) s login.conf(5).

13.8. Csoportok
Egy csoport nem tbb felhasznlk sszesgnl. A csoportokat a nevk s az azonostjuk (Group ID, GID) azonostja be. A FreeBSD-ben (s a legtbb UNIX-szer rendszerben) a rendszermag kt tnyez alapjn dnt arrl, mit szabad tennie egy fut programnak: ezek kzl az egyik a tulajdonosnak azonostja (UID), a msik azon csoportok listja, melyeknek tagja a tulajdonos. Eltren a UID-tl, egy fut programhoz csoportok listja tartozik. Amikor egy felhasznl vagy egy fut program csoportazonostjra hivatkoznak, ltalban csak a lista els elemre gondolnak. A csoportok nevei s azonosti kzti megfeleltetseket az /etc/group llomnyban talljuk. Ez lnyegben egy szimpla szveges llomny, ngy kettsponttal elvlasztott mezt tartalmaz. Ezek kzl az els a csoport neve, a msodik a titkostott jelsz, a harmadik a csoport azonostja, a negyedik pedig a tagok vesszvel tagolt felsorolsa. Akr kzzel is nyugodtan szerkeszthet (felttelezve persze, hogy nem vtnk benne szintaktikai hibt!). A szintaxis teljes lerst a group(5) man oldalon tallhatjuk meg. Ha nem akarjuk magunk szerkeszteni az /etc/group llomnyt, hasznlhatjuk a pw(8) parancsot is csoportok ltrehozsra s trlsre. Pldul hozzuk ltre a pg_csoport nev csoportot s vizsgljuk meg, valban ltrejtt-e: Plda 13-7. A csoportok tagjainak belltsa a pw(8) hasznlatval
# pw groupadd pg_csoport # pw groupshow pg_csoport

pg_csoport:*:1100:

A fent szerepl 1100-as rtk a pg_csoport csoportazonostja. Ebben a pillanatban a pg_csoportnak mg egyetlen tagja sincs, ami miatt lnyegben haszontalan. gy ht hvjuk meg pg_csoportba a korbban ltrehozott jantyik nev felhasznlt. Plda 13-8. A csoport tagjainak belltsa a pw(8) hasznlatval
# pw groupmod pg_csoport -M jantyik # pw groupshow pg_csoport

pg_csoport:*:1100:jantyik

Az -M kapcsol paramtere a csoportba soroland felhasznlk neveinek vesszkkel tagolt listja. A korbbi szakaszok alapjn mr tudjuk, hogy a jelszavakat trol llomny egyben azokat a csoportokat is tartalmazza, ahova az egyes felhasznlk tartoznak. Az utbbiakat (a felhasznlkat) automatikusan beleteszi a rendszer a csoportlistba, de az rintett felhasznl nem fog megjelenni tagknt a pw(8) parancs groupshow utastsval, azonban az id(1) s a hozz hasonl eszkzkkel mr lthat lesz. Ms szavakkal lve, a pw(8) csak az /etc/group llomnyt mdostja, s soha nem prbl meg tovbbi adatokat kiolvasni a /etc/passwd llomnybl.

375

Fejezet 13. Felhasznlk s hozzfrsek alapvet kezelse Plda 13-9. Egy j tag felvtele a csoportba a pw(8) hasznlatval
# pw groupmod pg_csoport -m kisati # pw groupshow pg_csoport

pg_csoport:*:1100:jantyik,kisati

Az -m kapcsol paramtere azon felhasznlk vesszvel tagolt listja, akiket fel akarunk venni a csoportba. Teht eltren az elz pldtl, ezeket a felhasznlkat felvesszk a csoportba, nem pedig trjuk velk a csoport jelenlegi tagjainak listjt. Plda 13-10. A id(1) hasznlata a csoporttagsg megllaptsra
% id jantyik

uid=1001(jantyik) gid=1001(jantyik) groups=1001(jantyik), 1100(pg_csoport)

Ahogy lthatjuk is, a jantyik nev felhasznl tagja a jantyik nev csoportnak s a pg_csoportnak is. A pw(8) mkdsrl a sajt man oldaln, az /etc/group formtumrl pedig a group(5) man oldalon tallhatunk tbb informcit.

Megjegyzsek
1. Hacsak nem kapcsolunk hozz tbb terminlt. De ennek a lerst a 26 fejezetre tartogatjuk. 2. Lehetsges akr 4294967295-ig is szmozni az UID/GID rtkt, de az ekkora nagysg azonostk komoly gondokat okozhatnak az olyan szoftvereknek, melyek bizonyos felttelezsekkel lnek az rtkeikkel kapcsolatban.

376

Fejezet 14. Biztonsg


A fejezet legnagyobb rszt a security(7) man oldal alapjn rta: Matthew Dillon.

14.1. ttekints
Ez a fejezet egy alapvet bevezets a rendszerek biztonsgi fogalmaiba, ad nhny ltalnos jtancsot s a FreeBSD-vel kapcsolatban feldolgoz nhny komolyabb tmt. Az itt megfogalmazott tmk nagy rsze egyarnt rhzhat rendszernk s ltalnossgban vve az internet biztonsgra is. A internet mr nem az bks hely, ahol mindenki a kedves szomszd szerept jtssza. A rendszernk bebiztostsa elkerlhetetlen az adataink, szellemi tulajdonunk, idnk s mg sok minden ms megvdsre az internetes banditk s hasonlk ellen. A FreeBSD segdprogramok s mechanizmusok sort knlja fel a rendszernk s hlzatunk srtetlensgnek s biztonsgnak fenntartsra. A fejezet elolvassa sorn megismerjk:

az alapvet rendszerbiztonsgi fogalmakat, klns tekintettel a FreeBSD-re; milyen olyan klnbz titkostsi mechanizmusok rthetek el a FreeBSD-ben, mint pldul a DES s az MD5; hogyan lltsunk be egyszeri jelszavas azonostst; hogyan burkoljunk az inetd segtsgvel TCP kapcsolatokat; hogyan lltsuk be a KerberosIV-t a FreeBSD 5.0-nl korbbi vltozatain; hogyan lltsuk be a Kerberos5-t a FreeBSD-n; hogyan lltsuk be az IPsec-et s hozzunk ltre VPN-t FreeBSD/Windows gpek kztt; hogyan lltsuk be s hasznljuk az OpenSSH-t, a FreeBSD SSH implementcijt; mik azok az ACL-ek az llomnyrendszerben s miknt kell ezeket hasznlni; hogyan kell hasznlni a Portaudit segdprogramot a Portgyjtemnybl teleptett kls szoftvercsomagok biztonsgossgnak ellenrzsre; hogyan hasznostsuk a FreeBSD biztonsgi tancsait tartalmaz lersokat mit jelent a fut programok nyilvntartsa s hogyan engedlyezzk azt FreeBSD-n.

A fejezet elolvasshoz ajnlott:

az alapvet FreeBSD s internetes fogalmak ismerete.

A knyvben tovbbi biztonsgi tmkrl is sz esik, pldul a 16 fejezetben a Ktelez hozzfrs-vezrlsrl (MAC) s a 30 fejezetben pedig az internetes tzfalakrl.

14.2. Bevezets
A biztonsg egy olyan funkci, ami a rendszergazdtl indul s nla is vgzdik. Mg az sszes tbbfelhasznls BSD UNIX rendszer nmagban is valamennyire biztonsgos, a felhasznlk fegyelmezshez szksg tovbbi

377

Fejezet 14. Biztonsg biztonsgi mechanizmusok kiptsre s karbantartsra, ami minden bizonnyal egy rendszergazda egyik legfontosabb ktelessge. A szmtgpek csak annyira biztonsgosak, mint amennyire belltjuk, s a biztonsgi megfontolsok lland versenyben vannak az emberi knyelemmel. A UNIX rendszerek ltalnossgban vve rsi mennyisg program prhuzamos futtatsra kpesek, melyek tbbsge kiszolglknt fut ez azt jelenti, hogy hozzjuk kvlrl rkez egyedek csatlakozhatnak s trsaloghatnak velk. Ahogy a tegnap kicsi s nagy szmtgpei napjaink asztali gpeiv vltak s ahogy a szmtgpek egyre tbben csatlakoznak hlzatra s az internetre, a biztonsg fontossga is egyre jobban nvekszik. A rendszerek biztonsga a tmadsok klnbz formival is foglalkozik, tbbek kzt olyan tmadsokkal, amelyek a rendszer sszeomlst vagy hasznlhatatlansgt clozzk meg, de nem prbljk meg veszlybe sodorni a root felhasznl hozzfrst (feltrni a gpet). A biztonsggal kapcsolatos problmk tbb kategrira oszthatak: 1. A szolgltatsok mkdskptelenn ttelre irnyul (DoS, Denial of Service) tmadsok. 2. A felhasznli kok veszlyeztetse. 3. Rendszergazdai jogok megszerzse a kzeli szervereken keresztl. 4. Rendszergazdai jogok megszerzse a felhasznli kokon keresztl. 5. Kiskapuk ltrehozsa a rendszerben. A szolgltatsok mkdskptelenn ttelre irnyul tmadsok olyan tevkenysgre utalnak, amelyek kpesek megfosztani egy szmtgpet az erforrsaitl. A DoS tmadsok tbbnyire nyers ervel kivitelezett technikk, melyek vagy a rendszer sszeomlasztst vagy pedig a hasznlhatatlann ttelt veszik clba gy, hogy tlterhelik az ltala felknlt szolgltatsokat vagy a hlzati alrendszert. Egyes DoS tmadsok a hlzati alrendszerben rejtz hibkat igyekeznek kihasznlni, amivel akr egyetlen csomaggal is kpesek romba dnteni egy szmtgpet. Ez utbbit csak gy lehet orvosolni, ha a hibt kijavtjuk a rendszermagban. A szerverekre mrt csapsokat gyakran ki lehet vdeni a paramtereik gyes belltsval, melyek segtsgvel korltozni tudjuk az ezeket rt terhelst egy kellemetlenebb helyezetben. A nyers ert alkalmaz hlzati tmadsokkal a legnehezebb szembenzni. Pldul az lczott tmadadsok, melyeket szinte lehetetlen meglltani, remek eszkzk arra, hogy elvgjk gpnket az internettl. Ezzel viszont nem csak azt iktatjk ki, hanem az internet-csatlakozsunkat is eldugtjk. A DoS tmadsoknl mg gyakrabban elfordul, hogy feltrik a felhasznlk kjait. A rendszergazdk tbbsge mg mindig futtat telnetd, rlogin, rshd s ftpd szervereket a gpen. Ezek a szerverek alaprtelmezs szerint nem titkostott kapcsolaton keresztl mkdnek. Ebbl kvetkezik, hogy ha nincs annyira sok felhasznlnk s kzlk nhnyan tvoli helyekrl jelentkeznek be (ami az egyik leggyakoribb s legknyelmesebb mdja ennek), akkor elfordulhat, hogy valami megneszeli a jelszavaikat. A krltekint rendszergazdk mindig ellenrzik a bejelentkezseket tartalmaz naplkat s igyekeznek kiszrni a gyans cmeket mg abban az esetben is, amikor a bejelentkezs sikeres volt. Mindig arra kell gondolni, hogy ha a tmadnak sikerlt megszerezni az egyik felhasznl hozzfrst, akkor akr kpes lehet a root felhasznl kjnak feltrsre is. Azonban a valsgban egy jl rztt s karbantarott rendszer esetn a felhasznli hozzfrsek megszerzse nem felttlenl adja a tmad kezre a root hozzfrst. Ebben fontos klnbsget tenni, hiszen a root felhasznl jogai nlkl a tmad nem kpes elrejteni a nyomait s legjobb esetben sem tud tbbet tenni, mint tnkretenni az adott felhasznl llomnyait vagy sszeomlasztani a rendszert. A felhasznli kok feltrse nagyon gyakran megtrtnik, mivel a felhasznlk messze nem annyira elvigyzatosak, mint egy rendszergazda. A rendszergazdknak mindig szben kell tartani, hogy egy szmtgpen tbb mdon is meg lehet szerezni a root felhasznl hozzfrst. A tmad megtudhatja a root jelszavt, hibt fedezhet fel az egyik rendszergazdai jogosultsggal fut szerverben s kpes feltrni a root hozzfrst egy hlzati kapcsolaton keresztl, vagy a tmad olyan programban tall hibt, aminek segtsgvel el tudja rni a root kjt egy felhasznli hozzfrsen

378

Fejezet 14. Biztonsg keresztl. Miutn a tmad megtallta a rendszergazdai jogok megszerzsnek mdjt, nem felttlenl kell kiskapukat elhelyeznie a rendszerben. Az eddig tallt s javtott, rendszergazdai jogok megszerzst lehetv tev biztonsgi rsek egy rsze esetben viszont a tmadnak akkora mennyisg munkt jelentene eltntetni maga utn a nyomokat, hogy megri neki egy kiskaput telepteni. Ennek segtsgvel a tmad ismt knnyedn hozzjuthat a root felhasznl hozzfrshez a rendszerben, de ezen keresztl egy okos rendszergazda kpes is a behatolt leleplezni. A kiskapuk leraksnak megakadlyozsa valjban kros a biztonsg szempontjbl nzve, mert ezzel nem szntetjk meg azokat a lyukakat, amin keresztl a tmad elszr bejutott. A tmadsok elleni vdelmet mindig tbb vonalban kell megvalstani, melyeket gy oszthatunk fel: 1. A rendszergazda s a szemlyzet hozzfrsnek vdelme. 2. A rendszergazdai jogokkal fut szerverek s a suid/sgid engedlyekkel rendelkez programok vdelme. 3. A felhasznli hozzfrsek vdelme. 4. A jelszavakat trol llomny vdelme. 5. A rendszermag belsejnek, a nyers eszkzk s az llomnyrendszerek vdelme. 6. A rendszert rt szablytalan mdostsok gyors szlelse. 7. lland paranoia. A fejezet most kvetkez szakaszban az imnt felsorolt elemeket fejtjk ki rszletesebben.

14.3. A FreeBSD vdelme


Parancs kontra protokoll: A dokumentumban a flkvren fogjuk szedni az alkalmazsokat, s egyenszlessg betkkel pedig az adott parancsokra hivatkozunk. A protokollokat nem klnbztetjk meg. Ez a tipograi elklnts hasznos pldul az ssh egyes vonatkozsainak esetn, mivel ez egyben egy protokoll s egy parancs is.

A most kvetkez szakaszok a FreeBSD vdelmnek azon mdszereit ismertetik, amelyekrl a fejezet elz szakaszban mr rtunk.

14.3.1. A rendszergazda s a szemlyzet hozzfrsnek vdelme


Elszr is: ne trjk magunkat a szemlyzeti kok biztonsgoss ttelvel, ha mg a rendszergazda hozzfrst sem tettk elgg biztonsgoss. A legtbb rendszerben a root hozzfrshez tartozik egy jelsz. Elsknt fel kell tennnk, hogy ez a jelsz mindig megszerezhet. Ez termszetesen nem arra utal, hogy el kellene tvoltanunk. A jelsz szinte mindig szksges a szmtgp konzolon keresztli elrshez. Valjban arra szeretnnk rvilgtani, hogy a konzolon kvl sehol mshol ne lehessen hasznlni ezt a jelszt, mg a su(1) paranccsal sem. Pldul gondoskodjunk rla, hogy az /etc/ttys llomnyban megadott pszeud terminlokat insecure (nem biztonsgos) tpusnak lltottuk be, s gy a telnet vagy az rlogin parancsokon keresztl nem lehet rendszergazdaknt bejelentkezni. Ha ms szolgltatson keresztl jelentkeznk be, pldul az sshd segtsgvel, akkor ebben az esetben is gondoskodjunk rla, hogy letiltottuk a kzvetlen rendszergazdai bejelentkezs lehetsgt. Ezt gy tudjuk megtenni, ha megnyitjuk az /etc/ssh/sshd_config llomnyt s a PermitRootLogin paramtert tlltjuk a no

379

Fejezet 14. Biztonsg rtkre. Vegynk szmba minden lehetsges hozzfrsi mdot az FTP s a hozz hasonl mdok gyakran tszivrognak a repedseken. A rendszergazdnak csak a rendszerkonzolon keresztl szabad tudnia bejelentkeznie. Termszetesen egy rendszergazdnak valahogy el kell rnie a root hozzfrst, ezrt ezzel felnyitunk nhny biztonsgi rst. De gondoskodjunk rla, hogy ezek a rsek tovbbi jelszavakat ignyelnek a mkdskhz. A root hozzfrs elrshez rdemes felvenni tetszleges szemlyzeti (staff) hozzfrseket a wheel csoportba (az /etc/group llomnyban). Ha a szemlyzet tagjait a wheel csoportba rakjuk, akkor innen a su paranccsal fel tudjuk venni a root felhasznl jogait. A szemlyzet tagjait ltrehozsukkor kzvetlenl sose vegyk fel a wheel csoportba! A szemlyzet tagjai elszr kerljenek egy staff csoportba, s majd csak ezutn az /etc/group llomnyon keresztl a wheel csoportba. A szemlyzetnek csak azon tagjait tegyk tnylegesen a wheel csoportba, akiknek valban szksgk van a root felhasznl hozzfrsre. Ha pldul a Kerberost hasznljuk hitelestsre, akkor megcsinlhatjuk azt is, hogy a Kerberos .k5login llomnyban engedlyezzk a ksu(1) parancson keresztl a root hozzfrs elrst a wheel csoport alkalmazsa nlkl. Ez a megolds taln mg jobb is, mivel a wheel hasznlata esetn a behatolnak mg mindig lehetsge van hozzjutni a root hozzfrshez olyankor, amikor a kezben van a jelszavakat trol llomny s meg tudja szerezni a szemlyzet valamelyik tagjnak hozzfrst. A wheel csoport ltal felknlt megolds ugyan jobb, mint a semmi, de ktsgtelenl nem a legbiztonsgosabb. A hozzfrsek teljes kr letiltshoz a pw(8) parancsot rdemes hasznlni:
# pw lock szemlyzet

Ezzel meg tudjuk akadlyozni, hogy a felhasznl akrmilyen mdon, belertve az ssh(1) hasznlatt is, hozz tudjon frni a rendszernkhz. A hozzfrsek blokkolsnak msik ilyen mdszere a titkostott jelsz trsa egyetlen * karakterre. Mivel ez a karakter egyetlen titkostott jelszra sem illeszkedik, ezrt a felhasznl nem lesz kpes bejelentkezni. Ahogy pldul a szemlyzet albbi tagja sem:
izemize:R9DT/Fa1/LV9U:1000:1000::0:0:Ize-Mize:/home/izemize:/usr/local/bin/tcsh

Erre cserljk ki:


izemize:*:1000:1000::0:0:Ize-Mize:/home/izemize:/usr/local/bin/tcsh

Ezzel megakadlyozzuk, hogy az izemize nev felhasznl a hagyomnyos mdszerekkel be tudjon jelentkezni. Ez a megolds azonban a Kerberost alkalmaz rendszerek esetn nem mkdik, illetve olyan helyezetekben sem, amikor a felhasznl az ssh(1) paranccsal mr ltrehozott magnak kulcsokat. Az ilyen vdelmi mechanizmusok esetben mindig egy szigorbb biztonsgi szint gprl jelentkeznk be egy kevsb biztonsgosabb gpre. Pldul, ha a szervernk mindenfle szolgltatsokat futtat, akkor a munkallomsunknak egyetlen egyet sem lenne szabad. A munkallomsunk biztonsgoss ttelhez a lehet legkevesebb szolgltatst szabad csak futtatnunk, de ha lehet, egyet sem, s mindig jelszval vdett kpernyvdt hasznljuk. Termszetesen ha a tmad kpes zikailag hozzfrni a munkallomsunkhoz, akkor szinte brmilyen mlysg vdelmet kpes ttrni. Ezt mindenkppen szmtsba kell vennnk, azonban ne felejtsk el, hogy a legtbb betrsi ksrlet tvolrl, hlzaton keresztlrl rkezik olyan emberektl, akik zikailag nem frnek hozz a munkallomsunkhoz vagy a szervereinkhez. A Kerberos s a hozz hasonl rendszerek hasznlatval egyszerre tudjuk a szemlyzet tagjainak jelszavt letiltani vagy megvltoztatni, ami egybl rvnyess vlik minden olyan gpen, ahov az adott felhasznlnak brmilyen hozzfrse is volt. Nem szabad lebecslnnk ezt a gyors jelszvltsi lehetsget abban az esetben, ha a szemlyzet valamelyik tagjnak hozzfrst megszereztk. Hagyomnyos jelszavak hasznlatval a jelszavak megvltoztatsa N gpen igazi kosz. A Kerberosban jelszvltsi megszortsokat is felllthatunk: nem csak a Kerberos ltal adott

380

Fejezet 14. Biztonsg jegyek jrnak le idvel, hanem a Kerberos rendszer meg is kvetelheti a felhasznlktl, hogy egy adott id (pldul egy hnap) utn vltoztasson jelszt.

14.3.2. A rendszergazdai jogokkal fut szerverek s SUID/SGID engedlyekkel rendelkez programok vdelme
A blcs rendszergazda mindig csak akkor futtat szervereket, amikor szksge van r, se tbbet, se kevesebbet. Az egyb fejlesztktl szrmaz szerverekkel bnjunk klnsen vatosan, mivel gyakran hajlamosak hibkat tartalmazni. Pldul az imapd vagy a popper hasznlata olyan, mintha az egsz vilgnak ingyenjegyet osztogatnnk a rendszernk root hozzfrshez. Soha ne futtassunk olyan szervert, amelyet nem vizsgltunk t kell alapossggal. Sok szervert nem is felttlenl kell root felhasznlknt futtatni. Pldul az ntalk, comsat s nger dmonok egy specilis jrkban (sandbox) futnak. Ezek a jrkk sem teljesen tkletesek, hacsak erre kln gyelmet nem fordtunk. Ilyenkor a tbbvonalas vdelem eszmnye mg mindig l: ha valakinek sikerlt betrnie a jrkba, akkor onnan ki is tud trni. Minl tbb vdelmi vonalat hzunk a tmad el, annl jobban cskken a sikernek valsznsge. A trtnelem sorn lnyegben minden root jogokkal fut szerverben, belertve az alapvet rendszerszint szervereket is, talltak mr biztonsgi jelleg hibt. Ha a gpnkre csak az sshd szolgltatson keresztl tudnak belpni, s soha nem hasznlja senki a telnetd, rshd vagy rlogind szolgltatsokat, akkor kapcsoljuk is ki ezeket! A FreeBSD most mr alaprtelmezs szerint jrkban futtatja az ntalkd, comsat s nger szolgltatsokat. Msik ilyen program, amely szintn eslyes lehet erre, az a named(8). Az /etc/defaults/rc.conf megjegyzsben tartalmazza a named jrkban futtatshoz szksges paramtereket. Attl fggen, hogy egy j rendszert teleptnk vagy frisstjk a mr meglv rendszernket, a jrkkhoz tartoz specilis felhasznli hozzfrsek nem felttlenl jnnek ltre. Amikor csak lehetsges, az elrelt rendszergazda kiksrletez s ltrehoz ilyen jrkkat. Vannak ms olyan szerverek, amelyek tipikusan nem jrkkban futnak. Ilyen tbbek kzt a sendmail, popper, imapd, ftpd s mg sokan msok. Lteznek rjuk alternatvk, de a teleptsk valsznleg tbb munkt ignyel, mint amennyit megrn szmunkra veszdni velk (s itt megint lesjt a knyelmi tnyez). Ezeket a szervereket tbbnyire root felhasznlknt kell futtatnunk s a rajtuk keresztl rkez betrsi ksrleteket ms mdokra tmaszkodva kell szlelnnk. A root felhasznl keltette biztonsgi rsek msik nagy csoportja azok a vgrehajthat llomnyok a rendszerben, amelyek a suid s sgid engedlyekkel rendelkeznek, futtatsuk rendszergazdai jogokkal trtnik. Az ilyen binrisok tbbsge, mint pldul az rlogin, a /bin s /sbin, /usr/bin vagy /usr/sbin knyvtrakban tallhat meg. Habr semmi sem biztonsgos 100%-ig, a rendszerben alaprtelmezetten suid s sgid engedllyel rendelkez binrisok ebbl a szempontbl meglehetsen megbzhatnak tekinhetek. Alkalmanknt azonban tallnak a root felhasznlt veszlyeztet lyukakat az ilyen binrisokban is. Pldul 1998-ban az Xlib-ben volt egy olyan rendszergazdai szint hiba, amellyel az xterm (ez ltalban suid engedllyel rendelkezik) sebezhetv vlt. Mivel jobb flni, mint megijedni, ezrt az elretekint rendszergazda mindig igyekszik gy cskkenteni az ilyen engedlyekkel rendelkez binrisok krt, hogy csak a szemlyzet tagjai legyenek kpesek ezeket futtatni. Ezt egy olyan specilis csoport ltrehozsval oldhatjuk meg, amelyhez csak a szemlyzet tagjai frhetnek hozz. Az olyan suid binrisoktl pedig, amelyeket senki sem hasznl, igyekszik teljesen megszabadulni (chmod 000). A monitorral nem rendelkez szervereknek ltalban nincs szksgk az xterm mkdtetsre. Az sgid engedllyel rendelkez binrisok is legalbb ugyanennyire veszlyesek. Ha a behatol kpes feltrni egy kmem csoporthoz tartoz sgid binrist, akkor kpes lesz olvasni a /dev/kmem llomny tartalmt, ezltal hozzjut a titkostott jelszavakhoz s gy megszerezheti magnak akrmelyik hozzfrst. St, a kmem csoportot megszerz behatolk gyelni tudjk a pszeud terminlokon keresztl rkez billentyletseket, mg abban az esetben is, amikor a felhasznlk egybknt biztonsgos mdszereket hasznlnak. A tty csoportot bezsebel tmadk szinte brmelyik felhasznl

381

Fejezet 14. Biztonsg terminljra kpesek rni. Ha a felhasznl valamilyen terminl programot vagy terminl emultort hasznl a billentyzet szimulcijval, akkor a behatol tud olyan adatokat generlni, amivel a felhasznl nevben adhat ki parancsokat.

14.3.3. A felhasznli hozzfrsek vdelme


A felhasznlk hozzfrseit szinte a legnehezebb megvdeni. Mg a szemlyzet tagjaival szemben lehetnk kmletlenl szigorak s ki is csillagozhatjuk a jelszavukat, addig a felhasznlk hozzfrseivel ltalnossgban vve ezt nem tehetjk meg. Ha a keznkben van a megfelel mrtk irnyts, akkor mg gyzhetnk s knyelmesen biztonsgba helyezethetjk a felhasznlk hozzfrst. Ha nincs, akkor nem tehetnk mst, mint llandan rkdnk a hozzfrsek felett. Az ssh s Kerberos hasznlata a felhasznlk esetn sokkalta problematikusabb, mivel ilyenkor jval tbb adminisztrcira s mszaki segtsgnyjtsra van szksg, de mg mindig jobb megolds a titkostott jelszavakhoz kpest.

14.3.4. A jelszavakat trol llomny vdelme


Az a legbiztosabb, ha minl tbb jelszt kicsillagozunk s a hozzfrsek hitelestsre ssh-t vagy Kerberost hasznlunk. Igaz, a titkostott jelszavakat trol llomnyt (/etc/spwd.db) csak a root kpes olvasni, de a tmad meg tudja szerezni ezt a jogot mg olyankor is, ha root felhasznlknt nem felttlenl tud rni. A rendszernkben fut biztonsgi szkripteknek a jelszavakat trol llomny vltozst folyamatosan tudnia kell gyelnie s jelentie (lsd lentebb a Az llomnyok srtetlensgnek ellenrzse cm fejezetet).

14.3.5. A rendszermag belsejnek, a nyers eszkzk s az llomnyrendszerek vdelme


Ha a tmad megszerzi a root hozzfrst, akkor szinte brmit kpes megtenni, de vannak bizonyos elnyei. Pldul a mostansg fejlesztett legtbb rendszermag tartalmaz valamilyen beptett csomaglehallgatt, amit FreeBSD alatt a bpf eszkz valst meg. A tmadk szinte mindig megprblnak valamilyen csomaglehallgatt hasznlni a feltrt gpen. A legtbb rendszeren azonban nem kell felttlenl megadnunk ezt az rmet, ezrt nem is kell beptennk a rendszermagba a bpf eszkzt. De ha mg ki is iktatjuk a bpf eszkzt, mg aggdhatunk a /dev/mem s /dev/kmem miatt. Egybknt ami azt illeti, a behatol mg gy is kpes rni a nyers eszkzkre. St, a rendszermagba kpesek vagyunk modulokat is betlteni a kldload(8) hasznlatval. A vllalkoz kedv tmad a rendszermag moduljaknt kpes telepteni s hasznlni a sajt bpf eszkzt vagy brmilyen ms, a csomagok lehallgatsra alkalmas eszkzt. Az ilyen problmk elkerlse rdekben a rendszermagot a legmagasabb vdelmi szinten kell zemeltetni, teht legalbb egyes szinten. A rendszermag vdelmi szintjt tbb klnbz mdon lehet lltani. A vdelmi szintet gy lehet a legegyszerbben nvelni, ha a sysctl paranccsal belltjuk a kern.securelevel nev, rendszerszint vltoz rtkt:
# sysctl kern.securelevel=1

A FreeBSD rendszermag alaprtelmezs szerint a -1 vdelmi szinten indul. Ez egszen addig -1 marad, amg a rendszergazda vagy valamelyik init(8) sorn hvott rendszerindt szkript ezt meg nem vltoztatja. A rendszer indtsa sorn gy tudjuk belltani a megfelel vdelmi szintet, ha az /etc/rc.conf llomnyban megadjuk a

382

Fejezet 14. Biztonsg


kern_securelevel_enable vltozt a YES rtkkel, illetve kern_securelevel rtkeknt a kvnt vdelmi

szintet. A FreeBSD alaprtelmezett vdelmi szintje kzvetlenl a rendszerindt szkriptek lefutsa utn -1. Ezt nem biztonsgos mdnak nevezik, mivel az llomnyok rsrt felels llomnyjelzk nem felttlenl mkdnek, mindegyik eszkz rhat, olvashat s a tbbi. Miutn a vdelmi szintet 1 vagy annl magasabb rtkre lltottuk, akkor a rendszer gyelembe veszi a csak hozzfzst (append-only) s mdosthatatlansgot (immutable) megszort llomnyjelzket, nem engedlyezi a tiltsukat s az eszkzk kzvetlenl nem rhetek el. A klnbz vdelmi szintek rszletesebb bemutatst a security(7) man oldalon olvashatjuk (vagy a FreeBSD 7.0 eltti vltozataiban a init(8) man oldalon).
Megjegyzs: Az 1 s az afeletti vdelmi szinteken tbbek kzt az X11 nem felttlenl lesz futtathat (mivel a /dev/io eszkz elrse blokkolt), illetve a rendszer frisstse is akadlyokba fog tkzni (a installworld futtatsa sorn ideiglenesen ki kell kapcsolni az append-only s immutable llomnyjelzket). Az X11 esetben ezt valahogy mg ki lehet kerlni gy, hogy ha az xdm(1) dmont mg a rendszerindts elejn aktivljuk (amikor a vdelmi szint mg kellen alacsony). Az sszes vdelmi szint s megszorts esetn azonban nem mindig adhat ilyen jelleg javaslat, ezrt ilyenkor mindig rdemes elre tervezni egy keveset. Emellett fontos alaposan megismerni a klnbz vdelmi megszortsokat, mivel jelents mrtkben visszafoghatjk a rendszer hasznlhatsgt. Ez segt az adott helyzetben az egyszerbb megoldst vlasztani s ezltal elkerlni a kellemetlen meglepetseket.

Ha a rendszermag vdelmi szintjt az 1 rtk vagy afel emeljk, akkor hasznos lehet a fontosabb (lnyegben minden olyan programnak, amely a vdelmi szint helyes belltdsa eltt lefut) programoknak, knyvtraknak s szkripteknek belltani az schg llomnyjelzt. Ilyenkor azonban vegyk gyelembe, hogy a rendszer frisstse is nehezebb vlik a magasabb vdelmi szinteken. Egy mkdkpesebb megolds lehet, ha rendszernket egy magasabb vdelmi szinten hasznljuk, de nem lltjuk be mindegyik rendszerszint llomnyra az schg llomnyjelzt. Msik lehetsg mg a / s /usr partcik rsvdett csatlakoztatsa. Ne felejtsk el azonban, hogy ha tlsgosan szigorak vagyunk magunkhoz, akkor azzal egyttal a behatols szlelst is meg tudjuk nehezteni!

14.3.6. Az llomnyok srtetlensgnek ellenrzse: binrisok, kongurcis llomnyok stb.


Ha arrl van sz, csak a legfontosabb rendszerszint kongurcis- s vezrlllomnyokat tudjuk megvdeni, mg mieltt a korbban emlegetett knyelmi tnyez kimutatn a foga fehrjt. Pldul, ha a chflags paranccsal belltjuk az schg llomnyjelzt a / s /usr llomnyrendszereken tallhat legtbb llomnyra, akkor az minden bizonnyal cskkenti a hatkonysgunkat, hiszen az llomnyok vdelmnek nvekedsvel cskken az szlels lehetsge. A vdelmi vonalaink kzl ugyanis az utols taln az egyik legfontosabb a detektls. A felptett biztonsgi rendszernk legnagyobb rsze szinte teljesen hasztalan (vagy ami mg rosszabb, a biztonsg hamis rzett kelti), ha nem vagyunk kpesek szrevenni a betrsi ksrleteket. A vdelmi rendszer egyik rszre nem a tmad meglltshoz, hanem a lelasstshoz van szksg, hogy gy majd munka kzben rhessk tetten. A betrs tnyt legjobban a megvltozott, hinyz vagy ppen vratlanul felbukkan llomnyok utni kutatssal tudjuk felismerni. A mdostott llomnyokat ltalban egy msik (gyakran kzpontostott) korltozott hozzfrs rendszerbl ellenrizhetjk a legjobban. Fontos, hogy ha egy korltozott hozzfrs, kiemelten vdett rendszeren rjuk a vdelemrt felels szkripteket, akkor azok szinte teljesen lthatlanok lesznek a tmad szmra. A legjobb kihasznls rdekben a korltozott hozzfrs gpnek jelents mrtk rltssal kell rendelkeznie az sszes tbbi gpre, amit rsvdett NFS exportok vagy ssh kulcsprok felhasznlsval rhetnk el. A hlzati forgalmat

383

Fejezet 14. Biztonsg leszmtva az NFS ltszik a legkevsb segtsgvel lnyegben szrevtlenl tudjuk gyelni az egyes gpek llomnyrendszereit. Ha a meggyelsre hasznlt szerver a kliensekhez switchen keresztl csatlakozik, akkor az NFS gyakran jobb vlasztsnak bizonyul. Ha a szerver hubon vagy tbb hlzati elemen keresztl ri el a meggyelni kvnt klienseket, akkor az NFS nem elgg biztonsgos (s hatkony), ezrt ilyen esetekben az ssh vlasztsa lehet a kedvez mg az ssh ltal hagyott nyomokkal egytt is. Miutn a korltozott hozzfrs gpnk legalbb ltja a hozztartoz kliensek rendszereit, el kell ksztennk a tnyleges monitorozst vgz szkripteket. Ha NFS csatlakozst tteleznk fel, akkor az olyan egyszer rendszereszkzkkel, mint pldul a nd(1) s md5(1) kpesek vagyunk sszerakni ezeket. A szemmel tartott kliensek llomnyait naponta legalbb egyszer rdemes ellenrizni md5-tel, valamint mg ennl gyakrabban is tesztelni az /etc s /usr/local/etc knyvtrakban tallhat kongurcis s vezrlllomnyokat. Ha valamilyen eltrst tapasztal az ellenrzst vgz szervernk s a rajta lev md5 informcik is helyesek, akkor rtestenie kell a rendszergazdt. Egy j vdelmi szkript kpes megkeresni az oda nem ill suid binrisokat, valamint az j vagy trlt llomnyokat a / s a /usr partcikon. A vdelmi szkriptek megrsa valamivel nehezebb feladat, ha ssh-t hasznlunk az NFS helyett. A futtatsukhoz a szkripteket s az ltaluk hasznlt eszkzket (pldul nd) az scp paranccsal lnyegben t kell msolni a kliensekre, amivel gy lthatv vlnak. Ne feledjk tovbb, hogy az ssh kliens mr eleve feltrt lehet. Sz, ami sz, ha nem megbzhat sszekttetsekrl beszlnk, akkor az ssh hasznlata elkerlhetetlen, de nem felttlenl egyszer. Egy j vdelmi szkript szreveszi a felhasznlk s a szemlyzet tagjainak hozzfrst vezrl llomnyokban, mint pldul az .rhosts, .shosts, .ssh/authorized_keys s trsaiban keletkezett vltozsokat is, amelyek esetleg elkerlhetik egy MD5 alap ellenrzs gyelmt. Ha netaln rsi mennyisg trterletettel rendelkeznnk, akkor eltarthat egy ideig, amg vgigsprnk az sszes partci sszes llomnyn. Ebben az esetben rdemes olyan belltsokat megadni az llomnyrendszerek csatlakoztatsnl, amivel le tudjuk tiltani a suid engedllyel rendelkez binrisok futtatst. Ezzel kapcsolatban a mount(8) parancs nosuid opcijt nzzk meg. Hetente legalbb egyszer azrt mgis rdemes tnzni az ilyen partcikat is, mivel ez a rteg a betrsi ksrletek feldertsvel foglalkozik, fggetlenl a sikeressgktl. A fut programok nyilvntartsa (lsd accton(8)) egy olyan viszonylag kevs kltsggel jr lehetsg az opercis rendszerben, ami segtsgnkre lehet a betrs utni esemnyek kirtkelsben. Klnsen hasznos olyankor, amikor megprbljuk modellezni, mikpp is sikerlt a tmadnak bejutnia a rendszernkbe, termszetesen felttelezve, hogy az ehhez felhasznlt feljegyzsek a betrs utn is rintetlenek maradtak. Vgl a vdelmet ellt szkripteknek javasolt feldolgozni a naplllomnyokat is, valamint a naplkat magukat is a lehet legbiztonsgosabb formban generlni ilyenkor nagyon hasznos lehet, ha egy tvoli gpre naplzunk. A behatol megprblja majd eltntetni a nyomait, a naplllomnyok viszont nagyon fontosak a rendszergazda szmra a betrsi ksrletek idejnek s mdjnak megllaptsban. A naplkat gy tudjuk tartsan rgzteni, ha a rendszerkonzol zeneteit soros porton keresztl gyjtjk ssze a konzolok felgyeletrt felels biztonsgos gpen.

14.3.7. lland paranoia


Egy kis paranoia sosem rt. Elmondhat, hogy a rendszergazda tetszleges szm biztonsgi intzkedssel lhet egszen addig, amg az nincs hatssal a knyelmre, s a knyelmet befolysol biztonsgi intzkedseket pedig megfelel mrlegels mellett tegye meg. Ami mg ennl is fontosabb, hogy mindig vltoztassunk valamit a biztonsgi hlnkon mivel ha egy az egyben kvetjk a dokumentumban lertakat, akkor ezzel egytt kiadjuk a bejuts receptjt annak a leend tmadnknak, aki szintn elolvasta ugyanezt.

384

Fejezet 14. Biztonsg

14.3.8. A szolgltatsok mkdskptelenn ttelt clz tmadsok


Ez a szakasz a szolgltatsok mkdskptelensgt elrni kvn, ms nven Denial of Service tpus tmadsokkal foglalkozik. Noha nem tudunk tlsgosan sokat tenni a manapsg felbukkan lczott, a hlzatunk totlis leterhelst clbavev tmadsok ellen, akadnak olyan ltalnos rvny eszkzk, amelyekkel elejt vehetjk a szervereink sztbomzsnak: 1. A ltjv szerverpldnyok korltozsa. 2. Az ugrdeszkaszer tmadsok (tmads ICMP-vlasszal, pingszrs stb.) korltozsa. 3. A rendszermag tvlasztsi gyorsttrnak tlterhelse. A DoS tmadsok egyik jellemz smja szerint egy sokszorozdni kpes szervert tmadnak meg, amelynek igyekeznek minl tbb pldnyt legyrtatni, mg vgl az ezt futtat rendszer ki nem fogy a memribl, llomnylerbl satbbibl s megllsra nem knyszerl. Az inetd (lsd inetd(8)) szmos lehetsget knl fel ennek megakadlyozsra. Ezzel kapcsolatban szeretnnk megjegyezni, hogy br ezzel el tudjuk kerlni a gpnk lellst, semmilyen garancit nem ad arra, hogy a szolgltats a tmads sorn is zavartalanul zemel tovbb. Alaposan olvassuk el az inetd man oldalt s legynk klns tekintettel a -c, -C s -R kapcsolira. Vigyzzunk, hogy az inetd -C kapcsoljt kpesek kijtszani az lczott IP-vel rkez tmadsok, ezrt inkbb az elbbi kapcsolk valamilyen kombincija az ajnlott. Egyes szerverprogramoknl be lehet lltani a pldnyainak maximlis szmt. A Sendmail rendelkezik egy -OMaxDaemonChildren belltssal, ami a terhelsben lev ksleltetse miatt nha mintha jobban bevlna, mint a Sendmail terhelskorltoz paramterei. A Sendmail indtsakor teht a MaxDaemonChildren paramtert javasolt megadni egy olyan rtkkel, amely elegend a Sendmail szmra betervezett terhels kiszolglsra, de mg kevs ahhoz, hogy a Sendmail fbe harapjon tle. Tovbb blcs dolog a Sendmailt vrakozsi sorral (-ODeliveryMode=queued) s dmonknt (sendmail -bd), kln feldolgozsi menetekkel (sendmail -q15m) futtatni. Ha tovbbra is vals idej kzbestst akarunk, akkor a feldolgozst kisebb idkzkkel is lefuttathatjuk (pldul -q1m), de arra mindig gyeljnk, hogy a MaxDaemonChildren belltsa ne okozzon kaszkdostsi hibkat a Sendmail mkdsben. A Syslogd kzvetlenl is tmadhat, ezrt hatrozottan javasoljuk a -s hasznlatt, amikor csak lehet, minden ms esetben pedig a -a belltst. Fordtsunk kell gyelmet a TCP kapcsolatok burkolst vgz TCP Wrapper reverse-ident lehetsgre, ami szintn kzvetlenl tmadhat. Ebbl az okbl kifolylag valsznleg nem is akarjuk a TCP Wrapper ltal felknlt reverse-ident-et hasznlni. Jl jrunk el abban az esetben, ha a bels szolgltatsainkat az tvlasztink mentn tzfal segtsgvel vdjk meg a kls hozzfrstl. Ezzel lnyegben a helyi hlzatunkat kvlrl fenyeget tmadsok ellen vdekeznk, de ez nem nyjt elegend vdelmet a bels szolgltatsaink esetn a root hozzfrs megszerzsre irnyul ksrletek ellen. Mindig egy exkluzv, teht zrt tzfalat lltsunk be, vagyis tzfalazzunk mindent kivve az A, B, C, D s M-Z portokat. Ezen a mdon ki tudjuk szrni az sszes alacsonyabb portot, kivve bizonyos eseteket, mint pldul a named (ha az adott znban ez az elsdleges gp), ntalkd, sendmail vagy ms interneten keresztl elrhet szolgltatsokat. Ha mskppen lltjuk a tzfalat inkluzv, nylt avagy megenged mdon, akkor j esllyel elfelejtnk lezrni egy csom szolgltatst, vagy gy adunk hozz egy j bels szolgltatst, hogy kzben elfelejtjk frissteni a tzfalat. Ennl mg azon is jobb, ha a tzfalon nyitunk egy magasabb portszm tartomnyt, s ott valstjuk meg ezt a megenged jelleg mkdst, az alacsonyabb portok veszlybe sodrsa nlkl. Vegyk azt is szmtsba, hogy a FreeBSD-ben a kiosztott portokat dinamikusan llthatjuk a net.inet.ip.portrange sysctl vltozkon keresztl (sysctl -a | fgrep portrange), ami nagysgrendekkel megknnyti a tzfal belltst. Ennek megfelelen pldul meg tudjuk adni, hogy a 4000-tl 5000-ig terjed porttartomny a 49152-tl 65535-ig

385

Fejezet 14. Biztonsg hzd tartomnyba kerljn t, majd a 4000 alatti sszes portot blokkoljuk (termszetesen az internetrl szndkosan hozzfrhet portok kivtelvel). A DoS tmadsok msik elterjedt fajtja az n. ugrdeszka tmads ilyenkor a szervert gy prbljk tlterhelni, hogy folyamatosan vlaszokat krnek tle a helyi hlzatrl vagy egy msik szmtgprl. Az ilyen termszet tmadsok kzl is a legnpszerbb az ICMP pingszrsos tmads. A tmad olyan ping csomagokat kld szt a helyi hlzaton, amelyek forrsnak azt a gpet jelli meg, amelyiket meg akarja tmadni. Ha a hlzatokat elvlaszt tvlasztk nem fogjk meg a pingszrst, akkor a helyi hlzatrl sszes gpe nekilt vlaszolgatni a meghamistott forrs cmre, amivel gy teljesen leterhelik az ldozatot. Ez klnsen akkor hatsos, amikor a tmad ugyanezt a trkkt eljtssza egyszerre tbb tucat klnbz hlzatban is. Az zenetszrssal jr tmadsok akr szzhsz megabitnyi forgalmat is kpesek generlni msodpercenknt. A msodik legelterjedtebb ugrdeszks tmads az ICMP hiba-visszajelzsi rendszere ellen irnyul. Ilyenkor a tmad ICMP hibazeneteket kivlt csomagok ksztsvel kpes eltmteni egy szerver bejv hlzati kapcsolatt s az ICMP vlaszokkal pedig a szerver maga dugtja el a kimen hlzati kapcsolatt. Ez a fajtj tmads kpes kinyomni az sszes memrit a szerverbl s ezzel sszeomlasztani, klnsen olyankor, amikor a szerver nem tudja elg gyorsan elnyelni az ltala generlt ICMP vlaszokat. A net.inet.icmp.icmplim sysctl vltozval tudunk gtat szabni a tmadsok ezen fajtjnak. Az ugrdeszks tmadsok utols nagyobb osztlya az inetd olyan szolgltatsait szemeli ki, mint pldul az udp echo. A tmad ilyenkor egyszeren kld a helyi hlzatunkon tallhat A s B szervernknek egy olyan UDP csomagot, ahol forrsknt az A szerver echo portjt adja meg, clnak pedig a B szerver echo portjt. Ezutn a kt szerver elkezdi egyms kztt passzolgatni ezt az egyetlen csomagot. A tmad mg tbb ilyen csomag befecskendezsvel pillanatok alatt kpes leterhelni a kt szervert s helyi hlzatot. Hasonl problmk vannak a bels chargen portjval is. Egy hozzrt rendszergazda ezrt kikapcsolja az sszes ilyen inetd-alap bels tesztel szolgltatst. Az lczott csomagok felhasznlhatak a rendszermag tvlaszt gyorsttrnak tlterhelsre is. Ezzel kapcsolatban nzzk meg a net.inet.ip.rtexpire, rtminexpire s rtmaxcache sysctl vltozkat. A vletlenszer IP-cmekkel megcmzett lczott csomagok hatsra a rendszermag ltrehoz mindegyikjkhz egy ideiglenesen pufferelt utat az tvlaszt tblzatban, amelyet a netstat -rna | fgrep W3 paranccsal tudunk lekrdezni. Az ilyen tvonalak nagyjbl 1600 msodperc mlva elvlnek. Ha a rendszermag szleli, hogy a gyorsttrazott tvlasztsi tblzat mrete tlsgosan megnvekedett, akkor automatikusan cskkenti az rtexpire rtkt, de soha nem megy a rtminexpire al. Ebbl kt problma addik: 1. A rendszermag nem reagl elg gyorsan amikor egy alig terhelt szervert hirtelen megtmadnak. 2. Az rtminexpire nem elg kicsi ahhoz, hogy a rendszermag tlljen egy tartsabb rohamot. Ha a szervereink az internethez T3 (kb. 45 Mbit/s) vagy gyorsabb sszekttetsen keresztl csatlakoznak, akkor hatrozottan javasolt kzileg behangolni a sysctl(8) segtsgvel az rtexpire s az rtminexpire rtkeket. Soha ne lltsuk egyiket sem nullra (hacsak nem akarjuk sszeomlasztani a gpnket). Ha pldul mind a kettt 2 msodpercre lltjuk, akkor az tbbnyire elegend az tvlasztsi tblzat megvdshez.

14.3.9. Hozzfrs Kerberosszal s SSH-val


Van nhny dolog, amit a Kerberos s az ssh esetn ajnlatos tisztzni, mieltt hasznljuk ezeket. A Kerberos 5 egy kifogstalan hitelestsi protokoll. A telnet s rlogin Kerberos ltal mdostott vltozatban vannak olyan hibk, amelyek alkalmatlann teszik ezeket a binris adatfolyamok helyes kezelsre. St, alaprtelmezs szerint a Kerberos nem titkostja a kapcsolatot, csak ha megadjuk neki a -x kapcsolt. Az ssh alaprtelmezs szerint mindent titkost. Az ssh minden szempontbl nagyon jl teljest kivve, hogy alaprtelmezs szerint tkldi a kulcsokat is. Ez azt jelenti, hogy ha van egy olyan biztonsgos munkallomsunk, ahol a rendszer tbbi rszhez tartoz kulcsainkat

386

Fejezet 14. Biztonsg tartjuk s egy nem biztonsgos gpre akarunk vele ssh-n keresztl belpni, akkor a kulcsaink hasznlatv vlnak. A tnyleges kulcsokat ugyan nem ltja senki, de a bejelentkezs sorn az ssh megnyit egy kzvettshez hasznlt portot, amit a nem biztonsgos gpen a tmad egy feltrt root hozzfrs birtokban ki tud hasznlni gy, hogy a kulcsaink segtsgvel hozz tudjon frni egy msik olyan gphez, amelyet a kulcsok nyitnak. Ha lehetsges, akkor a szemlyzet bejelentkeztetshez az ssh-t s Kerberost egyttesen hasznljuk. Az ssh lefordhat Kerberos tmogatssal. Ezzel cskkentjk a potencilisan kiszivrg ssh kulcsok eslyt, mikzben jelszavainkat a Kerberosszal vdjk. Az ssh kulcsokat csak biztonsgos gpekrl s csak automatizlt feladatok esetn hasznljuk (amire a Kerberos lnyegben nem alkalmas). Emellett javasoljuk azt is, hogy az ssh belltsai kztt tiltsuk le a kulcsok tkldst (key forwarding) vagy hasznljuk az from=IP/DOMAIN opcit, amivel az ssh csak a megadott gpekrl engedi az authorized_keys llomny s a gy benne lev kulcsok hasznlatt.

14.4. DES, Blowsh, MD5 s a Crypt


Egyes rszeit jrarta s aktualizlta: Bill Swingle. Minden UNIX rendszer hasznljhoz tartozik egy jelsz is a hozzfrshez. Teljesen nyilvnvalnak tnik, hogy ezt a jelszt csak az adott felhasznl s az adott opercis rendszer ismeri. A jelszavakat a titokban tartsukhoz n. csapajt fggvnyekkel titkostjk, amelyeket knny titkostani, m nehz visszafejteni. Teht amit egy perccel ezeltt mg nyilvalnak titulltunk, az mostanra mr nem is teljesen igaz: valjban az opercis rendszer sem ismeri a jelszt. Az opercis rendszer csak a jelsz titkostott vltozatt ismeri. A jelsz titkostatlan formjt csak nyers er ignyebevtelvel tudjuk megkeresni az sszes lehetsges jelsz sznakazlban. Sajnos, annak idejn, amikor a jelszavak titkostsa bekerlt a UNIX-ba, egyedl a DES, vagy ms nven a Data Encryption Standard (Adattitkostsi szabvny) jtt szba. Ez alapveten nem jelentett problmt az Egyeslt llamok llampolgrai szmra, de mivel a DES forrskdjt nem lehetett kivinni az Egyeslt llamokbl, a FreeBSD-nek tallnia kellett valami olyasmit, ami mind megfelel az Egyeslt llamok trvnyeinek, mind pedig kompatibilis marad az sszes tbbi DES-t hasznl UNIX varinssal. Ezt gy oldottk meg, hogy felosztottk a titkostssal foglalkoz fggvnyknyvtrakat, gy az Egyeslt llamokban l felhasznlk tudtak DES knyvtrakat telepteni s hasznlni, mikzben a tbbi nemzet felhasznli olyan ms titkostsi mdszert tudtak vlasztani, amit kinn is lehetett alkalmazni. Ennek tulajdonthat, hogy a FreeBSD alaprtelmezs szerint az MD5 segtsgvel titkost. Az MD5-t a DES-nl sokkalta biztonsgosabbnak tartjk, ezrt a DES teleptsnek lehetsgt leginkbb csak kompatibilitsi okokbl ajnlottk fel.

14.4.1. A titkostsi mechanizmus azonostsa


Jelenleg a knyvtr ismeri a DES, MD5 s Blowsh fggvnyeit. A FreeBSD a jelszavak titkostshoz alapbl az MD5-t hasznlja. Nagyon knnyen meg tudjuk mondani, hogy a FreeBSD ppen melyik titkostsi mdszert alkalmazza. Ennek egyik lehetsge, ha az /etc/master.passwd llomnyt vizsgljuk meg. Az MD5 fggvnyvel titkostott jelszavak hosszabbak, mint a DES fggvnyvel titkostottak s a $1$ karakterekkel kezddnek. A $2a$ karakterekkel kezdd jelszavakat Blowsh-sel titkostottk. A DES kdols jelszavaknak nincs semmilyen klnleges ismertetjelk, de ltalnossgban elmondhat rluk, hogy rvidebbek az MD5 jelszavaknl s olyan 64 karakteres bcvel kdoljk ezeket, amelyek nem tartalmazzk a $ karaktert, gy teht a viszonylag rvid, nem dollrjellel kezdd karakterlncok minden bizonnyal DES kdols jelszavak.

387

Fejezet 14. Biztonsg Az j jelszavak kdolshoz hasznlt formtumot az /etc/login.conf llomnyban trolt passwd_format bejelentkezsi tulajdonsg adja meg, amelynek rtkei des, md5 vagy blf lehetnek. A login.conf(5) man oldalon tjkozdhatunk bvebben a bejelentkezsi tulajdonsgokrl.

14.5. Egyszeri jelszavak


A FreeBSD alaprtelmezs szerint tmogatja az OPIE-t (One-time Passwords In Everything, azaz Egyszeri jelszavak mindenben), ami alapbl az MD5 fggvnyt hasznlja. A jelszavak hrom fajtjt fogjuk a tovbbiakban trgyalni. Az els a megszokott UNIX stlus avagy Kerberos jelsz. Ezt a tovbbiakban UNIX jelsznak nevezzk. A msodik fajtban az OPIE opiekey(1) nev segdprogramja ltal generlt s a bejelentkezsnl a opiepasswd(1) ltal elfogadott jelszavak tartoznak. Ezeket egyszeri jelszavaknak fogjuk nevezni. A jelszavak utols tpusa az a titkos jelsz, amit az opiekey programnak (s nha a opiepasswd programnak) adunk meg, ami ebbl egyszer hasznlatos jelszavakat llt el. Ezt innentl titkos jelsznak vagy csak egyszeren jelsznak hvjuk. A titkos jelsznak semmi kze sincs a UNIX jelszavunkhoz. Termszetesen megegyezhetnek, de ezt nem ajnljuk. Az OPIE ltal hasznlt titkos jelszavaknak nem kell a rgi UNIX jelszavakhoz hasonlan legfeljebb 8 karakteresnek lennik 1, brmekkort hasznlhatunk. A hat vagy ht szbl ll jelszavak ilyenkor igen gyakoriak. Az OPIE jobbra a UNIX jelszrendszertl teljesen fggetlenl mkdik. A jelszavak mellett kt msik fajta adat fontos az OPIE szmra. Kzlk az egyiket magnak vagy kulcsnak nevezik, ami kt betbl s t szmjegybl ll. A msik az itercik szma, ami egy 1 s 100 kztti szmot takar. Az OPIE gy hozza ltre az egyszeri jelszavakat, hogy egyms utn fzi a magot s a titkos jelszt, majd az itercik megadott szmnak megfelel mennyisgben kiszmolja r az MD5 fggvny rtkt s az eredmnyt hat rvid angol szba nti. Ez a hat angol sz lesz a mi egyszeri jelszavunk. A hitelestssel foglalkoz rendszer (elssorban a PAM) gyelemmel ksri a legutoljra hasznlt egyszeri jelszavunkat, s csak akkor engedi a felhasznlt hitelesteni, ha az ltala megadott jelsz kdolt vltozata megegyezik az elzleg megadott jelszavval. A csapajt fggvnyek hasznlata miatt lehetetlen legenerlni a kvetkez egyszeri jelszt, ha a sikerlt megszereznnk az egyiket. Az itercik szma minden egyes sikeres bejelentkezs utn cskken eggyel, amivel a felhasznlt s a bejelentkeztet programot szinkronban tartja. Amikor gy az itercik szma elri az egyet, az OPIE-t jra kell inicializlni. Az emltsre kerl rendszerek mindegyikhez tartozik nhny program. Az opiekey bekri az itercik szmt, a magot s a titkos jelszt, majd elllt egy egyszer hasznlatos jelszt vagy azok folytonos listjt. Az opiepasswd az OPIE inicializlsrt, a jelszavak, az itercik szmnak s a mag megvltoztatsrt felels. Egyarnt elfogad titkos jelmondatot, itercis szmot vagy magot s egy egyszeri jelszt. Az opieinfo megvizsglja a felhasznlkra vonatkoz adatbzist (/etc/opiekeys) s kirja az adott felhasznl ltal hasznlt itercis szmot s magot. Ngyfle klnbz mveletrl fogunk most itt beszlni. Az elsben egy biztonsgos kapcsolaton keresztl elsknt inicializljuk az egyszeri jelszavakat, vagy megvltoztatjuk a jelszt vagy a magot az opiepasswd segtsgvel. A msodik mveletben ugyanarra adjuk ki az opiepasswd parancsot egy nem biztonsgos kapcsolaton keresztl az opiekey paranccsal egytt egy biztonsgos kapcsolaton keresztl. A harmadikban az opiekey hasznlatval nem biztonsgos kapcsolaton keresztl jelentkeznk be. A negyedikben az opiekey paranccsal ltrehozunk egy adott mennyisg kulcsot, amelyeket aztn lerhatunk vagy kinyomtathatunk, hogy magunkkal tudjuk vinni olyan helyre, ahonnan nem tudnk biztonsgos mdon csatlakozni.

388

Fejezet 14. Biztonsg

14.5.1. Inicializls biztonsgos kapcsolattal


Az OPIE els inicializlshoz adjuk ki az opiepasswd parancsot:
% opiepasswd -c

[grimreaper] ~ $ opiepasswd -f -c Adding unfurl: Only use this method from the console; NEVER from remote. If you are using telnet, xterm, or a dial-in, type ^C now or exit with no password. Then run opiepasswd without the -c parameter. Using MD5 to compute responses. Enter new secret pass phrase: Again new secret pass phrase: ID unfurl OTP key is 499 to4268 MOS MALL GOAT ARM AVID COED

A gyelmeztets fordtsa:
Ezt a mdszert csak konzolrl alkalmazzuk, SOHA ne tvoli kapcsolaton keresztl! Ha telnetet, xtermet vagy betrcszs kapcsolatot hasznlunk, akkor azonnal nyomjunk ^C-t vagy ne adjunk meg jelszt.

Az Enter new secret pass phrase: vagy Enter secret password: krdsek utn adjunk meg egy jelmondatot, illetve jelszt. Ne felejtsk el, hogy ez nem bejelentkezshez hasznlt jelsz lesz, hanem ebbl jnnek majd ltre az egyszeri kulcsaink. Az ID sor adja meg az aktulis pldnyunk paramtereit: a bejelentkezshez hasznlt nevnket, az itercik szmt s a magot. Amikor a bejelentkezsek sorn a rendszer emlkszik a paramterekre s megjelenti ezeket, nem kell megjegyeznnk. Az utols sor adja meg a paramtereinknek s a titkos jelszavunknak megfelel egyszeri jelszt. Ha most azonnal akarnnk bejelentkezni, akkor ezt az egyszeri jelszt kellene hozz hasznlnunk.

14.5.2. Inicializls nem biztonsgos kapcsolattal


Ha egy nem biztonsgos kapcsolaton keresztl akarjuk inicializlni vagy megvltoztatni a jelszavunkat, akkor szksgnk lesz valahol egy megbzhat kapcsolatra, ahol le tudjuk futtatni az opiekey parancsot. Ez lehet egy szmunkra biztonsgi szempontbl elfogadhat gp parancssora. Emellett ki kell tallnunk egy itercis szmot (erre a 100 egy j vlaszts) s adnunk egy magot vagy hasznlni egy vletlenszeren generltat. Az inicializls szntere fel vezet nem biztonsgos kapcsolaton keresztl adjuk ki az opiepasswd parancsot:
% opiepasswd

Updating unfurl: You need the response from Old secret pass phrase: otp-md5 498 to4268 Response: GAME GAG New secret pass phrase: otp-md5 499 to4269 Response: LINE PAP

an OTP generator. ext WELT OUT DOWN CHAT

MILK NELL BUOY TROY

ID mark OTP key is 499 gr4269 LINE PAP MILK NELL BUOY TROY

389

Fejezet 14. Biztonsg Az alaprtelmezett mag elfogadshoz nyomjuk le a Return billentyt. Mieltt megadnnk a hozzfrs jelszavt, menjnk t a biztonsgos kapcsolatra s adjuk meg neki ugyanezeket a paramtereket:
% opiekey 498 to4268

Using the MD5 algorithm to compute response. Reminder: Dont use opiekey from telnet or dial-in sessions. Enter secret pass phrase: GAME GAG WELT OUT DOWN CHAT

Most vltsunk vissza a nem biztonsgos kapcsolatra s msoljuk be az gy generlt egyszeri jelszt a megfelel programba.

14.5.3. Egyetlen egyszeri jelsz ltrehozsa


Miutn sikeresen inicializltuk az OPIE-t s bejelentkeznk, a kvetkezket lthatjuk:
% telnet example.com

Trying 10.0.0.1... Connected to example.com Escape character is ^]. FreeBSD/i386 (example.com) (ttypa) login: felhasznli_nv otp-md5 498 gr4269 ext Password:

Mellkesen megjegyezzk, hogy az OPIE paranccsornak van egy (itt nem lthat) hasznos kpessge: ha Return billentyt nyomunk a jelsz bekrsekor, akkor a program megmutatja a begpelt betket, gy lthatjuk pontosan mit is runk be. Ez nagyon knyelmes lehet olyankor, amikor valahonnan, pldul egy laprl olvassuk a jelszt. A bejelentkezshez ekkor le kell valahogy generlnunk az egyszeri jelszavunkat. Ezt egy megbzhat rendszeresen tudjuk megtenni az opiekey lefuttatsval. (Ennek vannak DOS-os, Windows-os s Mac OS-es vltozatai is.) Paramterknt az itercis szmot s a magot kell megadnunk. Ezt akr kzvetlenl t is msolhatjuk annak a gpnek a bejelentkezsi kpernyjrl, ahova be akarunk jelentkezni. A megbzhat rendszeren teht:
% opiekey 498 to4268

Using the MD5 algorithm to compute response. Reminder: Dont use opiekey from telnet or dial-in sessions. Enter secret pass phrase: GAME GAG WELT OUT DOWN CHAT

Most mr megvan a bejelentkezshez szksges egyszeri jelszavunk.

390

Fejezet 14. Biztonsg

14.5.4. Tbb egyszeri jelsz ltrehozsa


Nha olyan helyekre kell mennnk, ahol se egy megbzhat gp, sem pedig biztonsgos kapcsolat nem tallhat. Ilyen esetekben megadhatjuk az opiekey parancsnak, hogy elre gyrtson le tbb egyszer hasznlatos jelszt, amit ksbb aztn ki tudunk nyomtatni. Pldul:
% opiekey -n 5 30 zz99999

Using the MD5 algorithm to compute response. Reminder: Dont use opiekey from telnet or dial-in sessions. Enter secret pass phrase: <secret password> 26: JOAN BORE FOSS DES NAY QUIT 27: LATE BIAS SLAY FOLK MUCH TRIG 28: SALT TIN ANTI LOON NEAL USE 29: RIO ODIN GO BYE FURY TIC 30: GREW JIVE SAN GIRD BOIL PHI

Az -n 5 t kulcsot kr egyms utn, a 30 pedig megadja az utols itercis szmot. Vegyk szre, hogy a kulcsokat a felhasznls sorrendjvel ellenttes sorrendben rja ki a program. Ha igazn paranoisok vagyunk, akkor rjuk le kzzel a jelszavakat. Ha viszont annyira nem, akkor egyszeren kldjk t ezeket az lpr parancsnak. Meggyelhetjk, hogy minden sorban lthat az itercis szm s a hozztartoz egyszeri jelsz. Hasznos lehet a felhasznls szerinti felrni a jelszavakat.

14.5.5. A UNIX jelszavak hasznlatnak leszktse


Az OPIE kpes a bejelentkezshez hasznlt IP-cmek alapjn leszkteni a UNIX jelszavak hasznlatt. Ehhez az /etc/opieaccess hasznlhat, amely alapbl megtallhat a rendszernkn. Az opieaccess(5) man oldaln tallhatjuk meg a r vonatkoz informcikat s az sszes vele kapcsolatos biztonsgi megfontolst. me egy plda az opieaccess llomnyra:
permit 192.168.0.0 255.255.0.0

Ezzel a sorral megengedjk a UNIX jelszavak hasznlatt minden olyan felhasznl szmra, akinek az IP-je illeszkedik a megadott cmre s maszkra (ez viszont lczssal kijtszhat). Ha az opieaccess llomnybl egyetlen szably sem illeszkedik, akkor alaprtelmezs szerint nem engedlyezettek a nem OPIE tpus jelszavak.

14.6. A TCP kapcsolatok burkolsa


rta: Tom Rhodes. Aki ismeri az inetd(8) programot, az mr biztosan hallott a TCP kapcsolatok burkolsrl, eredeti nevn a a TCP wrapperekrl. Azonban csak kevesek kpesek felfogni ezek valdi hasznt. gy nz ki, mindenki csak tzfalakon keresztl akarja megoldani a hlzati kapcsolatot kezelst. Habr a tzfalakat sok mindenre fel lehet ugyan hasznlni, egyetlen tzfal nem kpes pldul szvegesen vlaszolni a kapcsolatok kezdemnyezinek. Ellenben brmelyik TCP-wrapper szoftver kpes erre, st mg tbbre is. A kvetkez nhny szakaszban szemgyre vesszk

391

Fejezet 14. Biztonsg a TCP wrapperek szmos lehetsgt, s ahol lehetsges, ott kongurcis llomnyokkal is illusztrljuk ezek hasznlatt. A TCP burkol szoftverek kiterjesztik az inetd kpessgeit minden alatta dolgoz szerverdmon tmogatsra. Ezzel a mdszerrel meg lehet oldani a naplzst, zenetek kldst a kapcsolatokhoz, a dmonok elrhetsgnek korltozst stb. Noha ezen lehetsgek kzl nhny tzfallal is megvalsthat, ezzel nem csupn egy tovbbi vdelmi rteget hzunk fel a rendszernk kr, hanem tllpjk mindazt, amit egy tzfallal irnytani lehet. A TCP burkolk hasznlatval hozzadott funkcionalits azonban nem helyettest egy j tzfalat. A TCP kapcsolatok burkolst tzfallal vagy ms egyb biztonsgi megoldssal egytt tudjuk csak eredmnyesen hasznlni, viszont a rendszernk biztonsgban egy jabb remek vdelmi vonalat kpvisel. Mivel lnyegben ez az inetd belltsnak kibvtse, ezrt a szakasz elolvasshoz felttelezzk az inetd belltsval kapcsolatos tudnivalk ismerett.
Megjegyzs: Br az inetd(8) ltal indtott programok nem egszen tekintheten dmonoknak, hagyomnyosan dmonnak hvjk ezeket. Ezrt rjuk ebben a szakaszban is ezt a kifejezst hasznljuk.

14.6.1. Kezdeti belltsok


FreeBSD alatt a TCP burkolk hasznlatnak egyetlen felttele csupn annyi, hogy az inetd parancsot a -Ww paramterrel indtsuk az rc.conf llomnybl. Az egybknt az alapbellts. Termszetesen nem rt, ha helyesen lltjuk be az /etc/hosts.allow llomnyt is, ellenkez esetben a syslogd(8) egybknt doblni fogja errl az zeneteket.
Megjegyzs: Eltren a TCP burkolk egyb implementciitl, a hosts.deny llomnyt itt mr nem hasznljuk. Minden belltst az /etc/host.allow llomnyba kell raknunk.

A legegyszerbb kongurci esetn a dmonok kapcsoldst egyszeren engedlyezhetjk vagy letilthatjuk az /etc/hosts.allow llomnyban szerepl belltsokkal. A FreeBSD alaprtelmezett belltsai szerint minden inetd ltal indtott dmonhoz lehet kapcsoldni. Ennek megvltoztatsval az alapkongurci ttekintse utn foglalkozunk. Az alapkongurci ltalban dmon : cm : cselekvs alak. Itt a dmon egy olyan dmonra utal, amelyet az inetd indtott el. A cm egy rvnyes hlzati nv, IP-cm vagy szgletes zrjelek ([ ]) kztt megadott IPv6 formtum cm. A cselekvst tartalmaz mez (action) lehet allow vagy deny annak megfelelen, hogy engedlyezzk vagy tiltjuk a megadott cmrl a csatlakozst. Nem szabad elfelejtennk, hogy az gy megadott belltsok kzl mindig az elsknt illeszked rvnyesl, ami arra utal, hogy a kongurcis llomnyban szerepl szablyok egyms utn nvekv sorrendben rtkeldnek ki. Ha valamelyikk illeszkedik, akkor a keress megll. Rengeteg egyb opci is megadhat mg, de ezekrl csak a ksbbi szakaszokban fogunk szlni. Egy egyszer kongurcis llomny mr ennyi informcibl is knnyedn sszellthat. Pldul, ha engedlyezni szeretnnk a POP3 kapcsolatokat a mail/qpopper dmonon keresztl, akkor a kvetkez sorral kell kiegsztennk a hosts.allow llomnyt:
# Ez a sor kell a POP3 kapcsolatokhoz: qpopper : ALL : allow

392

Fejezet 14. Biztonsg Miutn hozzadtuk ezt a sort, az inetd szervert jra kell indtanunk. Ezt vagy a kill(1) paranccsal, vagy pedig az
/etc/rc.d/inetd szkript restart paramtervel tehetjk meg.

14.6.2. Komolyabb belltsok


A TCP kapcsolatok burkolsnl is meg lehet adni tovbbi opcikat. Segtsgkkel mg jobban irnytani tudjuk a kapcsolatok kezelsnek mdjt. Nhny esetben az is hasznos lehet, ha kldnk valamilyen vlaszt az egyes gpeknek vagy dmonoknak. Mskor szksgnk lehet a csatlakozsok naplzsra vagy e-mailen keresztli jelzsre a rendszergazda fel. Teljesen ms helyezetekben csak a helyi hlzatunkrl engedjk meg a csatlakozst. Ez mind lehetsges a helyettest jelekknt ismert belltsi opcik, kiterjeszt karakterek s kls parancsok vgrehajtsnak hasznlatval. A kvetkez kt szakasz az ilyen s ehhez hasonl szitucik megoldsra rdott.

14.6.2.1. Kls parancsok


Tegyk fel, hogy olyan helyezetben vagyunk, amikor a kapcsolatot tiltani akarjuk, de kzben azrt szeretnnk errl rtesteni a kapcsolatot kezdemnyez felet is. Hogyan tudjuk ezt megcsinlni? Ezt a twist nev opcival tehetjk meg. Amikor megprbl valaki csatlakozni, akkor a twist hvdik meg s vgrehajt egy megadott parancsot vagy szkriptet. Erre tallunk is egy pldt a hosts.allow llomnyban:
# The rest of the daemons are protected. ALL : ALL \ : severity auth.info \ : twist /bin/echo "You are not welcome to use %d from %h."

Ez a plda a kvetkez zenetet jelenti meg: You are not allowd to use a dmon neve from hlzati nv. (Jelentse: A dmon neve dmont nem rheti el a hlzati nv helyrl!) Ez minden olyan dmon esetn megjelenik, amirl nem nyilatkoztunk korbban az llomnyban. Ezzel nagyon knnyen vissza tudunk kldeni egy vlaszt a kapcsolat kezdmnyezje fel, miutn a kapcsolatot eldobtuk. Vegyk szre, hogy a visszakldend zenetet " karakterek kz kell tennnk, ez all semmi sem kivtel.
FigyelemDoS tmadst lehet elidzni azzal, ha egy tmad vagy tmadk egy csoportja csatlakozsi krelmekkel kezdi el bombzni a dmonainkat.

Ilyen esetekben hasznlhatjuk a spawn opcit is. A spawn a twist opcihoz hasonlan implicit mdon tiltja a kapcsoldst s arra hasznlhat, hogy lefuttassunk vele egy parancsot vagy szkriptet. A spawn azonban a twist opcitl eltren nem kld vissza semmilyen vlaszt a kapcsolatot ltrehozni kvn egynnek. Ehhez pldaknt vegyk a kvetkez sort a kongurcis llomnyban:
# We do not allow connections from example.com: ALL : .example.com \ : spawn (/bin/echo %a from %h attempted to access %d >> \ /var/log/connections.log) \ : deny

393

Fejezet 14. Biztonsg Ezzel a *.example.com cmtartomnybl rkez sszes kapcsoldsi ksrlet sikertelen lesz, mikzben ezzel egyidben a /var/log/connections.log llomnyba rgztjk a csatlakozni akar egyn hlzati nevt, IP-cmt s a dmont. A korbban mr kifejtett helyettest karakterek tl, mint pldul az %a, mg lteznek tovbbiak is. Rluk a hosts_access(5) man oldalon tallhatjuk meg a teljes listt.

14.6.2.2. Helyettest jelek


Az eddigi pldkban folyamatosan csak az ALL opcit adtuk meg. Azonban rajta kvl lteznek msok is, amivel a megolds funkcionalitst mg egy kicsivel tovbb nvelhetjk. Pldul az ALL hasznlhat egy dmon, egy tartomny vagy egy IP-cm illesztsre. A msik ilyen helyettest jel a PARANOID, amelyet olyan gpek IP-cmnek illesztsekor alkalmazhatunk, ami felttelezheten hamis. Ms szval a PARANOID olyan cselekvsek megadst teszi lehetv, amelyek akkor hajtdnak vgre, amikor a kapcsolatot ltrehoz gp IP-cme eltr a hlzati nevtl. A most kvetkez plda valsznleg segt fnyt derteni ennek lnyegre:
# Block possibly spoofed requests to sendmail: sendmail : PARANOID : deny

A pldban minden olyan kapcsolatkrst elutastunk, ami a sendmail fel a hlzati nvtl eltr IP-cmrl irnyul.
FigyelemHa rossz DNS belltsokat hasznlunk, a PARANOID megadsval slyosan mozgskptelenn tehetjk a kliensnket vagy szervernket. Ezrt legynk vatosak vele!

A helyettest jelekrl s hozzjuk tartoz tovbbi lehetsgekrl a hosts_access(5) man oldalon tjkozdhatunk. A hosts.allow llomnybl ki kell venni az els sort ahhoz, hogy brmilyen egyb kongurcis bellts mkdkpes legyen. Ezt emltettk a szakasz elejn is.

14.7. KerberosIV
rta: Mark Murray. Eredetileg rta: Mark Dapoz. A Kerberos egy olyan jrulkos rendszer/protokoll, amellyel a felhasznlk egy biztonsgos szerver szolgltatsain keresztl tudjk hitelesteni magukat. Ilyen szolgltats tbbek kzt a tvoli bejelentkezs, tvoli msols, a rendszeren belli biztonsgos msols s minden olyan egyb veszlyes feladat, amit szmotteven megbzhatbb s irnythatbb tettek. A kvetkez utastsok a FreeBSD-hez mellkelt Kerberos belltshoz adnak tmutatst. A teljes lershoz azonban rdemes fellapoznunk a menet kzben hivatkozott man oldalakat is.

394

Fejezet 14. Biztonsg

14.7.1. A KerberosIV teleptse


A Kerberos a FreeBSD egyik vlaszthat komponense. Legknnyebben gy tudjuk feltelepteni, ha a FreeBSD teleptse sorn a sysinstall programban kivlasztjuk a krb4 vagy krb5 terjesztsek valamelyikt. Ezzel felrakhatjuk a Kerberos eBones (KerberosIV) vagy Heimdal (Kerberos5) elnevezs vltozatait. A FreeBSD azrt tartalmazza ezeket az implementcikat, mert nem az Amerikai Egyeslt llamokban vagy Kanadban fejlesztettk, gy az Egyeslt llamok titkostsokkal kapcsolatos kiviteli korltozsok korban minden olyan rendszer adminisztrtora el tudta rni, aki nem ezekben az orszgokban lakott. A Kerberos MIT ltal fejlesztett implementcijt egybknt a Portgyjtemnybl a security/krb5 porton keresztl rhetjk el.

14.7.2. A kezdeti adatbzis ltrehozsa


Ezt a lpst csak a Kerberos szerveren kell elvgezni. Elszr is gyzdjnk meg rla, hogy semmilyen korbbi Kerberos adatbzis nem tallhat a gpen. Vltsunk az /etc/kerberosIV knyvtrra s ellenrizzk a kvetkez llomnyok megltt:
# cd /etc/kerberosIV # ls

README krb.conf

krb.realms

Ha rajtuk kvl tovbbi llomnyok is feltnnnek (mint pldul a principal.* vagy master_key), akkor a kdb_destroy paranccsal puszttsuk el a rgi Kerberos adatbzist, vagy ha nem fut mr a Kerberos, akkor egyszeren csak trljk le ezeket. Ezutn lssunk neki a krb.conf s krb.realms llomnyok trsn keresztl a Kerberos egyes vezeteinek (realm) ltrehozshoz. Itt most az EXAMPLE.COM lesz a ltrehozand vezet, a hozztartoz szerver pedig a grunt.example.com. gy szerkesszk t vagy ksztsnk el a neki megfelel krb.conf llomnyt:
# cat krb.conf

EXAMPLE.COM EXAMPLE.COM grunt.example.com admin server CS.BERKELEY.EDU okeeffe.berkeley.edu ATHENA.MIT.EDU kerberos.mit.edu ATHENA.MIT.EDU kerberos-1.mit.edu ATHENA.MIT.EDU kerberos-2.mit.edu ATHENA.MIT.EDU kerberos-3.mit.edu LCS.MIT.EDU kerberos.lcs.mit.edu TELECOM.MIT.EDU bitsy.mit.edu ARC.NASA.GOV trident.arc.nasa.gov

A tbbi vezetnek valjban nem felttlenl kell itt lennie. Ezek csupn azrt szerepelnek itt, hogy bemutassk miknt lehet egyetlen gphez hozzrendelni egyszerre tbb vezetet is. Az egyszersg kedvrt nyugodtan elhagyhatak. Az els sor nevezi meg a rendszer ltal mkdtetett vezeteket. Az utna kvetkez sorokban vezeteket s hlzati neveket lthatunk. Itt az els elem egy vezetet nevez meg, a msodik elem pedig az vezet kulcseloszt kzpontjt (key distribution center). A hlzati nevet kvet admin server kulcsszavak arra utalnak, hogy az adott gp adminisztratv szerepet ellt adatbzist is tartalmaz. Ezeket a fogalmakat rszleteiben a Kerberos man oldalain ismerhetjk meg.

395

Fejezet 14. Biztonsg Ezutn hozz kell adnunk a grunt.example.com nev gpet az EXAMPLE.COM vezethez, valamint az .example.com tartomnyban lev sszes gphez ltre kell hoznunk egy bejegyzst az EXAMPLE.COM vezetben. A krb.realms llomnyt ehhez a kvetkezkppen kellene mdostanunk:
# cat krb.realms

grunt.example.com EXAMPLE.COM .example.com EXAMPLE.COM .berkeley.edu CS.BERKELEY.EDU .MIT.EDU ATHENA.MIT.EDU .mit.edu ATHENA.MIT.EDU

Ismt hozztesszk, hogy a tbbi vezetnek nem ktelez itt szerepelnie. Ezek csupn azt demonstrljk, hogy miknt kell egy gpet egyszerre tbb vezethez is belltani. Az tlthatsg kedvrt minden tovbbi nlkl eltvolthatjuk ezeket. Itt az els sor az adott rendszert elhelyezi egy nevestett vezetbe. A tbbi sor azt mutatja meg, hogyan kell alaprtelmezett mdon a meghatrozott altartomnyokba tartoz gpeket egy nevestett vezethez hozzrendelni. Most mr kszen llunk az adatbzis ltrehozsra. Ehhez egyedl a Kerberos szervert (avagy Kulcseloszt kzpontjt) kell elindtanunk. Adjuk ki a kdb_init parancsot:
# kdb_init Realm name [default

ATHENA.MIT.EDU ]: EXAMPLE.COM

You will be prompted for the database Master Password. It is important that you NOT FORGET this password.
Enter Kerberos master key:

Az zenet fordtsa:
Most az adatbzis mesterkulcst kell megadni. NE FELEJTSK EL ezt a jelszt. Fontos, hogy

Most el kell mentennk a kulcsot, gy a helyi gpen fut szerverek fel tudjk szedni. Ehhez a kstash parancsra van szksgnk:
# kstash Enter Kerberos master key:

Current Kerberos master key version is 1. Master key entered. BEWARE!

Az zenet fordtsa:
A Kerberos mesterkulcsnak jelenlegi vltozata: 1. VIGYZAT, megadtk a mesterkulcsot!

Ez elmenti a titkostott mesterkulcsot az /etc/kerberosIV/master_key llomnyba.

396

Fejezet 14. Biztonsg

14.7.3. Az egsz bezemelse


Mindegyik Kerberosszal rztt rendszerrel kapcsolatban kt n. szereplt (principal) kell mg hozztennnk az adatbzishoz. A nevk kpasswd s rcmd. Minden rendszerhez ltre kell hoznunk ezeket a szereplket, pldnyonknt (instance) az egyes rendszerek neveivel. A kpasswd s rcmd dmonok teszik lehetv a tbbi rendszer szmra, hogy megvltoztathassk a Kerberos jelszavukat, valamint hogy futtathassk az rcp(1), rlogin(1) s rsh(1) parancsokat. Vegyk fel ezeket a bejegyzseket is:
# kdb_edit

Opening database...
Enter Kerberos master key:

Current Kerberos master key version is 1. Master key entered. BEWARE! Previous or default values are in [brackets] , enter return to leave the same, or new value.
Principal name: passwd Instance: grunt

<Not found>, Create [y] ? y Principal: passwd, Instance: grunt, kdc_key_ver: 1 New Password: <---- rjuk be, hogy RANDOM Verifying password
New Password: <---- rjuk be, hogy RANDOM Random password [y] ? y

Principals new key version = 1


Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ? Max ticket lifetime (*5 minutes) [ 255 ] ? Attributes [ 0 ] ?

Edit O.K.
Principal name: rcmd Instance: grunt

<Not found>, Create [y] ? Principal: rcmd, Instance: grunt, kdc_key_ver: 1 New Password: <---- rjuk be, hogy RANDOM Verifying password
New Password: Random password [y] ?

<---- rjuk be, hogy RANDOM

Principals new key version = 1

397

Fejezet 14. Biztonsg


Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ? Max ticket lifetime (*5 minutes) [ 255 ] ? Attributes [ 0 ] ?

Edit O.K.
Principal name:

<---- ha nem adunk meg semmit, akkor kilp

14.7.4. A szerver llomny ltrehozsa


Most pedig kivonatolni kell azokat a pldnyokat, amelyek szolgltatst denilnak a gpen. Erre az ext_srvtab parancsot hasznljuk. Ennek eredmnyekppen keletkezik egy llomnyt, amelyet biztonsgos eszkzkkel t kell msolni vagy t kell mozgatni az egyes Kerberos kliensek /etc knyvtrba. Ennek az llomnynak egyarnt jelent kell lennie a szerveren s a kliensen is, nlkle a Kerberos mkdskptelen.
# ext_srvtab grunt Enter Kerberos master key:

Current Kerberos master key version is 1. Master key entered. BEWARE! Generating grunt-new-srvtab....

Ez a parancs most ltrehozott egy ideiglenes llomnyt, amit t kell nevezni az srvtab nvre, hogy megtallhassk a szerverek. Az eredeti rendszeren a mv(1) paranccsal tudjuk a helyre rakni:
# mv grunt-new-srvtab srvtab

Ha egy kliensnek sznjuk az llomnyt s a hlozatunkat nem tekinthetjk biztonsgosnak, akkor a kliens-new-srvtab llomnyt msoljuk egy mozgathat adathordozra s megbzhat mdon jutassuk el. Ne felejtsk el az llomnyt srvtab nven trakni a kliens /etc knyvtrba s az engedlyeit 600-ra lltani:
# mv grumble-new-srvtab srvtab # chmod 600 srvtab

14.7.5. Az adatbzis feltltse


Ezt kveten rgztennk kell nhny felhasznlt is adatbzisban. Elszr is hozzunk ltre egy bejegyzst a janos nev felhasznlnak. Ezt a kdb_edit parancs kiadsval tesszk meg:
# kdb_edit

Opening database...
Enter Kerberos master key:

Current Kerberos master key version is 1. Master key entered. BEWARE! Previous or default values are in [brackets] , enter return to leave the same, or new value.

398

Fejezet 14. Biztonsg


Principal name: janos Instance:

<Not found>, Create [y] ? y Principal: janos, Instance: , kdc_key_ver: 1 New Password: <---- adjunk meg egy biztonsgos jelszt Verifying password <---- itt ismt adjuk meg a jelszt Principals new key version = 1
New Password: Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ? Max ticket lifetime (*5 minutes) [ 255 ] ? Attributes [ 0 ] ?

Edit O.K.
Principal name:

<---- ha nem runk be semmit, akkor kilp

14.7.6. Prbljuk ki
Elsknt a Kerberos dmonait kell beindtanunk. Ezzel kapcsolatban megjegyeznnk, hogy ha ehhez megfelelen trtuk az /etc/rc.conf llomnyunkat, akkor ez az jraindtssal egytt magtl lezajlik. Ezt csak a Kerberos szerveren kell megcsinlni. A Kerberos kliensei maguktl sszeszedik a mkdskhz szksges adatokat az /etc/kerberosIV knyvtrbl.
# kerberos &

Kerberos server starting Sleep forever on error Log file is /var/log/kerberos.log Current Kerberos master key version is 1. Master key entered. BEWARE! Current Kerberos master key version is 1 Local realm: EXAMPLE.COM
# kadmind -n &

KADM Server KADM0.0A initializing Please do not use kill -9 to kill this job, use a regular kill instead Current Kerberos master key version is 1. Master key entered. BEWARE!

A fenti gyelmeztets fordtsa:


A program lelltsra ne a kill -9 parancsot, hanem a normlis kill parancsot hasznljuk

Ezutn a kinit parancs hasznlatval prbljunk meg az elbb ltrehozott janos azonostnak krni egy jegyet:
% kinit janos

399

Fejezet 14. Biztonsg


MIT Project Athena (grunt.example.com) Kerberos Initialization for "janos"
Password:

A klist paranccsal most prbljuk meg kilistzni a tokeneket s gy ellenrizni, hogy valban rendelkeznk velk:
% klist

Ticket file: Principal: Issued Apr 30 11:23:22

/tmp/tkt245 janos@EXAMPLE.COM Expires Apr 30 19:23:22 Principal krbtgt.EXAMPLE.COM@EXAMPLE.COM

Ezutn a passwd(1) hasznlatval prbljuk meg megvltoztatni a jelszavunkat. Ezzel tudjuk ellenrizni, hogy a kpasswd dmon hozzfr a Kerberos adatbzishoz:
% passwd

realm EXAMPLE.COM
Old password for janos: New Password for janos:

Verifying password
New Password for janos:

Password changed.

14.7.7. Adminisztrtori jogosultsgok felvtele


A Kerberos lehetv teszi, hogy mindegyik olyan felhasznlnak, akinek rendszergazdai jogokra lenne szksge, a su(1) elrshez kln meg tudjunk adni egy jelszt. Most mr tudunk mondani egy olyan azonostt is, amely jogosult a su(1) hasznlatval root jogokat szerezni. Ezt gy tudjuk megoldani, ha az adott szereplhz trstunk egy root pldnyt. A kdb_edit hasznlatval kszteni tudunk egy janos.root bejegyzst a Kerberos adatbzisban:
# kdb_edit

Opening database...
Enter Kerberos master key:

Current Kerberos master key version is 1. Master key entered. BEWARE! Previous or default values are in [brackets] , enter return to leave the same, or new value.
Principal name: janos Instance: root

<Not found>, Create [y] ? y Principal: janos, Instance: root, kdc_key_ver: 1 New Password: <---- ide csak egy BIZTONSGOS jelszt adjuk meg! Verifying password

400

Fejezet 14. Biztonsg

New Password:

<---- adjuk meg ismt a jelszt

Principals new key version = 1


Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ? Max ticket lifetime (*5 minutes) [ 255 ] ? 12 <--- ne lltsuk nagyon hosszra! Attributes [ 0 ] ?

Edit O.K.
Principal name:

<---- ha nem adunk meg semmit, akkor kilp

Ezt kveten gy tudunk megbizonyosodni a mkdsrl, hogy megprblunk neki tokeneket szerezni:
# kinit janos.root

MIT Project Athena (grunt.example.com) Kerberos Initialization for "janos.root"


Password:

Most rakjuk bele a felhasznlt a root .klogin llomnyba:


# cat /root/.klogin

janos.root@EXAMPLE.COM

Ezutn prbljunk meg kiadni a su(1) parancst:


% su Password:

Nzzk meg milyen tokenjeink is vannak:


# klist

Ticket file: /tmp/tkt_root_245 Principal: janos.root@EXAMPLE.COM Issued May 2 20:43:12 Expires May 3 04:43:12 Principal krbtgt.EXAMPLE.COM@EXAMPLE.COM

14.7.8. Ms parancsok hasznlata


Az imnti pldban ltrehoztunk egy janos nev szereplt, amihez a root egy pldnyt rendeltk. Ez egy olyan felhasznln alapjn trtnt, akinek a neve megegyezik a hozztartoz szereplvel, ami a Kerberosban alaprtelmezs. Amennyiben a szksges megjegyzsek megtallhatak a root knyvtrban lev .klogin llomnyban, akkor a felhasznl.root formtum szerepl.pldny azonost megengedi a felhasznl szmra, hogy vgrehajtsa a su(1) parancsot.
# cat /root/.klogin

janos.root@EXAMPLE.COM

Ehhez hasonlan, ha a felhasznl sajt knyvtrban megtallhat egy ilyen llomny:


% cat ~/.klogin

janos@EXAMPLE.COM jozsef@EXAMPLE.COM

401

Fejezet 14. Biztonsg Ezzel a kongurcival brki, aki janos felhasznlknt vagy jozsef felhasznlknt (a kinit parancson keresztl) hitelestette magt EXAMPLE.COM vezetbl, ezen a rendszeren (grunt) bejelentkezhet a janos nev felhasznlknt vagy hozzfrhet az llomnyaihoz az rlogin(1), rsh(1) vagy rcp(1) hasznlatval. Pldul janos most egy msik Kerberost hasznl rendszerre jelentkezik be:
% kinit

MIT Project Athena (grunt.example.com)


Password: % rlogin grunt

Last login: Mon May 1 21:14:47 from grumble Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995

Vagy jozsef jelentkezik be ugyanazon a gpen janos hozzfrsvel (a janos nev felhasznlnak a fentebb bemutatt .klogin llomny tallhat a knyvtrban s a Kerberos zemeltetsrt felels szemly ltrehozott egy jozsef nev szereplt egy null pldnnyal):
% kinit % rlogin grunt -l janos

MIT Project Athena (grunt.example.com)


Password:

Last login: Mon May 1 21:16:55 from grumble Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995

14.8. Kerberos5
rta: Tillman Hodgson. Eredetileg rta: Mark Murray. A FreeBSD 5.1 utn kvetkez mindegyik FreeBSD kiads mr csak a Kerberos5 tmogatst tartalmaz. Ezrt bennk csak a Kerberos5 tallhat meg, s a belltsa sok szempontbl hasonlt a KerberosIV belltshoz. A most kvetkez informcik csak s kizrlag a FreeBSD 5.0 kiads utn kvetkezkben tallhat Kerberos5 vltozatra vonatkoznak. A KerberosIV szolgltatsait a felhasznlk csomagknt, a security/krb4 porton keresztl rhetik el. A Kerberos egy hlzati kiegszt rendszer/protokoll, amivel a felhasznlk egy biztonsgos szerveren keresztl kpesek magukat azonostani. A tvoli bejelentkezsek, tvoli msolsok, a rendszer belli vdett msolsok valamint egyb nagyon kockzatos feladatok, szolgltatsok biztonsga s felgyelete gy jelents mrtkben javthat. A Kerberos gy rhat le, mint az szemlyazonossgok ellenrzsre feljogostott rendszer. Vagy tekinthetjk egy megbzhat kls meggyel ltal vgzett hitelestsi rendszernek is. A Kerberos csak egyetlen funkcit knl fel ez a felhasznlk biztonsgos hitelestse a hlzaton. Viszont nem nyjt semmilyen felhatalmazsi (mit csinlhatnak a felhasznlk) vagy vizsglati (mit csinltak vgl a felhasznlk) lehetsget. Miutn egy kliens s a szerver a Kerberos hasznlatval azonostottk egymst, az egyms kzt foly kommunikcijuk titkostsval kpesek megrzi az traml adatok srtetlensgt s lehallgathatatlansgt.

402

Fejezet 14. Biztonsg Ennek tkrben a Kerberos hasznlata csak ms olyan biztonsgi mdszerekkel egyttesen javasolt, amelyek felhatalmazst s vizsglati szolgltatsokkal is rendelkeznek. A most kvetkez utastsok arra igyekeznek tmutatst adni, hogy miknt hasznljuk a FreeBSD-vel egytt terjesztett Kerberos verzit. Azonban a teljes lerst csak a tmhoz tartoz man oldalak tolvassval egytt kapjuk meg. A Kerberos teleptsnek bemutatshoz az albbi nvtereket fogjuk hasznlni:

A DNS tartomny (zna) az example.org lesz. A Kerberos vezet az EXAMPLE.ORG lesz.


Megjegyzs: Krjk, hogy mg abban az esetben is valdi tartomnyneveket adjuk meg, amikor a Kerberos hasznlatt csak a bels hlzaton tervezzk. Ezzel elkerlhetjk az egyes Kerberos vezetek egyttmkdse sorn felmerl DNS problmkat.

14.8.1. A Kerberos trtnete


A Kerberost az MIT hozta ltre a hlzati biztonsggal kapcsolatos problmk egyik megoldsaknt. A Kerberos ers titkostst hasznl, ezrt a kliensek kpesek egy nem biztonsgos hlzaton is azonostani magukat a szerver fel (s fordtva). A Kerberos egyarnt utal egy hlzati protokoll nevre s azokra programokra, amelyek implementljk (pldul Kerberos telnet). Az 5 a protokoll jelenlegi verzija, amit az RFC 1510 r le. A protokollnak szmos szabad vltozata ltezik, rengeteg tpus opercis rendszerre. A Massachusettsi Mszaki Intzet (Massachusetts Institute of Technology, MIT), ahol a Kerberost eredetileg kifejlesztettk, napjainkban is folytatja a sajt Kerberos csomagjnak fejlesztst. Tbbnyire az Egyeslt llamokban hasznljk titkostsra, mivel rgebben az amerikai kiviteli korltozsok voltak r rvnyesek. Az MIT Kerberos vltozata portknt rhet el (security/krb5). A Heimdal Kerberos egy msik 5 verzij implementci, amit a kiviteli korltozsok elkerlse rdekben hatrozottan az Egyeslt llamokon kvl fejlesztettek ki (ezrt gyakran megtallhatjuk a klnbz nem kereskedelmi UNIX varinsokban). A Heimdal Kerberos terjeszts portknt elrhet (security/heimdal) s kisebb mretben a FreeBSD alapteleptsnek is rsze. Mivel ezzel az rssal a legtbb felhasznlt kvnjuk segteni, ezrt a kvetkez utastsok a FreeBSD teleptsben mellkelt Heimdal terjeszts hasznlatt felttelezik.

14.8.2. A Heimdal kulcselosztjnak teleptse


A kulcseloszt kzpont (Key Distribution Center, avagy KDC) az a centralizlt hitelestsi szolgltats, amit a Kerberos nyjt lnyegben az a szmtgp, amely Kerberos-jegyeket bocsjt ki. A KDC megbzhatnak tekinthet a Kerberos ltal kialaktott vezetben lev tbbi szmtgp szmra, ezrt vdelme kiemelten fontos. Itt jegyeznnk meg, hogy habr a Kerberos szerver futtatsa nagyon kevs szmtgpes erforrst ignyel, ennek ellenre biztonsgi szempontbl egy kln szmtgpet javasoljunk a kulcseloszt szerepnek betltshez. Mieltt nekifognnk a KDC kongurlsnak, ellenrizzk, hogy az /etc/rc.conf tartalmazza a KDC mkdshez szksges belltsokat (az elrsi utakat termszetesen a sajt rendszernk szerint lltsuk be):

403

Fejezet 14. Biztonsg


kerberos5_server_enable="YES" kadmind5_server_enable="YES"

A kvetkez lpsben vegyk szemgyre a Kerberos belltsait tartalmaz /etc/krb5.conf llomnyt:


[libdefaults] default_realm = EXAMPLE.ORG [realms] EXAMPLE.ORG = { kdc = kerberos.example.org admin_server = kerberos.example.org } [domain_realm] .example.org = EXAMPLE.ORG

Vegyk szre, hogy az itt szerepl /etc/krb5.conf llomny szerint a kulcselosztnk teljes hlzati neve kerberos.example.org. Ha a kulcselosztnknak nem ez a neve, akkor a znkat ler llomnyba vegynk mg fel egy ilyen CNAME (lnv) bejegyzst.
Megjegyzs: Ha egy nagyobb hlzatban vagyunk, ahol a DNS szervert is megfelelen belltottk, akkor az imnti plda ennyire leszkthet:
[libdefaults] default_realm = EXAMPLE.ORG

Itt mr a kvetkez sorokat hozzadtk example.org znt ler llomnyhoz:


_kerberos._udp _kerberos._tcp _kpasswd._udp _kerberos-adm._tcp _kerberos IN IN IN IN IN SRV SRV SRV SRV TXT 01 00 88 kerberos.example.org. 01 00 88 kerberos.example.org. 01 00 464 kerberos.example.org. 01 00 749 kerberos.example.org. EXAMPLE.ORG

Megjegyzs: A kliensek csak akkor lesznek kpesek elrni a Kerberos szolgltatsait, ha vagy ktelez jelleggel megadunk egy teljesen belltott /etc/krb5.conf llomnyt, vagy egy minimlis /etc/krb5.conf llomnyt s egy helyesen belltott DNS szervert hasznlunk.

Ezutn ltrehozzuk a Kerberos adatbzist. Ez az adatbzis tartalmazza az sszes szerepl kulcst a mesterkulcssal titkostva. Erre a jelszra nem kell felttlenl emlkeznnk, mivel ez egy llomnyban troldik (/var/heimdal/m-key). A mesterkulcsot a kstash parancs kiadsval s egy jelsz megadsval tudjuk ltrehozni. Ahogy a mesterkulcs elkszlt, a kadmin parancs -l (mint loklis, azaz helyi) opcijval inicializlni tudjuk az adatbzist. Ez az opci arra utastja a kadmin programot, hogy ne a kadmind hlzati szolgltatst hasznlja, hanem kzvetlenl az adatbzis llomnyait mdostsa. Ezzel oldhat meg az adatbzis kezdeti ltrehozsnak problmja. Miutn megkaptuk a kadmin parancssort, az vezetnkhz tartoz adatbzis inicializlshoz adjuk ki az init parancsot.

404

Fejezet 14. Biztonsg Vgl, mg mindig a kadmin parancssort hasznlva, az add paranccsal hozzuk ltre az els szereplnket. Egyelre rjk be az alaprtelmezett rtkekkel, a modify paranccsal ksbb gyis meg tudjuk vltoztatni ezeket. Hozztesszk, hogy itt a ? parancs segtsgvel brmikor lekrhetjk az opcik ismertetst. Plda egy adatbzis ltrehozsra:
# kstash

Master key: xxxxxxxx Verifying password - Master key: xxxxxxxx


# kadmin -l kadmin> init EXAMPLE.ORG

Realm max ticket life [unlimited]: kadmin> add tillman Max ticket life [unlimited]: Max renewable life [unlimited]: Attributes []: Password: xxxxxxxx Verifying password - Password: xxxxxxxx

Most mr ideje elindtani a KDC szolgltatsait. Ezeket az /etc/rc.d/kerberos start s /etc/rc.d/kadmind start parancsok kiadsval tudjuk felhozni. Megjegyezzk, hogy most mg semmilyen kerberizlt dmont nem kell elindtanunk. Ellenben igyekezznk ellenrizni a KDC mkdkpessgt azzal, hogy KDC parancssorbl krnk egy jegyet a frissen hozzadott szereplnknek (felhasznlnknak) s kilistzzuk:
% kinit tillman

tillman@EXAMPLE.ORGs Password:
% klist

Credentials cache: FILE:/tmp/krb5cc_500 Principal: tillman@EXAMPLE.ORG Issued Aug 27 15:37:58 Expires Aug 28 01:37:58 Principal krbtgt/EXAMPLE.ORG@EXAMPLE.ORG

Miutn vgeztnk, nyugodtan trlhetjk a jegyet:


% kdestroy

14.8.3. Szerverek kerberizlsa a Heimdal hasznlatval


Ehhez elszr is szksgnk lesz a Kerberos kongurcis llomnynak, az /etc/krb5.conf msolatra. Ezt gy tudjuk megtenni, ha egyszeren tmsoljuk a kulcselosztrl az egyik kliensre valamilyen megbzhat mdon (vagy az scp(1) programhoz hasonl hlzati segdprogramok, vagy pldul zikailag egy oppy lemez hasznlatval). Ezutn szksgnk lesz egy /etc/krb5.keytab nev llomnyra. Ez az alapvet klnbsg a kerberizlt dmonokat felknl szerver s egy munkalloms kzt a szervernek rendelkeznie kell egy keytab llomnnyal. Ez az llomny tartalmazza a szerver kulcst, amivel gy a kulcselosztval klcsnsen azonostani tudjk egymst. Ezt a szerverre biztonsgosan kell eljuttatnunk, mivel ennek napvilgra kerlsvel a szerver vdelme komoly veszlybe kerl. Teht, ha egy titkosts nlkli csatornn, pldul FTP-n keresztl visszk t, akkor kifejezetten rossz tlet.

405

Fejezet 14. Biztonsg A szerverre ltalban a kadmin program hasznlatval rdemes tvinni a keytab llomnyt. Ez azrt is hasznos, mert ehhez a kadmin segtsgvel ltre kell hoznunk a befogad szereplt is (a kulcseloszt a krb5.keytab llomny vgn). Vegyk szre, hogy mr kaptunk egy jegyet s ezzel a jeggyel jogosultaknak kell lennnk a kadmind.acl llomny kadmin fellet hasznlatra. A hozzfrst vezrl listk (ACL-ek) tervezsvel kapcsolatban olvassuk el Heimdal info oldaln tallhat Remote administration cm szakaszt (info heimdal). Amennyiben nem kvnjuk engedlyezni a kadmin tvoli elrst, egyszeren csak csatlakozzunk valamilyen biztonsgos mdon (helyi konzolon, ssh(1) vagy egy kerberizlt telnet(1) hasznlatval) a kulcseloszthoz, s a kadmin -l paranccsal vgezzk el helyben az adminisztrcit. Miutn teleptettk az /etc/krb5.conf llomnyt, a Kerberos szerverrl el tudjuk rni a kadmin fellett. Az add --random-key paranccsal most mr hozzadhatjuk a szerver befogad szerepljt s az ext paranccsal ki tudjuk vonni a szerver befogad szerepljt a sajt keytab llomnybl. Pldul:
# kadmin

kadmin> add --random-key host/myserver.example.org Max ticket life [unlimited]: Max renewable life [unlimited]: Attributes []: kadmin> ext host/myserver.example.org kadmin> exit

Itt jegyeznnk meg, hogy az ext parancs (az extract rvdtse) a kivont kulcsot alaprtelmezs szerint az /etc/krb5.keytab llomnyba menti ki. Ha a kulcselosztn nem fut a kadmind szolgltats (valsznleg biztonsgi okokbl) s ezrt tvolrl nem tudjuk elrni a kadmin fellett, akkor gy tudjuk kzvetlenl hozzadni a befogad szereplt (host/myserver.EXAMPLE.ORG), majd kivonatolni azt egy ideiglenes llomnyba (elkerlve az /etc/krb5.keytab fellrst):
# kadmin

kadmin> ext --keytab=/tmp/example.keytab host/myserver.example.org kadmin> exit

Ezutn valamilyen biztonsgos eszkzzel (pldul scp vagy oppy hasznlatval) t tudjuk msolni keytab llomnyt a szerverre. A kulcselosztn lev keytab fellrst elkerlend, ne feledkezznk el egy megfelel nv megadsrl sem. Ezen a ponton mr a szerver kpes felvenni a kapcsolatot a kulcselosztval (a krb5.conf llomny miatt) s bizonytani a szemlyazonossgt (a krb5.keytab llomny miatt). gy teht kszen llunk a szolgltatsok kerberizlsra. Ebben a pldban most a telnet szolgltatst vesszk clba gy, hogy elszr az /etc/inetd.conf llomnyba berakjuk az albbi sort, majd jraindtjuk az inetd(8) szolgltatst az /etc/rc.d/inetd restart paranccsal:
telnet stream tcp nowait root /usr/libexec/telnetd telnetd -a user

Itt az a legfontosabb, hogy az -a (mint authentication, azaz hitelests) paramtert a user belltssal adjuk meg. A telnetd(8) man oldaln olvashatunk ennek pontos rszleteirl.

406

Fejezet 14. Biztonsg

14.8.4. Kliensek kerberizlsa a Heimdal hasznlatval


A kliensek belltsa szinte majdnem gyerekjtk. A Kerberos belltshoz egyedl az /etc/krb5.conf llomnyra lesz szksgnk. Valamilyen biztonsgos eszkzzel msoljuk t a kulcselosztrl a kliensre. gy tudjuk letesztelni klienst, ha megprbljuk rla kiadni a kinit, klist s kdestroy parancsokat a fentebb ltrehozott szerepl jegynek megszerzshez, lekrdezshez s megsemmistshez. A Kerberos hasznlatval megprblkozhatunk csatlakozni valamelyik kerberizlt szerverre is, ha viszont ez nem mkdik mg egy jegy megszerzse utn sem, akkor a gond tbbnyire a szerverrel van, nem pedig a klienssel vagy a kulcselosztval. Amikor egy telnet vagy egy hozz hasonl alkalmazst tesztelnk, egy csomaglehallgat (mint amilyen pldul a tcpdump(1)) elindtsval gyzdjnk meg rla, hogy a jelszavak ilyenkor titkostva mennek t. Prbljuk meg titkostani a teljes kommunikcit a telnet -x paramtervel (hasonlan az ssh parancshoz). Alapbl mg szmos ms kiegszt Kerberos kliensalkalmazs is teleptdik. Ezeken rezhet meg valjban az alaprendszerhez tartoz Heimdal vltozat minimalitsa: ebben a telnet az egyedli kerberizlt szolgltats. A Heimdal port igyekszik ptolni a hinyz klienseket a kerberizlt ftp, rsh, rcp, rlogin s nhny kevsb ismert program teleptsvel. Az MIT vltozat portja szintn tartalmazza a Kerberos kliensek teljes kellktrt.

14.8.5. A felhasznlk kongurcis llomnyai: a .k5login s a


.k5users
ltalban az vezetben tallhat felhasznlk mindegyikhez tartozik egy Kerberos-szerepl (mint pldul a
tillman@EXAMPLE.ORG), ami a felhasznl helyi hozzfrsre mutat (mint pldul a tillman nev helyi hozzfrs). A telnet s a hozz hasonl kliensalkalmazsok ltalban nem ignyelnek felhasznlt vagy szereplt.

Elfordulhat azonban, hogy valaki olyan szeretn elrni egy helyi felhasznl hozzfrst, aki nem rendelkezik a hozztartoz Kerberos-szereplvel. Pldul a tillman@EXAMPLE.ORG nev felhasznl el szeretn rni a helyi szmtgpen lev webdevelopers hozzfrst. Ms szereplk is elrhetik a helyi hozzfrseket. A problma megoldshoz a felhasznlk knyvtrban tallhat .k5login s a .k5users llomnyok hasznlhatak a .host s .rhosts llomnyok kombincijhoz hasonlan. Pldul a .k5login gy nz ki:
tillman@example.org jdoe@example.org

Ezt a webdevelopers nev helyi felhasznl knyvtrban kell elhelyeznnk, gy a felsorolt szereplt megosztott jelsz hasznlata nlkl kpesek elrni a hozzfrst. Az emltett parancsok man oldalnak elolvassa ajnlott. Megjegyezzk, hogy a ksu man oldal foglalkozik a .k5users llomnnyal.

14.8.6. Tippek, trkkk a Kerberos hasznlatrl s hibaelhrts

Akr a Kerberos Heimdal vagy az MIT vltozatt hasznljuk, ne felejtsk gy belltani a PATH krnyezeti vltozban felsorolt elrsi utakat, hogy a kliensalkalmazsok kerberizlt vltozatai a rendszerben hasznlatos verzik el kerljenek.

407

Fejezet 14. Biztonsg

Az vezetben minden szmtgp rja ugyangy jr? Ha nem, akkor a hitelests csdt mondhat. A 29.10 Szakaszbl tudhatjuk meg hogyan szinkronizljunk rkat az NTP segtsgvel. Az MIT s a Heimdal verzik a kadmin kivtelvel remekl megvannak egymssal, mivel az ltala hasznlt protokollt mg nem szabvnyostottk. Ha megvltoztatjuk a gpnk hlzati nevt, akkor a ugyangy a host/ szereplnket is meg kell vltoztatni s frissteni a keytab llomnyunkat. Ez olyan specilis keytab bejegyzsekre is vonatkozik, mint pldul az Apache www/mod_auth_kerb moduljhoz tartoz www/ szerepl. Az vezetnkben lev sszes szmtgpnek (mind a kt irnyba) feloldhat DNS nvvel kell rendelkeznie (vagy legalbb egy /etc/hosts llomnnyal). Erre a CNAME rekord megfelel, de az A s PTR rekordoknak mindenkppen rendben kell lennik. Az ilyenkor keletkez hibazenet nem ppen fogja meg a lnyeget: Kerberos5 refuses authentication because Read req failed: Key table entry not found. A kulcseloszt szmra kliensknt viselked bizonyos opercis rendszerek nem lltjk be megfelelen a ksu engedlyeit, ezrt nem lehet root jogokkal futtatni. Ezrt a ksu parancs nem fog mkdni, ami alapveten nem egy rossz tlet, de idegest. Ez nem a kulcseloszt hibja. Ha a Kerberos MIT vltozatt hasznljuk s a meg akarjuk hosszabbtani a szereplknek kiadott jegyek lettartamt az alaprtelmezett tz rrl, akkor a kadmin felletn a modify_principal paranccsal tudjuk megvltoztatni mind a krdses szerepl, mind pedig a krbtgt jegyeinek lettartamnak maximumt. Ezt kveten a szerepl a kinit -l opcijval tud egy nagyobb lettartammal rendelkez jegyet krni.

Megjegyzs: Amikor egy kulcselosztval kapcsolatos hibt prblunk felderteni a csomagok lehallgatsval, s a munkallomsunkrl kiadjuk a kinit parancsot, akkor arra lehetnk gyelmesek, hogy a TGT mr egybl a kinit indtsakor tkldsre kerl mg mieltt egyltaln megadtuk volna a jelszavunkat! Ezt azzal lehet magyarzni, hogy a Kerberos szerver brmilyen hitelestetlen krsre elkld egy TGT-t (Jegyad jegy, azaz Ticket Granting Ticket). Azonban mindegyik ilyen TGT a felhasznl jelszavbl szrmaztatott kulccsal titkostdik. Ezrt amit a felhasznl jelszknt megad, nem megy el a kulcselosztnak, hanem vele a kinit a mr megkapott TGT-t kdolja ki. Amennyiben a visszakdols egy rvnyes idblyeggel rendelkez, hasznlhat jegyet eredmnyez, akkor a felhasznl rvnyes Kerberos hitelestst szerez. Ez a hitelests magban foglal egy kulcsot, amellyel a ksbbiekben a Kerberos szerverekkel tudjuk felvenni biztonsgos mdon a kapcsolatot, s rajta kvl egy jabb jegyad jegyet, amelyet a Kerberos szerver a sajt kulcsval titkostott. A titkosts msodik vonala a felhasznl szmra ismeretlen, de segtsgvel a Kerberos szerer kpes ellenrizni az egyes jegyad jegyek hitelessgt.

Ha a jegyeket hosszabb (pldul egyhetes) lettartammal akarjuk hasznlni s a jegyeket trol gphez OpenSSH segtsgvel csatlakozunk, akkor mindenkppen ellenrizzk, hogy az sshd_config llomnyban a Kerberos TicketCleanup belltsnak rtke no, msklnben a kijelentkezs utn automatikusan trldnek a jegyeink. Ne hagyjuk gyelmen kvl azt sem, hogy a befogad szereplk is rendelkezhetnek nagyobb lettartam jegyekkel. Ha a felhasznlnkhoz tartoz szerepl jegye pldul egy ht alatt vl el, de a szmtgp, amire bejelentkezk, csupn kilenc rig tartja letben ezeket, akkor a jegyeket trol gyorsttrunkban hamarabb elvl a hozztartoz jegy, ami miatt pedig hibk keletkeznek. Ha a rossz jelszavak hasznlata ellen belltjuk a krb5.dic llomnyt (errl a kadmind man oldaln tallunk egy rvid lerst), akkor nem szabad elfelejteni, hogy ez csak olyan szereplkre vonatkozik, akiknek a jelszavra is

408

Fejezet 14. Biztonsg lltottunk be szablyozsokat. A krb5.dict llomnyok felptsi nem bonyolult: minden sorban egyetlen karakterlnc szerepel. rdemes lehet pldul ltrehozni ezen a nven egy szimbolikus linket a /usr/share/dict/words llomnyra.

14.8.7. Eltrsek az MIT porttl


A Heimdal s az MIT vltozatok kzti egyik legnagyobb eltrs a kadmin programmal kapcsolatban van, ami eltr (de egybknt ekivalens) parancskszlettel rendelkezik s ms protokollt hasznl. Ennek komoly kvetkezmnye, hogy ha az MIT-fle kulcselosztt hasznljuk, akkor azt a Heimdal kadmin felletvel nem tudjuk tvolrl adminisztrlni (s vica versa). A kliensalkalmazsok paramterezse is eltrhet ugyanazon feladatoknl. Ezrt velk kapcsolatban az MIT Kerberos honlapja (http://web.mit.edu/Kerberos/www/) a mrvad. Vigyzzunk az elrsi utakkal: az MIT port magt alaprtelmezs szerint a /usr/local knyvtrba telepti, ezrt az ltaluk kivltani kvnt normlis rendszerprogramokat esetleg hamarabb tallja meg a rendszer, ha nem jl lltottuk be a PATH krnyezeti vltoznkat.
Megjegyzs: Ha nem rtjk, hogy mirt mkdnek olyan furcsn a telnetd s a klogind ltal kezelt bejelentkezsek, akkor olvassuk el a FreeBSD security/krb5 portjval telepl MIT vltozat /usr/local/share/doc/krb5/README.FreeBSD llomnyt (angolul). Az a legfontosabb, hogy a incorrect permissions on cache file hiba eltntetshez a login.krb5 binrist kell hasznlnunk, gy a tovbbtott jogosultsgoknak megfelelen t tudja lltani a tulajdonost.

Az rc.conf llomnyt is mdostani kell a kvetkez bellts kialaktshoz:


kerberos5_server="/usr/local/sbin/krb5kdc" kadmind5_server="/usr/local/sbin/kadmind" kerberos5_server_enable="YES" kadmind5_server_enable="YES"

Erre azrt van szksg, mert a Kerberos MIT vltozata a /usr/local knyvtron bellre telepti fel a hozztartoz alkalmazsokat.

14.8.8. A Kerberosban tallt korltozsok enyhtse


14.8.8.1. A Kerberos a mindent vagy semmit megkzeltst kveti
A hlzaton minden szolgltatst mdostanunk kell ahhoz, hogy egytt tudjanak mkdni a Kerberosszal (vagy valamilyen ms mdon vdennk kell ezeket a tmadsok ellen), klnben a felhasznlk jogait el lehet lopni vagy jra fel lehet hasznlni. Erre j plda lehet az sszes tvoli parancssoros elrs (pldul az rsh valamint a telnet) kerberizlsa, de a jelszavakat titkostatlanul kld POP3 levelez szerver kihagysa.

409

Fejezet 14. Biztonsg

14.8.8.2. A Kerberos az egyfelhasznls munkallomsok szmra kszlt


Tbbfelhasznls krnyezetben a Kerberos mr nem annyira biztonsgos. Ez azrt mondhat el, mert a jegyeket a mindenki ltal olvashat /tmp knyvtrban trolja. Ha az adott felhasznl szmtgpt egyszerre tbb emberrel is megosztja (teht tbbfelhasznls), akkor a felhasznl jegyeit egy msik felhasznl brmikor lemsolhatja (ellophatja). Ezt a -c opci utn megadott llomnynvvel vagy (inkbb) a KRB5CCNAME krnyezeti vltoz megfelel belltsval tudjuk thidalni, habr ezt ritkn teszik is meg. Ha a felhasznlk knyvtrban s a megfelel engedlyekkel troljuk ezeket a jegyeket, akkor nmileg visszaszorthatjuk a problma kockzatt.

14.8.8.3. A kulcseloszt a rendszer legsebezhetbb pontja


A rendszer kialaktsbl fakadan a kulcselosztnak legalbb annyira megbzhatnak kell lennie, mint a rajta lev kzponti jelszadatbzisnak. A kulcselosztn semmilyen ms szolgltats nem futhat s zikailag is biztonsgba kell helyezni. A kockzat nagy, mivel a Kerberos az sszes jelszt ugyanazzal a kulcssal (a mesterkulcssal) titkostja, amelyet a kulcseloszt egy llomnyban trol. Szljegyzet gyannt hozztesszk, hogy a mesterkulcs elvesztse nem annyira rossz, mint azt els gondolnnk. A mesterkulcsot csupn a vletlenszm-genertor inicializlshoz hasznljk a Kerberos adatbzisnak titkostsakor. Amg a kulcseloszthoz nem tudnak illetktelenek hozzfrni, addig nem tudnak sokat kezdeni a mesterkulccsal. Mellesleg ha a kulcseloszt nem elrhet (taln pontosan egy DoS tmads vagy ppen hlzati problmk miatt), akkor a hitelests nem vgezhet el, mivel gy a hozz szksges hlzati szolgltatsok sem hasznlhatak. Ez remek eszkz egy DoS tmadshoz. Ezen tbb (egy kzponti s egy vagy tbb alrendelt) kulcseloszt teleptsvel, valamint a msodlagos vagy tartalkknt hasznlt hitelestsi eszkzk (a PAM erre tkletes) krltekint megvalstsval enyhthetnk.

14.8.8.4. A Kerberos hinyossgai


A Kerberos rvn a felhasznlk, szmtgpek s szolgltatsok tudjk egymst hitelesteni. Ellenben semmilyen eszkzt nem knl fel a kulcseloszt hitelessgnek ellenrzsre. gy teht (pldul) egy eltrtett kinit kpes ellopni az sszes felhasznli nevet s jelszt. Az ilyen incidensek elkerlsre a security/tripwire s a hozz hasonl segdprogramok segtsgvel lehet megrizni a rendszer srtelensgt.

14.8.9. Erforrsok s tovbbi informcik


A Kerberos GYIK (angolul) (http://www.faqs.org/faqs/Kerberos-faq/general/preamble.html) Egy hitelestsi rendszer kidolgozsa: prbeszd ngy sznben (angolul) (http://web.mit.edu/Kerberos/www/dialogue.html) RFC 1510: A Kerberos hlzati hitelestsi szolgltats (V5) (angolul) (http://www.ietf.org/rfc/rfc1510.txt?number=1510) Az MIT Kerberos holnapja (angolul) (http://web.mit.edu/Kerberos/www/) A Heimdal Kerberos honlapja (angolul) (http://www.pdc.kth.se/heimdal/)

410

Fejezet 14. Biztonsg

14.9. OpenSSL
rta: Tom Rhodes. A FreeBSD-hez adott OpenSSL az egyik olyan tnyez, amit a legtbb felhasznl gyelmen kvl hagy. Az OpenSSL egy titkostsi rteget nyjt a hagyomnyos kommunikcis csatorna felett, gy rengeteg hlzati alkalmazsba s szolgltatsba bele lehet szni. Az OpenSSL felhasznlhat tbbek kzt a levelez kliensek titkostott hitelestsre, hitelkrtys zetsek weben keresztli lebonyoltsra alkalmas, s mg sok minden msra. Sok port, kztk a www/apache13-ssl s a mail/sylpheed-claws is felajnlja az OpenSSL felhasznlst.
Megjegyzs: A legtbb esetben a Portgyjtemny megprblja lefordtani a security/openssl portot, hacsak a WITH_OPENSSL_BASE vltozt hatrozottan a yes rtkre nem lltjuk.

A FreeBSD-hez mellkelt OpenSSL ismeri a Secure Sockets Layer v2/v3 (SSLv2/SSLv3) s Transport Layer Security v1 (TLSv1) hlzatbiztonsgi protokollokat, s ltalnos cl titkostsi knyvtrknt is alkalmazhat.
Megjegyzs: Noha az OpenSSL ismeri az IDEA algoritmust is, az Egyeslt llamokban rvnyben lev szabadalmak miatt alaprtelmezs szerint nem engedlyezett. A hasznlathoz el kell olvasni a hozztartoz licencet, s ha elfogadjuk a benne foglaltakat, akkor lltsuk be a MAKE_IDEA vltozt a make.conf llomnyban.

Az OpenSSL-t leginkbb a szoftverek tanstvnyainak elksztshez hasznljk. Ilyen tanstvnnyokkal lehet szavatolni, hogy az rte felels cg vagy egyn valban megbzhat s nem szlhmos. Amennyiben a krdses tanstvnyt nem vizsglta be valamelyik tanstvnyok hitelestsvel foglalkoz hatsg (Certicate Authority, vagy CA), akkor errl ltalban kap egy gyelmeztetst a felhasznl. A tanstvnyokat hitelest cgek, mint pldul a VeriSign (http://www.verisign.com), rjk al ezeket a tanstvnyokat s ezzel rvnyestik az egyes cgek vagy egynek megbzhatsgt. Ez ugyan pnzbe kerl, de hasznlatuk egyltaln nem is ktelez. Azonban az tlagosnl paranoidabb felhasznlk szmra megnyugvst jelenthet.

14.9.1. Tanstvnyok ellltsa


A tanstvnyok ltrehozsra a kvetkez parancs ll rendelkezsre:
# openssl req -new -nodes -out req.pem -keyout cert.pem

Generating a 1024 bit RSA private key ................++++++ .......................................++++++ writing new private key to cert.pem ----You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter enter ., the field will be left blank. ----Country Name (2 letter code) [AU]:orszgnv (ktbets kddal)

411

Fejezet 14. Biztonsg


State or Province Name (full name) [Some-State]:llam vagy tartomny teljes neve Locality Name (eg, city) []:telepls neve Organization Name (eg, company) [Internet Widgits Pty Ltd]:szervezet neve Organizational Unit Name (eg, section) []:szervezeti egysg neve Common Name (eg, YOUR name) []:ltalnos nv (hlzati nv!) Email Address []:e-mail cm Please enter the following extra attributes to be sent with your certificate request A challenge password []:VALAMILYEN JELSZ An optional company name []:egy msik szervezet neve

Az adatok bekrsre eltt megjelen gyelmeztet zenet fordtsa:


Itt a tanstvny ignylsvel kapcsolatos informcikat kell megadnunk. Itt egy n. ismertetnevet (Distinguished Name, DN) kell megadnunk. Ezen kvl van mg nhny ms mez is, de ezeket akr resen is hagyhatjuk. Nhny meznek van alaprtelmezett rtke, de ha oda egy pontot runk, akkor kitrljk.

A Common Name meznl ellenrzsi okokbl egy hlzati nevet, teht a szervernk nevt kell megadnunk. Ha nem gy jrunk el, akkor lnyegben egy hasznlhatatlan tanstvnyt kapunk. Tovbbi opcik is elrhetek, mint pldul a lejrati id (expire time) megadsa, a titkostsi algoritmus megvltoztatsa stb. Ezek teljes listja megtallhat az openssl(1) man oldalon. Az elbbi parancs kiadsa utn kt llomnynak kell ltrejnnie az aktulis knyvtrban. A tanstvnykrst, vagyis az req.pem llomnyt kell eljuttatnunk a tanstvnyok hitelestsvel foglakoz szervhez, aki majd rvnyesti az imnt megadott adatainkat. A msodik, cert.pem nev llomny a tanstvnyhoz tartoz privt kulcs, amit semmilyen krlmnyek kztt sem szabad kiadnunk. Ha ez msok kezbe kerl, akkor el tudnak jtszani bennnket (vagy a szervernket). Amikor a hitelest szerv alrsa nem felttlenl szksges, akkor kszthetnk egy sajt magunk ltal alrt tanstvnyt is. Ehhez elszr is generlnunk kell egy RSA-kulcsot:
# openssl dsaparam -rand -genkey -out sajt_RSA.kulcs 1024

Most pedig ksztsnk el a hitelest szerv kulcst is:


# openssl gendsa -des3 -out hitelest.kulcs sajt_RSA.kulcs

Ezzel a kulccsal most gyrtsunk le egy tanstvnyt:


# openssl req -new -x509 -days 365 -key hitelest.kulcs -out j.tanstvny

Ekkor kt j llomny keletkezik a knyvtrunkban: a hitelest szerv alrsa, a hitelest.kulcs s maga a tanstvny, az j.tanstvny llomny. Ezeket tegyk az /etc knyvtron bell egy olyan knyvtrba, amelyet csak a root tud olvasni. A chmod paranccsal lltsunk be r 0700-as kd engedlyeket.

412

Fejezet 14. Biztonsg

14.9.2. Plda a tanstvnyok hasznlatra


Mire is jk ezek az llomnyok? Pldul kitnen alkalmazhatak a Sendmail levelez szerverhez berkez kapcsolatot titkostsra. gy lnyegben felszmoljuk minden olyan felhasznl titkostatlan mdon zajl hitelestst, aki a helyi levelez szerveren keresztl kldi a leveleit.
Megjegyzs: Ez ltalban nem a legjobb megolds, mivel egyes levelez kliensek hibt jeleneznek a felhasznlnak, ha nem rendelkezik a tanstvnnyal. A tanstvnyok teleptsvel kapcsolatban olvassuk el a szoftverhez adott lerst.

A helyi .mc llomnyba ezeket a sorokat kell beletenni:


dnl SSL Options define(confCACERT_PATH,/etc/certs)dnl define(confCACERT,/etc/certs/j.tanstvny )dnl define(confSERVER_CERT,/etc/certs/j.tanstvny )dnl define(confSERVER_KEY,/etc/certs/hitelest.kulcs)dnl define(confTLS_SRV_OPTIONS, V)dnl

Itt a /etc/certs/ az a knyvtr, amit tanstvnyok s kulcsok helyi trolsra hasznlunk. Vgezetl mg jra kell generlnunk a helyi .cf llomnyokat. Ezt a /etc/mail knyvtrban a make install parancs kiadsval knnyen elvgezhetjk. Miutn ez megtrtnt, akkor Sendmailhoz tartoz dmont a make restart paramtervel indthatjuk jra. Ha minden jl ment, akkor a /var/log/maillog llomnyban nem tallunk egyetlen hibazenetet sem, s a Sendmail is megjelenik a fut programok kztt. A telnet(1) segdprogrammal gy problhatjuk ki a levelez szervert:
# telnet example.com 25

Trying 192.0.34.166... Connected to example.com. Escape character is ^]. 220 example.com ESMTP Sendmail 8.12.10/8.12.10; Tue, 31 Aug 2004 03:41:22 -0400 (EDT)
ehlo example.com

250-example.com Hello example.com [192.0.34.166], pleased to meet you 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-8BITMIME 250-SIZE 250-DSN 250-ETRN 250-AUTH LOGIN PLAIN 250-STARTTLS 250-DELIVERBY 250 HELP
quit

221 2.0.0 example.com closing connection Connection closed by foreign host.

Ha itt megjelenik a STARTTLS sor, akkor mindent sikerlt belltanunk.

413

Fejezet 14. Biztonsg

14.10. VPN IPsec felett


rta: Nik Clayton. VPN ltrehozsa FreeBSD tjrk hasznlatval kt olyan hlzat kztt, amelyeket egymstl az internet vlaszt el.

14.10.1. Az IPsec bemutatsa


rta: Hiten M. Pandya. Ebben a szakaszban az IPsec belltsnak folyamatt vzoljuk fel. Az IPsec belltshoz elengedhetetlen, hogy tisztban legynk egy sajt rendszermag fordtsnak alapjaival (lsd 8 fejezet). Az IPsec egy olyan protokoll, amely az Internet Protocol (IP) rtegre pl. Segtsgvel kt vagy tbb szmtgp kpes biztonsgos mdon tartani egymssal a kapcsolatot (innen ered a neve). A FreeBSD IPsec hlzati protokollkszlete a KAME (http://www.kame.net) implementcijra pl, mely egyarnt tmogatja az IPv4 s IPv6 protokollcsaldokat. Az IPsec kt alprotokollbl tevdik ssze:

A hasznos adat biztonsgos becsomagolsa (Encapsulated Security Payload, ESP) sorn egy szimmetrikus kriptograi algoritmussal (mint pldul Blowsh, 3DES) titkostjuk az IP-csomagok tartalmt, ezltal megvdjk ezeket az illetktelenektl. A Hitelestsi fejlc (Authentication Header, AH) hasznlatval megakadlyozzuk, hogy az illetktelenek meghamistsk az IP csomagok fejlct. Ezt gy rjk el, hogy kiszmolunk egy kriptograi ellenrz sszeget s az IP-csomagok fejlcnek mezire egy biztonsgos fggvnnyel generlunk valamilyen ujjlenyomatot. Az ez utn kvetkez kiegszt fejlc tartalmazza ezt az ujjlenyomatot, amellyel a csomag hitelesthet.

Az ESP s az AH az alkalmazstl fggen hasznlhat egytt vagy kln-kln. Az IPsec akr kzvetlenl is hasznlhat kt szmtgp forgalmnak titkostsra (ezt Szlltsi mdnak (Transport Mode) nevezik), vagy kt alhlzat kztt pthetnk ki vele virtulis tunneleket, ami remekl alkalmas kt vllalati hlzat kommunikcijnak bebiztostsra (ez a Tunnel md (Tunnel Mode)). Ez utbbit egyszeren csak Virtulis magnhlzatknt (Virtual Private Network, VPN) emlegetik. A FreeBSD IPsec alrendszerrl az ipsec(4) man oldalon tallhatunk tovbbi informcikat. A rendszermag IPsec tmogatsnak aktivlshoz a kvetkez paramtereket kell beletennnk a kongurcis llomnyba:
options device IPSEC crypto # IP biztonsg

Ha szksgnk van a IPsec nyomkvetsre, a kvetkez belltst is hozztehetjk:


options IPSEC_DEBUG # az IP biztonsg nyomkvetse

414

Fejezet 14. Biztonsg

14.10.2. A problma
Semmilyen szabvny nem fogalmazza meg mi is szmt VPN-nek. A virtulis magnhlzatok tucatnyi klnbz technolgival valsthatak meg, de mindegyiknek megvan a maga erssge s gyengesge. Ebben a szakaszban krvonalazunk egy ilyen helyzetet, valamint a benne felptett VPN megvalstshoz alkalmazott stratgikat.

14.10.3. A forgatknyv: adott egy otthoni s egy vllalati hlzat, amelyek kln-kln csatlakoznak az internetre, s VPN hasznlatval ezeket egyetlen hlzatknt szeretnnk hasznlni
Elfelttelezseink a kvetkezek:

legalbb kt hlzatunk van; magn bell mind a kt hlzat IP-t hasznl; mind a kt hlzat egy FreeBSD tjrn keresztl csatlakozik az internethez; a hlzatok tjri legalbb egy publikus IP-cmmel rendelkeznek; a hlzatok bels cmei lehetnek publikus vagy privt IP-cmek, nem szmt. Fontos viszont, hogy ezek ne tkzzenek, vagyis ne hasznlja egyszerre mind a kett a 192.168.1.x cmtartomnyt.

14.10.4. Az IPsec belltsa FreeBSD alatt


rta: Tom Rhodes. Kezdskppen a Portgyjtemnybl teleptennk kell a security/ipsec-tools portot. Ez a programcsomag rengeteg olyan alkalmazst tartalmaz, amely segtsgnkre lehet a belltsok elvgzse sorn. A kvetkez lpsben ltre kell hoznunk kt gif(4) tpus pszeudoeszkzt, melyeken keresztl a kt hlzat kztt egy tunnel segtsgvel ki tudjuk pteni a szksges kapcsolatot. Ehhez root felhasznlknt futtassuk a kvetkez parancsokat (a bels s kls megnevezs paramtereket cserljk ki a vals bels s kls tjrk cmeire):
# ifconfig gif0 create # ifconfig gif0 bels1 bels2 # ifconfig gif0 tunnel kls1 kls2

Tekintsk pldul, hogy a vllalati LAN publikus IP-cme 172.16.5.4, valamint a privt IP-cme 10.246.38.1. Az otthoni LAN publikus IP-cme legyen most 192.168.1.12, valamint a bels privt IP-cme pedig 10.0.0.5. Elsre ez taln mg nem teljesen rthet, ezrt az ifcong(8) parancs hasznlatval is nzzk meg a pldban szerepl hlzatok kongurcijt:
Az els tjr: gif0: flags=8051 mtu 1280 tunnel inet 172.16.5.4 --> 192.168.1.12 inet6 fe80::2e0::81ff:fe02:5881%gif0 prefixlen 64 scopeid 0x6

415

Fejezet 14. Biztonsg


inet 10.246.38.1 --> 10.0.0.5 netmask 0xffffff00 A msodik tjr: gif0: flags=8051 mtu 1280 tunnel inet 192.168.1.12 --> 172.16.5.4 inet 10.0.0.5 --> 10.246.38.1 netmask 0xffffff00 inet6 fe80::250:bfff:fe3a:c1f%gif0 prefixlen 64 scopeid 0x4

Miutn elvgeztk az imnti belltsokat, a ping(8) paranccsal mr mind a kt privt IP-tartomnynak elrhetnek kell lennie, ahogy azt az albbi plda is rzkeltetni kvnja:
otthoni-halo# ping 10.0.0.5 PING 10.0.0.5 (10.0.0.5): 56 data bytes 64 bytes from 10.0.0.5: icmp_seq=0 ttl=64 time=42.786 ms 64 bytes from 10.0.0.5: icmp_seq=1 ttl=64 time=19.255 ms 64 bytes from 10.0.0.5: icmp_seq=2 ttl=64 time=20.440 ms 64 bytes from 10.0.0.5: icmp_seq=3 ttl=64 time=21.036 ms --- 10.0.0.5 ping statistics --4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max/stddev = 19.255/25.879/42.786/9.782 ms vallalati-halo# ping 10.246.38.1 PING 10.246.38.1 (10.246.38.1): 56 data bytes 64 bytes from 10.246.38.1: icmp_seq=0 ttl=64 time=28.106 ms 64 bytes from 10.246.38.1: icmp_seq=1 ttl=64 time=42.917 ms 64 bytes from 10.246.38.1: icmp_seq=2 ttl=64 time=127.525 ms 64 bytes from 10.246.38.1: icmp_seq=3 ttl=64 time=119.896 ms 64 bytes from 10.246.38.1: icmp_seq=4 ttl=64 time=154.524 ms --- 10.246.38.1 ping statistics --5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max/stddev = 28.106/94.594/154.524/49.814 ms

Az elvrsainknak megfelelen teht a privt cmeken mind a kt oldalnak kpesnek kell lennie ICMP csomagokat kldenie s fogadnia. A kvetkez lpsben meg kell mondanunk az tjrknak hogyan irnytsk a csomagokat a kt hlzat kzti forgalom megfelel ramlshoz. Ezt az albbi paranccsal elrhetjk el:
# vallalati-halo# route add 10.0.0.0 10.0.0.5 255.255.255.0 # vallalati-halo# route add net 10.0.0.0: gateway 10.0.0.5 # otthoni-halo# route add 10.246.38.0 10.246.38.1 255.255.255.0 # otthoni-halo# route add host 10.246.38.0: gateway 10.246.38.1

Itt mr a bels gpeket az tjrkrl s az tjrk mgl egyarnt el tudjuk rni. A kvetkez plda alapjn errl knnyedn meg is tudunk gyzdni:
vallalati-halo# ping 10.0.0.8 PING 10.0.0.8 (10.0.0.8): 56 data bytes 64 bytes from 10.0.0.8: icmp_seq=0 ttl=63 64 bytes from 10.0.0.8: icmp_seq=1 ttl=63 64 bytes from 10.0.0.8: icmp_seq=2 ttl=63 64 bytes from 10.0.0.8: icmp_seq=3 ttl=63

time=92.391 ms time=21.870 ms time=198.022 ms time=22.241 ms

416

Fejezet 14. Biztonsg


64 bytes from 10.0.0.8: icmp_seq=4 ttl=63 time=174.705 ms --- 10.0.0.8 ping statistics --5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max/stddev = 21.870/101.846/198.022/74.001 ms otthoni-halo# ping 10.246.38.107 PING 10.246.38.1 (10.246.38.107): 56 data bytes 64 bytes from 10.246.38.107: icmp_seq=0 ttl=64 time=53.491 ms 64 bytes from 10.246.38.107: icmp_seq=1 ttl=64 time=23.395 ms 64 bytes from 10.246.38.107: icmp_seq=2 ttl=64 time=23.865 ms 64 bytes from 10.246.38.107: icmp_seq=3 ttl=64 time=21.145 ms 64 bytes from 10.246.38.107: icmp_seq=4 ttl=64 time=36.708 ms --- 10.246.38.107 ping statistics --5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max/stddev = 21.145/31.721/53.491/12.179 ms

A tunnelek belltsa volt igazbl a knnyebb rsz, egy biztonsgos sszekttets kialaktsa azonban mr valamivel komolyabb folyamatot rejt magban. A most kvetkez kongurciban erre elre ismert (vagyis pre-shared, PSK) RSA-kulcsokat fogunk hasznlni. A konkrt IP-cmektl eltekintve az tjrkon a /usr/local/etc/racoon/racoon.conf llomnyok hasonlan fognak kinzni, nagyjbl valahogy gy:
path log padding {

pre_shared_key "/usr/local/etc/racoon/psk.txt"; # az ismert kulcsot tartalmaz llomny he debug; # a naplzs rszletessgnek belltsa: ha vgeztnk a tesztelssel s a hibakere # ezeket ne nagyon vltoztassuk meg maximum_length randomize strict_check exclusive_tail 20; off; off; off;

} timer # idztsi belltsok, lltsuk be igny szerint { counter 5; interval 20 sec; persend 1; # natt_keepalive 15 sec; phase1 30 sec; phase2 15 sec; } listen # cm [port], ahol a racoon majd vlaszolni fog { isakmp 172.16.5.4 [500]; isakmp_natt 172.16.5.4 [4500]; } remote { 192.168.1.12 [500] exchange_mode doi situation main,aggressive; ipsec_doi; identity_only;

417

Fejezet 14. Biztonsg


my_identifier address 172.16.5.4; peers_identifier address 192.168.1.12; lifetime time 8 hour; passive off; proposal_check obey; nat_traversal off; generate_policy off; proposal { encryption_algorithm hash_algorithm authentication_method lifetime time dh_group } }

blowfish; md5; pre_shared_key; 30 sec; 1;

sainfo (address 10.246.38.0/24 any address 10.0.0.0/24 any) # address $hlzat/$hlzati_maszk $t # (a $tpus lehet "any" vagy "esp") { # a $hlzat a kt sszekapcsolni kvnt bels hlzat legyen pfs_group 1; lifetime time 36000 sec; encryption_algorithm blowfish,3des,des; authentication_algorithm hmac_md5,hmac_sha1; compression_algorithm deflate; }

A pldban szerepl sszes opci rszletes kifejtse jval meghaladn ezen lers kereteit, ezrt a bvebb informcikkal kapcsolatban inkbb a racoon belltsaihoz tartoz man oldal elolvasst javasoljuk. A gpek kzti hlzati forgalom titkostshoz be kell mg lltanunk egy SPD hzirendet is, gy a FreeBSD s a racoon kpes kdolni s dekdolni a csomagokat. Ezt a most kvetkez, a vllalati tjrn tallhathoz hasonl egyszer shell szkripttel tudjuk elvgezni. Ezt az llomnyt a rendszer indtsakor fogjuk felhasznlni, melyet /usr/local/etc/racoon/setkey.conf nven mentsnk el:
flush; spdflush; # Az otthoni hlzati fel spdadd 10.246.38.0/24 10.0.0.0/24 any -P out ipsec esp/tunnel/172.16.5.4-192.168.1.12/use; spdadd 10.0.0.0/24 10.246.38.0/24 any -P in ipsec esp/tunnel/192.168.1.12-172.16.5.4/use;

Ahogy ezzel megvagyunk, a racoon az egyes tjrkon a kvetkez paranccsal indthat el:
# /usr/local/sbin/racoon -F -f /usr/local/etc/racoon/racoon.conf -l /var/log/racoon.log

A parancs eredmnye ennek megfelelen nagyjbl a kvetkez lesz:


vallalati-halo# /usr/local/sbin/racoon -F -f /usr/local/etc/racoon/racoon.conf Foreground mode. 2006-01-30 01:35:47: INFO: begin Identity Protection mode. 2006-01-30 01:35:48: INFO: received Vendor ID: KAME/racoon 2006-01-30 01:35:55: INFO: received Vendor ID: KAME/racoon

418

Fejezet 14. Biztonsg


2006-01-30 2006-01-30 2006-01-30 2006-01-30 2006-01-30 2006-01-30 2006-01-30 01:36:04: 01:36:05: 01:36:09: 01:36:09: 01:36:13: 01:36:18: 01:36:18: INFO: INFO: INFO: INFO: INFO: INFO: INFO:

ISAKMP-SA established 72.16.5.4[500]-192.168.1.12[500] spi:623b9b3bd249 initiate new phase 2 negotiation: 72.16.5.4[0]192.168.1.12[0] IPsec-SA established: ESP/Tunnel 92.168.1.12[0]->172.16.5.4[0] spi=284 IPsec-SA established: ESP/Tunnel 172.16.5.4[0]->192.168.1.12[0] spi=47 respond new phase 2 negotiation: 172.16.5.4[0]192.168.1.12[0] IPsec-SA established: ESP/Tunnel 192.168.1.12[0]->172.16.5.4[0] spi=12 IPsec-SA established: ESP/Tunnel 172.16.5.4[0]->192.168.1.12[0] spi=17

A tunnel megfelel mkdst gy tudjuk ellenrizni, ha tvltunk egy msik konzolra s a tcpdump(1) program segtsgvel gyeljk a hlzati forgalmat. A pldban szerepl em0 interfszt termszetesen ne felejtsk el kicserlni a megfelel eszkz nevre.
# tcpdump -i em0 host 172.16.5.4 and dst 192.168.1.12

Ennek hatsra az albbiakhoz hasonl adatoknak kellene megjelennie a konzolon. Amennyiben nem ez trtnik, valamilyen hiba trtnt, ezrt meg kell keresnnk azt a visszakapott adatok alapjn.

01:47:32.021683 IP vallalatihalozat.com > 192.168.1.12.otthonihalozat.com: ESP(spi=0x02acbf9f,seq 01:47:33.022442 IP vallalatihalozat.com > 192.168.1.12.otthonihalozat.com: ESP(spi=0x02acbf9f,seq 01:47:34.024218 IP vallalatihalozat.com > 192.168.1.12.otthonihalozat.com: ESP(spi=0x02acbf9f,seq

Itt mr mind a kt hlzatnak elrhetnek kell lennie s egyknt kell ltszdnia. A hlzatokat ezen fell mg rdemes kln vdeni egy tzfallal is. Ilyenkor a csomagok kt hlzati kzti zavartalan oda-vissza vndorlshoz tovbbi szablyokat kell mg felvennnk a tzfal szablyrendszerbe. A ipfw(8) tzfal esetn ez a kvetkez sorok hozzadst jelenti a tzfal kongurcis llomnyhoz:
ipfw ipfw ipfw ipfw add add add add 00201 00202 00203 00204 allow allow allow allow log log log log esp from any to any ah from any to any ipencap from any to any udp from any 500 to any

Megjegyzs: A szablyok szmozst mindig az adott gp aktulis belltsainak megfelelen kell mdostani.

A pf(4) s ipf(8) felhasznlk szmra ehhez a kvetkez parancsot javasoljuk:


pass pass pass pass pass pass pass pass pass pass in quick proto esp from any to any in quick proto ah from any to any in quick proto ipencap from any to any in quick proto udp from any port = 500 to any port = 500 in quick on gif0 from any to any out quick proto esp from any to any out quick proto ah from any to any out quick proto ipencap from any to any out quick proto udp from any port = 500 to any port = 500 out quick on gif0 from any to any

Vgezetl a kvetkez sor hozzadsval engedlyezzk az /etc/rc.conf llomnyban a VPN indtst a rendszer indtsa sorn:
ipsec_enable="YES" ipsec_program="/usr/local/sbin/setkey"

419

Fejezet 14. Biztonsg

ipsec_file="/usr/local/etc/racoon/setkey.conf" # engedlyezzk az spd hzirend belltst a rends racoon_enable="yes"

14.11. OpenSSH
rta: Chern Lee. Az OpenSSH olyan hlzati kapcsoldsi eszkzk sszessge, amivel biztonsgos mdon rhetnk el tvoli szmtgpeket. Az rlogin, rsh, rcp s a telnet direkt kivltsra hasznlhat. Emellett SSH-n keresztl TCP/IP kapcsolatok is biztonsgosan bjtathatak vagy kldhetek tovbb. Az OpenSSH-t az OpenBSD projekt tartja karban, s az SSH 1.2.12 verzijra pl hibajavtsokkal s frisstsekkel egyetemben. Az SSH 1 s 2 protokollokkal egyarnt kompatibilis.

14.11.1. Az OpenSSH hasznlatnak elnyei


A htkznapi esetben, vagyis amikor a telnet(1) vagy rlogin(1) alkalmazsokat hasznljuk, az adatok titkostatlan formban kzlekednek a hlzaton. A szerver s a kliens kz brhova becsatlakoz hlzati kvncsiskodk gy knnyedn el tudjk lopni a felhasznli nevnket s jelszavunkat, vagy lnyegben brmilyen adatot, ami az adott munkamenetben megfordul. Az OpenSSH ennek kivdsre knl fel klnfle hitelestsi s titkostsi eszkzket.

14.11.2. Az sshd engedlyezse


Az sshd a FreeBSD teleptsekor jelentkez Standard lehetsgek egyike. Az sshd engedlyezst gy tudjuk kiderteni, ha az rc.conf llomnyban megkeressk a kvetkez sort:
sshd_enable="YES"

Ez tlti be a rendszer indtsakor az sshd(8)-t, az OpenSSH dmont. Vagy az /etc/rc.d/sshd rc(8) szkript segtsgvel is elindthatjuk az OpenSSH-t:
/etc/rc.d/sshd start

14.11.3. Az SSH kliens


Az ssh(1) segdprogram az rlogin(1) programhoz hasonlan mkdik.
# ssh felhasznl@gp.hu

Host key not found from the list of known hosts. want to continue connecting (yes/no)? yes Host gp.hu added to the list of known hosts. felhasznl@gp.hus password:
*******

Are you sure you

Az zenetek fordtsa:

420

Fejezet 14. Biztonsg


Nem talltam meg a gpet az ismert gpek kztt. akarunk hozz (igen/nem)? igen A gp.hu felkerlt az ismert gpek kz. Adja meg a felhasznl@gp.hu jelszavt: Biztosan csatlakozni

Bejelentkezs utn minden ugyanolyan, mintha az rlogin vagy a telnet programokat hasznltuk volna. Az SSH egy kulcs segtsgvel prblja azonostani a szmtgpeket, ezzel ellenrzi a szerver hitelessgt a kliensek csatlakozsakor. A felhasznlnak ilyenkor elszr mindig yes vlaszt kell adnia. A ksbbi bejelentkezsi ksrletek pedig majd mindig az gy kapott kulccsal trtnnek. Ha eltrne a kulcs, akkor az SSH kliens erre gyelmeztetni fog minket. A kulcsok a ~/.ssh/known_hosts vagy az SSH v2 protokoll esetn a ~/.ssh/known_hosts2 llomnyba kerlnek elmentsre. Alaprtelmezs szerint az OpenSSH szerverek csak SSH v2 kapcsolatokat fogadnak el. Lehetsg szerint a kliens is ezt a vltozatot fogja hasznlni, de ha nem sikerl, akkor megprblkozik a v1-el. A kliensnek a -1 vagy -2 opcik segtsgvel el is lehet rni, hogy az els vagy a msodik vltozatot hasznlja. A kliensben az els vltozat tmogatst csupn a rgebbi verzik kompatibilitsa miatt tartjk karban.

14.11.4. Biztonsgos msols


Az scp(1) parancs az rcp(1) parancshoz hasonlan mkdik: egyik gprl msol a msikra, biztonsgosan.
# scp felhasznl@gp.hu:/COPYRIGHT COPYRIGHT felhasznl@gp.hus password: *******

COPYRIGHT 00:00
#

100% |*****************************|

4735

Mivel a kulcsot mr ismerjk ehhez a tvoli gphez (az elbbi pldbl), ezrt az scp(1) hasznlatakor mr ezzel hitelestnk. Az scp(1) paramterei hasonlak a cp(1) parancshoz: els helyen az llomny vagy llomnyok neveit adjuk meg, a msodikon pedig a clt. Mivel az llomnyokat a hlzaton SSH-n keresztl kldik t, ezrt az llomnyok neveit felhasznl@gp:elrsi_t formban kell megadni.

14.11.5. Belltsok
Az OpenSSH dmon s kliens rendszerszint kongurcis llomnyai az /etc/ssh knyvtrban tallhatak. Az ssh_config tartalmazza a kliens belltsait, mikzben az sshd_config tartalmazza a dmont. Emellett az rc.conf llomnyban megadhat sshd_program (ez alapbl a /usr/sbin/sshd) s sshd_flags opcikkal tovbbi belltsi szinteket nyjtanak.

14.11.6. ssh-keygen
Jelszavak helyett az ssh-keygen(1) programmal a felhasznlk azonostsra DSA- vagy RSA-kulcsokat tudunk kszteni:
% ssh-keygen -t dsa

421

Fejezet 14. Biztonsg


Generating public/private dsa key pair. Enter file in which to save the key (/home/felhasznl/.ssh/id_dsa): Created directory /home/felhasznl/.ssh. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/felhasznl/.ssh/id_dsa. Your public key has been saved in /home/felhasznl/.ssh/id_dsa.pub. The key fingerprint is: bb:48:db:f2:93:57:80:b6:aa:bc:f5:d5:ba:8f:79:17 felhasznl@gp.hu

Az ssh-keygen(1) ekkor a hitelestsre ltrehoz egy publikus s egy privt kulcsbl ll prt. A privt kulcs a ~/.ssh/id_dsa vagy ~/.ssh/id_rsa llomnyba kerl, mikzben a publikus kulcs a ~/.ssh/id_dsa.pub vagy ~/.ssh/id_rsa.pub lesz attl fggen, hogy DSA vagy RSA a kulcs tpusa. A mdszer mkdshez a publikus DSA- vagy RSA-kulcsot a tvoli szmtgp ~/.ssh/authorized_keys llomnyba kell bemsolni. gy teht a tvoli szmtgpre jelszavak alkalmazsa helyett SSH-kulccsal tudunk belpni. Ha az ssh-keygen(1) parancsnak megadunk egy jelmondatot is, akkor a felhasznl a privt kulcst csak ennek megadsval tudja hasznlni. A hossz jelmondatok lland beirogatstl a 14.11.7 Szakasz szakaszban hamarosan bemutatsra kerlt ssh-agent(1) igyekszik megkmlni minket.
FigyelemA klnbz opcik s llomnyok eltrhetnek a szmtgpnkre teleptett OpenSSH verzijtl fggen. Ilyen esetben javasolt felkeresni az ssh-keygen(1) man oldalt.

14.11.7. Az ssh-agent s az ssh-add


Az ssh-agent(1) s ssh-add(1) segdprogramokkal be tudjuk tlteni az SSH-kulcsokat a memriba, amivel elkerlhetjk a jelmondat lland begpelst. A hitelestst az ssh-agent(1) program kezeli a betlttt privt kulcsok alapjn. Az ssh-agent(1) hasznlatval egy msik programot is elindhatunk, egy parancsrtelmeztl kezdve egy ablakkezelig szinte brmit. Az ssh-agent(1) programot gy tudjuk egy parancsrtelmezben hasznlni, hogy elszr is elindtjuk vele az adott parancsrtelmezt. Ezutn az ssh-add(1) lefuttatsval hozz kell adnunk egy identitst, annak jelmondatnak megadsval. Miutn ezeket megtettk, a felhasznl brmelyik olyan tvoli gpre be tud jelentkezni, ahol a publikus kulcst ismerik. Pldul:
% ssh-agent csh % ssh-add

Enter passphrase for /home/felhasznl/.ssh/id_dsa: Identity added: /home/felhasznl/.ssh/id_dsa (/home/felhasznl/.ssh/id_dsa)


%

Az ssh-agent(1) programot X11-el gy tudjuk hasznlni, ha az ~/.xinitrc llomnyba tesszk bele. Ezzel az ssh-agent(1) az sszes X11-ben indtott program szmra rendelkezsre ll. Pldnak vegyk ezt az ~/.xinitrc llomnyt:
exec ssh-agent startxfce4

422

Fejezet 14. Biztonsg gy az X11 indulsakor mindig elindul az ssh-agent(1), amely pedig elindtja az XFCE alkalmazst. Miutn trtuk a sajt llomnyunkat, a rendszer letbelptetshez indtsuk jra az X11-et, az ssh-add(1) futtatsval pedig tltsk be az sszes SSH-kulcsunkat.

14.11.8. Tunnelezs SSH-val


Az OpenSSH-val ltre tudunk hozni egy tunnelt, amellyel egy msik protokoll adatait tudjuk titkostott mdon becsomagolni. Az albbi parancs arra utastja az ssh(1) programot, hogy hozzon ltre egy tunnelt a telnet hasznlathoz:
% ssh -2 -N -f -L 5023:localhost:23 felhasznl@iz.miz.hu %

Az ssh parancsnak a kvetkez kapcsolkat adtuk meg:


-2

Az ssh parancs a protokoll msodik vltozatt hasznlja. (Ne adjuk meg, ha rgi SSH szerverekkel dolgozunk.)
-N

Tunnel ltrehozsa. Ha nem adjuk meg, akkor az ssh egy hagyomnyos munkamenet felptst kezdi meg.
-f

Az ssh a httrben fusson.


-L

Egy helyi tunnel a helyiport:tvoligp:tvoliport felrsban.


felhasznl@iz.miz.hu

A tvoli SSH szerver. Az SSH ltal ltrehozott jratok gy mkdnek, hogy ltrehozunk egy csatlakozst a localhost (a helyi gp) megadott portjn. Ezutn minden olyan kapcsolatot, ami a helyi gp adott portjra rkezik, SSH-n keresztl tirnytunk a tvoli gp portjra. Ebben a pldban a helyi gp 5023 portjt tirnytjuk a helyi gp 23 portjra. Mivel a 23 a telnet portja, ezrt az gy denilt SSH jrattal egy biztonsgos telnet munkamenetet hozunk ltre. Ezen a mdon tetszleges nem biztonsgos TCP protokollt, pldul SMTP-t, POP3-at, FTP-t stb. be tudunk csomagolni. Plda 14-1. Biztonsgos tunnel ltrehozsa SSH-val SMTP-hez
% ssh -2 -N -f -L 5025:localhost:25 felhasznl@levelez.szerver.hu felhasznl@levelez.szerver.hus password: ***** % telnet localhost 5025

Trying 127.0.0.1... Connected to localhost. Escape character is ^].

423

Fejezet 14. Biztonsg


220 levelez.szerver.hu ESMTP

Az ssh-keygen(1) s tovbbi felhasznli hozzfrsek alkalmazsval ezen a mdon ki tudunk alaktani egy minden tovbbi problmtl s zrtl mentes SSH tunnelezsi krnyezetet. A jelszavak helyett kulcsokat hasznlunk s minden tunnel kln felhasznlknt is futtathat.

14.11.8.1. Gyakorlati pldk a tunnelek hasznlatra


14.11.8.1.1. Egy POP3 szerver biztonsgos elrse Tegyk fel, hogy a munkahelynkn van egy SSH szerver, amire kvlrl lehet csatlakozni, illetve vele egy hlzatban van egy POP3 levelez szerver is. A munkahelynk s az otthonunk kztt lev hlzati tvonalat rszben vagy teljesen nem tartjuk megbzhatnak. Ezrt az e-mailjeinket valamilyen biztonsgos mdon szeretnnk elrni. Ezt gy tudjuk megvalstani, ha otthonrl csatlakozunk a munkahelyen lev SSH szerverre s ezen keresztl rjk a levelez szervert.
% ssh -2 -N -f -L 2110:levl.gp.hu:110 felhasznl@ssh-szerver.gp.hu felhasznl@ssh-szerver.gp.hus password: ******

Miutn a tunnel ltrejtt s mkdkpes, lltsuk be a levelez kliensnkben, hogy a POP3 krseket a localhost 2110 portjra kldje. Innen pedig biztonsgos mdon megy tovbb a levl.gp.hu cmre.

14.11.8.1.2. Egy szigor tzfal megkerlse Egyes hlzati adminisztrtorok tlsgosan szigor szablyokat adnak meg a tzfalban, s nem csak a bejv kapcsolatokat szrik, hanem a kimenket is. A tvoli gpekhez csak a 22 (SSH) s 80 (bngszs) portjaikon tudunk csatlakozni. Mi viszont szeretnnk ms (nem egszen a munknkkal kapcsolatos) szolgltatsokat is elrni, pldul egy Ogg Vorbis szerverrl zent hallgatni. Ehhez a szerverhez viszont csak akkor tudnnk csatlakozni, ha a 22 vagy 80 portokon zemelne. Ezt a problmt gy oldhatjuk meg, ha felptnk egy SSH kapcsolatot a hlzatunk tzfaln kvl lev szmtgppel s segtsgvel tbjunk az Ogg Vorbis szerverhez.
% ssh -2 -N -f -L 8888:zene.gp.hu:8000 felhasznl@tzfalazatlan-rendszer.gp.org felhasznl@tzfalazatlan-rendszer.gp.org s password: *******

A zenelejtsz kliensknek adjuk meg a localhost 8888 portjt, amely pedig a tzfal sikeres kijtszsval tovbbtdik a zene.gp.hu 8000-res portjra.

14.11.9. Az AllowUsers felhasznli bellts


Gyakran nem rt korltozni a felhasznlk bejelentkezst. Az AllowUsers erre tkletesen megfelel. Pldul, ha csak 192.168.1.32 cmrl engedjk bejelentkezni a root felhasznlt, akkor ehhez valami ilyesmit kell bernunk az /etc/ssh/sshd_config llomnyba:

424

Fejezet 14. Biztonsg


AllowUsers root@192.168.1.32

Ezzel pedig csupn nevnek megadsval engedlyezzk az admin felhasznl bejelentkezst (brhonnan):
AllowUsers admin

Egy sorban tbb felhasznl is megadhat, mint pldul:


AllowUsers root@192.168.1.32 admin

Megjegyzs: Ilyenkor ne felejtsk el megadni az sszes bejelentkezsre (valamilyen formban) jogosult felhasznlt megadni, msklnben kizrjuk ezeket.

Miutn elvgeztk a szksges vltoztatsokat az /etc/ssh/sshd_config llomnyban, utastsuk az sshd(8) dmont a kongurcis llomnyok jraolvassra:
# /etc/rc.d/sshd reload

14.11.10. Ajnlott olvasnivalk (angolul)


OpenSSH (http://www.openssh.com/) ssh(1) scp(1) ssh-keygen(1) ssh-agent(1) ssh-add(1) ssh_cong(5) sshd(8) sftp-server(8) sshd_cong(5)

14.12. Az llomnyrendszerek hozzfrseit vezrl listk


rta: Tom Rhodes. A FreeBSD 5.0 s ksbbi vltozatai klnbz fejlesztseket hoztak az llomnyrendszerekben, pldul a pillanatkpek ksztse vagy a hozzfrs-vezrlsi listk (Access Control List, ACL-ek) tmogatsa. A hozzfrs-vezrlsi listk a szabvnyos UNIX-os engedly modellt bvtik ki egy igen kompatibilis (POSIX.1e) mdon. Hasznlatval a rendszergazdk egy sokkal kinomultabb biztonsgi modellt tudhatnak a kezk gyben. Az UFS llomnyrendszerek ACL tmogatst gy tudjuk engedlyezni, ha a rendszermagot az
options UFS_ACL

paramterrel fordtjuk le. Amennyiben ezt nem fordtottuk bele, akkor az ACL tmogatssal rendelkez llomnyrendszerek csatlakoztatsa sorn egy gyelmeztetst kapunk. Ez az opci a GENERIC rendszermag rsze. Az ACL az llomnyrendszeren engedlyezett kiterjesztett tulajdonsgokra tmaszkodik. Ezeket a kiterjesztett tulajdonsgokat a kvetkez genercis UNIX llomnyrendszer, az UFS2 mr alapbl ismeri.

425

Fejezet 14. Biztonsg


Megjegyzs: UFS1 tpus llomnyrendszereken sokkal nagyobb a kiterjesztett tulajdonsgok kezelsnek kltsge, mint az UFS2 esetben. Az UFS2 jval nagyobb teljestmnnyel kpes dolgozni a kiterjesztett tulajdonsgokkal. Emiatt a hozzfrs-vezrlsi listk hasznlathoz az UFS2 sokkal inkbb ajnlott, mint az UFS1.

Az ACL hasznlatt a csatlakoztatskor megadott acls belltssal engedlyezhetjk, amelyet rdemes felvennnk az /etc/fstab llomnyba. Ha a tunefs(8) segdprogrammal az llomnyrendszer fejlcben lev szuperblokk ACL kapcsoljt trjuk, akkor ez a bellts automatikuss tehet. A szuperblokk hasznlata tbb okbl is ajnlatos:

A csatlakoztatskor megadott ACL bellts nem vltoztathat egy egyszer jracsatlakoztatssal (mount(8) -u), csak egy teljes levlasztssal (umount(8)) s egy friss csatlakoztatssal (mount(8)). Ennek rtelmben az ACL-ek a rendszerindt llomnyrendszeren a rendszer indulsa utn nem engedlyezhetek. m ez azt is jelenti, hogy egy mr hasznlatban lev llomnyrendszer belltsai sem vltoztathatak meg. Ha a kapcsolt a szuperblokkban lltjuk be, akkor az llomnyrendszert mg akkor is ACL tmogatssal csatlakoztatja a rendszer, ha azt nem adtuk meg az fstab llomnyban vagy az eszkzeink trendezdtek. gy az llomnyrendszereket mg vletlenl sem tudjuk ACL hasznlata nlkl csatlakoztatni, ami egybknt gy komoly biztonsgi problmkat okozhatna.
Megjegyzs: Bellthatjuk gy is ACL kezelst, hogy egy friss csatlakoztats nlkl is bekapcsolhat legyen, azonban az ilyen llomnyrendszerek ACL nlkli csatlakoztatst nem ajnljuk senkinek, mivel ha egyszer mr engedlyeztk a hasznlatukat, majd kikapcsoljuk ezeket s vgl a kiterjesztett tulajdonsgok trlse nlkl jra engedlyezzk, akkor nagyon knnyen prul jrhatunk. Ha elkezdtk hasznlni az ACL-eket egy llomnyrendszeren, akkor ne tiltsuk le ezeket, mert az gy keletkez llomnyvdelem nem felttlenl lesz kompatibilis a felhasznlk ltal belltottakkal, s az ACL jraengedlyezse a vltozsaik eltti korbbi ACL engedlyeket fogja visszalltani az llomnyokra, aminek hatsa kiszmthatatlan.

A hozzfrs-vezrlsi listkat hasznl llomnyrendszerek esetn egy + (plusz) jellel brzoljk a kiterjesztett engedlyeket. Pldul:
drwx-----drwxrwx---+ drwxrwx---+ drwxrwx---+ drwxr-xr-x 2 2 2 2 2 robert robert robert robert robert robert robert robert robert robert 512 512 512 512 512 Dec Dec Dec Dec Nov 27 23 22 27 10 11:54 10:57 10:20 11:57 11:54 private knyvtr1 knyvtr2 knyvtr3 public_html

Lthatjuk, hogy a knyvtr1, knyvtr2 s knyvtr3 knyvtrakhoz tartoznak ACL tpus engedlyek, mg a public_html knyvtrhoz nem.

14.12.1. Az ACL-ek hasznlata


Az llomnyrendszerben tallhat ACL engedlyeket a getfacl(1) segdprogrammal nzhetjk meg. Pldul a prba llomny ACL engedlyeit a kvetkez paranccsal tudjuk megnzni:
% getfacl prba #file:prba

#owner:1001 #group:1001

426

Fejezet 14. Biztonsg


user::rwgroup::r-other::r--

Egy llomny ACL engedlyeit a setfacl(1) segdprogrammal tudjuk megvltoztatni. Figyeljk meg:
% setfacl -k prba

A -k opci trli az sszes ACL alap engedlyt egy llomnyrl vagy llomnyrendszerrl. Ennl viszont sokkal hasznosabb a -b opci hasznlata, mivel az meghagyja az ACL mkdshez szksges alapvet mezket.
% setfacl -m u:trhodes:rwx,group:web:r--,o::--- prba

Ebben a fenti parancsban a -m opcit pedig arra hasznltuk, hogy mdostsuk az alaprtelmezett ACL bejegyzseket. Mivel az ezt megelz parancsban teljesen trltk mg az elredenilt bejegyzseket is, ez a parancs a megadott paramterekkel kiegsztve ezeket vissza fogja lltani. gyeljnk arra, hogy ha olyan felhasznlt vagy csoportot adunk meg, ami nem ltezik a rendszerben, akkor a szabvny kimenetre egy Invalid argument hibazenetet kapunk.

14.13. A kls programok biztonsgi problminak gyelse


rta: Tom Rhodes. Az utbbi vekben a biztonsgi krdsekkel foglalkoz vilgban szmos fejlesztsre kerlt sor a sebezhetsgi gyelmeztetsek feldolgozsban. Manapsg tulajdonkppen brmilyen opercis rendszer fokozott veszlynek teszik ki magt a kls programok teleptsvel s hasznlatval. A sebezhetsgekrl beszmol rtestsek a biztonsg egyik alapkve, azonban a FreeBSD projekt nem tud ilyen jelentseket kiadni a FreeBSD alaprendszern kvl minden egyes kls alkalmazshoz. Azonban lehetsgnk van enyhteni a kls csomagok sebezhetsgn s gyelmeztetni a rendszergazdkat az ismert biztonsgi problmkra. A FreeBSD-nek van egy Portaudit nev segdprogramja, amit kizrlag erre a clra hoztak ltre. A ports-mgmt/portaudit port egy adatbzist hasznl, ahol a FreeBSD biztonsgi csapata s a portok fejleszti tartjk karban az ismert biztonsgi problmkat. A Portaudit hasznlatnak megkezdshez teleptsk a Portgyjtemnybl:
# cd /usr/ports/ports-mgmt/portaudit && make install clean

A teleptsi folyamat sorn a periodic(8) kongurcis llomnyai is frisstdnek, gy a Portaudit is lefut a napi biztonsgi ellenrzsek folyamn. Gondoskodjunk rla, hogy a root felhasznlnak levlben elkldtt a napi biztonsgi rtestseket rendesen elolvassuk. Nincs szksgnk tovbbi belltsokra. A telepts utn a rendszergazda a kvetkez paranccsal tudja frissteni a sajt adatbzispldnyt s megnzni a pillanatnyilag teleptett csomagok ismert sebezhetsgeit:
# portaudit -Fda

427

Fejezet 14. Biztonsg


Megjegyzs: Ez az adatbzis a periodic(8) minden egy futsakor magtl frissl, ezrt ez a parancs lnyegben elhagyhat. Egyedl a soronkvetkez pldkhoz kell kiadni.

A Portgyjtemnybl teleptett kls alkalmazsok megbzhatsgnak ellenrzst az albbi parancs kiadsval brmikor elvgezhetjk:
# portaudit -a

A Portaudit ennek hatsra valahogy gy fogja megjelenteni a sebezhet csomagokat:


Affected package: cups-base-1.1.22.0_1 Type of problem: cups-base -- HPGL buffer overflow vulnerability. Reference: <http://www.FreeBSD.org/ports/portaudit/40a3bca2-6809-11d9-a9e7-0001020eed82.html> 1 problem(s) in your installed packages found. You are advised to update or deinstall the affected package(s) immediately.

Fordtsa:
rintett csomag: cups-base-1.1.22.0_1 A problma jellege: cups-base -- HPGL puffer tlcsordulsi sebezhetsg. Link: <http://www.FreeBSD.org/ports/portaudit/40a3bca2-6809-11d9-a9e7-0001020eed82.html> A teleptett csomagokkal kapcsolatban 1 problemt talltam. Javasoljuk, hogy az rintett csomagokat azonnal frisstse vagy tvoltsa el.

Ha a bngsznket az itt megadott cmre irnytjuk, akkor megismerhetjk a krdses sebezhetsg pontosabb rszleteit. Ezen az oldalon megtallhatjuk a hiba ltal rintett verzikat a FreeBSD portok verzija szerint, illetve ms olyan honlapokat, ahol biztonsgi gyelmeztetseket tallhatunk. Rviden sszefoglalva, a Portaudit egy komoly segdeszkz s hitetlenl hasznos kiegsztje a Portupgrade portnak.

14.14. A FreeBSD biztonsgi gyelmeztetsei


rta: Tom Rhodes. A FreeBSD tbb ms kereskedelmi minsg opercis rendszerhez hasonlan Biztonsgi gyelmeztseket (Security Advisory) ad ki. Ezek a gyelmeztetsek ltalban megjelennek a biztonsggal foglalkoz levelezsi listkon s a hivatkozott hibk kijavtsa utn a megfelel kiadsok hibajegyzkben is. Ebben a szakaszban megismerjk s rtelmezzk ezeket a gyelmeztetseket, valamint megtudhatjuk, milyen lpseket kell megtennnk a rendszernk kijavtshoz.

428

Fejezet 14. Biztonsg

14.14.1. Hogyan pl fel egy gyelmeztets?


A FreeBSD biztonsgi gyelmeztetsei az albb lthat formban jelennek meg, amit mi most a freebsd-security-notications (http://lists.FreeBSD.org/mailman/listinfo/freebsd-security-notications) levelezsi listrl klcsnztnk.
============================================================================= FreeBSD-SA-XX:XX.UTIL Security Advisory The FreeBSD Project Topic: Category: Module: Announced: Credits: Affects: denial of service due to some problem

core sys 2003-09-23 Person@EMAIL-ADDRESS All releases of FreeBSD FreeBSD 4-STABLE prior to the correction date Corrected: 2003-09-23 16:42:59 UTC (RELENG_4, 4.9-PRERELEASE) 2003-09-23 20:08:42 UTC (RELENG_5_1, 5.1-RELEASE-p6) 2003-09-23 20:07:06 UTC (RELENG_5_0, 5.0-RELEASE-p15) 2003-09-23 16:44:58 UTC (RELENG_4_8, 4.8-RELEASE-p8) 2003-09-23 16:47:34 UTC (RELENG_4_7, 4.7-RELEASE-p18) 2003-09-23 16:49:46 UTC (RELENG_4_6, 4.6-RELEASE-p21) 2003-09-23 16:51:24 UTC (RELENG_4_5, 4.5-RELEASE-p33) 2003-09-23 16:52:45 UTC (RELENG_4_4, 4.4-RELEASE-p43) 2003-09-23 16:54:39 UTC (RELENG_4_3, 4.3-RELEASE-p39) CVE Name: CVE-XXXX-XXXX

For general information regarding FreeBSD Security Advisories, including descriptions of the fields above, security branches, and the following sections, please visit http://www.FreeBSD.org/security/. I. Background

II.

Problem Description(10)

III. Impact(11)

IV.

Workaround(12)

V.

Solution(13)

VI.

Correction details(14)

VII. References(15)

429

Fejezet 14. Biztonsg A Topic mezben olvashatjuk pontosan mi is maga a problma. Alapveten bemutatja az rintett biztonsgi gyelmeztetst s megemlti a sebezhet segdprogramot. A Category mez hivatkozik a rendszer azon rszre, amelyre a hiba kihatssal lehet. rtke lehet core, contrib vagy ports. A core kategria azt jelzi, hogy a sebezhetsg a FreeBSD legfontosabb komponenseit rinti. A contrib kategria a FreeBSD projekt szmra felajnlott szoftverek, mint pldul a sendmail sebezhetsgre utal. Vgezetl a ports kategria jelzi, hogy a sebezhetsg valamelyik, a Portgyjtemnyben szerepl szoftverre rvnyes. A Module mez a sebezhet komponens helyt nevezi meg, pldul sys. Ebben a pldban azt lthatjuk, hogy a sys modul a hibs. Ezrt a sebezhetsg egy rendszermagban hasznlt komponenst rint. Az Announced mez a biztonsgi gyelmeztets kiadsnak vagy szleskr kihirdetsnek dtumt rgzti. Ez azt jelenti, hogy a biztonsgi csapat meggyzdtt a problma ltezsrl s a hibt orvosol javts mr felkerlt a FreeBSD forrskdjba. A Credits mez azokat az egyneket vagy szervezeteket emlti meg, akik szleltk a sebezhetsget s jelentettk. Az Affects mezben megadjk, hogy a FreeBSD melyik kiadsaira van hatssal a sebezhetsg. Ha a rendszermag esetn lefuttatjuk az ident parancsot az rintett llomnyokra, akkor megtudhatjuk a pontos revzijukat. A portoknl a verziszm a port neve utn szerepel a /var/db/pkg knyvtrban. Ha a rendszernket nem frisstettk CVS-rl s fordtottuk jra, akkor nagy a valsznsge, hogy a sebezhetsg minket is rint. A Corrected mez tartalmazza a a kijavts dtumt, idejt, idznjt s az ezt tartalmaz kiadst. Az ismert sebezhetsgek adatbzisban (Common Vulnerabilities Database, CVD) hasznlt azonostsi informcik alapjn vgzett keressek szmra fenntartott. A Background mez adja meg rszleteiben a sebezhet programmal kapcsolatos tudnivalkat. Az esetek tbbsgben itt rjk le, hogy mirt jtt ltre az adott eszkz a FreeBSD-ben, mire hasznljk s hogyan keletkezett.

(10) A Problem Description mez a biztonsgi rst rszletezi. Ebben a rszben szerepelhet a hibs kdrszlet vagy akr mg az is, hogy miknt kell vele elidzni a hibt. (11) Az Impact mez a problma lehetsges hatsait rja krl a rendszerben. Ez pldul lehet egy DoS tmads, specilis engedlyek ellopsa vagy akr a rendszeradminisztrtori jogok megszerzse. (12) A Workaround mez igyekszik elfogadhat megoldst nyjtani a rendszerk frisstsre kptelen rendszergazdk szmra. Ennek oka lehet az id rvidsge, a hlzati elrhetsg vagy ms okokbl fakad elcsszs. Ennek ellenre a biztonsgi krdseket sosem szabad flvllrl venni, ezrt a sebezhet rendszereket vagy ki kell javtani vagy valamilyen mdon meg kell kerlni a biztonsgi rs kialakulst. (13) A Solution mez utastsokkal segt a rendszer kijavtst. Ez egy lpsrl lpsre tesztelt s ellenrztt mdszer, amellyel a rendszernket megfelelen ki tudjuk javtani s biztonsgoss tenni. (14) A Correction Details mez mutatja a CVS-g vagy kiads nevt, amelyben a pontokat alhzsra cserltk. Ezenkvl mg az egyes gakban az rintett llomnyok revzijt is mutatja. (15) A References mez ltalban a tmval kapcsolatos tovbbi forrsokat knlja fel URL, knyv, levelezsi lista vagy hrcsoport formjban.

430

Fejezet 14. Biztonsg

14.15. A fut programok nyilvntartsa


rta: Tom Rhodes. A fut programok nyilvntartsa olyan biztonsgi mdszer, ahol a rendszergazda gyelemmel ksri a rendszer hasznlatban lev erforrsait, a felhasznlk kzti megoszlst, gondoskodik a rendszer felgyeletrl s valamennyire nyomon kveti a felhasznlk parancsait. Ennek a mdszernek egyarnt megvannak a maga elnyei s htrnyai. Az egyik elnye, hogy a hasznlatval a behatols egszen a betrs pontjig visszakvethet. Htranya viszont, hogy a fut programok nyilvntartsa rengeteg mennyisg naplt generl s ehhez sok lemezterletre lesz szksgnk. Ebben a szakaszban vgigjrjuk a programok nyilvntartsnak alapjait.

14.15.1. A fut programok nyilvntartsnak engedlyezse s hasznlata


A fut programok nyilvntartst elszr engedlyeznnk kell. Ehhez a kvetkez parancsokat kell kiadnunk:
# touch /var/account/acct # accton /var/account/acct # echo accounting_enable="YES" >> /etc/rc.conf

Miutn aktivltuk, a nyilvntartst elkezdi szmbavenni a processzor kihasznltsgt, a parancsokat stb. A nyilvntarts emberek szmra nem olvashat formtumban kszl, ezrt csak az sa(8) segdprogrammal tudjuk megnzni. Ha nem adunk meg neki semmilyen opcit, akkor az sa kilistzza a felhasznlnknti hvsokat, az sszes eltelt idt percben, a teljes processzor- s felhasznli idt percben, az I/O mveletek tlagos szmt stb. A kiadott parancsokrl a lastcomm(1) programmal tudunk tjkozdni. A lastcomm segtsgvel ki tudjuk ratni a felhasznlk adott terminlon kiadott parancsait is, mint pldul:
# lastcomm ls trhodes ttyp1

Ezzel megjelenik a trhodes nev felhasznl ttyp1 terminlon kiadott sszes ismert ls parancsa. Szmos hasznos belltst s hozzjuk tartoz lerst tallhatunk mg a lastcomm(1), acct(5) s sa(8) man oldalakon.

Megjegyzsek
1. FreeBSD alatt a bejelentkezshez hasznlt szabvnyos jelszavak akr 128 karakteresek is lehetnek.

431

Fejezet 15. A jail alrendszer


rta: Matteo Riondato.

15.1. ttekints
Ez a fejezet a FreeBSD-ben tallhat jail alrendszert, valamint annak hasznlatt mutatja be kzelebbrl. Az jail, melyet gyakran csak gy emlegetnek, mint a chroot krnyezetek tovbbfejlesztst, a rendszergazdk szmra ajnlott, nagyon sokoldal eszkz, de a halad felhasznlk is hasznosnak tallhatjk. A fejezet elolvassa sorn megismerjk:

mi is az a jail, milyen clra hasznlhat a FreeBSD-ben; hogyan hozzunk ltre, indtsunk el s lltsunk le jaileket; a ltrehozott jailek karbantartsainak alapjait, a jailek bellrl s kvlrl egyarnt.

A jail alrendszerrl mg tbb hasznos informcit a kvetkez helyekrl tudhatunk meg:

A jail(8) man oldal. Ez tartalmazza a jail segdprogram teljes referencijt ez az a karbantartsra hasznlhat eszkz, amellyel el tudjuk indtani, le tudjuk lltani s vezrelni tudjuk a jaileket a FreeBSD-ben. A levelezsi listk s azok archvumai. A FreeBSD general questions levelezsi lista (http://lists.FreeBSD.org/mailman/listinfo/freebsd-questions) archvuma s a FreeBSD lista szerver (http://lists.FreeBSD.org/mailman/listinfo)en tallhat tbbi levelezsi lista rengeteg olvasnivalt tartogat a jailekkel kapcsolatban. Mindig rdemes keresni ezekben az archvumokban, vagy bekldeni a krdsnket a freebsd-questions (http://lists.FreeBSD.org/mailman/listinfo/freebsd-questions) levelezsi listra.

15.2. A jail alrendszerhez kapcsold fogalmak


A fejezet tovbbi rszben a kvetkez fogalmakat fogjuk hasznlni, hogy a FreeBSD jailekhez tartoz egyes rszeit s azok bels mkdst, valamint kapcsolatukat a rendszer tbbi rszvel mg inkbb rthetv tegyk: chroot(8) (parancs) Egy segdprogram, amely a FreeBSD chroot(2) rendszerhvsn keresztl egy program s annak leszrmazottjainak futtatshoz megvltoztatja a rendszer gykrknyvtrt (change root). chroot(2) (krnyezet) A chroot mdban fut programok krnyezete. Olyan erforrsokat foglal magban, mint mondjuk az llomnyrendszer lthat rsze, az elrhet felhasznli s csoport azonostk, hlzati csatolk s egyb folyamatok kzti kommunikcis mechanizmusok stb. jail(8) (parancs) Az a rendszerkarbantart segdprogram, amely lehetv teszi program elindtst elzrt krnyezetben.

432

Fejezet 15. A jail alrendszer befogad (rendszer, program, felhasznl stb.) Az elzrt krnyezetet irnyt rendszer. A befogad rendszer hozz tud frni az sszes elrhet hardveres erforrshoz, kpes az elzrt krnyezeten kvl s bell fut programokat vezrelni. Az egyik legfontosabb klnbsg a befogad s az elzrt rendszer kztt, hogy azok a korltozsok, amelyek az elzrt krnyezetben rendszeradminisztrtori jogokkal fut programokra vonatkoznak, nem felttlenl rvnyesek a befogad rendszerben futakra. befogadott (rendszer, program, felhasznl stb.) Olyan program, felhasznl vagy ms egyb egyed, amely csak egy jailen keresztl, korltozottan tud hozzfrni az erforrsokhoz.

15.3. Bevezets
Mivel a rendszeradminisztrci egy nehz s zavarba ejt feladat, rengeteg komoly eszkz jtt ltre a rendszergazdk letnek megknnytsre. Ezek az eszkzk tbbnyire a rendszerek teleptst, belltst s karbantartst igyekeznek valamilyen mdon jobb tenni. A rendszergazdk egyik feladata gy gondoskodni a biztonsgrl, hogy kzben a rendszer kpes legyen elltni eredeti feladatt. A FreeBSD rendszerek biztonsgossgnak nvelst hivatott egyik ilyen eszkz a jails. Elszr a FreeBSD 4.X verzijban bukkant fel, de jelents fejldsen ment keresztl a FreeBSD 5.X verzikban, aminek ksznheten sokkal erteljesebb s rugalmasabb alrendszerr vlt. A fejlesztse termszetesen most is folytatdik tovbb, llandan fejldik a hasznlhatsga, teljestmnye, megbzhatsga s biztonsgossga.

15.3.1. Mi is az a jail?
A BSD-szer opercis rendszerekben mr a 4.2BSD ta megtallhat volt a chroot(2). A chroot(8) segdprogrammal meg tudjuk megvltoztatni adott programok szmra a gykrknyvtrat, s ezzel egy biztonsgos krnyezetet teremteni, tvol a rendszer tbbi rsztl. A chroot-tal kialaktott krnyezetben elindul programok nem tudnak hozzfrni a rajta kvl tallhat llomnyokhoz s erforrsokhoz. Ennek okn, ha egy ilyen krnyezetben fut szolgltatst megtmadnak, az nmagban mg nem teszi lehetv a tmad szmra, hogy elrhesse az egsz rendszert. A chroot(8) remekl hasznlhat olyan egyszerbb feladatok megoldsra, amelyek nem ignyelnek tlsgosan sok rugalmassgot vagy bonyolult s fejlett tmogatst. A chroot tletnek felmerlse ta azonban szmos kiskaput talltak mr az ltala ltrehozott krnyezetekben, s habr ezek mindegyikt javtottk a FreeBSD jabb vltozataiban, teljesen egyrtelmv vlt, hogy a chroot(2) nem biztost jrhat utat a szolgltatsok biztonsgoss ttelhez. Erre a feladatra egy j alrendszert kellett kipteni. Ez az egyik oka annak, amirt az jaileket kifejlesztettk. A jailek ltal kpviselt elzrs tlete tbb szempontbl is a hagyomnyos chroot(2) krnyezet elvn alapszik. Egy hagyomnyos chroot(2) krnyezetben fut programok korltozsa csupn abban merl ki, hogy az llomnyrendszer melyik rszt lthatjk. A rendszer tbbi erforrsa (mint mondjuk a felhasznlk, fut programok vagy a hlzati alrendszer) azonban tovbbra is megosztva marad a chroot krnyezetben s a befogad rendszerben fut programok kztt. A jailek ltal alkalmazott megolds kibvti ezt a modellt, s nem csak az llomnyrendszerre vonatkoz hozzfrst virtualizlja, hanem tbb ms dolog mellett kiterjeszti ezt a felhasznlkra s a FreeBSD hlzati alrendszerre is. Az elzrt krnyezetek belltsaihoz elrhet nomhangolsi lehetsgekrl bvebben a 15.5 Szakaszban esik sz. A jaileket az albb ngy elem rja le:

433

Fejezet 15. A jail alrendszer

A knyvtrszerkezet egy rszfja attl a rsztl indulva, ahonnan a jail kezddik. A jailen bell fut programok nem lphetnek ki ebbl a rszfbl. Az eredeti chroot(2) kialaktsban mereng biztonsgi hibk lehetsgei nem veszlyeztetik a tbbi FreeBSD jailt. A rendszer neve a nv, amelyet a jailen bell hasznlunk. Mivel a jaileket elssorban hlzati szolgltatsok kordban tartsra hasznljuk, a jailekhez tartoz beszdes rendszernevek sokat tudnak segteni a rendszergazdk munkjban. Egy IP-cm a jailhez tartozik s nem vltoztathat meg a mkdse sorn. Egy jail IP-cme ltalban egy mr ltez hlzati csatol msik cme, de ez nem szksgszeren igaz minden esetben. Egy parancs annak a programnak az elrsi tja, amelyet elzrtan kvnunk futtatni. Az elzrt krnyezet gykertl mrve relatvan adjuk meg, s az adott krnyezet tpustl fggen eltr lehet.

Ezektl eltekintve a jailek rendelkezhetnek sajt felhasznlkkal s lehetnek sajt root felhasznlik is. Termszetesen a root hatskre csak az elzrt krnyezetre korltozdik, s a befogad rendszer szemszgbl az elzrt root nem mindenhat. Radsul az elzrt root felhasznl nem hajthat vgre semmilyen kritikus mveletet a sajt jail(8) krnyezetn kvl. A root tovbbi kpessgeirl s korltozsairl lentiekben bvebben is emltst tesznk a 15.5 Szakaszban.

15.4. A jailek ltrehozsa s vezrlse


Egyes rendszergazdk a jaileket a kvetkez kt tpusba soroljk: teljes jail, mely egy valdi FreeBSD rendszerre emlkeztet, s a szolgltats jail, mely egyetlen, felteheten kiemelt jogokkal fut alkalmazs vagy szolgltats szmra van elksztve. Ez a besorols csupn fogalmi szint, a jail felptsnek mdjt nem befolysolja. A jail(8) man oldal rszletesen ismerteti a jailek ltrehozst:
# # # # # # # setenv D /itt/lesz/a/jail mkdir -p $D cd /usr/src make buildworld make installworld DESTDIR=$D make distribution DESTDIR=$D mount -t devfs devfs $D/dev

rdemes elszr a jail helyt megvlasztani. Itt fog zikailag helyet foglalni a befogad rendszer llomnyrendszern bell a jail. J vlaszts lehet erre a /usr/jail/jailnv , ahol a jailnv a jailt azonost rendszernv. A /usr/ llomnyrendszeren ltalban elegend hely jut a jail llomnyrendszernek, ami egy teljes jail esetn lnyegben a FreeBSD alaprendszer alaprtelmezett teleptsben megtallhat sszes llomny msolatt tartalmazza. Ha korbban mr a make world vagy a make buildworld parancs segtsgvel jrafordtottuk az alaprendszert, akkor ezt a lpst ki is hagyhatjuk s teleptsk az j alaprendszert kzvetlenl az j jailbe. Ez a parancs fogja felmsolni a jail zikai helynek vlasztott knyvtr-rszfba a mkdshez szksges programokat, fggvnyknyvtrakat, man oldalakat s gy tovbb. A make paramtereknt megadott distribution cl gondoskodik az sszes szksges kongurcis llomny felmsolsrl. Magyarn szlva, tmsolja az sszes telephet llomnyt a /usr/src/etc/ knyvtrbl a jail /etc alknyvtrba, vagyis a $D/etc/ knyvtrba.

434

Fejezet 15. A jail alrendszer A jaileken bell a devfs(8) csatlakoztatsa nem ktelez. Msrszt azonban majdnem mindegyik alkalmazs, a feladattl fggen, legalbb egy eszkzhz hozz akar frni. Nagyon fontos, hogy a keznkbe vegyk a eszkzk hozzfrsnek irnytst a jaileken bell, mivel a helytelen belltsok rvn a tmadk csnya dolgokat tudnak majd mvelni. A devfs(8) mkdst a devfs(8) s devfs.conf(5) man oldalakon is ismertetett szablyrendszerek irnytjk.

Ahogy a jailt teleptettk, a jail(8) segdprogrammal tudjuk elindtani. A jail(8) ngy ktelez paramtert vr, melyekre a 15.3.1 Szakaszban ki is trnk. Ms paramtereket is megadhatunk, pldul azt, hogy az elzrt program egy adott felhasznl jogaival fusson. A command paramter hasznlata a jail tpustl fgg: egy virtulis rendszer esetben a /etc/rc j vlasztsnak bizonyulhat, mivel ennek segtsgvel egy valdi FreeBSD rendszerindtsi folyamatt jtszhatjuk le. Amennyiben elzrt szolgltatsrl van szl, az adott szolgltatstl vagy alkalmazstl fgg. A jaileket gyakran mr a rendszerindts sorn elindtjk, amit a FreeBSD rc mechanizmusa nagyban meg is knnyt. 1. A rendszer indtsa sorn aktivland jailek listjt vegyk hozz a rc.conf(5) llomnyhoz:
jail_enable="YES" jail_list="www " # Ide NO-t rjunk, ha ki akarjuk kapcsolni # Szkzzel elvlasztva soroljuk fel a jaileket

2.

A jail_list-ben szerepl sszes jailt meg kell adnunk az ezeket ler rc.conf(5)-beli belltsokat:
jail_www _rootdir="/usr/jail/www" # a jail gykrknyvtra jail_www _hostname="www .example.org" # a jail neve jail_www _ip="192.168.0.10" # a jail IP-cme jail_www _devfs_enable="YES" # legyen-e devfs a jailen bell jail_www _devfs_ruleset="www_ruleset" # az alkalmazott devfs szablyrendszer

Az rc.conf(5) llomnyban szerepl jailek esetn a /etc/rc szkript fut le, teht felttelezi, hogy az gy megadott jail egy teljes virtulis rendszer. A szolgltatsok jailbe foglalshoz meg kell vltoztatnunk a jail alaprtelmezett parancst is. Ezt a jail_jailnv _exec_start opci megfelel belltsval tudjuk megtenni.
Megjegyzs: Az sszes itt elrhet opcit a rc.conf(5) man oldalon tallhatjuk meg.

Ha lteznek a megfelel bejegyzsek az rc.conf llomnyban, akkor az /etc/rc.d/jail szkript is hasznlhat arra, hogy a jaileket kzzel indtsuk el vagy lltsuk le:
# /etc/rc.d/jail start www # /etc/rc.d/jail stop www

A jail(8) lelltsra jelen pillanatban mg nem rhet el szablyos mdszer. Ez azrt van, mert a szablyos rendszerlelltst elvgz parancsok nem hasznlhatak a jailen bell. Emiatt a jaileket a legtisztbban gy tudjuk lelltani, ha kiadjuk az albbi parancsot magban a jailben vagy pedig a jexec(8) segdprogrammal a jailen kvlrl:
# sh /etc/rc.shutdown

Errl a tmrl tbbet a jail(8) man oldalon olvashatunk.

435

Fejezet 15. A jail alrendszer

15.5. Finomhangols s karbantarts


Szmos opci llthat be a jaileknl, s sokfle mdon vegythetjk a befogad FreeBSD rendszernket a jailekkel, ami ltal magasabb szint alkalmazsokat hozhatunk ltre. Ebben a rszben bemutatunk:

Nhny olyan belltst, amellyel nomhangolhatjuk a teleptett jailek ltal megvalstott biztonsgi megszortsok viselkedst. A jailek kezelsre alkalmas nhny olyan magasabb szint alkalmazst, amelyek elrhetek a FreeBSD Portgyjtemnyn keresztl, s ltalnos jail alap megoldsok kialaktshoz hasznlhatak.

15.5.1. A FreeBSD-ben tallhat nomhangol eszkzk


A jailek belltsainak nomhangolst tlnyomrszt sysctl(8) vltozkkal vgezhetjk el. A sysctl-en bell egy specilis rszfban tallhatunk erre alkalmas belltsokat: ez a a FreeBSD rendszermag opcii kztt megtallhat security.jail.*. Itt kzljk a jailekre vonatkoz fontosabb sysctl vltozk listjt, az alaprtelmezett rtkeikkel egytt. A nevek minden bizonnyal sokat elrulnak, de ha tbbet szeretnnk tudni rluk, lapozzuk fel a jail(8) s sysctl(8) man oldalakat.
security.jail.set_hostname_allowed: 1 security.jail.socket_unixiproute_only: 1 security.jail.sysvipc_allowed: 0 security.jail.enforce_statfs: 2 security.jail.allow_raw_sockets: 0 security.jail.chflags_allowed: 0 security.jail.jailed: 0

Ezekkel a vltozkkal a befogad rendszer rendszergazdja tud hozztenni vagy elvenni a root felhasznl alaprtelmezett hatraihoz. Vegyk azonban szre, hogy egyes korltozsok azonban semmikppen sem szntethetek meg. A root nem csatlakoztathat s vlaszthat le llomnyrendszereket a jail(8) krnyezetben. Az elzrt root nem tlthet be s trlhet devfs(8) szablyrendszereket, tzfal szablyokat sem, ill. nem vgezhet semmilyen olyan brmilyen ms karbantartsi feladatot, amely a rendszermag adataiban mdostst vonna maga utn, pldul nem llthatja a rendszermag securelevel (biztonsgi szintjnek) rtkt. A FreeBSD alaprendszere tartalmazza azokat a segdeszkzket, amelyekkel a rendszerben aktv jailek informcit tudjuk megjelenteni, vagy csatlakozni tudunk hozzjuk. A jls(8) s jexec(8) parancsok rszei az alap FreeBSD rendszernek, segtsgkkel elvgezhetek az albbi egyszer feladatokat:

Ki tudjuk ratni az aktv jailek s hozzjuk tartoz azonostkat (JID-eket), IP-cmeket, neveket s tvonalakat. A befogad rendszerbl hozz tudunk csatlakozni egy fut jailhez, s parancsokat tudunk futtatni a jailen bell vagy karbantartsi feladatokat tudunk elvgezni magn a jailen bell. Ez klnsen hasznosnak bizonyulhat, amikor a root felhasznl szablyosan le akarja lltani a jailt. A jexec(8) segdprogrammal el tudunk indtani egy parancsrtelmezt a jailen bell, amibl aztn irnythatjuk. Plda:
# jexec 1 tcsh

436

Fejezet 15. A jail alrendszer

15.5.2. Magasszint karbantart eszkzk a FreeBSD Portgyjtemnyben


A sok kls karbantart eszkz kzl az egyik legteljesebb s leghasznosabb a sysutils/jailutils. Sok kisebb alkalmazst tartalmaz, melyek kibvtik a jail(8) irnythatsgt. Bvebb informcikrt krjk, ltogassa meg a hozztartoz honlapot.

15.6. A jailek alkalmazsa


15.6.1. Szolgltatsok jailbe foglalsa
rta: Daniel Gerzo. Ez a rsz eredetileg Simon L. Nielsen <simon@FreeBSD.org> http://simon.nitro.dk/service-jails.html oldalon tallhat rsn, valamint Ken Tom (<locals@gmail.com>) tdolgozott cikkn alapul. Itt megismerhetjk, hogyan lltsunk be a FreeBSD rendszernkben egy biztonsgi rteget a jail(8) felhasznlsval. Tovbb felttelezzk, hogy ez a rendszer legalbb RELENG_6_0 verzij s a fejezetben korbban trgyaltakat az olvas teljes mrtkben megrtette.

15.6.1.1. A kialakts
A jailek egyik legnagyobb gondja a frissts folyamatnak lebonyoltsa. Azrt jelent ez egyre inkbb gondot, mert minden egyes jailt jra fel kell ptennk a frisstse sorn. Ez tbbnyire nem okoz gondot egyetlen jail hasznlata sorn, mivel maga a frisstsi folyamat meglehetsen egyszer, azonban igen idignyess s frasztv tud vlni tbb jail esetben.
FigyelemEz a plda a FreeBSD kpessgeinek halad szint ismerett kveteli meg. Amennyiben az itt bemutatott lpesek tlsgosan is bonyolultnak tnnnek, rdemes olyan egyszerbb rendszerek utn nzni, mint mondjuk a sysutils/ezjail, amely egy egyszerbb mdszert knl fel a FreeBSD-ben hasznlt jailek karbantartsra, s nem is annyira bonyolult, mint ez a plda.

A bemutatand plda clja, hogy feloldja az ilyen jelleg problmkat, s ezrt igyekszik a jailek kztt mindent megosztani, ami csak lehetsges. Mindezt biztonsgosan ri el rsvdett mount_nullfs(8) llomnyrendszer hasznlatval, aminek ksznheten a frissts maga egyszerbb, az egyes szolgltatsok klnzrsa pedig vonzbb vlik. Radsul egyttal egy nagyon egyszer mdszert mutat az j jailek hozzadsra s a rgi trlsre ugyangy, mint a frisstskre.
Megjegyzs: Pldul ilyen szolgltatsokat kvnunk szablyozni: egy HTTP szervert, egy DNS szervert, egy SMTP szervert s gy tovbb.

Az itt szerepl bellts cljai:

437

Fejezet 15. A jail alrendszer

Ksztsnk egy egyszeren s knnyen tlthat jailkezelsi rendszert. Ebbl teht kvetkezik, hogy ne kelljen lefuttatni a teljes rendszer teleptst minden egyes jailre. Knnytsk meg az j jailek hozzadst s a rgiek eltvoltst. Knnytsk meg a mr ltez jailek frisstst s cserjt. Tegyk lehetv sajt FreeBSD gak futtatst. Legynk klnsen krltekintek a biztonsg tekintetben, s igyekezznk minl jobban cskkenteni veszly kockzatt. Takarkoskodjunk a trhellyel s az llomnyrendszerrel, amennyire csak lehet.

Ahogy azt mr korbban is emltettk, ez a kialakts nagyban ptkezik egyetlen f sablonra, amely rsvdetten kerl csatlakoztatsra (nullfsen keresztl) az egyes jailekben, valamint jailenknt egy-egy rhat-olvashat eszkzre. Ez az eszkz lehet egy kln zikai lemez, egy partci vagy egy vnode alap md(4) eszkz. Ebben a pldban rhat-olvashat nullfs csatlakozsokat hasznlunk. Az llomnyrendszer kiosztsa a most kvetkez listban szerepel:

Minden jailt a /home/j knyvtrban csatlakoztatunk. A /home/j/mroot lesz az sszes jail sablonja s mindegyikk szmra rsvdett. Minden jailnek ltrehozunk egy res alknyvtrat a /home/j knyvtrban. Minden jailnek lesz egy /s alknyvtra, amelyet a rendszer rhat-olvashat rszre irnytunk. Minden jailnek lesz egy sajt rhat-olvashat rsze, amely a /home/j/skel knyvtron alapszik. Mindegyik elzrt terlet (a jailek rhat-olvashat rsze) a /home/js knyvtrban jn ltre.
Megjegyzs: Ez a kioszts felttelezi, hogy a jaileket a /home partcin hozzuk ltre. Ez termszetesen brmi msra megvltoztathat, de akkor gyelnnk kell erre minden egyes parancs kiadsa eltt.

15.6.1.2. A sablon ltrehozsa


Ez a rsz lerja a f sablon ltrehozshoz szksges lpseket. Ez a jailek szmra rsvdett lesz. rdemes mindig frissteni a FreeBSD rendszernket a legjabb -RELEASE gra. Ehhez olvassuk el az ide tartoz fejezetet (http://www.FreeBSD.org/doc/hu_HU.ISO8859-2/books/handbook/makeworld.html) a kziknyvbl. Abban az esetben, ha a frissts nem lenne megoldhat, egy make buildworld parancsot mindenkppen le kell tudnunk futtatni. Ezenfell a sysutils/cpdup csomagra is szksgnk van. Hasznlni fogjuk a portsnap(8) segdprogramot is a FreeBSD Portgyjtemny letltshez. Akik nem ismernk, a kziknyv errl szl fejezetben (http://www.FreeBSD.org/doc/hu_HU.ISO8859-2/books/handbook/portsnap.html) olvashatnak rla. 1. Elszr is, ksztsk el az rsvdett llomnyrendszer knyvtrszerkezett, amely majd tartalmazni fogja a jailek ltal hasznlt FreeBSD-s programokat. Ezutn lpjnk be a FreeBSD forrsfjnak knyvtrba s teleptsk fel az rsvdett llomnyrendszert a sablonba:
# mkdir /home/j /home/j/mroot # cd /usr/src

438

Fejezet 15. A jail alrendszer


# make installworld DESTDIR=/home/j/mroot

2.

Ezt kveten ksztsk el a jailek szmra a FreeBSD Portgyjtemnyt s FreeBSD forrsft, melyek kellenek a mergemaster hasznlathoz:
# # # # cd /home/j/mroot mkdir usr/ports portsnap -p /home/j/mroot/usr/ports fetch extract cpdup /usr/src /home/j/mroot/usr/src

3.

Hozzuk ltre a rendszer rsvdett rsznek vzt:


# # # # # # mkdir /home/j/skel /home/j/skel/home /home/j/skel/usr-X11R6 /home/j/skel/distfiles mv etc /home/j/skel mv usr/local /home/j/skel/usr-local mv tmp /home/j/skel mv var /home/j/skel mv root /home/j/skel

4.

Hasznljuk a mergemastert a hinyz kongurcis llomnyok teleptsre. Szabaduljunk meg a mergemaster ltal ksztett felesleges knyvtraktl:
# mergemaster -t /home/j/skel/var/tmp/temproot -D /home/j/skel -i # cd /home/j/skel # rm -R bin boot lib libexec mnt proc rescue sbin sys usr dev

5.

Most pedig szimbolikusan linkeljk az rhat-olvashat llomnyrendszert az rsvdett llomnyrendszerre. Ellenrizzk, hogy a szimbolikus linkek a megfelel s/ knyvtrakban jttek ltre. Vals vagy rossz helyen ltrehozott knyvtrak hasznlata esetn a telepts nem fog sikerlni.
# # # # # # # # # # cd /home/j/mroot mkdir s ln -s s/etc etc ln -s s/home home ln -s s/root root ln -s ../s/usr-local usr/local ln -s ../s/usr-X11R6 usr/X11R6 ln -s ../../s/distfiles usr/ports/distfiles ln -s s/tmp tmp ln -s s/var var

6.

Utols lpsknt hozzunk ltre egy /home/j/skel/etc/make.conf llomnyt az albbi tartalommal:


WRKDIRPREFIX?= /s/portbuild

A WRKDIRPREFIX belltsval lehetv vlik a FreeBSD portok jaileken belli fordtsa. Ne felejtsk el, hogy a portokat tartalmaz knyvtr az rsvdett rendszer rsze! Az tlltott WRKDIRPREFIX azonban megengedi, hogy a fordtsok az egyes jailek rhat-olvashat rszeiben trtnjenek.

15.6.1.3. A jailek ltrehozsa


Most, miutn teljesen elkszlt a FreeBSD jailek sablonja, be is tudjuk lltani s hozz is tudjuk venni ezeket az /etc/rc.conf llomnyhoz. Ebben a pldban 3 jail ltrehozst lthatjuk: NS, MAIL s WWW. 1. rjuk bele a kvetkez sorokat az /etc/fstab llomnyba, aminek ksznheten az egyes jailek szmra elrhetv vlik az rsvdett sablon s a hozzjuk tartoz rhat-olvashat terletek:

439

Fejezet 15. A jail alrendszer


/home/j/mroot /home/j/mroot /home/j/mroot /home/js/ns /home/js/mail /home/js/www /home/j/ns /home/j/mail /home/j/www /home/j/ns/s /home/j/mail/s /home/j/www/s nullfs nullfs nullfs nullfs nullfs nullfs ro ro ro rw rw rw 0 0 0 0 0 0 0 0 0 0 0 0

Megjegyzs: Az els helyen nullval jellt partcikat a fsck(8) nem fogja ellenrizni a rendszer indulsa sorn, a msodik helyen nullval jellt partcikat pedig nem fogja menteni a dump(8). Mi egyltaln nem akarjuk, hogy az fsck ellenrizze vagy a dump lementse a jailjeinkhez tartoz rsvdett nullfs-partciinkat. Ezrt szerepel vgig 0 0 a fentebb szerepl fstab-bejegyzsek utols kt oszlopban.

2.

lltsuk be a jaileket az /etc/rc.conf-ban:


jail_enable="YES" jail_set_hostname_allow="NO" jail_list="ns mail www" jail_ns_hostname="ns.example.org" jail_ns_ip="192.168.3.17" jail_ns_rootdir="/usr/home/j/ns" jail_ns_devfs_enable="YES" jail_mail_hostname="mail.example.org" jail_mail_ip="192.168.3.18" jail_mail_rootdir="/usr/home/j/mail" jail_mail_devfs_enable="YES" jail_www_hostname="www.example.org" jail_www_ip="62.123.43.14" jail_www_rootdir="/usr/home/j/www" jail_www_devfs_enable="YES" FigyelemAzrt lltottuk a jail_nv _rootdir vltoz rtkt a /usr/home knyvtrra a /home knyvtr helyett, mert a FreeBSD alapteleptsben a /home knyvtr zikailag a /usr/home knyvtrral egyezik meg. A jail_nv _rootdir vltoz rtkeknt megadott knyvtr nem tartalmazhat szimbolikus linket, msklnben a jailek nem lesznek hajlandak ltrejnni. Ennek megllaptsban a realpath(1) segdprogram lehet segtsgnkre. A korltozs rszleteirl a FreeBSD-SA-07:01.jail biztonsgi gyelmeztetsben olvashatunk.

3.

Hozzuk ltre az egyes jailek rsvdett llomnyrendszereihez szksges csatlakozsi pontokat:


# mkdir /home/j/ns /home/j/mail /home/j/www

4.

Teleptsk az rhat-olvashat sablont az egyes jailekbe. Figyeljk meg a sysutils/cpdup hasznlatt, amellyel az egyes knyvtrak pontos msolatait hozhatjuk ltre:
# # # # mkdir cpdup cpdup cpdup /home/js /home/j/skel /home/js/ns /home/j/skel /home/js/mail /home/j/skel /home/js/www

5.

Ebben a fzisban a jailek mr elkszltek s kszen llnak a futsra. Elszr csatlakoztassuk az egyes jailekhez szksges llomnyrendszereket, majd indtsuk el ezeket a /etc/rc.d/jail szkripttel:

440

Fejezet 15. A jail alrendszer


# mount -a # /etc/rc.d/jail start

A jailek most mr futnak. Az elindulsuk ellenrzshez hasznljuk a jls(8) parancsot. Valami ilyesmit lthatunk a kiadsa utn:
# jls

JID 3 2 1

IP Address 192.168.3.17 192.168.3.18 62.123.43.14

Hostname ns.example.org mail.example.org www.example.org

Path /home/j/ns /home/j/mail /home/j/www

Itt mr be tudunk jelentkezni az egyes jailekbe, j felhasznlkat tudunk kszteni vagy dmonokat tudunk belltani. A JID oszlop mutatja az egyes jailek azonostsi szmt. A 3-as JID szm jailben az albbi parancs hasznlatval karbantartsi feladatokat elvgezni:
# jexec 3 tcsh

15.6.1.4. Frissts
Idrl idre addhat, hogy frisstennk kell a rendszert a FreeBSD egy jabb vltozatra, vagy egy biztonsgi hiba javtsa miatt, vagy pedig a mr meglev jailek szmra hasznos jtsok bevezetse miatt. Ez a kialakts megknnyti a korbban ltrehozott jailjeink frisstst. Tovbb igyekszik minimalizlni a kiessket is, mivel a jaileket csak a legutols pillanatban fogjuk lelltani. St, mg az is lehetv vlik, hogy visszalltsuk a korbbi verzit, ha vletlenl valami rosszul slne el menetkzben. 1. Els lpseknt frisstsk magt a befogad rendszert a megszokott mdon. Ezutn hozzunk ltre egy j rsvdett sablont a /home/j/mroot2 knyvtrban.
# # # # # # mkdir /home/j/mroot2 cd /usr/src make installworld DESTDIR=/home/j/mroot2 cd /home/j/mroot2 cpdup /usr/src usr/src mkdir s

A installworld lefuttatsa ltrehoz nhny felesleges knyvtrat, melyeket takartsunk is el:


# chflags -R 0 var # rm -R etc var root usr/local tmp

2.

Hozzuk jra ltre az rhat-olvashat szimbolikus linkjeinket a f llomnyrendszerre:


# # # # # # # ln ln ln ln ln ln ln -s -s -s -s -s -s -s s/etc etc s/root root s/home home ../s/usr-local usr/local ../s/usr-X11R6 usr/X11R6 s/tmp tmp s/var var

3.

Most rkezett el az id, hogy lelltsuk a jaileket:


# /etc/rc.d/jail stop

441

Fejezet 15. A jail alrendszer 4. Vlasszuk le az eredeti llomnyrendszereket:


# # # # # # umount umount umount umount umount umount /home/j/ns/s /home/j/ns /home/j/mail/s /home/j/mail /home/j/www/s /home/j/www

Megjegyzs: Az rhat-olvashat llomnyrendszerek hozz vannak kapcsolva az rsvdett llomnyrendszerhez (/s), ezrt azokat elszr le kell vlasztani.

5.

Mozgassuk el az tbl a rgi rsvdett llomnyrendszernket s vltsuk fel az jjal. gy biztonsgi mentsknt s a rgi rsvdett rendszer archvumaknt tovbbra is rendelkezsre ll, ha valami baj trtnne. Az itt hasznlt elnevezs az jonnan ltrehozott rsvdett llomnyrendszer dtumbl ered. Mozgassuk t az eredeti FreeBSD Portgyjtemnyt az j llomnyrendszerre, hogy megtakartsunk nmi trhelyet s llomnylert:
# # # # cd mv mv mv /home/j mroot mroot.20060601 mroot2 mroot mroot.20060601/usr/ports mroot/usr

6.

Most mr kszen ll az j rsvdett sablon, gy mr csak az llomnyrendszerek jracsatlakoztatsa s a jailek jraindtsa maradt:
# mount -a # /etc/rc.d/jail start

A jls(8) hasznlatval ellenrizzk, hogy a jailek rendesen elindultak. Ne felejtsk el jailenknt lefuttatni a mergemastert sem. A kongurcis llomnyokat s az rc.d szkripteket is frisstennk kell majd.

442

Fejezet 16. Ktelez hozzfrs-vezrls (MAC)


rta: Tom Rhodes.

16.1. ttekints
A FreeBSD 5.X vltozata j biztonsgi bvtseket vett t a TrustedBSD projektbl a POSIX.1e nyomn. A kt legjelentsebb j biztonsgi mechanizmus az llomnyrendszerekben megtallhat hozzfrs-vezrlsi listk (Access Control List, ACL) s a ktelez hozzfrs-vezrls (Mandatory Access Control, MAC). A ktelez hozzfrs-vezrls segtsgvel olyan j hozzfrs-vezrlsi modulok tlthetek be, amelyek j biztonsgi hzirendeket implementlnak. Nmelyek kzlk vdelmet nyjtanak a rendszer egy szk rsznek, amivel gy egy adott szolgltatst bstyznak al. Msok minden rszletre kiterjed cmkzett biztonsgot szolgltatnak alanyokon s objektumokon keresztl. A meghatrozs ktelez rsze onnan fakad, hogy a szablyok betartatst a rendszergazdk s a rendszer vgzik, s nem bzzk a felhasznlkra, ahogy azt a System V tpus rendszerekben a szabvnyos llomnyokra s IPC-re rvnyes engedlyeken keresztl a tetszs szerinti hozzfrs-vezrls (Discretionary Access Control, DAC) teszi. Ebben a fejezetben a ktelez hozzfrs-vezrlst vez keretrendszerre (MAC Framework) s a klnbz biztonsgi hzirendeket megvalst, beilleszthet modulokra fogunk sszpontostani. A fejezet elolvassa sorn megismerjk:

hogy a FreeBSD jelen pillanatban milyen modulokat tartalmaz a MAC rendszeren bell s milyen mechanizmusok tartoznak hozzjuk; hogy a MAC biztonsgi hzirendjeit kpez modulok miket valstanak meg, valamint mi a klnbsg a cmkzett s cmkzetlen hzirendek kztt; hogyan kell hatkonyan belltani s hasznlni rendszernkben a MAC rendszert; hogyan lltsuk be a MAC rendszerben tallhat klnfle biztonsgi hzirendeket kpez modulokat; hogyan hozzunk ltre a MAC rendszer segtsgvel egy biztonsgosabb krnyezetet, amire pldkat is mutatunk; hogyan teszteljk le a MAC rendszer belltsait s bizonyosodjunk meg mkdsnek helyessgrl.

A fejezet elolvasshoz ajnlott:


a UNIX s a FreeBSD alapjainak ismerete (3 fejezet) a rendszermag belltsnak s lefordtsnak ismerete (8 fejezet) tisztban lenni az alapvet biztonsgi krdsekkel s azok hatsval a FreeBSD-n bell (14 fejezet)
FigyelemAz itt ismertetsre kerl informcik helytelen alkalmazsa a rendszer hozzfrhetsgnek teljes elvesztst, a felhasznlk bosszantst vagy az X11 ltal felknlt lehetsgek kirekesztst eredmnyezheti. Ami viszont ennl is fontosabb, hogy a MAC rendszerre nem gy kell tekinteni, mint amitl a rendszernk tkletesen biztonsgoss vlik. A MAC segtsgvel csupn a meglev biztonsgi hzirendeket gyaraptjuk. A szilrd biztonsgi rutin s a rendszeres ellenrzsek elvgzse nlkl a rendszernk valjban sosem lesz teljesen biztonsgos. Hozz kell tennnk, hogy a fejezetben bemutatott pldk tnyleg csak pldk. Senkinek sem tancsoljuk, hogy az itt emltett belltsokat egy les rendszerre is kiterjessze. A klnbz biztonsgi modulok felptse

443

Fejezet 16. Ktelez hozzfrs-vezrls (MAC)


rengeteg gondolkodst s prblgatst ignyel. Aki nem rti meg az egsz mkdst, knnyen azon kaphatja magt, hogy jra vgig kell mennie a rendszeren s egyenknt be kell lltania minden knyvtrat s llomnyt.

16.1.1. Amivel itt nem foglalkozunk


Ebben a fejezetben a MAC rendszerrel kapcsolatban rengeteg biztonsgi krdssel foglalkozni fogunk. Az j MAC biztonsgi modulok kifejlesztst azonban mr nem rintjk. Szmos olyan biztonsgi modul tallhat a MAC rendszerben, amelyek rendelkeznek az j modulok kialaktshoz s tesztelshez szksges jellemzkkel. Ilyenek tbbek kzt a mac_test(4), mac_stub(4) s a mac_none(4). Ezekrl a biztonsgi modulokrl s az ltaluk szolgltatott mechnanizmusokrl a man oldalaik tudnak bvebb tjkoztatst adni.

16.2. A fejezet fontosabb fogalmai


A fejezet tartalmnak kifejtshez szksgnk lesz nhny fontosabb alapfogalom tisztzsra. Segtsgkkel vlheten sikerl eloszlatni a tma feldolgozsa sorn felmerl flrertseket, illetve elkerlni az j fogalmak s informcik vratlan felbukkanst.

alany: Alanynak tekintnk a rendszerben minden olyan aktv egyedet, amely informcit ramoltat az objektumok, teht a felhasznlk, a processzorok, a rendszerben fut programok stb. kztt. A FreeBSD-ben majdnem minden esetben a felhasznlk egy szlon keresztl vezrlik a fut programokat. cmke: A cmke egy olyan biztonsgi tulajdonsg, ami vonatkozhat llomnyokra, knyvtrakra vagy a rendszer ms elemeire. Egy cmke tekinthet a bizalmassgot jelz pecstnek is: ha egy llomnyra cmkt tesznk, akkor benne megadjuk a r vonatkoz biztonsgi jellemzket, s csak a hozz hasonl biztonsgi belltsokkal rendelkez llomnyok, felhasznlk, erforrsok stb. rhetik el. A cmkk jelentst s rtelmezst a hzirendek belltsa hatrozza meg: mg egyes hzirendek a cmkket egy objektum srtetlensgnek vagy titkossgnak tekintik, addig msok a hozzfrssel kapcsolatos szablyokat rgztik bennk. egycmks: Egycmks esetrl akkor beszlnk, amikor az adat ramlsnak szablyozsra az egsz llomnyrendszer egyetlen cmkt alkalmaz. Ha ezt belltjuk egy llomnyrendszernl, de nem adjuk meg vele egytt a multilabel opcit, akkor az sszes llomnyra ugyanaz a cmke rvnyes. ers vzjel: Az ers vzjel hzirendje szerint a biztonsgi szint akkor nvelhet, ha magasabb szint informcikhoz akarunk hozzjutni. A legtbb esetben a folyamatok befejezdse utn visszalltdik az eredeti szint. A FreeBSD MAC rendszere pillanatnyilag ehhez nem tartalmaz hzirendet, de a teljessg kedvrt megadtuk ennek a dencijt is. gyenge vzjel: A gyenge vzjel hzirendje szerint a biztonsgi szint cskkenthet az alacsonyabb szint informcik elrse rdekben. A legtbb esetben a folyamatok befejezdse utn visszalltdik az eredeti szint. A FreeBSD-ben ezt a hzirendet egyedl a mac_lomac(4) alkalmazza. hzirend: Szablyok olyan gyjtemnye, amely megadja, hogy miknt kell a clokat teljesteni. Egy hzirend ltalban az egyes elemek kezelst rgzti. Ebben a fejezetben a hzirend kifejezs alatt a biztonsgi hzirendet rtjk, teht olyan szablyok gyjtemnyt, amelyek az adatok s az informci ramlst hatrozzk meg, tovbb megadjk, hogy kzlk ki mihez frhet hozz.

444

Fejezet 16. Ktelez hozzfrs-vezrls (MAC)

knyessg: ltalban az MLS trgyalsakor kerl el. Az knyessg szintjvel az adatok fontossgt vagy titkossgt szoktk jellni. A knyessgi szint nvekedsvel nvekszik az adat titkossgnak vagy bizalmassgnak szintje. objektum: Objektum vagy rendszerobjektum minden olyan egyed, amelyen informci folyik keresztl az alanyok irnytsval. Ezek lehetnek tbbek kzt knyvtrak, llomnyok, mezk, kpernyk, billentyzetek, a memria, mgneses troleszkzk, nyomtatk vagy brmilyen ms adattrol/hordoz eszkz. Az objektumok alapveten adattrolk vagy a rendszer erforrsai. Egy objektum elrsn gyakorlatilag az adatok elrst rtjk. rekesz: Egy rekeszbe soroljuk az elrekeszteni vagy elklnteni kvnt programok s adatok sszesgt, ahol a felhasznlk explicit mdon kpesek hozzfrni a rendszer bizonyos komponenseihez. Emellett a rekesz utalhat egy tetszleges csoportostsra is, pldul munkacsoportra, osztlyra, projektre vagy tmra. A rekeszek hasznlata elengedhetetlen a biztonsgi hzirendek kialaktshoz. srtetlensg: A srtetlensg, mint kulcsfogalom, az adatok megbzhatsgnak szintje. Minl srtetlenebb az adat, annl inkbb tekinthetjk megbzhatnak. szint: Egy biztonsgi tulajdonsg megnvelt vagy lecskkentett belltsa. A szint nvekedsvel egytt a biztonsg mrtke is nvekszik. tbbcmks: A multilabel vagyis tbbcmks jellemz az llomnyrendszerek esetn fordulhat el, s a tunefs(8) segdprogrammal llthat be egyfelhasznls mdban vagy a rendszer indtsa sorn az fstab(5) llomnyon keresztl, esetleg egy j llomnyrendszer ltrehozsakor. Ezzel a belltssal a rendszergazda klnfle MAC cmkket rendelhet klnbz objektumokhoz. Ez a bellts termszetesen csak olyan biztonsgi modulok esetn l, amelyek tudnak cmkzni.

16.3. A MAC ismertetse


Az imnt denilt j fogalmak tkrben most nzzk meg, hogy a MAC rendszer alkalmazsval miknt javthatunk rendszernk biztonsgn. A MAC rendszerhez ksztett klnbz biztonsgi modulok alkalmasak a hlzat s az llomnyrendszerek vdelmre, valamint segtsgkkel megakadlyozhatjuk, hogy a felhasznlk elrhessenek bizonyos portokat s socketeket stb. A hzirendeket formz modulokat taln egyttesen tudjuk a leghatkonyabban alkalmazni, s ha egyszerre tbb modul betltsvel egy tbbrteg vdelmi rendszert alaktunk ki. Ez nem ugyanaz, mint a rendszer megerstse, ahol a rendszer sszetevit jellemz mdon csak bizonyos clok tekintetben edzzk meg. A mdszer egyedli htulti a tbbszrs llomnyrendszeri cmkkkel, a felhasznlnknt belltand hlzati elrssel stb. jr adminisztrcis kltsgek. Ezek a htrnyok azonban eltrplnek a ltrehozott rendszer tartssgval szemben. Pldul, ha kpesek vagyunk megmondani, hogy az adott kongurciban milyen hzirendek alkalmazsra van szksg, akkor ezzel az adminisztrcis kltsgek visszaszorthatak. A szksgtelen hzirendek eltvoltsval mg nvelhetjk is a rendszer sszteljestmnyt, valamint az gy felknlt rugalmassgot. Egy j kialaktsban gyelembe kell venni az sszes biztonsgi elrst, s hatkonyan megvalstani ezeket a rendszer ltal felajnlott klnfle biztonsgi modulokkal. Ezrt teht a MAC lehetsgeit kihasznl rendszerekben legalbb annyit meg kell tudni oldani, hogy a felhasznlk ne vltoztathassk kedvkre a biztonsgi tulajdonsgokat. Az sszes felhasznli segdprogramnak, programnak s szkriptnek a kivlasztott biztonsgi modulokban szerepl hozzfrsi szablyokkal kifesztett kereten bell kell mozognia. A MAC totlis irnytsa pedig a rendszergazda kezben van. A rendszergazda gy egyedl csak a megfelel biztonsgi modulok gondos sszevlogatsrt felels. Bizonyos krnyezetekben szksges lehet a hlzaton keresztli hozzfrsek korltozsa is. Ilyen esetekben a

445

Fejezet 16. Ktelez hozzfrs-vezrls (MAC) mac_portacl(4), mac_ifoff(4) vagy a mac_biba(4) moduloktl rdemes elindulnunk. Ms esetekben az llomnyrendszerek objektumainak bizalmassgt kell csupn megriznnk. Erre a clra a mac_bsdextended(4) s mac_mls(4) modulok a legalkalmasabbak. A hzirendekhez kapcsold dntsek a hlzati belltsok alapjn is meghozhatak. Elkpzelhet, hogy csak bizonyos felhasznlk frhetnek hozz az ssh(1) szolgltatsain keresztl a hlzathoz vagy az internethez. A mac_portacl(4) pontosan ilyen helyzetekben tud a segtsgnkre sietni. Mit tegynk viszont az llomnyrendszerek esetn? Vgjunk el adott felhasznlkat vagy csoportokat bizonyos knyvtraktl? Vagy korltozzuk a felhasznlk vagy segdprogramok hozzfrst adott llomnyokhoz bizonyos objektumok bizalmass ttelvel? Az llomnyrendszerek esetben az objektumokat nhny felhasznl elrheti, msok pedig nem. Pldul egy nagyobb fejlesztcsapat kisebb csoportokra bonthat. Az A projektben rsztvev fejlesztk nem frhetnek hozz a B projektben dolgoz fejlesztk munkjhoz. Ellenben szksgk lehet a C projekten munklkod fejlesztk ltal ltrehozott objektumokra. Ez egy igen rdekes helyzet. A MAC rendszer ltal felknlt klnbz biztonsgi modulokra ptkezve azonban knnyedn csoportokba tudjuk szervezni a felhasznlkat, s a megfelel terletekhez az informci kiszivrgsa nlkl hozz tudjuk ket engedni. Ennek kvetkeztben minden egyes biztonsgi modul a maga mdjn gondoskodik az egsz rendszer biztonsgrl. A cljainknak megfelel modulokat egy jl tgondolt biztonsgi hzirend alapjn vlasszuk ki. Sok esetben az egsz hzirendet t kell tekinteni s jra kell alkalmazni a rendszerben. A MAC ltal felajnlott klnbz biztonsgi modulok megrtse segt a rendszergazdknak megvlasztani az adott helyzetben legjobban alkalmazhat hzirendeket. A FreeBSD rendszermagja alapbl nem tartalmazza a MAC rendszert. Ezrt a fejezetben szerepl pldk vagy az itt lertak kiprblshoz az albbi belltst kell hozztennnk a rendszermag belltsait tartalmaz llomnyhoz:
options MAC

Majd fordtsuk s teleptsk jra a rendszermagot.


FigyelemMikzben a MAC rendszerhez kszlt klnbz modulok a sajt man oldalaik szerint ignylik a beptsket, vigyzzunk velk, mert ezzel a rendszerket pillanatok alatt ki tudjuk zrni a hlzatbl s gy tovbb. A MAC alap vdelem felptse leginkbb egy tzfal sszelltshoz hasonlthat, ahol ugyangy szmolni kell azzal, hogy egy vatlan paranccsal kizrhatjuk magunkat a rendszerbl. Valamilyen mdon mindig prbljunk gondoskodni a rendszer elz llapotnak visszallthatsgrl, s a MAC tvoli adminisztrcijt mindig nagyfok krltekintssel vgezzk.

16.4. Bvebben a MAC cmkirl


A MAC-cmke egy olyan biztonsgi tulajdonsg, amelyet a rendszerben tallhat alanyokhoz s objektumokhoz rendelhetnk. Egy cmke belltshoz a felhasznlnak pontosan ismernie kell, hogy ilyenkor mi trtnik. Az objektumokhoz tartoz tulajdonsgok a betlttt moduloktl fggenek, s az egyes modulok eltr mdon rtelmezik ezeket a tulajdonsgokat. Ha a precz megrtsk hinyban helytelenl lltjuk be ezeket, vagy nem vagyunk kpesek tisztzni a velk jr kvetkezmnyeket, akkor az a rendszernk kiszmthatatlan s valsznleg kedveztlen viselkedst eredmnyezi.

446

Fejezet 16. Ktelez hozzfrs-vezrls (MAC) A hzirendek az objektumhoz rendelt biztonsgi cmkket a hozzfrssel kapcsolatos dntsek meghozsban hasznljk fel. Bizonyos hzirendek esetben mr maga a cmke elegend informcit tartalmaz a dnts megformlshoz. Mshol viszont a cmkk egy nagyobb szablyrendszer rszeknt dolgozdnak fel stb. Pldul, ha egy llomnyra belltjuk a biba/low cmkt, akkor az arra fog utalni, hogy a cmkt a Biba nev biztonsgi modul kezeli s rtke low. Az a nhny modul, amely a FreeBSD-ben tmogatja a cmkzs lehetsgt, hrom specilis cmkt denil elre. Ezek rendre a low (alacsony), high (magas) s equal (egyez) cmkk. Habr az egyes modulok esetn eltr mdon kpesek vezrelni a hozzfrst, azt mindig biztosra vehetjk, hogy a low a legalacsonyabb rtk, az equal cmke hatsra az adott alanyt vagy objektumot rintetlenl hagyjk, s a high rtk cmke a Biba s MLS modulok esetben a legmagasabb belltst jelenti. Az egycmks llomnyrendszerek hasznlata sorn az egyes objektumonkhoz csak egyetlen cmkt rendelhetnk hozz. Ezzel az egsz rendszerben csak egyfajta engedlyt alkalmazunk, ami sok esetben pontosan elegend. Ltezik nhny klnleges eset, amikor az llomnyrendszerben lev alanyokhoz vagy objektumokhoz egyszerre tbb cmkt is hozz kell rendelnnk. Ilyenkor a multilabel opcit kell tadnunk a tunefs(8) segdprogramnak. A Biba s az MLS esetben elfordulhat, hogy egy numerikus cmkvel fogjuk jellni a hierarchikus irnyts pontos szintjt. A numerikus szintek hasznlatval tudjuk az informcit klnbz csoportokba sztosztani vagy elrendezni, pldul gy, hogy csak az adott szint vagy a felette ll csoportok szmra engedlyezzk a hozzfrst. Az esetek tbbsgben a rendszergazdnak csak egyetlen cmkt kell belltania az egsz llomnyrendszerre. H, lljunk csak meg! Akkor ez viszont pont olyan, mint a DAC! n azt hittem, hogy a MAC szigoran a rendszergazda kezbe adja az irnytst. Ez az llts tovbbra is fennll, mivel bizonyos rtelemben a root lesz az, aki belltja a hzirendeket, teht mondja meg, hogy a felhasznlk milyen kategrikba vagy hozzfrsi szintekbe soroldnak. Sajnos, sok biztonsgi modul mg magt a root felhasznlt is korltozza. Az objektumok feletti irnyts ilyenkor a csoportra szll, de a root brmikor visszavonhatja vagy mdosthatja a belltsokat. Ezzel a hierarchikus/engedly alap modellel a Biba s az MLS nev hzirendek foglalkoznak.

16.4.1. A cmkk belltsa


A cmkzshez kapcsold sszes belltst gyakorlatilag az alapvet rendszerprogramokkal vgezhetjk el. Ezek a parancsok az objektumok s az alanyok szablyozshoz, valamint a kongurci mdostshoz s ellenrzshez adnak egy egyszer kezelfelletet. Az sszes kongurcis belltst a setfmac(8) s setpmac(8) segdprogramokkal vgezhetjk el. A setfmac segtsgvel a rendszerszint objektumokhoz tudunk hozzrendelni a MAC-cmkket, mg a setpmac paranccsal a rendszerben lev alanyokhoz tudunk cmkket rendelni. Vegyk pldul ezt:
# setfmac biba/high prba

Amennyiben az imnti parancs hibtlanul lefutott, visszakapjuk a paranccsort. Ezek a parancsok csak olyankor maradnak nyugodtan, amikor semmilyen hiba nem trtnt. Mkdsk hasonl a chmod(1) s chown(8) parancsokhoz. Bizonyos esetekben Permission denied (A hozzfrs nem engedlyezett) hibt kapunk, ami ltalban akkor bukkan fel, ha egy korltozott objektummal kapcsolatban prblunk meg cmkt belltani vagy mdostani 1. A rendszergazda a kvetkez paranccsal tudja feloldani az ilyen helyzeteket:
# setfmac biba/high prba Permission denied # setpmac biba/low setfmac biba/high prba # getfmac prba

447

Fejezet 16. Ktelez hozzfrs-vezrls (MAC)


prba: biba/high

Ahogy az itt tetten is rhet, a setpmac hasznlhat a modul belltsainak fellbrlsra gy, hogy a meghvott programban egy msik cmkt llt be. A getpmac segdprogram ltalban a sendmailhez hasonl httrben fut programok esetben alkalmazhat: ilyenkor a konkrt parancs helyett a fut program azonostjt kell megadnunk, de mkdse ugyanaz. Ha a felhasznlk a hatkrkn tl lev llomnyokat prblnak meg mdostani, akkor a betlttt modulok szablyainak megfelelen a mac_set_link fggvny Operation not permitted (A mvelet nem engedlyezett) hibt fog adni.

16.4.1.1. Gyakori cmketpusok


A mac_biba(4), mac_mls(4) s mac_lomac(4) moduloknl hasznlhatunk cmkket. rtkk lehet high, equal vagy low, melyek rvid magyarzata a kvetkez:

A low cmke az objektumra vagy alanyra rvnyes leggyengbb belltst jelenti. Az ilyen cmkj objektumok vagy alanyok nem rhetik el a high cmkjeket. Az equal cmke hasznlhat minden olyan objektum vagy alany esetben, amelyeket ki akarunk vonni az adott hzirend hatlya all. A high cmke adja az objektumhoz vagy alanyhoz tartoz legersebb belltst.

Az egyes moduloktl fggen ezek az rtkek az informci ramoltatsnak klnbz irnyait rhatjk le. A megfelel man oldalak elolvassval mg jobban megismerhetjk az egyes cmketpusok belltsnak jellegzetessgeit. 16.4.1.1.1. A cmkk belltsrl rszletesebben A numerikus osztlyoz cmkk sszehasonlts:rekesz+rekesz alakban hasznlatosak, teht a
biba/10:2+3+6(5:2+3-20:2+3+4+5+6)

kifejezs gy rtelmezhet: A Biba hzirend cmkje/10 osztly :2, 3 s 6 rekeszek: (5 osztly...) Ebben a pldban az els osztly tekinthet valdi osztlynak, amely a valdi rekeszeket jelenti, a msodik osztly egy alacsonyabb besorols, mg az utols egy magasabb szint. A legtbb kongurciban nem lesz szksgnk ennyire sszetett belltsokra, noha kpesek vagyunk felrni ezeket. Ha ezt kivettjk a rendszer objektumaira, akkor a rendszerben lev alanyokat illeten csupn az aktulis osztly/rekeszek szmtanak, mivel a rendszerben s hlzati csatolfelleteken elrhet hozzfrs-vezrlsi jogokat tkrzi. Az alany-objektum prokban megadott osztlyzatok s rekeszek hasznlhatak fel egy olyan kapcsolat kiptsre, amit dominancinak neveznk. Ilyenkor egy alany ural egy objektumot, vagy egy objektum ural egy alanyt, vagy egyikk sem uralja a msikat, esetleg mind a kett uralja egymst. A ketts dominancia esete akkor forog fenn, amikor a kt cmke megegyezik. A Biba informciramoltatsi sajtossgaibl addan jogunk van rekeszeket ltrehozni, tudunk kell, hogy ezek projekteknek feleltethetek meg, de az objektumok is rendelkezhetnek rekeszekkel. A felhasznlk ilyenkor csak gy tudnak elrni egyes objektumokat, ha az su vagy a setpmac hasznlatval leszktik a jogaikat egy olyan rekeszre, ahol mr nem rvnyeslnek rjuk korltozsok.

448

Fejezet 16. Ktelez hozzfrs-vezrls (MAC)

16.4.1.2. A felhasznlk s cmkk kapcsolata


Maguknak a felhasznlknak is szksgk van cmkkre, mivel csak ezek segtsgvel tudnak az llomnyaik s programjaik megfelel mdon egyttmkdni a rendszerben rvnyes biztonsgi hzirenddel. Ezt a login.conf llomnyban megadhat bejelentkezsi osztlyokkal llthatjuk be. Minden cmkket hasznl modulban a felhasznlknak is van cmkjk. Lentebb lthat egy ilyen minta bejegyzs, amely minden modulhoz tartalmaz belltst:
default:\ :copyright=/etc/COPYRIGHT:\ :welcome=/etc/motd:\ :setenv=MAIL=/var/mail/$,BLOCKSIZE=K:\ :path=~/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:\ :manpath=/usr/share/man /usr/local/man:\ :nologin=/usr/sbin/nologin:\ :cputime=1h30m:\ :datasize=8M:\ :vmemoryuse=100M:\ :stacksize=2M:\ :memorylocked=4M:\ :memoryuse=8M:\ :filesize=8M:\ :coredumpsize=8M:\ :openfiles=24:\ :maxproc=32:\ :priority=0:\ :requirehome:\ :passwordtime=91d:\ :umask=022:\ :ignoretime@:\ :label=partition/13,mls/5,biba/10(5-15),lomac/10[2]:

Itt a label opcit hasznltuk a felhasznli osztlyhoz tartoz alaprtelmezett cmkk belltshoz, amit majd a MAC betartat. A felhasznlk nem mdosthatjk ezt az rtket, ezrt ez a felhasznlk szmra nem tekinthet tetszlegesen elhagyhat belltsnak. Egy vals kongurciban azonban a rendszergazda valsznleg nem akarja majd egyszerre az sszes modult hasznlni. Javasoljuk, hogy mieltt egy ilyen jelleg kongurcit adnnk meg, olvassuk el az egsz fejezetet.
Megjegyzs: A felhasznlk ezt a cmkt meg tudjk vltoztatni az els bejelentkezs utn, de csak a hzirend keretein bell. A fenti pldban gy lltjuk be a Biba hzirendet, hogy a fut programok srtetlensgi foka legalbb 5, legfeljebb 15 lehet, de az alaprtke 10. Teht a programok egszen addig 10-es szinten futnak, amg a programok a Biba bejelentkezskor megadott tartomnyban meg nem vltoztatjk ezt a cmkt, felteheten a setpmac parancs hatsra.

Mindig, amikor megvltozatjuk a login.conf belltsait, a cap_mkdb paranccsal jra kell generlni a bejelentkezsi osztlyokhoz tartoz adatbzist, amire a ksbbi pldkban vagy rszekben igyeksznk is mindig felhvni a gyelmet.

449

Fejezet 16. Ktelez hozzfrs-vezrls (MAC) Nem rt hozztennnk, hogy sok rendszerben kifejezetten sok felhasznlt kell kezelnnk, amihez tbb klnbz bejelentkezsi osztlyra is szksgnk lehet. Mivel ksbb mr csak egyre jobban bonyoldni fog a felhasznlk kezelse, ezrt soha ne felejtsnk el komolyan elre tervezni. A FreeBSD kvetkez vltozataiban meg fognak jelenni ms mdszerek is a felhasznlk s cmkk kzti kapcsolatok kezelsre. A FreeBSD 5.3 eltt azonban ez mg semmikppen sem vrhat.

16.4.1.3. A hlzati csatolfelletek s a cmkk kapcsolata


A hlzati csatlakozsok esetben is llthatunk be cmkket, melyek a hlzaton keresztl foly adatok ramlst hatrozzk meg. Minden esetben ugyangy mkdnek, mint ahogy a hzirendek az objektumokra. Pldul a biba esetben a magas belltsokkal rendelkez felhasznlk nem frhetnek hozz az alacsonyabb cmkj hlzati csatolfelletekhez. Ha MAC-cmkket akarunk rendelni egy hlzati fellethez, akkor az ifconfig parancsnak adjuk meg a maclabel paramtert. Pldul a
# ifconfig bge0 maclabel biba/equal

parancs belltja a biba/equal MAC-cmkt a bge(4) felletre. A biba/high(low-high) alak cmkket tadsukhoz idzjelek kz kell tenni, klnben hibt kapunk. Minden cmkzst tmogat modulhoz tartoznak futsi idben llthat paramterek, amelyekkel akr le is tudjuk tiltani a MAC-cmkket a hlzati csatolfelleteken. Ugyanezt jelenti egybknt, ha equal rtket adunk meg a cmknek. Ezt behatbban gy ismerhetjk meg, ha kielemezzk a sysctl parancs kimenett, a megfelel modul man oldalt vagy a fejezetben tovbbi rszben tallhat, erre vonatkoz informcikat.

16.4.2. Egy cmke vagy tbb cmke?


Alaprtelmezs szerint a rendszer a singlelabel belltst hasznlja. Ez vajon mit tartogat a rendszergazda szmra? Szmos olyan eltrst, aminek megvannak a sajt elnyei s htrnyai a rendszer vdelmi modelljnek rugalmassga szempontjbl. A singlelabel bellts minden alany vagy objektum esetben csupn egyetlen cmke, pldul a biba/high hasznlatt engedi. Kevesebb adminisztrcis kltsggel jr, azonban cskkenteni a cmkzst tmogat modulok testreszabhatsgt. Ezrt sok rendszergazda inkbb a multilabel belltst vlasztja a biztonsgi hzirend kialaktsa sorn. A multilabel bellts lehetv teszi, hogy mindegyik alanyhoz s objektumhoz a szabvnyos singlelabel bellts lehetsgeivel szemben egymstl fggetlenl kln-kln rendelhessnk cmkket a partcikon. Az egys tbbcmks opcinak csak olyan modulok esetben van rtelme, amelyek tmogatjk a cmkzst, mint pldul a Biba, Lomac, MLS s a SEBSD hzirendek. Sokszor egyltaln nincs is szksgnk a multilabel hasznlatra. Tekintsk pldul a kvetkez helyzetet s biztonsgi modellt:

Adott egy FreeBSD webszerver, ahol a MAC rendszert tbb biztonsgi hzirenddel alkalmazzuk.

450

Fejezet 16. Ktelez hozzfrs-vezrls (MAC)

A gpen egyedl csak a biba/high cmkre van szksgnk mindenhez a rendszerben. Itt egyszeren csak nem adjuk meg az llomnyrendszernek a multilabel belltst, mivel az egycmks rendszer mindig rendelkezsnkre ll. Mivel azonban erre a gpre telepteni akarunk egy webszervert is, ilyenkor a biba/low cmke hasznlatval igyeksznk korltozni a szerver feldolgozsi kpessgeit. A Biba hzirendrl s annak mkdsrl csak a ksbbiekben fogunk rni, ezrt ha az elbbi megjegyzst mg nem teljesen rtjk, akkor egyszeren csak olvassunk tovbb s trjnk vissza ide. A szerver futsa alatt, vagy legalbb is idejnek nagy rszben egy kln partcit hasznlhatna, amire a biba/low cmkt lltannk be. Termszetesen ez a plda korntsem teljes, hiszen hinyoznak belle az adatokra rvnyes korltozsok, a kongurcis s felhasznli belltsok. Ez csupn az imnti gondolatmenet gyors illusztrcija.

Amennyiben cmkzst nem tmogat modulokat alkalmazunk, a multilabel belltsra szinte sosem lesz szksgnk. Ilyenek pldul a seeotheruids, portacl s partition hzirendek. A multilabel opci hasznlata s gy specilis, tbbcmks vdelmi modell ltrehozsa kpes elbonyoltani a rendszer karbantartst, mert ilyenkor az llomnyrendszerben mindennek lennie kell cmkjnek: knyvtraknak, llomnyok s mg az eszkzlerknak is. A most kvetkez paranccsal belltjuk az llomnyrendszerre a multilabel opcit. Ez csak egyfelhasznls mdban tehet meg:
# tunefs -l enable /

A lapozpartci esetben erre nincs szksg.


Megjegyzs: Elfordulhat, hogy nhny felhasznlnak nem sikerl a multilabel opcit belltania a rendszerindt partcira. Ha ez trtnne, akkor olvassuk el a fejezet 16.17 Szakaszt.

16.5. A vdelem megtervezse


Mindig hasznos idt sznni a tervezsre, amikor nekiltunk egy j technolgia alkalmazshoz. A tervezs kzben a rendszergazdnak egyben kell ltnia a kpet, lehetleg az albbiak gyelembevtelvel:

Elvrsok a modell fel A modell clkitzsei

Tovbb a MAC hasznlata esetn:


Miknt osztlyozzuk a clrendszeren rendelkezsre ll informcit s erforrsokat Milyen informcit vagy erforrst kell korltoznunk s milyen tpus korltozst alkalmazzunk rjuk A MAC melyik moduljain keresztl tudjuk elrni cljainkat

Habr mindig mdunkban ll megvltoztatni s jra kongurlni a rendszerben tallhat erforrsokat s biztonsgi belltsokat, sokszor azrt igen knyelmetlen utnanzni a rendszerben s lltgatni az llomnyok, illetve felhasznli hozzfrsek paramtereit. A belltsainkat valamint azok kongurcijt elszr kln prbljuk ki,

451

Fejezet 16. Ktelez hozzfrs-vezrls (MAC) mieltt a MAC alap megvalstsunkat egy les rendszeren kezdjk el hasznlni. Ennek elhagysa szinte biztosan kudarcra tl minket. A klnbz krnyezetek ignyei s elvrsai eltrnek. Egy alaposan s minden rszletben tgondolt vdelmi prol megalapozsa cskkenti a rendszer zembehelyezse utn elvgzend mdostsok szmt. Mint olyanokra, a kvetkez szakaszokban kitrnk a rendszergazdk szmra elrhet modulokra, bemutatjuk a hasznlatukat s belltsukat s egyes esetekben betekintst is adunk olyan helyzetekbe, ahol a legjobban kiaknzhatak a kpessgeik. Pldul egy webszerver esetn hasznos lehet a mac_biba(4) s mac_bsdextended(4) hzirendek alkalmazsa. Ms esetekben, pldul egy kevs felhasznlval mkd szmtgpen, a mac_partition(4) modul lehet j vlaszts.

16.6. A modulok belltsa


A MAC rendszerben megtallhat sszes modul a korbban lertak szerint bepthet a rendszermagba vagy menet kzben is betlthet modulknt. A hasznlni kvnt modulokat a /boot/loader.conf llomnyba javasolt felvenni, gy azok be tudnak tltdni a rendszer indtsa folyamn. A soron kvetkez szakaszokban a klnbz MAC-modulokat dolgozzuk fel s foglaljuk ssze a lehetsgeiket. Tovbb a fejezet szeretne szlni ezek alkalmazsrl specilis helyzetekben is. Egyes modulokkal cmkzni is tudunk, aminek rvn a hozzfrseket cmkkkel szablyozzuk, pldul gy, hogy megmondjuk mit szabad s mit nem. A cmkk belltsait tartalmaz llomny vezrli az llomnyok elrst, a hlzati kommunikcit s mg sok minden mst. Az elz szakaszban mr megismerhettk, hogy a multilabel opci segtsgvel hogyan llthatjuk be az llomnyonknti vagy partcinknti hozzfrs-vezrlst. Az egycmks kongurciban az egsz rendszerben csupn egyetlen cmke hasznlatra nylik md, ezrt is hvjk a tunefs belltst multilabelnek.

16.7. A seeotheruids MAC-modul


A modul neve: mac_seeotheruids.ko A rendszermag kongurcis belltsa: options MAC_SEEOTHERUIDS Rendszerindtsi bellts: mac_seeotheruids_load="YES" A mac_seeotheruids(4) modul a security.bsd.see_other_uids s security.bsd.see_other_gids sysctl-vltozkat utnozza s terjeszti ki. A hasznlathoz semmilyen cmkt nem kell belltani s transzparens mdon kpes egyttmkdni a tbbi modullal. A modult betltse utn az albbi sysctl-vltozkkal tudjuk vezrelni:

A security.mac.seeotheruids.enabled engedlyezi a modult s az alaprtelmezett belltsokat hasznlja. Alaprtelmezs szerint egyik felhasznl sem lthatja a tbbiek fut programjait s csatlakozsait. A security.mac.seeotheruids.specificgid_enabled egy adott csoportot mentest a hzirend szablyozsai all. Teht ki akarunk vonni egy csoportot a hzirend alkalmazsbl, akkor lltsuk be a security.mac.seeotheruids.specificgid=XXX sysctl-vltozt, ahol az XXX a mentesteni kvnt csoport numerikus azonostja.

452

Fejezet 16. Ktelez hozzfrs-vezrls (MAC)

A security.mac.seeotheruids.primarygroup_enabled segtsgvel adott elsdleges csoportokat vonhatunk ki a hzirend hatlya all. Ezt a vltozt nem hasznlhatjuk a security.mac.seeotheruids.specificgid_enabled vltozval egytt.

16.8. A bsdextended MAC-modul


A modul neve: mac_bsdextended.ko A rendszermag kongurcis belltsa: options MAC_BSDEXTENDED Rendszerindtsi bellts: mac_bsdextended_load="YES" A mac_bsdextended(4) modul segtsgvel egy llomnyrendszer szintjn mkd tzfalat tudunk kialaktani. Ez a modul a szabvnyos llomnyrendszeri engedly alap modelljt bvti ki, lehetv tve, hogy a rendszergazda tzfalszer szablyokkal nyjtson vdelmet a knyvtrszerkezetben tallhat llomnyoknak, segdprogramoknak s knyvtraknak. Amikor egy llomnyrendszerbeli objektumhoz prblunk meg hozzfrni, a modul illeszti ezt egy szablyrendszerre, amiben vagy tall egy hozztartoz szablyt vagy kifut belle. Ez a viselkeds a security.mac.bsdextended.firstmatch_enabled sysctl(8) paramter segtsgvel vltoztathat meg. Hasonlan a FreeBSD-ben tallhat tbbi tzfalmodulhoz, az llomnyok elrst denil szablyok a rendszerindts sorn egy rc.conf(5) vltozbl olvasdnak be. A szablyokat a ugidfw(8) segdprogrammal adhatjuk meg, amelynek a formai szablyai hasonlak az ipfw(8) programhoz. A libugidfw(3) fggvnyknyvtr felhasznlsval azonban tovbbi segdprogramok is rhatak hozz. A modul hasznlata sorn igyekezznk minl jobban odagyelni, mert helytelen alkalmazsval el tudjuk vgni magunkat az llomnyrendszer bizonyos rszeitl.

16.8.1. Pldk
Miutn sikerlt betlteni a mac_bsdextended(4) modult, a kvetkez paranccsal tudjuk lekrdezni a jelenleg rvnyes szablyokat:
# ugidfw list

0 slots, 0 rules

Ahogy az vrhat is volt, pillanatnyilag mg egyetlen szablyt sem adtunk meg. Ennek rtelmben teht mindent el tudunk rni. A kvetkez paranccsal tudunk olyan szablyt ltrehozni, ahol a root kivtelvel elutastjuk az sszes felhasznl hozzfrst:
# ugidfw add subject not uid root new object not uid root mode n

Ez egybknt egy nagyon buta tlet, mivel gy a felhasznlk mg a legegyszerbb parancsokat, mint pldul az ls-t, sem tudjk rjuk kiadni. Ennl sokkal humnusabb lesz, ha:
# ugidfw set 2 subject uid felhasznl1 object uid felhasznl2 mode n # ugidfw set 3 subject uid felhasznl1 object gid felhasznl2 mode n

Ilyenkor a felhasznl1 nev felhasznltl megvonjuk a felhasznl2 felhasznli knyvtrnak sszes hozzfrst, belertve a listzhatsgot is.

453

Fejezet 16. Ktelez hozzfrs-vezrls (MAC) A felhasznl1 helyett megadhatjuk a not uid felhasznl2 opcit is. Ebben az esetben egy felhasznl helyett az sszes felhasznlra ugyanaz a korltozs fog rvnyeslni.
Megjegyzs: A root felhasznlra ezek a belltsok nem vonatkoznak.

Ezzel felvzoltuk, miknt lehet a mac_bsdextended(4) modult felhasznlni az llomnyrendszerek megerstsre. Rszletesebb informcikrt jruljunk a mac_bsdextended(4) s ugidfw(8) man oldalakhoz.

16.9. Az ifoff MAC-modul


A modul neve: mac_ifoff.ko A rendszermag kongurcis belltsa: options MAC_IFOFF Rendszerindtsi bellts: mac_ifoff_load="YES" A mac_ifoff(4) modul kizrlag abbl a clbl kszlt, hogy segtsgvel menet kzben le tudjuk tiltani bizonyos hlzati csatolfelletek belltst a rendszerindts kzben. Sem cmkkre, sem pedig a tbbi MAC-modulra nincs szksgnk a hasznlathoz. A vezrlst nagyrszt az albbi sysctl-vltozkkal tudjuk megoldani.

A security.mac.ifoff.lo_enabled engedlyezi vagy letiltja a (lo(4)) helyi loopback felleten az sszes forgalmat. A security.mac.ifoff.bpfrecv_enabled engedlyezi vagy letiltja a Berkeley csomagszr (BPF, Berkeley Packet Filter) felletn az sszes forgalmat. A security.mac.ifoff.other_enabled engedlyezi vagy letiltja az sszes tbbi csatolfelleten az sszes forgalmat.

A mac_ifoff(4) modult ltalban olyan krnyezetek monitorozsakor szoktk hasznlni, ahol a rendszer indtsa sorn mg nem szabad hlzati forgalomnak keletkeznie. Vagy pldul a security/aide porttal egytt hasznlva automatikusan el tudjuk zrni a rendszernket, ha a vdett knyvtrakban j llomnyok keletkeznek vagy megvltoznak a rgiek.

16.10. A portacl MAC-modul


A modul neve: mac_portacl.ko A rendszermag kongurcis belltsa: MAC_PORTACL Rendszerindtsi bellts: mac_portacl_load="YES" A mac_portacl(4) modul a helyi TCP s UDP portok kiosztsnak korltozst teszi lehetv klnfle sysctl-vltozkon keresztl. A mac_portacl(4) segtsgvel lnyegben a nem-root felhasznlk is hasznlhatnak privilegizlt, teht 1024 alatti portokat.

454

Fejezet 16. Ktelez hozzfrs-vezrls (MAC) Miutn betltttk, a modul az sszes csatlakozsra alkalmazza a MAC-hzirendet. Ezutn az albbi vltozkkal hangolhatjuk a viselkedst:

A security.mac.portacl.enabled totlisan engedlyezi vagy letiltja a hzirend hasznlatt. A security.mac.portacl.port_high megadja azt a legmagasabb portot, amelyre mg kiterjed a mac_portacl(4) vdelme. Ha a security.mac.portacl.suser_exempt vltoznak nem nulla rtket adunk meg, akkor azzal a root felhasznlt kivonjuk a szablyozsok all. A security.mac.portacl.rules az rvnyes mac_portacl hzirendet adja meg, lsd lentebb.

A security.mac.portacl.rules vltoz ltal megadott aktulis mac_portacl hzirend formtuma a kvetkez: szably[,szably,...], ahol ezen a mdon tetszleges szm szablyt adhatunk meg. Az egyes szablyok pedig gy rhatak fel: azonosttpus: azonost: protokoll: port. Az azonosttpus rtke uid vagy gid lehet, amivel megadjuk, hogy az azonost paramter felhasznlra vagy csoportra hivatkozik. A protokoll paramter adja meg, hogy a szablyt TCP vagy UDP tpus kapcsolatra rtjk, s ennek megfelelen az rtke is tcp vagy udp lehet. A sort vgl a port paramter zrja, ahol annak a portnak szmt adjuk meg, amelyhez az adott felhasznlt vagy csoportot akarjuk ktni.
Megjegyzs: Mivel a szablyokat kzvetlenl maga a rendszermag dolgozza fel, ezrt a felhasznlk illetve csoportok azonostja, valamint a port rtke kizrlag numerikus rtk lehet. Teht a szablyokban nv szerint nem hivatkozhatunk felhasznlkra, csoportokra vagy szolgltatsokra.

A UNIX-szer rendszereken alaprtelmezs szerint az 1024 alatti portokat csak privilegizlt programok kaphatjk meg s hasznlhatjk, teht a root felhasznl neve alatt kell futniuk. A mac_portacl(4) azonban a nem privilegizlt programok szmra is lehetv teszi, hogy elfoglalhassanak 1024 alatti portokat, amihez viszont elszr le kell tiltani ezt a szabvny UNIX-os korltozst. Ezt gy rhetjk el, ha a net.inet.ip.portrange.reservedlow s net.inet.ip.portrange.reservedhigh vltozkat egyarnt nullra lltjuk. A mac_portacl(4) mkdsnek rszleteirl a pldkon keresztl vagy a megfelel man oldalakbl tudhatunk meg tbbet.

16.10.1. Pldk
A kvetkez pldk az imntieket igyekeznek jobban megvilgtani:
# sysctl security.mac.portacl.port_high=1023 # sysctl net.inet.ip.portrange.reservedlow=0 net.inet.ip.portrange.reservedhigh=0

Elsknt belltjuk, hogy a mac_portacl(4) vegye t a szabvnyos privilegizlt portok vezrlst s letiltjuk a norml UNIX-os korltozsokat.
# sysctl security.mac.portacl.suser_exempt=1

A root felhasznlt azonban nem akarjuk kitenni a hzirendnek, ezrt a security.mac.portacl.suser_exempt vltoznak egy nem nulla rtket adunk meg. A mac_portacl(4) modul most pontosan ugyangy mkdik, mint a UNIX-szer rendszerek alaprtelmezs szerint.
# sysctl security.mac.portacl.rules=uid:80:tcp:80

455

Fejezet 16. Ktelez hozzfrs-vezrls (MAC) A 80-as azonostval rendelkez felhasznl (aki ltalban a www) szmra engedlyezzk a 80-as port hasznlatt. gy a www felhasznl anlkl kpes webszervert futtatni, hogy szksge lenne a root jogosultsgaira.
# sysctl security.mac.portacl.rules=uid:1001:tcp:110,uid:1001:tcp:995

Az 1001-es azonostval rendelkez felhasznlnak megengedjk, hogy elfoglalhassa a 110-es (pop3) s 995-s (pop3s) portokat. Ennek ksznheten az adott felhasznl el tud indtani egy szervert, amihez a 110-es s 995-s portokon lehet kapcsoldni.

16.11. A partition MAC-modul


A modul neve: mac_partition.ko A rendszermag kongurcis belltsa: options MAC_PARTITION Rendszerindtsi bellts: mac_partition_load="YES" A mac_partition(4) hzirend a fut programokat cmkjk szerint adott partcikra osztja szt. Ezt leginkbb egy specilis jail(8) megoldsknt tudjuk elkpzelni, noha teljesen felesleges sszehasonltani a kettt. Ez egy olyan modul, amelyet a loader.conf(5) llomnyba kell felvenni, hogy a rendszerindtsa kzben be tudjon tltdni. Ezt a hzirendet tbbsgben a setpmac(8) segdprogrammal tudjuk lltgatni, ahogy az majd lentebb lthat lesz. A kvetkez sysctl-vltoz tartozik mg a modulhoz:

A security.mac.partition.enabled engedlyezi a fut programok MAC rendszeren keresztli felosztst.

A hzirend engedlyezsvel a felhasznlk csak a sajt programjaikat lthatjk, illetve mindazokat, amelyek az vkvel egy partciba tartoznak, de a rajta kvl lev programokkal mr nem dolgozhatnak. Pldul, ha egy felhasznl az insecure (nem biztonsgos) osztly tagja, akkor ne engedjk, hogy hozzfrhessen a top vagy brmilyen ms olyan parancshoz, amely tovbbi fut programokat hoz ltre. A setpmac hasznlatval tudunk cmkket kszteni a partcikhoz s programokat rendelni hozzjuk:
# setpmac partition/13 top

gy a top parancsot hozzadjuk az insecure osztlyban lev felhasznlkhoz rendelt cmkhez. Vegyk szre, hogy az insecure osztlyba tartoz felhasznlk ltal elindtott sszes program a partition/13 cmkt fogja hasznlni.

16.11.1. Pldk
A kvetkez parancs megmutatja a partcik cmkit s a fut programok listjt:
# ps Zax

Ezzel paranccsal pedig megnzhetjk egy msik felhasznl programjainak cmkit s a felhasznl ltal futtatott programokat:
# ps -ZU trhodes

456

Fejezet 16. Ktelez hozzfrs-vezrls (MAC)


Megjegyzs: A felhasznlk ltjk a root cmkjvel fut programokat is, hacsak be nem tltjk a mac_seeotheruids(4) hzirendet.

Ezt a megoldst gy tudnnk igazn ravaszul felhasznlni, ha pldul az /etc/rc.conf llomnyban letiltannk az sszes szolgltatst s egy olyan szkripttel indtannk el ezeket, amely futtatsuk eltt belltja hozzjuk a megfelel cmkt.
Megjegyzs: A most kvetkez hzirendek a hrom alaprtelmezett cmkertk helyett egsz szmokat hasznlnak. Ezekrl, valamint a rjuk vonatkoz korltozsokrl a megfelel modulok man oldalain ismerhetnk meg tbbet.

16.12. A tbbszint biztonsgi MAC-modul


A modul neve: mac_mls.ko A rendszermag kongurcis belltsa: options MAC_MLS Rendszerindtsi bellts: mac_mls_load="YES" A mac_mls(4) (MLS, Multi-Level Security) hzirend az informci szigor ramoltatsval vezrli a rendszerben tallhat alanyok s objektumok kzti elrst. A MLS megoldst alkalmaz krnyezetekben a rekeszek mellett minden alanyra s objektumra be kell mg lltanunk egy adott szint engedlyt is. Mivel az engedlyek avagy az rzkenysg szintje akr a hatezret is meghaladhatja, egy rendszergazda szmra valdi rmlomm vlthat az egyes alanyok s objektumok precz belltsa. Szerencsre a hzirend erre a clra tartalmaz hrom elre denilt instant cmkt. Ezek az mls/low, mls/equal s mls/high. Mivel a man oldal elg rszletesen kifejti ezeket, ezrt itt csak rintlegesen foglalkozunk velk:

Az mls/low cmke egy olyan alacsony szint belltst kpvisel, amely lehetv teszi, hogy az sszes tbbi objektum uralja. Teht brminek is adjuk az mls/low cmkt, alacsony szint engedllyel fog rendelkezni s nem lesz kpes elrni a magasabb szinten lev informcit. Radsul a cmke a magasabb szint objektumok szmra se fogja engedni, hogy informcit kzljn vagy adjon t az alacsonyabb szintek fel. Az mls/equal cmke olyan objektumok esetben ajnlott, amelyeket ki akarunk hagyni a hzirend szablyozsaibl. Az mls/high cmke az elrhet legmagasabb szint engedlyt brzolja. Az ilyen cmkvel elltott objektumok a rendszer sszes tbbi objektuma felett uralommal rendelkeznek, habr az alacsonyabb szint objektumok fel nem kpesek informcit kzvetteni.

Az MLS:

Egy hierarchikus vdelmi szinteket pt fel nem hierarchikus kategrikkal.

457

Fejezet 16. Ktelez hozzfrs-vezrls (MAC)

Szablyai rgztettek: a felsbb szintek olvassa s az alsbb szintek rsa egyarnt tiltott (az alanyok csak a sajt vagy az alatta lev szinteken lev objektumokat kpesek olvasni, de a felette llkat mr nem. Ehhez hasonlan az alanyok a velk egyez vagy a felsbb szinteket tudjk rni, de az alattuk levket mr nem). Megrzi a titkokat (megakadlyozza az adatok alkalmatlan kzzttelt). Megadja mindazt az alapot, ami szksges ahhoz, hogy az adatokat tbb knyessgi szinten, prhuzamosan is kezelni tudjuk (anlkl, hogy titkos s bizalmas informcikat szivrogtatnnk ki).

A specilis szolgltatsok s felletek belltshoz az albbi sysctl-vltozk hasznlhatak:


A security.mac.mls.enabled engedlyezi vagy tiltja le az MLS hzirend alkalmazst. A security.mac.mls.ptys_equal hatsra ltja el mls/equal cmkvel az sszes pty(4) eszkzt ltrehozsuk sorn. A security.mac.mls.revocation_enabled hasznlhat az alacsonyabb szintre minstett objektumok hozzfrsnek megvonsra. A security.mac.mls.max_compartments segtsgvel adhat meg az objektumok ltal hasznlt rekeszek szintjnek maximlis szma. Lnyegben a rekeszek rendszerben engedlyezett maximuma.

Az MLS cmkit a setfmac(8) paranccsal tudjuk mdostani. Egy ehhez hasonl paranccsal tudunk egy objektumhoz cmkt rendelni:
# setfmac mls/5 prba

A prba llomny MLS-cmkjt az albbi paranccsal krhetjk le:


# getfmac prba

Ezzel ssze is foglaltuk az MLS hzirend lehetsgeit. Az eddigiket gy is megoldhatjuk, hogy ltrehozunk egy kzponti hzirendet az /etc knyvtrban, amelyben megadjuk az MLS hzirendhez tartoz informcikat, majd tadjuk a setfmac parancsnak. Erre a mdszerre majd a hzirendek bemutatsa utn kerl sor.

16.12.1. A knyessg megllaptsa


A tbbszint biztonsgi hzirend hasznlatval a rendszergazda a knyes informcik ramlsnak irnyt tudja befolysolni. A megolds felfele nem lehet olvasni, lefele nem lehet rni jellege folytn alapbl mindent a legalacsonyabb szintre helyez. gy teht kezdetben minden elrhet, s a rendszergazdnak lassanknt ebbl az llapotbl elindulva kell behangolnia az erre alapoz vdelmi rendszert az informci bizalmassgnak megfelelen. A fentebb emltett hrom alapvet cmke mellett a rendszergazdnak valsznleg szksge lesz a felhasznlk csoportostsra s a csoportok kzti informciramls szablyozsra. A informci bizalmassgnak szintjeit minden bizonnyal knnyebb szavakkal beazonostani, pldul Confidential (bizalmas), Secret (titkos) vagy Top Secret (szigoran bizalmas). Bizonyos helyzetekben elg csak a fut projekteknek megfelelen kialaktani csoportokat. Az osztlyozs konkrt mdszertl fggetlenl azonban mindig elmondhat, hogy elzetes tervezs nlkl sose lltsunk ssze ilyen fajsly hzirendet. Ezt a biztonsgi modult pldul webes zletek esetn rdemes hasznlnunk, ahol egy llomnyszerver trolja a cg fontos adatait s pnzgyi informciit. Viszont egy kt vagy hrom felhasznlval zemel munkalloms esetben szinte teljesen felesleges gondolkodni rajta.

458

Fejezet 16. Ktelez hozzfrs-vezrls (MAC)

16.13. A Biba MAC-modul


A modul neve: mac_biba.ko A rendszermag kongurcis belltsa: options MAC_BIBA Rendszerindtsi bellts: mac_biba_load="YES" A mac_biba(4) modul a MAC Biba elnevezs hzirendjt tlti be. Ez leginkbb az MLS hzirendhez hasonlt, azzal a kivtellel, hogy az informci ramoltatsra vonatkoz szablyok nmileg visszafel mkdnek. Teht mg az MLS hzirend a knyes informci ramlst felfel nem engedi, addig ez a lefel irnyul ramlst lltja meg. Emiatt ez a szakasz tulajdonkppen mind a kt hzirendre rvnyesl. A Biba alkalmazsa sorn minden alany s objektum egy srtetlensget jelkpez cmkt visel. Ezek a cmkk hierarchikus osztlyokbl, nem peidg hiearchikus sszetevkbl szrmaznak. Egy objektum vagy alany srtetlensge a besorolsval nvekszik. A modul a biba/low, biba/equal s biba/high cmkket ismeri, vagyis bvebben:

A biba/low cmke tekinthet az alanyok s objektumok legkisebb srtetlensgnek. Ha belltjuk egy objektumra vagy alanyra, akkor ezzel megakadlyozzuk, hogy nagyobb srtetlensg objektumokat vagy alanyokat tudjanak rni. Ettl fggetlenl azonban mg kpesek olvasni ezeket. A biba/equal cmke hasznlata kizrlag olyan objektumok esetben javasolt, amelyeket ki akarunk vonni a hzirend all. A biba/high cmke megengedi az alacsonyabb szinteken lev objektumokat rst, de az olvasst viszont mr nem. Ezt a cmkt olyan objektumra rdemes ragasztani, amelyek hatssal vannak az egsz rendszer srtetlensgre.

A Biba:

Hierarchikus srtetlensgi szinteket pt fel nem hiearchikus srtetlensgi kategrikkal kiegsztve. Szablyai rgztettek: az felsbb szintek rsa s az alsbb szintek olvassa egyarnt tilos (pontosan az MLS ellentte). Egy alany csak a sajt vagy az alatta ll szinteken szerepl objektumokat tudja rni. Ehhez hasonl mdon egy alany csak a sajt vagy az afeletti szinten tallhat objektumokat kpes olvasni. Az adatok srtetlensgt biztostja (megakadlyozza az alkalmatlan mdostsukat) Srtetlensgi szinteket hatroz meg (szemben az MLS knyessgi szintjeivel).

Az albbi sysctl-vltozkkal vezrlhetjk a Biba hzirend mkdst:


A security.mac.biba.enabled hasznlhat a clrendszeren a Biba hzirend engedlyezre vagy letiltsra. A security.mac.biba.ptys_equal segtsgvel kapcsolhatjuk ki a Biba hzirend alkalmazst a pty(4) eszkzkn. A security.mac.biba.revocation_enabled hatsra visszavondik az objektumok hozzfrse, ha az rjuk vonatkoz cmke megvltozik.

A rendszer objektumain a Biba hzirendet a setfmac s getfmac paranccsal llthatjuk be:


# setfmac biba/low prba # getfmac prba prba: biba/low

459

Fejezet 16. Ktelez hozzfrs-vezrls (MAC)

16.13.1. A srtetlensg megllaptsa


A srtetlensg a knyessgtl eltren azt igyekszik szavatolni, hogy az informcit illetktelenek nem mdostjk. Ez egyarnt vonatkozik az alanyok, objektumok s a kett kztt tadott adatokra. Gondoskodik rla, hogy a felhasznlk csak olyan informcikat vltoztathathassanak meg, st csak olyat rhessenek el, amire tnylegesen szksgk van. A mac_biba(4) biztonsgi modul megengedi a rendszergazda szmra, hogy megmondja milyen llomnyokat s programokat lthat vagy hvhat meg a felhasznl vagy felhasznlk egy csoportja, mikzben biztostja, hogy az llomnyok s a programok nincsenek kitve semmilyen fenyegetsnek, s a rendszer az adott felhasznlban vagy felhasznli csoportban megbzik. A kezdeti tervezsi fzis sorn a rendszergazdnak fel kell kszlnie arra, hogy a felhasznlkat osztlyokra, szintekre s terletekre kell osztania. A felhasznlk nem csak adatokhoz, hanem programokhoz s segdprogramokhoz sem lesznek kpesek hozzfrni, mind az indtsuk eltt s utn. A modul aktivls utn a rendszer alapbl rgtn a legmagasabb cmkt kapja meg, s teljesen a rendszergazdra hrul, hogy a felhasznlkhoz belltsa a klnfle osztlyokat s szinteket. A fentebb lert engedlyszintek helyett akr tmk alapjn is tervezhetnk. Pldul kizrlag csak a fejlesztk szmra engedjk meg a forrskd mdostst, a forrskd lefordtst s a tbbi fejleszteszkz hasznlatt. Ekzben a tbbi felhasznlt felosztjuk tovbbi csoportokba, pldul tesztelkre s tervezkre, vagy meghagyjuk ezeket tlagos felhasznlknak, akik csak olvassi joggal rendelkeznek. A megvalstott biztonsgi modell termszetbl fakadan egy kevsb srtetlenebb alany nem rhatja a sokkal srtetlenebb alanyokat, a sokkal srtetlenebb alanyok pedig nem rhetik el vagy olvashatjk a kevsb srtetlen objektumokat. A lehet legkisebb osztly cmke belltsval gyakorlatilag elrhetetlenn teszk az alanyok szmra. A modult valsznleg egy korltozott webszerver, fejleszti- s tesztgpek vagy forrskd trolsra sznt krnyezetben rdemes bevetni. Annl eslytelenebb a hasznlata viszont egy munkalloms, tvlaszt vagy hlzati tzfal esetben.

16.14. A LOMAC MAC-modul


A modul neve: mac_lomac.ko A rendszermag kongurcis belltsa: options MAC_LOMAC Rendszerindts bellts: mac_lomac_load="YES" Eltren a MAC Biba hzirendjtl, a mac_lomac(4) egyedl csak azutn engedi elrni az kevsb srtetlenebb objektumokat, miutn cskkentjk a srtetlensg szintjt s ezzel betartjuk a srtetlensgre vonatkoz szablyokat. A gyenge vzjeles srtetlensgi hzirend MAC alap vltozatt nem szabad sszetveszteni a korbbi lomac(4) implementcival, amely majdnem ugyangy mkdik, mint a Biba, azzal az a kivtellel, hogy a lebeg cmkkkel tmogatjuk az alanyok lefokozst egy kisegt osztly rekeszn keresztl. Ez a msodlagos rekesz [kisegt_osztly ] alak. Teht amikor egy kisegt osztllyal adjuk meg a lomac hzirendet, valahogy gy nz ki: lomac/10[2], ahol a kettes (2) szm ez a kisegtsre hasznlt osztly. A MAC LOMAC hzirendje az sszes rendszerszint objektum esetben jelenlev srtetlensgi cmkzsen alapszik, megengedve az alanyok szmra, hogy az kevsb srtetlen objektumokat olvasni tudjk, majd a cmke leminstsvel az alany meg tudja akadlyozni a sokkal srtetlenebbnek tlt objektumok jvbeni rst. Ez az a fentebb trgyalt [kisegt_osztly ] opci, ezrt ez a modul a Bibnl tbb kompatibilitst s kevesebb kezdeti belltst ignyel.

460

Fejezet 16. Ktelez hozzfrs-vezrls (MAC)

16.14.1. Pldk
Hasonlan a Biba s MLS hzirendeknl megszokottakhoz, a setfmac s setpmac segdprogramok hasznlhatak a cmkk hozzrendelshez:
# setfmac /usr/home/trhodes lomac/high[low] # getfmac /usr/home/trhodes lomac/high[low]

Itt a kisegt osztly a low. Ezt csak a LOMAC MAC-hzirendnl adhatjuk meg.

16.15. A Nagios elzrsa a MAC rendszerrel


A most kvetkez bemutatban a MAC moduljainak s a megfelelen belltott hzirendek hasznlatval fogunk kialaktani egy biztonsgos krnyezetet. Ne feledjk azonban, hogy ez csupn egy rtatlan prba s nem pedig a mindenki biztonsgi agglyait kielgt legvgs megolds. Ha egy hzirendet vakon ptnk fel s nem rtjk meg a mkdst, az soha nem vlik hasznunkra, s egy les helyzetben katasztroflis hatssal jrhat. A folyamat megkezdse eltt be kell lltanunk a multilabel opcit mindegyik llomnyrendszerre, a fejezet elejn lertaknak megfelelen. Ha ezt a lpst kihagyjuk, akkor hibkat kapunk. Tovbb mg az elkszlet rszeknt ne felejtsnk el gondoskodni a net-mngt/nagios-plugins, net-mngt/nagios s www/apache13 portok teleptsrl, belltsrl s megfelel mkdsrl sem.

16.15.1. A nem megbzhat felhasznlk osztlynak ltrehozsa


Az eljrst kezdjk az albbi (insecure) felhasznli osztly hozzadsval az /etc/login.conf llomnyban:
insecure:\ :copyright=/etc/COPYRIGHT:\ :welcome=/etc/motd:\ :setenv=MAIL=/var/mail/$,BLOCKSIZE=K:\ :path=~/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin :manpath=/usr/share/man /usr/local/man:\ :nologin=/usr/sbin/nologin:\ :cputime=1h30m:\ :datasize=8M:\ :vmemoryuse=100M:\ :stacksize=2M:\ :memorylocked=4M:\ :memoryuse=8M:\ :filesize=8M:\ :coredumpsize=8M:\ :openfiles=24:\ :maxproc=32:\ :priority=0:\ :requirehome:\ :passwordtime=91d:\ :umask=022:\ :ignoretime@:\ :label=biba/10(10-10):

461

Fejezet 16. Ktelez hozzfrs-vezrls (MAC) Valamint egsztsk ki az alaprtelmezett (default) felhasznli osztlyt a kvetkez sorral:
:label=biba/high:

Ahogy ezzel elkszltnk, az hozztartoz adatbzis jbli legyrtshoz a kvetkez parancsot kell kiadnunk:
# cap_mkdb /etc/login.conf

16.15.2. A rendszerindtssal kapcsolatos belltsok


Mg ne indtsuk jra a szmtgpet, csupn a szksges modulok betltshez bvtsk ki a /boot/loader.conf llomnyt az albbi sorokkal:
mac_biba_load="YES" mac_seeotheruids_load="YES"

16.15.3. A felhasznlk belltsa


Soroljuk be a root felhasznlt a default osztlyba:
# pw usermod root -L default

Az sszes root felhasznln kvli hozzfrsnek vagy rendszerfelhasznlnak most kelleni fog egy bejelentkezsi osztly. A bejelentkezsi osztlyra egybknt is szksg lesz, mert ennek hinyban a felhasznlk mg az olyan egyszer parancsokat sem tudjk kiadni, mint pldul a vi(1). A kvetkez sh szkript neknk erre pontosan megfelel:
# for x in awk -F: ($3 >= 1001) && ($3 != 65534) { print $1 } \ /etc/passwd; do pw usermod $x -L default; done;

Helyezzk t a nagios s www felhasznlkat az insecure osztlyba:


# pw usermod nagios -L insecure # pw usermod www -L insecure

16.15.4. A contexts llomny ltrehozsa


Most csinlnunk kell egy contexts llomnyt. Ebben pldban az /etc/policy.contexts llomnyt hasznljuk.
# Ez a rendszer alaprtelmezett BIBA hzirendje. # Rendszer: /var/run /var/run/* /dev /dev/*

biba/equal biba/equal biba/equal biba/equal

462

Fejezet 16. Ktelez hozzfrs-vezrls (MAC)


/var biba/equal /var/spool /var/spool/* /var/log /var/log/* /tmp biba/equal /tmp/* biba/equal /var/tmp biba/equal /var/tmp/* biba/equal /var/spool/mqueue biba/equal /var/spool/clientmqueue biba/equal # Nagios: /usr/local/etc/nagios /usr/local/etc/nagios/* /var/spool/nagios /var/spool/nagios/* # Apache: /usr/local/etc/apache /usr/local/etc/apache/*

biba/equal biba/equal biba/equal biba/equal

biba/10 biba/10 biba/10

biba/10 biba/10

Ezzel a hzirenddel az informci ramlst szablyozzuk. Ebben a konkrt kongurciban a felhasznlk, a root s trsai, nem frhetnek hozz a Nagioshoz. A Nagios belltsait trol llomnyok s a neve alatt fut programok gy teljesen klnvlnak vagyis elzrdnak a rendszer tbbi rsztl. Ez az imnti llomny a kvetkez parancs hatsra kerl be a rendszernkbe:
# setfsmac -ef /etc/policy.contexts / # setfsmac -ef /etc/policy.contexts /

Megjegyzs: A fenti llomnyrendszer felptse a krnyezettl fggen eltrhet, habr ezt minden egyes llomnyrendszeren le kell futtatni.

Az /etc/mac.conf llomnyt trzst a kvetkezkppen kell mg trnunk:


default_labels default_labels default_labels default_labels file ?biba ifnet ?biba process ?biba socket ?biba

463

Fejezet 16. Ktelez hozzfrs-vezrls (MAC)

16.15.5. A hlzat engedlyezse


Tegyk hozz a kvetkez sort az /boot/loader.conf llomnyhoz:
security.mac.biba.trust_all_interfaces=1

Ezt az albbi belltst pedig szrjuk be az rc.conf llomnyba a hlzati krtya kongurcijhoz. Amennyiben az internetet DHCP segtsgvel rjk el, ezt a belltst manulisan kell megtenni minden rendszerindts alkalmval:
maclabel biba/equal

16.15.6. A kongurci kiprblsa


Gondoskodjunk rla, hogy a webszerver s a Nagios nem fog elindulni a rendszer indtsakor, majd indtsuk jra a gpet. Ezenkvl mg ellenrizzk, hogy a root ne tudjon hozzfrni a Nagios belltsait tartalmaz knyvtrhoz. Ha a root kpes kiadni egy ls(1) parancsot a /var/spool/nagios knyvtrra, akkor valamit elronthattunk. Normlis esetben egy permission denied zenetet kell kapnunk. Ha minden jnak tnik, akkor a Nagios, Apache s Sendmail most mr elindthat a biztonsgi hzirend szablyozsai szerint. Ezt a kvetkez parancsokkal tehetjk meg:
# cd /etc/mail && make stop && \ setpmac biba/equal make start && setpmac biba/10\(10-10\) apachectl start && \ setpmac biba/10\(10-10\) /usr/local/etc/rc.d/nagios.sh forcestart

Ktszer is ellenrizzk, hogy minden a megfelel mdon viselkedik-e. Ha valamilyen furcsasgot tapasztalunk, akkor nzzk t a naplkat vagy a hibazeneteket. A sysctl(8) hasznlatval tiltsuk le a mac_biba(4) biztonsgi modult s prbljunk meg mindent a szokott mdon jraindtani.
Megjegyzs: A root felhasznl klnsebb aggodalom nlkl kpes megvltoztatni a biztonsgi rend betartatst s trni a kongurcis llomnyokat. Egy frissen indtott parancsrtelmez szmra ezzel a paranccsal tudjuk cskkenteni a biztonsgi besorolst:
# setpmac biba/10 csh

Ennek kivdsre a felhasznlkat a login.conf(5) belltsaival le kell korltozni. Ha a setpmac(8) megprbl a rekesz hatrain tl futtatni egy parancsot, akkor hibt ad vissza s a parancs nem fut le. Ebben az esetben a root felhasznlt tegyk a biba/high(high-high) rtkek kz.

16.16. A felhasznlk korltozsa


Ebben a pldban egy viszonylag kicsi, nagyjbl mindssze tven felhasznls, adattrolsra hasznlatos rendszert vesznk alapul. A felhasznlk rendelkezhetnek bizonyos bejelentkezsi tulajdonsgokkal, s nem csak adatokat tudnak trolni, hanem az erforrsokhoz is hozz tudnak frni. Itt most a mac_bsdextended(4) s a mac_seeotheruids(4) modulokat vetjk be egyttesen, s nem csak a rendszer objektumainak elrst tudjuk megakadlyozni, hanem az egyes felhasznlk fut programjait is elrejtjk.

464

Fejezet 16. Ktelez hozzfrs-vezrls (MAC) A mveletet kezdjk azzal, hogy a /boot/loader.conf llomnyt kibvtjk a kvetkez mdon:
mac_seeotheruids_load="YES"

A mac_bsdextended(4) biztonsgi modul az albbi rc.conf-vltozval hozhat mkdsbe:


ugidfw_enable="YES"

A hozztartoz alaprtelmezett szablykszlet az /etc/rc.bsdextended llomnyban troldik, amely pedig a rendszer indtsa sorn tltdik be. Ezeket nmileg mdostanunk kell majd. Mivel a pldban szerepl szmtgp csak a felhasznlk kiszolglst hivatott elltni, az utols kett kivtelvel mindent hagyhatunk megjegyzsben. gy kiknyszertjk felhasznlk ltal birtokolt rendszerobjektumok alaprtelmezs szerinti betltst. Vegyk fel a szksges felhasznlkat a szmtgpre s indtsuk jra. Tesztelsi clbl prbljunk meg klnbz felhasznlkknt bejelentkezni kt konzolon. Futassuk le a ps aux parancsot, s gy meg tudjuk gyelni, hogy mennyire ltjuk a tbbi felhasznlt. Amikor megprbljuk kiadni a ls(1) parancsot a tbbiek felhasznli knyvtraira, akkor hibt kell kapnunk. Ne prblgassunk a root felhasznlval, hacsak a megfelel sysctl vltozkban be nem lltottuk az hozzfrsnek blokkolst is.
Megjegyzs: Amikor felveszk egy felhasznlt a rendszerbe, a hozztartoz mac_bsdextended(4) szably nem fog szerepelni a szablyrendszerben. A szablyrendszer gyors frisstst gy tudjuk megoldani, ha a kldunload(8) hasznlatval egyszeren eltvoltjuk a biztonsgi modult a memribl s jratltjk a kldload(8) paranccsal.

16.17. A hibk elhrtsa a MAC rendszerben


A fejleszts fzisban bizonyos norml kongurcival rendelkez felhasznlk gondokat jeleztek. Ezeket foglaljuk most itt ssze:

16.17.1. A multilabel bellts nem adhat meg a / llomnyrendszerre


A multilabel bellts nem marad meg a rendszerindt (/) partcimon! A tapasztalatok szerint krlbell minden tvenedik felhasznl szembesl ezzel a problmval, s mi is tallkozunk vele a kezdeti kongurcik kialaktsa sorn. Ennek az gynevezett hibnak a behatbb tanulmnyozsa sorn arra jutottunk, hogy ez tbbnyire vagy a hibs dokumentlsbl vagy a dokumentci flrertelmezsbl ered. Fggetlen attl, hogy ez mitl is kvetkezett be, a kvetkez lpsek megttelvel orvosolhatjuk: 1. 2. 3. Nyissuk meg az /etc/fstab llomnyt s adjuk meg a rendszerindt partcinak az ro, vagyis az rsvdett (read-only) belltst. Indtsuk jra a gpet egyfelhasznls mdban. A tunefs -l enable parancsot futtassuk le a / llomnyrendszeren.

465

Fejezet 16. Ktelez hozzfrs-vezrls (MAC) 4. 5. 6. Indtsuk jra a rendszert norml mdban. Adjuk ki a mount -urw / parancsot, majd az /etc/fstab llomnyban rjuk t a ro belltst az rw rtkre s megint indtsuk jra a rendszert. Alaposan nzzk t a mount parancs kimenett s gyzdjnk meg rla, hogy a multilabel opci valban belltdott a rendszerindt llomnyrendszerre.

16.17.2. A MAC utn nem lehet indtani az X11 szervert


Nem indul az X, miutn MAC-kel kialaktottunk egy biztonsgos krnyezetet! Ezt vagy a MAC partition hzirendje okozza, vagy az egyik cmkkeket hasznl hzirend helytelen belltsa. A kvetkez mdon derthetjk ki az okt: 1. Figyelmesen olvassuk el a hibazenetet: ha a felhasznl az insecure osztly tagja, akkor a partition hzirend lesz a bns. Prbljuk meg a felhasznlt visszatenni a default osztlyba s a cap_mkdb paranccsal jragenerlni az adatbzist. Ha ez nem segt a problmn, akkor haladjunk tovbb. Alaposan ellenrizzk a cmkkhez tartoz hzirendeket. Vizsgljuk meg, hogy a krdeses felhasznl esetben a hzirendet s az X11 alkalmazst, valamint a /dev eszkzket tnyleg jl lltottuk be. Ha az imntiek egyik sem oldja meg gondunkat, kldjk el a hibazenetet s a krnyezetnk rvid lerst a a TrustedBSD (http://www.TrustedBSD.org) honlapjrl elrhet TrustedBSD levelezsi lista vagy a FreeBSD general questions levelezsi lista (http://lists.FreeBSD.org/mailman/listinfo/freebsd-questions) cmre.

2. 3.

16.17.3. Hiba: _secure_path(3) cannot stat .login_conf


Amikor a rendszerben megprblok a root felhasznlrl tvltani egy msik felhasznlra, a _secure_path: unable to state .login_conf hibazenet jelenik meg. Ez az zenet ltalban akkor lthat, amikor a felhasznl nagyobb rtk cmkvel rendelkezik annl, mint akiv vlni akar. Pldul vegyk a joska nev felhasznlt a rendszerben, aki az alap biba/low cmkvel rendelkezik. A root felhasznl, akinek biba/high cmkje van, nem lthatja joska felhasznli knyvtrt. Ez attl fggetlenl megtrtnik, hogy a root a su paranccsal vltott t a joska nev felhasznlra vagy sem. Egy ilyen helyzetben a Biba srtetlensgi modellje nem fogja engedni a root felhasznlra szmra, hogy lthassa a kevsb srtetlen objektumokat.

16.17.4. A root felhasznl nem megy!


A rendszer norml vagy egyfelhasznls mdban sem ismeri fel a root felhasznlt. A whoami parancs 0 (nullt) ad vissza s a su parancs pedig annyit mond: who are you? (ki vagy?). Mi trtnhetett? Ez csak olyankor trtnhet, ha a cmkzsi hzirendet nem engedlyezzk, vagy a sysctl(8) hasznlatval, vagy pedig a modul eltvoltsval. Ha a hzirendet letiltjuk vagy ideiglenesen letiltdik, akkor a bejelentkezsi tulajdonsgokat trol adatbzist a label bellts eltvoltsval kell jrakongurlni. A login.conf llomnybl ne felejtsk el kivenni az sszes label belltst s a cap_mkdb paranccsal jragenerlni az adatbzist.

466

Fejezet 16. Ktelez hozzfrs-vezrls (MAC) Ilyen akkor is elfordulhat, amikor a hzirend valamilyen mdon korltozza a master.passwd llomny vagy adatbzis elrhetsgt. Ezt ltalban az okozza, hogy a rendszergazda az llomnyt olyan cmke alatt mdostja, amely tkzik a rendszerben alkalmazott ltalnos hzirenddel. Ebben az esetekben a rendszer prblja meg beolvasni a felhasznlk adatait, azonban mivel kzben az llomny j cmkt rklt, nem fr hozz. Ha a sysctl(8) paranccsal letiltjuk a hzirendet, minden vissza fog trni a rendes kerkvgsba.

Megjegyzsek
1. Ms felttelek mellett msmilyen hibk keletkezhetnek. Pldul, ha egy olyan objektumot prblunk jracmkzni, amely nincs a felhasznl birtokban, esetleg nem is ltezik vagy rsvdett. Addhat, hogy a ktelez hzirend az llomny, a program, vagy az j cmkertk tulajdonsgai miatt nem fogja lehetv tenni egy fut program szmra egy llomny jracmkzst. Nzzk erre egy pldt: egy kevsb srtetlen felhasznl megprblja megvltoztatni egy sokkal srtetlenebb llomny cmkjt. Vagy egy kevsb srtetlen felhasznl sokkal srtetlenebbre akarja lltani egy kevsb srtetlen llomny cmkjt.

467

Fejezet 17. Biztonsgi esemnyek vizsglata


rta: Tom Rhodes s Robert Watson.

17.1. ttekints
A FreeBSD tmogatja a biztonsgi esemnyek aprlkos vizsglatt. Ezzel egy megbzhat, rszletes s jl kongurlhat naplzsi rendszert nyjtanak a rendszerben tallhat biztonsgot ignyl esemnyek szles krhez, belertve a bejelentkezseket, a kongurcis llomnyokban bekvetkez vltozsokat, llomny- s hlzati hozzfrseket. Az gy ltrehozott naplbejegyzsek felbecslhetetlen rtknek bizonyulhatnak egy l rendszer felgyelete sorn, vagy egy hlzati tmads szlelshez, esetleg egy sszeomls okainak kielemezshez. A FreeBSD ehhez a Sun ltal kifejlesztett BSM technolgia API-jt s llomnyformtumt valstja meg, s gy kpes egyttmkdni a Sun Solaris valamint az Apple Mac OS X bizonsgi rendszereivel egyarnt. Ebben a fejezetben a biztonsgi esemnyek vizsglatnak teleptshez s belltshoz szksges ismeretek tekintjk t. Ennek keretben sz esik a vizsglati hzirendekrl, valamint mutatunk egy pldt a vizsglatok belltsra. A fejezet elolvassa sorn megismerjk:

mit jelent az esemnyek vizsglata s hogyan mkdik; hogyan kell belltani az esemnyek vizsglatt FreeBSD-n a klnbz felhasznlk s programok esetn; hogyan rtelmezzk a vizsglati nyomokat a vizsglatot szkt s -elemz segdprogramok segtsgvel.

A fejezet elolvasshoz ajnlott:


alapvet UNIX-os s FreeBSD-s ismeretek (3 fejezet); a rendszermag kongurlsval s fordtsval kapcsolatos tudnivalk alapszint ismerete (8 fejezet); az informatikai biztonsg alapfogalmainak s annak a FreeBSD-re vonatkoz rszleteinek minimlis ismerete (14 fejezet).
FigyelemAz esemnyek vizsglatval kapcsolatos ismert korltozsok: nem mindegyik biztonsgot rint esemny vizsglhat, mint pldul az egyes bejelentkezsi tpusok, mivel azok nem megfelelen hitelestik a belp felhasznlkat. Ilyenek pldul az X11-alap felletek s az egyb, erre a clra alkalmas, ms ltal fejlesztett dmonok. A biztonsgi esemnyek vizsglata sorn a rendszer kpes nagyon rszletes naplkat kszteni az rintett tevkenysgekrl. gy egy kellen forgalmas rendszeren az llomnymozgsok alapos nyomonkvetse bizonyos kongurcikon akr gigabyte-okat is kitehet hetente. A rendszergazdknak ezrt mindig javasolt szmolniuk a nagy forgalm esemnyek biztonsgi vizsglatnak trignyvel. Pldul, emiatt rdemes lehet egy egsz llomnyrendszert sznni erre a feladatra a /var/audit knyvtrban, s gy a tbbi llomnyrendszer nem ltja krt, ha vletlenl betelne ez a terlet.

468

Fejezet 17. Biztonsgi esemnyek vizsglata

17.2. A fejezet fontosabb fogalmai


A fejezet elolvassa eltt meg kell ismernnk nhny fontos alapfogalmat:

esemny: Vizsglhat esemnynek azt az esemnyt nevezzk, amely egy vizsglati alrendszerben naplzhat. Biztonsgi esemnyek lehetnek pldul: egy llomny ltrehozsa, egy hlzati kapcsolat felptse, vagy egy felhasznl bejelentkezse. Egy esemny jellegzetes, ha visszakvethet valamelyik hitelestett felhasznlhoz, vagy nem jellegzetes, ha ez nem lehetsges. Nem jellegzetes esemny lehet minden olyan esemny, amely egy bejelentkezsi folyamat hitelestsi lpse eltt trtnik, pldul egy belpsi ksrlet hibs jelszval. osztly: Esemnyosztlynak az sszefgg esemnyek nvvel elltott halmazt tekintjk, s szrsi felttelekben hasznljuk ezeket. ltalban alkalmazott osztlyok: le creation (fc, llomnyltrehozs), exec (ex, programindts), s login_logout (lo, ki- s bejelentkezs). rekord: Rekordnak nevezzk a biztonsgi esemnyeket ler biztonsgi naplbejegyzseket. A rekordok tartalmazhatjk a feljegyzett esemny tpust, az esemnyt kivlt tevkenysget (felhasznlt), a dtumot s az idt, tetszleges objektum vagy paramter rtkt, felttelek teljeslst vagy meghisulst. nyom: Vizsglati nyomnak vagy naplllomnynak nevezzk a klnfle biztonsgi esemnyeket ler vizsglati rekordok sorozatt. A nyomok tbbnyire nagyjbl az esemnyek bekvetkezse szerinti idrendben kvetkeznek. Csak s kizrlag az erre felhatalmazott programok hozhatnak ltre rekordokat a vizsglati nyomban. szrsi felttel: Szrsi felttelnek neveznk egy olyan karakterlncot, amelyet esemnyek szrsre hasznlunk, s mdostkat valamint esemnyosztlyok neveit tartalmazza. elvlogats: Elvlogatsnak nevezzk a folyamatot, amelynek sorn a rendszer beazonostja azokat az esemnyeket, amelyek a rendszergazda szmra fontosak. Ezltal elkerlhetjk olyan vizsglati rekordok generlst, amelyek szmunkra rdektelen esemnyekrl szmolnak be. Az elvlogats szrsi felttelek sort hasznlja az adott felhasznlkhoz tartoz adott biztonsgi esemnyek vizsglatnak belltshoz, akrcsak a hitelestett s a nem hitelestett programokat rtint globlis belltsok meghatrozshoz. leszkts: Leszktsnek nevezzk a folyamatot, amelynek sorn a mr meglev biztonsgi rekordokbl vlogatunk le trolsra, nyomtatsra vagy elemzsre. Hasonlan ez a folyamat, ahol a szksgtelen rekordokat eltvoltjuk a vizsglatai nyombl. A leszkts segtsgvel a rendszergazdk a vizsglati adatok eltrolsra alakthatnak ki hzirendet. Pldul a rszletesebb vizsglati nyomokat rdemes egy hnapig megtartani, ennek lejrtval viszont mr inkbb ajnlott leszkteni ezeket s archivlsra csak a bejelentkezsi informcikat megtartani.

17.3. A vizsglat tmogatsnak teleptse


A esemnyvizsglathoz szksges felhasznli programok a FreeBSD alaprendszer rszt kpezik. Az esemnyvizsglat tmogatsa alaprtelmezs szerint megtallhat a rendszermagban, azonban egy sajt rendszermag esetn mr kln be kell kapcsolnunk a megfelel tmogatst, mgpedig a rendszermag kongurcis llomnyban az albbi sor hozzadsval:
options AUDIT

Fordtsuk s teleptsk jra a rendszermagot az 8 fejezetben ismertetett folyamat szerint. Ahogy a rendszermagot a bekapcsolt esemnyvizsglati tmogatssal sikerlt lefordtanunk s teleptennk, valamint a rendszernk is jraindult, indtsuk el a vizsgl dmont a kvetkez sor hozzadsval az rc.conf(5) llomnyban:

469

Fejezet 17. Biztonsgi esemnyek vizsglata


auditd_enable="YES"

A vizsglatot innentl tnylegesen egy ismtelt jraindtssal vagy pedig az elbb emltett dmon manulis elindtsval aktivlhatjuk:
/etc/rc.d/auditd start

17.4. A vizsglat belltsa


A vizsglatok belltshoz szksges sszes kongurcis llomny a /etc/security knyvtrban tallhat. A kvetkez llomnyok vannak itt a dmon indtsa eltt:
audit_class -

a vizsglati osztlyok denciit tartalmazza.

audit_control -

a vizsglati alrendszer klnbz terleteit vezrli, tbbek kzt az alaprtelmezett vizsglati osztlyokat, az vizsglati adatok trhelyn fenntartand minimlis lemezterletet, a vizsglati nyom maximlis mrett, stb. a rendszerben jelenlev vizsglati esemnyek szveges megnevezse s lersa, valamint a lista, hogy melyikk mely osztlyban tallhat. felhasznlnknt vltoz vizsglati elvrsok, kombinlva a bejelentkezskor rvnyes globlisan alaprtelmezett belltsokkal. az auditd ltal hasznlt testreszabhat shell szkript, aminek segtsgvel a szlssges helyzetekben gyelmeztet zeneteket tudunk generlni, mint pldul amikor a rekordok szmra fenntartott hely hamarosan elfogy, vagy amikor a nyomokat tartalmaz llomnyt archivltuk.
FigyelemAz esemnyvizsglat kongurcis llomnyait alapos krltekints mellett szabad szerkeszteni s karbantartani, mivel a bennk keletkez hibk az esemnyek helytelen naplzst eredmnyezhetik.

audit_event -

audit_user -

audit_warn -

17.4.1. Esemnyszrsi felttelek


Az esemnyvizsglati belltsok sorn szmtalan helyen felbukkanak a vizsglni kvnt esemnyeket meghatroz szrsi felttelek. Ezen felttelek esemnyosztlyok felsorolst tartalmazzk, mindegyikket egy mdost vezeti be, ezzel jelezve, hogy az adott esemnyosztlyba tartoz rekordokat tartsuk meg vagy vessk el. Esetleg utalhatnak arra is, hogy vagy csak a sikeressget jelz rekordokat, vagy csak a sikertelensget jelz rekordokat szrjk ki. A szrsi felttelek balrl jobbra rtkeldnek ki, s kt kifejezs sszefzssel kombinlhat. A most kvetkez lista tartalmazza a audit_class llomnyban tallhat alaprtelmezett esemnyvizsglati osztlyokat:
all ad

- all (mind) - Minden esemnyosztlyra vonatkozik.

- administrive (adminisztrcis) - olyan adminisztrcis tevkenysgek, amelyek egyben az egsz rendszeren vgrehajtdnak. - application (alkalmazs) - az alkalmazsok ltal meghatrozott tevkenysg.

ap

470

Fejezet 17. Biztonsgi esemnyek vizsglata


cl ex

- le close (llomny lezrsa) - a close rendszerhvs meghvsnak vizsglata.

- exec (programindts) - egy program indtsnak vizsglata. A parancssorban tadott paramterek s a krnyezeti vltozk vizsglatt az audit_control(5) vezrli a policy belltshoz tartoz argv s envv paramterek segtsgvel. - le attribute access (llomnyjellemzk hozzfrse) - a rendszerbeli objektumok jellemzinek hozzfrsnek vizsglata, mint pldul a stat(1), pathconf(2) s ehhez hasonl esemnyek. - le create (llomny ltrehozsa) - llomnyt eredmnyez esemnyek vizsglata. - le delete (llomny trlse) - llomnyt trl esemnyek vizsglata.

fa

fc fd fm

- le attribute modify (llomnyjellemzk mdostsa) - llomnyok jellemzit megvltoztat esemnyek vizsglata, mint pldul a chown(8), chags(1), ock(2), stb.

fr

- le read (llomnyolvass) - llomnyok megnyitsval olvassra, olvassval, stb. kapcsolatos esemnyek vizsglata.

fw

- le write (llomnyrs) - llomnyok megnyitsval rsra, rsval, mdostsval, stb. kapcsolatos esemnyek vizsglata. - ioctl - az ioctl(2) rendszerhvst hasznl esemnyek vizsglata.

io ip

- ipc - a folyamatok kzti kommunikci klnfle forminak, belertve a POSIX csvek s System V IPC mveleteinek vizsglata. - login_logout (ki- s bejelentkezs) - a rendszerben megjelen login(1) s logout(1) esemnyek vizsglata. - non attributable (nem jellegzetes) - a nem jellegzetes esemnyek vizsglata. - invalid class (rvnytelen osztly) - egyetlen biztonsgi esemnyt sem tartalmaz. - network (hlzat) - a hlzathoz tartoz esemnyek vizsglata, mint pldul a connect(2) s az accept(2). - other (egyb) - ms egyb esemnyek vizsglata. - process (folyamat) - a folyamatokkal kapcsolatos mveletek, mint pldul az exec(3) s az exit(3) vizsglata.

lo na no nt ot pc

Az imnt felsorolt esemnyosztlyok az audit_class s az audit_event llomnyok mdostsval igny szerint testreszabhatak. A listban szerepl minden egyes esemnyosztlyhoz tartozik mg egy mdost is, amely jelzi, hogy a sikeres vagy a sikertelen mveleteket kell-e szrnnk, valamint hogy a bejegyzs az adott tpust vagy osztlyt hozzadja vagy elveszi az adott szrsbl.

(res) az adott tpusbl mind a sikereseket s mind a sikerteleneket feljegyzi. az esemnyosztlyba tartoz sikeres esemnyeket vizsglja csak. az esemnyosztlyba tartoz sikertelen esemnyeket vizsglja csak. az esemnyosztlybl sem a sikereseket, sem pedig a sikerteleneket nem vizsglja. az esemnyosztlybl nem vizsglja a sikeres esemnyeket. az esemnyosztlybl nem vizsglja a sikertelen esemnyeket.

+ ^

^+ ^-

Az albbi plda egy olyan szrsi felttelt mutat be, amely a ki- s bejelentkezsek kzl megadja a sikereset s a sikerteleneket, viszont a programindtsok kzl csak a sikereseket:
lo,+ex

471

Fejezet 17. Biztonsgi esemnyek vizsglata

17.4.2. A kongurcis llomnyok


A vizsglati rendszer belltshoz az esetek tlnyom rszben a rendszergazdknak csupn kt llomnyt kell mdostaniuk: ezek az audit_control s az audit_user. Az elbbi felels a rendszerszint vizsglati jellemzkrt s hzirendekrt, mg az utbbi az ignyek felhasznlknti nomhangolshoz hasznlhat.

17.4.2.1. Az audit_control llomny


Az audit_control llomny hatrozza meg a vizsglati alrendszer alaprtelmezseit. Ezt az llomnyt megnyitva a kvetkezket lthatjuk:
dir:/var/audit flags:lo minfree:20 naflags:lo policy:cnt filesz:0

A dir opcit hasznljuk a vizsglati naplk trolsra szolgl egy vagy tbb knyvtr megadsra. Ha egynl tbb knyvtrra vonatkoz bejegyzs tallhat az llomnyban, akkor azok a megads sorrendjben kerlnek feltltsre. Nagyon gyakori az a bellts, ahol a vizsglati naplkat egy erre a clra kln kialaktott llomnyrendszeren troljk, megelzve ezzel az llomnyrendszer betelsekor keletkez problmkat a tbbi alrendszerben. A flags mez egy rendszerszint alaprtelmezett elvlogatsi maszkot hatroz meg a jellegzetes esemnyek szmra. A fenti pldban a sikeres s sikertelen ki- s bejelentkezseket mindegyik felhasznl esetn vizsgljuk. A minfree opci megszabja a vizsglati nyom trolsra sznt llomnyrendszeren a minimlis szabad helyet, a teljes kapacits szzalkban. Amint ezt a kszbt tllpjk, egy gyelmeztets fog generldni. A fenti plda a minimlisan szksges rendelkezsre ll helyet hsz szzalkra lltja. A naflags opci megadja azokat az esemnyosztlyokat, amelyeket vizsglni kell a nem jellegzetes esemnyek, mind pldul a bejelentkezsi folyamatok vagy rendszerdmonok esetn. A policy opci a vizsglat klnbz szempontjait irnyt hzirendbeli belltsok vesszvel elvlasztott listjt tartalmazza. Az alaprtelmezett cnt bellts azt adja meg, hogy a rendszer a felmerl vizsglati hibk ellenre is folytassa tovbb a mkdst (ersen javasolt a hasznlata). A msik gyakorta alkalmazott bellts az argv, amellyel a rendszer a parancsvgrehajts rszeknt az execve(2) rendszerhvs parancssori paramtereit is megvizsglja. A filesz opci hatrozza meg a vizsglati nyom automatikus sztvgsa s archivlsa eltti maximlis mrett, byte-ban. Az alaprtelmezett rtke a 0, amely kikapcsolja ezt az archivlst. Ha az itt megadott llomnymret nem nulla s a minimlisan elvrt 512 KB alatt van, akkor a rendszer gyelmen kvl hagyja s errl egy gyelmeztetst ad.

17.4.2.2. Az audit_user llomny


Az audit_user llomny lehetv teszi a rendszergazda szmra, hogy az egyes felhasznlk szmra tovbbi vizsglati szigortsokat hatrozzon meg. Minden sor egy-egy felhasznl vizsglatnak pontostst adja meg kt mez segtsgvel: az els kzlk az alwaysaudit mez, mely felsorolja azokat az esemnyeket, amelyeket minden esetben vizsgni kell az adott felhasznl esetn, valamint a msodik a neveraudit mez, mely az adott felhasznl esetn a nem vizsgland esemnyeket adja meg.

472

Fejezet 17. Biztonsgi esemnyek vizsglata A most kvetkez audit_user pldban vizsgljuk a root felhasznl ki- s bejelentkezseit s sikeres programindtsait, valamint a www felhasznl llomnyltrehozsait s sikeres programindtsait. Ha a korbban bemutatott audit_control pldval egytt hasznljuk, akkor szrevehetjk, hogy a lo bejegyzs a root felhasznl esetn redundns, illetve ilyenkor a ki/bejelentkezst a www felhasznl esetn is vizsgljuk.
root:lo,+ex:no www:fc,+ex:no

17.5. A vizsglati alrendszer hasznlata


17.5.1. A vizsglati nyomok megtekintse
A vizsglati nyomok a BSM binris formtumban troldnak, ezrt a tartalmnak konvertlshoz s mdostshoz kln segdprogramokra van szksg. A praudit(1) parancs a nyomllomnyokat egyszer szveges formtumra alaktja, az auditreduce(1) parancs pedig a nyomok elemzshez, archivlshoz vagy nyomtatshoz szksges leszktsket vgzi el. Az auditreduce a szrsi felttelek paramtereinek szles skljt kezeli, belertve az esemnytpusokat, -osztlyokat, felhasznlkat, esemnyek dtumt vagy idpontjt, llomnyok elrsi tvonalt vagy az ltaluk rintett objektumokat. Pldul a praudit segdprogram kpes kilistzni szvegesen egy adott vizsglati napl teljes tartalmt:
# praudit /var/audit/AUDITFILE

ahol az AUDITFILE a kirand vizsglati napl. A vizsglati nyomok tokenekbl sszelltott vizsglati rekordok, amelyeket a praudit egyms utn soronknt megjelent. Minden token adott tpus, pldul a header egy vizsglati rekord fejlct tartalmazza, vagy a path, amely a nvfeloldsbl szrmaz elrsi utat tartalmaz. A kvetkez plda egy execve esemnyt mutat be:
header,133,10,execve(2),0,Mon Sep 25 15:58:03 2006, + 384 msec exec arg,finger,doug path,/usr/bin/finger attribute,555,root,wheel,90,24918,104944 subject,robert,root,wheel,root,wheel,38439,38032,42086,128.232.9.100 return,success,0 trailer,133

Ez a vizsglat egy sikeres execve hvst rgzt, ahol a finger doug parancs futott le. A paramtereket tartalmaz token magban foglalja a shell ltal a rendszermag fel jelzett parancsot s annak paramtert egyarnt. A path token trolja a vgrehajtott llomny rendszermag ltal feloldott elrsi tjt. A attribute token errl a binrisrl ad tovbbi informcikat, klnsen az llomny mdjrl, amely segt megllaptani, hogy az adott alkalmazsnl be volt-e lltva a setuid bit. A subject token lerja az rintett folyamatot s rendre megjegyzi a vizsglt felhasznl azonostjt, az aktulisan rvnyben lev felhasznl s csoport azonostjt, a vals felhasznli s csoport azonostt, a folyamat azonostjt, a munkamenet azonostjt, a port azonostjt s a bejelentkezshez hasznlt hlzati cmet. Vegyk szre, hogy a vizsglt felhasznl azonostja s a valdi azonostja eltr egymstl: a robert nev felhasznl a root accountjra vltott a parancs futattsa eltt, de az eredetileg hitelestett

473

Fejezet 17. Biztonsgi esemnyek vizsglata felhasznljaknt lett vizsglva. Vgezetl a return token jelzi a sikeres vgrehajtst, s a trailer pedig zrja a rekordot.

17.5.2. A vizsglati nyomok leszktse


Mivel a vizsglatokhoz tartoz naplk akr egszen nagyok is lehetnek, ezrt a rendszergazdnak minden bizonnyal szksge lehet a szmra fontos, pldul egy adott felhasznlhoz tartoz rekordok kivlogatsra:
# auditreduce -u trhodes /var/audit/AUDITFILE | praudit

Ezzel ki tudjuk szrni a trhodes nev felhasznlhoz tartoz sszes vizsglati rekordot az AUDITFILE llomnybl.

17.5.3. A naplk megtekintshez szksges jogok tovbbadsa


Az audit csoport tagjai olvashatjk a /var/audit knyvtrban tallhat vizsglati nyomokat. Alaprtelmezs szerint ez a csoport res, ezrt csak a root kpes ekkor vizsglni a nyomokat. A tbbi felhasznl szmra gy tudunk olvassi jogot biztostani, ha felvesszk ket az audit csoportba. Mivel a vizsglati naplk tartalmnak gyelse jelents rltst adhat a rendszerben jelenlev felhasznlk s folyamatok viselkedsre, ajnlott krltekinten kiosztani az olvassi jogokat.

17.5.4. l rendszerfelgyelet a vizsglati csvekkel


A vizsglati csvek az eszkzk llomnyabsztrakciit klnozzk le, s ezzel teszik lehetv az alkalmazsok szmra, hogy menet kzben megcsapolhassk a meggyelt eszkzk adatait. Ez az elsdleges clja a klnbz betrsgyel s rendszerfelgyeleti eszkzk ksztinek. A rendszergazda szmra azonban a vizsglati csvek megknnytik az l meggyelst, mert itt nem merlnek fel a nyomok jogosultsgaibl vagy az archivls miatt megszakad esemnyfolyamokbl add problmk. Az l esemnyfolyamra az albbi parancs kiadsval lehet rcsatlakozni:
# praudit /dev/auditpipe

Alaprtelmezs szerint a vizsglati cshz tartoz csompontok kizrlag csak a root felhasznl rszre rhetek el. Az audit csoport tagjai gy tudnak majd hozzfrni, ha felvesszk a kvetkez devfs szablyt a devfs.rules llomnyba:
add path auditpipe* mode 0440 group audit

A devfs llomnyrendszer belltsrl bvebben lsd a devfs.rules(5) oldalt.


FigyelemKnnyen gerjedst lehet elidzni a vizsglt esemnyek meggyelsvel, amikor is az egyes esemnyek megtekintse jabb vizsgland esemnyek sorozatt indtjk el. Pldul, ha az sszes hlzati forgalmat egyszerre vizsgljuk s a praudit(1) egy SSH-munkameneten keresztl fut, akkor a vizsglati esemnyek tmntelen radata indul meg, mivel minden kirand esemny egy jabb esemnyt indukl. Ennek elkerlse rdekben ajnlott a praudit parancsot rszletes forgalmat nem gyel vizsglati csvel elltott munkameneten keresztl elindtani.

474

Fejezet 17. Biztonsgi esemnyek vizsglata

17.5.5. A vizsglati nyomok archivlsa


A vizsglati nyomokat egyedl a rendszermag kpes rni, illetve csak a vizsglati dmon, az auditd kpes felgyelni. A rendszergazdknak ebben az esetben teht nem szabad hasznlniuk a newsyslog.conf(5) vagy a hozz hasonl eszkzk hasznlatt a vizsglati naplk archivlshoz. Helyettk a audit segdprogramot javasolt hasznlni a vizsglatok lelltsra, a vizsglati rendszer jrakongurlsra vagy a napl archivlsnak elvgzsre. Az albbi parancs utastja a vizsglati dmont, hogy hozzon ltre egy j vizsglati naplt s jelzi a rendszermagnak, hogy vltson erre az j naplra. Az eddig hasznlt naplt lezrja s tnevezi, ami ezutn a rendszergazda ltal tetszlegesen feldolgozhat.
# audit -n

FigyelemHa az auditd dmon a parancs kiadsnk pillanatban nem futna, akkor hiba trtnik s errl hibazenetet kapunk.

A cron(8) segtsgvel tizenknt rnknt kiknyszerthetjk a naplk vltst, ha felvesszk a /etc/crontab llomnyba az albbi sort:
0 */12 * * * root /usr/sbin/audit -n

Ez a vltoztats akkor fog rvnybe lpni, ha elmentjk az j /etc/crontab llomnyt. A vizsglati nyomok mrete szerinti automatikus vlts is megvalsthat az audit_control(5) llomnyban szerepl filesz opci belltsval, amit meg is tallhatunk ebben a fejezetben, a kongurcis llomnyok belltsnl.

17.5.6. A vizsglati nyomok tmrtse


Mivel a vizsglati nyomok risira is megnhetnek, sokszor felmerl az igny, hogy lehessen ket tmrteni vagy ms egyb mdon archivlni a vizsglati dmon ltal lezrt nyomokat. Az audit_warn szkript hasznlhat a klnbz vizsglatokhoz kapcsold esemnyek esetn elvgzend mveletek megadshoz, belertve ebbe a vizsglati nyomok vltsakor elvgzett szablyos lezrst. Pldul a kvetkezket kell belernunk az audit_warn szkriptbe a nyomok lezrst kvet tmrtshez:
# # Lezrskor tmrti a vizsglati nyomot. # if [ "$1" = closefile ]; then gzip -9 $2 fi

Egyb archivlsi tevkenysgek lehetnek mg: a nyomok felmsolsa egy kzponti szerverre, a rgebbi nyomok trlse, vagy a meglev nyomok leszktse csak a fontos informcikra. A szkript csak akkor fog lefutni, ha a vizsglati nyomot sikerlt szablyosan lezrni, gy teht a szablytalan lellskor megmarad nyomok esetn nem. A FreeBSD 6.3 s ksbbi verziiban, a praudit XML kimeneti formtumot is tmogat, amely az -x kapcsolval rhet el.

475

Fejezet 18. Httrtrak


18.1. ttekints
Ez a fejezet arrl szl, hogy miknt hasznljuk a lemezeinket a FreeBSD-vel. Itt tbbek kzt sz esik a memria (alap) lemezekrl, a hlzaton keresztl csatlakoztatott meghajtkrl, a szabvnyos SCSI/IDE troleszkzkrl s az USB felletet hasznl eszkzkrl. A fejezet elolvassa sorn megismerjk:

a FreeBSD ltal alkalmazott terminolgit, amivel a zikai lemezeken elhelyezked adatokat rja le (partcik s slice-ok); hogyan bvtsk rendszernket tovbbi merevlemezekkel; hogyan lltsuk be a FreeBSD-t USB troleszkzk hasznlatra; hogyan lltsunk be virtulis llomnyrendszereket, pldul memrialemezeket; hogyan hasznljuk a kvtkat a lemezterlet hasznlatnak korltozsra; hogyan vdjket meg lemezeinket titkostssal az illetktelenektl; FreeBSD alatt hogyan ksztsnk s rjuk CD-ket, DVD-ket; a biztonsgi mentsek ksztsnek klnbz lehetsgeit; hogyan hasznljuk a FreeBSD alatt rendelkezsnkre ll, biztonsgi mentst kszt programokat; hogyan mentsnk oppy lemezekre; mik az llomnyrendszerek pillanatkpei s hogyan kell ezeket hatkonyan hasznlni.

A fejezet elolvasshoz ajnlott:

a FreeBSD rendszermag belltsnak s teleptsnek ismerete (8 fejezet)

18.2. Az eszkzk elnevezsei


A most kvetkez listban felsoroljuk a FreeBSD ltal ismert zikai troleszkzket s a hozzjuk tartoz elnevezseket. Tblzat 18-1. A zikai lemezek elnevezsnek szablyai A meghajt tpusa IDE merevlemezek IDE CD-meghajtk SCSI merevlemezek s USB troleszkzk SCSI CD-meghajtk Klnbz nem szabvnyos CD-meghajtk A meghajteszkz neve
ad acd da cd mcd (Mitsumi CD-ROM) s scd (Sony CD-ROM)

476

Fejezet 18. Httrtrak A meghajt tpusa Floppy meghajtk SCSI szalagos meghajtk IDE szalagos meghajtk Flash meghajt RAID meghajtk A meghajteszkz neve
fd sa ast fla (DiskOnChip Flash eszkz) aacd (Adaptec AdvancedRAID), mlxd s mlyd (Mylex), amrd (AMI MegaRAID), idad (Compaq Smart RAID), twed (3ware RAID).

18.3. Lemezek hozzadsa


Eredetileg rta: David OBrien. Ebben a szakaszban arrl lesz sz, hogy a jelenleg egyetlen meghajtt tartalmaz rendszernket hogyan tudjuk bvteni egy j SCSI-lemez hozzadsval. Ehhez elsknt kapcsoljuk ki a szmtgpnket s szereljk be a helyre az j meghajtt a szmtgp, a lemezvezrl s a meghajt gyrtjnak utastsai alapjn. Mivel ezt a mveletet rengeteg mdon lehet elvgezni, ezrt ennek pontos rszleteivel ez a lers most nem foglalkozik. Jelentkezznk be root felhasznlknt. Miutn beszereltk a meghajtt, a /var/run/dmesg.boot llomny vgignzsvel bizonyosodjuk meg rla, hogy a rendszer valban megtallta a lemezt. A pldnk szerint ez a meghajt teht a da1 nevet fogja viselni, amelyet a /1 knyvtrba akarunk csatlakoztatni (ha IDE-meghajtt teleptnk, akkor a hozztartoz eszkz neve ad1 lesz). Mivel a FreeBSD IBM PC kompatibilis szmtgpeken fut, ezrt nem szabad gyelmen kvl hagynunk a PC BIOS partciit is. Ezek eltrnek a hagyomnyos BSD partciktl. Egy PC-s lemeznek ngy BIOS-os partcibejegyzse lehet. Ha egy lemezt tnyleg csak a FreeBSD-nek sznunk, akkor hasznlhatjuk az n. dediklt mdot. Minden ms esetben a FreeBSD-nek egy PC BIOS partciban kell elhelyezkednie. A FreeBSD a PC BIOS partciit slice-nak nevezi, ezzel klnbzteti ezeket a hagyomnyos BSD partciktl. Dediklt esetekben is hasznlhatjuk, de elssorban akkor kap fontosabb szerepet, amikor a FreeBSD-nek ms opercis rendszerekkel kell megosztani a helyet. Ezzel el tudjuk kerlni, hogy a ms opercis rendszerekben megtallhat, nem FreeBSD alap fdisk parancs megzavarodjon. A slice-ok hasznlatakor a meghajt /dev/da1s1e nven kerl hozzadsra. gy kell olvasni: egyes SCSI lemezes egysg (msodik SCSI lemez), els slice (els PC BIOS partci) s e BSD partci. A dediklt esetben a meghajt neve viszont egyszeren csak /dev/da1e. Mivel a bsdlabel(8) 32 bites egsz szmokat hasznl a szektorok szmnak trolsra, ezrt lemezenknt csak 2^32-1 szektort tud brzolni, ami az esetek tbbsgben 2 TB mret cmezhet terletet jelent. Az fdisk(8) formtuma szerint sem a kezdszektor, sem a hossz nem lehet 2^32-1-nl tbb, amivel gy a partcikat 2 TB, a lemezeket pedig 4 TB mretre korltozza. A sunlabel(8) formtuma partcinknt 2^32-1 szektort enged meg s sszesen 8 partcit, amely ezltal 16 TB terlet lefedst teszi lehetv. Nagyobb lemezekhez gpt(8) partcik hasznlatosak.

18.3.1. A sysinstall(8) hasznlatval


1. Kzlekeds a sysinstall programban

477

Fejezet 18. Httrtrak A sysinstall knnyen hasznlhat meninek segtsgvel az j lemezen pillanatok alatt ltre tudunk hozni partcikat s megcmkzni ezeket. Ehhez vagy root felhasznlknt jelentkezznk be a rendszerbe, vagy adjuk ki a su parancsot. A sysinstall parancs kiadsa utn lpjnk be a Configure (Belltsok) menbe. A FreeBSD Configuration Menu menben ezutn keressk meg s vlasszuk ki az Fdisk menpontot. 2. Az fdisk partciszerkeszt Miutn eljutottunk az fdisk alkalmazshoz, az A lenyomsval felajnlhatjuk az egsz lemezt a FreeBSD szmra. Amikor elkerl a krds, hogy remain cooperative with any future possible operating systems (mkdkpes maradjon-e a ksbbiekben teleptend opercis rendszerekkel), akkor vlaszoljuk r YES-szel (teht igen). A W gomb lenyomsval rjuk a lemezre a most elvgzett vltoztatsokat. Ezutn mr a Q hasznlatval ki is lphetnk az FDISK szerkesztbl. A kvetkez lpsben a Master Boot Record-rl fognak minket megkrdezni. Mivel most egy mr mkd rendszert bvtnk, ezrt a vlaszunk erre None lesz. 3. A lemezcmkk szerkesztse Most lpjnk ki a sysinstall alkalmazsbl s indtsuk el jra. Kvessk az imnti tmutatsokat, de ezttal a
Label menpontot vlasszuk ki. Ezzel a Disk Label Editor-ba vagyis a lemezcmkk szerkesztjhez jutunk. Itt fogjuk ltrehozni a hagyomnyos BSD partcikat. Egy lemezen nyolc ilyen partci lehet, a-tl h-ig. Kzlk nhny partci cmkjt megklnbztetjk. Az a partci jelli a rendszer indtshoz hasznlt partcit, a gykrpartcit (/). Teht a partci csak a rendszerlemeznkn szerepelhet (teht ahonnan indul a rendszer). A b partci a lapozshoz hasznlt partcikat jelli s tbb lemezen is szerepelhet. A c partcin

keresztl lehet elrni az egszt lemezt dediklt mdban vagy az egsz FreeBSD slice-ot slice mdban. A tbbi partci tetszlegesen felhasznlhat. A sysinstall cmkeszerkesztje az e betvel szereti megjellni a sem nem rendszerindt, sem nem lapoz partcikat. A cmkeszerkesztben egyetlen llomnyrendszert a C lenyomsval lehet kszteni. Amikor erre vlaszul megkrdezi a tpust (FS (llomnyrendszer) vagy swap (lapozterlet) legyen), akkor vlasszuk az FS belltst s adjuk meg a csatlakozsi pontjt (pldul /mnt). Amikor a lemezt telepts utn (post-install) adjuk hozz, akkor a sysinstall valjban nem hoz ltre hozz bejegyzseket az /etc/fstab llomnyban, ezrt a csatlakozsi pont megadsa nem is felttlenl fontos. Most mr kszen llunk arra, hogy rgztsk az j cmkt a lemezre s ltrehozzunk vele egy llomnyrendszert. Ehhez nyomjuk le a W gombot. Ne foglalkozzunk vele, ha a sysinstall nem kpes csatlakoztatni az j partcit. Ha ezzel megvagyunk, akkor lpjnk ki a cmkeszerkesztbl s a sysinstallbl is. 4. Befejezs Most mr csak annyi teendnk maradt, hogy felvegyk az /etc/fstab llomnyba az j lemezhez tartoz bejegyzst.

18.3.2. Parancssoros eszkzk hasznlatval


18.3.2.1. Slice mdban
Ezzel a belltssal a lemeznkre ksbb ms opercis rendszereket is telepthetnk, s nem okoz gondot a sajt fdisk segdprogramjaik mkdsben. Az j lemezek teleptsnl ezt a mdszer ajnlatos kvetni. A dediklt mdot viszont csak abban az esetben hasznljuk, ha erre nyoms okunk van!
# dd if=/dev/zero of=/dev/da1 bs=1k count=1 # fdisk -BI da1 # inicializljuk az j lemezt

478

Fejezet 18. Httrtrak


# # # # # # bsdlabel -B -w da1s1 auto # cmkzzk meg bsdlabel -e da1s1 # szerkeszzk t a frissen ltrehozott cmkt s vegynk fel egy j partcit mkdir -p /1 newfs /dev/da1s1e # ismteljk meg minden ltrehozott partcihoz mount /dev/da1s1e /1 # csatlakoztassuk a partci(ka)t vi /etc/fstab # vegyk fel a megfelel bejegyzs(eke)t az /etc/fstab llomnyba

IDE-lemezek esetn azad eszkzt a da eszkzzel helyettestsk.

18.3.2.2. Dediklt mdban


Amennyiben az j meghajtt nem akarjuk megosztani egyetlen ms opercis rendszerrel sem, hasznlhatjuk a dedicated (dediklt) mdot. Ne felejtsk el azonban, hogy ez kpes sszezavarni a Microsoft opercis rendszereit, habr ebbl semmilyen krunk nem fog szrmazni. Az IBM OS/2 opercis rendszere azonban kisajtt minden olyan partcit, amelyet nem tud olvasni.
# # # # # # # dd if=/dev/zero of=/dev/da1 bs=1k count=1 bsdlabel -Bw da1 auto bsdlabel -e da1 # ltrehozzuk az e partcit newfs /dev/da1e mkdir -p /1 vi /etc/fstab # felvesszk a /dev/da1e partcit mount /1

Egy msik megolds:


# # # # # # dd if=/dev/zero of=/dev/da1 count=2 bsdlabel /dev/da1 | bsdlabel -BR da1 /dev/stdin newfs /dev/da1e mkdir -p /1 vi /etc/fstab # felvesszk a /dev/da1e partcit mount /1

18.4. RAID
18.4.1. Szoftveres RAID
18.4.1.1. sszefztt lemezek belltsa
Eredetileg ksztette: Christopher Shumway. Ellenrizte: Jim Brown. A nagyobb mret httrtrolk kivlasztsnl a legfontosabb tnyezk a sebessg, megbzhatsg s a kltsg. Nagyon ritkn lehet csak ezt a hrmat egyenslyba hozni: ltalban a gyors s megbzhat troleszkzk sok pnzbe kerlnek, valamint a kltsgek megtakartshoz vagy a sebessget vagy pedig a megbzhatsgot kell felldoznunk.

479

Fejezet 18. Httrtrak A tovbbiakban egy olyan rendszert mutatunk be, ahol a elssorban a kltsgek, majd csak ezutn a sebessg s megbzhatsg kerltek eltrben. A rendszer adattviteli sebessgt a hlzat korltozza. Habr emellett a megbzhatsg is nagyon fontos, a trgyalt sszefztt meghajt (Concenated Disk, CCD) csak adatokat szolgltat s a teljes tartalma brmikor visszallthat, mivel rendelkezsre ll CD-n. A feladat elvgzsre alkalmas httrtrol kivlasztsban elsknt a sajt elvrsainkat kell tudnunk megfogalmazni. Ha neknk jobban szmt az rnl a sebessg vagy a megbzhatsg, akkor a mostaniaktl nmileg eltr kongurcit kell majd ptennk. 18.4.1.1.1. A hardver teleptse A rendszert tartalmaz IDE-lemez mellett hrom darab, egyenknt 30 GB-os 5400-as percenknti fordulatszm Western Digital gyrtmny merevlemez alkotja majd a ltrehozni kvnt, kb. 90 GB sszmret sszefztt lemezt. Idelis esetben minden IDE-lemez sajt kln vezrln s kbelen van, de a kltsgek cskkentse miatt nem hasznltunk tovbbi IDE-vezrlket. Ehelyett inkbb jumperekkel gy lltottuk be a lemezeket, hogy minden vezrlre egy mester (master) s egy szolga (slave) md merevlemez kapcsoldjon. A beszerels utn belltottuk a rendszer BIOS-t, hogy automatikusan felismerje a csatlakoztatott lemezeket. De ami mg fontosabb, hogy a FreeBSD is szlelte ezeket az indts sorn:
ad0: ad1: ad2: ad3: 19574MB 29333MB 29333MB 29333MB <WDC <WDC <WDC <WDC WD205BA> WD307AA> WD307AA> WD307AA> [39770/16/63] [59598/16/63] [59598/16/63] [59598/16/63] at at at at ata0-master UDMA33 ata0-slave UDMA33 ata1-master UDMA33 ata1-slave UDMA33

Megjegyzs: Ha a FreeBSD nem ltn az sszes lemezt, akkor ellenrizzk a jumperek helyes belltst. Napjainkban a legtbb IDE-meghajtn tallunk egy Cable Select jumpert is. Ezzel nem a mester/szolga mdot lltjuk be! A megfelel jumper beazonostshoz olvassuk el a meghajthoz tartoz dokumentcit.

A kvetkez lpsben azt vesszk nagyt al, hogyan lehet ezeket az llomnyrendszer rszv tenni. Ezzel kapcsolatban a vinum(8) (21 fejezet) s a ccd(4) elolvassa ajnlatos. Erre a clra itt most a ccd(4) hasznlatt vlasztottuk.

18.4.1.1.2. A CCD belltsa A ccd(4) meghajt segtsgvel tbb ugyanolyan lemezt tudunk sszefzni egyetlen logikai llomnyrendszerr. A ccd(4) hasznlathoz arra is szksgnk van, hogy a ccd(4) tmogatsa jelen legyen a rendszermagban. A kvetkez sor tegyk bele a rendszermag kongurcis llomnyba, fordtsuk jra s teleptsk a rendszermagot:
device ccd

A ccd(4) tmogatsa modulknt is betlthet. A ccd(4) belltshoz elszr a bsdlabel(8) programmal meg fel kell cmkznnk a lemezeket:
bsdlabel -w ad1 auto bsdlabel -w ad2 auto bsdlabel -w ad3 auto

gy ltrejn egy-egy BSD tpus cmke a ad1c, ad2c s ad3c eszkzkre, amely gy lefedi a lemez egsz terlett.

480

Fejezet 18. Httrtrak Most pedig vltoztassuk meg a lemezcmke tpust. Ehhez hasznljuk ismt a bsdlabel(8) programot:
bsdlabel -e ad1 bsdlabel -e ad2 bsdlabel -e ad3

Az EDITOR krnyezeti vltozban megadott szvegszerkesztvel (ez ltalban a vi(1)) megnylik minden egyes lemezhez a jelenlegi lemezcmke. Egy mdostatlan lemezcmke valahogy gy nz ki:
8 partitions: # size c: 60074784

offset 0

fstype unused

[fsize bsize bps/cpg] 0 0 0 # (Cyl.

0 - 59597)

A ccd(4) szmra hozzunk ltre egy j e partcit. Ezt lnyegben a c partci lemsolsval keletkezik, de nla az fstype (az llomnyrendszer tpusa) oszlopban mindenkppen 4.2BSD szerepeljen! A lemezcmke most mr valahogy gy fog kinzni:
8 partitions: # size c: 60074784 e: 60074784

offset 0 0

fstype unused 4.2BSD

[fsize bsize bps/cpg] 0 0 0 # (Cyl. 0 0 0 # (Cyl.

0 - 59597) 0 - 59597)

18.4.1.1.3. Az llomnyrendszer kiptse Most, miutn felcmkztk az sszes lemeznket, lssunk neki a ccd(4) kiptsnek. Ezt a ccdcong(8) meghvsval s az albbihoz hasonl paramterek tadsval tehetjk meg:
ccdconfig ccd0 32 0 /dev/ad1e /dev/ad2e /dev/ad3e

A paramterek rvid lersa s hasznlata: Az els paramter a ltrehozand eszkz, ami jelen esetnkben a /dev/ccd0c. A /dev/ rszt nem ktelez megadni. A kihagys nagysga az llomnyrendszerben. A kihagys hatrozza meg a lemezblokkban alkalmazott cskozs (striping) vastagsgt, ami ltalban 512 byte. Ennek megfelelen a 32-es kihagys 16 384 byte-os cskokat ad meg. A ccdcong(8) belltsai. Ha engedlyezni akarjuk a lemezek tkrzst, akkor itt megadhatjuk. Mivel ez a kongurci most nem nyjt tkrzst a ccd(4) szmra, ezrt lltsuk nullra (0). A ccdcong(8) parancsnak utolsknt azokat az eszkzket kell felsorolni, amelyeket tmbbe akarunk fzni. Minden eszkzt teljes elrsi ttal adjuk meg.

A ccdcong(8) futtatsa utn a ccd(4) belltdik. Most mr llomnyrendszert is rakhatunk r. A newfs(8) man oldalrl szedjk ssze a szksges paramterezst, vagy egyszeren csak gpeljnk be ennyit:
newfs /dev/ccd0c

481

Fejezet 18. Httrtrak 18.4.1.1.4. Az egsz nmkdv ttele A ccd(4) eszkzt ltalban minden egyes indts utn hasznlni akarjuk. Ennek elrshez elszr ezt be kell lltanunk. Az albbi parancs kiadsval rassuk be a jelenlegi belltasainkat tkrz /etc/ccd.conf llomnyt:
ccdconfig -g > /etc/ccd.conf

Az jraindts sorn az /etc/rc parancs futtatja le a ccdconfig -C parancsot, ha az /etc/ccd.conf llomny ltezik. Ez automatikusan belltja a ccd(4) eszkzket, gy ilyenkor tudjuk csatlakoztatni is ezeket.
Megjegyzs: Ha egyfelhasznls mdban indtjuk a rendszert, mieltt mg a mount(8) paranccsal csatlakoztatni tudnnk a ccd(4) eszkzt, a tmb belltshoz meg kell hvnunk a kvetkez parancsot:
ccdconfig -C

Ha a rendszerindtskor automatikusan csatlakoztatni akarjuk a ccd(4) eszkzt, akkor az /etc/fstab llomnyba helyezznk el egy hozztartoz bejegyzst:
/dev/ccd0c /media ufs rw 2 2

18.4.1.2. A Vinum ktetkezel


A Vinum ktetkezel egy blokkos eszkzmeghajt, ami virtulis lemezes meghajtkat valst meg. Elklnti a lemezes hardvereszkzket a blokkos eszkzmeghajtk fellettl s a kett kztt gy kpezi le az adatokat, hogy a hagyomnyos lemezes trolssal szemben megnvekedett rugalmassgot, teljestmnyt s megbzhatsgot kapunk. A vinum(8) ismeri a RAID-0, RAID-1 s RAID-5 modelleket egyarnt, melyeket nmagukban s egyttesen kombinlva is hasznlhatunk. A 21 fejezet bvebben ismerteti a vinum(8) rendszert.

18.4.2. Hardveres RAID


A FreeBSD rengeteg klnbz tpus hardveres RAID-vezrlt ismer. Ezek az eszkzk a FreeBSD kln erre a clra sznt tmogatsa nlkl kpesek vezrelni a RAID-alrendszert. A rajta lev BIOS segtsgvel a krtya a legtbb lemezmveletet egyedl kezeli. A kvetkezkben egy Promise IDE RAID vezrlt alkalmaz rendszert fogunk belltani. Miutn teleptettk a krtyt s indtjuk a rendszert, bekri a szksges informcikat. Kvessk az utastsokat s lpjnk be a krtya bellt kpernyjre. Itt tudjuk kombinlni az sszes csatlakoztatott meghajtnkat. Amikor ezzel a vgeztnk, a lemezek egyetlen lemezknt fognak a FreeBSD szmra viselkedni. A tbbi RAID-szint is ehhez hasonlan llthat be.

18.4.3. Az ATA RAID-1 tmbk jraszervezse


A FreeBSD lehetsget a tmbben lev meghibsodott eszkzk menet kzben elvgezhet cserjre. Ehhez arra van szksgnk, hogy mg jraindts eltt elcspjk a hibt.

482

Fejezet 18. Httrtrak Hiba esetn valami hasonlt fogunk ltni a /var/log/messages llomnyban vagy a dmesg(8) kimenetben:
ad6 on monster1 suffered a hard error. ad6: READ command timeout tag=0 serv=0 - resetting ad6: trying fallback to PIO mode ata3: resetting devices .. done ad6: hard error reading fsbn 1116119 of 0-7 (ad6 bn 1116119; cn 1107 tn 4 sn 11)\\ status=59 error=40 ar0: WARNING - mirror lost

Tovbbi informcikat az atacontrol(8) programtl szerezhetnk:


# atacontrol list

ATA channel 0: Master: no device present Slave: acd0 <HL-DT-ST CD-ROM GCR-8520B/1.00> ATA/ATAPI rev 0 ATA channel 1: Master: no device present Slave: no device present ATA channel 2: Master: ad4 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5 Slave: no device present ATA channel 3: Master: ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5 Slave: no device present
# atacontrol status ar0

ar0: ATA RAID1 subdisks: ad4 ad6 status: DEGRADED

1.

A lemez biztonsgos eltvoltshoz elszr vlasszuk le (detach) a meghibsodott lemezhez tartoz csatornt:
# atacontrol detach ata3

2. 3.

Cserljk ki a lemezt. Csatlakoztassuk jra (attach) az ATA csatornt:


# atacontrol attach ata3

Master: Slave:

ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5 no device present

4.

Tartalkknt (spare) adjuk hozz az j lemezt a tmbhz:


# atacontrol addspare ar0 ad6

5.

Szervezzk jra (rebuild) a tmbt:


# atacontrol rebuild ar0

6.

A folyamat elrehaladst a kvetkez parancs begpelsvel tudjuk gyelni:


# dmesg | tail -10

[a kimenet tbbi rsze] ad6: removed from configuration ad6: deleted from ar0 disk1

483

Fejezet 18. Httrtrak


ad6: inserted into ar0 disk1 as spare
# atacontrol status ar0

ar0: ATA RAID1 subdisks: ad4 ad6 status: REBUILDING 0% completed

7.

Vrjunk a mvelet befejezdsig.

18.5. USB troleszkzk


rta: Marc Fonvieille. Manapsg mr szmos kls troleszkz az USB (Universal Serial Bus) kzvettsvel csatlakozik a szmtgphez: merevlemezek, pen drive-ok, CD-rk stb. A FreeBSD ezeket az eszkzket is ismeri.

18.5.1. Bellts
A USB troleszkzket kezel meghajt, az umass(4) felels az USB alap troleszkzk tmogatsrt. Ha a GENERIC rendszermagot hasznljuk, akkor semmit sem kell vltoztatnunk. Ha sajt rendszermagunk van, akkor gondoskodjunk rla, hogy a kvetkez sorokat beraktuk a rendszermag belltsait tartalmaz llomnyba:
device device device device device device device scbus da pass uhci ehci usb umass

Az umass(4) meghajt a SCSI alrendszeren keresztl ri el az USB troleszkzket, teht az USB eszkzeinket a rendszer SCSI eszkzknt ltja. Az alaplapon tallhat USB chipkszlet tpustl fggen vagy csak a device uhci, vagy USB 1.X esetn pedig a device ohci bejegyzsre lesz szksgnk. De abbl sem szrmazik krunk, ha mind a kettt meghagyjuk. Az USB 2.0 szabvny vezrlket a ehci(4) meghajt (device ehci) tmogatja. Ha mdostani kellett a kongurcis llomnyt, akkor ne felejtsk el jrafordtani s telepteni sem a rendszermagot.
Megjegyzs: Ha az USB eszkznk egy CD- vagy DVD-r, akkor a kvetkez sorral a SCSI CD-meghajtk meghajtjt, a cd(4) eszkzt kell beptennk a rendszermagba:
device cd

Mivel az r is SCSI eszkzknt ltszik, ezrt az atapicam(4) nem szerepelhet a rendszermag belltsai kztt.

18.5.2. A belltsok kiprblsa


A belltsaink kszen llnak a kiprblsra: csatlakoztassuk a szmtgphez az USB eszkznket s a rendszerzeneteket trol pufferben (dmesg(8)) hamarosan meg is jelenik a hozztartoz meghajt:

484

Fejezet 18. Httrtrak


umass0: USB Solid state disk, rev 1.10/1.00, addr 2 GEOM: create disk da0 dp=0xc2d74850 da0 at umass-sim0 bus 0 target 0 lun 0 da0: <Generic Traveling Disk 1.11> Removable Direct Access SCSI-2 device da0: 1.000MB/s transfers da0: 126MB (258048 512 byte sectors: 64H 32S/T 126C)

Termszetesen a gyrtra, mrkra, az eszkz lerjra (da0) s egyebekre vonatkoz rszletek eltrhetnek. Mivel az USB eszkz SCSI eszkzknt ltszik, ezrt a camcontrol parancs hasznlhat a rendszerhez csatlakoztatott USB troleszkzk listzshoz:
# camcontrol devlist

<Generic Traveling Disk 1.11>

at scbus0 target 0 lun 0 (da0,pass0)

Ha a meghajtn llomnyrendszer is tallhat, akkor kpesek vagyunk csatlakoztatni. A 18.3 Szakasz elolvassa segthet az USB meghajtn partcikat kialaktani s formzni, amennyiben szksges.
FigyelemA rendszer biztonsga szempontjbl nem tekinthet megbzhatnak, ha olyan felhasznlk szmra is engedlyezzk tetszleges meghajtk csatlakoztatst (pldul a vfs.usermount engedelyzesvel), amelyekben nem bzunk meg. A FreeBSD ltal tmogatott llomnyrendszerek dnt tbbsge nem nyjt vdelmet a kros szndkkal teleptett eszkzk ellen.

Ha az eszkzt norml felhasznlkkal is csatlakoztathatv akarjuk tenni, akkor tovbbi lpsek megttelre is szksgnk lesz. Elszr is a felhasznlknak valahogy el kell tudniuk rnik az USB troleszkz csatlakoztatsakor keletkez eszkzket. Ezt gy tudjuk megoldani, ha az rintett felhasznlkat felvesszk az operator csoportba. Ebben a pw(8) lehet a segtsgnkre. Msodsorban amikor ezek az eszkzk ltrejnnek, az operator csoportnak tudniuk kell ezeket olvasniuk s rniuk. Ezt gy tudjuk megvalstani, ha felvesszk a kvetkez sorokat az /etc/devfs.rules llomnyba:
[localrules=5] add path da* mode 0660 group operator Megjegyzs: Ha viszont vannak SCSI lemezeink is rendszerben, akkor a helyzet egy kicsit megvltozik. Teht pldul a rendszerben mr eleve vannak da0, da1 s da2 nven lemezek, akkor a msodik sort ennek megfelelen vltoztassuk meg:
add path da[3-9]* mode 0660 group operator

Ezzel kizrunk minden, korbban mr ltez lemezt az operator csoportbl.

Emellett mg az /etc/rc.conf llomnyban engedlyeznnk kell a sajt devfs.rules(5) szablyrendszernket is:


devfs_system_ruleset="usb_rules"

Ezt kveten be kell lltanunk a rendszermagban, hogy a hagyomnyos felhasznlk kpesek legyenek llomnyrendszereket csatlakoztatni. Ezt a legknnyebb gy tudjuk megtenni, ha az /etc/sysctl.conf llomnyba felvesszk a kvetkez sort:
vfs.usermount=1

485

Fejezet 18. Httrtrak Azonban ne felejtsk el, hogy ez csak a rendszer kvetkez indtstl l. De a sysctl(8) parancs hasznlatval is bellthatjuk ezt az rtket. Az utols lpsben hozzunk ltre egy knyvtrat az llomnyrendszer csatlakoztatshoz. Ezt a knyvtrat az a felhasznl fogja birtokolni, aki az llomnyrendszert csatlakoztatnia akarja. Ez pldul root felhasznlknt gy tudjuk megtenni, ha a felhasznlnak ltrehozunk egy knyvtrat /mnt/felhasznl nven (ahol a felhasznl nevet cserljk a tnyleges felhasznl nevre, a csoport nevet pedig a felhasznlhoz tartoz elsdleges csoport nevre):
# mkdir /mnt/felhasznl # chown felhasznl:csoport /mnt/felhasznl

Most tegyk fel, hogy csatlakoztatnuk egy USB pen drive-ot s ennek megfelelen megjelenik a /dev/da0s1 eszkz. Mivel az ilyen eszkzkre ltalban gyrilag FAT llomnyrendszert tesznek, ezrt gy kell ezeket csatlakoztatni a mount(8) paranccsal:
% mount -t msdosfs -o -m=644,-M=755 /dev/da0s1 /mnt/felhasznl

Ha levlasztjuk az eszkzt (miutn kiadtuk a umount(8) parancsot), akkor a rendszerzenetek kztt valami ilyesmit fogunk ltni:
umass0: at uhub0 port 1 (addr 2) disconnected (da0:umass-sim0:0:0:0): lost device (da0:umass-sim0:0:0:0): removing device entry GEOM: destroy disk da0 dp=0xc2d74850 umass0: detached

18.5.3. A tmrl bvebben


A Lemezek hozzadsa s az llomnyrendszerek csatlakoztatsa s levlasztsa cm szakaszok elolvassa mellett a kvetkez man oldalakat is ajnljuk: umass(4), camcontrol(8) s usbcong(8) FreeBSD 8.X esetben, vagy usbdevs(8) a FreeBSD korbbi vltozatainl.

18.6. Lzeres troleszkzk (CD-k) ltrehozsa s hasznlata


rta: Mike Meyer.

18.6.1. Bevezets
A CD-k szmos lehetsgnkben eltrnek a hagyomnyos lemezektl. Kezdetben a felhasznlk nem is voltak kpesek rni ezeket. Olyannak terveztk, hogy a fejek svok kzti mozgsbl fakad ksleltets nlkl lehessen folyamatosan olvasni. A szlltsa a maga idejben sokkal knnyebb volt minden vele egyforma mret eszkznl.

486

Fejezet 18. Httrtrak A CD-ken is tallhatunk svokat, azonban ez csak a folyamatosan olvashat adat egy szakaszt jelenti, nem pedig a lemez zikai tulajdonsgt. Ha FreeBSD-n akarunk CD-t kszteni, akkor ehhez elszr ssze kell lltanunk a CD egyes svjaira kerl adatokat s ezutn rgzteni ezeket a svokat a CD-n. Az ISO 9660 llomnyrendszert gy terveztk, hogy megbirkzzon ezekkel az eltrsekkel. Sajnos ezzel egytt kbe vstk az llomnyrendszerek akkoriban rvnyes korltozsait is. Szerencsre lehetsget ad bvtsre, ezltal a helyesen megrt CD-k kpesek gy tlpni ezeket a hatrokat, hogy kzben az ltaluk alkalmazott kiterjesztseket nem ismer rendszerekkel is egytt tudnak mkdni. A sysutils/cdrtools port tartalmaz egy mkisofs(8) nev programot, amellyel ltre tudunk hozni ISO 9660 tpus llomnyrendszert tartalmaz adatllomnyt. Tbbfle kiterjesztst is ismer, amit majd a lentebb ismertett opcikkal rhetnk el. A CD rshoz hasznlt konkrt segdeszkz attl fgg, hogy ATAPI vagy esetleg msmilyen rnk van. Az ATAPI CD-rk az alaprendszer rszeknt elrhet burncd programon keresztl hasznlhatak. A SCSI s USB CD-rk esetn pedig a sysutils/cdrtools portban megtallhat cdrecord programot hasznlhatjuk. Az ATAPI/CAM modul segtsgvel a cdrecord s ms SCSI-rkra kszlt programokat is tudunk hasznlni ATAPI hardvereken. Ha a CD-r szoftvernket grakus felhasznli felleten keresztl szeretnnk hasznlni, akkor az X-CD-Roast vagy a K3b alkalmazsokat rdemes szemgyre vennnk. Ezek az eszkzk elrhetek csomagknt vagy a sysutils/xcdroast s sysutils/k3b portokbl. ATAPI hardver esetn az X-CD-Roast s a K3b alkalmazsok hasznlathoz szksgnk lesz az ATAPI/CAM modulra.

18.6.2. mkisofs
A sysutils/cdrtools port rszeknt elrhet mkisofs(8) program kpes a UNIX tpus llomnyrendszer knyvtrszerkezete alapjn egy ISO 9660 tpus llomnyrendszert tartalmaz image-et kszteni. Legegyszerbb mdon gy hasznlhatjuk:
# mkisofs -o image.iso /az/elrsi/t

Ezzel a paranccsal egy olyan image.iso nev llomnyt hozunk ltre, amely /az/elrsi/t ltal megadott helyen tallhat knyvtrszerkezetet mintzza ISO 9660 llomnyrendszer formjban. A folyamat sorn minden olyan llomnyt lekpez szabvnyos ISO 9660 llomnyrendszerbeli nvre, amely megfelel a szabvny elvrsainak, s kihagy minden olyan llomnyt, amely nem jellemz az ISO llomnyrendszerekre. Szmos opci lehet segtsgnkre az ilyenkor felbukkan akadlyok lekzdsben. Ezek kzl klnsen fontos az -R, amely a UNIX rendszerek szmra megszokott Rock Ridge kiterjesztseket, valamint a -J, amely a Microsoft rendszerekben hasznlt Joliet kiterjesztseit, s vgl a -hfs, amely a Mac OS alatt ltrehozott HFS llomnyrendszerek kiterjesztseit engedlyezi. A kizrlag csak FreeBSD rendszereken hasznlt CD-k esetben a -U megadsval kapcsolhatjuk ki az llomnynevek mindenfle korltozst. Az -R bellts hasznlatval olyan llomnyrendszer kpt hozzuk ltre, amely teljesen megegyezik a parancsban megadott knyvtrbl indul fa tartalmval, habr tbb mdon is srti az ISO 9660 szabvny elrsait. Az utols ltalnos jelleggel hasznlhat bellts a -b. Ezzel lehet megadni az El Torito szabvnynak megfelel rendszerindt CD ksztshez szksges rendszerindt image elrst. Ennl a belltsnl teht meg kell adni a rendszerindtshoz hasznlt lemez image-t, amely a CD tartalmt magban foglal knyvtrszerkezetben tallhat valahol. A mkisofs(8) alaprtelmezs szerint egy n. oppy emulcis mdban hozza ltre az ISO image-et, ezrt a rendszerindtshoz hasznlatos lemez image-nek pontosan 1200, 1440 vagy 2880 KB mretnek kell lennie.

487

Fejezet 18. Httrtrak Egyes rendszerbetltk, mint amilyen pldul a FreeBSD terjesztshez hasznlt lemezeken tallhat, nem hasznljk ezt az emulcit. Ilyen helyzetekben a -no-emul-boot kapcsolt kell megadni. Teht ha a /tmp/sajtboot knyvtrban van egy indthat FreeBSD rendszernk, amelyben a /tmp/sajtboot/boot/cdboot a rendszerindt lemez image-e, akkor egy /tmp/indthat.iso nev ISO 9660 formtum llomnyrendszert tartalmaz image-et pldul gy tudunk elkszteni:
# mkisofs -R -no-emul-boot -b boot/cdboot -o /tmp/indthat.iso /tmp/sajtboot

Miutn ezt megtettk, s a rendszermagunkban benne van az md eszkz tmogatsa, csatlakoztathatjuk is az llomnyrendszert:
# mdconfig -a -t vnode -f /tmp/indthat.iso -u 0 # mount -t cd9660 /dev/md0 /mnt

Ezutn mr ssze tudjuk vetni az /mnt s /tmp/sajtboot knyvtrak egyezsgt. A mkisofs(8) viselkedst tbb ms opcival tudjuk nomhangolni, mint pldul az ISO 9660 kioszts mdostsa vagy a Joliet s HFS lemezek ksztse. A mkisofs(8) man oldalon mindezekrl bvebben olvashatunk.

18.6.3. burncd
Ha ATAPI CD-rnk van, akkor a burncd paranccsal rhatjuk az ISO image-et a lemezre. A burncd az alaprendszer rsze, s /usr/sbin/burncd nven rhet el. A hasznlata igen egyszer, csupn pr paramtere van:
# burncd -f eszkz data image.iso fixate

Ezzel a paranccsal rmsoljuk az image.iso llomnyt az eszkz eszkzre. Az alaprtelmezett eszkz a /dev/acd0. A burncd(8) man oldaln talljuk meg az rsi sebessggel, a CD rs utni kiadsval s az audio lemezek rsval kapcsolatos belltsokat.

18.6.4. cdrecord
Ha nincs ATAPI CD-rnk, akkor az rshoz a cdrecord parancsot kell hasznlnunk. A cdrecord nem az alaprendszer rsze: vagy a sysutils/cdrtools portbl vagy a neki megfelel csomagbl kell teleptennk. Az alaprendszerben vgbemen vltozsok miatt a program binris vltozatai hibzhatnak, aminek kvetkeztben csak pohraltteket fogunk tudni gyrtani. Ezrt a rendszerrel egytt rdemes frissteni ezt a portot is. Vagy ha a -STABLE verzit hasznljuk, akkor mindig rdemes a port elrhet legjabb verzijra frissteni. Mikzben a cdrecord szmos paramterrel rendelkezik, az alapvet hasznlata mgis egyszerbb a burncd parancsnl. Egy ISO 9660 formtum image-et ugyanis a kvetkez mdon tudunk felrni lemezre:
# cdrecord dev=eszkz image.iso

A cdrecord hasznlatnak trkks rsze a megfelel eszkz megtallsa, teht a dev bellts helyes megadsa. Ehhez hasznljuk a cdrecord -scanbus paramtert, amely az albbihoz hasonl eredmnyt fog produklni:
# cdrecord -scanbus

Cdrecord-Clone 2.01 (i386-unknown-freebsd7.0) Copyright (C) 1995-2004 Jrg Schilling Using libscg version schily-0.1 scsibus0:

488

Fejezet 18. Httrtrak


0,0,0 0,1,0 0,2,0 0,3,0 0,4,0 0,5,0 0,6,0 0,7,0 scsibus1: 1,0,0 1,1,0 1,2,0 1,3,0 1,4,0 1,5,0 1,6,0 1,7,0 0) 1) 2) 3) 4) 5) 6) 7) 100) 101) 102) 103) 104) 105) 106) 107) SEAGATE SEAGATE * iomega NEC * * * * * * * * YAMAHA ARTEC * ST39236LW ST39173W 0004 Disk 5958 Disk

jaz 1GB J.86 Removable Disk CD-ROM DRIVE:466 1.26 Removable CD-ROM

CRW4260 AM12S

1.0q Removable CD-ROM 1.06 Scanner

Itt felsorolsra kerlnek a dev bellts rtkeknt felhasznlhat eszkzk. Keressk meg kztk a CD rnkat s a dev rtknek a hrom vesszvel elvlasztott szmot adjuk meg. Ebben az esetben a CD-r eszkz most az 1,5,0 lesz, teht itt a helyes paramterezs dev=1,5,0. Ezt az rtkt knnyebben is meg lehet adni. Ennek rszleteirl a cdrecord(1) man oldaln olvashatunk. Abban az esetben is rdemes fellapoznunk, ha az audio svok rsrl, az rsi sebessg korltozsrl vagy ms hasonl dolgokrl akarunk olvasni.

18.6.5. Audio CD-k msolsa


Audio CD-t gy tudunk msolni, ha elszr llomnyok sorozatba mentjk a lemez tartalmt, majd ezeket az llomnyokat egy res CD-re rjuk. Ennek konkrt folyamata azonban nmileg eltr az ATAPI- s SCSI-meghajtk hasznlata sorn. SCSI-meghajtk esetn 1. A cdda2wav programmal mentsk le a lemez tartalmt.
% cdda2wav -v255 -D2,0 -B -Owav

2.

A cdrecord paranccsal rjuk fel a .wav kiterjeszts llomnyokat.


% cdrecord -v dev=2,0 -dao -useinfo *.wav

Gondoskodjunk rla, hogy a 2,0 rtket a 18.6.4 Szakasznak megfelelen helyesen lltottuk be. ATAPI-meghajtk esetn 1. Az ATAPI CD meghajtja az egyes svokat /dev/acdd tnn nven teszi elrhetv, ahol a d a meghajt sorszma, a nn a sv kt szmjeggyel kirt sorszma, amelyet szksg szerint balrl nullval egsztenek ki. gy teht az els meghajt els svja a /dev/acd0t01, a msodik a /dev/acd0t02, a harmadik a /dev/acd0t03 s gy tovbb. Ellenrizzk, hogy ezek az eszkzk jelen vannak a /dev knyvtrban. Amennyiben hinyoznnak, knyszertsk ki a lemez jbli beolvasst:

489

Fejezet 18. Httrtrak


# dd if=/dev/acd0 of=/dev/null count=1

2.

Szedjk le az egyes svokat a dd(1) hasznlatval. A parancs kiadsakor meg kell adnunk egy blokkmretet is:
# dd if=/dev/acd0t01 of=track1.cdr bs=2352 # dd if=/dev/acd0t02 of=track2.cdr bs=2352

...

3.

A burncd hasznlatval rjuk fel a lemezre az imnt lementett llomnyokat. Meg kell adnunk, hogy ezek audio llomnyok, s hogy a burncd a munka befejeztvel zrja le (xate) a lemezt.
# burncd -f /dev/acd0 audio track1.cdr track2.cdr ... fixate

18.6.6. Adat CD-k msolsa


Az adatot tartalmaz CD-ket le tudjuk msolni egy olyan image-be, amely funkcionlisan megegyezik egy mkisofs(8) ltal ltrehozott image-dzsel s amivel le tudunk msolni brmilyen adat CD-t. Az itt megadott plda azt felttelezi, hogy a CD-meghajtnk neve acd0. Helyre a sajt CD-meghajtnk nevt kell behelyettesteni.
# dd if=/dev/acd0 of=llomny.iso bs=2048

Most miutn lementettk az image-et, rjuk fel CD-re a fentiek szerint.

18.6.7. Adat CD-k hasznlata


Most, hogy mr ksztettnk egy szabvnyos adat CD-t, valsznleg szeretnnk is valamilyen csatlakoztatni s elrni a rajta lev adatokat. Alaprtelmezs szerint a mount(8) mindig azt felttelezi, hogy az llomnyrendszerek ufs tpusak. Ezrt ha valami ilyesmivel prblkozunk:
# mount /dev/cd0 /mnt

akkor egy Incorrect super block szveg hibazenetet lesz a jutalmunk, s termszetesen nem tudjuk csatlakoztatni a CD-t. Mivel a CD nem UFS llomnyrendszert tartalmaz, ezrt az ilyen jelleg ksrleteink mind kudarcba fognak fulladni. Valahogy fel kell vilgostanunk a mount(8) parancsot arrl, hogy itt most egy ISO9660 tpus llomnyrendszert akarunk csatlakoztatni, s akkor minden a helyre kerl. Ezt gy tudjuk megtenni, ha a mount(8) parancsnak megadjuk a -t cd9660 paramtert. Pldul, ha a /dev/acd0 nven elrhet CD-meghajtban lev lemezt akarjuk a /mnt knyvtrba csatlakoztatni, akkor ezt kell begpelnnk:
# mount -t cd9660 /dev/cd0 /mnt

Vegyk szre, hogy az eszkz neve (ez ebben a pldban most /dev/cd0) lehet ms is attl fggen, hogy milyen csatolfelletet hasznl a CD-meghajtnk. St, a -t cd9660 valjban csak a mount_cd9660(8) parancsot indtja el. Ennek tkrben teht az elbbi pldt gy rvidthetjk le:
# mount_cd9660 /dev/cd0 /mnt

Ezen a mdon brmilyen gyrtmny adat CD-t kpesek vagyunk csatlakoztatni. Egyes ISO 9660 kiterjesztseket hasznl lemezek azonban esetleg furcsn mkdhetnek. Pldul Joliet lemezek az sszes llomny nevt ktbyte-os Unicode karakterben troljk. A FreeBSD rendszermagja ugyan nem beszli a Unicode-ot, de a FreeBSD CD9660 meghajtja kpes menetkzben tkonvertlni a Unicode karaktereket. Ha bizonyos nem angol karakterek

490

Fejezet 18. Httrtrak krdjelekknt jelennnek meg, akkor a -C bellts hasznlatval mg egy helyi kdlapot is meg kell adnunk. Ezzel kapcsolatban bvebb tjkoztatsrt forduljunk a mount_cd9660(8) man oldalhoz.
Megjegyzs: A -C bellts segtsgvel csak akkor lesz kpes a rendszermag elvgezni ezt az talaktst, ha eltte betltjk a cd9660_iconv.ko modult. Ezt megtehetjk gy, hogy ha felvesszk a kvetkez sort a loader.conf llomnyba:
cd9660_iconv_load="YES"

Indtsuk jra a szmtgpnket, vagy kzvetlenl tltsk be a modult a kldload(8) hasznlatval.

Estenknt elfordulhat, hogy kapunk egy Device not configured hibazenetet a CD-k csatlakoztatsakor. Ez ltalban arra utal, hogy a CD-meghajt nem rzkeli a berakott lemezt, vagy ppen a meghajt nem lthat a buszon. A CD-meghajtk esetben pr msodpercig eltarthat, amg felismeri a berakott lemezt, ilyenkor mindig legynk trelemmel. Nha a SCSI CD-meghajt nem lthat, mert nem volt elg ideje vlaszolni busz jraindtsa eltt. Ha SCSI CD-meghajtnk van, akkor a kvetkez belltst tegyk hozz a rendszermagunk kongurcijhoz s fordtsuk jra a rendszermagukat.
options SCSI_DELAY=15000

Ezzel utastjuk a SCSI buszunkat egy 15 msodperces vrakozsra a rendszer indtsa sorn, s gy ezzel elg eslyt adunk arra, hogy a CD-meghajt vlaszolni tudjon a busz jraindtsa eltt.

18.6.8. Nyers adat CD-k rsa


rhatunk kzvetlenl is llomnyokat a CD-re, ISO 9660 formtum llomnyrendszer hasznlata nlkl. Sokan gy oldjk meg a mentst. Ezt sokkal gyorsabban lebonyolthat egy szabvnyos CD esetben:
# burncd -f /dev/acd1 -s 12 data archive.tar.gz fixate

Az ezen a mdon megrt CD-ket szintn nyers mdon kell olvasnunk:


# tar xzvf /dev/acd1

Az ilyen lemezeket nem tudjuk a normlis CD-khez hasonlan csatlakoztatni. St, az ilyen CD-ket csak FreeBSD alatt tudjuk olvasni. Ha csatlakoztathatv akarjuk tenni a lemezt, vagy ms opercis rendszerek all is szeretnnk olvasni, akkor erre a clra a fentebb bemutatott mkisofs(8) parancsot kell hasznlnunk.

18.6.9. Az ATAPI/CAM meghajt hasznlata


rta: Marc Fonvieille. Ez a meghajt lehetv teszi az ATAPI eszkzk (CD-ROM, CD-RW, DVD meghajtk stb...) szmra, hogy a SCSI alrendszeren keresztl legyenek elrhetek, gy esetnkben is hasznlhatv vlnak olyan alkalmazsok, mint pldul sysutils/cdrdao vagy a cdrecord(1). A meghajt hasznlathoz a kvetkez sort kell a /boot/loader.conf llomnyba illeszteni:

491

Fejezet 18. Httrtrak


atapicam_load="YES"

Indtsuk jra a szmtgpet.


Megjegyzs: Amennyiben a rendszermagban az atapicam(4) statikus tmogatst szeretnnk hasznlni, gy a kvetkez sort kell a rendszermag kongurcis llomnyba felvenni:
device atapicam

Tovbb a kvetkez sorokra lesz mg szksgnk:


device device device device ata scbus cd pass

Ezeknek mr eleve ott kell szerepelnie. Ezutn fordtsuk jra s teleptsk a rendszermagot, majd indtsuk jra a szmtgpet.

A rendszer indulsakor az rnak ehhez hasonl mdon kell megjelennie:


acd0: CD-RW <MATSHITA CD-RW/DVD-ROM UJDA740> at ata1-master PIO4 cd0 at ata1 bus 0 target 0 lun 0 cd0: <MATSHITA CDRW/DVD UJDA740 1.00> Removable CD-ROM SCSI-0 device cd0: 16.000MB/s transfers cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closed

A meghajt most mr elrhet a /dev/cd0 eszkzn keresztl, s pldul ennyi begpelsvel csatlakoztatni tudunk rla egy CD-t a /mnt knyvtrba:
# mount -t cd9660 /dev/cd0 /mnt

root felhasznlknt a kvetkez paranccsal tudjuk lekrdezi az r SCSI cmt:


# camcontrol devlist

<MATSHITA CDRW/DVD UJDA740 1.00>

at scbus1 target 0 lun 0 (pass0,cd0)

Eszerint a 1,0,0 lesz az eszkz SCSI cme, amelyet a cdrecord(1) s ms SCSI alkalmazsok esetn adunk meg. Az ATAPI/CAM s SCSI rendszerek tekintetben olvassuk el az atapicam(4) s cam(4) man oldalakat.

18.7. Lzeres troleszkzk (DVD-k) ltrehozsa s

492

Fejezet 18. Httrtrak

hasznlata
rta: Marc Fonvieille. Segtsget nyjtott benne: Andy Polyakov.

18.7.1. Bevezets
A DVD a CD-hez kpest a lzeres troleszkzk technolgijnak jabb genercijt kpviseli. A DVD brmelyik CD-nl tbb adatot kpes trolni s napjaink ez a videk kiadsnak szabvnya. t zikailag rhat formtummal hatrozhatjuk meg az rhat DVD fogalmt:

DVD-R: Ez volt az els elrhet rhat DVD formtum. A DVD-R szabvnyt a DVD Frum (http://www.dvdforum.com/forum.shtml) fektette le. Ez a formtum csak egyszer rhat. DVD-RW: Ez a DVD-R szabvny jrarhat vltozata. A DVD-RW krlbell 1000 alkalommal rhat jra. DVD-RAM: Ez is a DVD Frum ltal tmogatott jrarhat formtum. A DVD-RAM cserlhet merevlemeznek ltzsik. Azonban ez tpus adathordoz nem kompatibilis legtbb DVD-ROM hajtval s DVD-Video lejtszval. Csupn csak nhny DVD-r ismeri a DVD-RAM formtumot. A DVD-RAM hasznlatrl a 18.7.9 Szakaszban tallunk bvebben informcikat. DVD+RW: Ezt az jrarhat formtumot a DVD+RW szvetsg (http://www.dvdrw.com/) alkotta meg. A DVD+RW lemezek nagyjbl 1000 alkalommal rhatak jra. DVD+R: Ez a formtum a DVD+RW formtum egyszer rhat vltozata.

Az egyrteg rhat DVD-k sszesen 4 700 000 000 byte-ot kpesek rgzteni, ami 4,38 GB vagy 4 485 MB (1 kilobyte itt 1024 byte).
Megjegyzs: Meg kell klnbztetnnk zikai troleszkzt s az alkalmazst. Pldul a DVD-Video llomnyok olyan jelleg elrendezst rja el, ami brmelyik rhat zikai DVD eszkzn megjelenhet: DVD-R, DVD+R, DVD-RW stb. Mieltt kivlasztannk az eszkz tpust, biztosnak kell lennnk benne, hogy az r s a DVD-Video lejtsz (ez lehet egy nll lejtsz vagy egy szmtgp DVD-ROM meghajtja) kompatibilis a szbanforg lemezzel.

18.7.2. Bellts
A growisofs(1) programot fogjuk a DVD rgztsre hasznlni. Ez a program a dvd+rw-tools segdprogramok (sysutils/dvd+rw-tools) gyjtemnynek rsze. A dvd+rw-tools az sszes DVD mdium tpust ismeri. Ezek a segdprogramok a SCSI alrendszeren keresztl rik az eszkzket, ezrt a hasznlhatukhoz a rendszermagban szksgnk lesz az ATAPI/CAM tmogatsra. Ha az rnk USB felleten csatlakozik, akkor mindez szksgtelen, s ehelyett a 18.5 Szakaszt kell elolvasnunk az USB eszkzk belltshoz. Engedlyeznnk kell az ATAPI eszkzk DMA hozzfrst is, amit a /boot/loader.conf llomnyban a kvetkez sor hozzadsval tudunk megtenni:
hw.ata.atapi_dma="1"

493

Fejezet 18. Httrtrak A dvd+rw-tools hasznlatnak megkezdse eltt a DVD-rnkkal kapcsolatban rdemes tolvasnunk a dvd+rw-tools hardverkompatibilitsi jegyzeteit (angolul) (http://fy.chalmers.se/~appro/linux/DVD+RW/hcn.html).
Megjegyzs: Ha grakus felletet szeretnnk hasznlni, akkor rdemes egy pillanatst vetnnk a K3bre (sysutils/k3b), amely egy felhasznlbart felletet ad a growisofs(1) s sok ms rprogram fel.

18.7.3. Adat DVD-k rsa


A growisofs(1) a mkisofs parancs ellapja, teht az llomnyrendszer ltrehozshoz a mkisofs(8) programot fogja meghvni s ezt rja fel a DVD-re. Ez azt jelenti, hogy az rsi folyamat megkezdse eltt nem kell semmilyen image-et ltrehoznunk. A /az/elrsi/t knyvtrbl a kvetkez paranccsal tudjuk kirni az adatokat DVD+R vagy DVD-R lemezre:
# growisofs -dvd-compat -Z /dev/cd0 -J -R /az/elrsi/t

A -J -R belltsok a mkisofs(8) programhoz kerlnek t az llomnyrendszer ltrehozsakor (itt most egy ISO 9660 llomnyrendszert hozunk ltre, Joliet s Rock Ridge kiterjesztsekkel), hasznlatnak rszleteit lsd mkisofs(8). A -Z belltst a kezdmenetek ltrehozsakor hasznljuk: tbb menetben akarjuk rni a lemezt vagy sem. A DVD eszkzt, amely itt most a /dev/cd0, a sajt kongurcinknak megfelelen kell megadni. A -dvd-compat paramterrel lezrjuk a lemezt, gy ezutn tovbbi rs mr nem lehetsges. Ezrt cserbe jobb kompatibilitst kapunk a DVD-ROM meghajtkkal. Elre legyrtott image-dzsel is dolgozhatunk, teht pldul, ha az image.iso llomnyt akarjuk kirni, akkor ezt kell lefuttatnunk:
# growisofs -dvd-compat -Z /dev/cd0=image.iso

Az rsi sebessget magtl belltja a lemez s meghajt kpessgeinek megfelelen. Az rsi sebessg fellbrlshoz hasznljuk a -speed= paramtert. A paramterek lehetsgeirl a growisofs(1) man oldalrl tudhatunk meg tbbet.
Megjegyzs: 4,38 GB-nl tbb adat rshoz egy hibrid UDF/ISO-9660 tpus llomnyrendszert kell ltrehoznunk. Ezt gy tudjuk elrni, ha mkisofs(8) s a tbbi hasonl program (pldul growisofs(1)) hvsakor mg hozztesszk az -udf -iso-level 3 paramtereket. Ezekre csak lemezkpek ksztsekor vagy az llomnyok kzvetlen lemezre rsakor van szksgnk. Az gy ltrehozott lemezeket a mount_udf(8) segdprogram segtsgvel UDF llomnyrendszerknt tudjuk csatlakoztatni. Ezrt csak olyan opercis rendszereken hasznlhat, amelyek ismerik ezt a formtumot, ellenkez esetben csak hibs llomnyokat fogunk ltni a lemezen. Plda ilyen lemezkp ltrehozsra:
# growisofs -dvd-compat -udf -iso-level 3 -Z /dev/cd0 -J -R /az/j/adat/helye

Ha a lemezkp mr eleve nagyobb mret llomnyokat tartalmaz, a lemez rsakor a growisofs(1) programnak mr nem kell tovbbi paramtereket tadnunk. Lehetleg mindig a sysutils/cdrtools legfrissebb verzijt hasznljuk (amely a mkisofs(8) programot is tartalmazza), mivel a rgebbi verzik nem tmogatjk a nagyobb mret llomnyokat. Ha problmk addnak a

494

Fejezet 18. Httrtrak


programok hasznlata sorn, akkor prblkozzunk a fejleszti vltozattal (sysutils/cdrtools-devel) s olvassuk el a mkisofs(8) man oldalt.

18.7.4. DVD-Video rsa


A DVD-Video az llomnyok specilis szervezsre utal, amely az ISO 9660 s az mikr UDF (M-UDF) specikcikon alapszik. A DVD-Video emellett egy adott adatszerkezeti hierarchit is takar, ezrt kell egy kln programmal, pldul a multimedia/dvdauthor segtsgvel sszelltani egy DVD-t. Ha mr a birtokunkban van egy DVD-Video llomnyrendszer kpe, akkor az eddigiek szerint egyszeren csak rjuk fel egy lemezre, ahogy azt az elz szakaszban is lthattuk. Ha sszelltottuk a DVD anyagt s pldul a /a/vide/elrsi/tja knyvtrba raktuk, akkor a kvetkez paranccsal rathatjuk ki a DVD-Video formtum lemezt:
# growisofs -Z /dev/cd0 -dvd-video /a/vide/elrsi/tja

A -dvd-video paramtert kell tadni a mkisofs(8) programnak, amelynek hatsra ltrehoz egy DVD-Video formtum llomnyrendszert. Emellett a -dvd-video bellts maga utn vonja a growisofs(1) -dvd-compat belltst is.

18.7.5. A DVD+RW hasznlata


Eltren a CD-RW-tl, egy rintetlen DVD+RW-t az els hasznlat eltt meg kell formzni. A growisofs(1) program errl az els adand alkalommal gondoskodik, s ez az ajnlott. Azonban a DVD+RW formzsra hasznlhatjuk a dvd+rw-format parancsot is:
# dvd+rw-format /dev/cd0

Ezt a mveletet csak egyszer kell elvgezni, hiszen ne feledjk, hogy csak a szz DVD+RW lemezeket kell megformzni. Ezutn a DVD+RW-t a korbbi szakaszoknak megfelelen tudjuk rni. Ha a DVD+RW-re j adatot akarunk rni (egy teljesen j llomnyrendszert, nem pedig adatokat hozzfzni), akkor nem kell ress tenni a lemezt, egyszeren csak elegend fellrni az elzeket (egy j kezdmenet ltrehozsval) valahogy gy:
# growisofs -Z /dev/cd0 -J -R /az/j/adat/helye

A DVD+RW formtum felajnlja annak lehetsgt is, hogy knnyedn hozz lehessen fzni adatokat az elz rshoz. A mvelet sorn az j menetet sszefzi a meglvvel, teht ez nem egy tbbmenetes rs, hanem a growisofs(1) megnveli a lemezen tallhat ISO 9660 llomnyrendszert. Pldul, ha egy korbban megrt DVD+RW lemezen lev adatokhoz akarunk hozzrni, akkor a kvetkez parancsot kell kiadnunk:
# growisofs -M /dev/cd0 -J -R /az/j/adat/helye

A mkisofs(8) belltsainl a kezmenetnl megadottakat rdemes ismt megadni.

495

Fejezet 18. Httrtrak


Megjegyzs: Ha kompatibilisek akarunk maradni a tbbi DVD-meghajtval, akkor adjuk meg -dvd-compat paramtert. Ez a DVD+RW esetben annyit jelent, hogy nem tudunk tovbbi adatokat hozzfzni.

Ha valamilyen okbl mgis ress szeretnnk tenni a lemez, akkor r jrhatunk el:
# growisofs -Z /dev/cd0=/dev/zero

18.7.6. A DVD-RW hasznlata


A DVD-RW kt lemezformtumot fogad el: a inkrementlis soros hozzfrst s a korltozott fellrst. Alaprtelmezs szerint a DVD-RW lemezek soros elrsek. A mg fel nem hasznlt DVD-RW lemezek kzvetlenl rhatak kln formzs nlkl, habr a korbban mr soros formtumban hasznlt DVD-RW lemezeket egy j kezdmenet ltrehozsa eltt ress kell tenni. Soros mdban gy kell letrlni egy DVD-RW lemezt:
# dvd+rw-format -blank=full /dev/cd0

Megjegyzs: A teljes trls (-blank=full) egy 1x mdia esetn krlbell egy rt vesz ignybe. A -blank belltssal egy gyorstott trls zajlik le, amennyiben a DVD-RW lemezt Disk-At-Once (DAO) mdban rjuk. A DVD-RW lemezeket az albbi paranccsal tudjuk DAO mdban rni:
# growisofs -use-the-force-luke=dao -Z /dev/cd0=image.iso

A -use-the-force-luke=dao belltst nem ktelez megadni, mivel a growisofs(1) igyekszik a lehet leggyorsabban trlni a lemezt s megkezdeni a DAO md rst. A DVD-RW esetben valjban a korltozott fellrst lenne rdemes hasznlnunk, mivel ez a formtum sokkal rugalmasabb az alaprtelmezs szerint felknlt inkrementlis soros elrsnl.

A soros DVD-RW lemezekre ugyangy tudunk adatokat rgzteni, mint az sszes tbbi formtum esetben:
# growisofs -Z /dev/cd0 -J -R /az/adat/helye

Ha az elz rshoz akarunk mg hozzfzni adatokat, akkor ehhez a growisofs(1) -M belltst kell hasznlnunk. Azonban ha a DVD-RW lemezhet inkrementlis soros mdban adunk hozz adatot, akkor ezzel egy j menetet hozunk ltre a lemezen s gy egy tbbmenetes lemezt kapunk. A korltozott fellrs DVD-RW formtum hasznlata esetn nem kell mindegyik kezdmenet eltt trlni a lemezt, egyszeren csak fell kell rni a -Z belltssal, hasonlan a DVD+RW esethez. A DVD+RW -M belltshoz hasonlan lehetsgnk van a lemezen tallhat ISO 9660 formtum llomnyrendszer nvelsre. Ennek az eredmnye egy egymenetes DVD. A kvetkez paranccsal tudjuk a DVD-RW lemezt korltozott fellrs mdba tenni:
# dvd+rw-format /dev/cd0

gy tudunk visszavltani a soros formtum hasznlatra:

496

Fejezet 18. Httrtrak


# dvd+rw-format -blank=full /dev/cd0

18.7.7. Tbb menet hasznlata


Nagyon kevs DVD-ROM meghajt ismeri a tbbmenetes DVD-ket, s legtbbszr is csak ltalban az els menetet olvassk. A DVD+R, DVD-R s DVD-RW formtumok soros formtumban kpesek tbb mentetet is befogadni, viszont a DVD+RW s DVD-RW korltozott fellrs formtuma esetn nem ltezik tbb menet. Az albbi parancs egy jabb menetet ad hozz egy megkezdett (le nem zrt) DVD+R, DVD-R vagy DVD-RW soros formtum lemezhez:
# growisofs -M /dev/cd0 -J -R /az/j/adat/helye

Ha ezt a parancsot egy korltozott fellrs DVD+RW vagy DVD-RW lemez esetn adjuk ki, akkor az j adatokat gy fzi hozz, hogy egy j menetet sszefsli a meglvvel. Ezzel egy egymenetes lemez keletkezik. Ilyenkor gy bvtik a megkezdett lemezeket.
Megjegyzs: A menetek kezdse s befejezse ltalban felhasznl valamennyi helyet a lemezen. Ezrt gy tudjuk optimalizlni a lemez helykihasznltsgt, hogy kevs menetben sok adatot visznk fel r. A DVD+R esetn 154, a DVD-R-nl krlbell 2000, s a dupla rteg DVD+R lemezeknl 127 menetet tudunk ltrehozni.

18.7.8. Tovbbi olvasnivalk


A DVD lemezrl rszletesebb informcikat a dvd+rw-mediainfo /dev/cd0 parancs kiadsval tudunk lekrdezni. A dvd+rw-tools hasznlatrl a growisofs(1) man oldalon tallunk informcit, valamint a dvd+rw-tools honlapjn (angolul) (http://fy.chalmers.se/~appro/linux/DVD+RW/) s a cdwrite levelezsi lista (http://lists.debian.org/cdwrite/) archvumaiban (angolul).
Megjegyzs: Futassuk dvd+rw-mediainfo parancsot minden olyan esetben, amikor gondunk akad valamilyen lemez rsval. A kimenete nlkl szinte lehetetlen segtennk brkinek is.

18.7.9. A DVD-RAM hasznlata


18.7.9.1. Bellts
A DVD-RAM rk SCSI vagy ATAPI csatolfellettel rendelkeznek. Az ATAPI eszkzk esetn engedlyezni kell a DMA elrst, amit a /boot/loader.conf llomnyban az albbi sor hozzadsval tudunk megtenni:
hw.ata.atapi_dma="1"

497

Fejezet 18. Httrtrak

18.7.9.2. A lemez elksztse


Ahogy arra mr korbban utaltunk a fejezet bevezetsben, a DVD-RAM gy lthat, mint egy cserlhet merevlemez. A hagyomnyos merevlemezekhez hasonlan a DVD-RAM-ot is el kell kszteni az els hasznlathoz. Ebben a pldban a lemez teljes terlett egy szabvnyos UFS2 llomnyrendszerrel tltjk fel:
# dd if=/dev/zero of=/dev/acd0 bs=2k count=1 # bsdlabel -Bw acd0 # newfs /dev/acd0

A DVD eszkz nevt, vagyis az acd0 eszkzt a sajt rendszernknek megfelelen kell mdostani.

18.7.9.3. A lemez hasznlata


Miutn az elbbi mveletet elvgeztk a DVD-RAM lemezen, mr tudjuk is normlis merevlemezknt csatlakoztatni:
# mount /dev/acd0 /mnt

Ezt kveten a DVD-RAM egyarnt olvashat s rhat.

18.8. Hajlkonylemezek ltrehozsa s hasznlata


Eredetileg ksztette: Julio Merino. tdolgozta: Martin Karlsson. Nha hasznos lehet, ha az adatokat oppy lemezeken troljuk, pldul olyankor, amikor ms cserlhet troleszkz mr nem jhet szmtsba, vagy amikor kis mennyisg adatot kell tvinnnk az egyik szmtgprl a msikra. Ebben a szakaszban bemutatjuk hogyan kell FreeBSD alatt oppy lemezeket hasznlni. Elssorban a 3,5 colos DOS lemezek formzsval s hasznlatval foglalkozik, de ezek fogalmak a tbbi hajlkonylemezes formtum esetben is hasonlak.

18.8.1. A hajlkonylemezek formzsa


18.8.1.1. Az eszkz
A oppy lemezek a tbbi eszkzhz hasonlan a /dev knyvtrban rhetek el. A nyers oppy lemezek elrshez egyszeren csak hasznljuk a /dev/fdN hivatkozst.

18.8.1.2. A formzs
Hasznlat eltt a oppy lemezeket alacsony szinten meg kell formzni. Ezt ltalban maga a gyrt vgzi el, de a formzs gyakran hasznos lehet a lemez srtetlensgnek ellenrzsre. A legtbb oppy lemez hivatalos kapacitsa 1440 KB, de hasznlhatjuk nagyobb (s kisebb) mretekben is.

498

Fejezet 18. Httrtrak A oppy lemezek alacsony szint formzsra az fdformat(1) parancsot hasznlhatjuk. Ez a segdprogram paramterknt az eszkz nevt vrja. Figyeljnk a menetkzben megjelen hibazenetekre, mivel ezek segtik eldnteni, hogy a lemez hasznlhat vagy sem. 18.8.1.2.1. A hajlkonylemezek formzsa A /dev/fdN eszkzk segtsgvel tudunk megformzni egy oppy lemezt. Tegynk be egy 3,5 colos oppy lemezt a meghajtba, majd adjuk ki a kvetkez parancsot:
# /usr/sbin/fdformat -f 1440 /dev/fd0

18.8.2. A lemez cmkzse


Miutn alacsony szinten formztuk a lemezt, tennnk kell r egy lemezcmkt is. Ez a lemezcmke ksbb meg fog semmislni, de a rendszernek szksge van r, hogy pontosan meg tudja llaptani a lemez mrett s geometrijt. Az j lemezcmke lefedi az egsz lemezt, s tartalmazni fogja az sszes informcit a oppy geometrijrl. A lemezcmkk geometriartkeit az /etc/disktab llomnyban talljuk meg felsorolva. Most mr futtathatjuk is a bsdlabel(8) parancsot:
# /sbin/bsdlabel -B -w /dev/fd0 fd1440

18.8.3. Az llomnyrendszer
A hajlkonylemez most mr kszen ll a magas szint formzsra. Ennek sorn egy j llomnyrendszert tesznk r, amelyet a FreeBSD kpes rni s olvasni. Miutn ltrejtt ez az j llomnyrendszer, a lemezcmke megsemmisl, gy teht ha jra meg akarjuk formzni a lemezt, akkor jra ltre kell majd hoznunk a lemezcmkt. A oppy llomnyrendszere lehet UFS vagy FAT. A FAT ltalnossgban vve jobb vlaszts a oppy lemezek szmra. Az albbi mdon tudunk j llomnyrendszert tenni a oppyra:
# /sbin/newfs_msdos /dev/fd0

A lemez most mr kszen ll a hasznlatra.

18.8.4. A hajlkonylemezek hasznlata


A oppy lemezt hasznlathoz a mount_msdosfs(8) paranccsal kell csatlakoztatnunk. Ugyanerre a clra hasznlhatjuk a Portgyjtemnybl elrhet emulators/mtools portot is.

499

Fejezet 18. Httrtrak

18.9. Szalagok ltrehozsa s hasznlata


A legfontosabb szalagos adathordozk a 4 mm-es, 8 mm-es, QIC, a minikazetts s a DLT.

18.9.1. 4 mm-es (Digitlis adattrol, avagy DDS: Digital Data Storage)


A 4 mm-es szalagok a QIC-szalagokat vltjk fel a munkallomsok biztonsgi mentsnek eszkzeknt. Ez a tendencia csak tovbb nvekedett, ahogy a Conner felvsrolta az Archive-ot, a QIC tpus meghajtk legnagyobb gyrtjt, majd lelltott a QIC-meghajtk gyrtst. A 4 mm-es meghajtk mrete kicsi s csendben is dolgoznak, de a megbzhatsg tern nem tudhatjk maguknak mindazt a sikert, amit a 8 mm-es trsaiknl knyvelhettnk el. A kazettk is sokkal olcsbbak s kisebbek (3 x 2 x 0,5 col, ami 76 x 51 x 12 mm) a 8 mm-es kiadsnl. A 4 mm-es feje, hasonlan a 8 mm-eshez, valamilyen okbl szintn viszonylag rvid ideig brja, s mind a kett spirlis psztzst hasznl. Ezeknl a meghajtknl az adattvitel nagyjbl 150 KB/mp-nl kezddik s 500 KB/mp-nl vgzdik. Az adattrolsi kpessgk 1,3 GB-tl indul s 2,0 GB-ig tart. A hardveres tmrts, ami a legtbb ilyen tpus meghajtnl elrhet, kzel megduplzza a kapacitst. A tbbmeghajts szalagos knyvtr egysgek egyetlen szekrnyben 6 meghajtt kpes befogadni, a szalagok automatikus cserlgetsvel. Az ilyen knyvtrak kapacitsa a 240 GB-ot is elrheti. A DDS-3 szabvny most mr akr 12 GB (vagy tmrtve 24 GB) kapacitst is elrhetv tesz. A 4 mm-es meghajtk, hasonlan a 8 mm-es meghajtkhoz, spirlis psztzst alkalmaznak. A spirlis psztzs sszes elnye s htrnya ezrt egyarnt l a 4 mm-es s 8 mm-es meghajtk esetn. A szalagok 2 000 menet vagy 100 teljes mentes utn kopnak el.

18.9.2. 8 mm-es (Exabyte)


A 8 mm-es szalagok a legelterjedtebb szalagos SCSI-meghajtk. A szalagok hasznlatra ez a legjobb vlaszts. Szinte mindegyik rendszerben egy 2 GB-os 8 mm-es Exabyte szalagos meghajtt hasznlnak. A 8 mm-es meghajtk megbzhatak, knyelmesek s csendesek. A kazettk olcsk s kicsik (4,8 x 3,3 x 0,6 col, azaz 122 x 84 x 15 mm). A 8 mm-es szalagok feje viszonylag csak rvid ideig brja a szalag nagy mrtk oda-vissza mozgsa miatt. Az adattvitel sebessge 250 KB/mp-tl 500 KB/mp-ig terjed, valamint a 300 MB-tl egszen 7 GB-os mretig tallkozhatunk velk. A meghajtkban elrhet hardveres tmrts kpes kzel megduplzni a kapacitst. Ezek a meghajtk nll egysgknt is beszerezhetek vagy egy 6 egysgbl ll s 120 szalagos szalagos knyvtr rszeknt. Ezek az egysgek nllan vltjk a szalagokat. Az ilyen knyvtrak kapacitsa elri a kzel 840 GB-ot. Az Exabyte Mammoth modellje szalagonknt 12 GB (tmrtssel pedig 24 GB) adatot kpes trolni, viszont a hagyomnyos szalagos meghajtknl nagyjbl ktszer tbbe kerl. Az adatok spirlis psztzssal kerlnek a szalagra, s a fejek adott (nagyjbl 6 fokos) szgben llnak a szalag felett. A szalag a fejeket tart ors kr tekeredik, krlbell 270 fokban. Ennek eredmnykppen nagyobb adatsrsg s szorosan zrt svok jnnek ltre, ahogy ebben a szgben a fej eljut a szalag egyik lrl a msikra.

500

Fejezet 18. Httrtrak

18.9.3. QIC
A QIC-150 meghajtk s szalagok taln a legelterjedtebb szalagos egysgek s adathordozk. A QIC szalagos meghajtk a legolcsbb komolynak tekinthet biztonsgi mentsre alkalmas meghajtk. Az olcssg azonban megkveteli a maga rt. A QIC-szalagok a 4 s 8 mm-es szalagokkal szemben akr tszr is drgbbak lehetnek gigabyte-onknt. De ha megelgsznk csupn fltucat szalaggal is, akkor a QIC j vsrnak tnhet. A QIC a leginkbb elterjedtebb szalagos meghajt. Minden rendszerben biztonsan tallunk valamilyen minsgben QIC-meghajtt. A QIC zikailag hasonl (s gyakran azonos) felpts szalagokat gyrt rengeteg klnbz adatsrsggel. Az ilyenkor keletkez srldsok miatt a QIC-meghajtk egyltaln nem nevezhetek csendesnek. Az ilyen tpus meghajtk az adatok rgztse eltt kln hangjelensg ksretben keresik meg a megfelel pozcit s tisztn hallhat, ahogy olvasnak, rnak s keresnek. A QIC-szalagok mrete 6 x 4 x 0,7 col (avagy 152 x 102 x 17 mm). Az adattviteli sebessg nagyjbl 150 KB/mp-tl 500 KB/mp-ig terjedhet. A kapacits szalagonknt 40 MB s 15 GB kztt vltozhat. A legtbb jabb QIC-meghajt tmogatja a hardveres tmrtst. QIC-meghajtkat azonban egyre kevsb tallhatunk, helyket szpen lassan mindenhol tveszik a DAT-meghajtk. A szalagokra svokban rgztik az adatokat. Ezek a svok szalag felletnek hosszanti tengelyn futnak az egyik vgtl a msikig. A svok szma valamint a svok vastagsga a szalagok kapacitstl fggen vltoznak. Ha nem is sszes legjabb, de a legtbb meghajt legalbb olvass szintjn kompatibilis a rgebbi tpusokkal (de gyakran rsban is). A QIC hresen megbzhat az adatbiztonsg tekintetben (a mechanikja sokkal egyszerbb s strapabrbb a spirlis psztzssal mkd meghajtknl). A szalagokat 5000 ments utn rdemes lecserlni.

18.9.4. DLT
A DLT rendelkezik a legnagyobb adattviteli sebessggel az itt sszefoglalt meznyben. A 1/2 colos (12,5 mm-es) szalag egy egyorss tokban foglal helyet (mrete 4 x 4 x 1 col, azaz 100 x 100 x 25 mm). A tok egyik oldaln vgig egy cssz kapu tallhat. A meghajt ezt a kaput nyitja ki s ezen keresztl hzza be a szalagot. A szalag elejn tallhat egy ovlis lyuk, amibe a meghajt bele tud akaszkodni. A feszt ors a szalagos meghajtban foglal helyet. Az sszes tbbi szalag esetn (kivve egyedl a 9 svos szalagokat) mind a segd- s feszt orsk magban a kazettban tallhatak. Az adattviteli sebessge megkzeltleg 1,5 MB/mp, teht hromszor nagyobb brmelyik 4 mm-es, 8 mm-es vagy QIC-szalagos egysgnl. Az adattrol kpessge kazettnknt 10 GB-tl 20 GB-ig terjedhet. A meghajtk egyarnt elrhetek tbbkazetts, cserlgets s tbbkazetts, tbbmeghajts knyvtrakban is, melyek 5 kazetttl egszen 900 kazettig, illetve 1 meghajttl 20 meghajtig kpesek befogadni, gy teljes trterletk 50 GB-tl 9 TB-ig terjed. A DLT Type V formtum tmrtssel kzel 70 GB-os kapacitst kpes elrni. A szalagra az adatok a haladsi irnnyal prhuzamosan kerlnek fel (akrcsak a QIC-szalagok esetben). Egyszerre kt svot rgzt. A r/olvas fejek lettartama viszonylag nagy. Ahogy a szalag megll, a fej s a szalag kztt nincs szksg tovbbi relatv mozgsra.

18.9.5. AIT
Az AIT a Sony j formtuma, ami egszen 50 GB mennyisg adatot kpes trolni (tmrtssel) egyetlen szalagon. A szalagokat memriachipekkel ltjk el, melyek a szalag tartalmt indexelik. Az indexek felhasznlsval aztn a

501

Fejezet 18. Httrtrak szalagos meghajt villmgyorsan kpes meghatrozni a szalagon tallhat llomnyok helyt, szemben az ilyenkor megszokott tbbperces mvelettel. A SAMS:Alexandria s a hozz hasonl szoftverek negyven vagy tbb AIT-szalagos knyvtrral is kpesek egyszerre dolgozni, s kzvetlenl a szalagok memrijval veszik fel a kapcsolatot a tartalmuk megjelentshez, a mentett llomnyok rendszerezshez, a helyes szalag megkeresshez, betltshez s visszatltshez. Az ilyen knyvtrak a 20 000 dollros (kb. 3,5 milli forintos) rkategriba tartoznak, ami miatt csak egy kicsivel cssznak ki a hobbi kategribl.

18.9.6. Az j szalagok els hasznlata


Amikor az els alkalommal akarunk beolvasni vagy rni egy j, teljesen res szalagot, hibra fogunk futni. Egy ehhez hasonl konzolzenet fog megjelenni:
sa0(ncr1:4:0): NOT READY asc:4,1 sa0(ncr1:4:0): Logical unit is in process of becoming ready

A szalag nem tartalmaz azonost blokkot (Identier Block) a nulladik blokkban. A QIC-525 szabvny tvtele ta mindegyik QIC szalagos meghajt ltrehozza ezt az azonost blokkot. Teht kt megolds ltezik:

Az mt fsf 1 paranccsal felrunk egy ilyen azonost blokkot a szalagra. A meghajt ellapjn tallhat gomb segtsgvel dobassuk ki a szalagot. Rakjuk vissza a szalagot s hajtsunk vgre rajta egy dump parancsot. A dump parancs erre egy DUMP: End of tape detected (szalag vge) hibazenetet ad, majd a kvetkez jelenik meg a konzolon: HARDWARE FAILURE info:280 asc:80,96. Tekertessk vissza a szalagot az mt rewind paranccsal. A szalag kvetkez mvelete most mr sikeres lesz.

18.10. Biztonsgi ments hajlkonylemezekre


18.10.1. Hajlkonylemezre is lehet biztonsgi mentst kszteni?
A oppy lemezek nem igazn felelnek meg biztonsgi ments ksztsre, mivel:

Nem megbzhat adathordozk, klnsen hosszabb idre. Esetkben a ments s visszallts nagyon lass. Kapacitsuk ersen korltozott (annak mr rgen elmlt az ideje, amikor egsz merevlemezeket tudtunk lementeni egy tucat oppyra).

Habr ha mshogy nem tudunk biztonsgi mentst kszteni, akkor a oppy lemezekkel mg mindig jobban jrunk, mint nlklk.

502

Fejezet 18. Httrtrak Ha mr mindenkppen oppy lemezeket kell hasznlnunk, akkor igyekezznk minl jobb minsgeket beszerezni. Teht az olyan oppyk, amik mr vek ta kavarognak az irodban, erre a clra nem ppen bizonyulnak a legjobb vlasztsnak. Idelis esetben egy megbzhat gyrttl szrmaz j oppykat hasznlunk.

18.10.2. Teht akkor hogyan mentsk az adatokat hajlkonylemezre?


Legegyszerbban a tar(1) -M (tbbktetes) opcijval tudunk oppy lemezre menteni, aminek hasznlatval tbb oppyra kiterjed mentseket is kszthetnk. Az aktulis knyvtr s a benne lev alknyvtrak tartalmt (root) felhasznlknt a kvetkez paranccsal tudjuk lementeni:
# tar Mcvf /dev/fd0 *

Amikor az els oppy megtelik, a tar(1) krni fogja a kvetkez ktetet (volume) (mivel a tar(1) adathordoztl fggetlen mdon hivatkozik a ktetekre, teht ebben a krnyezetben a ktet egy oppy lemezt jelent):
Prepare volume #2 for /dev/fd0 and hit return:

Az zenet fordtsa:
Ksztse el a 2. ktetet a /dev/fd0 eszkzn s nyomja le a return billentyt

A folyamat egszen addig ismtldik (a ktetek szmnak nvekedsvel), amg az sszes llomny lementsre nem kerl.

18.10.3. Lehet tmrteni a mentseket?


Sajnos a tar(1) tbbktetes mentsek esetn nem engedi a -z bellts hasznlatt. Termszetesen ettl fggetlenl a gzip(1) segtsgvel mg be tudjuk tmrteni az sszes llomnyt, a tar(1) paranccsal oppyra menteni ezeket, majd a gunzip(1) paranccsal kitmrteni.

18.10.4. Hogyan lltsuk vissza a biztonsgi mentseket?


Az egsz ments visszalltshoz adjuk ki a kvetkez parancsot:
# tar Mxvf /dev/fd0

Kt mdon tudunk csak bizonyos llomnyokat visszalltani. Elszr is, tegyk be a ments els lemezt s adjuk ki a kvetkez parancsot:
# tar Mxvf /dev/fd0 llomny

A tar(1) segdprogram ezutn sorban krni fogja a tbbi lemezt egszen addig, amg meg nem tallja a keresett llomnyt.

503

Fejezet 18. Httrtrak Vagy ha pontosan tudjuk, hogy melyik lemezen tallhat a keresett llomny, akkor az imnti parancs hasznlatt azzal a lemezzel kezdjk. Vigyzzunk, mert ha a lemezen tallhat els llomny az elz lemezen kezddik, akkor a tar(1) gyelmeztetni fog minket, hogy nem lltja vissza mg akkor sem, ha erre nem is krtk!

18.11. Mentsi stratgik


Eredetileg ksztette: Lowell Gilbert. Egy biztonsgi ments kidolgozsa sorn az els kvetelmny gondoskodnunk az albbi problmkrl:

Lemezhiba Az llomnyok vletlen trlse Az llomnyok vletlenszer krosodsa Szmtgpek teljes megsemmislse (pldul tz ltal), belrtve a kzelben trolt sszes biztonsgi mentst

Tkletesen megoldhat, hogy egyes rendszerek a fentebb felsorolt problmk mindegyikt teljesen eltr technikval oldjk meg. A nagyon szemlyes rendszerektl s a nagyon rtktelen adatoktl eltekintve szinte egyrtelmen kizrt, hogy egyetlen technika kpes lefedni az sszes problmt. Kellktrunk nhny alapvet eszkze:

Az egsz rendszer mentse, amit egy megbzhat helyre elzrt, tarts adattrolra ksztnk. Ez tulajdonkppen vdelmet biztost a fentebb megemltett sszes problma esetben, de lass s knyelmetlen rla visszalltani az adatokat. A kzelben s/vagy neten is tarthatunk errl msolatokat, de mg gy is knyelmetlen az llomnyok visszalltsa, klnsen az egyszer felhasznlk szmra. Pillanatkpek ksztse az llomnyrendszerrl. Ez valjban csak olyan esetekben lehet a segtsgnkre, amikor vletlenl trltnk llomnyokat, m ilyenkor hatrozottan jl jn, mivel igen gyorsan s knnyen lehet vele dolgozni. Az egsz llomnyrendszer s/vagy az sszes lemez msolata (pldul az rsync(1) idszakos alkalmazsa a komplett gpre). Az ltalban az egyedi ignyekkel br hlzatok esetben eshet a keznkre. A lemezhiba ellen vdelemben ez a megolds ltalban a RAID alatt ll. A vletlenl trlt llomnyok visszalltsnak tekintetben az UFS pillanatkpeivel mrhet ssze, de ez leginkbb a sajt ignyeinktl fgg. RAID alkalmazsa. A lemezek meghibsodsa esetn segti minimalizlni vagy elkerlni a kiesst, ugyan gyakori lemezhibk rn (mivel ilyenkor tbb lemezt hasznlunk) de kisebb srgssggel. Az llomnyok ujjlenyomatnak ellenrzse. Az mtree(8) segdprogram nagyon hasznos tud lenni ebben az esetben. Habr ez nem egy mentsi technika, mgis segt megllaptani, hogy mikor kell nyugdjba kldennk a biztonsgi mentseinket. Ez klnsen az aktv nem hasznlt mentsekre vonatkozik, ezeket bizonyos id elteltvel mindig rdemes ellenrizni.

Nagyon knny lenne tovbbi technikkat is felsorolni, melyek legtbbje az imntiek valamilyen kombincija lenne. A specilis ignyek ltalban specilis technikkat eredmnyeznek (pldul egy les adatbzis biztonsgi mentse ltalban az adott adatbziskezel rendszer kzremkdst is elvrja). Mindig fontos tudni, hogy milyen veszlyek ellen vdekeznk s hogyan kezeljk le ezeket.

504

Fejezet 18. Httrtrak

18.12. Alapvet tudnivalk a biztonsgi mentsrl


A dump(8), tar(1) s cpio(1) a hrom legfontosabb biztonsgi mentsekkel kapcsolatos program.

18.12.1. Ments s helyrellts


A UNIX tpus rendszerekben a biztonsgi mentst hagyomnyosan a dump s restore programok vgzik. A meghajtkat lemezblokkok sszesgeknt kezelik, az llomnyrendszerek ltal ltrehozott llomnyok, linkek s knyvtrak szintje alatt. Eltren ms, biztonsgi mentst vgz szoftverektl, a dump az adott eszkzn egy egsz llomnyrendszert kpes lementeni. Nem kpes csak az llomnyrendszer vagy egy tbb llomnyrendszerre kiterjed knyvtrszerkezet egy rszt lementeni. A dump nem llomnyokat s knyvtrakat r a szalagra, hanem nyers adatblokkokat, amelyek llomnyokat s knyvtrakat formznak. A restore parancs az adatokat alaprtelmezs szerint a /tmp knyvtrba tmrti ki. Ha nem lenne elegend helynk a /tmp knyvtrban, akkor a TMPDIR krnyezeti vltoz tlltsval ehelyett megadhatunk egy olyat, ahol mr kell mennyisg terlet ll rendelkezsre a restore akadlytalan lefutshoz.
Megjegyzs: Ha a dump parancsot a gykr knyvtrban adjuk ki, akkor nem fogja lementeni a /home vagy /usr vagy brmilyen ms knyvtrat, mivel ezek jellemz mdon ms llomnyrendszerek csatlakozsi pontja vagy ms llomnyrendszerekre mutat szimbolikus linkek.

A dump parancsnak vannak olyan rigolyi, amelyek mg az AT&T UNIX 6. verzijbl (1975 krnykrl) maradtak vissza. Az alaprtelmezett paramterezse 9 svos szalagokat felttelezi (6250 bpi), nem pedig a napjainkban elterjedt nagy rssrssg (egszen 62 182 ftpi-s) adathordozkat. Ezek az alaprtelmezsek termszetesen paranccsorbl fellbrlhatak, s gy a manapsg alkalmazott szalagos meghajtk teljes kapacitsa is kihasznlhat vele. Emellett az rdump s rrestore programok segtsgvel hlzaton keresztl is le tudjuk menteni az adatainkat egy msik szmtgpre csatlakoztatott szalagos egysgre. Mind a kt program az rcmd(3) s a ruserok(3) parancsokat hasznlja a tvoli szalagos meghajt elrshez. Az rdump s rrestore paramtereinek a tvoli szmtgp hasznlathoz kell illeszkednik. Amikor egy FreeBSD rendszer szmtgpet az rdump paranccsal egy Sun rendszer, komodo nev szmtgpre mentnk, amelyhez egy Exabyte szalagos meghajt csatlakozik, akkor ezt a rjuk be:
# /sbin/rdump 0dsbfu 54000 13000 126 komodo:/dev/nsa8 /dev/da0a 2>&1

Figyelem: az .rhosts llomnyon keresztl hitelestsnek megvannak a maga biztonsgi kockzatai. Ne felejtsk el felmrni ezt a sajt krnyezetnkben sem. A dump s restore parancsokat az ssh hasznlatval mg biztonsgosabb tehetjk. Plda 18-1. A dump hasznlata az ssh alkalmazssal
# /sbin/dump -0uan -f - /usr | gzip -2 | ssh -c blowfish \ clfelhasznl@cl.gp.hu dd of=/nagyllomnyok/dump-usr-l0.gz

Vagy az RSH krnyezeti vltoz megfelel belltsval hasznlhatjuk a dump beptett mdszert:

505

Fejezet 18. Httrtrak Plda 18-2. A dump hasznlata az ssh alkalmazssal, az RSH krnyezeti vltoz belltsval
# RSH=/usr/bin/ssh /sbin/dump -0uan -f clfelhasznl@cl.gp.hu:/dev/sa0 /usr

18.12.2. tar
A tar(1) is az AT&T UNIX 6. verzijig nylik vissza (teht nagyjbl 1975-ig). A tar az llomnyrendszerrel szoros egyttmkdsben dolgozik, llomnyokat s knyvtrakat r a szalagra. A tar ugyan nem ismeri a cpio(1) ltal felknlt sszes lehetsget, de nincs is szksge olyan szokatlan paranccsoros sszekapcsolsokra, mint a cpio parancsnak. A FreeBSD 5.3 vagy ksbbi vltozataiban a GNU tar s az alaprtelmezs szerinti bsdtar egyarnt elrhet. A GNU vltozat a gtar paranccsal hvhat meg. Az rdump parancshoz hasonl felrsban kpes kezelni a tvoli eszkzket. Teht gy tudjuk hasznlni a tar parancsot a komodo nev Sun szmtgp Exabte szalagos meghajtjnak elrsre:
# /usr/bin/gtar cf komodo:/dev/nsa8 . 2>&1

Ugyanez eltrhet a bsdtar hasznlatval is, amikor az rsh programmal sszekapcsolva kldnk t a tvoli szalagos egysgre.
# tar cf - . | rsh hlzati-nv dd of=szalagos-eszkz obs=20b

Ha a hlzaton keresztl ments sorn fontos szmunkra a biztonsg, akkor az rsh parancs helyett az ssh parancsot hasznljuk.

18.12.3. cpio
A cpio(1) eredetileg a UNIX szalagos programjai s szalagos egysgei kztt kzvettett. A cpio parancs (tbbek kzt) kpes a byte-ok sorrendjnek felcserlsre, tbb klnbz archvum formtuma szerint rni s adatokat kzvetteni ms programok fel. Ez utbbi lehetsge miatt a cpio kvlan alkalmas a telepteszkzk szmra. A cpio nem kpes bejrni a knyvtrszerkezetet, s az llomnyok listjt a szabvnyos bemeneten keresztl kell megadni neki. A cpio nem tmogatja a biztonsgi ments tkldst a hlzaton. Programok sszekapcsolsval s az rsh hasznlatval tudunk adatokat kldeni tvoli szalagos meghajtkra.
# for f in knyvtr_lista; do find $f >> mentsi.lista done # cpio -v -o --format=newc < backup.list | ssh felhasznl@gp "cat > menteszkz"

Ahol a knyvtr_lista a menteni kvnt knyvtrak listja, a felhasznl@gp a mentst vgz gp felhasznljnak s hlzati nevnek egyttese, valamint a menteszkz, ahova a ments kerl (pldul /dev/nsa0).

506

Fejezet 18. Httrtrak

18.12.4. pax
A pax(1) az IEEE/POSIX vlasza a tar s cpio programokra. Az vek sorn a tar s a cpio klnbz vltozatai egy kiss inkompatibiliss vltak. Ezrt a szabvnyostsuk kiharcolsa helyett inkbb a POSIX ltrehozott egy j archivl segdprogramot. A pax megprblja rni s olvasni a cpio s tar formtumok legtbb vltozatt, valamint emellett tovbbi sajt formtumokat is kezel. A parancskszlete inkbb a cpio parancsra emlkeztet, mintsem a tar parancsra.

18.12.5. Amanda
Az Amanda (Advanced Maryland Network Disk Archiver) egy kliens-szerver alap mentsi rendszer, nem pedig egy nll program. Az Amanda szerver menti tetszleges szm szmtgp adatt egyetlen szalagra, melyek az Amanda klienst futtatjk s hlzaton keresztl hozz csatlakoznak. A nagy mennyisg s nagy kapacits lemezekkel rendelkez rendszerekben kzvetlenl a mentshez szksges id nem ll rendelkezsre a feladat elvgzshez. Az Amanda viszont kpes megoldani ezt a problmt. Az Amanda kpes egy sajt lemez hasznlatval egyszerre tbb llomnyrendszerrl is biztonsgi mentst kszteni. Az Amanda archvumkszleteket hoz ltre: az Amanda kongurcis llomnyban megadott llomnyrendszerekrl kszt teljes mentst egy adott id alatt egy adott mennyisg szalagra. Az archvumkszlet ezenkvl mg tartalmaz egy napi inkrementlis (vagy klnbzeti) mentst is minden egyes llomnyrendszerrl. A srlt llomnyrendszerek visszalltshoz mindig a legjabb teljes biztonsgi mentsre s a hozztartoz inkrementlis mentsekre van szksgnk. A kongurcis llomny segtsgvel precz irnytst gyakorolhatunk a ltrehozott mentsek s az Amanda ltal keltett hlzati forgalom felett. Az Amanda a fentiek kzl brmelyik programmal kpes az adatokat szalagra rgzteni. Az Amanda portknt vagy csomagknt is elrhet, alaprtelmezs szerint nem telepl.

18.12.6. Ne csinljunk semmit


A Ne csinljunk semmit nem egy jabb szmtgpes program, hanem egy igen gyakran alkalmazott mentsi stratgia. Nem kell beruhzni. Nem kell semmilyen biztonsgi mentsi rendet kvetni. Egyszeren semmit se csinlunk. Ha vletlenl valami trtnne az adatainkkal, akkor csak mosolyogjunk s trdjnk bele! Amennyiben az idnk s adataink keveset vagy ppen semmit se rnek, akkor a Ne csinljunk semmit az elrhet legjobb biztonsgi mentsi megolds szmtgpnk szmra. De legynk vatosak, mert a UNIX egy igen hasznos eszkz, s fl ven bell knnyen gy tallhatjuk magunkat, hogy mgis csak vannak rtkes adataink. A Ne csinljunk semmit tkletesen megfelel mentsi mdszer a /usr/obj s a hozz hasonl mdon a szmtgpen automatikusan generlt knyvtrak s llomnyok esetben. Ugyanilyen plda lehetne a kziknyv HTML vagy PostScript vltozata. Ezek a formtumok ugyanis az SGML forrsok alapjn keletkeznek, gy a HTML vagy PostScript llomnyok mentse nem letbevg. Az SGML llomnyokat viszont mr annl inkbb mentsk!

18.12.7. Melyik a legjobb?


dump(8) Pont. Elizabeth D. Zwicky komolyan letesztelte az itt felsorolt sszes programot. A UNIX llomnyrendszerek jellegzetessgeinek s rajtuk az sszes adatunk megrzsnek egyrtelmen a dump felel meg a legjobban. Elizabeth a minden egyes program tesztjhez olyan llomnyrendszereket hozott ltre, amelyek rengeteg klnfle szokatlan helyzetet tartalmaztak (valamint nhny nem annyira szokatlant). Az rintett jellegzetessgek:

507

Fejezet 18. Httrtrak lyukas llomnyok, lyukas llomnyok s egy halom nulla, llomnyok rdekes karakterekkel a nevkben, olvashatatlan s rhatatlan llomnyok, eszkzk, a ments kzben mretket vltoztat llomnyok, a ments kzben keletkez s megszn llomnyok s mg sok minden ms. Az eredmnyeit a LISA V-ben jelentette meg 1991. oktberben. Lsd A biztonsgi mentshez s archivlshoz hasznlt programok tesztje (angolul) (http://berdmann.dyndns.org/zwicky/testdump.doc.html).

18.12.8. Az adatok helyrelltsa vszhelyzetben


18.12.8.1. A katasztrfa eltt
Csupn ngy lpst kell megtennnk az esetleges katasztrfk bekvetkezsnek esetre. Elszr is kt pldnyban nyomtassuk ki az egyes lemezek lemezcmkjt (pldul a bsdlabel da0 | lpr paranccsal) valamint az llomnyrendszerek tblzatt (az /etc/fstab llomnyt) s az sszes rendszerindtskor megjelen zenetet. Msodsorban gondoskodjunk rla, hogy a helyrellt lemezek (boot.flp s fixit.flp) hasznlatakor minden eszkznk lthat. Ezt a legknnyebben gy tudjuk ellenrizni, hogy jraindtjuk a gpet a lemezrl s tnzzk a rendszerindts sorn megjelen zeneteket. Ha szerepel bennk minden eszkz s a rendszer indulsa utn mkdkpesek, akkor jhet a kvetkez lps. Ellenkez esetben ltre kell hoznunk kt sajt rendszerindt lemezt, amelyeken a rendszermag olyan vltozata tallhat, amely kpes csatlakoztatni az sszes lemeznket s el tudja rni a szalagos egysgnket. A oppykon a kvetkezknek kell meglennie: fdisk, bsdlabel, newfs, mount s a program, amellyel a biztonsgi mentseinket kezeljk. Az sszes program legyen statikusan linkelt. Ha a dump programot hasznljuk, akkor a lemezekrl ne felejtsk le a restore programot sem. A harmadik lpsben igyekezznk minl gyakrabban szalagra menteni. Mindig gondoljuk arra, hogy a legutols ments ta ltrehozott vltozatsaink teljesen el fognak veszni. A mentseket tartalmaz szalagokat tegyk rsvdett. A negyedik lpsben ellenrizzk a helyrellt lemezeket (vagy a boot.flp s fixit.flp llomnyokat, vagy a msodik lpsben ksztett sajt lemezeinket) s mentseket tartalmaz szalagokat. Jegyezzk le az eljrst. Ezeket a jegyzeteket is rakjuk el rendszerindt lemezekkel, a kinyomtatott adatokkal s a mentseket tartalmaz szalagokkal egytt. Ezek a jegyzetek megvdenek minket attl, hogy a helyrellts kzbeni ktsgbeessnkben nehogy vletlenl tnkretegyk a biztonsgi mentseinket. (Hogy miknt is? Pldul ha a tar xvf /dev/sa0 parancs helyett izgalmunkban a tar cvf /dev/sa0 parancsot gpeljk be, akkor azzal fellrjuk a biztonsgi mentseinket). A fokozott biztonsg kedvrt minden alkalommal ksztsnk rendszerindt lemezeket s legalbb kt mentst. Az egyiket valamilyen tvoli helyen troljuk. Ez a tvoli hely NE ugyanannak az pletnek az alagsora legyen! Szmos cg alaposan megtanulta ezt a szablyt a Vilgkereskedelmi kzpont tragdija kapcsn. Ez a tvoli hely szmtgpeinkbl s merevlemezes meghajtinkl is zikailag jl elklnthet, jelents tvolsgban legyen. Plda 18-3. A rendszerindt lemezek ltrehozshoz hasznlhat szkript
#!/bin/sh # # Egy helyre&aacute;ll&iacute;t&oacute; lemez l&eacute;trehoz&aacute;sa. #

508

Fejezet 18. Httrtrak


# A lemez megform&aacute;z&aacute;sa. # PATH=/bin:/sbin:/usr/sbin:/usr/bin fdformat -q fd0 if [ $? -ne 0 ] then echo "Rossz lemez, haszn&aacute;ljon m&aacute;sikat!" exit 1 fi # A rendszerind&iacute;t&oacute; blokkok r&ouml;gz&iacute;t&eacute;se a lemezre. # bsdlabel -w -B /dev/fd0c fd1440 # # Az egyetlen part&iacute;ci&oacute; l&eacute;trehoz&aacute;sa. # newfs -t 2 -u 18 -l 1 -c 40 -i 5120 -m 5 -o space /dev/fd0a # # A lemez csatlakoztat&aacute;sa. # mount /dev/fd0a /mnt # # A sz&uuml;ks&eacute;ges k&ouml;nyvt&aacute;rak l&eacute;trehoz&aacute;sa. # mkdir /mnt/dev mkdir /mnt/bin mkdir /mnt/sbin mkdir /mnt/etc mkdir /mnt/root mkdir /mnt/mnt # a rendszerind&iacute;t&oacute; part&iacute;ci&oacute;hoz mkdir /mnt/tmp mkdir /mnt/var # # A k&ouml;nyvt&aacute;rak felt&ouml;lt&eacute;se. # if [ ! -x /sys/compile/MINI/kernel ] then cat << EOM Ha m&eacute;g nem l&eacute;tezne a MINI rendszermag, akkor hozzunk l&eacute;tre egyet. &Iacute;me hozz&aacute; egy minta konfigur&aacute;ci&oacute;s &aacute;llom&aacute;ny: # # MINI -- Egylemezes FreeBSD rendszermag. # machine "i386" cpu "I486_CPU" ident MINI maxusers 5

509

Fejezet 18. Httrtrak


options options options options options options config device device device device device device device device device device device device pseudo-device pseudo-device EOM exit 1 fi INET FFS FAT_CURSOR SCSI_DELAY=15 NCONS=2 USERCONFIG # # # # # # #

a k&ouml;vetkez&#245;kh&ouml;z kell: _tcp _icmpstat _ip _udpstat _tcpstat _udb Berkeley Fast File System k&ouml;v&eacute;r kurzor a syscons vagy pccons eset&eacu legy&uuml;nk pesszimist&aacute;k a SCSI eszk&ouml;z&ouml 1 virtu&aacute;lis konzol a -c XXX seg&iacute;ts&eacute;g&eacute;vel megadhat&oacu

kernel root on da0 swap on da0 and da1 dumps on da0 isa0 pci0 fdc0 at isa? port "IO_FD1" bio irq 6 drq 2 vector fdintr fd0 at fdc0 drive 0 ncr0 scbus0 sc0 at isa? port "IO_KBD" tty irq 1 vector scintr npx0 at isa? port "IO_NPX" irq 13 vector npxintr da0 da1 da2 sa0 loop gzip

# az INET-hez kell # gzip-pel t&ouml;m&ouml;r&iacute;tett a.out v&eacute;grehajt&aacu

cp -f /sys/compile/MINI/kernel /mnt gzip gzip gzip gzip gzip -c -c -c -c -c -best -best -best -best -best /sbin/init > /mnt/sbin/init /sbin/fsck > /mnt/sbin/fsck /sbin/mount > /mnt/sbin/mount /sbin/halt > /mnt/sbin/halt /sbin/restore > /mnt/sbin/restore

gzip -c -best /bin/sh > /mnt/bin/sh gzip -c -best /bin/sync > /mnt/bin/sync cp /root/.profile /mnt/root chmod chmod chmod chmod 500 /mnt/sbin/init 555 /mnt/sbin/fsck /mnt/sbin/mount /mnt/sbin/halt 555 /mnt/bin/sh /mnt/bin/sync 6555 /mnt/sbin/restore

510

Fejezet 18. Httrtrak

# # Egy minim&aacute;lis &aacute;llom&aacute;nyrendszeri t&aacute;bl&aacute;zat l&eacute;trehoz&aacu # cat > /mnt/etc/fstab <<EOM /dev/fd0a / ufs rw 1 1 EOM # # Egy mini&aacute;lis jelsz&oacute; &aacute;llom&aacute;ny l&eacute;trehoz&aacute;sa. # cat > /mnt/etc/passwd <<EOM root:*:0:0:Charlie &:/root:/bin/sh EOM cat > /mnt/etc/master.passwd <<EOM root::0:0::0:0:Charlie &:/root:/bin/sh EOM chmod 600 /mnt/etc/master.passwd chmod 644 /mnt/etc/passwd /usr/sbin/pwd_mkdb -d/mnt/etc /mnt/etc/master.passwd

# # A lemez lev&aacute;laszt&aacute;sa &eacute;s err&#245;l a felhaszn&aacute;l&oacute; &eacute;rtes # /sbin/umount /mnt echo "A lemezt lev&aacute;lasztottam &eacute;s most m&aacute;r k&eacute;sz."

18.12.8.2. A katasztrfa utn


Az alapvet krds: a hardver tllte? Ha rendszeresen ksztettnk biztonsgi mentseket, akkor a szoftverek miatt egyltaln nem kell aggdnunk. Ha a hardver megsrlt, akkor a szmtgp hasznlatnak jbl megkezdse eltt javasolt cserlni a meghibsodott alkatrszeket. Ha a hardverrel minden rendben talltunk, akkor nzzk meg a oppykat. Ha sajt rendszerindt lemezt hasznlunk, akkor indtsuk el egyfelhasznls mdban (a boot: parancssornl rjuk be, hogy -s) s ugorjuk t a kvetkez bekezdst. Amennyiben viszont a boot.flp s fixit.flp llomnyok alapjn ksztettk a lemezeket, olvassunk tovbb. Helyezzk a boot.flp tartalm lemezt az elsdleges oppy meghajtba s indtsuk el vele a szmtgpet. Az eredeti teleptmen jelenik meg ezutn a kpernyn. Innen vlasszuk ki a Fixit -- Repair mode with CDROM or floppy (Helyrellts -- A rendszer helyrelltsa CD-rl vagy oppyrl) menpontot. Amikor kri a telept, tegyk be a fixit.flp alapjn kszlt lemezt. A restore s az sszes tbbi szmunkra fontos program a /mnt2/rescue knyvtrban tallhat (vagy a FreeBSD 5.2-nl korbbi vltozatai esetn a /mnt2/stand knyvtrban). Egyenknt lltsuk vissza az egyes llomnyrendszereket. A mount paranccsal prbljuk meg csatlakoztatni az els lemeznk rendszerindt partcijt (pldul mount /dev/da0a /mt). Ha a lemezcmke megsrlt, akkor bsdlabel alkalmazsval partcionljuk jra a lemezt s

511

Fejezet 18. Httrtrak cmkzzk meg a korbban kinyomtatott cmke adatainak megfelelen. A newfs segtsgvel jra hozzuk ltre az llomnyrendszereket. rhat-olvashat mdban csatlakoztassuk jra a oppy rendszerint partcijt (mount -u -o rw /mnt). A biztonsg mentst vgz program s a biztonsgi mentst tartalmaz szalagok hasznlatval lltsuk helyre az llomnyrendszer tartalmt (pldul restore vrf /dev/sa0). Vlasszuk le az llomnyrendszert (pldul umount /mnt). Mindegyik srlt llomnyrendszerre ismteljk a folyamatot. Ahogy mkdkpess vlt a rendszernk, mentsk az adatainkat j szalagokra. Akrmi is okozta a rendszer sszeomlst vagy az adatvesztst, ismt lecsaphat. Ha most ldozunk erre mg egy rt, akkor azzal a ksbbiekben szmos kellemetlensgtl vhatjuk meg magunkat.

18.13. Hlzat, memria s llomny alap llomnyrendszerek


tdolgozta s feljavtotta: Marc Fonvieille. A szmtgpnkben ltez zikai lemezek, pldul oppyk, CD-k, merevlemezek s egyebek mellett a lemezek egy msik formjt is kpes megrteni a FreeBSD a virtulis lemezeket. A virtulis lemeznek tekinthetek tbbek kzt az olyan hlzati llomnyrendszerek, mint pldul a Hlzati llomnyrendszer (Network File System, NFS) s a Coda, valamint a memriban s llomnyokban ltrehozott llomnyrendszerek. Attl fggen, hogy a FreeBSD melyik vltozatt hasznljuk, az llomny s memria alap llomnyrendszerek ltrehozshoz, illetve hasznlathoz klnbz segdprogramokra lesz szksgnk.
Megjegyzs: A devfs(5) a felhasznl szmra lthatatlan mdon hozza ltre az eszkzk lerit.

18.13.1. llomny alap llomnyrendszerek


FreeBSD alatt az mdcong(8) segdprogram segtsgvel tudunk memrialemezeket (md(4)) belltani s engedlyezni. Az mdcong(8) hasznlathoz be kell tltennk az md(4) modult vagy hozz kell tennnk a rendszermagunk belltsait tartalmaz llomnyhoz:
device md

Az mdcong(8) parancs hromfle memria alap virtulis lemezt ismer: a malloc(9), llomnyok vagy lapozterlet hasznlatval ltrehozott memrialemezeket. gy lehet pldul csatlakoztatni a oppyk vagy CD-k llomnyokban trolt image-eit. Egy meglev llomnyrendszer image-nek csatlakoztatsa: Plda 18-4. Egy meglev llomnyrendszer image-nek csatlakoztatsa az mdconfig paranccsal
# mdconfig -a -t vnode -f image -u 0 # mount /dev/md0 /mnt

512

Fejezet 18. Httrtrak j llomnyrendszer ltrehozsa az mdcong(8) hasznlatval: Plda 18-5. j llomny alap lemez ltrehozsa az mdconfig paranccsal
# dd if=/dev/zero of=j-image bs=1k count=5k

5120+0 records in 5120+0 records out


# mdconfig -a -t vnode -f j-image -u 0 # bsdlabel -w md0 auto # newfs md0a

/dev/md0a: 5.0MB (10224 sectors) block size 16384, fragment size 2048 using 4 cylinder groups of 1.25MB, 80 blks, 192 inodes. super-block backups (for fsck -b #) at: 160, 2720, 5280, 7840
# mount /dev/md0a /mnt # df /mnt

Filesystem 1K-blocks Used Avail Capacity /dev/md0a 4710 4 4330 0%

Mounted on /mnt

Ha az -u belltssal nem adjuk meg az egysg szmt, akkor az mdcong(8) az md(4) automatikus kiosztsn keresztl fog egy hasznlatban mg nem lev eszkzt kivlasztani. Az gy kiosztott egysg neve az md4 nvhez hasonlan jelenik meg a szabvnyos kimeneten. Az mdcong(8) hasznlatnak rszleteirl olvassuk el a hozztartoz man oldalt. Az mdcong(8) egy nagyon sokoldal segdeszkz, habr hasznlatakor viszonylag sok parancsot kell kiadni egy llomny alap llomnyrendszer ltrehozshoz. A FreeBSD azonban alapbl tartalmaz mg egy mdmfs(8) nev segdprogramot is, ami az md(4) lemezeket az mdcong(8) segtsgvel lltja be, ltrehoz rajtuk egy UFS tpus llomnyrendszert a newfs(8) segtsgvel s csatlakoztatja a mount(8) paranccsal. gy pldul, ha az imnti llomnyrendszert akarjuk ltrehozni s csatlakoztatni, akkor egyszeren csak gpeljnk be ennyit: Plda 18-6. llomny alap lemezek belltsa s csatlakoztatsa az mdmfs paranccsal
# dd if=/dev/zero of=j-image bs=1k count=5k

5120+0 records in 5120+0 records out


# mdmfs -F j-image -s 5m md0 /mnt # df /mnt

Filesystem 1K-blocks Used Avail Capacity /dev/md0 4718 4 4338 0%

Mounted on /mnt

Ha az md paramtert az egysg szma nlkl adjuk meg, akkor mdmfs(8) az md(4) automatikus kiosztsra tmaszkodva fog egy addig mg nem hasznlt eszkzt kivlasztani. A mdmfs(8) hasznlatnak pontos rszleteivel kapcsolatban lsd a hozztartoz man oldalt.

18.13.2. Memria alap llomnyrendszerek


A memria alap llomnyrendszerek esetben ltalban a lapozllomny alap megkzeltst alkalmazzk. A lapozllomny alapsg nem arra utal, hogy a memrialemezt alapbl kilapozzk lemezre, hanem inkbb arra, hogy a memrialemez olyan terleten jn ltre, amelyet szksg esetn lemezre lehet lapozni. Memria alap lemezeket a

513

Fejezet 18. Httrtrak (rendszermag szint) malloc(9) hasznlatval is ltre lehet hozni, de a malloc alap memrialemezeknl, klnsen a nagyon nagyok esetben, a rendszer knnyen ssze tud omlani, ha kifut a rendelkezsre ll memribl. Plda 18-7. j memria alap lemez ltrehozsa az mdconfig paranccsal
# mdconfig -a -t swap -s 5m -u 1 # newfs -U md1

/dev/md1: 5.0MB (10240 sectors) block size 16384, fragment size 2048 using 4 cylinder groups of 1.27MB, 81 blks, 192 inodes. with soft updates super-block backups (for fsck -b #) at: 160, 2752, 5344, 7936
# mount /dev/md1 /mnt # df /mnt

Filesystem 1K-blocks Used Avail Capacity /dev/md1 4718 4 4338 0%

Mounted on /mnt

Plda 18-8. j memria alap lemez ltrehozsa az mdmfs paranccsal


# mdmfs -s 5m md2 /mnt # df /mnt

Filesystem 1K-blocks Used Avail Capacity /dev/md2 4846 2 4458 0%

Mounted on /mnt

18.13.3. Memrialemezek levlasztsa a rendszerrl


Amikor mr nem akarunk tovbb hasznlni egy memria vagy llomny alap llomnyrendszert, rdemes visszaadnunk az ltaluk felhasznlt erforrsokat a rendszernek. Elsknt vlasszuk le magt az llomnyrendszert, majd az mdcong(8) segtsgvel kapcsoljuk le a lemezt a rendszerrl s szabadtsuk fel az ltala felhasznlt erforrsokat. Pldul az /dev/md4 eszkzt gy lehet lekapcsolni s felszabadtani:
# mdconfig -d -u 4

A belltott md(4) eszkzkkel kapcsolatos tbbi informcit az mdconfig -l paranccsal tudjuk lekrdezni.

18.14. Az llomnyrendszerek pillanatkpei


rta: Tom Rhodes. A FreeBSD a Soft Updates mellett felknl egy msik lehetsget: az llomnyrendszerekrl kszthet pillanatfelvteleket. Ezek a pillanatkpek lehetv teszik a felhasznlk szmra, hogy adott llomnyrendszerekrl kpeket hozzanak ltre s azt llomnyknt kezeljk. A pillanatkpeket az adott llomnyrendszerben kell ltrehozni, s a felhasznlk llomnyrendszerenknt hsznl tbbet nem hozhatnak bellk ltre. Az aktv pillanatkpek a szuperblokkban

514

Fejezet 18. Httrtrak kerlnek rgztsre, ezrt az llomnyrendszerek levlasztsa s jracsatlakoztatsa esetn is megmaradnak, mg jraindts utn is. Amikor egy pillanatkpre mr nincs tovbb szksgnk, egy szimpla rm(1) paranccsal eltvolthat. A pillanatkpek tetszleges sorrendben eltvolthatak, habr ilyenkor az sszes ltaluk lefoglalt hely nem szabadul fel, mivel ms pillanatkpeknek mg szksge lehet bizonyos blokkjaira. Miutn az mksnap_ffs(8) paranccsal ltrehoztunk egy pillanatkpet tartalmaz llomnyt, belltdik r a mdosthatatlansgot jelent snapshot llomnyjelz. Egyedl az unlink(1) parancs kpez ez all kivtelt, mivel segtsgvel a pillanatkpek eltvolthatak. A pillanatkpek a mount(8) paranccsal hozhatak ltre. A kvetkez mdon tudjuk a /var egy pillanatkpt elkszteni a /var/snapshot/snap llomnyban:
# mount -u -o snapshot /var/snapshot/snap /var

Vagy a mksnap_ffs(8) meghvsval is kszthetnk pillanatkpeket:


# mksnap_ffs /var /var/snapshot/snap

Az llomnyrendszeren (pldul /var) a pillanatkpeket tartalmaz llomnyokat a nd(1) paranccsal kereshetjk meg:
# find /var -flags snapshot

Ahogy elksztettnk egy pillanatkpet, tbb mindenre is felhasznlhatjuk:

Egyes rendszergazdk a pillanatkpeket biztonsgi mentsekhez hasznljk, mivel ezek gond nlkl ttehetek CD-re vagy szalagra. Az llomnyrendszerek srtetlensgt ellenrz program, az fsck(8) is lefuttathat egy ilyen pillanatkpen. Feltve, hogy az llomnyrendszer csatlakoztatsakor tiszta volt, mindig egy tiszta (s vltozsokat nem tartalmaz) eredmnyt kell kapnunk. Ennek meglte elengedhetetlen a httrben futtathat fsck(8) mkdshez. Futassuk le a dump(8) segdprogramot a pillanatkpen. Az gy ltrehozott ments megegyezik az llomnyrendszer adott pillanatban felvett llapotval. Az -L bellts megadsval maga a dump(8) is kpes egyetlen parancsban pillanatfelvtelt kszteni, ebbl ltrehozni a mentst, majd eltvoltani. A pillanatkpet kpesek vagyunk a mount(8) paranccsal az llomnyrendszer befagyasztott vltozataknt csatlakoztatni:
# mdconfig -a -t vnode -f /var/snapshot/snap -u 4 # mount -r /dev/md4 /mnt

gy mr a /mnt knyvtrba csatlakoztatva be tudjuk jrni a befagyasztott /var llomnyrendszert. Minden a pillanatfelvtel ksztsnek idpontjnak megfelel llapotban fog maradni. Az egyetlen kivtel taln annyi, hogy korbbi pillanatkpek nulla mret llomnyknt fognak megjelenni. Mikor befejeztk a pillanatkpek hasznlatt, a umount(8) paranccsal le tudjuk vlasztani:
# umount /mnt # mdconfig -d -u 4

A softupdates s az llomnyrendszerek pillanatkpeinek hasznlatval, illetve mszaki lersukkal kapcsolatban ltogassuk meg Marshall Kirk McKusick honlapjt a http://www.mckusick.com/ cmen (angolul).

515

Fejezet 18. Httrtrak

18.15. Az llomnyrendszerek kvti


A kvtk hasznlata az opercis rendszerben egy olyan vlaszthat lehetsg, aminek segtsgvel llomnyrendszerenknt korltozni tudjuk az egyes felhasznlk vagy csoporttagok ltal elhasznlt lemezterlet s/vagy llomnyok mennyisgt. Ezt leggyakrabban olyan idosztsos rendszerekben hasznljk ki, ahol szksg lehet az egyes felhasznlkra vagy csoportokra es erforrsok mennyisgnek szablyozsra. Ezzel tudjuk megakadlyozni, hogy a felhasznlk vagy csoportok elfogyasszk az sszes rendelkezsre ll lemezterletet.

18.15.1. A kvtk hasznlatnak belltsa


Mieltt nekiltnnk a kvtk hasznlatnak, meg kell gyzdnnk rla, hogy a rendszermagunkban megvan hozz a szksges tmogats. A kvtkat a kvetkez sorral lehet engedlyezni a rendszermag belltsait tartalmaz llomnyban:
options QUOTA

A gyri GENERIC rendszermag ezt alapbl nem engedlyezi, ezrt ehhez mindenkppen be kell lltani, le kell fordtani s telepteni egy kell sajt rendszermagot. A sajt rendszermag ltrehozshoz kvessk a 8 fejezet utastsait. Ha ezzel megvagyunk, akkor a kvetkez sorral bvtsk ki az /etc/rc.conf llomnyt:
enable_quotas="YES"

A kvtkat kezel rendszer indtsnak nomabb szablyozsra ltezik mg egy tovbbi belltsi lehetsg is. A rendszer indtsa sorn ltalban az egyes llomnyrendszerek kvtjt a quotacheck(8) program ellenrzi. A quotacheck(8) gondoskodik rla, hogy a kvtkat trol adatbzis tnylegesen az llomnyrendszeren tallhat adatokat tkrzi. Ez egy nagyon idignyes folyamat, ami rnyomja blyegt a rendszer elindulshoz szksges id mennyisgre is. Amennyiben szeretnnk megtakartani ezt a lpst, tegyk bele az /etc/rc.conf llomnyba a direkt erre a clra kialaktott belltst:
check_quotas="NO"

Vgezetl az llomnyrendszereken az /etc/fstab megfelel mdostsval tudjuk egyenknt engedlyezni a lemezkvtk hasznlatt. Itt lehet bekapcsolni az llomnyrendszerek felhasznlkra vagy csoportokra, esetleg mind a kettjkre vonatkoz kvtikat. Ha felhasznli szint kvtkat akarunk engedlyezni egy llomnyrendszeren, akkor az /etc/fstab llomnyban az llomnyrendszer belltsai kz vegyk fel a userquota opcit. Pldul gy:
/dev/da1s2g /home ufs rw,userquota 1 2

Ehhez hasonlan tudjuk engedlyezni a userquota helyett a groupquota opci hasznlatval a csoportszint kvtkat is. A felhasznli- s csoportszint kvtk egyttes engedlyezshez gy kell trni az llomnyrendszer bejegyzst:
/dev/da1s2g /home ufs rw,userquota,groupquota 1 2

Alaprtelmezs szerint az llomnyrendszerekhez tartoz kvtk a gykerkben tallhat quota.user valamint quota.group llomnyokban troldnak. Errl rszletesebben az fstab(5) man oldalon olvashatunk. Noha mg az fstab(5) man oldala szerint is megadhat ms elrsi t a kvtkat trol llomnyokhoz, semmikppen sem

516

Fejezet 18. Httrtrak javasoljuk ezt, mert gy tnik, hogy a kvtkat kezel klnbz segdprogramok ezzel nem kpesek rendesen megbirkzni. Most kell jraindtani a rendszernket az j rendszermaggal. Az /etc/rc magtl le fogja futtatni a kezdeti kvtallomnyok ltrehozshoz szksges parancsokat az /etc/fstab llomnyban megadott llomnyrendszereken. Ennek megfelelen teht nem neknk kell kzzel ltrehoznunk ezeket az llomnyokat. Htkznapi esetben egyltaln nem kell manulis futtatnunk a quotacheck(8), quotaon(8) vagy quotaoff(8) parancsokat. Habr ha tisztban szeretnnk lenni a pontos mkdskkel, akkor mindenkppen lapozzuk fel a hozzjuk tartoz man oldalakat.

18.15.2. A kvtk belltsa


Ahogy sikerlt belltani a kvtk hasznlatt, egybl ellenrizzk is a mkdkpessgket. Ezt legegyszerbben a kvetkez paranccsal tehetjk meg:
# quota -v

Itt egy sorban sszefoglalva lthatjuk a jelenlegi lemezhasznlatot s az egyes llomnyrendszereken engedlyezett kvtk korltait. Most mr kszenllunk arra, hogy az edquota(8) paranccsal vgre korltokat is belltsunk a kvtkhoz. Szmos bellts ll rendelkezsnkre a felhasznlk vagy csoportok ltal lefoglalhat lemezterlet vagy a ltrehozhat llomnyok szmnak korltozst illeten. A helyfoglalst szablyozhatjuk lemezterlet alapjn (blokk kvta) vagy az llomnyok szma szerint (llomnyler kvta), esetleg a kett kombincijval. A korltok tovbbi kt kategrira bonthatak: ersre s gyengre. Az ers korltot (hard limit) nem lehet tllpni. Ahogy a felhasznl elri a szmra kiszabott ers korltot, semmilyen tovbbi terletet nem hasznlhat fel a krdses llomnyrendszeren. Pldul, ha a felhasznlnak az llomnyrendszeren 500 kilobyte-os ers korltot lltottunk be, s ppen 490 kilobyte-nl tart, akkor a felhasznl innen mr csak 10 kilobyte-nyi helyet foglalhat le. 11 kilobyte lefoglalsa mr nem fog sikerrel jrni. Ezzel szemben a gyenge korltok (soft limit) egy adott ideig tlphetek. Ezt az idt trelmi idnek (grace period) nevezik, ami alaprtelmezs szerint egy ht. Ha a felhasznl a gyenge korlton fell marad a trelmi id utn is, akkor ezt a gyenge korlt erss vlik s semmilyen tovbbi helyfoglalsra nem lesz lehetsge. Amikor a felhasznlk jra a gyenge korlt al kerl, a trelmi id is visszall a belltott rtkre. A most kvetkez pldban az edquota(8) parancsot mutatjuk be. Amikor meghvjuk az edquota(8) parancsot, akkor elindul az EDITOR krnyezeti vltoznak megfelel szvegszerkeszt, illetve ennek hinyban a vi, s lehetsgnk nylik a kvta korltainak mdostsra.
# edquota -u teszt

Quotas for user teszt: /usr: kbytes in use: 65, limits (soft = 50, hard = 75) inodes in use: 7, limits (soft = 50, hard = 60) /usr/var: kbytes in use: 0, limits (soft = 50, hard = 75) inodes in use: 0, limits (soft = 50, hard = 60)

Normlis esetben minden kvtval rendelkez llomnyrendszerhez kt sort kapunk. Kzlk az egyik sorban szerepelnek a blokkok korltai, a msikban az llomnylerk korltai. Ha valamelyikket meg akarjuk vltoztatni,

517

Fejezet 18. Httrtrak akkor egyszeren csak t kell rnunk az adott korlt rtkt. Pldul nveljk meg a felhasznlk 50-es gyenge s 75-s ers blokk korltjt 500-as gyenge s 600-as ers korltra. Ehhez szerkesszk t a
/usr: kbytes in use: 65, limits (soft = 50, hard = 75)

sort erre:
/usr: kbytes in use: 65, limits (soft = 500, hard = 600)

Az j korltok akkor fognak rvnybe lpni, miutn kilptnk a szvegszerkesztbl. Nha hasznos lehet a korltokat adott felhasznli azonostkhoz belltani. Ezt az edquota(8) parancs -p paramtervel tudjuk elvgezni. Elszr is lltsuk be egy felhasznlnak a belltani kvnt korltokat, majd futtassuk le az edquota -p teszt kezduid -vguid parancsot. Pldul ha a teszt nev felhasznlnak lltottuk be a szmunkra megfelel korltokat, akkor a kvetkez paranccsal lehet a r vonatkoz korltokat kiterjeszteni a 10 000 s 19 999 kztti azonostj felhasznlkra:
# edquota -p teszt 10000-19999

Errl bvebben az edquota(8) man oldaln kaphatunk felvilgostst.

18.15.3. A kvtk korltainak s a lemezhasznlat ellenrzse


A kvtk korltait s a lemez jelenlegi kihasznltsgt a quota(1) vagy repquota(8) parancsokkal is ellenrizhetjk. A quota(1) parancs segtsgvel ellenrizhet az egyes felhasznlk vagy csoportok kvtja s lemezhasznlata. A felhasznlk csak a sajt adataikhoz frhetnek hozz, illetve mindazon csoportokhoz, aminek tagjai. Egyedl a rendszeradminisztrtor kpes ltni az sszes felhasznl s csoport kvtjt. A repquota(8) paranccsal krdezhet le az sszes kvta s lemezhasznlat rvid kimutatsa minden olyan llomnyrendszeren, ahol azok engedlyezettek. A kvetkez kimenet a quota -v parancstl szrmazik, ahol a felhasznlnak kt llomnyrendszeren is vannak kvti:
Disk quotas for user teszt (uid 1002): Filesystem usage quota limit /usr 65* 50 75 /usr/var 0 50 75

grace 5days

files 7 0

quota 50 50

limit 60 60

grace

A fenti pldban lthat, hogy a felhasznl a /usr llomnyrendszeren pillanatnyilag 15 kilobyte-tal van az 50 kilobyte-os gyenge korltja felett s 5 napja van htra a trelmi idbl. Vegyk szre a szm mellett lev csillagot (*), amivel a rendszer jelzi, hogy a felhasznl tllpte a korltjt. A quota(1) parancs kimenetben ltalban nem jelennek meg azok az llomnyrendszerek, amelyeken a felhasznlnak ugyan vannak kvti, de nem foglal rajtuk lemezterletet. A -v bellts megadsval ezek az llomnyrendszerek is lthatv vlnak, mint ahogy azt a fenti pldban is meggyelhettk a /usr/var esetben.

18.15.4. Kvtk NFS-en keresztl


A kvtk az NFS szerver kvtkrt felels alrendszerben is engedlyezhetek. Az rpc.rquotad(8) dmon teszi az NFS klienseken futtatott quota(1) parancsok szmra elrhetv a kvtkkal kapcsolatos informcikat, aminek ksznheten a felhasznlk tvolrl is kpesek lekrdezni a kvtikat.

518

Fejezet 18. Httrtrak Az rpc.rquotad aktivilshoz a kvetkezt kell belltani az /etc/inetd.conf llomnyban:
rquotad/1 dgram rpc/udp wait root /usr/libexec/rpc.rquotad rpc.rquotad

Majd ne felejtsk el jraindtani az inetd dmont sem:


# /etc/rc.d/inetd restart

18.16. A lemezpartcik titkostsa


rta: Lucky Green. A FreeBSD kitn futskzbeni vdelmet ajnl fel az adatok illetktelen hozzfrse ellen. Az llomnyok engedlyei s a ktelez hozzfrs-vezrls (Mandatory Access Control, MAC, lsd 16 fejezet) segtenek megvdeni rzkeny adatainkat az illktelenek ellen az opercis rendszer futsa s a szmtgp mkdse sorn. Azonban az opercis rendszerben kezelt engedlyek teljesen hatstalanok abban az esetben, ha a tmad zikailag is kpes hozzfrni a szmtgpnkhz, eltvoltani a merevlemezt s egy msik opercis rendszer segtsgvel kielemezni a rajta tallhat fontos adatainkat. Fggetlenl attl, hogy a tmad valjban miknt is frkztt hozz a merevlemeznkhz, vagy miknt kapcsolta le a szmtgpnket, a FreeBSD megtallhat GEOM alap lemeztitkosts (gbde) s a geli titkostsi alrendszer egyarnt kpes vdelmet nyjtani a szmtgpen tallhat llomnyrendszerek szmra az rtkes adatok utn kutat igen motivlt betrk ellen. A csupn egyes llomnyokra kiterjed krmnfont titkostsi mdszerekkel szemben a gbde s a geli az egsz llomnyrendszert szrevtlen mdon titkostja. Titkostatlan adat nem is kerl a merevlemezre.

18.16.1. A lemez titkostsa a gbde hasznlatval


1. Vljunk root felhasznlv A gbde belltshoz rendszeradminisztrtori jogosultsgokra lesz szksgnk.
% su -

Password:

2.

Adjuk hozz a gbde(4) tmogatst a rendszermag kongurcis llomnyhoz Tegyk a kvetkez sort a rendszermag belltsait tartalmaz llomnyba:
options GEOM_BDE

Fordtsuk jra a rendszermagot a 8 fejezetben lertak szerint. Indtsuk el a szmtgpet az j rendszermaggal. 3. A rendszermag jrafordtsa helyett a kldload paranccsal is betlthetjk a gbde(4) moduljt:
# kldload geom_bde

519

Fejezet 18. Httrtrak

18.16.1.1. A titkostott merevlemez elksztse


A kvetkez plda azt felttelezi, hogy a rendszernkhz egy j merevlemezt adunk hozz, amin egyetlen titkostott partci foglal helyet. Ezt a partcit a /private knyvtrba fogjuk csatlakoztatni. A gbde hasznlhat a /home s a /var/mail titkostsra is, de ennek megvalstsa olyan bonyolult utastsokat ignyel, amelyek meghaladjk ennek a bevezetsnek a kereteit. 1. Az j merevlemez hozzadsa A 18.3 Szakaszban bemutatottak szerint adjuk hozz a rendszernkhz az j merevlemezt. A pldban az j lemez partcijt a /dev/ad4s1c nven fogjuk tudni elrni. A /dev/ad0s1* eszkzk a pldban szerepl FreeBSD rendszer szabvnyos partciit jellik.
# ls /dev/ad*

/dev/ad0 /dev/ad0s1 /dev/ad0s1a

/dev/ad0s1b /dev/ad0s1c /dev/ad0s1d

/dev/ad0s1e /dev/ad0s1f /dev/ad4

/dev/ad4s1 /dev/ad4s1c

2.

Hozzunk ltre egy knyvtrat a gbde zrolsainak trolshoz


# mkdir /etc/gbde

A gbdenek azrt van szksge a zrolsokat rgzt llomnyokra, hogy hozz tudjon frni a titkostott partcikhoz. Amennyiben ezt nem tudja megtenni, a gbde anlkl nem lesz kpes visszafejteni a titkostott partcikon trolt adatokat, hogy az ezeket elrni akar szoftvereknek ne kelljen jelentsebb mrtkben manulisan beavatkoznia. Mindegyik titkostott partci kln zrol llomnyt hasznl. 3. A gbde partci inicializlsa A gbde ltal hasznlt partcikat hasznlatuk eltt inicializlni kell. Ezt a mveletet azonban csak egyszer kell elvgezni:
# gbde init /dev/ad4s1c -i -L /etc/gbde/ad4s1c.lock

A gbde(8) ekkor elindt egy szvegszerkesztt s benne egy sablon segtsgvel be tudjuk lltani a klnbz kongurcis rtkeket. Az UFS1 vagy UFS2 hasznlata esetn lltsuk a szektormretet 2048-ra:
$FreeBSD: src/sbin/gbde/template.txt,v 1.1 2002/10/20 11:16:13 phk Exp $ # # Sector size is the smallest unit of data which can be read or written. # Making it too small decreases performance and decreases available space. # Making it too large may prevent filesystems from working. 512 is the # minimum and always safe. For UFS, use the fragment size # sector_size = 2048 [...]

A megjegyzs fordtsa:
A szektormret az adatok rsnak s olvassnak legkisebb egysge. Ha tlsgosan kicsire vlasztjuk meg, akkor cskken a teljestmny s cskken a rendelkezsre ll hely. Ha viszont tlsgosan nagyra hagyjuk, akkor azzal akadlyozzuk az llomnyrendszerek munkjt. 512 a legkisebb rtk, amely mindig megbzhat. Az UFS esetn hasznljuk a fragmensek mrett.

A gbde(8) ktszer is r fog krdeni az adatok titkostsra hasznlt jelmondatra. A jelmondatnak termszetesen mind a ktszer ugyanannak kell lennie. A gbde vdelmnek hatkonysga teljesen mrtkben az ltalunk vlasztott jelmondat minsgtl fgg 1.

520

Fejezet 18. Httrtrak A gbde init parancs ltrehoz egy zrol llomnyt a gbde partcihoz, amely ebben a pldban az /etc/gbde/ad4s1c.lock nven keletkezett. A gbde zrol llomnyainak .lock nvre kell vgzdnik, mivel az /etc/rc.d/gbde indtszkript csak ebben az esetben szleli rendesen.
FigyelemA gbde zrol llomnyait a titkostott partcik tartalmval egytt kell lementeni. Mikzben a zrol llomny trlse nem tudja megakadlyozni, hogy az elsznt tmad visszafejtse a gbde ltal titkostott partcit, addig a zrol llomny nlkl a jogos tulajdonos rsi mennyisg munka befektetse nlkl kptelen lesz hozzfrni a rajta lev adatokhoz. Ez utbbitl egybknt a gbde(8) s a rendszer tervezje is totlisan elhatrolja magt.

4.

A titkostott partci illesztse a rendszermaghoz


# gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c.lock

Ekkor a titkostott partci illesztshez a rendszer krni fogja az inicializls sorn vlasztott jelmondatot. Ezutn az j titkostott eszkz megjelenik a /dev knyvtrban /dev/eszkznv .bde nven:
# ls /dev/ad*

/dev/ad0 /dev/ad0s1 /dev/ad0s1a

/dev/ad0s1b /dev/ad0s1c /dev/ad0s1d

/dev/ad0s1e /dev/ad0s1f /dev/ad4

/dev/ad4s1 /dev/ad4s1c /dev/ad4s1c.bde

5.

llomnyrendszer kialaktsa egy titkostott eszkzn Ahogy sikerlt a titkostott eszkzt illeszteni a rendszermaghoz, ltre is tudunk hozni egy llomnyrendszert rajta. Erre a clra a newfs(8) remekl hasznlhat. Mivel egy j UFS2 llomnyrendszerek inicializlsa sokkal gyorsabb a rgi UFS1 llomnyrendszerek inicializlsnl, ezrt a newfs(8) hasznlata esetn az -O2 bellts megadsa ajnlott.
# newfs -U -O2 /dev/ad4s1c.bde

Megjegyzs: A newfs(8) parancsot egy illesztett gbde partcin kell vgrehajtani, amit onnan ismerhetnk meg, hogy az eszkz nevben szerepel a *.bde kiterjeszts.

6.

A titkostott partci csatlakoztatsa Hozzunk ltre egy csatlakozsi pontot a titkostott llomnyrendszer szmra.
# mkdir /privt

Csatlakoztassuk a titkostott llomnyrendszert.


# mount /dev/ad4s1c.bde /privt

7.

Ellenrizzk a titkostott llomnyrendszer mkdkpessgt A titkostott llomnyrendszert most mr ltja a df(1) program s kszen ll a hasznlatra.
% df -H

Filesystem /dev/ad0s1a /devfs /dev/ad0s1f /dev/ad0s1e /dev/ad0s1d

Size 1037M 1.0K 8.1G 1037M 6.1G

Used 72M 1.0K 55K 1.1M 1.9G

Avail Capacity 883M 8% 0B 100% 7.5G 0% 953M 0% 3.7G 35%

Mounted on / /dev /home /tmp /usr

521

Fejezet 18. Httrtrak


/dev/ad4s1c.bde 150G 4.1K 138G 0% /private

18.16.1.2. Ltez titkostott llomnyrendszerek csatlakoztatsa


A rendszer minden egyes indtsa utn az sszes titkostott llomnyrendszert tnyleges hasznlata eltt jra illeszteni kell a rendszermaghoz, ellenrizni az psgt s csatlakoztatni. Az ehhez szksges parancsokat root felhasznlknt kell kiadni. 1. A gbde partci illesztse a rendszermaghoz
# gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c.lock

A gbde partci inicializlsa sorn megadott jelmondatot kell megadnunk a mvelet elvgzshez. 2. Az llomnyrendszer psgnek ellenrzse Mivel a titkostott llomnyrendszerek az automatikus csatlakoztatshoz mg nem szerepeltethetek az /etc/fstab llomnyban, ezrt az ilyen llomnyrendszereket csatlakoztatsuk eltt manulisan ellenriztetni kell a fsck(8) lefuttatsval.
# fsck -p -t ffs /dev/ad4s1c.bde

3.

A titkostott llomnyrendszer csatlakoztatsa


# mount /dev/ad4s1c.bde /privt

A titkostott llomnyrendszer most mr kszen ll a hasznlatra. 18.16.1.2.1. A titkostott partcik nll csatlakoztatsa Lehet rni olyan szkriptet, amely a titkostott partcikat magtl illeszti, ellenrzi s csatlakoztatja, de biztonsgi megfontolsokbl semmi esetben sem szabad tartalmaznia a gbde(8) jelszavt. Ehelyett azt javasoljuk, hogy az ilyen szkripteknek kln meg kelljen adni a jelszt konzolon vagy az ssh(1) hasznlatn keresztl. De hasznlhatjuk a mellkelt rc.d szkriptet is. A szkript paramtereit az rc.conf(5) llomnyon keresztl adhatjuk meg, pldul:
gbde_autoattach_all="YES" gbde_devices="ad4s1c" gbde_lockdir="/etc/gbde"

Ilyenkor a gbde ltal hasznlt jelmondatot a rendszer indtsakor kell megadni. Miutn begpeltk a megfelel jelmondatot, a titkostott gbde partci magtl csatlakoztatsra kerl. Ez akkor lehet hasznos, ha a gbde megoldst hordozhat szmtgpeken alkalmazzuk.

18.16.1.3. A gbde ltal alkalmazott titkostsi mdszerek


A gbde(8) a szektorok tartalmt 128 bites AES hasznlatval CBC mdban titkostja. A lemezen tallhat minden egyes szektort eltr AES kulccsal kdolja. A gbde kriptograi felptst, valamint mindazt, hogy az egyes szektorok kulcsai miknt szrmaztathatak a felhasznl ltal megadott jelmondatbl, a gbde(4) man oldaln olvashatjuk.

522

Fejezet 18. Httrtrak

18.16.1.4. Kompatibilitsi problmk


A sysinstall(8) nem kompatibilis a gbde ltal titkostott eszkzkkel. A sysinstall(8) indtsa eltt minden *.bde eszkzt ki kell iktatni a rendszermagbl, klnben az eszkzk keresse sorn ssze fog omlani. A pldnkban hasznlt titkostott eszkzt a kvetkez paranccsal kell lekapcsolni:
# gbde detach /dev/ad4s1c

Tovbb megjegyezzk azt is, hogy a vinum(4) nem hasznlja a geom(4) alrendszert, ezrt a gbde alkalmazsa sorn nem hasznlhatunk Vinum-kteteket.

18.16.2. A lemezek titkostsa a geli hasznlatval


rta: Daniel Gerzo. A FreeBSD 6.0 vltozattl kezdve egy j kriptograi GEOM osztly is a rendelkezsnkre ll, melyet pillanatnyilag Pawel Jakub Dawidek <pjd@FreeBSD.org> fejleszt. A geli segdprogram nmileg klnbz a gbde megoldstl ms lehetsgeket knl fel s a titkostst is egy eltr sma mentn valstja meg. A geli(8) legfontosabb jellemzi a kvetkezk:

A crypto(9) keretrendszert hasznlja teht ha rendelkeznk kriptograi hardverrel, akkor a geli automatikusan hasznlni fogja. Tbb kriptograi algoritmust is ismer (melyek jelenleg az AES, Blowsh s a 3DES). Segtsgvel a rendszerindtshoz hasznlt (gykr) partci is titkosthat. Ilyenkor a szksges jelmondatot a rendszer indtsakor kell megadni. Kt fggetlen kulcsot (pldul egy kulcsot s egy cges kulcsot) is hasznlhatunk vele. A geli gyors egyszeren csak szektorrl szektorra titkost. Lehetv teszi a mesterkulcsok mentst is visszalltst. Ha a felhasznl vletlenl megsemmisten a kulcst, akkor a biztonsgi mentsbl helyrelltott kulcsok segtsgvel vissza tudjuk szerezni az adatainkat is. Segtsgvel a lemezeket vletlenszer, egyszeri jelszavakkal is illeszthetjk ez klnsen fontos lapozterletek s ideiglenes llomnyrendszerek esetben.

A geli ltal felknlt lehetsgekrl a geli(8) man oldaln tallhatunk tbbet. A kvetkez lpsek bemutatjk, hogyan lehet a FreeBSD rendszermagjban engedlyezni a geli tmogatst, s hogyan lehet ltrehozni s hasznlni egy geli titkostssal rendelkez adathordozt. A geli alkalmazshoz legalbb a FreeBSD 6.0-RELEASE vagy ksbbi vltozatra van szksgnk. Mivel a rendszermagot is mdostanunk kell, ezrt rendszeradminisztrtori jogosultsgok kellenek a mveletek elvgzshez. 1. A geli tmogatsnak hozzadsa a rendszermaghoz Vegyk hozz a kvetkez sorokat a rendszermag belltsait tartalmaz llomnyhoz:
options GEOM_ELI device crypto

Fordtsuk jra a rendszermagot a 8 fejezetben lertak szerint.

523

Fejezet 18. Httrtrak Betlthetjk a geli moduljt is a rendszer indtsakor. Ehhez a kvetkez sort kell betenni a /boot/loader.conf llomnyba:
geom_eli_load="YES"

A geli(8) most mr hasznlhat a rendszermagban. 2. A mesterkulcs legenerlsa A most kvetkez pldban egy kulcsot tartalmaz llomny ltrehozst illusztrljuk, amit a /privt knyvtrba csatlakoztatott titkostott adathordoz mesterkulcshoz fogunk hasznlni. A kulcs llomny a mesterkulcs titkostshoz felhasznlt vletlenszer adatot fogja tartalmazni, valamint rajta kvl mg a mesterkulcsot egy jelmondattal is vdjk. Az adathordoz szektormrete 4 kilobyte-os lesz. Emellett mg bemutatjuk, hogyan kell illeszteni egy geli-adathordozt, llomnyrendszert ltrehozni rajta, csatlakoztatni, dolgozni vele s lekapcsolni. A nagyobb teljestmny rdekben javasolt nagyobb szektormretet vlasztani (mint pldul 4 kilobyte). A mesterkulcsot egy jelmondattal fogjuk vdeni s a kulcsok ksztshez hasznlt adatforrs a /dev/random lesz. A /dev/da2.eli, amelyet mit csak adathordoznak fogunk csak hvni, szektorainak mrete 4 kilobyte lesz.
# dd if=/dev/random of=/root/da2.key bs=64 count=1 # geli init -s 4096 -K /root/da2.key /dev/da2

Enter new passphrase: Reenter new passphrase:

Nem ktelez egyszerre hasznlni a jelmondatot s a kulcs llomnyt. A mesterkulcs elzrsnak bebiztostsra brmelyik mdszer alkalmas. Ha a kulcs llomny a - paramterrel adjuk meg, akkor a szabvnyos bemenetrl olvassa be a program. Ez a plda tbb kulcs hasznlatt mutatja be.
# cat kulcs1 kulcs2 kulcs3 | geli init -K - /dev/da2

3.

Az adathordoz illesztse a generlt kulccsal


# geli attach -k /root/da2.key /dev/da2

Enter passphrase:

Az j titkostatlan eszkz neve /dev/da2.eli lesz.


# ls /dev/da2*

/dev/da2

/dev/da2.eli

4.

Az j llomnyrendszer kialaktsa
# dd if=/dev/random of=/dev/da2.eli bs=1m # newfs /dev/da2.eli # mount /dev/da2.eli /privt

A titkostott llomnyrendszer most mr df(1) szmra is ltszik s hasznlhat:


# df -H

Filesystem /dev/ad0s1a /devfs /dev/ad0s1f /dev/ad0s1d /dev/ad0s1e /dev/da2.eli

Size 248M 1.0K 7.7G 989M 3.9G 150G

Used 89M 1.0K 2.3G 1.5M 1.3G 4.1K

Avail Capacity 139M 38% 0B 100% 4.9G 32% 909M 0% 2.3G 35% 138G 0%

Mounted on / /dev /usr /tmp /var /private

524

Fejezet 18. Httrtrak 5. Az adathordoz levlasztsa s lekapcsolsa Miutn befejeztk a munkt a titkostott partcin, s a /privt partcira mr nincs tovbb szksgnk, rdemes levlasztanunk s kiiktatnunk a geli titkosts partcit a rendszermagbl.
# umount /privt # geli detach da2.eli

A geli(8) hasznlatrl bvebben a sajt man oldaln tjkozdhatunk.

18.16.2.1. A geli rc.d szkriptjnek hasznlata


A geli mellett tallhatunk egy sajt rc.d szkriptet, amely jelentsen leegyszersti a geli hasznlatt. A geli pldul gy paramterezhet az rc.conf(5) llomnyon keresztl:
geli_devices="da2" geli_da2_flags="-p -k /root/da2.key"

Ennek segtsgvel a /dev/da2 eszkzt geli adathordozknt lltjuk be a /root/da2.key llomnyban tallhat mesterkulcs felhasznlsval, de az illesztskor a geli nem kr jelmondatot (ezt csak akkor fogja tenni, ha a geli init parancs kiadshoz hozztesszk a -P belltst). A rendszer lelltsa eltt pedig a geli adathordoz gy automatikusan levlasztsra kerl. Az rc.d belltsval kapcsolatos tudnivalkat a kziknyv rc.d szkriptekrl szl szakaszban ismerhetjk meg.

18.17. A lapozterlet titkostsa


rta: Christian Brffer. A FreeBSD-ben a lapozterlet titkostsa nagyon knnyen bellthat s mr a FreeBSD 5.3-RELEASE vltozata ta elrhet. Attl fggen, hogy konkrtan a FreeBSD melyik verzijt hasznljuk, a kongurcihoz kapcsold belltsok nmileg eltrhetnek. A FreeBSD 6.0-RELEASE vltozattl kezdden a gbde(8) s a geli(8) alrendszerek is hasznlhatak a lapozterlet titkostsra. A korbbi verzikban egyedl csak a gbde(8) rhet el. Mind a kt rendszer az encswap rc.d szkriptet hasznlja. Az elz szakaszban, vagyis a A lemezpartcik titkostsban mr rviden sszefoglaltuk a klnbz titkostssal foglalkoz alrendszereket.

18.17.1. Mirt kellene titkostanunk a lapozterletet?


Hasonlan a lemezpartcik titkostshoz, a lapozterlet titkostsnak is az a clja, hogy vdjk az rzkeny informcikat. Kpzeljk el, hogy egy olyan alkalmazssal dolgozunk, amely jelszavakat kezel. Amg ezek a jelszavak a memriban maradnak, addig minden a legnagyobb rendben van. Azonban amikor az opercis rendszer nekilt a zikai memria felszabadtshoz kilapozni ezeket az adatokat, a jelszavak titkostatlanul kerlnek a lemez felletre s egy tmad szmra knny prdv vlnak. Ilyen helyzetekben csak lapozterlet titkostsa jelenthet megoldst.

525

Fejezet 18. Httrtrak

18.17.2. Elkszletek
Megjegyzs: A szakasz tovbbi rszben a ad0s1b lesz a lapozsra hasznlt partci.

Egszen mostanig nem titkostottuk a lapozterletet. gy elkpzelhet, hogy a lemezre mr titkostatlanul kikerltek jelszavak vagy brmilyen ms rzkeny adatok. A csorba kikszrlsre a lapozterleten tallhat sszes adatot rjuk fell vletlenszeren generlt szemttel:
# dd if=/dev/random of=/dev/ad0s1b bs=1m

18.17.3. A lapozterlet titkostsa a gbde(8) hasznlatval


Ha a FreeBSD 6.0-RELEASE vagy jabb vltozatt hasznljuk, akkor az /etc/fstab llomnyban tegyk hozz a .bde uttagot az a lapozterlethez tartoz eszkz nevhez.
# Device /dev/ad0s1b.bde Mountpoint none FStype swap Options sw Dump 0 Pass# 0

A FreeBSD 6.0-RELEASE eltti kiadsok esetben a kvetkez sort is hozz kell tennnk az /etc/rc.conf llomnyhoz:
gbde_swap_enable="YES"

18.17.4. A lapozterlet titkostsa a geli(8) hasznlatval


A gbde(8) hasznlathoz hasonlan a geli(8) ltal felajnlott titkostst is alkalmazhatjuk a lapozterlet vdelmre. Ilyenkor az /etc/fstab llomnyban az .eli uttagot kell hozztenni a lapozterlethez tartoz eszkz nvhez.
# Device /dev/ad0s1b.eli Mountpoint none FStype swap Options sw Dump 0 Pass# 0

Az geli(8) az AES algoritmust alaprtelmezs szerint 256 bites kulccsal hasznlja. Ezek az alaprtelmezsek megvltoztathatak az /etc/rc.conf llomnyban a geli_swap_flags bellts hasznlatval. A kvetkez sor arra utastja az encswap rc.d szkriptet, hogy a geli(8) s a Blowsh algoritmus hasznlatval hozzon ltre egy lapozpartcit 128 bites kulccsal, 4 kilobyte-os szektormrettel s a detach on last close (lekapcsols hasznlat utn) belltssal:
geli_swap_flags="-e blowfish -l 128 -s 4096 -d"

A FreeBSD 6.2-RELEASE verzi eltti rendszerekben a kvetkez sort kell hasznlni:


geli_swap_flags="-a blowfish -l 128 -s 4096 -d"

A tbbi belltshoz a geli(8) man oldaln a onetime parancs lerst rdemes ttanulmnyozni.

526

Fejezet 18. Httrtrak

18.17.5. Ellenrizzk a mkdst


Miutn jraindtottuk a rendszert, a titkostott lapozterlet helyes mkdst a swapinfo paranccsal ellenrizhetjk le. A gbde(8) esetben:
% swapinfo

Device 1K-blocks /dev/ad0s1b.bde 542720

Used 0

Avail Capacity 542720 0%

Valamint a geli(8) esetben:


% swapinfo

Device 1K-blocks /dev/ad0s1b.eli 542720

Used 0

Avail Capacity 542720 0%

Megjegyzsek
1. A knnyen megjegyezhet m mgis biztonsgos jelmondatok megvlasztshoz a Diceware Passphrase (http://world.std.com/~reinhold/diceware.html) honlapjn tallunk egy kis segtsget (angolul).

527

Fejezet 19. GEOM: A modulris lemezszervez rendszer


rta: Tom Rhodes.

19.1. ttekints
Ez a fejezet a FreeBSD-ben tallhat GEOM rendszert mutatja be. Ez a rendszer tmrti az ltala is alkalmazott fontosabb RAID-vezrl segdprogramokat. A fejezet nem rszletezi, hogy a GEOM konkrtan milyen mdon kezeli s vezrli az I/O-t, ahogy azt sem, hogyan mkdik az alapjul szolgl alrendszer vagy hogy nz ki annak forrskdja. Az ilyen jelleg informcik a geom(4) man oldalon, valamint az ott felsorolt helyeken tallhatak meg. Tovbb, ez a fejezet magukrl a RAID-kongurcikrl sem ad pontos tjkoztatst. Kizrlag csak a GEOM ltal is tmogatott RAID-besorolsokrl esik sz. A fejezet elolvassa sorn megismerjk:

a GEOM segtsgvel milyen fajtj RAID tmogatst rhetnk el; hogyan kell hasznlni a rendszer ltal nyjtott alapvet segdeszkzket a klnfle RAID-szintek kongurlshoz, karbantartshoz s kezelshez; hogyan kell a GEOM-on keresztl tkrzni, cskozni, titkostani s tvolrl sszekapcsolni lemezes eszkzket; hogyan kell a GEOM rendszerben sszekapcsolt lemezeknl felmerl hibkat felderteni.

A fejezet elolvasshoz ajnlott:


megrteni, hogyan kezeli a FreeBSD a lemezes eszkzket (18 fejezet); ismerni, hogyan kongurljunk s teleptsnk egy j FreeBSD rendszermagot (8 fejezet).

19.2. A GEOM bemutatsa


A GEOM rendszer adatszolgltatkon vagy specilis /dev-llomnyokon keresztl hozzfrst s vezrlst tesz lehetv bizonyos osztlyokhoz Master Boot Recordokhoz, BSD-cmkkhez stb. Szmos szoftveres RAID kongurci tmogatsval a GEOM transzparens elrst tesz lehetv mind az opercis rendszer, mind pedig az ltala felknlt segdprogramok szmra.

19.3. RAID0 - Cskozs


rta: Tom Rhodes s Murray Stokely. A cskozs mdszert hasznljuk abban az esetben, amikor tbb lemezmeghajtt akarunk egyetlen ktett sszevonni. A GEOM lemezalrendszer szoftveres tmogatst nyjt a RAID0, ms nven a lemezcskozs megvalstshoz.

528

Fejezet 19. GEOM: A modulris lemezszervez rendszer Egy RAID0 rendszerben az adatokat blokkokra bontva rjuk fel a tmbben tallhat lemezek kztt sztosztva. gy ahelyett, hogy meg kellene vrnunk 256 kb-nyi adat egyetlen lemezre rst, egy RAID0 rendszerben egyszerre rdik 64 kb-nyi adat ngy klnbz lemezre, s ezltal gyorsabb elrst szolgltat. Ez a gyorsasg tovbbi lemezvezrlk hasznlatval mg jobban fokozhat. Az egy RAID0-cskozsban rsztvev lemezek mindegyiknek azonos mretnek kell lennie, mivel az rsra s olvassra irnyul I/O-krsek a prhuzamos kiszolgls rdekben sszefsldnek.

64 KB 256 KB-nyi rst ngy 64 KB-os prhuzamos rsra bontunk fel a ngy lemez kztt 64 KB 64 KB 64 KB

1. lemez

2. lemez

3. lemez

4. lemez

Cskozs kialaktsa formzatlan ATA-lemezekkel 1. Tltsk be a geom_stripe.ko modult:


# kldload geom_stripe

2.

Bizonyosodjuk meg rla, hogy a rendszernkben tallhat egy szabad csatlakozsi pont. Ha majd ezt a ktetet sznjuk rendszernk gykrpartcijnak, hasznljunk erre a clra egy msik knyvtrat, pldul a /mnt-ot:
# mkdir /mnt

3.

Keressk meg a cskozsra felhasznlni kvnt lemezek eszkzneveit, s hozzunk ltre bellk egy j cskozott eszkzt. Pldul, ha kt hasznlatban nem lev, particionlatlan ATA-lemezt, nv szerint a /dev/ad2 s /dev/ad3 eszkzket akarjunk cskozni:
# gstripe label -v st0 /dev/ad2 /dev/ad3

Metadata value stored on /dev/ad2. Metadata value stored on /dev/ad3. Done.

4.

Az gy ltrejtt j kteten most hozzunk ltre egy ltalnos cmkt, vagy ms nven egy partcis tblt, s teleptsk fel r a rendszer alaprtelmezett rendszerindt programjt:
# bsdlabel -wB /dev/stripe/st0

529

Fejezet 19. GEOM: A modulris lemezszervez rendszer 5. Ezzel meg kellett jelennie tovbbi msik kt eszkznek is a /dev/stripe knyvtrban, a st0 eszkz mellett. Ezek tbbek kzt az st0a s az st0c. Itt mr ki is tudunk alaktani egy llomnyrendszert az st0a eszkzn a newfs hasznlatval:
# newfs -U /dev/stripe/st0a

Sok-sok szmot fogunk ltni cikzni a kpernyn, majd nhny msodperc mlva befejezdik a folyamat. Ltrehoztuk a ktetet, ami most mr kszen ll a becsatolsra. A kialaktott lemezcskozst gy tudjuk kzzel csatlakoztatni:
# mount /dev/stripe/st0a /mnt

A cskozott llomnyrendszert a rendszerindts folyamn automatikusan becsatlakoztathatjuk, ha elhelyezzk az albbi ktetinformcikat az /etc/fstab llomnyba. Erre a clra stripe nven ltrehozunk egy lland csatlakozsi pontot:
# mkdir /stripe # echo "/dev/stripe/st0a /stripe ufs rw 2 2" \ >> /etc/fstab

A geom_stripe.ko modult is automatikusan be kell tlteni a rendszerindts sorn. Ehhez a kvetkez sort kell hozzadni a /boot/loader.conf llomnyhoz:
# echo geom_stripe_load="YES" >> /boot/loader.conf

19.4. RAID1 - Tkrzs


A tkrzs szmos vllalatnl s hztartsban alkalmazott technolgia, amely az adatok megszakts nlkli lementsre hasznlatos. Amikor tkrzst hasznlunk, az egyszeren csak arra utal, hogy a B lemez ugyanazokat az adatokat tartalmazza, mint az A lemez. Vagy amikor a C s D lemez tartalma egyezik meg az A s B lemezekvel. Fggetlenl a lemezek kiosztstl, itt az a lnyeg, hogy az egyik lemez teljes terlete vagy az egyik partcija le van msolva. Ksbb az ezen a mdon lementett adatok knnyen visszallthatak anlkl, hogy ez a szolgltatsban vagy az elrhetsgben brmilyen kimaradst okozna, s akr mg zikailag is biztonsgosan trolhatak. Elszr is szereznnk kell kt egyforma mret lemezt, valamint a pldk felttelezik, hogy ezek a lemezek kzvetlen elrs (da(4)) SCSI-lemezek.

19.4.1. Az elsdleges lemezek tkrzse


Tegyk fel, hogy a FreeBSD az els, da0 nev lemezmeghajtn tallhat, s a gmirror(8) szmra ezt szeretnnk megadni az elsdleges adatok trolshoz. A tkrzs ltrehozsnak megkezdse eltt a kern.geom.debugflags sysctl(8) vltoz megfelel belltsval engedlyezznk tovbbi nyomkvetsi informcikat s hozzfrst az eszkzhz:
# sysctl kern.geom.debugflags=17

Most ptsk fel a tkrzst. Kezdjk az egszet a metaadatok elhelyezsvel az elsdleges lemezmeghajtn, teht tulajdonkppen az albbi parancs segtsgvel hozzuk ltre a /dev/mirror/gm eszkzt:

530

Fejezet 19. GEOM: A modulris lemezszervez rendszer


FigyelemA rendszerindt meghajtrl ksztett tkrzs adatvesztst okozhat a lemez utols szektorban. Ennek kockzata cskkenthet, ha kzvetlenl a FreeBSD friss teleptse utn lltjuk be a tkrzst.

# gmirror label -vb round-robin gm0 /dev/da0

Erre a rendszernek a kvetkez mdon kell reaglnia:


Metadata value stored on /dev/da0. Done.

A GEOM inicializlshoz szksgnk lesz a /boot/kernel/geom_mirror.ko modul betltsre:


# gmirror load

Megjegyzs: A parancs sikeres lefutsa utn a /dev/mirror knyvtrban ltrehoz egy gm0 eszkzlert.

A geom_mirror.ko modul betltst gy tudjuk engedlyezni a rendszer indtsakor:


# echo geom_mirror_load="YES" >> /boot/loader.conf

Nyissuk meg az /etc/fstab llomnyt, s cserljk le benne az sszes korbbi da0 hivatkozst az jonnan kialaktott gm0 tkrzs eszkzlerjval.
Megjegyzs: Ha vi(1) szvegszerkesztt hasznljuk, akkor a kvetkez mdon tudjuk ezt egyszeren megtenni:
# vi /etc/fstab

A vi(1) indtsa utn a :w /etc/fstab.bak kiadsval ksztsnk az fstab llomny jelenlegi tartalmrl msolatot. Ezutn a :%s/da/mirror\/gm/g parancs hasznlatval cserljk ki az sszes da0 hivatkozst a gm0 eszkz nevre.

Az gy keletkez fstab llomny nagyjbl kvetkez mdon fog kinzni. Most teljesen fggetlen, hogy SCSI vagy ATA meghajtkkal dolgozunk, a RAID eszkz neve mindig gm lesz:
# Eszkz /dev/mirror/gm0s1b /dev/mirror/gm0s1a /dev/mirror/gm0s1d /dev/mirror/gm0s1f #/dev/mirror/gm0s2d /dev/mirror/gm0s1e /dev/acd0 Csatlakozsi pont none / /usr /home /store /var /cdrom Tpus swap ufs ufs ufs ufs ufs cd9660 Belltsok sw rw rw rw rw rw ro,noauto Dump 0 1 0 2 2 2 0 Menet 0 1 0 2 2 2 0

Indtsuk jra a rendszert:


# shutdown -r now

Ennek megfelelen a rendszer indtsa kzben a da0 eszkz helyett a gm0 eszkzt fogjuk hasznlni. Miutn sikeresen befejezdtt a rendszerindts, a mount parancs kiadsval a sajt szemnkkel is meggyzdhetnk az eredmnyrl:

531

Fejezet 19. GEOM: A modulris lemezszervez rendszer


# mount

Filesystem 1K-blocks Used Avail Capacity /dev/mirror/gm0s1a 1012974 224604 707334 24% devfs 1 1 0 100% /dev/mirror/gm0s1f 45970182 28596 42263972 0% /dev/mirror/gm0s1d 6090094 1348356 4254532 24% /dev/mirror/gm0s1e 3045006 2241420 559986 80% devfs 1 1 0 100%

Mounted on / /dev /home /usr /var /var/named/dev

A parancs kimenete az elvrsainknak megfelelen remekl nz ki. Zrskppen a szinkronizls megkezdshez a kvetkez paranccsal illesszk be a da1 eszkzt a tkrzsbe:
# gmirror insert gm0 /dev/da1

A tkrzs llapota a ltrejttt kveten az albbi paranccsal ellenrizhet:


# gmirror status

Az imnti parancs eredmnynek nagyjbl a kvetkeznek kell lennie miutn a felptettk a tkrzst s szinkronizltuk az adatokat:
Name mirror/gm0 Status COMPLETE Components da0 da1

Hiba esetn a tkrzs tovbbra is folytatdik, azonban ilyenkor a pldban szerepl COMPLETE helyett a DEGRADED jelzst fogjuk ltni.

19.4.2. Hibakeress
19.4.2.1. A rendszer nem hajland elindulni
Ha a rendszernk ehhez hasonl mdon indul:
ffs_mountroot: cant find rootvp Root mount failed: 6 mountroot>

Indtsuk jra a gpnket a kikapcsol gomb vagy a reset segtsgvel. A rendszerindt menben vlasszuk a hatodik opcit (6). Ennek eredmnyekppen megkapjuk a loader(8) parancssort. Tltsk be a modult manulisan:
OK? load geom_mirror OK? boot

Ha ez bevlik, akkor valamirt a modult nem sikerlt rendesen betlteni. Ellenrizzk, hogy a /boot/loader.conf llomnyban a neki szerepl megfelel bejegyzs helyesen szerepel. Amennyiben a problma tovbbra is fennll, helyezzk el a kvetkez sort a rendszermag kongurcis llomnyba, majd fordtsuk jra s teleptsk:
options GEOM_MIRROR

Ezzel vrhatan orvosoltuk a problmt.

532

Fejezet 19. GEOM: A modulris lemezszervez rendszer

19.4.3. A meghibsodott lemezek cserje


A lemezek tkrzsnek egyik legcsodlatosabb elnye, hogy a menet kzben meghibsodott meghajtkat gond, s gy felteheten adatveszts nlkl ki tudjuk cserlni. Vegyk az imnti RAID-1 kongurcit, s ttelezzk fel, hogy a da1 eszkz felmondta a szolgltatot s cserre szorul. A meghajt levltshoz keressk meg a hibs eszkzt, majd lltsuk le a rendszert. Tegyk be a helyre az jat s indtsuk jra a rendszernket. Miutn elindult az opercis rendszer, a kvetkez parancsok kiadsval tudjuk logikailag is lecserlni a meghibsodott lemezt:
# gmirror forget gm0 # gmirror insert gm0 /dev/da1

Innen a gmirror status parancsval ksrhetjk gyelemmel a tkrzs jraszervezsnek menett. Csupn ennyi az egsz.

19.5. Eszkzk hlzati illesztse a GEOM-ban


A GEOM tvoli eszkzk, pldul lemezek, CD-meghajtk stb. hasznlatt is tmogatja a hlzati illesztst szolgl segdprogramjaival, hasonlan az NFS-hez. Kezdsknt ltre kell hozni a megosztst elsegt llomnyt. Ez az llomny hatrozza meg, ki s milyen szinten jogosult hasznlni a megosztott erforrsokat. Pldul ha megosztjuk az els SCSI-lemezen a negyedik slice-ot, az albbi /etc/gg.exports llomny tkletesen megfelel:
192.168.1.0/24 RW /dev/da0s4d

Ezzel a bels hlzaton lev sszes szmtgp kpes lesz elrni a da0s4d partcin tallhat llomnyrendszert. Az eszkz megosztshoz elszr gondoskodnunk kell rla, hogy ne legyen csatlakoztatva, majd ezutn indtsuk el a ggated(8) szerver dmonjt:
# ggated

Ezt kveten a mount felhasznlsval csatoljuk az eszkzt a kliensen, az albbi parancs kiadsval:
# ggatec create -o rw 192.168.1.1 /dev/da0s4d

ggate0
# mount /dev/ggate0 /mnt

Innentl kezdve az eszkz elrhet lesz a /mnt csatlakozsi ponton keresztl.


Megjegyzs: Fontos kiemelnnk, hogy ez a mvelet eredmnytelen, ha az adott eszkzt vagy maga a szerver, vagy pedig valamelyik msik kliens mr korbban csatolta.

Amikor az eszkzre mr nincs tovbb szksgnk, biztonsgosan le tudjuk vlasztani az umount(8) paranccsal, hasonlan brmelyik ms lemezes eszkzhz.

533

Fejezet 19. GEOM: A modulris lemezszervez rendszer

19.6. A lemezes eszkzk cmkzse


A rendszer indtsa kzben a FreeBSD rendszermagja a tallt eszkzknek megfelelen mindegyiknek ltrehoz egy-egy eszkzlert. Ezzel a prblgatsos mdszerrel egytt jr nhny gond, pldul mi trtnik akkor, ha az j lemezes eszkzt USB-n keresztl adjuk a rendszerhez? Nagyon valszn, hogy ez az eszkz megkapja a da0 nevet s ezzel az eredeti da0 eszkz eltoldik a da1 nvhez. Ennek ksznheten az /etc/fstab llomnyban felsorolt llomnyrendszerek csatolsa veszlybe kerl, aminek kvetkeztben akr meghisulhat a rendszerinduls is. Az egyik lehetsges megoldsa a problmnak, ha sorbafzzk a SCSI eszkzeinket, s gy a SCSI-krtyhoz kapcsolt jabb eszkz egy addig nem hasznlt szmot fog birtokba venni. Mi helyzet azonban az USB-s eszkzkkel, amelyek kithetik az elsdleges SCSI-lemezeinket? Ez egybknt azrt trtnhet meg, mert az USB-s eszkzket ltalban hamarabb keresi a rendszer, mint a SCSI krtyn lev eszkzket. Megoldhatjuk gy ezt a gondot, hogy csak azutn csatlakoztatjuk az emltett eszkzket, miutn a rendszer elindult. Megoldhatjuk viszont gy is, hogy csak egyetlen ATA-meghajtt hasznlunk s soha nem soroljuk fel a SCSI eszkzket az /etc/fstab llomnyban. Ezeknl knlkozik azonban egy jobb megolds! A glabel nev segdprogrammal a rendszergazda vagy a felhasznl gy tudja cmkzni a lemezmeghajtkat, hogy azok a /etc/fstab llomnyban szerepl cmkket hasznljk. Mivel a glabel a cmkt az adott szolgltat utols szektorban trolja el, ez a cmke megmarad az jraindts utn is. Ha ezt a cmkt eszkzknt hasznljuk, az llomnyrendszerek mindig ugyanarrl a meghajtrl fognak csatoldni, fggetlenl attl, hogy milyen eszkzlern keresztl rjk el ezeket.
Megjegyzs: Egyltaln nem lltottuk, hogy egy cmke csak lland lehet. A glabel segtsgvel egyarnt ltre lehet hozni lland s tmeneti cmkket, de csak az lland cmke kpes az jraindts utn is megmaradni. A kt cmketpus kzti klnbsgeket a glabel(8) man oldal trgyalja rszletesebben.

19.6.1. Cmketpusok s pldk


A cmkknek kt tpusa ltezik, az ltalnos cmke s az llomnyrendszer-cmke. A cmkk lehetnek llandak vagy ideiglenesek. Az lland cmkk a tunefs(8) vagy newfs(8) parancsokkal hozhatak ltre. Ezek a cmkk az adott llomnyrendszer tpusa alapjn elnevezett alknyvtrakban jnnek ltre a /dev knyvtron bell. Pldul az UFS2 llomnyrendszer-cmkk a /dev/ufs knyvtrban keletkeznek. lland cmkk a glabel label paranccsal hozhatak ltre. Az ilyen cmkk nem fggenek az llomnyrendszerek tpustl, a /dev/label knyvtrban jnnek ltre. Az ideiglenes cmkk a kvetkez indulskor elvesznek. Ezek a cmkk a /dev/label knyvtrban keletkeznek, s idelisak a ksrletezgetsre. Ideiglenes cmkket a glabel create paranccsal hozhatunk ltre. Ezzel kapcsolatosan rszletesebb felvilgostst a glabel(8) man oldalon tallhatunk. Ha egy UFS2 llomnyrendszerre szeretnnk tenni egy lland cmkt az adataink megsemmistse nlkl, adjuk ki a kvetkez parancsot:
# tunefs -L home /dev/da3

FigyelemHa az rintett llomnyrendszeren nincs res hely, ennek a parancsnak a hasznlata adatvesztshez vezethet. Ilyen esetben inkbb a felesleges llomnyok eltvoltsval kellene trdnnk, nem pedig cmkk hozzadsval.

534

Fejezet 19. GEOM: A modulris lemezszervez rendszer Ezutn egy cmknek kell megjelennie a /dev/ufs knyvtrban, amelyet vegynk is fel az /etc/fstab llomnyba:
/dev/ufs/home /home ufs rw 2 2

Megjegyzs: Az llomnyrendszert tilos csatolni a tunefs futtatsa alatt!

Most mr a megszokott mdon csatolhatjuk az llomnyrendszert:


# mount /home

Ettl a ponttl kezdve, amg a geom_label.ko modul betltdik a rendszerindts sorn a /boot/loader.conf llomnyon keresztl, vagy a GEOM_LABEL opci megtallhat a rendszermag kongurcis llomnyban, az eszkzler a rendszerre nzve minden komolyabb kvetkezmny nlkl megvltozhat. llomnyrendszereket ltrehozhatunk alaprtelmezett cmkvel is a newfs -L paramtervel. Errl rszletesebben a newfs(8) man oldalon olvashatunk. Az albbi paranccsal tudjuk trlni a cmkt:
# glabel destroy home

A kvetkez pldban azt lthatjuk, hogyan cmkzzk fel a rendszerindt lemeznk partciit. Plda 19-1. Partcik cmkzse a rendszerindt lemezen A rendszerindtsra hasznlt lemezen lev partcik felcmkzsvel a rendszer kpes lesz akkor is minden problma nlkl elindulni, amikor thelyezzk egy msik vezrlre vagy trakjuk egy msik szmtgpbe. Pldul most tegyk fel, hogy van egy ATA csatols lemeznk, amelyet a rendszer ad0 nven ismert fel. Tovbb azt is felttelezzk, hogy a FreeBSD teleptse esetn megszokott partcionlsi smt vlasztottuk, ahol /, /var, /usr s /tmp llomnyrendszereink, valamint egy lapozterletnk van. Indtsuk jra a rendszernket s a loader(8) menjben a 4 billenty lenyomsval vlasszuk az egyfelhasznls mdot. Ezt kveten adjuk ki a kvetkez parancsokat:
# glabel label rootfs /dev/ad0s1a

GEOM_LABEL: Label for provider /dev/ad0s1a is label/rootfs


# glabel label var /dev/ad0s1d

GEOM_LABEL: Label for provider /dev/ad0s1d is label/var


# glabel label usr /dev/ad0s1f

GEOM_LABEL: Label for provider /dev/ad0s1f is label/usr


# glabel label tmp /dev/ad0s1e

GEOM_LABEL: Label for provider /dev/ad0s1e is label/tmp


# glabel label swap /dev/ad0s1b

GEOM_LABEL: Label for provider /dev/ad0s1b is label/swap


# exit

A rendszer indtsa ezutn tbbfelhasznls mdban folytatdik. A rendszerindts befejezdse utn nyissuk meg az /etc/fstab llomnyt s rjuk t a hagyomnyos eszkzneveket a hozzjuk tartoz cmkkre. Az /etc/fstab vgleges vltozata ennek megfelelen krlbell gy fog kinzni:
# Eszkz /dev/label/swap Csatlakozsi pont none Tpus swap Belltsok sw Dump 0 Menet 0

535

Fejezet 19. GEOM: A modulris lemezszervez rendszer


/dev/label/rootfs /dev/label/tmp /dev/label/usr /dev/label/var / /tmp /usr /var ufs ufs ufs ufs rw rw rw rw 1 2 2 2 1 2 2 2

A rendszer most mr jraindthat. Ha mindent jl csinltunk, akkor a rendszer indtsa problmktl mentesen fog zajlani s a mount parancs eredmnye a kvetkez lesz:
# mount

/dev/label/rootfs on / (ufs, devfs on /dev (devfs, local) /dev/label/tmp on /tmp (ufs, /dev/label/usr on /usr (ufs, /dev/label/var on /var (ufs,

local) local, soft-updates) local, soft-updates) local, soft-updates)

A FreeBSD 7.2 kiadstl kezdden a glabel(8) osztly az UFS esetn tmogatja az ufsid, az llomnyrendszer egyedi rendszerszint azonostjbl szrmaztatott j cmketpus hasznlatt. Ezek a cmkk a rendszer indtsa sorn a /dev/ufsid knyvtrban jnnek automatikusan ltre. Az ufsid cmkken keresztl tudunk az /etc/fstab llomnyban llomnyrendszereket csatlakoztatni. A jelenleg aktv llomnyrendszereket s azok ufsid azonostit a glabel status paranccsal tudjuk lekrdezni:
% glabel status

Name ufsid/486b6fc38d330916 ufsid/486b6fc16926168e

Status N/A N/A

Components ad4s1d ad4s1f

Ebben a pldban az ad4s1d kpviseli a /var llomnyrendszert, mg a ad4s1f a /usr llomnyrendszert. Az adott ufsid rtkek megadsval az /etc/fstab llomnyban a kvetkezkppen tudjuk csatlakoztatni ezeket az llomnyrendszereket:
/dev/ufsid/486b6fc38d330916 /dev/ufsid/486b6fc16926168e /var /usr ufs ufs rw rw 2 2 2 2

Minden ufsid cmkvel rendelkez partci csatlakoztathat ezen a mdon. Ekkor nem kell manulisan ltrehoznunk a szmunkra lland cmkket, gy automatikusan lvethezhetjk az eszkznvtl fggetlen csatlakoztats elnyeit.

19.7. Naplz UFS GEOM-on keresztl


A FreeBSD 7.0-s verzijnak megjelensvel egy rg vrt kiegszts, a naplz UFS vgre elrhetv vlik. Maga az implementci a GEOM alrendszeren keresztl rhet el, s a gjournal(8) segdprogram segtsgvel knnyedn bellthat. Mit is jelent a naplzs? A naplzs tmogatsval a rendszer egy naplt vezet az llomnyrendszert rint tranzakcikrl pldul az olyan vltoztatsokrl, amelyek egy komplett rsi mveletet eredmnyeznek mieltt mg a metaadatok s lemezrsi mveletek szablyosan befejezdnnek. Ez a knyvels ksbb visszajtszhat az llomnyrendszerben lezajlott tranzakcik reproduklshoz, s ezzel megelzhetek az llomnyrendszerben keletkez esetleges ellentmondsok. Ez egy jabb mdszer az adatveszts s az llomnyrendszerben elfordul ellentmondsok elkerlsre. Eltren a Soft Updates mdszertl, ahol a metaadatok frisstst biztostjk s kvetik nyomon, vagy a Snapshots mdszertl,

536

Fejezet 19. GEOM: A modulris lemezszervez rendszer ahol pillanatkpeket trolunk az llomnyrendszerrl, itt egy konkrt naplt trolunk a lemez erre a clra fenntartott rszn, amely bizonyos esetekben akr egy teljes kln merevlemez is lehet. Ellenttben a tbbi naplz llomnyrendszertl, a gjournal mdszere blokk alap s nem az llomnyrendszer rszeknt kerlt implementlsra csupn a GEOM egyik bvtmnye. A gjournal tmogatshoz a FreeBSD rendszermag kongurcis llomnyban be kell lltani a kvetkez opcit amely a 7.X rendszereken alapbellts:
options UFS_GJOURNAL

Amennyiben naplzssal rendelkez kteteket szeretnnk a rendszerindts sorn csatlakoztatni, a /boot/loader.conf llomnyban kvetkez sor hozzadsval tltessk be a geom_journal.ko modult:
geom_journal_load="YES"

Szksg esetn ezt a funkcit akr a rendszermagba is bepthetjk, ha felvesszk a kvetkez sort a rendszermag kongurcis llomnyba:
options GEOM_JOURNAL

Ha ezt aktivltuk, egy szabad llomnyrendszeren az albbi lpseken keresztl tudunk ltrehozni egy naplt, feltve, hogy a da4 egy j SCSI-meghajt:
# gjournal label /dev/da4 # gjournal load

Ennl a pontnl lennie kell egy /dev/da4 s egy /dev/da4.journal eszkzlernak. Hozzunk ltre egy llomnyrendszert ezen az eszkzn:
# newfs -O 2 -J /dev/da4.journal

Ez a parancs ltrehoz egy naplz UFS2 llomnyrendszert. Csatoljuk is be a mount segtsgvel az eszkzt kvnt csatlakozsi pontra:
# mount /dev/da4.journal /mnt

Megjegyzs: Ha tbb slice-unk is van, akkor a napl mindegyik slice-hoz kln ltrejn. Pldul, ha az ad4s1 s ad4s2 egyarnt slice-ok, akkor a gjournal legyrtja az ad4s1.journal s ad4s2.journal eszkzlerkat. Abban az esetben, ha ktszer futattjuk le a parancsot, az eredmny journals lesz.

Bizonyos krlmnyek kztt kvnatos lehet a naplt egy msik lemezen tartani. Ilyen esetekben a naplzs bekapcsolshoz a naplt biztost szolgltatt vagy troleszkzt a naplzni kvnt eszkz utn kell szerepeltetni. A naplzs akr az aktulisan hasznlt llomnyrendszeren is aktivlhat a tunefs hasznlatval. Az llomnyrendszer mdostsakor viszont mindig rdemes biztonsgi msolatot kszteni! Az esetek tbbsgben a gjournal hibt fog jelezni, mivel nem tudja ltrehozni a naplt, azonban ez nem vdi meg az adatainkat a tunefs helytelen hasznlata ltal okozott srlsektl. A rendszerindt lemezen is lehet naplzst hasznlni. Ennek rszleit a Naplz UFS hasznlata asztali szmtgpeken (http://www.FreeBSD.org/doc/hu_HU.ISO8859-2/articles/gjournal-desktop) cm cikkbl ismerhetjk meg.

537

Fejezet 20. Tmogatott llomnyrendszerek


rta: Tom Rhodes.

20.1. ttekints
Az llomnyrendszerek szerves rszt kpezik napjaink opercis rendszereinek. Segtsgkkel a felhasznlk adatokat tlthetnek fel s trolhatnak a szmtgpen, szablyozhatjk a hozzfrsket, s termszetesen mkdtethetik a merevlemezeiket. A klnfle opercis rendszerekben ltalban azrt annyi kzs, hogy mindannyiukhoz tartozik egy natv, vagyis ltaluk alapbl ismert llomnyrendszer. A FreeBSD esetben ezt konkrtan a Fast File System vagy rviden FFS, amely az eredeti Unix File System, vagy ms nven UFS megoldsain alapszik. A FreeBSD teht a merevlemezeken ebben a natv llomnyrendszerben trol adatokat. A FreeBSD termszetesen ezen kvl mg ismer szmos egyb llomnyrendszert, ezltal kpes adatokat olvasni ms opercis rendszerek rszrl is kezelhet partcikrl, pldul helyi USB-eszkzkrl, ashkrtykrl s merevlemezekrl. Tovbb ismeri nhny ms opercis rendszer natv llomnyrendszert, mint pldul a Linux Extended File System (EXT) vagy ppen a Sun Z File System (ZFS). FreeBSD alatt az egyes llomnyrendszerek ismerete vltoz. Bizonyos esetekben elegend csupn egy megfelel modul betltse, mskor viszont egy komplett eszkzkszlet segtsgvel tudunk velk dolgozni. Ez a fejezet igyekszik a Sun-fle Z llomnyrendszerrel kezdden bemutatni a FreeBSD felhasznli szmra ms llomnyrendszerek hasznlatt. A fejezet elolvassa sorn megismerjk:

a natv s tmogatott llomnyrendszerek kzti klnbsgeket; a FreeBSD ltal ismert llomnyrendszereket; hogyan engedlyezznk, lltsunk be s rjnk el nem natv llomnyrendszereket.

A fejezet elolvasshoz ajnlott:


a UNIX s FreeBSD alapjainak ismerete (3 fejezet); a rendszermag kongurcijnak s fordtsnak alapvet fogsainak ismerete (8 fejezet); a klnbz kls fejleszts szoftverek teleptsnek ismerete (4 fejezet); a lemezek s egyb troleszkzk, valamint a FreeBSD alatt az eszkzk elnevezsnek minimlis ismerete (18 fejezet).

20.2. A Z llomnyrendszer (ZFS)


A Sun Z llomnyrendszere egy j, kzs trolsi mdszeren nyugv technolgia. Ez annyit jelent a gyakorlatban, hogy mindig csak annyi helyet foglal, amennyire az adatoknak kzvetlenl szksge van. Emellett gy alaktottk ki, hogy az adatok psgt minl inkbb vdje, ezrt pldul megtallhatjuk benne a pillanatkpek ksztst, a msolatok ltrehozst s az adatok srtetlensgnek ellenrzst. Tovbb egy RAID-Z nven bemutatott j

538

Fejezet 20. Tmogatott llomnyrendszerek replikcis modellt is tmogat. A RAID-Z alapveten a RAID-5 megoldshoz hasonlt, azonban rs sorn keletkez hibk ellen igyekszik vdelmet nyjtani.

20.2.1. A ZFS nomhangolsa


A ZFS funkciit megvalst alrendszer alaprtelmezs szerint meglehetsen sok erforrst kvn, ezrt nem rt a legjobb hatkonysgra behangolnunk a mindennapokban felmerl ignyek mentn. Mivel ez mg egy fejleszts s tesztels alatt ll rsze a FreeBSD-nek, elkpzelhet, hogy ez a jvben vltozik, viszont jelen pillanatban a kvetkez lpseket javasoljuk.

20.2.1.1. Memria
Hasznos, ha a rendszernkben legalbb 1 GB memria tallhat, de inkbb 2 vagy tbb az ajnlott. Az itt szerepl pldkban ehelyett azonban mindenhol csupn 1 GB-ot feltteleznk. Nhnyaknak sikerlt 1 GB-nl kevesebb kzponti memrival is hasznlni ezt az llomnyrendszert, azonban ilyenkor nagyon knnyen elfordulhat, hogy komolyabb terhels esetn a FreeBSD a memria elfogysa miatt egyszeren sszeomlik.

20.2.1.2. A rendszermag belltsai


A rendszermag kongurcis llomnybl javasolt eltvoltani az sszes nem hasznlt meghajtt s funkcit. A legtbb meghajt egybknt is elrhet modul formjban, s a /boot/loader.conf llomnyon keresztl minden gond nlkl betlthetek. Az i386 architektrnl szksgnk lesz az albbi kongurcis bellts megadsra, majd a rendszermag jrafordtsra, vgl a rendszer jraindtsra:
options KVA_PAGES=512

Ezzel az opcival a rendszermag cmtert nveljk meg, aminek eredmnyekppen a vm.kvm_size vltozt immron az eredetileg 1 GB-os (PAE hasznlata esetn pedig 2 GB-os) hatr fel tudjuk lltani. Az itt megadand rtket gy tudjuk meghatrozni, ha a belltani kvnt mret MB-okban szmolt rtkt elosztjuk nggyel. A pldban teht az 512 egy 2 GB nagysg cmteret ad meg.

20.2.1.3. A rendszertlt belltsai


A kmem cmtert az sszes FreeBSD ltal ismert architektra esetben rdemes megnvelnnk. A tesztelshez hasznlt rendszeren 1 GB zikai memria llt rendelkezsre, itt a /boot/loader.conf llomnyban a kvetkez rtkek megadsval minden remekl mkdtt:
vm.kmem_size="330M" vm.kmem_size_max="330M" vfs.zfs.arc_max="40M" vfs.zfs.vdev.cache.size="5M"

A ZFS nomhangolsval kapcsolatos tovbbi javasolatokat a http://wiki.freebsd.org/ZFSTuningGuide cmen olvashatunk.

539

Fejezet 20. Tmogatott llomnyrendszerek

20.2.2. A ZFS hasznlata


A Z llomnyrendszerhez ltezik egy olyan mechanizmus, amelyen keresztl mr a FreeBSD indtsa sorn el tudjuk vgezni a kzs trolk csatlakoztatst:
# echo zfs_enable="YES" >> /etc/rc.conf # /etc/rc.d/zfs start

A lers fennmarad rszben felttelezzk, hogy hrom SCSI-lemeznk van, amelyeket rendre a da0, da1 s da2 eszkzk formjban tudunk elrni. Az IDE lemezek tulajdonosainak rtelemszeren itt majd az ad eszkzneveket kell hasznlniuk a SCSI-eszkzk hivatkozsai helyett.

20.2.2.1. Egyetlen kzs trol hasznlata


A zpool kiadsval egyetlen lemezen is ltre tudunk hozni egy egyszer, nem redundns ZFS partcit:
# zpool create minta /dev/da0

Az j kzs trterlet a df parancs felhasznlsval rgtn lthatv vlik:


# df

Filesystem 1K-blocks Used Avail Capacity /dev/ad0s1a 2026030 235230 1628718 13% devfs 1 1 0 100% /dev/ad0s1d 54098308 1032846 48737598 2% minta 17547136 0 17547136 0%

Mounted on / /dev /usr /minta

A parancs kimenetben tisztn lthatjuk, hogy a minta nev trol nem csak egyszeren elkszlt, hanem egyttal csatoldott. Innentl mr a tbbi llomnyrendszerhez hasonlan tetszlegesen elrhet, az albbi pldhoz hasonlan llomnyok hozhatak rajta ltre vagy listzhat a tartalma:
# # # # cd /minta ls touch proba ls -al

total 4 drwxr-xr-x drwxr-xr-x -rw-r--r--

2 root 21 root 1 root

wheel wheel wheel

3 Aug 29 23:15 . 512 Aug 29 23:12 .. 0 Aug 29 23:15 proba

Sajnos azonban ez a trol mg ki sem hasznlja a ZFS ltal felknlt lehetsgeket. Ezrt most hozzunk ltre egy llomnyrendszert ezen a troln bell s engedlyezzk rajta a tmrtst:
# zfs create minta/tomoritett # zfs set compression=gzip minta/tomoritett

A minta/tomoritett most mr egy tmrtett Z llomnyrendszer. Prbljuk ki mit tud, s msoljunk nhny nagyobb mret llomnyt a /minta/tomoritett knyvtrba. Ezutn a tmrts akr ki is kapcsolhat:
# zfs set compression=off minta/tomoritett

540

Fejezet 20. Tmogatott llomnyrendszerek Az llomnyrendszer levlasztshoz adjuk ki a lenti parancsot, majd ellenrizzk az eredmnyt a df hasznlatval:
# zfs umount minta/tomoritett # df

Filesystem 1K-blocks Used Avail Capacity /dev/ad0s1a 2026030 235232 1628716 13% devfs 1 1 0 100% /dev/ad0s1d 54098308 1032864 48737580 2% minta 17547008 0 17547008 0%

Mounted on / /dev /usr /minta

Tegyk ismt elrhetv s csatlakoztassuk jra az llomnyrendszert, majd nzzk meg az eredmnyt a df paranccsal:
# zfs mount minta/tomoritett # df

Filesystem /dev/ad0s1a devfs /dev/ad0s1d minta minta/tomoritett

1K-blocks Used Avail Capacity 2026030 235234 1628714 13% 1 1 0 100% 54098308 1032864 48737580 2% 17547008 0 17547008 0% 17547008 0 17547008 0%

Mounted on / /dev /usr /minta /minta/tomoritett

A kzs terlet s az llomnyrendszer mellesleg a mount parancs kimenetbl is meggyelhet:


# mount

/dev/ad0s1a on / (ufs, local) devfs on /dev (devfs, local) /dev/ad0s1d on /usr (ufs, local, soft-updates) minta on /minta (zfs, local) minta/tomoritett on /minta/tomoritett (zfs, local)

Lthat, hogy a ltrehozsuk utn a Z llomnyrendszerek teljesen htkznapi mdon viselkednek, de termszetesen tovbbi lehetsgek is elrhetek hozzjuk. A kvetkez pldban adat nven ksztnk egy j llomnyrendszert. Mivel ide majd nagyon fontos llomnyokat akarunk elhelyezni, lltsuk be, hogy minden adatblokkbl kt pldny legyen:
# zfs create minta/adat # zfs set copies=2 minta/adat

A df jbli kiadsval most mr lthat is ez az llomnyrendszer s annak trfoglalsa:


# df

Filesystem /dev/ad0s1a devfs /dev/ad0s1d minta minta/tomoritett minta/adat

1K-blocks Used Avail Capacity 2026030 235234 1628714 13% 1 1 0 100% 54098308 1032864 48737580 2% 17547008 0 17547008 0% 17547008 0 17547008 0% 17547008 0 17547008 0%

Mounted on / /dev /usr /minta /minta/tomoritett /minta/adat

Vegyk szre, hogy a kzs terleten lev llomnyrendszerek mindegyikn ugyanannyi szabad terlet van. A df segtsgvel a ksbbiekben remekl meggyelhet lesz, hogy az egyes llomnyrendszerek mindig csak annyi terletet foglalnak el a kzs terletbl, amennyire abban a pillanatban tnylegesen szksgnk van. A Z

541

Fejezet 20. Tmogatott llomnyrendszerek llomnyrendszerek esetn megsznik a partcik s ktetek fogalma, s tbb llomnyrendszer troldik egyazon kzs terleten. Ha mr nem akarjuk hasznlni, egyszeren csak trljk le az llomnyrendszereket s ezt a kzs trolt:
# zfs destroy minta/tomoritett # zfs destroy minta/adat # zpool destroy minta

Nyilvn tapasztalhattunk mr, hogy a lemezeink olykor menthetetlenl meghibsodnak. Amikor egy lemezes meghajt tnkremegy, a rajta trolt adatok ltalban elvesznek. Az ilyen jelleg kellemetlensgek elkerlsnek egyik mdja az n. RAID-tmbk ptse. A kvetkez szakaszban bemutatjuk, hogy a Z llomnyrendszerek esetn hogyan tudunk ilyen tmbket kszteni.

20.2.2.2. RAID-Z tmbk


Korbban mr utaltunk r, hogy ebben a szakaszban hrom SCSI-lemez, vagyis a da0, da1 s da2 eszkzk hasznlatt felttelezzk (vagy termszetesen ad0 s gy tovbb, ha IDE-lemezeket hasznlunk). Egy RAID-Z formtum kzs trol ksztshez a kvetkez parancsot kell kiadni:
# zpool create tarolo raidz da0 da1 da2

Megjegyzs: A Sun ajnlsa szerint egy RAID-Z kongurciban legalbb hrom, legfeljebb kilenc lemezt javasolt alkalmazni. Ha egyetlen kzs trolban esetleg tznl tbb lemezt szeretnnk felhasznlni, akkor rdemes inkbb kisebb RAID-Z csoportokra felosztani ezeket. Ha viszont csak kt lemeznk van, de tovbbra is redundancira lenne szksgnk, hozzunk helyette ltre egy ZFS tkrzst. Ezzel kapcsolatban rszletesebben a zpool(8) man oldalon keresztl tjkozdhatunk.

Ennek hatsra teht keletkezik egy tarolo nev Z-trol. Ez a korbbiakhoz hasonl mdon ellenrizhet is a mount(8) s df(1) parancsokon keresztl. Termszetesen az imnti listba tovbbi lemezeszkzk tetszlegesen felvehetek. Most hozzunk ltre ezen a kzs terleten egy felhasznalok nev llomnyrendszert, ahov majd a felhasznlk adatait fogjuk tenni:
# zfs create tarolo/felhasznalok

Miutn ezzel megvagyunk, az imnt ltrehozott llomnyrendszerre nyugodtan bellthatunk tmrtst s biztonsgi msolatokat. Ebben az albbi parancsok lesznek a segtsgnkre:
# zfs set copies=2 tarolo/felhasznalok # zfs set compression=gzip tarolo/felhasznalok

Ezt kveten kltztessk t a felhasznlkat, vagyis msoljuk t az adataikat ide s hozzuk ltre a megfelel szimbolikus linkeket:
# # # # cp rm ln ln -rp /home/* /tarolo/felhasznalok -rf /home /usr/home -s /tarolo/felhasznalok /home -s /tarolo/felhasznalok /usr/home

542

Fejezet 20. Tmogatott llomnyrendszerek A felhasznlk adatai immron a frissen ltrehozott /tarolo/felhasznalok llomnyrendszeren troldnak. Prbljuk ki, hozzunk ltre egy j felhasznlt s jelentkezznk be vele. Ksztsnk most egy pillanatkpet is, amelyet aztn ksbb szksg esetn vissza tudunk lltani:
# zfs snapshot tarolo/felhasznalok@08-08-30

A snapshot csak vals llomnyrendszerekkel mkdik, knyvtrakra vagy llomnyokra nem. A nevben a @ karakter vlasztja el egymstl a hozztartoz cmkt az llomnyrendszer vagy ktet nevtl. Ha netaln a felhasznli knyvtrak valamirt megsrltek volna, a kvetkez paranccsal llthatak vissza:
# zfs rollback tarolo/felhasznalok@08-08-30

Az adott idpontban aktv pillanatkpeket az adott llomnyrendszer .zfs/snapshot knyvtrban tallhatjuk meg. Pldul az elbb ksztett pillanatkp az albbi paranccsal nzhet meg:
# ls /tarolo/felhasznalok/.zfs/snapshot

Ha ebbl elindulunk, akkor pillanatok alatt rhat egy olyan szkript, amely a felhasznlk adatairl havonta kszt egy pillanatkpet. Ilyenkor azonban fontos szmtsba vennnk, hogy az idvel felgyleml pillanatkpek rengeteg helyet el tudnak foglalni. A korbbi pillanatkp gy tvolthat el:
# zfs destroy tarolo/felhasznalok@08-08-30

Miutn alaposan kiprbltuk a /tarolo/felhasznalok nven ltrehozott llomnyrendszernket, lltsuk be vglegesen ez eddigi /home llomnyrendszer helyre:
# zfs set mountpoint=/home tarolo/felhasznalok

Ekkor a df s mount parancsok hasznlatval meggyzdhetnk rla, hogy ezt az llomnyrendszert innentl mr valban a /home knyvtrnak tekintjk:
# mount

/dev/ad0s1a on / (ufs, local) devfs on /dev (devfs, local) /dev/ad0s1d on /usr (ufs, local, soft-updates) tarolo on /tarolo (zfs, local) tarolo/felhasznalok on /home (zfs, local)
# df

Filesystem 1K-blocks Used Avail Capacity /dev/ad0s1a 2026030 235240 1628708 13% devfs 1 1 0 100% /dev/ad0s1d 54098308 1032826 48737618 2% tarolo 26320512 0 26320512 0% tarolo/felhasznalok 26320512 0 26320512 0%

Mounted on / /dev /usr /tarolo /home

Ezzel lnyegben befejeztk a RAID-Z tmb kongurcijt. Az llomnyrendszerek llapotra vonatkozan a periodic(8) alkalmazsval akr naponta krhetnk ellenrzst:
# echo daily_status_zfs_enable="YES" >> /etc/periodic.conf

543

Fejezet 20. Tmogatott llomnyrendszerek

20.2.2.3. A RAID-Z helyrelltsa


Minden szoftveres RAID implementci knl valamilyen megoldst az llapotnak ellenrzsre, ez all tulajdonkppen a ZFS sem kivtel. A RAID-Z eszkzk llapota a kvetkez paranccsal krdezhet le:
# zpool status -x

Ezt az zenetet lthatjuk, amikor minden trol kifogstalanul mkdik s semmilyen problma sincs:
all pools are healthy

Ha viszont valamilyen gond lenne valamelyik lemezzel, pldul lellt, akkor az elbbi parancs eredmnye ehhez lesz hasonl:
pool: tarolo state: DEGRADED status: One or more devices has been taken offline by the administrator. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Online the device using zpool online or replace the device with zpool replace. scrub: none requested config: NAME tarolo raidz1 da0 da1 da2 STATE DEGRADED DEGRADED ONLINE OFFLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

errors: No known data errors

A vlasz szerint az eszkzt az adminisztrtor lltotta le. Ez ennl a pldnl valban igaz. Lemezeket a kvetkez mdon lehet lelltani:
# zpool offline tarolo da1

gy miutn lelltottuk a rendszert, a da1 eszkz cserlhet. A rendszer soron kvetkez indtsakor ezzel a paranccsal tudjuk jelezni logikailag is a lemez cserjt:
# zpool replace tarolo da1

Nzzk meg jra a tmb llapott, de ezttal a -x kapcsol megadsa nlkl, mivel csak gy fogjuk ltni:
# zpool status tarolo

pool: tarolo state: ONLINE scrub: resilver completed with 0 errors on Sat Aug 30 19:44:11 2008 config: NAME tarolo raidz1 STATE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0

544

Fejezet 20. Tmogatott llomnyrendszerek


da0 da1 da2 ONLINE ONLINE ONLINE 0 0 0 0 0 0 0 0 0

errors: No known data errors

A plda szerint minden megfelelen mkdik.

20.2.2.4. Az adatok ellenrzse


Elzetesen mr sz esett rla, hogy a ZFS kpes a trolt adatok srtetlensgnek ellenrzsre. Az j llomnyrendszerek ltrehozsnl ez a lehetsg automatikusan aktivldik, de tetszs szerint letilthat:
# zfs set checksum=off tarolo/felhasznalok

Ez a lps viszont nem felttlenl j dnts, mivel az adatintegrits megtartshoz felhasznlt ellenrz sszegek nagyon kevs helyet foglalnak s meglehetsen hasznosak. Emellett semmilyen szlelhet lassulst nem okoznak az llomnyrendszer hasznlata sorn. Ha engedlyezzk, a ZFS ilyen ellenrz sszegek segtsgvel folyamatosan gyelni tudja az adatok psgt. Ezt az ellenrzst a scrub paranccsal vlthatjuk ki. Nzzk meg pldul a tarolo esetben:
# zpool scrub tarolo

Ez a vizsglat a trolt adatok mennyisgtl fggen nagyon sokig is eltarthat, illetve rengeteg lemezmveletet foglal magban, ezrt egyszerre csak egy ilyen futtatsa javasolt. Miutn befejezdtt, a trol llapota az eredmnynek megfelelen frissl, amelyet kzvetlenl utna le is krdezhetnk:
# zpool status tarolo

pool: tarolo state: ONLINE scrub: scrub completed with 0 errors on Sat Aug 30 19:57:37 2008 config: NAME tarolo raidz1 da0 da1 da2 STATE ONLINE ONLINE ONLINE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

errors: No known data errors

A pldban lthat az utols ellenrzs ideje. Ezen lehetsg hasznlatval hossz idn keresztl szavatolni tudjuk az adataink psgt. A Z llomnyrendszerrel kapcsolatos tovbbi belltsi lehetsgekrl a zfs(8) s zpool(8) man oldalakon olvashatunk.

545

Fejezet 21. A Vinum ktetkezel


Az eredeti vltozatot rta:Greg Lehey.

21.1. ttekints
Nem szmt, milyen lemezeink is vannak, ugyanis mindig addnak velk kapcsolatban gondjaink:

Kicsik. Lassk. Nem elg megbzhatak.

Ezekre a problmkra javasoltak s meg is valstottak szmos megoldst. A felhasznlk egy rsze ltalban gy vdekezik ellenk, hogy tbb, gyakran redundnsan trol lemezt hasznl. A klnfle krtyk s hardveres RAID-vezrlk tmogatsa mellett a FreeBSD alaprendszerben megtallhat egy blokkos eszkzmeghajtknt a Vinum ktetkezel is, amellyel virtulis lemezmeghajtkat lehet ltrehozni. Teht a Vinum egy olyan n. ktetkezel, vagyis virtulis lemezkezel, ami az emltett hrom problmra prbl megoldst adni. A Vinum a hagyomnyos lemezes trolsnl jval nagyobb rugalmassgot, teljestmnyt s megbzhatsgot biztost, valamint ismeri a RAID-0, RAID-1 s RAID-5 modelleket kln-kln s kombinlva is. Ebben a fejezetben sszefoglaljuk a hagyomnyos lemezes trols jellegzetes problmit s bemutatjuk a Vinum ktetkezelt.
Megjegyzs: A FreeBSD 5-s verzijtl kezdve a Vinumot jrartk a GEOM-nak megfelelen (19 fejezet), megtartva az eredeti elgondolsokat, elnevezseket s a lemezen trolt metaadatok formtumt. Ezt az jrart vltozatot nevezik gvinumnak (GEOM vinum). A szvegben a Vinumra kizrlag csak ltalnossgban hivatkozunk, fggetlenl az implementcijtl. Most mr az sszes parancsot a gvinum hasznlatval kell kiadni, illetve a hozztartoz modul neve vinum.ko-rl geom_vinum.ko-ra vltozott s a megfelel eszkzlerk a /dev/vinum knyvtr helyett a /dev/gvinum knyvtrban tallhatak. A FreeBSD 6. verzijtl pedig a rgi Vinum implementci tbb mr nem is rsze az alaprendszernek.

21.2. Kicsik a lemezeink


A lemezek kapacitsa ugyan nvekszik, de velk egytt a trignyek is. Ezrt gyakran rezzk gy, hogy a rendelkezsnkre ll lemezek trkapacitst meghalad llomnyrendszerre lenne szksgnk. Ktsgtelen, hogy ez a problma messze nem akkora jelentsg, mint pldul tz vvel ezeltt, de mg mindig fennll. Egyes rendszerek ezt gy hidaltk t, hogy ltrehoztak egy olyan absztrakt eszkzt, amely az adatokat tbb lemezen trolja el.

21.3. A hozzfrsi idk szk keresztmetszetei


Napjaink rendszerei szinte llandan egyszerre tbb adathoz is hozz akarnak frni. Pldul egy nagy forgalm FTP vagy HTTP szerver tbb 100 Mbit/s sebessg kapcsolattal is csatlakozhat a vilghlhoz, amelyeken keresztl

546

Fejezet 21. A Vinum ktetkezel prhuzamosan tbbezernyi tranzakcit is folytathat, ami jelentsen meghaladja a legtbb lemez tlagos tviteli sebessgt. A jelenleg kaphat lemezek soros adattviteli sebessge egszen 70 MB/s-ig is terjedhet, de ennek az rtknek kevs a jelentsge olyan krnyezetekben, ahol tbb, egymstl fggetlenl fut program prbl egyszerre hozzfrni, hiszen ilyen esetekben csak a tredkt kpesek elrni. Ilyenkor sokkal rdekesebb a lemezt kezel alrendszer szempontjbl nzni a problmt: gy az egyes adattviteli krsek terhelse lesz a meghatroz paramter, vagyis az az id, amit a krs teljestsben rintett meghajtk eltltenek a feldolgozssal. Brmelyik krst is vesszk, a kiszolglshoz a meghajtnak elszr a megfelel helyre kell mozgatnia az r/olvas fejeket, meg kell vrni a fej alatt elhalad els szektort, majd vgrehajtani a megfelel mveletet. Ezek a mveletek sztvlaszthatatlanok: semmi rtelme nincs megszaktani ezeket. Tekintsnk egy tlagosnak mondhat, nagyjbl 10 kB mret adattvitelt: a legjabb nagyteljestmny lemezek tlagosan 3,5 ms alatt kpesek pozicionlni a fejeket. A leggyorsabb lemezek 15 000 fordulatot tesznek meg percenknt (RPM), gy az tlagos forgsi ksleltets (egy fl fordulat ideje) 2 ms. 70 MB/s-os sebessg mellett az tvitel maga megkzeltleg 150 s, ami szinte elhanyagolhat a pozicionls idejhez kpest. Ilyen esetekben a tnyleges adattviteli sebessg 1 MB/s-nl alig valamivel tbbre esik vissza, s tisztn ltszik, hogy ersen fgg az tvitt adat mennyisgtl. A hagyomnyos s kzenfekv megoldsa ennek a problmnak mg tbb csve hasznlata: egyetlen nagy lemez helyett alkalmazzunk tbb kisebb, de azonos trkapacits lemezt. Mindegyik lemez kpes egymstl fggetlenl mozgatni a fejeiket s az adatokat, aminek ksznheten a tnyleges adattvitel mrtke nagyjbl a lemezek szmval arnyosan nvekszik. Az adattvitelben bekvetkez javuls pontos arnya termszetesen kisebb, mint a lemezek szma: habr az egyes meghajtk kpesek prhuzamosan mozgatni az adatokat, semmilyen mdon garantlhatjuk, hogy a krsek egyenletesen oszlanak el kztk. Emiatt szinte elkerlhetetlen, hogy az egyik meghajtt nagyobb terhels rje, mint a msikat. A lemezekre es terhels egyenletessge ersen fgg attl, hogyan osztjuk el az adatokat a meghajtk kztt. Az itt hasznlt pldban a lemezen trolt adatokat egy knyv oldalaiknt rdemes elkpzelni, vagyis rengeteg szm szerint cmezhet adatszektorknt. A virtulis lemezt ennek megfelelen a legegyszerbben gy tudjuk felosztani az egyms utn kvetkez fggetlen zikai lemezek mrete szerint s gy hasznlni, mintha egy nagy knyvet kisebb rszekre tptnk volna. Ezt a mdszert nevezik sszefzsnek, s elnye, hogy a rsztvev lemezeknek nem kell azonos mreteknek lennik. Ez a megolds remekl mkdik abban az esetben, amikor a virtulis lemez hozzfrsei egyenletesen oszlanak el annak teljes terletn. Amikor viszont az elrs csak egy kisebb terletre korltozdik, kevesebb javuls tapasztalhat. A 21-1 bra mutatja be lemezek egy ilyen sszefztt kongurcijt.

547

Fejezet 21. A Vinum ktetkezel bra 21-1. Az sszefztt szervezsi md

1. lemez 0 1 2 3 4 5

2. lemez 6 7 8 9

3. lemez 10 11

4. lemez 12 13 14 15 16 17

Feloszthatjuk a virtulis lemeznket kisebb azonos mret darabokra is, melyeket klnbz eszkzkn sorosan trolunk el. Pldul az els 256 szektort eltroljuk az els lemezen, majd a kvetkez 256 szektort a kvetkez lemezen s gy tovbb. Az utols lemez kitltse utn az egsz folyamat ismtldik, egszen az sszes lemez megtltsig. Ezt a lekpezst cskozsnak (striping) vagy RAID-0-nak nevezzk 1. A cskozs hasznlata sorn valamivel bonyolultabb vlik az adatok megtallsa s tbbletmunkt is jelenthet olyan esetekben, amikor az adattvitel tbb lemezt is rint, de ezzel egyidben sokkal jobban sztosztja a terhelst a lemezek kztt. A 21-2 bra mutatja be a lemezek cskozott szervezst. bra 21-2. A cskozott szervezsi md

1. lemez 0 4 8 12 16 20

2. lemez 1 5 9 13 17 21

3. lemez 2 6 10 14 18 22

4. lemez 3 7 11 15 19 23

548

Fejezet 21. A Vinum ktetkezel

21.4. Adatintegrits
A modern lemezhajtk utols fontos problmja, hogy nem elgg megbzhatak. Annak ellenre, hogy a lemezek ezen a tren meglehetsen sokat fejldtek az utbbi pr vben, egy szervernek mg mindig ezek azok a kzponti rszei, amelyek a leginkbb hajlamosak a meghibsodsra. Amikor ez bekvetkezik, a hatsa akr egy katasztrfval is felrhet: a srlt lemezmeghajtk cserje s az adatok visszalltsa napokat is ignybe vehet. Ennek a problmnak a hagyomnyos megkzeltse lenne a tkrzs (mirroring), vagyis amikor ugyanarrl az adatrl tartunk kt pldnyt kt eltr zikai hardveren. A RAID-szintek bekszntvel ezt a technikt RAID level 1-nak vagy RAID-1-nek is nevezik. Amikor runk a ktetre, mindenhova runk, az olvass pedig brmelyik eszkzrl elvgezhet. gy ha az egyik meghajt tnkremenne, egy msikon mg mindig megtallhat az sszes adat. A tkrzs kt problmt vet fel:

r. Legalbb ktszer annyiba kerl, mint a nem redundnsan trol megoldsok. Teljestmnycskkens. Mivel az rst minden meghajtn vgre kell hajtani, legalbb ktszer annyi svszlessget is felmeszt, mint a nem tkrztt ktetek esetn. Az olvass viszont nem veszt a sebessgbl: st, mg gyorsabbnak is tnhet.

Az adatintegrits megrzsre egy msik megolds a parits hasznlata, melyet a 2, 3, 4 s 5 RAID-szintek valstanak meg. Ezek kzl taln a RAID-5 a legrdekesebb. A Vinumban egy olyan cskozott szervezsi mdknt valstottk meg, ahol minden cskbl egy blokk az sszes tbbi paritsi informcijt tartalmazza. A RAID-5 ltal megvalstott szervezs hasonlt a cskozshoz, azonban a RAID-5-ben mindegyik csk tartalmaz egy paritsi informcit is. Teht a Vinumban, ahogy azt RAID-5 a megkveteli, a paritst trol blokkok helye az egyik cskrl a msikra vltozik. Az adatblokkokban tallhat szmok relatv blokkszmokat jellnek. bra 21-3. A RAID-5 szervezsi md

1. lemez 0 3 6 parits 12 15

2. lemez 1 4 parits 9 13 16

3. lemez 2 parits 7 10 14 parits

4. lemez parits 5 8 11 parits 17

A RAID-5-nek a tkrzshez kpest megvan az az elnye, hogy jelentsen kevesebb trhelyet ignyel. Az olvass hasonl a cskozott szervezsekhez, azonban az rs jval lassabb, kzel 25%-a az olvass sebessgnek. Az egyik meghajt meghibsodsa esetn a tmb cskkentett mdban mg kpes folytatni a mkdst: a fennmarad

549

Fejezet 21. A Vinum ktetkezel meghajtkrl tovbbra is a megszokott mdon lehet olvasni, viszont a srlt meghajtrl olvasott adatokat folyamatosan javtani kell a tbbirl szrmaz segdinformcik szerint.

21.5. A Vinum objektumai


A trgyalt problmk orvoslsra a Vinumban egy ngyszint objektumhierarchit alaktottak ki:

A legjobban szlelhet objektum a virtulis lemez, amelyet ktetnek (volume) neveznk. Ez a ktet lnyegben ugyanazokkal a tulajdonsgokkal rendelkezik, mint egy UNIX-os lemezmeghajt, habr akadnak nomabb klnbsgek. Mrete korltlan lehet. A ktetek erekbl (plex) llnak, melyek a ktet teljes terlett kpviselik. Ennlfogva a hierarchia ezen szintje nyjtja a redundancit. Az ereket legegyszerbben a tkrztt tmbben helyet foglal lemezekknt tudjuk elkpzelni, melyek ugyanazt az adatot tartalmazzk. Mivel a Vinum a UNIX lemezes trolst megvalst alrendszerben helyezkedik el, a tbblemezes erek felptshez hasznlhatnnk a UNIX-os partcikat, azonban ehhez a feladathoz nem elgg rugalmasak, mivel a UNIX-os lemezek csak korltozott szm partcit tartalmazhatnak. A Vinum ehelyett allemeznek (subdisk) nevezett folytonos terletekre osztja fel az egyes UNIX-os partcikat (a meghajtkat), melyeket aztn az erek ltrehozsra hasznl fel. A Vinum ltal ltrehozott meghajtkon (drive) lev allemezek lesznek valdi UNIX-os partcik. A Vinum-meghajtk tetszleges szm allemezt tartalmazhatnak. Eltekintve a meghajt elejn tallhat apr terlettl, melyen a belltsokra s az llapotra vonatkoz informcik troldnak, az egsz meghajt felhasznlhat adatok trolsra.

A most kvetkez szakaszokban ismertetjk, hogy ezek az objektumok milyen mdon szolgltatjk a Vinum rszrl elvrt funkcikat.

21.5.1. A ktetek mrete


Az erek kpesek a Vinum kongurcijban tallhat tbb klnbz meghajtn elhelyezked allemezeket is nyalbba ktni. Ennek kvetkezmnyekppen az egyes meghajtk mrete nem korltozza az erek mrett, emiatt a ktett sem.

21.5.2. Redundns adattrols


A Vinum a tkrzst tbb r egyetlen ktett olvasztsval hozza ltre. Az erek mindegyike a kteten tallhat adatokat kpviseli. Egy ktet legalbb egy, legfeljebb nyolc eret tartalmazhat. Habr egy r egy ktet teljes adatt brzolja, elfordulhat olyan eset, hogy bizonyos rszei hinyoznak zikai, kialaktsi (nem trstottunk allemezeket hozzjuk) okokbl addan vagy vletlenl (a hozztartoz lemezterletek srltek). Amg legalbb egy r kpes a ktet teljes tartalmt szolgltatni, addig a ktet teljesen pnek tekinthet.

21.5.3. Teljestmny
A Vinum az sszefzst s a cskozst is egyarnt megvalstja az erek szintjn:

550

Fejezet 21. A Vinum ktetkezel


Az sszefztt r allemezek terleteibl ptkezik. A cskozott r felosztja az adatokat az allemezek kztt. Az allemezek mindegyiknek ugyanakkornak kell lennie, s legalbb kt allemeznek lennie kell, hogy eltrjen az sszefztt rtl.

21.5.4. Hogyan szervezzk az ereket?


A FreeBSD 8.0 verzijban kt fajta erezsi megoldst tallhatunk:

Az sszefztt erek a legrugalmasabbak: tetszleges szm allemezt tartalmazhatnak, az allemezek mrete pedig eltrhet. Az r jabb allemezek hozzadsval tovbb bvthet. Kevesebb processzoridt ignyel, mint egy cskozott r, habr a kett tbbletkltsge kzti eltrs nem mrhet. Msrszrl azonban nagyon rzkenyek a forgalmasabb pontokra, vagyis amikor az egyik lemez folyamatosan hasznlatban van, mikzben a tbbi resen jr. A cskozott (RAID-0) erek legnagyobb elnye, hogy cskkentik a forgalmasabb pontok kialakulst: a megfelel mret cskszlessg (ami kb. 256 kB) vlasztsval el tudjuk egyengetni a tmbben dolgoz meghajtk terhelst. Ennek a megkzeltsnek a htrnya (rszben) a sokkal sszetettebb kd, valamint az allemezekre vonatkoz megszorts, amely szerint meg kell egyeznik a mretknek, illetve az rhez annyira bonyolult jabb allemezeket kapcsolni, hogy a Vinum jelenleg nem is kpes r. Ezeken kv a Vinum mg tmaszt egy trivilis ignyt is: a cskozott rben legalbb kt allemeznek lennie kell, mivel mskpp nem tr el egy sszefztt rtl.

A 21-1 Tblzat foglalja ssze az egyes erezsek elnyeit s htrnyait. Tblzat 21-1. Vinum erezsek Erezs tpusa sszefztt Legkevesebb allemez 1 Bvthet igen Megegyez mret Alkalmazs nem Sok adat trolsa, ahol a hangsly a rugalmassgon s a mrskelt teljestmnyen van. Nagy teljestmny, nagy mennyisg egyidej hozzfrs mellett

cskozott

nem

igen

21.6. Pldk
A Vinum a rendszerben ismert objektumokkal kapcsolatos informcikat egy kongurcis adatbzisban tartja fenn. Kezdetben a felhasznl egy vagy tbb kongurcis llomny segtsgvel hozza ltre ezt az adatbzist a gvinum(8) segdprogrammal. A Vinum ezt a kongurcis adatbzist bemsolja mindegyik irnytsa alatt ll slice-ba (melyek a Vinum eszkznek hv). Az adatbzis minden egyes llapotvlts folyamn frissl, gy egy jraindts utn minden egyes Vinum-objektum llapota pontosan helyrelltdik.

551

Fejezet 21. A Vinum ktetkezel

21.6.1. A kongurcis llomny


A kongurcis llomny rja le az egyes objektumokat. Egy egyszerbb ktet dencija gy nzhet ki:
drive a device /dev/da3h volume myvol plex org concat sd length 512m drive a

Ez az llomny ngy Vinum-objektumot denil:

A drive kezdet sor adja meg a lemez partcijt (meghajtjt) s a hardveren lev elhelyezkedst. Az a szimbolikus nevet kapta. A szimbolikus s a konkrt eszkznevek sztvlasztsval lehetv vlik, hogy a lemezek flrertsek nlkl tkerlhessek egyik helyrl a msikra. A volume kezdet sor adja meg a ktetet. Itt az egyetlen szksges jellemz a nv, ami ebben az esetben a myvol. A plex kezdet sor adja meg az eret. Itt az egyetlen szksges paramter a szervezsi md, ami ebben az esetben a concat (sszefztt). Nevet nem kell megadnunk, mivel a rendszer automatikusan ltrehoz egy nevet a ktet nevbl a .px uttag hozzadsval, ahol az x az r szma lesz a kteten bell. Emiatt a most denilt r neve myvol.p0 lesz. Az sd kezdet sor adja meg az allemezt. Itt legalbb meg kell adnunk a meghajtnak a nevt, ahol trolni akarjuk, ill. a mrett. Ahogy mr emltettk az ereknl is, nevet nem ktelez megadnunk, mivel a rendszer magtl rendel hozz nevet, amit a hozztartoz r nevbl szrmaztat, hozzadja a .sx uttagot, ahol az x az allemez ren belli sorszma lesz. Ennek kvetkeztben a Vinum ennek az allemeznek a myvol.p0.s0 nevet adja.

Miutn a gvinum(8) feldolgozta ezt az llomnyt, az albbi kimenetet fogja adni:


# gvinum -> create config1

Configuration summary Drives: 1 (4 configured) Volumes: 1 (4 configured) Plexes: 1 (8 configured) Subdisks: 1 (16 configured) D a V myvol P myvol.p0 S myvol.p0.s0 State: up State: up C State: up State: up Device /dev/da3h Plexes: Subdisks: PO: 0 1 Size: 1 Size: B Size: Avail: 2061/2573 MB (80%) 512 MB 512 MB 512 MB

Ez a kimenet a gvinum(8) egyszer listzsi formtumt mutatja. Grakusan a 21-4 bra mutatja be.

552

Fejezet 21. A Vinum ktetkezel bra 21-4. Egyszer Vinum-ktet

0 MB

a ktet cmtere

Allemez
myvol.p0.s0

512 MB

1. r
myvol.p0

Ezen s az ezt kvet brn egy ktetet lthatunk, amely ereket tartalmaz, amelyek pedig allemezeket. Ebben az alapvet pldban a ktet egyetlen eret tartalmaz, amiben pedig egyetlen allemez van. Az itt bemutatott ktetnek nincs semmilyen elnye a hagyomnyos lemezpartcionlshoz kpest. Egyetlen eret tartalmaz, teht nem is redundns. Az r egyetlen allemezt tartalmaz, teht nem tr el a megszokott lemezpartcik helyfoglalstl sem. A kvetkez szakaszokban sokkal rdekesebb kongurcis mdszereket is illusztrlunk.

21.6.2. Megnvelt rugalmassg: tkrzs


A ktetek rugalmassga tkrzssel nvelhet. Egy tkrztt ktet kiosztsa sorn felttlenl gondoskodnunk kell arrl, hogy az egyes erekhez tartoz allemezek eltr meghajtkon tallhatak, gy az esetleges meghibsodsok nem krostjk mind a kt eret. Az albbi kongurciban egy ktetet tkrznk:
drive b device /dev/da4h volume mirror plex org concat

553

Fejezet 21. A Vinum ktetkezel


sd length 512m drive a plex org concat sd length 512m drive b

Ebben a pldban mr nem kellett jra megadnunk az a meghajtt, mivel a Vinum gyelemmel ksri az sszes objektumot a sajt kongurcis adatbzisban. A denci feldolgozsa utn a kongurci gy fog kinzni:
Drives: Volumes: Plexes: Subdisks: D a D b V myvol V mirror P myvol.p0 P mirror.p0 P mirror.p1 S myvol.p0.s0 S mirror.p0.s0 S mirror.p1.s0 2 2 3 3 (4 configured) (4 configured) (8 configured) (16 configured) State: up State: up State: up State: up Device /dev/da3h Device /dev/da4h Plexes: Plexes: Avail: 1549/2573 MB (60%) Avail: 2061/2573 MB (80%) 1 Size: 2 Size: 512 MB 512 MB

C State: up Subdisks: 1 Size: 512 MB C State: up Subdisks: 1 Size: 512 MB C State: initializing Subdisks: 1 Size: State: up State: up State: empty PO: PO: PO: 0 0 0 B Size: B Size: B Size: 512 MB 512 MB 512 MB

512 MB

A 21-5 bra ugyanezt a szerkezetet grakusan is.

554

Fejezet 21. A Vinum ktetkezel bra 21-5. Tkrztt Vinum-ktet

0 MB

a ktet cmtere

1. allemez
mirror.p0.s0

2. allemez
mirror.p1.s0

512 MB

1. r
mirror.p0

2. r
mirror.p1

Ebben a pldban minden r tartalmazza a teljes 512 MB-os terletet. Ahogy a korbbi plda esetn, itt is mindegyik r csak egyetlen allemezt tartalmaz.

21.6.3. A teljestmny javtsa


Az elbbi pldban szerepl tkrztt ktet egy tkrzetlen ktetnl mr jobban ellenll a hibknak, azonban a teljestmnye is kisebb. A kteten minden egyes rs mind a kt meghajtra rvnyesl, ezltal a lemezek teljes svszlessgt nagyobb arnyban hasznlja. A teljestmnyre vonatkoz megfontolsaink egy msik megkzeltst kvnnak meg: a tkrzs helyett inkbb cskozzuk szt az adatot a lehet legtbb lemezen. Az albbi kongurci egy olyan ktetet mutat be, ahol egy eret ngy lemezmeghajtan keresztl cskozunk:
drive c device /dev/da5h drive d device /dev/da6h volume stripe plex org striped 512k sd length 128m drive a

555

Fejezet 21. A Vinum ktetkezel


sd length 128m drive b sd length 128m drive c sd length 128m drive d

Mint ahogy azt mr korbban is emltettk, nem szksges mg egyszer megadni azokat a meghajtkat, amiket a Vinum mr ismer. A denci feldolgozsa utn a kongurcink nagyjbl gy nz ki:
Drives: Volumes: Plexes: Subdisks: D D D D a b c d 4 3 4 7 (4 configured) (4 configured) (8 configured) (16 configured) State: State: State: State: up up up up Device Device Device Device Plexes: Plexes: Plexes: /dev/da3h /dev/da4h /dev/da5h /dev/da6h 1 Size: 2 Size: 1 Size: Avail: Avail: Avail: Avail: 1421/2573 1933/2573 2445/2573 2445/2573 MB MB MB MB (55%) (75%) (95%) (95%)

V myvol V mirror V striped P P P P S S S S S S S myvol.p0 mirror.p0 mirror.p1 striped.p1 myvol.p0.s0 mirror.p0.s0 mirror.p1.s0 striped.p0.s0 striped.p0.s1 striped.p0.s2 striped.p0.s3

State: up State: up State: up

512 MB 512 MB 512 MB

C State: up Subdisks: 1 Size: 512 MB C State: up Subdisks: 1 Size: 512 MB C State: initializing Subdisks: 1 Size: State: up Subdisks: 1 Size: 512 MB State: State: State: State: State: State: State: up up empty up up up up PO: PO: PO: PO: PO: PO: PO: 0 B Size: 0 B Size: 0 B Size: 0 B Size: 512 kB Size: 1024 kB Size: 1536 kB Size: 512 512 512 128 128 128 128 MB MB MB MB MB MB MB

512 MB

556

Fejezet 21. A Vinum ktetkezel bra 21-6. Cskozott Vinum-ktet

0 MB striped.p0.s0

a ktet striped.p0.s1 cmtere

striped.p0.s2

striped.p0.s3 512 MB

1. r
striped.p0

Ez a ktet a 21-6 braban lthat. A cskok sttedse jelzi a helyket az r terletben: a vilgosabbak ell, a sttebbek htul szerepelnek.

21.6.4. Rugalmassg s teljestmny


Megfelel hardver birtokban lehet olyan kteteket is pteni, amelyek mind megnvelt rugalmassgot, mind pedig megnvelt teljestmnyt mutatnak a szabvnyos UNIX-os partcikhoz kpest. Ennek a kongurcis llomnya gy nzne ki:
volume raid10 plex org striped 512k sd length 102480k drive sd length 102480k drive sd length 102480k drive sd length 102480k drive sd length 102480k drive

a b c d e

557

Fejezet 21. A Vinum ktetkezel


plex sd sd sd sd sd org striped 512k length 102480k drive length 102480k drive length 102480k drive length 102480k drive length 102480k drive

c d e a b

A msodik r allemezei el vannak tolva az els r allemezeitl kt meghajtnyival. Ez segt megelzni, hogy az rsi mveletek ne ugyanarra az allemezre vonatkozznak, mg akkor is, ha az adattvitel kt meghajtn is keresztlvel. A 21-7 bra illusztrlja ennek a ktetnek a szerkezett. bra 21-7. Tkrztt, cskozott Vinum-ktet

.p0.s0

.p1.s0

.p0.s1

.p1.s1

.p0.s2

.p1.s2

.p0.s3

.p1.s3

.p0.s4

.p1.s4

1. r
striped.p0

2. r
striped.p1

558

Fejezet 21. A Vinum ktetkezel

21.7. Az objektumok elnevezse


Korbban mr megismerhettk, hogy a Vinum alaprtelmezett neveket trst az erekhez s az allemezekhez, habr ezek a nevek fellbrlhatak. Ez viszont egyltaln nem ajnlott, mivel mr a VERITAS ktetkezel, ahol tetszleges neveket rendelhetnk az objektumokhoz, hasznlata sorn kiderlt, hogy akkora mrtk rugalmassgot nem knl fel, mint amennyi zavart kpes okozni. A nevek tartalmazhatnak brmilyen nem res karaktert, azonban rdemes inkbb csak betket, szmjegyeket s az alhzst hasznlni. A ktetek, erek s allemezek nevei akr 64 karakteresek is lehetnek, a meghajtk nevei pedig 32 karakteresek. A Vinum objektumai a /dev/gvinum knyvtron belli hierarchiban helyezkednek el eszkzlerkknt. Az imnt emltett pldakongurci hatsra a kvetkez eszkzlerk jnnek ltre:

Megjegyzs: Ez a rsz csak a Vinum korbbi, elavult implementcijra vonatkozik.

A /dev/vinum/control s /dev/vinum/controld nev vezrleszkzk, melyeket a gvinum(8) s a Vinum dmon hasznl.

Mindegyik ktethez egy eszkzler tartozik. Ezek a Vinum szmra a kzponti eszkzk, ezrt az elbbi kongurci rvn megjelennek a /dev/gvinum/myvol, /dev/gvinum/mirror, /dev/gvinum/striped, /dev/gvinum/raid5 s /dev/gvinum/raid10 eszkzk.

Megjegyzs: Ez a rsz csak a Vinum korbbi, elavult implementcijra vonatkozik.

Az egyes meghajtkhoz tartoz lerk a /dev/vinum/drive knyvtrban tallhatak. Ezek valjban szimbolikus linkek a megfelel lemezes eszkzkre.

Minden ktethez kzvetlen lerk tartoznak /dev/gvinum knyvtrban. Az egyes erek s allemezek eszkzleri a /dev/gvinum/plex s /dev/gvinum/sd knyvtrakban jelennek meg.

Pldul tekintsk most az albbi kongurcis llomnyt:


drive drive1 device /dev/sd1h drive drive2 device /dev/sd2h drive drive3 device /dev/sd3h drive drive4 device /dev/sd4h volume s64 setupstate plex org striped 64k sd length 100m drive drive1 sd length 100m drive drive2 sd length 100m drive drive3

559

Fejezet 21. A Vinum ktetkezel


sd length 100m drive drive4

Az llomny feldolgozsa utn az eszkzlerkat a gvinum(8) az albbi mdon szervezi a /dev/gvinum knyvtrban:
drwxr-xr-x crwxr-xr-drwxr-xr-x 2 root 1 root 2 root wheel wheel wheel 512 Apr 13 16:46 plex 2 Apr 13 16:46 s64 512 Apr 13 16:46 sd

91,

/dev/vinum/plex: total 0 crwxr-xr-- 1 root /dev/vinum/sd: total 0 crwxr-xr-- 1 root crwxr-xr-- 1 root crwxr-xr-- 1 root crwxr-xr-- 1 root

wheel

25, 0x10000002 Apr 13 16:46 s64.p0

wheel wheel wheel wheel

91, 91, 91, 91,

0x20000002 0x20100002 0x20200002 0x20300002

Apr Apr Apr Apr

13 13 13 13

16:46 16:46 16:46 16:46

s64.p0.s0 s64.p0.s1 s64.p0.s2 s64.p0.s3

Jllehet, az ereket s allemezeket nem ajnlott kln-kln elnevezni, a Vinum meghajtknak nevet kell adni. Ezzel megoldhatv vlik, hogy az egyes meghajtk automatikusan felismerhetek legyenek abban az esetben is, amikor zikailag thelyezzk ezeket. A meghajtk nevei legfeljebb 32 karakteresek lehetnek.

21.7.1. llomnyrendszerek ltrehozsa


A ktetek egyetlen kivtellel teljesen azonosak a lemezekkel a rendszer szmra. Ugyanis a UNIX-os meghajtktl eltren a Vinum nem particionlja a kteteket, s ezrt nem is trolnak partcis tblt. Ez megkvetelte nhny lemezkezel segdprogram, leginkbb a newfs(8) mdostst, mivel azok korbban megprbltk a Vinum-ktetek nevnek utols betit egy partci azonostjaknt rtelmezni. Pldul egy lemezes meghajt neve /dev/ad0a vagy /dev/da2h alak. Az elbbi az els (0) IDE lemez els (a) partcijt, mg az utbbi a harmadik (2) SCSI lemez nyolcadik (h) partcijt jelli. Ezzel szemben azonban a Vinum-ktetek neve /dev/gvinum/concat alak lesz, ahol a nv semmilyen kapcsolatban nem ll a partci nevvel. Htkznapi esetben a newfs(8) megprblja a lemez nevt rtelmezni, s panaszkodik, ha nem sikerl. Pldul:
# newfs /dev/gvinum/concat

newfs: /dev/gvinum/concat: cant figure out file system partition

A kteten a newfs(8) parancs kiadsval tudunk llomnyrendszert ltrehozni:


# newfs /dev/gvinum/concat

Megjegyzs: A FreeBSD 5.0 eltt verziiban a newfs(8) parancsnak a rgi elnevezsi sma hasznlata mellett mg t kell adni egy -v kapcsolt is:
# newfs -v /dev/vinum/concat

560

Fejezet 21. A Vinum ktetkezel

21.8. A Vinum belltsa


A GENERIC rendszermag nem tartalmazza a Vinumot. Habr kszteni lehet olyan rendszermagot, amelyik tmogatja a Vinumot, mgsem ajnlott. A Vinumot a szabvnyos mdon modulknt (kld) indthatjuk el. Mg a kldload(8) hasznlatra sincs szksg, mivel a gvinum(8) indulsa sorn ellenrzi a modul jelenltt s betlti, ha mg nem lenne jelen.

21.8.1. Indts
A Vinum alapveten ugyangy trolja a kongurcikat a slice-okban, mint maguk a kongurcis llomnyok. A kongurcis adatbzis beolvassa sorn a Vinum felismeri azokat a kulcsszavakat, amelyeknek nem szabad elfordulniuk az llomnyokban. Pldul a lemezek belltsa tartalmazhatja a kvetkez szveget:
volume myvol state up volume bigraid state down plex name myvol.p0 state up org concat vol myvol plex name myvol.p1 state up org concat vol myvol plex name myvol.p2 state init org striped 512b vol myvol plex name bigraid.p0 state initializing org raid5 512b vol bigraid sd name myvol.p0.s0 drive a plex myvol.p0 state up len 1048576b driveoffset 265b plexoffset 0b sd name myvol.p0.s1 drive b plex myvol.p0 state up len 1048576b driveoffset 265b plexoffset 1048576b sd name myvol.p1.s0 drive c plex myvol.p1 state up len 1048576b driveoffset 265b plexoffset 0b sd name myvol.p1.s1 drive d plex myvol.p1 state up len 1048576b driveoffset 265b plexoffset 1048576b sd name myvol.p2.s0 drive a plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 0b sd name myvol.p2.s1 drive b plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 524288b sd name myvol.p2.s2 drive c plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 1048576b sd name myvol.p2.s3 drive d plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 1572864b sd name bigraid.p0.s0 drive a plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset sd name bigraid.p0.s1 drive b plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset sd name bigraid.p0.s2 drive c plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset sd name bigraid.p0.s3 drive d plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset sd name bigraid.p0.s4 drive e plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset

0b 4194304b 8388608b 12582912b 16777216b

Az elbbiektl nyilvnvalan eltr abban, hogy itt mr megjelennek a konkrt pozcikra s elnevezsekre vonatkoz informcik (melyeket a felhasznl is megadhat, azonban ezt nem tancsoljuk), valamint az llapotok (ezeket nem lthatja a felhasznl). A Vinum a kongurciban nem trolja a meghajtkat, helyette a belltott lemezes meghajtk partciin fog Vinum-cmkket keresni. Ennek ksznheten a Vinum mg akkor is kpes pontosan megtallni a meghajtkat, amikor megvltoznak a hozztartoz UNIX-os meghajtk azonosti.

21.8.1.1. Automatikus indts


Megjegyzs: Ez a rsz csak a Vinum elavult implementcijra vonatkozik. A loader.conf(5) kzvettsvel a Gvinum mindig automatikusan elindul a hozztartoz modul betltsvel egytt. Ha a rendszerindtskor be akarjuk tlteni a Gvinum modult, akkor a /boot/loader.conf llomnyba vegyk fel a geom_vinum_load="YES" sort.

Az albbi sort mindenkppen hozz kell adnunk az /etc/rc.conf llomnyhoz, hogy a Vinum a rendszerindts sorn automatikusan elinduljon:
start_vinum="YES" # lltsuk YES-re az indtshoz

Hozzuk ltre s rjuk bele, ha nem lenne /etc/rc.conf nev llomnyunk. Ennek hatsra a rendszer az induls sorn betlti a Vinum kld modult, s a kongurciban szerepl objektumokat elindtja. Ez mg az llomnyrendszerek csatlakoztatsa eltt trtnik meg, aminek rvn a Vinum-kteteken tallhat llomnyrendszereket a rendszer automatikusan t tudja vizsglni az fsck(8) segtsgvel, majd csatlakoztatja ezeket.

561

Fejezet 21. A Vinum ktetkezel Amikor a Vinumot a vinum start paranccsal indtjuk el, a Vinum beolvassa a kongurcis adatbzist a Vinum-meghajtk egyikrl. Norml krlmnyek kztt mindegyik meghajtn megtallhat a kongurcis adatbzis egy pldnya, ezrt szinte teljesen mindegy, melyik meghajtt is olvassa. Egy rendszer-sszeomls utn azonban a Vinumnak meg kell tudnia llaptania, melyik meghajtn tallhat meg az adatbzis legfrissebb pldnya, s ezt kell beolvasnia. Ezutn a lemaradt meghajtkon tallhat adatbzispldnyokat szinkronizlja ehhez a vltozathoz.

21.9. Rendszerindts Vinum-ktetrl


Olyan szmtgpeknl, ahol a teljesen tkrztt Vinum-alap llomnyrendszereket hasznlunk, kvnatos lehet magt a rendszerindtshoz hasznlt llomnyrendszert is tkrzni. Egy ilyen kongurci sszelltsa mr messze nem annyira egyszer, mint egy tetszleges llomnyrendszer esetn, mivel:

Az indtshoz hasznlt llomnyrendszernek mr a folyamat nagyon korai szakaszban rendelkezsre kell llnia, ezrt a Vinumnak mr itt elrhetnek kell lennie. A rendszerindt llomnyrendszert tartalmaz kteten mg ott kell lennie a rendszerindt kdnak s a rendszermagnak is, melyeket a rendszer sajt eszkzein (pldul ilyen a BIOS a PC-knl) keresztl kell tudnunk beolvasni, amiket viszont nem tudunk felkszteni a Vinumra.

A soronkvetkez szakaszokban rendszerindt ktetknt (root volume) fogunk ltalnossgban vve hivatkozni a rendszerindtshoz hasznlt llomnyrendszert tartalmaz Vinum-ktetre. Ennek megfelelen valsznleg j tlet a "root" nvvel azonostani ezt a ktetet, habr technikai szempontbl ezt semmi nem kveteli meg. Az itt felsorakoz pldkban azonban ezt a nevet fogjuk hasznlni.

21.9.1. A Vinum kellen korai indtsa


Ennek kivltshoz szmos lpst kell megtennnk:

A rendszermagnak mr el kell rnie a Vinumot a rendszerindts sorn. Emiatt a 21.8.1.1 Szakaszban lert automatikus indtsi mdszer nem alkalmazhat erre a feladatra, s a start_vinum paramtert nem is szabad hasznlni a most ismertetend kongurciban. A Vinumot statikusan bele is pthetjk a rendszermagba s gy llandan elrhet, de ez ltalban nem kielgt megolds. Megoldhatjuk gy is, ha a /boot/loader-re (12.3.3 Szakasz) bzzuk a vinum modul betltst, mg a rendszermag eltt. Ezt az albbi sorral vlthatjuk ki a /boot/loader.conf llomnyban:
geom_vinum_load="YES"

Megjegyzs: A Gvinum hasznlata sorn az sszes tbbi bellts automatikusan vgrehajtdik, amint a modul betltdik, ezrt ilyenkor csak a fentebb lert eljrsra van szksg. Az itt felsoroltak csak az elavult Vinum implementcira vonatkoznak, csupn a rgebbi tpus rendszerek kedvrt emltjk meg.

562

Fejezet 21. A Vinum ktetkezel A Vinumot nagyon korn letre kell keltennk, hiszen a rendszerindtshoz hasznlt llomnyrendszert tartalmaz ktetet kell lestennk. Alaprtelmezs szerint a Vinum rendszerszinten fut rsze nem keres addig semmilyen Vinum-ktetinformcival rendelkez meghajtt, amg a rendszergazda (vagy valamelyik rendszerindt szkript) ki nem adja a vinum start parancsot.
Megjegyzs: A most kvetkez bekezdsek mutatjk be a szksges lpseket.

Ha hozzadjuk a kvetkez sort a /boot/loader.conf llomnyhoz, akkor azzal utasthatjuk a Vinumot, hogy a rendszermag indtsa sorn vizsglja t az sszes meghajtt:
vinum.autostart="YES"

Nem szksges megmondani a rendszermagnak, merre keresse a rendszerindtshoz hasznlt llomnyrendszert. A /boot/loader megkeresi a hozztartoz eszkzt a /etc/fstab llomnyban s tadja ezt az informcit a rendszermagnak. Amikor a csatlakoztatsra kerl sor, a rendszermag az eszkz nevbl meg tudja llaptani, melyik eszkzmeghajtt krje meg a bels (f- s al)eszkzazonost lekpzshez.

21.9.2. A Vinum-alap rendszerindt ktet elrse a rendszertlts sorn


Mivel a jelenlegi FreeBSD rendszertlt csak 7,5 KB mret s egybknt is csak az UFS llomnyrendszerrl tud llomnyokat beolvasni (mint pldul a /boot/loadert), teljesen lehetetlen mg a Vinum bels szerkezetre is megtantani, teht a Vinum-kongurcik rtelmezsre s magnak a rendszerindt ktet elemeinek kielemzsre. Ezrt be kell vetnnk nhny trkkt ahhoz, hogy a rendszerindt kd szmra a rendszerindtshoz hasznlhat szabvnyos "a" partci kpzett keltsk. Mindez csak akkor vlik elrhetv, ha az albbi kvetelmnyeket teljesti a rendszerindt ktet:

Nem lehet cskozott vagy RAID-5 tpus. Erenknt nem tartalmazhat egynl tbb sszefztt allemezt.

Lthatjuk, hogy hasznos s lehetsges is tbb eret hasznlni, melyek mindegyike a rendszerindt llomnyrendszer egy-egy msolatt tartalmazza. Az induls folyamn azonban ezen pldnyok kzl csak az egyiken fogja keresni a rendszer a rendszertltt s a tbbi llomnyt egszen addig, amg a rendszermag magt az llomnyrendszert nem csatlakoztatja. A ltszat kedvrt az ereken bell tallhat allemezek mindegyiknek lennie kell egy sajt "a" partcijnak, amivel lnyegben alkalmass vlik a rendszerindtsra. Ezeknek a hamis "a" partciknak nem kell felttlenl a tbbiekkel megegyez pozcikon elhelyezkednik, azonban a tvedsek elkerlse rdekben valsznleg hasznos olyan Vinum-kteteket ltrehozni, ahol a keletkez tkrztt eszkzk szimmetrikusak. A rendszerindt ktet egyes eszkzkn tallhat "a" partciit az albbiak segtsgvel llthatjuk be: 1. A rendszerindt ktet rszeknt megjelen eszkzn tallhat allemez helyt (az eszkz elejtl szmtott eltolst) s mrett ellenrizni kell az albbi parancs segtsgvel:
# gvinum l -rv root

Ne felejtsk el, hogy a Vinum az eltolsokat s mreteket byte-okban mri. Ezekbl teht gy nyernk a bsdlabel hasznlathoz szksges blokkszmokat, ha ezeket elosztjuk 512-vel. 2. Futassuk le a

563

Fejezet 21. A Vinum ktetkezel


# bsdlabel -e eszkznv

parancsot minden olyan eszkzn, amelyik rszt vesz a rendszerindt ktet kialaktsban. Az eszkznv legyen a slice (fdisk)-tblt nem tartalmaz lemezek esetn a lemez neve (mint pldul da0), vagy ellenkez esetben a slice neve (pldul ad0s1). Ha mr lenne egy "a" partci az eszkzn (valsznleg egy Vinum eltti rendszerndt llomnyrendszert tartalmaz), nevezzk t valami msra s gy tovbbra is elrhet marad (biztos, ami biztos), viszont tbb mr nem lesz a rendszer szmra alaprtelmezett rendszerindt eszkz. Az aktv partcik (mint pldul az ppen csatlakoztatott rendszerindt llomnyrendszer) nem nevezhetek t, ezrt ezt a lpst csak akkor tudjuk megtenni, ha a rendszernket egy Fixit (Helyrellt) eszkzrl indtjuk, vagy egy olyan ktlpses folyamat sorn, ahol (tkrzs esetn) a lemezrl mg nem indtottuk el a rendszert. Ezt kveten az eszkzn tallhat Vinum-partcit (amennyiben ltezik) az eszkzn lev allemez eltolshoz kell helyezni. Ennek eredmnye lesz az j "a" partci "offset" rtke. A partci "size" (mret) rtke sz szerint temelhet a fenti szmtsbl. Az "fstype" legyen 4.2BSD. Az "fsize", "bsize" s "cpg" rtkeket a jelenlegi llomnyrendszerhez mrten ajnlott megvlasztani, azonban itt most egyltaln nem brnak jelentsggel. Ezzel a mdszerrel ltestettnk egy olyan j "a" partcit, amely lefedi az eszkzn tallhat Vinum-partcit. Jegyezzk meg, hogy a bsdlabel kizrolag csak abban az esetben fogja megengedi ezt az tfedst, ha a Vinum-partcink "vinum" tpussal van megjellve. 3. Kszen is vagyunk! Most mr van minden eszkzn egy hamistott "a" partcink, amelyeken megtallhat a rendszerindt ktet egy-egy msolata. Hatrozottan ajnlott mg egyszer ellenrizni a munknkat az albbi parancs kiadsval:
# fsck -n /dev/eszkznv a

Figyeljnk arra, hogy az sszes vezrlsi informcit tartalmaz llomnynak a Vinum-kteten tallhat rendszerindt llomnyrendszerre kell vonatkoznia, ami viszont egy j Vinum rendszerindt ktet belltsa utn nem felttlenl egyezik meg a jelenlegi aktv llomnyrendszerrel. Klnsen az /etc/fstab s /boot/loader.conf llomnyokat kell ilyen szempontbl ellenriznnk. A kvetkez indts sorn a rendszertlt mr az j Vinum-alap rendszerindt llomnyrendszerrl fogja sszeszedni a mkdshez szksges adatokat s ezeknek megfelelen cselekedni. Vgl, a rendszermag inicializlja utn, mikor az sszes eszkzt felismerte, egy ehhez hasonl feltn zenet fogja jelezni a bellts sikeressgt:
Mounting root from ufs:/dev/gvinum/root

21.9.3. Egy Vinum-alap rendszerindt llomnyrendszer pldja


Miutn sikeresen kongurltuk a rendszerindt Vinum-ktetet, a gvinum l -rv root kimenete nagyjbl gy fog kinzni:
... Subdisk root.p0.s0: Size: 125829120 bytes (120 MB) State: up Plex root.p0 at offset 0 (0 B) Drive disk0 (/dev/da0h) at offset 135680 (132 kB)

564

Fejezet 21. A Vinum ktetkezel

Subdisk root.p1.s0: Size: 125829120 bytes (120 MB) State: up Plex root.p1 at offset 0 (0 B) Drive disk1 (/dev/da1h) at offset 135680 (132 kB)

Itt (a /dev/da0h partcihoz kpesti) 135680-as eltolts rtkekre kell gyelnnk. Ez kpzdik le a bsdlabel fogalmi rendszerben aztn 265 darab 512 byte-os blokkra a lemezen. Ehhez hasonlan a rendszerindt ktet mrete 245 760 darab 512 byte-os blokk lesz. A rendszerindt ktet msodpldnyt tartalmaz /dev/da1h ugyanilyen belltsokkal rendelkezik. Az emltett eszkzk valahogy gy jelennek meg a bsdlabel szerint:
... 8 partitions: # size a: 245760 c: 71771688 h: 71771672

offset 281 0 16

fstype 4.2BSD unused vinum

[fsize bsize bps/cpg] 2048 16384 0 # (Cyl. 0 0 # (Cyl. # (Cyl.

0*- 15*) 0 - 4467*) 0*- 4467*)

Meggyelhet, hogy a hamis "a" partci "size" paramter rtke megegyezik a fentebb becslt rtkkel, mikzben az "offset" paramter rtke egyenl lesz a "h" Vinum-partcin belli eltols s az eszkzn (vagy slice-on) belli eltols sszegvel. Ez jellemzen egy olyan bellts, amivel szksgszeren el tudjuk kerlni a 21.9.4.3 Szakaszban lert hibajelensget. Lthat tovbb az is, hogy az egsz "a" partci vgig az eszkz sszes Vinum adatt tartalmaz "h" partcijban foglal helyet. A pldval kapcsolatban megjegyezzk, hogy itt az egsz eszkzt a Vinum felgyelete al bocstottuk, teht nem marad htra semmilyen Vinum eltt hasznlt rendszerindt partci, hiszen ez egy olyan lemez, amelyet eleve egy Vinum-kongurciba szntunk.

21.9.4. Hibakeress
Fontos tudunk, hogy problma esetn hogyan tudjuk helyrelltani a rendszernket. A kvetkez felsorolsban bemutatunk nhny ismert buktatt s a megoldsaikat.

21.9.4.1. A rendszertlt elindul, de a rendszer viszont mr nem


Ha valamilyen okbl a rendszer nem indulna el, a 10 msodpercig tart visszaszmlls sorn a rendszertltt mg meg tudjuk lltani a szkz lenyomsval. Ekkor a betlt ltal hasznlt vltozk (mint pldul a vinum.autostart) a show segtsgvel megvizsglhatak s a set vagy unset parancsokkal mdosthatak. Ha mindssze az volt a problma, hogy a Vinum modulja nem szerepelt az automatikusan betltend modulok kztt, a load geom_vinum parancs kiadsval betlthetjk azt. Miutn vgeztnk, a rendszerindts folyamata a boot -as paranccsal folytathat. A -as kapcsolk jelzik a rendszermag szmra, hogy krdezzen r a rendszerindt llomnyrendszerre a csatlakoztatsa eltt (-a) s csak egyfelhasznls mdban indtsa a rendszert (-s), ahol a rendszerindt llomnyrendszer rsvdett. gy, ha csak egyetlen eret csatlakoztattunk egy tbberes ktetbl, az erek mg vletlenl sem tudnak egymsnak ellentmond llapotba kerlni.

565

Fejezet 21. A Vinum ktetkezel Amikor megjelenik a csatlakoztatand rendszerindt llomnyrendszert bekrse, brmelyik rvnyes rendszerindtsra alkalmas llomnyrendszer megadhat. Amennyiben az /etc/fstab llomnyt jl belltottuk, az alaprtelmezett rtk egy ufs:/dev/gvinum/root rtkhez hasonl alak lesz. Itt ltalban egy ufs:da0d formtum rtket lthatunk, amely felteheten egy Vinum hasznlata eltti rendszerindt llomnyrendszert tartalmaz partci. Legynk vatosak, ha itt egy olyan "a" partcit adunk meg, amely valjban egy rendszerindt Vinum-eszkz allemezeire hivatkozik, mivel egy tkrztt kongurci esetn csak az eszkz egyik rszt fogjuk csatlakoztatni. Ha a ksbbiekben ezt az llomnyrendszert mr nem csak rsvdett mdban csatlakoztatjuk, mindenkppen el kell tvoltanunk a rendszerindt Vinum-ktetbl a tbbi eret, mivel msklnben nagy valsznsggel eltr adatokat fognak tartalmazni.

21.9.4.2. Csak az elsdleges rendszertlt indul el


Amikor az elsdleges rendszertlt mg elindul, viszont a /boot/loader mr nem tud betltdni (ezt rendszerindts megkezdse utn bal oldalt rgtn megjelen forg vonalbl vehetjk szre), a szkz lenyomsval itt mg tehetnk egy ksrletet a betlts megszaktsra. Ennek hatsra a rendszertlts megll a msodik fzisban, lsd 12.3.2 Szakasz. Itt a rendszerindtshoz megprblhatunk megadni egy msik partcit, pldul egy olyat, amely a korbbi rendszerindt llomnyrendszert tartalmazza s amelyet az elbb tneveztnk az "a"-rl.

21.9.4.3. Semmi sem indul, a rendszertlt hibkat r


Ez a helyzet akkor llhat el, ha a Vinum teleptse sorn tnkretettk volna a rendszertltt. Sajnos a Vinum minden esetben 4 KB helyet hagy szabadon a partci elejn, a sajt fejlc informcijnak rgztse eltt. Az ide kerl els s msodik fzis rendszertltk, illetve a bsdlabel adatai azonban jelenleg 8 KB helyet kvnnak meg. gy ha a Vinum-partci egy rendszerindtsra sznt slice vagy lemez 0. eltolsnl kezddik, a Vinum belltsai fell fogjk rni a rendszertltt. A rendszertlt is ugyangy fellrja a Vinum fejlct s akkor a Vinum nem tallja a lemezeit, ha a fenti problmt orvosolva, pldul egy Fixit (Helyrellt) lemez segtsgvel, jrateleptjk a rendszertltt a 12.3.2 Szakaszban bemutatott bsdlabel -B parancs segtsgvel. Noha a Vinum egyetlen konkrt kongurcis belltsa vagy a ktetekben trolt adat sem srl meg s vissza tudjuk lltani az sszes elveszett informcit ugyannak a Vinum-kongurcinak az jbli megadsval, a helyzetet magt nehz megoldani. A Vinum-fejlc s a rendszertlt tkzsnek megszntetshez ugyanis legalbb 4 KB-tal arrbb kell mozgatnunk az egsz Vinum-partcit.

Megjegyzsek
1. A RAID jelentse: Olcs lemezek hibatr tmbje (Redundant Array of Inexpensive Disks). Klnfle tpus hibatrsi megoldsokat vonultat fel, habr az eredeti elnevezs flrevezet lehet, mivel redundancit nem tartalmaz.

566

Fejezet 22. Virtualizci


rta: Murray Stokely.

22.1. ttekints
A virtualizcis szoftverek lehetv teszik, hogy ugyanazon a szmtgpen egyszerre tbb opercis rendszert is futassunk. Ezeknek a programcsomagoknak gyakorta rszk egy gazda opercis rendszer is, amely a virtualizcis szoftvert futattja s ismer bizonyos vendg opercis rendszereket. A fejezet elolvassa sorn megismerjk:

a gazda- s a vendg opercis rendszerek kzti klnbsgeket; hogyan teleptsnk FreeBSD-t egy Intel-alap Apple Macintosh szmtgpre; hogyan teleptsnk a Xen hasznlatval FreeBSD-t Linux-ra; hogyan teleptsnk a Virtual PC hasznlatval FreeBSD-t Microsoft Windows-ra; hogyan hozzuk ki a legtbbet FreeBSD rendszernkbl virtualizci alatt.

A fejezet elolvasshoz ajnlott:


alapvet UNIX-os s FreeBSD-s ismeretek (3 fejezet); a FreeBSD teleptsnek ismerete (2 fejezet); a hlzati kapcsolatok belltsnak ismerete (31 fejezet); klss alkalmazsok teleptsnek ismerete (4 fejezet).

22.2. A FreeBSD mint vendg


22.2.1. Parallelsszel Mac OS-en
A Parallels Desktop a Mac OS 10.4.6, vagy afeletti verzijt futatt, Intel-alap Apple Mac szemlyi szmtgpekre fejlesztett kereskedelmi alkalmazs. A FreeBSD-t teljes mrtkben tmogatja vendgknt. Miutn teleptettk a Parallels-t a Mac OS X-re, be kell lltanunk egy virtulis gpet, majd erre felraknunk a kvnt vendg opercis rendszert.

22.2.1.1. A FreeBSD teleptse Mac OS X/Parallelsre


A FreeBSD Mac OS X/Parallels prosra teleptshez els lpsknt ksztennk kell egy j virtulis szmtgpet. A ltrehozs sorn vlasszuk a Guest OS Type-nak (a vendg opercis rendszer tpusnak) a FreeBSD-t:

567

Fejezet 22. Virtualizci

Ezutn adjunk meg egy nagyjbl elfogadhat mretet a virtulis merevlemeznknek, valamint annyi memrit, amennyire szksgnk lehet a virtulis FreeBSD-nk hasznlata sorn. Egy 4 GB-os lemez s 512 MB rendszermemria a legtbb esetben j vlasztsnak bizonyulhat a FreeBSD Parallels alatti hasznlata sorn:

568

Fejezet 22. Virtualizci

569

Fejezet 22. Virtualizci

570

Fejezet 22. Virtualizci

571

Fejezet 22. Virtualizci

Vlasszuk ki a hlzatkezels tpust s a hlzati csatolt.

572

Fejezet 22. Virtualizci

573

Fejezet 22. Virtualizci

Mentsk el s fejezzk be a kongurlst.

574

Fejezet 22. Virtualizci

575

Fejezet 22. Virtualizci

Miutn a FreeBSD-s virtulis gpnk elkszlt, teleptennk kell r magt az opercis rendszert is. Ezt a legegyszerbben a hivatalosan FreeBSD telept CD-rl, vagy a hivatalos FTP oldalrl letlthet CD-kppel tehetjk meg. Ha lemsoltuk a megfelel CD-kpet a Mac helyi llomnyrendszerre, vagy behelyeztk a telept CD-t a CD-meghajtba, kattintsunk a FreeBSD-s Parallels ablakunk jobb als sarkban tallhat lemez ikonjra. Ekkor feljn egy prbeszdablak, ahol sszerendelhetjk a virtulis gpnk CD-meghajtjt egy lemezen tallhat kppel, vagy ppen a valdi CD-meghajtnkkal.

576

Fejezet 22. Virtualizci

Ahogy megtettk az imnt emltett sszerendelst, indtsuk is jra a FreeBSD-s virtulis gpnket a megszokott mdon, az jraindts ikonjra kattintva.

577

Fejezet 22. Virtualizci

Ekkor a rendszer megtallja a FreeBSD teleptlemezt s a sysinstall segtsgvel megkezdi a teleptst a 2 fejezetben lertak szerint. Ha szksgnk van r, telepthetjk az X11-et is, de egyelre mg ne prbljuk belltani.

578

Fejezet 22. Virtualizci

A telepts befejezst kveten indtsuk jra a frissen teleptett FreeBSD-s virtulis gpnket.

579

Fejezet 22. Virtualizci

22.2.1.2. A FreeBSD belltsa Mac OS X/Parallelsen


Miutn teleptettk a FreeBSD-t Mac OS X/Parallels-re, mg vr rnk nhny kongurcis lps a rendszer virtulizlt mkdsnek optimalizlsa rdekben. 1. A rendszerbetlt vltozinak belltsa A legfontosabb lps a kern.hz vltoz rtknek cskkentse, amivel gy a FreeBSD processzor-kihasznltsgt is cskkentjk a Parallels alatt. Ezt a kvetkez sor hozzadsval tehetjk meg a /boot/loader.conf llomnyban:
kern.hz=100

Enlkl egy resjratban lev FreeBSD Parallels-vendg az iMac egy processzornak durvn 15%-t foglalja le. A vltoztats letbe lptetse utn azonban ez megkzelten 5%-ra reduklhat. 2. Egy j kongurcis llomny ltrehozsa a rendszermaghoz

580

Fejezet 22. Virtualizci Nyugodtan eltvolthatjuk az sszes SCSI, FireWire s USB eszkzmeghajtt. A Parallels ltal felknlt virtulis hlzati csatolt az ed(4) meghajtn keresztl tudjuk elrni, ezrt az ed(4) s miibus(4) meghajtkon kvl az sszes tbbi elhagyhat. 3. A hlzati kapcsolat belltsa Az alapvet hlzati bellts a virtulis gpnkn a DHCP aktivlsa, aminek segtsgvel csatlakozni tudunk arra a helyi hlzatra, amelyen maga a gazda Mac is megtallhat. Ezt az albbi sor felvtelvel tudjuk megoldani az /etc/rc.conf llomnyba: ifconfig_ed0="DHCP". Bvebb informcikrt jruljunk a 31 fejezet fejezethez.

22.2.2. Virtual PC-vel Windows-on


A Windows-ra fejlesztett Virtual PC a Microsoft egyik szabadon letlthet szoftvertermke. A rendszerkvetelmnyeit bvebben lsd a http://www.microsoft.com/windows/downloads/virtualpc/sysreq.mspx linken. Miutn teleptettk a Microsoft Windows-ra a Virtual PC alkalmazst, be kell lltanunk egy virtulis gpet, majd teleptennk kell r a kvnt vendg opercis rendszert.

22.2.2.1. A FreeBSD teleptse Virtual PC/Microsoft Windows-ra


Amikor a FreeBSD-t a Microsoft Windows s Virtual PC prosra akarjuk telepteni, akkor kezdjnk egy egy j virtulis gp ltrehozsval. Ehhez vlasszuk ki a menbl a Create a virtual machine (Virtulis gp ltrehozsa) pontot.

581

Fejezet 22. Virtualizci

582

Fejezet 22. Virtualizci

Majd vlasszuk az Operating system (Opercis rendszer) belltsnl az Other (Egyb) opcit.

583

Fejezet 22. Virtualizci

Ezutn vlasszuk ki a szndkainknak megfelelen a teleptend FreeBSD pldnyhoz mrt memria s lemezterlet mennyisgt. Ahhoz, hogy a FreeBSD fusson Virtual PC alatt, 4 GB-nyi lemezterlet s 512 MB RAM belltsa a legtbb esetben kivlan megfelel.

584

Fejezet 22. Virtualizci

585

Fejezet 22. Virtualizci

Mentsk el s fejezzk be a kongurcit.

586

Fejezet 22. Virtualizci

Vlasszuk ki a FreeBSD-s virtulis gpnket, majd kattintsunk a Settings (Belltsok) menre s lltsuk be hlzati csatol s hlzatkezels tpust.

587

Fejezet 22. Virtualizci

588

Fejezet 22. Virtualizci

A FreeBSD-nek otthont ad virtulis gpnk ltrehozsa utn teleptennk is kell r a rendszert. Ez legegyszerbben a hivatalos FreeBSD telept CD-vel vagy a hivatalos FTP oldalrl letlthet CD-kppel tehetjk meg. Amikor letltttk a megfelel CD-kpet a helyi Windows-os llomnyrendszernkre vagy behelyeztk a teleptshez hasznlhat CD-t a CD-meghajtnkba, a FreeBSD-s virtulis gpnk elindtshoz kattintsunk r dupln. Ezt kveten a Virtual PC ablakban kattintsunk a CD menre s vlasszuk ki belle a Capture ISO Image... (Lemezkp hasznlata...) pontot. Ennek hatsra megjelenik egy ablak, amiben a virtulis gpnk CD-meghajtihoz tudunk csatlakoztatni lemezkpeket vagy akr ltez CD-meghajtkat.

589

Fejezet 22. Virtualizci

590

Fejezet 22. Virtualizci

Miutn sikeresen belltottuk a telept CD forrst, indtsuk jra a virtulis gpet az Action (Mvelet) menn bell a Reset (jraindts) pont kivlasztsval. gy a Virtual PC jraindtja a virtulis rendszert egy olyan specilis BIOS hasznlatval, amely a normlis BIOS-hoz hasonlan elszr megkeresi az elrhet CD-meghajtkat.

591

Fejezet 22. Virtualizci

Ebben az esetben a FreeBSD telepteszkzt fogja megtallni s megkezdi a 2 fejezetben ismertetett szoksos, sysinstall programra alapul teleptsi eljrst. Ennek sorn az X11-et is feltelepthetjk, habr egyelre mg ne lltsuk be.

592

Fejezet 22. Virtualizci

Ne felejtsk el kivenni a meghajtbl a teleptshez hasznlt CD-t vagy elengedni a megfelel lemezkpet, amikor befejezdtt a telepts. Vgezetl indtsuk ismt jra a frissen teleptett FreeBSD-s virtulis gpnket.

593

Fejezet 22. Virtualizci

22.2.2.2. A FreeBSD belltsa a Microsoft Windows/Virtual PC-n


Miutn a FreeBSD-t minden gond nlkl teleptettk a Microsoft Windows-on fut Virtual PC-re, mg tovbbi belltsi lpseket is meg kell tennnk a rendszer virtualizlt mkdsnek nomhangolshoz. 1. A rendszertlt vltozinak belltsa A legfontosabb teendnk cskkenteni a kern.hz kongurcis bellts rtket, aminek ksznheten vissza tudjuk fogni a Virtual PC alatt fut FreeBSD processzorhasznlatt. Ezt gy tudjuk megtenni, ha a /boot/loader.conf llomnyba felvesszk a kvetkez sort:
kern.hz=100

Enlkl a Virtual PC alatt resjratban fut FreeBSD vendg opercis rendszer egy egyprocesszoros szmtgp idejnek durvn 40%-t foglalja le. A vltoztats utn azonban ez az rtk pusztn kzel 3%-ra

594

Fejezet 22. Virtualizci cskken le. 2. j kongurcis llomny ltrehozsa a rendszermaghoz Nyugodtan eltvolthatjuk a SCSI, FireWire s USB eszkzmeghajtkat. A Virtual PC ltal felajnlott virtulis hlzati csatolt a de(4) meghajtn keresztl tudjuk hasznlni, ezrt a de(4) s miibus(4) eszkzn kvl az sszes tbbi hlzati eszkz tmogatsa kiszedhet a rendszermagbl. 3. A hlzati kapcsolat belltsa A legalapvetbb hlzati bellts csupn annyibl ll, hogy DHCP-n keresztl csatlakoztatjuk a virtulis gpnket ugyanahhoz a helyi hlzathoz, amiben a gazda Microsoft Windows-os gpnk is megtallhat. Ezt gy tudjuk elrni, ha a /etc/rc.conf llomnyba megadjuk a ifconfig_de0="DHCP" sort. A komolyabb hlzati belltsokat a 31 fejezetben tallhatjuk.

22.2.3. VMWare-rel MacOS-en


A Mac-ek szmra fejlesztett VMWare Fusion egy olyan kereskedelmi termk, amit az Intel alap Apple Mac gpekre tudunk telepteni a Mac OS 10.4.9 s ksbbi vltozatain. A FreeBSD itt egy teljesen tmogatott vendg opercis rendszer. Miutn a VMWare Fusion felkerlt a Mac OS X rendszernkre, be kell lltanunk a virtulis gpet s teleptennk r a vendg opercis rendszert.

22.2.3.1. A FreeBSD teleptse a Mac OS X/VMWare-re


Elszr indtsuk el a VMWare Fusion-t, aminek eredmnyekppen betltdik a Virtual Machine Library. Egy j virtulis gpre ltrehozshoz kattintsunk a "New" gombra:

595

Fejezet 22. Virtualizci

Ekkor bejn az j gp sszelltst segt New Virtual Machine Assistant, ahol a tovbblpshez kattintsunk a Continue gombra:

596

Fejezet 22. Virtualizci

Az opercis rendszerek (Operating System) kzl vlasszuk az egyb (Other) kategrit, majd a Version fln a FreeBSD vagy a FreeBSD 64-bit vltozatot attl fggen, hogy 32 bites vagy 64 bites tmogatsra van szksgnk:

597

Fejezet 22. Virtualizci

Adjuk meg a virtulis gp kpnek nevt s a knyvtrat, ahova el akarjuk menteni:

598

Fejezet 22. Virtualizci

Vlasszuk meg a virtulis gphez tartoz virtulis merevlemez mrett is:

599

Fejezet 22. Virtualizci

Mondjuk meg, hogy milyen mdon szeretnnk telepteni a virtulis gpre, ISO formtum lemezkprl vagy CD-rl:

600

Fejezet 22. Virtualizci

Ahogy a Finish felirat gombra kattintunk, a virtulis gp mris elindul:

601

Fejezet 22. Virtualizci

Teleptsk fel a FreeBSD-t a megszokott mdon vagy a 2 fejezet utastsai mentn:

602

Fejezet 22. Virtualizci

Miutn befejezdtt a telepts, mdostsuk a virtulis gp belltsait, pldul a memria mennyisgt:


Megjegyzs: A virtulis gp hardveres belltsai a futsa alatt nem vltoztathatak meg.

603

Fejezet 22. Virtualizci

A virtulis gp ltal hasznlhat processzorok szmt:

604

Fejezet 22. Virtualizci

A CD-meghajt llapott. ltalban lehetsgnk van a virtulis gpet levlasztani a CD-meghajtrl vagy ISO lemezkprl, ha mr nem hasznljuk.

605

Fejezet 22. Virtualizci

A hlzati csatlakozs a virtulis gppel kapcsolatban utolsknt belltand tnyez. Ha a befogad gpen kvl mg ms gpeket is el akarunk rni a virtulis gprl, akkor ehhez mindenkppen a Connect directly to the physical network (Bridged) opcit vlasszuk. Minden ms esetben a Share the hosts internet connection (NAT) az ajnlott, mivel gy a virtulis gp elri az internetet, de a hlzatrl nem lehet azt elrni.

606

Fejezet 22. Virtualizci

Miutn befejeztk a belltsok nomhangolst, indtsuk is el a frissen teleptett FreeBSD-s virtulis gpnket.

22.2.3.2. A FreeBSD belltsa a Mac OS X/VMWare-en


Ahogy a FreeBSD-t sikeresen teleptettk a Mac OS X alatt fut VMWare-re, nhny kongurcis lpst mg meg kell tennnk a virtualizlt rendszer teljestmnyek optimalizlsa rdekben. 1. A rendszertlt vltozinak belltsa A legfontosabb lps taln a kern.hz vltoz rtknek cskkentse, amivel a VMWare alatt fut FreeBSD processzorhasznlatt szorthatjuk vissza. Ezt a kvetkez sor hozzadsval rhetjk el a /boot/loader.conf llomnyban:
kern.hz=100

Enlkl az resjratban zakatol FreeBSD-s VMWare vendg nagyjbl az iMac egyik processzornak 15%-t emszti fel. Ezzel a mdostssal azonban ez lenyomhat kzel 5%-ra.

607

Fejezet 22. Virtualizci 2. j kongurcis llomny ltrehozsa a rendszermaghoz Nyugodtan trlhetjk az sszes FireWire s USB eszkz meghajtjt. A VMWare egy em(4) meghajtn keresztl elrhet virtulis hlzati krtyt biztost, gy az em(4) kivtelvel az sszes hlzati eszkz meghajtjt kivehetjk a rendszermagbl. 3. A hlzat belltsa A legegyszerbb hlzati bellts mindsszesen a DHCP hasznlatt ignyli, aminek rvn a virtulis gpnk a befogad Mac-kel egy helyi hlzatra kerl. Ezt gy tudjuk engedlyezni, ha az /etc/rc.conf llomnyba felvesszk az ifconfig_em0="DHCP" sort. Ha ennl komolyabb hlzati belltsok is rdekelnek minket, akkor olvassuk el a 31 fejezetet.

22.3. A FreeBSD mint gazda


Gazda opercis rendszerknt a FreeBSD vekig nem kapott hivatalosan tmogatst egyetlen elterjedtebb virtualizcis megolds rszrl sem. Sokan erre a clra eddig a VMWare korbbi s inkbb mr elavult, a Linux kompatibilitsi rtegre pl vltozatait (mint pldul emulators/vmware3) hasznltk. Nem sokkal azonban a FreeBSD 7.2 megjelense utn a Sun VirtualBox OSE (Open Source Edition) natv FreeBSD alkalmazsknt bukkant fel a Portgyjtemnyben. A VirtualBox egy folyamatos fejleszts alatt ll, komplett virtualizcis csomag, amely immron elrhet a legtbb npszer opercis rendszerre, mint a Windows, Mac OS, Linux s a FreeBSD. Egyarnt kpes Windows s UNIX fajtj vendgrendszerek futattsra. Nylt- s zrt forrskd vltozatban is elrhet. A felhasznlk szempontjbl a kett kzti taln legfontosabb eltrs, hogy a nylt forrskd vltozat nem tartalmaz USB tmogatst. A klnbsgek teljes listja megtallhat a VirtualBox wiki Editions oldaln, a http://www.virtualbox.org/wiki/Editions cmen. FreeBSD alatt jelenleg csak a nylt forrskd vltozat rhet el.

22.3.1. A VirtualBox teleptse


A VirtualBox a emulators/virtualbox-ose knyvtrbl rhet el portknt, s onnan a kvetkez parancsokkal telepthet:
# cd /usr/ports/emulators/virtualbox-ose # make install clean

A belltsok kzt az egyik leghasznosabb a GuestAdditions nev programcsomag teleptse. A benne tallhat programokon keresztl a vendgknt fut opercis rendszer szmos hasznos szolgltatst el tudjuk rni, gy mint az egrmutat integrcijt (ekkor az egrkurzor zkkenmentesen hasznlhat a gazda s a vendg rendszerben is) vagy a videomemria gyorsabb elrst (klnsen Windows esetben). A vendgekhez telepthet ilyen jelleg kiegsztsek az adott rendszer teleptse utn a Devices menbl rhetek el. A VirtualBox els indtsa eltt el kell mg vgeznnk nhny tovbbi belltst. Fontos tudnunk, hogy a port a telepts sorn a /boot/modules knyvtrba tesz mg egy rendszermagmodult is, amelyet mg kln be kell tltennk:
# kldload vboxdrv

608

Fejezet 22. Virtualizci Ehhez mg vegyk fel a kvetkez sort a /boot/loader.conf llomnyba, gy a modul a rendszer minden egyes indtsakor magtl betltdik:
vboxdrv_load="YES"

A VirtualBox 3.1.2 eltti vltozatai ezenkvl mg ignylik a proc llomnyrendszer csatlakoztatst is. Az jabb vltozatokban erre mr nincs szksg, mivel ezekben helyette mr a sysctl(3) knyvtr fggvnyeit hasznljk. Ha viszont a port valamelyik korbbi vltozatt hasznljuk, akkor kvessk a lentebb szerepl utastsokat s csatlakoztassuk a proc llomnyrendszert:
# mount -t procfs proc /proc

Ha hozzadjuk az albbi sort a /etc/fstab llomnyhoz, akkor ez a bellts is megmarad a rendszer jraindtsa utn:
proc /proc procfs rw 0 0

Megjegyzs: Nagyon valszn, hogy proc llomnyrendszerrel van gondunk, amikor a kvetkez hibazenetet kapjuk a VirtualBox indtsakor:
VirtualBox: supR3HardenedExecDir: couldnt read "", errno=2 cchLink=-1

Ilyenkor a mount parancs kiadsval ellenrizzk az llomnyrendszer sikeres csatlakoztatst.

A VirtualBox teleptse sorn keletkezik mg egy vboxusers nev csoport. Ide azokat a felhasznlkat vegyk fel, akik rszre szeretnnk engedlyezni a VirtualBox hasznlatt. A csoportba j tagokat pldul a pw paranccsal tudunk felvenni:
# pw groupmod vboxusers -m felhasznlnv

Ezek utn a VirtualBox indtshoz vlasszuk a grakus krnyezetnk menjben tallhat Sun VirtualBox menpontot, vagy egy terminlban gpeljk be ezt a parancsot:
% VirtualBox

A VirtualBox belltsnak tovbbi lehetsgeirl a http://www.virtualbox.org/ cmen elrhet hivatalos holnapon olvashatunk. Tekintettel arra, hogy a FreeBSD port mg viszonylag friss s folyamatos fejleszts alatt ll, ehhez mg rdemes tolvasnunk a FreeBSD wikiben szerepl http://wiki.FreeBSD.org/VirtualBox/ oldalt is, ahol a vele kapcsolatos legfrissebb informcikat s egyb tudnivalkat tallhatjuk.

22.3.2. Egyb virtualizcis lehetsgek


A FreeBSD Xen gazdarendszerknt is hamarosan elrhet lesz.

609

Fejezet 23. Honosts: Az I18N/L10N hasznlata s belltsa


rta: Andrey Chernov. tdolgozta: Michael C. Wu.

23.1. ttekints
A FreeBSD felhasznli fldrajzi elhelyezkedsket tekintve mindenhol megtallhatak a vilgon. Ebben a fejezetben ismertetjk a FreeBSD honostshoz s idegennyelvre fordtshoz alkalmazhat eszkzket, amelyek segtsgvel az angolt nem, vagy csak kevsb ismer felhasznlk is kpesek lesznek komolyabban hasznlni. Az i18n megvalstsa rengeteg szemszgbl megkzelthet rendszer s alkalmazs szintjn egyarnt, ezrt ahol szksges, hivatkozni fogunk az odaill forrsokra. A fejezet elolvassa sorn megismerjk:

milyen nyelveket s nyelvi belltsokat tallhatunk napjaink opercis rendszereiben; hogyan hasznljuk a nyelvi belltsokat a sajt parancsrtelmeznkben; hogyan lltsuk be a konzolt az angolon kvl ms nyelvekhez; hogyan hasznljuk tnylegesen az X Window Systemet a klnbz nyelvekkel; hol olvashatunk tbbet az I18N-kompatibilis alkalmazsok fejlesztsrl.

A fejezet elolvasshoz ajnlott:

kls alkalmazok teleptsnek ismerete (4 fejezet).

23.2. Az alapok
23.2.1. Mi az I18N/L10N?
A fejlesztk az I18N elnevezst az angol internationalization (idegennyelvsg) szbl szrmaztatjk, amiben a szm az els s utols bet (az I s N) kzt llk mennyisgre utal. Ehhez hasonlan keletkezett az L10N a localization (honosts) kifejezsbl. Ezek hzassgbl jttek ltre az I18N/L10N mdszerei, protokolljai s mindazon alkalmazsai, melyekkel a felhasznlk a vlasztott nyelvket hasznlni tudjk. Az I18N alkalmazsok cljak elrshez fggvnyknyvtrakban implementlt I18N kszleteket hasznlnak. Ezzel lehetv vlik a fejlesztik szmra, hogy sszegyjtsk a programukban megjelen sszes szveget egyetlen llomnyba, majd azt kln lefordtsk a klnbz nyelvekre. Mi is ezen konvenci kvetsre szeretnnk bztatni minden programozt.

610

Fejezet 23. Honosts: Az I18N/L10N hasznlata s belltsa

23.2.2. Mirt hasznljuk az I18N/L10N-t?


Az I18N/L10N mindenhol jl jhet, ahol idegennyelv adatot akarunk megjelenteni, bekrni vagy feldolgozni.

23.2.3. Milyen nyelveket tmogat az I18N?


Az I18N s L10N nem korltozdik a FreeBSD tudsra. Jelenleg a vilgban beszlt legelterjedtebb nyelvek mindegyikt hasznlhatjuk bennk. Csak hogy nhnyat emltsnk kzlk: knai, nmet, japn, koreai, francia, orosz, vietnmi s mg sok ms.

23.3. A honosts hasznlata


Az I18N minden adottsgval egytt fggetlen a FreeBSD-tl, egy egyezmnyes rendszer. Mindenkit btortunk arra, hogy segtse a FreeBSD-t ennek az egyezmnynek a betartsban. A honosts belltsai hrom fbb rszre tagolhatak: a nyelv kdja, az orszg kdja s a kdols. A nyelvi belltsok nevei is ezekbl llnak ssze, az albbi sma szerint:
NyelviKd _OrszgKd .Kdols

23.3.1. A nyelv s az orszg kdja


Ha a FreeBSD (vagy brmilyen ms, az I18N-t ismer) rendszert honostani akarunk az adott nyelvre, akkor a felhasznlnak ismernie kell az adott orszgra s nyelvre vonatkoz kdokat (az orszgkd fogja elrulni az alkalmazsnak, hogy a nyelv melyik vltozatt hasznlja). Ezenkvl a bngszk, SMTP/POP szerverek s webszerverek stb. is ennek alapjn fognak dntseket hozni. me nhny nyelv/orszg kdja: Nyelv/orszg kdja en_US ru_RU zh_TW Lers Angol - Egyeslt llamok Orosz - Oroszorszg Hagyomnyos knai - Tajvan

23.3.2. Kdolsok
Bizonyos nyelvek 8 bites, szles vagy tbb byte-os, nem ASCII kdols karaktereket hasznlnak, melyekrl a multibyte(3) man oldaln olvashatunk rszletesebben. Ezeket rgebbi alkalmazsok egyltaln nem ismerik fel, s hibsan vezrlkaraktereknek tulajdontjk. Az jabbak ltalban mr felismerik a 8 bites karaktereket. A felhasznlknak az alkalmazsokat a szles vagy a tbb byte-os karakterek hasznlathoz vagy jra kell fordtaniuk, vagy pedig megfelelen be kell lltaniuk, az implementcitl fggen. A szles vagy tbb byte-os karakterek beolvasshoz s feldolgozshoz a FreeBSD Portgyjtemny (http://www.FreeBSD.org/ports/index.html) nyelvenknt tartalmaz klnfle programokat. A konkrt rszletek megrtshez olvassuk el az rintett FreeBSD portok I18N dokumentcijt. Vagyis a felhasznlknak t kell nznik az alkalmazshoz tartoz dokumentcit, mivel ebbl tudhatjk meg,

611

Fejezet 23. Honosts: Az I18N/L10N hasznlata s belltsa hogyan lltsk be ezeket megfelelen vagy milyen rtkeket adjanak t a congure/Makele/fordt hrmasnak. Amiket esetleg rdemes lehet ezzel kapcsolatban szben tartanunk:

A nyelvfgg egyszer karakteres kszletek (lsd multibyte(3)), pldul ISO8859-1, ISO8859-15, KOI8-R, CP437. A szles vagy tbb byte-os kdolsok, pldul az EUC, Big5.

A karakterkszletek jelenleg elrhet listjt meg tudjuk tekinteni az IANA adatbzisban (http://www.iana.org/assignments/characters-sets).
Megjegyzs: A FreeBSD helyettk X11-kompatibilis nyelvi kdolsokat hasznl.

23.3.3. I18N alkalmazsok


A FreeBSD port- s csomagrendszerben az I18N alkalmazsok a knnyebb felismerhetsg rdekben a nevkben tartalmazzk az I18N megnevezst. Nem minden esetben tmogatjk a szksges nyelvet.

23.3.4. A nyelvi belltsok megadsa


ltalban elegend annyi, hogy a kvnt nyelvi bellts nevt exportljuk az ltalunk hasznlt parancsrtelmez LANG krnyezeti vltozjba. Ez megtehet a felhasznli knyvtrunkban tallhat ~/.login_conf, vagy a felhasznli parancsrtelmez indt llomnyban (~/.profile, ~/.bashrc, ~/.cshrc). Nem szksges a nyelvi belltsok rszleteit, mint pldul az LC_CTYPE, LC_CTIME vltozkat, megadni. A pontosabb rszleteket a FreeBSD adott nyelvre vonatkoz dokumentcijban talljuk meg. A kvetkez kt krnyezeti vltozt kell megadnunk az emltett kongurcis llomnyokban:

A LANG vltozt a POSIX setlocale(3) csaldjnak A MM_CHARSET vltozt az alkalmazs MIME karakterkszlethez

Ez magban foglalja a felhasznli parancsrtelmez, az adott alkalmazs s az X11 belltst.

23.3.4.1. A nyelvi belltsok megadsnak mdszerei


Kt mdszer ltezik a nyelvi belltsok megadsra, ezen kettrl fogunk a tovbbiakban beszlni. Az els (s egyben ajnlott) ezek kzl a bejelentkezsi osztlyban lev krnyezeti vltozk belltsa, a msodik pedig krnyezeti vltozk hozzadsa a parancsrtelmez rendszerszint indt llomnyhoz. 23.3.4.1.1. Bellts a bejelentkezsi osztlyokkal Ezzel a mdszerrel a nyelvi bellts nevhez s a MIME karakterkszlethez ktd krnyezeti vltozkat az sszes ltez parancsrtelmez szmra csak egyszer kell megadnunk ahelyett, hogy kln mindegyikk indtllomnyban szerepeltetnnk. A felhasznl a sajt rszt maga is elvgezheti, mg a rendszer szintjn adminisztrtori jogosultsgokat ignyel.

612

Fejezet 23. Honosts: Az I18N/L10N hasznlata s belltsa 23.3.4.1.1.1. Felhasznli szint bellts me plda gyannt a felhasznl knyvtrban egy egyszer .login_conf llomny, amiben mind a kt vltozt Latin-1 kdolsra lltottuk:
me:\ :charset=ISO-8859-1:\ :lang=de_DE.ISO8859-1:

Ebben a .login_conf pldban a vltozkat BIG-5 kdols hagyomnos knai nyelvre lltjuk. szrevehetjk, hogy itt sokkal tbb vltoz belltsra van szksgnk, mivel egyes szoftverek nem kezelik megfelelen a nyelvi belltsokat knai, japn s koreai nyelvek esetn.
# Azok a felhasznlk, akik nem kvnnak tajvani pnz- vagy id formtumot # hasznlni, egyenknt rjk t a vltozkat me:\ :lang=zh_TW.Big5:\ :setenv=LC_ALL=zh_TW.Big5:\ :setenv=LC_COLLATE=zh_TW.Big5:\ :setenv=LC_CTYPE=zh_TW.Big5:\ :setenv=LC_MESSAGES=zh_TW.Big5:\ :setenv=LC_MONETARY=zh_TW.Big5:\ :setenv=LC_NUMERIC=zh_TW.Big5:\ :setenv=LC_TIME=zh_TW.Big5:\ :charset=big5:\ :xmodifiers="@im=gcin": # a gcin belltsa XIM szerverknt

A tbbit lsd a Rendszergazdai szint belltsok rsznl s a login.conf(5) man oldalon.

23.3.4.1.1.2. Rendszergazdai szint bellts Ellenrizzk, hogy a felhasznl /etc/login.conf llomnyban szerepl bejelentkezsi osztlya a megfelel nyelvet lltja be. Gyzdjnk meg rla, hogy az albbi belltsok helyet kapnak az /etc/login.conf llomnyban:
nyelv_neve|A hozzfrs tpusnak lersa:\ :charset=MIME_karakterkszlet:\ :lang=nyelvi_bellts_neve:\

:tc=default:

Folytassuk tovbb az elbbi Latin-1-es pldnk szerint:


nemet|Nemet felhasznalok hozzaferesei:\ :charset=ISO-8859-1:\ :lang=de_DE.ISO8859-1:\ :tc=default:

Mieltt megvltoztatnnk a felhasznlk bejelentkezsi osztlyait, adjuk ki a kvetkez parancsot:


# cap_mkdb /etc/login.conf

Ezzel a /etc/login.conf j tartalma lthatv vlik a rendszer szmra.

613

Fejezet 23. Honosts: Az I18N/L10N hasznlata s belltsa A bejelentkezsi osztly megvltoztatsa a vipw(8) programmal A vipw segdprogramot j felhasznlk hozzadsra hasznljuk, aminek eredmnyekppen egy ehhez hasonl bejegyzst tudunk ltrehozni:
felhasznalo:jelszo:1111:11:nyelv :0:0:Felhasznalo neve:/home/felhasznalo:/bin/sh

A bejelentkezsi osztly megvltoztatsa az adduser (8)-rel Az adduser-rel az albbiak szerint tudunk j felhasznlkat felvenni a rendszerbe:

Adjuk hozz a defaultclass = nyelv sort az /etc/adduser.conf-hoz. Ne felejtsk el, hogy ezutn minden olyan felhasznlnl a default bejelentkezsi osztlyt meg kell adni, akik nem ezt a nyelvet hasznljk. Egy msik megolds lehet, hogy a adduser(8) hasznlata sorn minden felhasznl esetn kln megadjuk a nyelvet az
Enter login class: default []:

rsz megjelensekor.

Vagy hasznlhatjuk az albbit az egyes eltr nyelv felhasznlk hozzadsnl:


# adduser -class nyelv

A bejelentkezsi osztly megvltoztatsa a pw(8)-vel Amennyiben a pw(8)-t hasznljuk j felhasznlk hozzadsra, gy rdemes meghvnunk:
# pw useradd felhasznl_neve -L nyelv

23.3.4.1.2. Bellts a parancsrtelmez indt llomnyval


Megjegyzs: Ezt a mdszert nem javasoljuk, mivel parancsrtelmeznknt eltr belltst kvn. Hasznljuk helyette a bejelentkezsi osztlyokkal megvalstott mdszert.

A nyelvi bellts nevnek s a MIME karakterkszlet belltshoz egyszeren csak adjuk meg a lenti /etc/profile s/vagy /etc/csh.login parancsrtelmez indt llomnyokban bemutatott krnyezeti vltozt. Tovbbra is a nmet nyelvet hasznljuk a pldnkban: Az /etc/profile esetn:
LANG=de_DE.ISO8859-1; export LANG MM_CHARSET=ISO-8859-1; export MM_CHARSET

Vagy a /etc/csh.login esetn:


setenv LANG de_DE.ISO8859-1 setenv MM_CHARSET ISO-8859-1

gy is megoldhatjuk ezt a feladatot, ha fenti utastsokat a /usr/share/skel/dot.profile (hasonl a fentebb emltett /etc/profile llomnyhoz) vagy /usr/share/skel/dot.login (hasonl a fentebb emltett /etc/csh.login llomnyhoz) esetn hajtjuk vgre.

614

Fejezet 23. Honosts: Az I18N/L10N hasznlata s belltsa X11 esetn: Adjuk meg a $HOME/.xinitrc llomnyban:
LANG=de_DE.ISO8859-1; export LANG

Vagy:
setenv LANG de_DE.ISO8859-1

Attl fggen, milyen parancsrtelmezt hasznlunk (lsd fentebb).

23.3.5. A konzol belltsa


Az sszes egyszer karakteres kszlet esetn a krdses nyelvhez megfelel konzolos bettpust az /etc/rc.conf llomnyban tudjuk belltani:
font8x16=bettpus_neve font8x14=bettpus_neve font8x8=bettpus_neve

Itt a bettpus_neve az .fnt kiterjeszts elhagysval a /usr/share/syscons/fonts knyvtrban tallhat llomnyok nevbl adhat meg. Ha szksges lltsuk mg be a megfelel billenty- s betkiosztst is a sysinstall segtsgvel. Ahogy sikerlt elindtanunk a sysinstallt, vlasszuk a Congure (Belltsok) pontot, majd a Console (Konzol)-t! Vagy ehelyett berhatjuk az albbi sorokat a /etc/rc.conf llomnyba:
scrnmap=betkioszts_neve keymap=billentykioszts_neve keychange="funkcibillenty_sorszma szekvencia"

Itt a betkioszts_neve a /usr/share/syscons/scrnmaps knyvtrban tallhat llomnyok nevbl szrmaztathat az .scm kiterjeszts elhagysval. A betkiosztsokat ltalban a 9 bites karaktermtrixszal rendelkez VGA megjelentk problminak megoldsra lehet hasznlni, mivel gy az eredetileg 8 bittel brzolt betket ki lehet tolni az ilyen tpus krtyk pszeudograkus terletrl. Ha aktivltuk a moused egrkezel dmont az /etc/rc.conf llomnyban az albbi sor megadsval:
moused_enable="YES"

akkor a kvetkez bekezdsben r is trhetnk az egrmutat adatainak vizsglatra. A syscons(4) meghajtban tallhat egrmutat alaprtelmezs szerint a 0xd0 - 0xd3 karaktereket foglalja el a karakterkszletben. Ha a nyelv ezeket hasznlja, arrbb kell kltztetnnk ezt az egrmutat ltal elfoglalt svot. A FreeBSD-ben az /etc/rc.conf llomnyon keresztl rhetjk el:
mousechar_start=3

615

Fejezet 23. Honosts: Az I18N/L10N hasznlata s belltsa A billentykioszts_neve a /usr/share/syscons/keymaps knyvtrbl, a .kbd kiterjeszts elhagysval keletkezik. Ha nem vagyunk benne biztosak, melyik kiosztst is kellene hasznlnunk, a kbdmap(1) segtsgvel a rendszer jraindtsa nlkl kiprblhatjuk a rendelkezsre ll billentykiosztsokat. A keychange hasznlatra tbbnyire a funkcibillentyk adott terminltpushoz egyeztetshez van szksg, mert a funkcibillentyk szekvencii nem adhatak meg a billentykiosztsban. Ezeken fell rdemes megbizonyosodnunk rla, hogy a /etc/ttys llomnyban jl lltjuk be a terminl tpust minden ttyv* bejegyzs esetn. Az aktulisan elre belltott kapcsolatok a kvetkezk: Karakterkszlet ISO8859-1 vagy ISO8859-15 ISO8859-2 ISO8859-7 KOI8-R KOI8-U CP437 (alaprtelmezett VGA) US-ASCII Terminltpus
cons25l1 cons25l2 cons25l7 cons25r cons25u cons25 cons25w

A szles s tbb byte-os karaktereket hasznl nyelvek esetn hasznljuk a /usr/ports/nyelv knyvtrban megfelel FreeBSD portot. Egyes portok konzolosknt jelennek meg, mikzben a rendszer soros virtulis terminlknt ltja ezeket, ezrt fenn kell tartanunk elegend virtulis terminlt mind az X11, mind pedig pszeudo-soros konzol szmra. Itt lthat a konzolon ms nyelvet hasznl alkalmazsok rszleges listja: Nyelv Hagyomnyos knai (BIG-5) Japn Koreai Hely
chinese/big5con japanese/kon2-16dot vagy japanese/mule-freewnn korean/han

23.3.6. Az X11 belltsa


Habr az X11 nem rsze a FreeBSD projektnek, megemltnk vele kapcsolatban nhny hasznos informcit a FreeBSD felhasznlk szmra is. Mg tbb rszletet a Xorg honlapjrl (http://www.x.org/) vagy az ltalunk hasznlt X11 szerver dokumentcijbl tudhatunk meg. Az ~/.Xresources llomnyban tovbbi I18N belltsokat nomthatunk alkalmazsonknt (pldul bettpusok, menk stb.).

23.3.6.1. Bettpusok megjelentse


Teleptsk fel az Xorg (x11-servers/xorg-server) vagy az XFree86 (x11-servers/XFree86-4-Server) szerverek valamelyikt, majd teleptsk a nyelvhez tartoz TrueType bettpusokat. Ezutn a megfelel nyelvi belltsa megadsa rvn mr ltni fogjuk a kivlasztott nyelven megjelen menket s egyb szvegeket.

616

Fejezet 23. Honosts: Az I18N/L10N hasznlata s belltsa

23.3.6.2. Idegennyelv karakterek bevitele


Az X11 beviteli mdszernek (X11 Input Method, XIM) protokollja egy j szabvny az sszes X11 klienshez. Minden X11 alkalmazst olyan XIM-kliensknt kell elkszteni, amelyek a bemen adatokat az XIM beviteli szerverektl kapjk. Klnbz XIM szerverek rhetek el az eltr nyelvekhez.

23.3.7. Nyomtatk belltsa


Egyes egyszer karakteres kszletek ltalban hardveresen beptve megtallhatak a nyomtatkban. A szles s tbb byte-os karakterkszletek azonban kln belltst ignyelnek, amire az apslter hasznlatt javasoljuk. A megfelel nyelvhez szabott eszkzkkel t is lehet konvertlni PostScript vagy PDF formtumba a nyomtatni kvnt dokumentumot.

23.3.8. A rendszermag s az llomnyrendszerek


A FreeBSD gyors llomnyrendszere (Fast File System, FFS) szablyosan kezeli a 8 bites karaktereket, teht tetszleges egyszer karakteres kszlet (lsd multibyte(3)) hasznlhat vele, viszont a karakterkszlet nevt nem trolja el az llomnyrendszerben. Emiatt a neveket nyersen kezeli, semmit sem tud a kdolsukrl. Az FFS hivatalosan mg nem tmogat semmilyen fajta szles vagy tbb byte-os karakterkszletet. Lteznek azonban fggetlen javtsok az FFS-hez, amelyek lehetv teszik ilyen szles vagy tbb byte-os karakterek hasznlatt. Ezek csak tmeneti s nem hordozhat megoldsok, olyan mdostsok, amelyekrl gy dntttnk, nem vesszk fel ezeket a forrsfba. Az rintett nyelvek honlapjain elrhetjk ezeket a javtsokat s tbbet megtudhatunk rluk. A FreeBSD MS-DOS llomnyrendszere kongurlhat gy, hogy kpes legyen konvertlni az MS-DOS Unicode s a kivlasztott FreeBSD llomnyrendszernek karakterkszlete kztt. Errl bvebben a mount_msdosfs(8) man oldalon olvashatunk.

23.4. I18N programok fordtsa


Szmos FreeBSD port rendelkezik I18N tmogatssal. Ezek egy rsznek nevben szerepel az -I18N jelzs. Az ilyen s sok ms hasonl program beptetten ismeri az I18N-t, gy nem ignyelnek kln belltsokat. Nhny alkalmazs azonban, mint pldul a MySQL, esetn az adott karakterkszletnek megfelel mdon kell belltani a Makefile llomnyt. Ezt ltalban magban a Makefile llomnyban tudjuk megtenni, vagy pedig a congure megfelel paramterezsvel.

617

Fejezet 23. Honosts: Az I18N/L10N hasznlata s belltsa

23.5. A FreeBSD honostsa adott nyelvekre


23.5.1. Az orosz nyelv (KOI8-R kdols)
Eredetileg rta: Andrey Chernov. A KOI8-R kdolsrl bvebben a KOI8-R oldaln (orosz hlzati karakterkszlet) (http://koi8.pp.ru) tjkozdhatunk.

23.5.1.1. A nyelvi belltsok megadsa


rjuk a kvetkez sorokat a ~/.login_conf llomnyunkba:
me:Az en hozzaferesem:\ :charset=KOI8-R:\ :lang=ru_RU.KOI8-R:

Valamint lsd a fejezet korbbi rszeiben emltett pldkat a nyelvi belltsok megadsra.

23.5.1.2. A konzol belltsa

Tegyk hozz a kvetkez sort az /etc/rc.conf llomnyunkhoz:


mousechar_start=3

Illetve hasznljuk az /etc/rc.conf llomnyban mg a kvetkez belltsokat is:


keymap="ru.koi8-r" scrnmap="koi8-r2cp866" font8x16="cp866b-8x16" font8x14="cp866-8x14" font8x8="cp866-8x8"

A /etc/ttys llomnyban szerepl mindegyik ttyv* bejegyzsnl adjuk meg terminltpusnak a cons25r-t.

Valamint lsd a fejezet korbbi rszben bemutatott pldkat a konzol belltsra.

23.5.1.3. A nyomtats belltsa


Mivel a legtbb nyomtat hardveresen tartalmazza a CP866 kdlapot az orosz karakterek tmogatshoz, hasznlnunk kell egy kimeneti szrt a KOI8-R kdols karakterek CP866 kdolsra konvertlshoz. Egy ilyen szr alaprtelmezs szerint teleptsre kerl a /usr/libexec/lpr/ru/koi2alt llomnyba. Az orosz nyomtathoz tartoz bejegyzs valahogy gy nz ki az /etc/printcap llomnyban:
lp|Orosz helyi sornyomtato:\ :sh:of=/usr/libexec/lpr/ru/koi2alt:\ :lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs:

A bvebben magyarzathoz lsd a printcap(5) man oldalt.

618

Fejezet 23. Honosts: Az I18N/L10N hasznlata s belltsa

23.5.1.4. Az MS-DOS llomnyrendszere s az orosz llomnynevek


A most kvetkez plda fstab(5) bejegyzs azt mutatja meg, hogy lehet bekapcsolni az orosz llomnynevek tmogatst a csatlakoztatand MS-DOS llomnyrendszereken:
/dev/ad0s2 /dos/c msdos rw,-Wkoi2dos,-Lru_RU.KOI8-R 0 0

Az -L kapcsolval kivlasztjuk a hasznlni kvnt nyelvi bellts nevt, s a -W kapcsolval megadjuk a karakterek tvltshoz szksges tblzatot. A -W kapcsol hasznlata sorn mindenkppen csatlakoztassuk a /usr llomnyrendszert mg az MS-DOS partci eltt, mivel az tvltshoz hasznlt tblzatok a /usr/libdata/msdosfs knyvtrban tallhatak meg! A rszleteket a mount_msdosfs(8) man oldalon tallhatjuk meg.

23.5.1.5. Az X11 belltsa


1. Adjuk meg elszr a lertak szerint a nem X-es nyelvi belltsokat. 2. Ha Xorg-ot hasznlunk, teleptsk a x11-fonts/xorg-fonts-cyrillic csomagot. Ellenrizzk a /etc/X11/xorg.conf llomnyban a "Files" szakaszt. Az albbi sort mindegyik ms FontPath bejegyzs eltt kell szerepeltetnnk:
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic"

Megjegyzs: A portok kztt tallhatunk mg tovbbi cirill bettpusokat.

3. Az orosz billentyzet letre keltshez rjuk be a kvetkezket az xorg.conf llomny "Keyboard" szakaszba:
Option "XkbLayout" Option "XkbOptions" "us,ru" "grp:toggle"

Ellenrizzk, hogy a XkbDisable ki van kapcsolva (ki van kommentezve) ebben a szakaszban. A grp:toggle bellts esetn az orosz/latin (RUS/LAT) tkapcsols gombja a jobb Alt lesz, mg a grp:ctrl_shift_toggle belltsnl a Ctrl+Shift. A grp:caps_toggle esetn az orosz/latin vlts a CapsLock billentyvel trtnik. Ilyenkor (de csak latin mdban) a megszokott CapsLock funkci tovbbra is elrhet a Shift+CapsLock kombincival. A grp:caps_toggle valamirt nem mkdik az Xorgban. Ha van Windows billentynk a billentyzeten s azt tapasztaljuk, hogy egyes nem-alfabetikus billentyk rosszul kerlnek kiosztsra orosz mdban, adjuk hozz a kvetkez sort az xorg.conf llomnyhoz:
Option "XkbVariant" ",winkeys" Megjegyzs: Az orosz XKB billentyzet egyes nem honostott alkalmazsok esetn nem mkdik.

619

Fejezet 23. Honosts: Az I18N/L10N hasznlata s belltsa


Megjegyzs: A kis mrtkben honostott alkalmazsok esetn javasolt meghvni a XtSetLanuageProc(NULL,
NULL, NULL); fggvnyt valahol a program elejn.

Az X11 alkalmazsok honostshoz tovbbi tmutatsokat a KOI8-R X Window-ra (http://koi8.pp.ru/xwin.html) cm lersban tallhatunk.

23.5.2. Hagyomnyos knai honosts tajvaniak szmra


A FreeBSD-Taiwan projekt ksztett a FreeBSD-hez egy knainak szl hogyant, amely elrhet a http://netlab.cse.yzu.edu.tw/~statue/freebsd/zh-tut/ cmen s szmos knai portot hasznl. A FreeBSD knai hogyan jelenlegi szerkesztje Shen Chuan-Hsing (<statue@freebsd.sinica.edu.tw>). Chuan-Hsing Shen (<statue@freebsd.sinica.edu.tw>) ltrehozta a Knai FreeBSD gyjtemnyt (Chinese FreeBSD Collection, CFC) (http://netlab.cse.yzu.edu.tw/~statue/cfc/) a FreeBSD-Taiwan zh-L10N-tut munkjt felhasznlva. A hozztartoz csomagok s szkriptek elrhetek a ftp://freebsd.csie.nctu.edu.tw/pub/taiwan/CFC/ cmen.

23.5.3. Honosts nmet (s minden ms ISO 8859-1 kdols) nyelvre


Slaven Rezic (<eserte@cs.tu-berlin.de>) ksztett egy rst, amely elmagyarzza, hogyan hasznljunk nmet nemzeti karaktereket a FreeBSD alatt. Ez a lers nmetl kszlt s a http://user.cs.tu-berlin.de/~eserte/FreeBSD/doc/umlaute/umlaute.html cmen rhet el.

23.5.4. Honosts grg nyelvre


Nikos Kokkalis <nickkokkalis@gmail.com> egy teljes cikket rt a FreeBSD grg nyelvi tmogatsrl. Ez elrhet a FreeBSD hivatalos grg nyelv dokumentcijban, a http://www.FreeBSD.org/doc/el_GR.ISO8859-7/articles/greek-language-support/index.html cmen. Felhvjuk a gyelmet, hogy az csak grg nyelven rhet el.

23.5.5. Honosts japn s koreai nyelvekre


A japn honostshoz lsd http://www.jp.FreeBSD.org/, a koreaihoz pedig lsd http://www.kr.FreeBSD.org/.

23.5.6. Idegennyelv FreeBSD dokumentci


Nhny FreeBSD felhasznl lefordtotta a FreeBSD dokumentcijnak egyes rszeit ms nyelvekre is. Munkjuk elrhet a foldalon (http://www.FreeBSD.org/index.html) tallhat linkeken keresztl vagy a /usr/share/doc knyvtrban.

620

Fejezet 24. A FreeBSD frisstse s frissen tartsa


tdolgozta, trendezte s egyes rszeit aktualizlta: Jim Mock. Eredetileg rta: Jordan Hubbard, Poul-Henning Kamp, John Polstra, s Nik Clayton.

24.1. ttekints
A FreeBSD a kiadsok kzt is lland fejldsben van. Vannak felhasznlk, akik a hivatalosan kiadott vltozatokat hasznljk, s vannak, akik szeretik folyamatosan nyomonkvetni a fejlesztseket. Emellett viszont a hivatalos kiadsok esetben szksg lehet bizonyos biztonsgi frisstsek s kritikus javtsok alkalmazsra. Fggetlenl a pillanatnyilag hasznlt vltozattl, a FreeBSD alaprendszerben megtallhat minden olyan eszkz, amellyel knnyedn frissteni tudunk a klnbz verzik kztt. Ebben a fejezetben segtnk dnteni a fejleszti vltozat s a kiadsok hasznlata kztt. Tovbb megismerhetjk a rendszer frisstshez hasznlhat alapvet eszkzket. A fejezet elolvassa sorn megismerjk:

milyen segdprogramokkal tudjuk frissteni az alaprendszert s a Portgyjtemnyt; hogyan tartsuk naprakszen rendszernket a freebsd-update, CVSup, CVS vagy CTM hasznlatval; hogyan vessk ssze a teleptett rendszernk aktulis llapott egy ismert eredeti vltozattal; hogyan frisstsk a dokumentcit CVSup vagy dokumentcis portok segtsgvel. a kt fejleszti g, a FreeBSD-STABLE s a FreeBSD-CURRENT kzti klnbsget; a make buildworld (stb.) segtsgvel hogyan fordtsuk s teleptsk jra az egsz alaprendszert.

A fejezet elolvasshoz ajnlott:


a hlzati kapcsolatunk helyes belltsa (31 fejezet); a kls szoftverek teleptsnek ismerete (4 fejezet).
Megjegyzs: A fejezetben a FreeBSD forrsainak frisstst a cvsup parancs segtsgvel fogjuk elvgezni. Ehhez teleptsk a net/cvsup-without-gui portot vagy csomagot, vagy ha mr a FreeBSD 6.2-RELEASE vagy ksbbi vltozatval rendelkeznk, akkor elegend csak az alaprendszer rszeknt elrhet csup(1) programot hasznlnunk.

24.2. A FreeBSD frisstse


rta: Tom Rhodes. A megrshoz felhasznlt jegyzeteket ksztette: Colin Percival. A biztonsgi javtsok teleptse minden szmtgpes szoftver, klnsen az opercis rendszerek szmra lnyeges mozzanat. Nagyon hossz ideig ez a FreeBSD esetben nem volt knnyen megoldhat: a javtsokat kzvetlenl a forrskdon kellett elvgezni, ezekbl jrafordtani a rendszert, majd telepteni.

621

Fejezet 24. A FreeBSD frisstse s frissen tartsa Ez a nehzsg mostanra viszont mr elhrult, mivel a FreeBSD legfrissebb verzii mr tartalmaznak egy freebsd-update nev segdprogramot, amellyel mindez leegyszersdik. Ez a program kt kln funkcit lt el. Elszr is, lehetv teszi, hogy a FreeBSD alaprendszer jrafordtsa s -teleptse nlkl javtsunk biztonsgi s egyb apr hibkat, valamint msodsorban tmogatja a kisebb s nagyobb verzij kiadsok kzti vltst.
Megjegyzs: Ezek a binris frisstsek azonban csak a FreeBSD biztonsgi csapata ltal is felgyelt architektrk s kiadsok esetn rhetek el. Emellett bizonyos lehetsgek hasznlathoz, pldul a FreeBSD verzii kzti tlls tmogatshoz a freebsd-update(8) legjabb vltozata szksgeltetik. Ezrt ne felejtsk el alaposan tolvasni a legjabb kiadsokrl szl bejelentseket mieltt frisstennk rjuk, mivel ezzel kapcsolatban fontos informcikat tartalmazhatnak. Az emltett bejelentsek a http://www.FreeBSD.org/releases/ cmen rhetek el.

Ha a crontab mr hivatkozik a freebsd-update programra, akkor a most kvetkez mvelet elkezdse eltt tiltsuk le.

24.2.1. A kongurcis llomnyok


Ha vltoztatnnk szeretnnk a frisstsi folyamaton, ekkor a programhoz tartoz, /etc/freebsd-update.conf nev kongurcis llomnyt kell mdostanunk. Az opcik rszletes ismertetssel rendelkeznek, habr nmelyiknl mg tovbbi magyarzat kellhet:
# Az alaprendszerben frissteni kvnt komponensek Components src world kernel

Ezzel a paramterrel hatrozhatjuk meg, hogy a FreeBSD mely rszei kerljenek frisstsre. Alaprtelmezs szerint a program frissti a forrsokat, a teljes alaprendszert s a rendszermagot. Komponensknt a teleptsnl vlaszthat elemeket adhatjuk meg, pldul "world/games" hozzadsakor a games kategria elemei is folyamatosan frisslni fognak. Az "src/bin" megadsakor pedig az src/bin knyvtr tartalma frissl. Ezt a belltst a legjobb meghagyni az alaprtelmezett rtken, mivel a tovbbi elemek megadsnl egyenknt fel kell sorolni a frisstend komponenseket. Ha itt viszont kifelejtnk valamit, akkor knnyen megeshet, hogy a forrsok s a binrisok verzija elcsszik egymstl.
# Az IgnorePaths bellts utn megadott szvegre illeszked sszes # bejegyzs frisstse kimarad IgnorePaths

Ennl a belltsnl azokat a knyvtrakat kell megadnunk, amelyeket (s tartalmukat) ki szeretnnk hagyni a frissts sorn. Ezek lehetnek pldul a /bin vagy az /sbin. gy meg tudjuk akadlyozni, hogy freebsd-update esetleg fellrjon valamilyen helyi vltoztatst a rendszernkben.
# Az UpdateIfUnmodified bellts utn megadott elrsi tvonalakon csak # a felhasznl ltal mg nem mdostott llomnyok fognak frisslni # (hacsak a mdostsokat ssze nem fsljk, lsd lentebb) UpdateIfUnmodified /etc/ /var/ /root/ /.cshrc /.profile

A megadott knyvtrakban csak azokat a kongurcis llomnyokat fogja frissteni, amelyeket nem vltoztattuk meg. Amennyiben brmelyikk eltr az eredetileg frisstend vltozattl, azt a program nem mdostja. Ltezik egy

622

Fejezet 24. A FreeBSD frisstse s frissen tartsa msik hasonl bellts, a KeepModifiedMetadata, amely hatsra a freebsd-update az sszefsls sorn elmenti a vltoztatsokat.
# A MergeChanges belltsnl szerepl llomnyok helyi mdostsait # automatikusan sszefsljk a FreeBSD jabb verzijra frisstse kzben MergeChanges /etc/ /var/named/etc/

Itt azokat a knyvtrakat adhatjuk meg, amelyekben a freebsd-update szmra engedlyezzk a kongurcis llomnyok j verzijnak sszefslst a jelenlegi llapottal. Az sszefsls lnyegben a mergemaster(8) hasznlatnl mr megszokott mdon, diff(1) formtumban rkez mdostsok sorozata alapjn trtnik. Ekkor egy szvegszerkeszt segtsgvel felgyelhetjk az sszefsls menett vagy megllthatjuk a freebsd-update futst. Ha ktsgeink addnak, akkor egyszeren mentsk le az /etc knyvtrat s fogadjuk el mindegyik sszefsls eredmnyt. A mergemaster mkdsrl a 24.7.11.1 Szakasz ad rszletesebb tjkoztatst.
# A FreeBSD frisstsekor ezt a knyvtrat fogja a program hasznlni a # letlttt mdostsok s az egyb ideiglenes llomnyok trolsra # WorkDir /var/db/freebsd-update

Az itt megadott knyvtrba fognak kerlni az elvgzend mdostsok s az egyb ideiglenesen keletkez llomnyok. A verzik kzti vlts sorn ebben a knyvtrban ajnlott legalbb 1 GB szabad trterletnek lennie.
# # # # # # A kiadsok kzti vlts sorn a Components belltsnl megadott elemek kerljenek csak frisstsre (StrictComponents yes), vagy a program prblja meg magtl kitallni, hogy milyen komponesek *lehetnek* fenn a rendszeren s azokat frisstse (StrictComponents no)? StrictComponents no

Ha ennl a belltsnl a yes rtket adjuk meg, akkor a freebsd-update felttelezni fogja, hogy a Components opcinl felsoroltunk minden frisstend komponenst s nem prbl meg mst is megvltoztatni. Ilyenkor teht a freebsd-update tulajdonkppen egyedl csak a Components ltal meghatrozott elemekhez tartoz llomnyokat fogja frissteni.

24.2.2. Biztonsgi javtsok


A biztonsgi javtsok mindig egy tvoli gpen troldnak, a kvetkez parancsok hasznlatval tlthetek le s telepthetek:
# freebsd-update fetch # freebsd-update install

Amennyiben a rendszermagot is rintik javtsok, gy a rendszert a mvelet befejezdsvel jra kell indtanunk. Ha minden a megfelel mdon trtnt, akkor a rendszernk mr tartalmazni fogja a korbban letlttt s teleptett javtsokat, s a freebsd-update akr bellthat egy naponta vgrehajtand cron(8) feladatnak. Ehhez mindssze a kvetkez bejegyzst kell elhelyeznnk az /etc/crontab llomnyban:
@daily root freebsd-update cron

A bejegyzs szerint naponta egyszer le fog futni a freebsd-update. Ilyenkor, vagyis a cron paramter megadsakor a freebsd-update csak ellenrzi, hogy vannak-e teleptend frisstsek. Ha tall, akkor

623

Fejezet 24. A FreeBSD frisstse s frissen tartsa automatikusan letlti ezeket a lemezre, de nem telepti. Helyette levlben rtesti a root felhasznlt, aki ezutn brmikor manulisan krheti a teleptst. Problma esetn az albbi paranccsal megkrhetjk a freebsd-update programot a legutbb teleptett mdostsok visszavonsra:
# freebsd-update rollback

Ha ez a visszavons a rendszermagra vagy annak moduljaira is vonatkozott, akkor a rendszert jra kell indtanunk a parancs futsnak befejezdsvel. A FreeBSD csak ilyenkor kpes betlteni az j binrisokat betlteni a memriba. A freebsd-update nmagtl csak a GENERIC tpus rendszermagokat kpes frissteni. Ha sajt rendszermagot hasznlunk, akkor azt a rendszer tbbi komponensnek frisstst kveten jra kell fordtanunk s teleptennk. A freebsd-update azonban mg akkor is rzekelni s frissteni fogja a GENERIC rendszermagot (amennyiben az ltezik), ha az ppen nem az aktulis(an fut) rendszermag.
Megjegyzs: Mindig rdemes tartani egy msolatot a GENERIC rendszermagrl a /boot/GENERIC knyvtrban. Rengeteg klnbz problma feldertsben tud segteni, illetve ez a 24.2.3 Szakasz szakaszban lert freebsd-update programmal vgzett frisstseknl is hasznos lehet.

Hacsak nem vltoztatjuk meg az /etc/freebsd-update.conf llomnyt, a freebsd-update a rendszermag forrsait is frissti a tbbivel egytt. A sajt rendszermag jrafordtsa s teleptse ezutn a mr a megszokott mdon elvgezhet.
Megjegyzs: A freebsd-update ltal terjesztett frisstsek nem mindig rintik a rendszermagot. Ha a rendszermag forrsai nem vltoznak egy freebsd-update install parancs kiadsa sorn, akkor nem ktelez jrafordtani a sajt rendszermagot. A freebsd-update viszont mindig mdostani fogja a /usr/src/sys/conf/newvers.sh llomnyt. Itt az aktulis hibajavts sorszma szerepel (amelyet a -p (mint patch level eltaggal kapcsolnak a rendszer verzijhoz, s a uname -r paranccsal lehet lekrdezni). Ennek megfelelen teht a sajt rendszermag jrafordtsa utn, mg ha semmi ms nem is vltozott, a uname(1) kpes pontosan jelezni a rendszerhez kszlt hibajavts sorszmt. Ez klnsen fontos tbb rendszer karbantartsa sorn, mivel gy knnyen s gyorsan tjkozdhatunk azok naprakszsgrl.

24.2.3. Vlts kisebb s nagyobb verzik kztt


Verzik kzti vlts sorn a kls alkalmazsok mkdst akadlyoz rgi trgykdok s fggvnyknyvtrak trldni fognak. Ezrt javasoljuk, hogy vagy trljk le az sszes portot s teleptsk jra, vagy az alaprendszer frisstse utn hozzuk ezeket is napraksz llapotba a ports-mgmt/portupgrade segdprogram segtsgvel. Elszr minden bizonnyal szeretnk kiprblni a frisstst, ezt a kvetkez paranccsal tehetjk meg:
# portupgrade -af

Ezzel gondoskodunk rla, hogy a minden a megfelelen teleptdjn jra. Ha a BATCH krnyezeti vltozt a yes rtkre lltjuk, akkor a folyamat sorn megjelen sszes krdsre automatikusan a yes vlaszt adjuk, ezltal nllstani tudjuk.

624

Fejezet 24. A FreeBSD frisstse s frissen tartsa Ha sajt rendszermagot hasznlunk, akkor ennl valamivel azrt tbb feladatunk van. Szksgnk lesz a GENERIC rendszermagot egy pldnyra, amelyet msoljunk a /boot/GENERIC knyvtrba. Amennyiben nincs GENERIC tpus rendszermag a rendszernkn, a kvetkez mdok valamelyikn keresztl tudunk szerezni:

Ha a sajt rendszermagot mg csak egyszer fordtottuk, akkor a /boot/kernel.old knyvtrban mg megtallhat a GENERIC. Ezt nevezzk t egyszeren /boot/GENERIC knyvtrra. Ha zikailag hozz tudunk frni az rintett gphez, akkor a GENERIC egy pldnyt akr CD-rl is tmsolhatjuk. Helyezzk be a teleptlemezt s adjuk ki a kvetkez parancsokat:
# mount /cdrom # cd /cdrom/X.Y-RELEASE /kernels # ./install.sh GENERIC

Itt a X.Y-RELEASE knyvtr nevben rtelemszeren helyettestsk be az ltalunk hasznlt vltozatot. A GENERIC rendszermag ekkor alaprtelmezs szerint a /boot/GENERIC knyvtrba kerl.

Ha az elbbiek kzl egyik sem lehetsges, akkor a GENERIC rendszermagot kzvetlenl akr forrsbl is lefordthatjuk s telepthetjk:
# # # # cd /usr/src env DESTDIR=/boot/GENERIC make kernel mv /boot/GENERIC/boot/kernel/* /boot/GENERIC rm -rf /boot/GENERIC/boot

A freebsd-update akkor fogja ezt GENERIC rendszermagknt felismerni, ha a hozztartoz kongurcis llomnyt nem mdostjuk. Tovbb javasoljuk, hogy semmilyen specilis belltst ne alkalmazzunk a fordts sorn (rdemes resen hagyni ehhez az /etc/make.conf llomnyt). Nem ktelez jraindtani a rendszert a GENERIC rendszermaggal. A freebsd-update kpes frissteni rendszernket egy adott kiadsra. Pldul a kvetkez paramterek megadsval vlthatunk a FreeBSD 6.4 hasznlatra:
# freebsd-update -r 6.4-RELEASE upgrade

A parancs elindulsa utn nem sokkal, a vltshoz szksges informcik sszegyjtshez a freebsd-update elemzi a kongurcis llomnyban megadott belltsokat s a rendszer jelenleg hasznlt verzijt. A kpernyn ekkor sorban megjelennek a program rszrl rzkelt s nem rzkelt komponensek. Mint pldul ahogy itt lthat:
Looking up update.FreeBSD.org mirrors... 1 mirrors found. Fetching metadata signature for 6.3-RELEASE from update1.FreeBSD.org... done. Fetching metadata index... done. Inspecting system... done. The following components of FreeBSD seem to be installed: kernel/smp src/base src/bin src/contrib src/crypto src/etc src/games src/gnu src/include src/krb5 src/lib src/libexec src/release src/rescue src/sbin src/secure src/share src/sys src/tools src/ubin src/usbin world/base world/info world/lib32 world/manpages The following components of FreeBSD do not seem to be installed: kernel/generic world/catpages world/dict world/doc world/games world/proflibs Does this look reasonable (y/n)? y

625

Fejezet 24. A FreeBSD frisstse s frissen tartsa Ekkor a freebsd-update megprblja letlteni a verzik kzti vltshoz szksges sszes llomnyt. Bizonyos esetekben krdsekkel fordul a felhasznl fel arra vonatkozan, hogy miket teleptsen fel vagy mit csinljon. A sajt rendszermag hasznlatakor az imnti lps valamilyen ehhez hasonl gyelmeztetst fog adni:
WARNING: This system is running a "SAJT RENDSZERMAG " kernel, which is not a kernel configuration distributed as part of FreeBSD 6.3-RELEASE. This kernel will not be updated: you MUST update the kernel manually before running "/usr/sbin/freebsd-update install"

Ez a gyelmeztets most nyugodtan gyelmen kvl hagyhat. A folyamat sorn a frisstett GENERIC rendszermagot fogjuk hasznlni. A javtsok letltst kveten megkezddik a teleptsk. A vlts ezen lpse az adott gp aktulis terhelstl s sebessgtl fggen vltoz hosszsg lehet. Ezutn a kongurcis llomnyok sszefslse zajlik le itt ltalban a emberi felgyeletre is szksg van az llomnyok sszefslsnek irnytshoz, amelynek folyamatosan lthatak az eredmnyei. A meghisult vagy kihagyott sszefslsek a teljes frisstsi folyamat lellst vonjk maguk utn. Az /etc knyvtrban trolt fontosabb llomnyokrl, mint pldul a master.passwd vagy group javasolt elzetesen biztonsgi mentst kszteni s ksbb kzzel hozzjuk adni a vltoztatsaikat.
Megjegyzs: A rendszerben ekkor mg nem lesz jelen semmilyen konkrt vltozs, az sszes emltett javts s sszefsls egy kln knyvtrban trtnik. A teleptett javtsokat s az sszefslt kongurcis llomnyokat a folyamat vgn magnak a felhasznlnak kell vglegesteni.

A frisstsi eljrs vgn a kvetkez parancs kiadsval tudjuk tnylegesen rvnyesteni az eddig elvgzett mdostsokat:
# freebsd-update install

Elszr mindig a rendszermag s a hozztartoz modulok cserldnek le. Ahogy ez vgrehajtdott, jra kell indtanunk a rendszert. Ha sajt rendszermagot hasznlunk, akkor a nextboot(8) parancs segtsgvel lltsuk be a kvetkez rendszerindts sorn betltend rendszermagot a /boot/GENERIC knyvtrban levre (ezt frisstettk):
# nextboot -k GENERIC

FigyelemMieltt jraindtannk a gpnket a GENERIC rendszermaggal, gyzdjnk meg rla, hogy szerepel benne minden olyan meghajt, amely elengedhetetlen a rendszer hinytalan indtshoz (s kpes lesz jra csatlakozni a hlzathoz, ha ppen tvolrl adminisztrljuk). Ez klnsen olyan esetben fontos, amikor a sajt rendszermagunkban beptetten szerepeltek bizonyos modulok. Ilyenkor a GENERIC rendszermag hasznlatakor ezeket a /boot/loader.conf llomnyon keresztl tltethetjk be ideiglenesen. A frissts befejezsig rdemes viszont minden nem ltfontossg szolgltatst lelltani, levlasztani lemezeket s hlzati megosztsokat stb.

A rendszernk most mr jraindthat a frisstett rendszermaggal:


# shutdown -r now

626

Fejezet 24. A FreeBSD frisstse s frissen tartsa A rendszer sikeres jraindulsa utn ismt el kell indtanunk a freebsd-update programot, amely korbban mr elmentette a frissts llapott, emiatt a legutbbi pontrl fog folytatdni, illetve trli az osztott knyvtrak s trgykdok rgebbi vltozatait. Innen az albbi paranccsal lphetnk tovbb:
# freebsd-update install

Megjegyzs: A fggvnyknyvtrak verzii kzti eltrsek mrtktl fggen elkpzelhet, hogy a telepts az emltett hrom fzis helyett kettben trtnik.

Most pedig jra kell fordtanunk vagy teleptennk az sszes ltalunk korbban hasznlt kls alkalmazst. Erre azrt van szksgnk, mert bizonyos alkalmazsok a verzik kzti vlts sorn trlt programknyvtraktl fggtek. Ennek automatizlsban a ports-mgmt/portupgrade lesz segtsgnkre. Az alkalmazsok frisstsnek elindtshoz a kvetkez parancsokat hasznljuk:
# # # # # portupgrade -f ruby rm /var/db/pkg/pkgdb.db portupgrade -f ruby18-bdb rm /var/db/pkg/pkgdb.db /usr/ports/INDEX-*.db portupgrade -af

A parancsok lefutst kveten a freebsd-update utols hvsval zrjuk le a frisstst. Ezzel a paranccsal tudunk teht pontot tenni a frisstsi procedra vgre:
# freebsd-update install

Ha a GENERIC rendszermagot csak tmenetileg hasznltuk, akkor most mr a megszokott mdon fordthatunk s telepthetnk magunk egy sajt rendszermagot. Indtsuk jra a rendszert a FreeBSD frisstett vltozatval. A folyamat ezzel vget rt.

24.2.4. Rendszerek llapotainak sszehasonltsa


A freebsd-update ragyogan felhasznlhat a FreeBSD egy teleptett vltozatnak s egy ltalunk garantltan megbzhat pldnynak sszevetsre. Ilyenkor a rendszerhez tartoz segdprogramokat, programknyvtrakat s kongurcis llomnyokat ellenriztethetjk le. Az sszehasonltst ezzel a paranccsal kezdhetjk meg:
# freebsd-update IDS >> eredmeny.idk

FigyelemHabr a parancs neve IDS (intrusion detection system), nem helyettest semmilyen olyan behatolsjelz megoldst, mint amilyen pldul a security/snort. Mivel a freebsd-update adatokat trol a lemezen, teljesen kzenfekv a hamists lehetsge. Mg ennek eshetsge adott mrtkben visszaszorthat a kern.securelevel cskkentsvel s a freebsd-update ltal hasznlt adatok rsvdett llomnyrendszerre helyezsvel, erre a problmra az idelis megoldst mgis egy teljes biztonsgban tudhat referencia rendszer jelentheti. Ennek trolsra alkalmas lehet pldul egy DVD vagy egy kls USB-egysg.

A parancs kiadsa utn megkezddik a rendszer vizsglata, s az ellenrzs sorn folyamatosan jelennek meg az tvizsglt llomnyok a hozzjuk tartoz ismert s kiszmtott sha256(1)-kdjukkal egytt. Mivel a kpernyn

627

Fejezet 24. A FreeBSD frisstse s frissen tartsa tlsgosan gyorsan elsznnak az eredmnyek, ezrt ezeket egy eredmeny.idk nev llomnyba mentjk a ksbbi elemzsekhez. Az gy keletkez llomny sorai ugyan meglehetsen hosszak, de szerencsre viszonylag knnyen rtelmezhetek. Pldul az adott kiadsban szerepl llomnyoktl eltreket ezzel a paranccsal krdezhetjk le:
# cat eredmeny.idk | awk { print $1 } | more

/etc/master.passwd /etc/motd /etc/passwd /etc/pf.conf

A pldban most csak az els nhny llomnyt hagytuk meg, gyakran tapasztalhatunk viszont ennl tbbet. Ezek kzl bizonyos llomnyok rtelemszeren eltrnek, mint itt pldul az /etc/passwd, mert idkzben j felhasznlkat adtunk a rendszerhez. Mskor egyb llomnyok, pldul modulok nevei is felbukkanhatnak, mert tegyk fel, hogy a freebsd-update mr frisstette ezeket. Ha ki szeretnnk zrni valamilyen llomnyokat vagy knyvtrakat az ellenrzsbl, egyszeren csak soroljuk fel ezeket az /etc/freebsd-update.conf llomnyban megjelen IDSIgnorePaths belltsnl. A korbban trgyaltaktl fggetlenl ez a rendszer alkalmas bonyolultabb frisstsi folyamatok kisegtsre is.

24.3. A Portgyjtemny frisstse a Portsnap hasznlatval


rta: Tom Rhodes. A megrshoz felhasznlt jegyzeteket ksztette: Colin Percival. A FreeBSD alaprendszer a Portgyjtemny frisstshez is tartalmaz egy portsnap(8) elnevezs segdprogramot. Ez a program elindtsa utn csatlakozik egy tvoli gphez, ellenrzi a biztonsgi kulcst s letlti a portok legfrissebb vltozatait. A biztonsgi kulcs feladata a frissts kzben letlttt llomnyok srtetlensgnek szavatolsa, ezzel gondoskodik rla, hogy az adatok tvitelk kzben nem vltoztak meg. A Portgyjtemny legjabb vltozatt gy rhetjk el:
# portsnap fetch

Looking up portsnap.FreeBSD.org mirrors... 3 mirrors found. Fetching snapshot tag from portsnap1.FreeBSD.org... done. Fetching snapshot metadata... done. Updating from Wed Aug 6 18:00:22 EDT 2008 to Sat Aug 30 20:24:11 EDT 2008. Fetching 3 metadata patches.. done. Applying metadata patches... done. Fetching 3 metadata files... done. Fetching 90 patches.....10....20....30....40....50....60....70....80....90. done. Applying patches... done. Fetching 133 new ports or files... done.

A pldban lthat, hogy a portsnap(8) eltrseket tallt a helyi s a tvoli rendszerekben fellelhet portok kztt, majd azokat ellenrizte. Emellett az is meggyelhet, hogy korbban mr futtatuk a programot, mivel ha most indtottuk volna az els alkalommal, akkor egyszeren letlttte volna a teljes Portgyjtemnyt.

628

Fejezet 24. A FreeBSD frisstse s frissen tartsa Ahogy a portsnap(8) sikeresen befejezi az imnt kiadott fetch mvelet vgrehajtst, a helyi rendszeren mr teleptsre kszen fognak vrakozni a Portgyjtemny s az hozztartoz ellenrztt mdostsok. A portsnap els hasznlatakor az extract parancs segtsgvel telepthetjk a frisstett llomnyokat:
# portsnap extract

/usr/ports/.cvsignore /usr/ports/CHANGES /usr/ports/COPYRIGHT /usr/ports/GIDs /usr/ports/KNOBS /usr/ports/LEGAL /usr/ports/MOVED /usr/ports/Makefile /usr/ports/Mk/bsd.apache.mk /usr/ports/Mk/bsd.autotools.mk /usr/ports/Mk/bsd.cmake.mk
...

A portsnap fetch ksbbi futtatsakor viszont mr az update parancsot kell hasznlnunk:


# portsnap update

Ezzel lezrult a portok frisstse, innentl mr az aktualizlt Portgyjtemny felhasznlsval tetszlegesen telepthetek vagy frissthetek az alkalmazsok. A fetch, extract vagy update mveletek egyetlen parancsba is sszefzhetek, ahogy ezt az albbi pldban is lthatjuk:
# portsnap fetch update

24.4. A dokumentci frisstse


Az alaprendszer s a Portgyjtemny mellett a dokumentci is a FreeBSD opercis rendszer szerves rszt kpezi. Noha a FreeBSD dokumentcijnak legfrissebb vltozata folyamatosan elrhet a FreeBSD honlapjrl (http://www.freebsd.org/doc), egyes felhasznlk ezt csak lassan vagy nem kpesek folyamatosan elrni. Szerencsre egy helyi msolat megfelel karbantartsval az egyes kiadsokhoz tartoz dokumentci is frissthet.

24.4.1. A dokumentci frisstse CVSup hasznlatval


A FreeBSD teleptett dokumentcijnak forrsai az alaprendszerhez hasonlan (lsd 24.7 Szakasz) a CVSup segtsgvel frissthetek. Ebben a szakaszban megismerhetjk:

hogyan teleptsk a dokumentci ellltshoz szksges eszkzket, amelyekkel a forrsokbl jra tudjuk generlni a FreeBSD dokumentcijt; hogyan tltsk le a dokumentci forrst CVSup segtsgvel a /usr/doc knyvtrba; a dokumentci ellltshoz alkalmazott rendszer milyen belltsokkal rendelkezik, vagyis hogyan korltozzuk a generlst bizonyos nyelvekre vagy formtumokra.

629

Fejezet 24. A FreeBSD frisstse s frissen tartsa

24.4.2. A CVSup s a dokumentcis eszkzk teleptse


Viszonylag sokfle eszkzre lesz szksgnk, ha a FreeBSD dokumentcijt a forrsokbl akarjuk ellltani. Ezek az segdprogramok nem rszei a FreeBSD alaprendszernek, mivel alapveten nagyon sok helyet foglalnak el, s leginkbb olyan FreeBSD felhasznlk szmra fontosak, akik folyamatosan a dokumentcival dolgoznak vagy gyakran frisstik azt forrsbl. A feladathoz szksges sszes eszkz elrhet a Portgyjtemnybl. Ebben a FreeBSD Dokumentcis Projekt sszelltott egy textproc/docproj nev portot, amellyel az emltett programok teleptst s frisstst igyekeztk megknnyteni.
Megjegyzs: Ha nem tartunk ignyt a dokumentci PostScript vagy PDF vltozatra, akkor ehelyett inkbb rdemes megfontolnunk a textproc/docproj-nojadetex port teleptst. Ebben a vltozatban a teTeX betszed rendszer kivtelvel az sszes segdprogram megtallhat. Mivel a teTeX nmagban nagyon sok segdeszkz teleptst jelenti, ezrt amennyiben a PDF vltozat tnylegesen nem szksges, rdemes eltekinteni a teleptstl.

A CVSup teleptsvel kapcsolatban pedig rszletesebb informcikat a CVSup hasznlatval foglalkoz szakaszban olvashatunk.

24.4.3. A dokumentci forrsnak frisstse


A /usr/share/examples/cvsup/doc-supfile kongurcis llomny segtsgvel a CVSup kpes letlteni a dokumentci forrsllomnyainak legfrissebb pldnyait. Itt a frisstst alaprtelmezs szerint egy nem ltez gptl fogjuk krni (mivel ezt ktelez kitlteni), azonban a cvsup(1) programnak egy parancssori paramter segtsgvel megadhatjuk melyik CVSup szerverrl tltse le a forrsokat:
# cvsup -h cvsup.FreeBSD.org -g -L 2 /usr/share/examples/cvsup/doc-supfile

Ne felejtsk el a cvsup.FreeBSD.org helyre berni a hozznk fldrajzilag legkzelebb elhelyezked CVSup szervert. Ezek teljes listjt a A.6.7 Szakasz tartalmazza. Egy ideig eltarthat, amg elszr letltjk a forrsokat. Vrjuk meg trelmesen, amg befejezdik a mvelet. Ksbb a forrsokat ugyanezzel a paranccsal tudjuk frissteni. A CVSup ugyanis mindig csak a legutbbi futtatsa ta trtnt vltozsokat tlti le, ezrt ksbb mr ez a lps jelentsen felgyorsulhat. A forrsok letltse utn a dokumentcit pldul az ekkor keletkezett /usr/doc knyvtrban tallhat Makefile hasznlatval llthatjuk el. Teht miutn az /etc/make.conf llomnyban belltottuk a SUP_UPDATE, SUPHOST s DOCSUPFILE vltozkat, le tudjuk futtatni a kvetkez parancsot:
# cd /usr/doc # make update

Az elbb emltett make(1) vltozk jellemz rtkei:


SUP_UPDATE= yes SUPHOST?= cvsup.freebsd.org DOCSUPFILE?= /usr/share/examples/cvsup/doc-supfile

630

Fejezet 24. A FreeBSD frisstse s frissen tartsa


Megjegyzs: Mivel a SUPHOST s a DOCSUPFILE vltozk rtkt a ?= szimblummal lltottuk be, lehetsgnk van a parancssorbl ezeknek ms rtkeket adni. Az /etc/make.conf llomnyba ltalban gy rdemes felvenni a vltozkat, gy nem kell minden alkalommal mdostani, amikor valamilyen j belltst akarunk kiprblni.

24.4.4. A dokumentci klnbz belltsai


A FreeBSD dokumentcijhoz tartoz, frisstst s ellltst vgz rendszernek van nhny olyan belltsa, amelyekkel krhetjk kizrlag csak a dokumentci egyes rszeinek frisstst vagy bizonyos kimeneti formtumok hasznlatt. Ezek vagy globlisan az /etc/make.conf llomnyban, vagy pedig a parancssorbl, a make(1) program paramtereknt adhatak meg. zeltl nhny kzlk:
DOC_LANG

Az ellltand s teleptend nyelv dokumentci felsorolsa, teht pldul csak az angol dokumentci esetn ez en_US.ISO8859-1.
FORMATS

Az ellltand dokumentci kimeneti formtumainak felsorolsa. Itt pillanatnyilag rtkknt a html, html-split, txt, ps, pdf s rtf jelenhet meg.
SUPHOST

A frisstshez hasznlt CVSup szerver hlzati neve.


DOCDIR

Az elkszlt dokumentci teleptsnek helye. Ez alaprtelmezs szerint a /usr/share/doc. A folyamathoz kapcsoldan tovbbi rendszerszint make(1) vltozkrl a make.conf(5) man oldalon olvashatunk. A FreeBSD dokumentcijnak ellltsrt felels rendszerben hasznlhat make(1) tovbbi vltozk bemutatsval kapcsolatban pedig olvassuk el az A FreeBSD Dokumentcis Projekt irnyelvei kezdknek (http://www.FreeBSD.org/doc/hu_HU.ISO8859-2/books/fdp-primer) cm knyvet.

24.4.5. A FreeBSD dokumentcijnak teleptse forrsbl


Miutn sikerlt letltennk a /usr/doc knyvtrba a dokumentci legfrissebb forrsait, kszen llunk a rendszernkn teleptett pldny frisstsre. A DOCLANG rtkeknt megadott nyelven kszlt dokumentcikat a kvetkez paranccsal tudjuk frissteni:
# cd /usr/doc # make install clean

Ha a make.conf llomnyban korbban mr megadtuk a DOCSUPFILE, SUPHOST s SUP_UPDATE vltozk rtkeit, akkor a telepts fzisa knnyedn ssze is vonathat a forrsok frisstsvel:

631

Fejezet 24. A FreeBSD frisstse s frissen tartsa


# cd /usr/doc # make update install clean

Ha pedig csak bizonyos nyelvekhez tartoz dokumentcit szeretnnk frissteni, akkor a make(1) akr a /usr/doc knyvtron bell az egyes nyelvekhez tartoz alknyvtrakon bell is meghvhat, pldul:
# cd /usr/doc/en_US.ISO8859-1 # make update install clean

A dokumentci formtumt a FORMATS vltoz felhasznlsval tudjuk meghatrozni:


# cd /usr/doc # make FORMATS=html html-split install clean

24.4.6. A dokumentcis portok hasznlata


A szbanforg megoldst fejlesztette: Marc Fonvieille. Ez elz szakaszban megmutattuk hogyan lehet a FreeBSD dokumentcijt a forrsok felhasznlsval frissteni. A forrsok hasznlatval vgzett frissts azonban nem minden FreeBSD rendszer esetben lehetsges vagy hatkony. Ha ugyanis a dokumentcis forrsbl akarjuk ellltani, viszonylag sok eszkz s segdprogram, az n. dokumentcis eszkzk hasznlatval kell tisztban lennnk, valamint bizonyos mrtkig ismernnk kell a CVS hasznlatt, tudunk kell kikrni a legfrissebb vltozatot s ellltatattnunk belle a vgleges vltozatot. Ezrt ebben a szakaszban most szt ejtnk egy olyan mdszerrl, ahol a FreeBSD dokumentcijt a Portgyjtemnyen keresztl tudjuk frissteni, ezltal:

anlkl le tudjuk tlteni s telepteni a dokumentci adott pillanatban generlt vltozatt, hogy a rendszernkn brmi tovbbi teendre szksg lenne (ennek ksznheten nem kell teleptennk a dokumentcis eszkzket); letlthetjk a dokumentci forrst s a Portgyjtemny eszkzeivel elllthatjuk belle a megfelel vltozatot (ez a forrsok beszerzsben s feldolgozsban segt valamelyest).

A FreeBSD dokumentci frisstsnek fentebb emltett mdjait tmogatjk teht a dokumentcis portok, amelyeket a Documentation Engineering Team <doceng@FreeBSD.org> havi rendszeressggel tart karban. Ezek a portok a FreeBSD Portgyjtemnyn bell a docs (http://www.freshports.org/docs/) nev virtulis kategriban tallhatak meg.

24.4.6.1. A dokumentcis portok fordtsa s teleptse


A dokumentci knnyebb ellltshoz a dokumentcis portok a Portgyjtemny lehetsgeit veszik ignybe. Segtsgkkel automatikuss teszik a dokumentci forrsnak letltst, a make(1) parancs meghvst a megfelel krnyezetben, belltsokkal s parancssori paramterekkel. Rajtuk keresztl a dokumentci eltvoltsa ugyanolyan egyszeren megtehet, mint akrmelyik msik FreeBSD port vagy csomag esetben.
Megjegyzs: Tovbb, amikor a dokumentcis portokat a sajt rendszernkn fordtjuk, a dokumentcis eszkzk fggsgknt automatikusan teleplni fognak.

A dokumentcis portok a kvetkez mdon szervezdnek:

632

Fejezet 24. A FreeBSD frisstse s frissen tartsa

Ltezik egy n. fport, a misc/freebsd-doc-en, ahol az sszes fontosabb llomny megtallhat. Ez lnyegben a dokumentcis portok kzs se. Alaprtelmezs szerint kizrlag csak az angol nyelv dokumentcit lltja el. Ltezik egy mindenes port, a misc/freebsd-doc-all, amely az sszes elrhet nyelven s formtumban ellltja a dokumentcit. Vgezetl minden nyelvhez ltezik egy-egy alport, ilyen pldul a magyar dokumentci esetn a misc/freebsd-doc-hu port. Mindegyikk a fporttl fgg s az adott nyelv dokumentcit teleptik.

Az eddigi sszefoglaltaknak megfelelen a dokumentcis portokat forrsbl a kvetkez paranccsal lehet telepteni (root felhasznlknt):
# cd /usr/ports/misc/freebsd-doc-en # make install clean

Ennek hatsra elll s teleptdik a /usr/local/share/doc/freebsd knyvtrba az angol nyelv dokumentci llomnyokra bontott HTML formtumban (hasonlan a http://www.FreeBSD.org tartalmhoz). 24.4.6.1.1. Gyakori belltsok A dokumentcis portok alaprtelmezett viselkedse tbb klnbz opci segtsgvel is befolysolhat. Ezek kzl most sszefoglalunk nhnyat:
WITH_HTML

Minden dokumentum egyetlen HTML llomnyba kerljn. A vgeredmny ekkor az adott dokumentum tpusnak megfelelen article.html (cikk) vagy book.html (knyv) nven keletkezik (kpekkel egytt).
WITH_PDF

Minden dokumentum Adobe Portable Document Format tpus llomnyban jn ltre. Ezek az llomnyok a Ghostscript vagy ms egyb PDF nzegetkkel nyithatak meg. Ekkor a dokumentci konkrt tpustl fggen az llomnyok article.pdf (cikk) vagy book.pdf (knyv) nven lltdnak el.
DOCBASE

A dokumentci teleptsnek helye. Alaprtelmezs szerint ez a /usr/local/share/doc/freebsd knyvtr.


Megjegyzs: gyeljnk arra, hogy a telepts alaprtelmezett clknyvtra eltr a CVSup mdszertl. Ugyanis mivel ilyenkor egy portot teleptnk, a tartalma alaprtelmezs szerint a /usr/local knyvtron bellre kerl. Ez azonban a PREFIX vltoz tlltsval tetszleges megvltoztathat.

Az elbbieket most egy rvid pldn keresztl sszefoglaljuk. A kvetkez paranccsal tudjuk teht a magyar nyelv dokumentci Portable Document Format vltozatt telepteni:
# cd /usr/ports/misc/freebsd-doc-hu # make -DWITH_PDF DOCBASE=share/doc/freebsd/hu install clean

633

Fejezet 24. A FreeBSD frisstse s frissen tartsa

24.4.6.2. A dokumentcis csomagok hasznlata


A dokumentcis portok elz szakaszban bemutatott forrsbl teleptsvel kapcsolatban mr emltettk, hogy szksges hozz a dokumentcis eszkzk teleptse, valamint nmi szabad trterlet. Ha a dokumentcis eszkzk teleptshez nem elengedek a rendelkezsre ll erforrsaink vagy a forrsok feldolgozsa tlsgosan sokat foglalna a rendszernkn, akkor lehetsgnk van a dokumentcis portok elre lefordtott, csomagolt vltozatt hasznlni. A Documentation Engineering Team <doceng@FreeBSD.org> minden hnapban elkszti a FreeBSD dokumentcis csomagok legfrissebb vltozatt. Az gy karbantartott binris csomagok azutn tetszlegesen hasznlhatak a szabvnyos csomagkezel eszkzkkel, mint amilyen pldul a pkg_add(1), pkg_delete(1) s gy tovbb.
Megjegyzs: A binris csomagok hasznlata esetn a FreeBSD dokumentcija az adott nyelvhez az sszes elrhet formtumban teleptsre kerl.

Pldul az albbi paranccsal a magyar nyelv dokumentcihoz tartoz legfrissebb binris csomagot tudjuk telepteni:
# pkg_add -r hu-freebsd-doc

Megjegyzs: A csomagok elnevezse eltr a hozztartoz port nevtl. Alakja a kvetkez: nyelv -freebsd-doc, ahol a nyelv az adott nyelv rvid kdja, vagyis a magyar esetn a hu, illetve az egyszerstett knai esetn a zh_ch.

24.4.6.3. A dokumentcis portok frisstse


Az elzetesen teleptett dokumentcis portok brmilyen portok frisstsre alkalmas eszkzzel frissthetek. Pldul a teleptett magyar nyelv dokumentci a ports-mgmt/portupgrade eszkzn keresztl gy frissthet csomagok hasznlatval:
# portupgrade -PP hu-freebsd-doc

24.5. A fejleszti g kvetse


A FreeBSD-nek kt fejlesztsi ga van: a FreeBSD.current s a FreeBSD-STABLE. Ebben a szakaszban mindegyikkrl monduk pr szt, s megmutatjuk, miknt lehet az adott ghoz igaztani a rendszernk frisstst. Elszr a FreeBSD-CURRENT, majd a FreeBSD-STABLE vltozata kerl trgyalsra.

634

Fejezet 24. A FreeBSD frisstse s frissen tartsa

24.5.1. A FreeBSD friss vltozatnak hasznlata


Ahogy arrl mr az imnt is sz esett, nem szabad elfelejtennk, hogy a FreeBSD-CURRENT a FreeBSD fejlesztsnek frontvonala. Emiatt a FreeBSD-CURRENT hasznlinak szakmailag jlkpzetteknek kell lennik, s sosem szabad visszariadniuk a hasznlat kzben felmerl rendszerszint problmk nll megoldstl. Ha korbban mg nem foglalkoztunk FreeBSD-vel, ktszer is gondoljuk meg a teleptst!

24.5.1.1. Mi a FreeBSD-CURRENT?
A FreeBSD-CURRENT a FreeBSD mgtt ll legfrissebb forrskdot kpviseli. Itt tallkozhatunk klnfle olyan fejleszts alatt ll rszekkel, ksrletezsekkel s tmeneti megoldsokkal, amelyek nem felttlenl kerlnek bele a szoftver kvetkez hivatalos kiadsba. Noha a FreeBSD fejleszti a FreeBSD-CURRENT forrskdjt naponta fordtjk, addhatnak olyan idszakok, amikor a forrsok mgsem hasznlhatak maradktalanul. Az ilyen gondokat ltalban a lehet leggyorsabban igyekeznek megoldani, azonban attl fggen, hogy ppen a forrskd melyik verzijt sikerlt kifogni, a FreeBSD-CURRENT hasznlata ksz katasztrfa vagy akr a fejldsben igazi tovbblps is lehet.

24.5.1.2. Kinek van szksge a FreeBSD-CURRENT-re?


A FreeBSD-CURRENT hasznlata elssorban az albbi 3 csoportot rinti: 1. A FreeBSD kzssg azon tagjait, akik aktvan dolgoznak a forrsfa valamelyik rszn, s mindazokat, akik szmra a legfrissebb verzi hasznlata felttlen elvrs. 2. A FreeBSD kzssg azon tagjait, akik aktvan tesztelnek, s a FreeBSD-CURRENT kordban tartshoz hajlandak idt ldozni a menet kzben felbukkan problmk megoldsra. Vannak olyanok is, akik a FreeBSD vltozsaival s fejlesztsi irnyval kapcsolatban kvnnak javaslatokat tenni, melyeket javtsok s mdostsok formjban tesznek kzz. 3. Mindazokat, akik pusztn kvncsiak a fejlesztsben zajl esemnyekre, vagy hivatkozsi szndkkal tltik le a legfrissebb forrsokat (pldul csak nzegetik, de nem futtatjk). Az ilyen emberek esetenknt megjegyzseket fznek a fejlesztshez vagy kdot kldenek be.

24.5.1.3. Mi nem a FreeBSD-CURRENT?


1. Az olyan kiads eltt ll funkcik kiprblsnak egyszer mdja, amelyekrl hallottunk, hogy milyen remek jdonsgokat hoznak s mi akarunk lenni az elsk, akik ezt hasznlni is fogjk. Ne feledjk azonban, hogy amikor mindenki eltt kezdnk el hasznlni egy jtst, mi lesznk egyben az elsk is, akik szembeslnek a benne rejl hibkkal. 2. A gyors hibajavtsok eszkze. A FreeBSD-CURRENT szinte brmelyik vltozata pontosan ugyanakkora valsznsggel hoz magval j hibkat, mint ahogy eltnteti a rgieket. 3. Akrmilyen rtelemben is hivatalosan tmogatott. Kpessgeinktl fggen szintn igyeksznk a lehet legtbbet megtenni a 3 trvnyes FreeBSD-CURRENT csoportba tartoz emberekrt, azonban egyszeren nincs idnk komolyabb segtsgnyjtst adni. Ez viszont nem azt jelenti, hogy komisz s fukar emberek vagyunk, akik utlnak segteni a msiknak (de msklnben nem tudna fejldni a FreeBSD). Csupn a FreeBSD fejlesztse kzben zikailag kptelenek vagyunk a naponta rkez ezernyi zenetet rendre megvlaszolni! A

635

Fejezet 24. A FreeBSD frisstse s frissen tartsa FreeBSD elremozdtsa s a ksrleti stdiumban ll kddal kapcsolatos krdsek megvlaszolsa kzl a fejlesztk ltalban az elst rszestik elnyben.

24.5.1.4. A FreeBSD-CURRENT hasznlata


1. Iratkozzunk fel az freebsd-current (http://lists.FreeBSD.org/mailman/listinfo/freebsd-current) s svn-src-head (http://lists.FreeBSD.org/mailman/listinfo/svn-src-head) listkra. Ez nem egyszeren hasznos, hanem elengedhetetlen. Ha nem vagyunk a freebsd-current (http://lists.FreeBSD.org/mailman/listinfo/freebsd-current) listn, akkor nem fogjuk ltni a rendszer aktulis llapotra vonatkoz megjegyzseket, s gy esetleg feleslegesen ljk az idnket olyan problmk megoldsba, amelyeket msok mr korbban megoldottak. Ami viszont ennl is fontosabb, hogy gy elszalasztjuk a rendszernk folyamatos letbentartsra vonatkoz ltfontossg bejelentseket. Az svn-src-head (http://lists.FreeBSD.org/mailman/listinfo/svn-src-head) listn lthatjuk az a forrskd egyes vltoztatsaihoz tartoz naplbejegyzseket, a hozzjuk tartoz esetleges mellkhatsok ismertetsvel egytt. A listkra vagy a http://lists.FreeBSD.org/mailman/listinfo oldalon tallhat tbbi lista valamelyikre gy tudunk feliratkozni, ha rkattintunk a nevre. A tovbbi lpsekrl ezt kveten itt kapunk rtestst. Amennyiben a teljes forrsfa vltozsai rdekelnek minket, javasoljuk az svn-src-all (http://lists.FreeBSD.org/mailman/listinfo/svn-src-all) lista olvasst. 2. A tkrzsek egyikrl tltsk le a FreeBSD forrst. Erre kt md is knlkozik: a. Hasznljuk a cvsup programot a /usr/share/examples/cvsup knyvtrban tallhat standard-supfile llomnnyal. Ez a leginkbb ajnlott mdszer, hiszen gy csak egyszer kell letlteni az egsz gyjtemnyt, majd ezutn mr csak a vltozsokat. Sokan a cvsup parancsot a cron parancson keresztl adjk ki, s ezzel mindig automatikusan frisstik a forrsaikat. A cvsup mkdst a fentebb emltett minta supfile llomny megfelel mdostsval tudjuk a sajt krnyezetnkhz igaztani.
Megjegyzs: Az emltett standard-supfile llomny eredetileg nem a FreeBSD-CURRENT, hanem inkbb a FreeBSD biztonsgi problmit rint javtsok kvetsre hasznlatos. A FreeBSD-CURRENT forrsainak elrshez a kvetkez sort kell kicserlnnk ebben az llomnyban:
*default release=cvs tag=RELENG_X _Y

Erre:
*default release=cvs tag=.

A tag paramtereknt megadhat egyb cmkkrl a kziknyv CVS cmkk szakaszban olvashatunk.

b. Hasznljuk a CTM alkalmazs nyjtotta lehetsgeket. Amennyiben nagyon rossz netkapcsolattal rendelkeznk (drga vagy csak levelezsre hasznlhat) a CTM megoldst jelenthet szmunkra. Legynk azonban tekintettel arra, hogy helyenknt zrs lehet a hasznlata s nha hibs llomnyokat gyrt. Emiatt viszont csak ritkn hasznljk, gy elfordulhat, hogy hosszabb ideig nem is mkdik. A 9600 bps vagy annl nagyobb sebessg kapcsolatok esetn ezrt inkbb a CVSup hasznlatt javasoljuk.

636

Fejezet 24. A FreeBSD frisstse s frissen tartsa 3. Ha nem csak bngszsre, hanem fordtsra is szedjk a forrsokat, mindig tltsk le a FreeBSD-CURRENT egszt, ne csak egyes rszeit. Ez azzal magyarzand, hogy a forrskd bizonyos rszei ms helyeken tallhat rszektl is fggenek, s ezrt az nll fordtsuk szinte garantltan gondot fog okozni. A FreeBSD-CURRENT lefordtsa eltt gyelmesen olvassuk t a /usr/src knyvtrban tallhat Makefile llomnyt. A frisstsi folyamat rszeknt elszr mindenkppen rdemes telepteni egy j rendszermagot s jrafordtani az alaprendszert. Olvassuk el a FreeBSD-CURRENT levelezsi lista (http://lists.FreeBSD.org/mailman/listinfo/freebsd-current) zeneteit s a /usr/src/UPDATING llomnyt, ahol megtallhatjuk az ezzel kapcsolatos legjabb informcikat, melyek egy-egy jabb kiads kzeledtvel egyre fontosabb vlnak. 4. Foglalkozzunk vele! Ha mr a FreeBSD-CURRENT vltozatt hasznljuk, ne legynk restek vlemnyt formlni rla, klnsen abban az esetben, ha tovbbfejlesztsekrl vagy hibkra van sz. Leginkbb a forrskddal egytt rkez javaslatoknak szoktak rlni a fejlesztk!

24.5.2. A FreeBSD stabil vltozatnak hasznlata


24.5.2.1. Mi a FreeBSD-STABLE?
A FreeBSD-STABLE az a fejlesztsi g, ahonnan az egyes kiadsok szrmaznak. Ebbe az gba mr ms temben kerlnek a vltozsok, mivel ltalnosan elfogadott, hogy ide a korbban mr kiprblt mdostsok vndorolnak t a FreeBSD-CURRENT gbl. Ez azonban mg mindig csak egy fejlesztsi g, ami arra utal, hogy a FreeBSD-STABLE ltal adott pillanatban kpviselt forrsok nem felttlenl felelnek meg bizonyos clokra. Ez csupn egy jabb fejlesztsi nyomvonal, nem pedig a vgfelhasznlk kenyere.

24.5.2.2. Kinek van szksge a FreeBSD-STABLE-re?


Ha szeretnnk gyelemmel ksrni vagy valamilyen mdon kiegszteni a FreeBSD fejlesztsi folyamatt, klnsen a FreeBSD kvetkez nagyobb kiadst illeten, akkor rdemes kvetnnk a FreeBSD-STABLE forrsait. Habr a FreeBSD-STABLE gba is bekerlnek a biztonsgi jelleg javtsok, ettl mg nem kell felttlenl ezt kvetnnk. A FreeBSD-hez kiadott biztonsgi gyelmeztetsek mindig lerjk, hogyan kell javtani a hibt az rintett kiadsokban 1 , azonban az egsz fejlesztsi gat felesleges csak biztonsgi okbl kifolylag kvetni, mivel gy olyan vltozsok is kerlhetnek a rendszerbe, amire nincs szksgnk. Habr igyeksznk gondoskodni a FreeBSD-STABLE gban tallhat forrsok lefordthatsgrl s mkdkpessgrl, nem minden esetben szavatolhat. Radsul mivel a FreeBSD-STABLE gba kerl kdokat elszr a FreeBSD-CURRENT gban fejlesztik ki, s mivel a FreeBSD-STABLE felhasznli tbben vannak a FreeBSD-CURRENT vltozatnl, ezrt szinte elkerlhetetlen, hogy ilyenkor a FreeBSD-STABLE vltozatban bizonyos hibk s szlssges esetek be ne kvetkezzenek, amelyek a FreeBSD-CURRENT hasznlata sorn mg nem buktak ki. Ezrt a FreeBSD-STABLE g vakon kvetst senkinek sem ajnljuk, s klnsen fontos, hogy les szervereken elzetes kimert tesztelsek nlkl ne futassunk FreeBSD-STABLE rendszert. Ha ehhez nem rendelkeznk elegend erforrssal, akkor egyszeren hasznljuk a FreeBSD legfrissebb kiadst, s az egyes kiadsok kztt pedig binris frisstssel kzlekedjnk.

637

Fejezet 24. A FreeBSD frisstse s frissen tartsa

24.5.2.3. A FreeBSD-STABLE hasznlata


1. Iratkozzunk fel a freebsd-stable (http://lists.FreeBSD.org/mailman/listinfo/freebsd-stable) listra. Ezen keresztl rteslhetnk a FreeBSD-STABLE hasznlata sorn felmerl fordtsi fggsgekrl vagy ms, kln gyelmet ignyl problmkrl. Gyakran ezen a levelezsi listn elmlkednek a fejlesztk a vitatott javtsokrl vagy frisstsekrl, amibe a felhasznlk is beleszlhatnak, ha a szbanforg vltoztatssal kapcsolatban brmilyen problmjuk vagy tletnk van. Iratkozzunk fel a kvetni kvnt ghoz tartoz SVN levelezsi listra. Pldul ha a 7-STABLE g vltozsait kvetjk, akkor az svn-src-stable-7 (http://lists.FreeBSD.org/mailman/listinfo/svn-src-stable-7) listra rdemes feliratkoznunk. Ennek segtsgvel elolvashatjuk az egyes vltoztatsokhoz tartoz naplbejegyzseket, a rjuk vonatkoz esetleges mellkhatsok ismertetsvel egytt. Ezekre, valamint a http://lists.FreeBSD.org/mailman/listinfo cmen elrhet listk valamelyikre gy tudunk feliratkozni, ha a nevkre kattintunk. A tovbbi teendk ezutn itt jelennek meg. 2. Amennyiben egy j rendszert akarunk telepteni s a FreeBSD-STABLE havonta kszlt pillanatkpeit akarjuk rajta futtatni, akkor errl bvebb felvilgostst a Pillanatkpek (http://www.FreeBSD.org/snapshots/) honlapjn tallhatunk (angolul). Emellett a legfrissebb FreeBSD-STABLE kiadst telepthetjk a tkrzsek valamelyikrl is, majd innen a lentebb tallhat utastsok szerint tudunk hozzfrni a FreeBSD-STABLE forrskdjnak legfrissebb vltozathoz. Ha mr fut a gpnkn a FreeBSD egy korbbi kiadsa, s ezt akarjuk forrson keresztl frissteni, akkor ezt a FreeBSD tkrzseivel knnyedn megtehetjk. Kt mdon is: a. Hasznljuk a cvsup programot a /usr/share/examples/cvsup knyvtrbl szrmaz stable-supfile llomnnyal. Ez a leginkbb ajnlott mdszer, mivel gy csak egyszer kell letlteni a teljes gyjtemnyt, utna mr csak a hozztartoz vltoztatsokra van szksgnk. A cvsup parancsot sokan a cron segtsgvel futtatjk, s ezzel automatikusan frisslnek a forrsainak. A cvsup mkdst krnyezetnkhz az elbb emltett minta supfile megfelel mdostsval tudjuk behangolni. b. Hasznljuk a CTM programot. Ha nincs olcs vagy gyors internetkapcsolatunk, akkor rdemes ezt a mdszert vlasztani.

3. Alapveten azonban ha gyorsan szeretnnk hozzjutni a forrsokhoz s a svszlessg nem meghatroz tnyez, akkor helyette vlasszuk a cvsup vagy az ftp hasznlatt, s csak minden ms esetben CTM-et. 4. Mieltt lefordtannk a FreeBSD-STABLE vltozatt, gyelmesen olvassuk t a /usr/src knyvtrban lev Makefile llomnyt. Az tllsi folyamat rszeknt elszr minden bizonnyal teleptennk kell egy j rendszermagot s jra kell fordtanunk az alaprendszert. A FreeBSD-STABLE levelezsi lista (http://lists.FreeBSD.org/mailman/listinfo/freebsd-stable) valamint a /usr/src/UPDATING elolvassbl rteslhetnk azokrl az egyb, gyakran nagyon fontos vltozsokrl, melyek elengedhetetlenek lesznek a kvetkez kiads hasznlathoz.

24.6. A forrs szinkronizlsa


Az internet (vagy elektronikus levelek) hasznlatn keresztl szmos md knlkozik az FreeBSD Projekthez tartoz forrsok frissen tartshoz egy adott, vagy ppen az sszes terleten attl fggen, hogy mik rdekelnek minket.

638

Fejezet 24. A FreeBSD frisstse s frissen tartsa Ehhez elssorban az Anonim CVS, CVSup s CTM szolgltatsokat ajnljuk fel.
FigyelemHabr lehetsges csupn a forrsfa egyes rszeit letlteni, a tmogatott frisstsi eljrs sorn azonban szksgnk lesz az egsz fa szinkronizlsra s a rendszerhez tartoz felhasznli programok (vagyis minden olyan program, amely a felhasznli trben fut, ilyeneket tallhatunk tbbek kzt a /bin s /sbin knyvtrakban) valamint rendszermag jrafordtsra is. Ha csak a felhasznli programok forrsait, vagy csak a rendszermagot, esetleg csupn a forrsfa egyes rszeit frisstjk, akkor az gondokat okozhat. Az itt elfordul problmk fordtsi hibktl kezdve rendszersszeomlsokon keresztl akr adatvesztsbe is torkollhatnak.

Az Anonim CVS s a CVSup alkalmazsok n. lehzssal frisstik a forrsokat. A CVSup hasznlatakor a felhasznl (vagy a cron szkript) meghvja a cvsup programot, amely az llomnyok aktualizlshoz felveszi a kapcsolatot egy mshol megtallhat cvsupd szerverrel. Az gy nyert frisstsek az adott pillanatig visszemenleg rkeznek meg, de csak akkor, ha ignyeljk ezeket. A frisstst knnyedn le tudjuk szablyozni a szmunkra rdekes egyes llomnyokra s knyvtrakra. A frisstseket a szerver hozza ltre menet kzben annak megfelelen, hogy milyen verzikkal rendelkeznk, s mihez akarunk szinkronizlni. Az Anonim CVS a CVSupnl valamivel egyszerbb abban a tekintetben, hogy ez a CVS-nek egy olyan kiterjesztse, amely lehetv teszi a vltoztatsok kzvetlen lehzst egy tvoli CVS trhzbl. Mikzben a CVSup mindezt sokkal hatkonnyabb valstja meg, addig az Anonim CVS jval knnyebben hasznlhat. Velk szemben a CTM nem hasonltja ssze interaktvan a sajt s a kzponti szerveren trolt forrsokat s nem is hzza t ezeket. Ehelyett egy olyan szkriptl van sz, amely naponta tbbszr megvizsglja a kzponti CTM szerveren trolt llomnyok a legutbbi futtats ta keletkezett vltoztatsait, majd az szlelt mdosulsokat betmrti, felcmkzi egy sorozatszmmal s (nyomtathat ASCII formtumban) elkszti ezeket az e-mailen keresztli kldsre. Az gy ltrehozott CTM deltk megrkezsk utn a ctm_rmail(1) segdprogrammal kerlnek feldolgozsra, amely magtl visszaalaktja, ellenrzi s alkalmazza a vltoztatsokat a forrsfa felhasznl birtokban lev msolatra. Ez a megolds hatkonyabb a CVSup hasznlatnl, mert kisebb terhelst jelent a szerverek szmra, hiszen a frisstshez nem a lehzst, hanem a kldst alkalmazzk. Termszetesen minden emltett eljrsnak megvannak a maga kompromisszumai. Ha vletlenl kitrljk a forrsfnk egyes rszeit, a CVSup kpes ezt szrevenni s helyrelltani a srlt rszeket. A CTM ezzel szemben ezt nem vgzi el, szval ha (biztonsgi ments nlkl) letrljk a forrsainkat, akkor az egsz szinkronizlst az elejrl kell kezdennk (pontosabban a legfrissebb CVS-es alapdelttl) s a CTM-mel jrapteni az egszet, esetleg a Anonim CVS-sel letrlni a hibs adatokat s jraszinkronizlni.

24.7. Az alaprendszer jrafordtsa


Miutn sikerlt a helyi forrsfnkat a FreeBSD egy neknk szimpatikus (FreeBSD-STABLE, FreeBSD-CURRENT s gy tovbb) vltozathoz igaztanunk, elrkezett az id, hogy a segtsgvel jrafordtsuk az egsz rendszert.
Ksztsnk biztonsgi mentstNem tudjuk elgg nyomatkostani, hogy mieltt nekikezdennk, ksztsnk egy biztonsgi mentst a rendszernkrl. Mg az alaprendszer jrafordtsa nem tlsgosan bonyolult feladat (egszen addig, amg a megadott utastsokat kvetjk), sajt magunk vagy msok hibjbl fakadan kialakulhatnak olyan helyzetek, amikor a rendszer nem lesz kpes elindulni. Mindenkppen gyzdjnk meg rla, hogy tisztessgesen elvgeztk a mentst s akad a keznk gyben egy javtsra felhasznlhat rendszerindt oppy vagy CD. Valsznleg soha nem lesz tnylegesen szksgnk rjuk, azonban jobb flni, mint megijedni!

639

Fejezet 24. A FreeBSD frisstse s frissen tartsa


Iratkozzunk fel a megfelel levelezsi listkraA FreeBSD-STABLE s FreeBSD-CURRENT gak termszetknl fogva fejleszts alatt llnak . A FreeBSD fejlesztst is emberek vgzik, ezrt elfordulhatnak benne tvedsek. Ezek a tvedsek gyakran csak rtalmatlan aprsgok, amelyek hatsra kapunk pldul egy ismeretlen diagnosztikai hibt. De ezzel szemben ltrejhetnek pusztt erej hibk is, amelyek hatsra a rendszernk nem lesz kpes elindulni, krosodnak az llomnyrendszerek (vagy mg rosszabb). Ha ilyen trtnik, akkor egy felszltst (egy heads up tmj zenetet) kldenek az rintett vltozatokhoz tartoz listkra, amelyben igyekeznek kifejteni a problma termszett s a rendszerre mrt hatst. Miutn minden rendbejtt, a problma megoldsrl is kldenek egy rtestst. Ha a FreeBSD-STABLE levelezsi lista (http://lists.FreeBSD.org/mailman/listinfo/freebsd-stable) vagy a FreeBSD-CURRENT levelezsi lista (http://lists.FreeBSD.org/mailman/listinfo/freebsd-current) olvassa nlkl prbljuk meg hasznlni a FreeBSD-STABLE s FreeBSD-CURRENT verzikat, akkor csak magunknak keressk a bajt.

Ne hasznljuk a make world parancsotRengeteg rgebben kszlt dokumentci erre a feladatra a make world parancs kiadst javasolja. Ennek hasznlatval azonban tlpnk olyan fontos lpseket, amelyek valjban csak akkor lennnek kihagyhatak, ha pontosan tudjuk mit csinlunk. Ezrt az esetek dnt tbbsgben nem a make world hasznlatra van szksgnk, hanem a most bemutatand eljrsra.

24.7.1. A rendszer frisstse dihjban


A frissts megkezdse eltt rdemes elolvasnunk a /usr/src/UPDATING llomnyt, ahol a letlttt forrsok hasznlathoz elvgzend elzetes intzkedsekrl kaphatunk hrt. Ezutn kvessk az albbiakban krvonalazott mdszer egyes lpseit. Ezek a lpsek felttelezik, hogy egy korbbi FreeBSD verzit hasznlunk, teht a fordt, a rendszermag, az alaprendszer s a kongurcis llomnyok valamelyik rgebbi vltozatt. Alaprendszer alatt, amelyet sokszor csak a world nven hivatkozunk, a rendszer szmra alapvet fontossg binrisokat, programknyvtrakat s programfejlesztshez szksges egyb llomnyokat rtjk. Maga a fordtprogram is rsze ennek, azonban tartalmaz nhny specilis megszortst. Mindezek mellett tovbb felttelezzk, hogy elzetesen mr valamilyen mdon letltttk a friss forrsokat. Ha rendszernkn ezt mg nem tettk volna meg, akkor a 24.6 Szakasz segtsgvel tjkozdhatunk rszletesen arrl, hogyan tlthetjk le a legfrissebb verzit. A rendszer forrskdon keresztli frisstse egy kicsivel krlmnyesebb, mint amennyire elsre ltszik. A FreeBSD fejlesztk az vek sorn fontosnak talltk, hogy a folyamatosan felsznre bukkan, elkerlhetetlen fggsgek tkrben meglehetsen drmai mdon megvltoztassk az erre javasolt mdszert. Ezrt a szakasz tovbbi rszben a pillanatnyilag javasolt frisstsi megolds nyomn fogunk haladni. A sikeres frisstsek sorn az albbi akadlyokkal kell mindenkppen szembenznnk:

A fordt rgebbi vltozata nem felttlenl lesz kpes lefordtani az j rendszermagot. (Illetve a rgebbi fordtprogramok tartalmazhatnak hibkat.) Ezrt az j rendszermagot mr a fordt j vltozatval kell ellltanunk. Ebbl kvetkezik, hogy az j rendszermag elksztshez elszr a fordtprogram jabb vltozatt kell lefordtanunk. Ez viszont nem felttlenl jelenti azt, hogy az j rendszermag fordtsa eltt az j fordtprogramot teleptennk is kellene.

640

Fejezet 24. A FreeBSD frisstse s frissen tartsa

Az j alaprendszer esetenknt bizonyos j funkcikat ignyelhet a rendszermagtl. Ezrt a frissebb alaprendszer teleptse eltt teleptennk kell a frissebb rendszermagot. Ez az elbb emltett kt akadly kpzi az okt a kvetkez bekezdsekben bemutatott buildworld, buildkernel, installkernel, installworld sorozatnak. Termszetesen lteznek tovbbi egyb indokok is, amirt mg rdemes az itt lertak szerint frissteni a rendszernket. Ezek kzl most vegynk nhny kevsb nyilvnvalbbat:

A rgebbi alaprendszer nem minden esetben fog problmamentesen egyttmkdni az j rendszermaggal, ezrt az alaprendszer jabb vltozatt szinte azonnal az j rendszermagot kveten kell teleptennk. Vannak olyan kongurcis vltoztatsok, amelyeket mg az j alaprendszer teleptse eltt el kell vgeznnk, a tbbi viszont veszlyes lehet a korbbi alaprendszerre. Ezrt a kongurcis llomnyokat ltalban kt kln lpsben kell frissteni. A frissts sorn nagyrszt csak llomnyok cserldnek el s jabbak rkeznek, a korbbiak nem trldnek. Ez bizonyos esetekben azonban gondokat okozhat. Ennek eredmnyekppen a frissts sorn idnknt elfordulhat, hogy magunknak kell manulisan nmely megadott llomnyokat trlnnk. Elkpzelhet, hogy ezt a jvben mg majd automatizlni fogjk.

Ezek a megfontolsok vezettek teht az ismertetend eljrs kialaktshoz. Ettl fggetlenl addhatnak olyan helyzetek, amikor tovbbi lpseket is be kell iktatnunk, viszont az itt bemutatott folyamat egy ideje mr viszonylag elfogadottnak tekinthet: 1. make buildworld Elszr lefordtja az j fordtprogramot s nhny hozztartoz eszkzt, majd ennek felhasznlsval elkszti az alaprendszer tbbi rszt. Az eredmny a /usr/obj knyvtrban keletkezik. 2. make buildkernel Eltren a cong(8) s make(1) programok korbban javasolt alkalmazstl, ezzel a paranccsal mr a /usr/obj knyvtrban ltrehozott j fordtt hasznljuk. Ez vdelmet nyjt a fordt s rendszermag vltozatai kzti eltrsekbl fakad problmk ellen. 3. make installkernel Telepti a lemezre az j rendszermagot s a hozztartoz modulokat, ezltal lehetv vlik a frisstett rendszermag betltse. 4. tvlts egyfelhasznls mdba. Egyfelhasznls mdban a minimlisra cskkenthetjk a fut szoftverek frisstsbl add bonyodalmakat. Ezzel egytt minimliss vlik a rgi alaprendszer s az j rendszermag eltrseibl ered problmk elfordulsa is. 5. mergemaster -p Az j alaprendszer teleptshez elvgzi a kongurcis llomnyok rszrl szksges frisstseket. Pldul felvesz mg nem ltez csoportokat vagy felhasznlkat. Ez gyakran elengedhetetlennek bizonyulhat, mivel ha a rendszer legutbbi frisstse ta jabb csoportok vagy felhasznlk kerltek be az alaprendszerbe, a installworld csak akkor tud hibamentesen lefutni, ha ezek mr a futsakor is elrhetek. 6. make installworld tmsolja a /usr/obj knyvtrbl a korbban elksztett j alaprendszert. Lefutsa utn mr mind az j rendszermag s az j alaprendszer a megfelel helyn tallhat. 7. mergemaster

641

Fejezet 24. A FreeBSD frisstse s frissen tartsa Feldolgozzuk a korbbi fzisbl fennmarad kongurcis llomnyok frisstst, mivel most mr elrhet az j alaprendszer. 8. A rendszer jraindtsa. Az j rendszermag s az j kongurcis llomnyokkal fut alaprendszer hasznlathoz teljesen jra kell indtanunk a szmtgpnket. Ha a FreeBSD ugyanazon fejlesztsi gn bell frisstjk a rendszernket, pldul a 7.0 kiadsrl a 7.1 kiadsra, akkor rtelemszeren nem kell az imnti eljrs minden lpst szorosan kvetni, hiszen nagyon valszntlen, hogy komoly eltrsek lennnek a fordtprogram, a rendszermag, az alaprendszer s a kongurcis llomnyok kztt. Ilyenkor akr nyugodtan kiadhatjuk a make world parancsot, majd krhetjk a rendszermag fordtst s teleptst. A fejlesztsi gak kzti vlts sorn azonban knnyen rhetnek minket meglepetsek, ha nem a megadottak szerint jrunk el. Egyes vltsokhoz (pldul 4.X s 5.0 kztt) tovbbi lpsek megttele is szksges lehet (pldul adott llomnyok trlse vagy tnevezse mg az installworld eltt). Ilyenkor mindig gyelmesen olvassuk t a /usr/src/UPDATING llomnyt, klns tekintettel a vgre, mivel gyakran ott adjk meg a konkrt verzivltshoz szksges teendket. A szakaszban sszefoglalt lpsek egyfajta evolcis folyamat eredmnyei, melynek sorn a fejlesztk felismertk, hogy nem tkletesen kivdeni az sszes frisstssel jr problmt. A javasolt eljrs remlhetleg viszont mg sokig rvnyes marad.
Megjegyzs: A FreeBSD 3.X vagy annl is korbbi vltozatok frisstse mg ennl is tbb gyessget kvn. Ha ilyen verzit akarunk frissteni, akkor felttlenl olvassuk el az UPDATING llomnyt!

Rviden teht a FreeBSD forrskdon keresztli frisstst gy foglalhatjuk ssze:


# # # # # cd /usr/src make buildworld make buildkernel make installkernel shutdown -r now

Megjegyzs: Nhny ritka esetben a buildworld lps eltt szksgnk lehet a mergemaster -p parancs lefuttatsra is. Errl az UPDATING llomnybl tudakozdhatunk. ltalban azonban nyugodt szvvel kihagyhatjuk ezt a lpst, kivve, ha nem egy vagy tbb fbb FreeBSD vltozatot tvel frisstst vgznk.

Miutn az installkernel sikeresen befejezte a munkjt, indtsuk jra a szmtgpet egyfelhasznls mdban (a betlt parancssorban adjuk ki boot -s parancsot). Itt futtassuk a kvetkezket:
# # # # # # # adjkerntz -i mount -a -t ufs mergemaster -p cd /usr/src make installworld mergemaster reboot

642

Fejezet 24. A FreeBSD frisstse s frissen tartsa


Olvassuk el a magyarzatokatAz imnti lert folyamat csupn rvid sszefoglals, amivel nmi gyorstalpalst igyekeztnk adni. Az egyes lpsek megrtshez azonban javasolt tolvasni a most kvetkez szakaszokat is, klnsen abban az esetben, ha sajt rendszermagot akarunk hasznlni.

24.7.2. Nzzk meg a /usr/src/UPDATING llomnyt


Mieltt brmihez is nekifognnk, keressk meg a /usr/src/UPDATING (vagy hasonl, a forrskd msolatunk tnyleges helytl fgg) llomnyt. Ebben adjk hrl az esetlegesen felmerl problmkra vonatkoz fontosabb informcikat, vagy hatrozzk meg az egyes lefuttatand parancsok pontos sorrendjt. Amennyiben az UPDATING ellentmondana az itt olvasottaknak, az UPDATING tartalma a mrvad.
Fontos: A korbban trgyaltak szerint az UPDATING elolvassa nem helyettesti a megfelel levelezsi listk gyelemmel ksrst. Ez a kt elvrs nem kizrja, hanem kiegszti egymst.

24.7.3. Ellenrizzk az /etc/make.conf llomnyt


Vizsgljuk t a /usr/share/examples/etc/make.conf s az /etc/make.conf llomnyokat. Az elbbi tartalmaz nhny alaprtelmezett belltst ezek javarszt megjegyzsbe raktk. Ha hasznlni akarjuk a rendszer lefordtsa sorn, tegyk bele ezeket az /etc/make.conf llomnyba. Ne felejtsk el azonban, hogy minden, amit megadunk az /etc/make.conf llomnyba, a make minden egyes elindtsakor felhasznlsra kerl. ppen ezrt olyanokat rdemes itt belltani, amik az egsz rendszernket rintik. A legtbb felhasznl szmra az /etc/make.conf llomnyhoz a /usr/share/examples/etc/make.conf llomnyban tallhat CFLAGS s NO_PROFILE sorokra lesz szksge, melyeket kivehetnk a megjegyzsbl. A tbbi denci (COPTFLAGS, NOPORTDOCS s gy tovbb) hasznlatrl mr mindenki maga dnt.

24.7.4. Frisstsk az /etc tartalmt


Az /etc knyvtr tartalmazza a rendszer belltsaival kapcsolatos informcik jelents rszt, valamint a rendszer indtsa sorn lefut szkripteket. Egyes szkriptek a FreeBSD verziirl verziira vltoznak. Nmely kongurcis llomnyok a rendszer htkznapi mkdsben is szerepet jtszanak. Ilyen pldul az /etc/group. Alkalmanknt a make installworld parancs futsa sorn ignyt tart adott nev felhasznlkra s csoportokra. A frisstskor azonban ezek a felhasznlk vagy csoportok nem felttlenl llnak rendelkezsre, ami gondokat okozhat. Ezrt bizonyos esetekben a make buildworld elzetesen ellenrzi az ignyelt felhasznlk s csoportok megltt. Erre pldul szolglhat a smmsp felhasznl esete. Nlkle a felhasznlk nem tudtk telepteni az j rendszert, mert hinyban az mtree(8) nem volt kpes ltrehozni a /var/spool/clientmqueue knyvtrat. Ezt gy lehetett megoldani, hogy mg az alaprendszer lefordtsa (a buildworld) eltt meg kellett hvni a mergemaster(8) parancsot a -p paramterrel. gy csak azokat az llomnyokat fogja sszehasonltani, amelyek felttlenl szksgesek a buildworld vagy az installworld sikeres mkdshez. Amennyiben a mergemaster

643

Fejezet 24. A FreeBSD frisstse s frissen tartsa egy olyan verzijval rendelkeznk, amely nem ismeri a -p paramtert, akkor az els indtsakor hasznljuk a forrsfban tallhat jabb verzijt:
# cd /usr/src/usr.sbin/mergemaster # ./mergemaster.sh -p

Tipp: Ha klnsen paranoisak vagyunk, akkor a csoport trlse vagy tnevezse eltt az albbi paranccsal ellenrizni tudjuk az ltala birtokolt llomnyokat:
# find / -group GID -print

Ez megmutatja GID (mely megadhat numerikus vagy nv formjban is) jelzs csoporthoz tartoz sszes llomnyt a rendszernkben.

24.7.5. Vltsunk egyfelhasznls mdba


A rendszert egyfelhasznls mdban rdemes lefordtani. A nyilvnvalan rezhet gyorsasg elnyei mellett azrt is jobban jrunk, mert az j rendszer teleptse sorn szmos rendszerszint llomny is mdostsra kerl, belertve a szabvnyos rendszerszint binrisokat, fggvnyknyvtrakat, include llomnyokat s gy tovbb. Ha zemel rendszeren vgezzk el mindezen vltoztatsokat (klnsen amikor rajtunk kvl mg tovbbi felhasznlk is tartzkodnak a rendszerben), az csak a bajt hozza rnk. Msik lehetsg gyannt a rendszert magt lefordthatjuk tbbfelhasznls mdban is, majd ezutn csak a teleptst hajtjuk vgre egyfelhasznls zemmdban. Ha eszerint cseleksznk, egyszeren vrjunk addig, amg az sszes fordts be nem fejezdik, s az egyfelhasznlsra vltst halasszuk a installkernel vagy installworld idejre. Egy mkd rendszerben rendszeradminisztrtorknt az albbi parancs kiadsval vlthatunk t egyfelhasznls mdba:
# shutdown now

Ezt elrhetjk gy is, ha jraindtjuk a rendszert s a rendszer indtsakor a single user pontot vlasztjuk a menbl. Ekkor a rendszer egyfelhasznls mdban indul el. Miutn ez megtrtnt, adjuk ki a kvetkez parancsokat:
# # # # fsck -p mount -u / mount -a -t ufs swapon -a

Ezekkel a parancsokkal elszr ellenrizzk az llomnyrendszereket, ezutn jracsatlakoztatjuk a / llomnyrendszert rhat mdban, csatlakoztatjuk az /etc/fstab llomnyban megadott sszes tbbi UFS tpus llomnyrendszert, majd bekapcsoljuk a lapozllomny hasznlatt.
Megjegyzs: Ha a gpnk rjt nem a greenwich-i, hanem a helyi id szerint lltottuk be (ez akkor ll fenn, ha a date(1) parancs nem a helyes idt s idznt jelzi ki), akkor mg erre is szksgnk lehet:
# adjkerntz -i

644

Fejezet 24. A FreeBSD frisstse s frissen tartsa


Ezzel a helyi idzna belltsait tudjuk jl belltani nlkle ksbb mg gondjaink akadhatnak.

24.7.6. Trljk a /usr/obj knyvtrat


A rendszer egyes rszei fordtsuk sorn a /usr/obj knyvtron bellre kerlnek (alaprtelmezs szerint). Az itt tallhat knyvtrak a /usr/src knyvtrszerkezett kvetik. Ha mindenestl trljk ezt a knyvtrat, akkor nveli tudjuk a make buildworld folyamat sebessgt s megmeneklnk nhny fggsgekkel kapcsolatos fejfjstl is. Egyes /usr/obj knyvtron belli llomnyoknl szerepelhet a megvltoztathatatlan (immutable) llomnyjelz (lsd chags(1)), amelyet a mvelet elvgzshez elszr el kell tvoltanunk.
# cd /usr/obj # chflags -R noschg * # rm -rf *

24.7.7. Fordtsuk jra az alaprendszert


24.7.7.1. A kimenet elmentse
Jl jrunk azzal, ha a make(1) futsnak kimenett elmentjk egy llomnyba, mivel gy a hibk esetn lesz egy msolatunk a hibazenetrl. Ha konkrtan neknk nem is felttlenl segt megtallni a hiba tnyleges okt, msok viszont tbbet tudnak rla mondani, ha bekldjk ezt a FreeBSD egyik levelezsi listjra. Ezt egybknt a legegyszerbben a script(1) parancs segtsgvel oldhatjuk meg, amelynek paramterl azt az llomnyt kell megadni, ahova menteni akarjuk a kimenetet. Ezt kzvetlenl a rendszer jrafordtsa eltt kell kiadnunk, majd miutn megllt, a exit paranccsal kilphetnk belle.
# script /var/tmp/mw.out

Script started, output file is /var/tmp/mw.out


# make TARGET

... fordt, fordt, fordt ...


# exit

Script done, ...

Ilyenkor soha ne a /tmp knyvtrba mentsk a kimenetet, mert ennek a tartalma a kvetkez indts sorn magtl trldik. Sokkal jobban tesszk, ha a /var/tmp knyvtrba (ahogy tettk azt az elbbi pldban is) vagy a root felhasznl knyvtrba mentnk.

24.7.7.2. Az alaprendszer fordtsa


A /usr/src knyvtrban kell llnunk:
# cd /usr/src

645

Fejezet 24. A FreeBSD frisstse s frissen tartsa (kivve termszetesen, ha mshol van a forrskd, akkor abba a knyvtrba menjnk). Az alaprendszert a make(1) paranccsal fordthatjuk jra. Ez a Makefile nev llomnybl olvassa be a FreeBSD programjainak jrafordtst ler utastsokat, a fordtsuk sorrendjt s gy tovbb. A begpelend paranccsor ltalnos alakja teht a kvetkezkppen nz ki:
# make -x -DVLTOZ target

A fenti pldban a -x egy olyan a paramter, amelyet a make(1) programnak adunk t. A make(1) man oldaln megtallhatjuk az sszes neki tadhat ilyen belltst. A -DVLTOZ alak paramterek kzvetlenl a Makefile llomnynak adnak t olyan vltozkat, amelyek segtsgvel vezrelhet a viselkedse. Ezek ugyanazok a vltozk, mint amelyek az /etc/make.conf llomnyban is szerepelnek, s itt a belltsuk egy msik mdjt kapjuk. gy a
# make -DNO_PROFILE target

paranccsal is megadhatjuk, hogy ne prolozott fggknyvtrak jjjenek ltre, ami pontosan megfelel a
NO_PROFILE= true # Avoid compiling profiled libraries

sornak az /etc/make.conf llomnyban. A target rulja el a make(1) programnak, hogy mi a teendje. Minden egyes Makefile klnbz targeteket denil, s a kivlasztott target mondja meg, pontosan mi is fog trtnni. Egyes targetek ugyan megjelennek a Makefile llomnyban, azonban nem felttlenl hivatkozhatunk rjuk kzvetlenl. Ehelyett csupn arra valk, hogy a fordts folyamatnak lpseit felbontsk mg kisebb allpsekre. A legtbb esetben azonban semmilyen paramtert nem kell tadnunk a make(1) parancsnak, ezrt a teljes formja gy fog kinzni:
# make target

ahol a target az egyik fordtsi lehetsget kpviseli. Az els ilyen targetnek mindig a buildworld-nek kell lennie. Ahogy a neve is mutatja, a buildworld lefordtja az sszes forrst a /usr/obj knyvtrba, majd a installworld mint msik target, telepti az gy ltrehozott elemeket a szmtgpre. A targetek sztvlasztsa kt okbl is elnys. Elszr is lehetv teszi, hogy az j rendszert biztonsgban lefordthassuk, mikzben az a jelenleg fut rendszert nem zavarja. A rendszer teht kpes sajt magt jrafordtani. Emiatt a buildworld target akr tbbfelhasznls mdban is mindenfle nem kvnatos hats nlkl hasznlhat. Ennek ellenre azonban tovbbra is azt javasoljuk, hogy a installworld rszt egyfelhasznls mdban futtassuk le. Msodrszt ezzel lehetsgnk nylik NFS llomnyrendszer alkalmazsval tbb szmtgpre is telepteni hlzaton keresztl. Ha pldul hrom frisstend szmtgpnk van, az A, B s C, akkor az A gpen elszr adjuk ki a make buildworld, majd a make installworld parancsot. A B s C gpek ezutn NFS segtsgvel csatlakoztatjk az A /usr/src s /usr/obj knyvtrait, amelyet kveten a make installworld paranccsal telepteni tudjuk a fordts eredmnyt a B s C gpekre. Noha a world mint target mg mindig ltezik, hasznlata hatrozottan ellenjavalt. A

646

Fejezet 24. A FreeBSD frisstse s frissen tartsa


# make buildworld

parancs kiadsakor a make parancsnak megadhat egy -j paramter is, amellyel prhuzamosthatjuk a folyamat egyes rszeit. Ez ltalban tbbprocesszoros szmtgpeken nyer rtelmet, azonban mivel a fordts folyamatnak haladst inkbb az llomnymveletek mintsem a processzor sebessge korltozza, ezrt alkalmazhat akr egyprocesszoros gpeken is. Teht egy tlagos egyprocesszoros gpen gy adhat ki a parancs:
# make -j4 buildworld

Ennek hatsra make(1) egyszerre 4 szlon igyekszik mkdni. A levelezsi listkra bekldtt tapasztalati jelleg bizonytkok azt igazoljk, hogy ltalban ez a bellts adja a legjobb teljestmnyt. Ha tbbprocesszoros gppel rendelkeznk s rajta SMP tmogats rendszermagot indtottunk el, akkor rdemes 6 s 10 kztti rtkekkel ksrleteznnk.

24.7.7.3. Idigny
Szmos tnyez befolysolja a fordts tnyleges idbeli hosszt, de a FreeBSD-STABLE fa lefordtsa mindenfle trkkk s rvidtsek nlkl a legtbb szmtgpen olyan egy vagy kt rra takslhat. A FreeBSD-CURRENT fhoz ennl valamivel tbb idre lesz szksgnk.

24.7.8. Fordtsunk s teleptsnk egy j rendszermagot


Az jdonslt rendszernket csak akkor tudjuk igazn kihasznlni, ha egy j rendszermagot is ksztnk hozz. Ez gyakorlati szinten tulajdonkppen elvrs, mivel knnyen elfordulhat, hogy bizonyos memriabeli adatszerkezetek felptse megvltozott, ezrt nmely programok, mint pldul a ps(1) s top(1), egszen addig nem lesznek kpesek normlisan mkdni, amg a rendszer s a rendszermag forrskdja nem illeszkedik egymshoz. Ennek legegyszerbb s egyben legbiztonsgosabb mdja, ha a GENERIC belltsai alapjn gyrtunk s teleptnk egy rendszermagot. Mg ha a GENERIC belltsai nem is tartalmazzk a rendszernkben fellelhet sszes eszkzt, minden megtallhat bennk ahhoz, hogy a rendszert sikeresen elindthassuk legalbb egyfelhasznls mdban. Ez mellesleg remek prbja az j rendszer letkpessgnek. Miutn elindtottuk a rendszert a GENERIC tpus rendszermaggal s meggyzdtnk rla, hogy a rendszer tnyleg mkdkpes, a megszokott rendszermagunk kongurcis llomnya alapjn nyugodtan elkszthetjk ezutn azt is. FreeBSD alatt egy j rendszermag ptse eltt fontos jrafordtani az alaprendszert.
Megjegyzs: Ha sajt belltsaink szerint akarunk rendszermagot ltrehozni s mr van is ehhez egy kongurcis llomnyunk, akkor erre hasznlhatjuk a KERNCONF=SAJTMAG paramtert is, valahogy gy:
# cd /usr/src # make buildkernel KERNCONF=SAJTMAG # make installkernel KERNCONF=SAJTMAG

Hozztennnk, hogy ha a kern.securelevel rendszervltoz rtkt 1 fel lltottuk s a rendszermag llomnynak belltottunk noschg vagy hozz hasonl llomnyjelzt, akkor az installkernel lefuttatshoz

647

Fejezet 24. A FreeBSD frisstse s frissen tartsa mindenkppen egyfelhasznls mdba kell vltanunk. Minden ms esetben tovbbi bonyodalmak nlkl ki tudjuk adni az emltett parancsokat. A kern.securelevel rszleteirl az init(8) oldaln, a klnbz llomnyjelzkrl pedig a chags(1) oldaln olvashatunk.

24.7.9. Indtsuk jra a rendszert egyfelhasznls mdban


Az j rendszermag mkdsnek letesztelshez indtsuk jra a rendszert egyfelhasznls mdban. Ennek pontos rszleteit lsd 24.7.5 Szakasz.

24.7.10. Teleptsk az j rendszer binrisait


Ha a FreeBSD friss vltozatt nemrg fordtottuk le a make buildworld paranccsal, akkor utna az installworld segtsgvel tudjuk telepteni a keletkezett programokat. Teht rjuk be ezeket:
# cd /usr/src # make installworld

Megjegyzs: Amennyiben a paranccsorban a make buildworld hasznlata sorn adtunk meg vltozkat, akkor ne felejtsk el ugyanazokat megadni a make installworld kiadsa sorn sem. Ez viszont a tbbi paramterre mr nem felttlenl rvnyes. Pldul a -j belltst szigoran tilos az installworld targettel egytt hasznlni. Ennek megfelelen teht ha korbban ezt rtuk be:
# make -DNO_PROFILE buildworld

akkor gy teleptsnk:
# make -DNO_PROFILE installworld

Msklnben azokat a prolozott fggvnyknyvtrakat prbljuk meg telepteni, amelyek a make buildworld futsa sorn nem jttek ltre.

24.7.11. Frisstsk a make installworld ltal kihagyott llomnyokat


Az alaprendszer jrafordtsa nem regisztrlja az j vagy megvltozott llomnyokat bizonyos knyvtrakban (klnsen rtend ez az /etc, /var s /usr esetn). Az ilyen llomnyokat a legegyszerbben a mergemaster(8) hasznlatval tarthatjuk karban, de igny szerint akr kzzel is elvgezhetjk a szksges aktualizlsokat. Fggetlenl attl, hogy mit is vlasztunk, mindenkppen ksztsnk biztonsgi mentst az /etc knyvtrrl arra az esetre, ha brmilyen szrnysg trtnne.

648

Fejezet 24. A FreeBSD frisstse s frissen tartsa

24.7.11.1. A mergemaster
rta: Tom Rhodes. A mergemaster(8) segdprogram valjban egy Bourne szkript, amely segt az /etc knyvtrunkban s a forrsfban lev /usr/src/etc knyvtrban elhelyezked kongurcis llomnyok kzti eltrsek megllaptsban. Ezt a mdszert ajnljuk arra, hogy sszevessk a kongurcis llomnyainkat a forrsfban tallhat vltozataikkal. A hasznlatnak megkezdshez egyszeren rjuk be, hogy mergemaster, majd vrjunk egy kicsit, amg a mergemaster ltrehoz magnak egy tmeneti krnyezetet a / knyvtrbl elindulva s megtlti azt a klnbz rendszerszint belltsokat tartalmaz llomnyokkal. Ezeket az llomnyokat aztn sszehasonltja a jelenleg rvnyben lev vltozataikkal. Ilyenkor a kztk tallt eltrseket a diff(1) formtumnak megfelelen mdon mutatja meg, ahol a + jelli a hozzadott vagy mdostott sorokat, a - pedig a teljesen eltvoltand vagy cserlend sorokat. Errl a formtumrl bvebben a diff(1) man oldaln tallhatunk felvilgostst. A mergemaster(8) ezt kveten megmutatja az sszes olyan llomnyt, ahol eltrst tapasztalt, s ezen a ponton van lehetsgnk letrlni (delete) az j llomnyokat (amelyekre itt most ideiglenes llomnyknt hivatkozik), telepteni (install) a mdostatlan ideiglenes (j) llomnyt, valamint sszefslni (merge) az ideiglenes (j) s a jelenlegi llomnyokat, vagy ismt tnzni (view) a diff(1) ltal jelzett klnbsgeket. Ha az ideiglenes llomny trlst vlasztjuk, akkor a mergemaster(8) ezt gy rtelmezi, hogy vltozatlanul meg akarjuk tartani a jelenlegi vltozatot s trlni az jat. Ezt alapveten nem javasoljuk, hacsak tnyleg nem ltunk valamilyen okot erre. A mergemaster(8) parancssorban a ? begpelsvel brmikor krhetnk segtsget. Ha az llomny kihagyst (skip) vlasztjuk, akkor majd ismt felajnlja, amikor vgeztnk az sszes tbbivel. A mdostatlan ideiglenes llomny teleptsnek vlasztsval lecserljk a jelenleg verzit az jra. Ha az aktulis verzit sem vltoztattuk meg, akkor szmunkra ez a legjobb megolds. Az llomnyok sszefslsnek kivlasztsakor kapunk egy szvegszerkesztt, benne a kt llomny tartalmval. Ilyenkor tudjuk a kpernyn soronknt egyeztetni a kt llomnyt, majd a bellk a megfelel rszek sszevlogatsval kialaktani az eredmnyt. Ebben a feldolgozsi mdban az l (mint left, vagyis bal) billenty lenyomsra a bal oldalon lthat rszt, az r (mint right, vagyis jobb) lenyomsra pedig a jobb oldalon lthat rszt vlasztjuk ki. Az gy keletkez eredmnyt ezutn egy llomnyba kerl, amelyet telepteni tudunk. Ez a megolds olyan llomnyok esetben hasznlhat, amikor a felhasznl mdostott az alaprtelmezett belltsokat. Ha a diff(1) szerinti alakban akarjuk tnzni a klnbsgeket, akkor a mergemaster(8) ugyangy megmutatja ezeket, mint a paranccsor megjelentse eltt. Miutn a mergemaster(8) vgigment a rendszerszint llomnyokon, tovbbi opcikat mutat. Megkrdezheti, hogy jra ltre akarjuk-e hozni a jelszavakat trol llomnyt (rebuild), illetve a folyamat vgn a megmaradt ideiglenes llomnyok trlsre (remove) vr vlaszt.

24.7.11.2. Az llomnyok aktualizlsa kzzel


Ha inkbb manulisan szeretnnk frissteni, akkor nem msolhatjuk csak egyszeren t az llomnyokat a /usr/src/etc knyvtrbl a /etc knyvtrba s nem hagyhatjuk ezeket sorsukra. Egyes llomnyokat elszr telepteni kell. Ez azrt van gy, mert a /usr/src/etc knyvtr nem pusztn az /etc knyvtr egyszer msolata. Radsul az /etc knyvtrban vannak olyan llomnyok, amelyek a /usr/src/etc knyvtrban nem is tallhatak meg. Ha (az ajnlottak szerint) a mergemaster(8) segtsgvel dolgozunk, nyugodtan tlphetnk a kvetkez szakaszra. Sajt magunk a legegyszerbben ezt gy tudjuk megoldani, ha teleptjk az llomnyokat egy j knyvtrba s ezutn nekillunk vltozsokat keresni.

649

Fejezet 24. A FreeBSD frisstse s frissen tartsa


Az /etc meglev tartalmnak mentseHabr elmletileg magtl semmi sem fogja bntani ezt a knyvtrat, azrt ettl fggetlenl mindig rdemes biztosra menni. Ezrt msoljuk az /etc knyvtr tartalmt egy megbzhat helyre. Pldul:
# cp -Rp /etc /etc.old

Az -R itt a rekurzv msolst jelenti, a -p pedig a dtumok, az llomnyok s egyebek tulajdoni viszonyainak megrzst.

Az /etc j vltozatnak teleptshez szksgnk lesz mg tovbbi knyvtrakra is. Erre a feladatra a /var/tmp/root tkletesen megfelel, ahol mg ltre kell hoznunk nhny alknyvtrat.
# mkdir /var/tmp/root # cd /usr/src/etc # make DESTDIR=/var/tmp/root distrib-dirs distribution

Ezzel ltrejn a szksges knyvtrszerkezet s teleplnek az llomnyok. Sok res alknyvtr is keletkezik a /var/tmp/root knyvtron bell, ezeket trljk. Ezt a legknnyebben gy tehetjk meg:
# cd /var/tmp/root # find -d . -type d | xargs rmdir 2>/dev/null

Ezzel trldnek az res knyvtrak. (A szabvny hibakimenetet tirnytottuk a /dev/null eszkzre, s ezzel elnyomtuk a nem res knyvtrak esetn keletkez hibazeneteket.) A /var/tmp/root most mr tartalmazza az sszes olyan llomnyt, amelyek normlis esetben a / knyvtron bell foglalnak helyet. Ezt kveten nincs ms dolgunk, csak vgigmenni az itt tallhat llomnyokon s megllaptani, miben trnek a meglvektl. Vegyk szre, hogy a /var/tmp/root knyvtrba teleptett llomnyok nmelyiknek neve .-tal kezddik. Az rs pillanatban ezek csak a /var/tmp/root/ s /var/tmp/root/root/ knyvtrakban tallhat parancsrtelmezhz tartoz indt llomnyok lehetnek, habr addhatnak mg ilyenek (attl fggen, mikor olvassuk ezt). Ezrt a feldolgozsukhoz ne felejtsk el a ls -a parancsot hasznlni. A diff(1) alkalmazsval legegyszerbben gy tudunk sszehasonltani kt llomnyt:
# diff /etc/shells /var/tmp/root/etc/shells

Ennek hatsra megjelennek az /etc/shells s az j /var/tmp/root/etc/shells llomnyok kzti klnbsgek. A segtsgvel gyorsan el tudjuk dnteni, hogy sszefsljk-e a kt llomnyt, vagy csak egyszeren rjuk fell a rgebbi verzit az jjal.
Az j knyvtr (/var/tmp/root) nevbe rjuk bele a dtumot is, gy knnyedn ssze tudunk hasonltani tbb verzit is: A rendszer gyakori jrafordtsa az /etc szintn gyakori aktualizlst is maga utn vonja, ami viszont fraszt lehet. Az imnti folyamatot fel tudjuk gyorstani, hogy ha az /etc legutoljra sszefslt vltozatt megtartjuk. A most kvetkez eljrs ennek mikntjt vzolja fel. 1. A megszokottak szerint fordtsuk le a rendszert. Majd amikor az /etc knyvtrat s a tbbit is frissteni akarjuk, a clknt megadott knyvtr nevben adjuk meg a dtumot. Ha teht pldul 1998. februr 14. van, akkor rjuk ezt:

650

Fejezet 24. A FreeBSD frisstse s frissen tartsa


# mkdir /var/tmp/root-19980214 # cd /usr/src/etc # make DESTDIR=/var/tmp/root-19980214 \ distrib-dirs distribution

2.

Fsljk ssze a knyvtrban tallhat az llomnyokat a fentiekben krvonalazottak szerint. Befejezs utn rizzk meg a /var/tmp/root-19980214 knyvtrat.

3.

Mikor jra letltjk a legfrissebb forrsokat s megismteljk az elbbi lpseket, haladjunk megint az els lps szerint. Ekkor teht ltrejn egy jabb knyvtr, amelynek a neve ezttal mr /var/tmp/root-19980221 lesz (ha pldul hetente frisstnk). Most mr meg tudjuk vizsglni a kzbees hten szletett eltrseket, ha a kt knyvtrra kiadunk egy rekurzv diff(1) hvst:
# cd /var/tmp # diff -r root-19980214 root-19980221

4.

ltalban gy kevesebb eltrst kapunk, mint amennyi pldul a /var/tmp/root-19980221/etc/ s az /etc sszehasonltsa sorn elkerlt volna. Mivel kisebb a keletkezett klnbsgek szma, ezrt knnyebb lesz tvinnnk az /etc knyvtrunkba is a mdostsokat. 5. Ezutn trlhetjk a rgebbi /var/tmp/root-* knyvtrat:
# rm -rf /var/tmp/root-19980214

6.

Az /etc sszefslsekor mindig ismteljk meg ezeket a lpseket.

A date(1) meghvsval akr automatikuss is tehetjk a knyvtrak nvadst:


# mkdir /var/tmp/root-date "+%Y%m%d"

24.7.12. jraindts
Ezzel kszen is vagyunk. Miutn ellenriztk, hogy minden a megfelel helyre kerlt, indtsuk jra a rendszert. Ehhez egy egyszer shutdown(8) is elegend:
# shutdown -r now

24.7.13. Befejeztk!
Gratullunk, sikerlt frisstennk a FreeBSD rendszernket. Ha mgis valami balul tne ki, knnyen jra tudjuk fordtani a rendszer egyes rszeit. Pldul, ha vletlenl letrltk az /etc/magic llomnyt az /etc frisstse vagy sszefslse sorn, a le(1) parancs nem fog tudni rendesen mkdni. Ilyenkor a kvetkezket kell tennnk a hiba kijavtshoz:
# cd /usr/src/usr.bin/file # make all install

651

Fejezet 24. A FreeBSD frisstse s frissen tartsa

24.7.14. Krdsek
1. Minden egyes vltoztatsnl jra kell fordtani a rendszert? Nem knny vlaszt adni erre a krdsre, mivel ez alapveten a vltoztats jellegtl fgg. Pldul, ha elindtjuk a CVSup programot s csak az albbi llomnyok frisslnek:
src/games/cribbage/instr.c src/games/sail/pl_main.c src/release/sysinstall/config.c src/release/sysinstall/media.c src/share/mk/bsd.port.mk

Ekkor valsznleg nem ri meg jrafordtani a teljes rendszert. Elegend csupn belpni az rintett llomnyokat tartalmaz alknyvtrakba s ott rendre kiadni a make all install parancsot. Ha viszont mr valami komolyabb, pldul az src/lib/libc/stdlib vltozott meg, akkor vagy az egsz rendszert, vagy legalbb azon rszeit fordtsuk jra, amely statikusan linkeltek (s minden ms idkzben mg hozzadott statikusan linkelt dolgot). Hogy melyik megoldst vlasztjuk, teljesen rajtunk ll. jrafordthatjuk az egsz rendszert kthetente, mondvn, hadd gyljenek fel szpen a mdostsok, vagy a fggsgek pontos kielemzsvel csak azokat az elemeket fordtjuk jra, amelyek tnyleg meg is vltoztak. Termszetesen az egsz attl fgg, hogy milyen gyakran s melyik rendszert, a FreeBSD-STABLE-t vagy a FreeBSD-CURRENT-et frisstjk.

2. A fordt rengeteg 11-es jelzst (signal 11) (vagy msfajta jelzseket) dob hibval. Mi trtnhetett? Ez ltalban hardveres meghibsodsra utal. A rendszer jrafordtsa alapjaiban vve egy remek mdszer szmtgpnk alkatrszeinek terhelsre, ezrt gyakorta elhozza a memria mr meglev hibit. Ezek tbbnyire abban fogalmazdnak meg, hogy a fordt rejtlyes mdon lell mindenfle furcsa jelzsek hatsra. Errl biztosan gy tudunk meggyzdni, ha jraindtjuk a make programot s az a folyamat egy teljesen msik pontjn vrzik el. Ilyenkor nem tudunk mst tenni, mint egyms utn kicserlgetjk, kivesszk az alkatrszeket s gy prbljuk megllaptani, pontosan melyikk is okozza a gondokat.

3. A fordtsa befejezse utn trlhetem a /usr/obj knyvtrat? Rviden: Igen. A /usr/obj tartalmazza a fordts folyamata sorn keletkez sszes trgykdot. Ennek trlse ltalban a make buildworld els lpsei kztt szerepel. Ezrt tulajdonkppen a /usr/obj megtartsnak nincs tlsgosan sok rtelme, viszont elg sok (jelenleg gy kb. 340 MB) helyet fel tudunk gy szabadtani. Ha azonban rtjk a dolgunkat, akkor megadhatjuk a make buildworld parancsnak, hogy hagyja ki ezt a lpst. Ennek hatsra a fordts sokkal hamarabb vget r, mivel a legtbb forrst gy nem kell jrafordtani. rm az rmben, hogy ha netaln aprcska fggsgi problmk merlnnek fel, akkor az egsz fordts megfeneklik mindenfel klns mdokon. Emiatt gyakran rnak feleslegesen leveleket a FreeBSD levelezsi listira, melyek a rendszer sikertelen jrafordtsrl panaszkodnak, mikzben kiderl, hogy az maguk az rintettek akartk lervidteni a folyamatot.

652

Fejezet 24. A FreeBSD frisstse s frissen tartsa

4. Lehetsges a megszakadt fordts folytatsa? Ez attl fgg, hogy a problma bekvetkezse eltt mennyire sikerlt eljutni a fordtsban. ltalban (teht nem felttlenl minden esetben) a make buildworld lefordtja a fordtshoz szksges eszkzk (pldul a gcc(1) s make(1)) jabb vltozatait s a rendszer fggvnyknyvtrait, majd ezeket telepti. Ezutn ezekkel az j eszkzkkel lefordtattja sajt magukat s ismt telepti. Ezt kveten fordtja jra az j rendszerllomnyokkal az egsz rendszert (gy ezttal mr az olyan szoksos felhasznli programokat is, mint pldul az ls(1) s a grep(1)). Ha tudjuk, hogy az utols fzisban lltunk le (mivel megnztk a fordtshoz tartoz kimenetet), akkor (minden tovbbi nlkl) elg ennyi:
... kijavtjuk a hibt ...
# cd /usr/src # make -DNO_CLEAN all

Ezzel megmarad a korbbi make buildworld munkjnak eredmnye. Ha ezt az zenetet ltjuk a make buildworld kimenetben:
-------------------------------------------------------------Building everything.. --------------------------------------------------------------

akkor klnsebb gond nlkl megcsinlhatjuk. Amennyiben viszont nem ltunk ilyen zenetet, vagy nem vagyunk benne biztosak, akkor mg mindig jobb elvigyzatosnak lenni, ezrt knytelenek lesznk teljesen ellrl kezdeni a fordtst.

5. Hogyan tudjuk felgyorstani a fordtst?


Futtassuk egyfelhasznls mdban. Tegyk a /usr/src s /usr/obj knyvtrakat kln llomnyrendszerekre, kln lemezekre. St, ha lehetsges, akkor ezeket a lemezeket tegyk kln lemezvezrlkre. Mg mindig jobb, ha ezeket az llomnyrendszereket a ccd(4) (lemezek sszefzst vezrl meghajt) segtsgvel kiterjesztjk tbb lemezes eszkzre. Kapcsoljuk ki a prolozst (az /etc/make.conf llomnyban a NO_PROFILE=true megadsval). Tbbnyire gy sem lesz r szksgnk. Az /etc/make.conf llomnyban a CFLAGS vltozt lltsuk az -O -pipe rtkre. Az -O2 gyakran sokkal lassabb, az -O s -O2 alig tr el az optimalizls mrtkben. A -pipe paramter hatsra pedig a fordtprogram tmeneti llomnyok helyett csveket hasznl a kommunikcira, s gy megtakart nmi lemezhasznlatot (a memriahasznlat terhre). Ha a make(1) parancsnak tadjuk a -jn paramtert, akkor kpes tbb mindent prhuzamosan futtatni. Ez sok esetben segt attl fggetlenl, hogy egy- vagy tbbprocesszoros gpnk van.

653

Fejezet 24. A FreeBSD frisstse s frissen tartsa

A /usr/src knyvtrat tartalmaz llomnyrendszert csatlakoztathatjuk (vagy jracsatlakoztathatjuk) a noatime belltssal. Ilyenkor az llomnyrendszer nem rgzti a hozzfrs idejt. Erre az informcira sincs igazbl szksgnk.
# mount -u -o noatime /usr/src

FigyelemA fenti plda azt felttelezi, hogy a /usr/src knyvtrnak sajt llomnyrendszere van. Ha ez nem gy lenne (teht pldul a /usr rsze), akkor itt azt kell megadnunk, nem pedig a /usr/src nevt.

A /usr/obj knyvtrat tartalmaz llomnyrendszert csatlakoztathatjuk (vagy jracsatlakoztathatjuk) az async belltssal. Ennek hatsra a lemez rsa aszinkron mdon trtnik. Magyarul az rsi mveletek azonnal befejezdnek, mikzben az adat tnylegesen csak pr msodperccel ksbb kerl ki a lemezre. Ezzel az rsi krelmek gynyren sszegyjthetek, ami nagymrtk nvekedst eredmnyez a teljestmnyben.
FigyelemNe felejtsk el azonban, hogy ezzel egytt az llomnyrendszernk is srlkenyebb vlik. Ezen bellts hasznlatval megn annak az eslye, hogy egy ramkimaradst kvet indtsnl az llomnyrendszer helyrellthatatlan llapotba kerl. Ha egyedl csak a /usr/obj tallhat ezen az llomnyrendszeren, akkor ez nem jelent akkora veszlyt. Amikor viszont rajta kvl mg rtkes adat is tallhat az llomnyrendszeren, a bellts rvnyestse eltt mindenkppen ksztsnk rla friss mentseket.

# mount -u -o async /usr/obj

FigyelemAhogy arrl az elbb is sz esett, ha a /usr/obj nem egy klnll llomnyrendszeren tallhat, akkor a pldban szerepl csatlakozsi pontot cserljk ki a megfelelre.

6. Mi tegynk, ha valami nem megy rendesen? Egyrtelmen bizonyosodjunk meg rla, hogy a korbbi fordtsokbl nem maradtak vissza semmifle kbor llomnyok. Ennyi sokszor pontosan elg.
# # # # # chflags -R noschg /usr/obj/usr rm -rf /usr/obj/usr cd /usr/src make cleandir make cleandir

Igen, a make cleandir parancsot tnyleg ktszer kell kiadni. Ezutn a make buildworld parancstl indulva kezdjk jra a fordtst. Ha mg ezek utn is fennll a problma, kldjk el a hibt tartalmaz kimenetet s a uname -a parancs eredmnyt a FreeBSD general questions levelezsi lista (http://lists.FreeBSD.org/mailman/listinfo/freebsd-questions) cmre. Ne lepdjnk meg, ha a belltsainkra vonatkozan mg kapunk tovbbi krdseket is!

654

Fejezet 24. A FreeBSD frisstse s frissen tartsa

24.8. A forrsok kvetse tbb gppel


rta: Mike Meyer. Ha egyszerre tbb szmtgppel is szeretnnk kvetni ugyanannak a forrsfnak a vltozsait s ezrt mindegyikre letltjk a forrsokat majd jrafordtjuk ezeket, akkor sok erforrst, de leginkbb lemezterletet, hlzati svszlessget s processzoridt, feleslegesen hasznlunk. Ezekkel gy tudunk sprolni, ha valjban csak egyetlen gppel vgeztetjk el a munka legtbb rszt, mikzben a tbbi NFS hasznlatval dolgozik. Ez a szakasz ezt a mdszert foglalja ssze.

24.8.1. Elkszletek
Elszr is szedjk ssze az egyez binrisokat futtat gpeket, melyekre a tovbbiakban csak fordtsi csoport nven hivatkozunk. Minden gpnek lehet sajt rendszermagja, viszont a felhasznli programok mindegyikjk esetben ugyanazok. Ebbl a csoportbl vlasszuk ki egy fordt gpet. Ez lesz az a gp, amelyen a rendszer s a rendszermag lefordtsra kerl. Idelis esetben ez a leggyorsabb gp, amelynek elegend a processzorkapacitsa arra, hogy lefuttassa a make buildworld s make buildkernel parancsokat. rdemes mg rajta kvl kivlasztanunk egy tesztel gpet is, ahol a vglegests eltt kiprblhatjuk a szoftverfrisstseket. Ennek egy olyan gpnek kell lennie, amely akr hosszabb ideig is nlklzhet a csoportbl. Lehet akr maga a fordtst vgz gp is, de nem elvrs. A fordtsi csoportban lev sszes gpnek ugyanarrl a gprl s ugyanarra a pontra kell csatlakoztatnia a /usr/obj s /usr/src knyvtrakat. Ezek optimlis esetben a fordtssal foglalkoz gp kt kln lemezmeghajtjn vannak, melyek egyarnt elrhetek NFS-en keresztl. Ha tbb fordtsi csoportunk is van, akkor az /usr/src knyvtrnak elegend csak egyetlen fordt gpen meglennie, a tbbi pedig csatlakoztassa NFS-en keresztl. Vgl gyzdjnk meg rla, hogy az /etc/make.conf s a /etc/src.conf llomnyok tartalma a fordtsi csoport mindegyik gpnl megegyezik a fordt gpvel. Ez azt jelenti, hogy a fordt gpnek az alaprendszer ugyanazon rszeit s ugyangy kell ltrehozni, mint amelyet a fordtsi csoport akrmelyik gpre telepteni is akarunk. Ezenkvl mg a fordtsi csoportban lev minden egyes gp /etc/make.conf llomnyban a KERNCONF rtknek a sajt rendszermagjra vonatkoz kongurcit kell megadni, illetve a fordtssal foglakoz gp KERNCONF vltozjnl pedig az egytt sszeset, a sajtjval kezdve. Ennek megfelelen a fordt gpnek a rendszermagok lefordtshoz rendelkeznie kell az egyes gpek /usr/src/sys/arch/conf knyvtrban meglev llomnyaival.

24.8.2. Az alaprendszer
Most, miutn mindent megfelelen elksztettnk, kszen llunk a munkra. A 24.7.7.2 Szakaszban lertak szerint fordtsuk le a rendszermagokat s az alaprendszert a fordt gpen, de utna mg nem teleptsnk semmit se. Ha befejezdtt a fordts, lpjnk be a tesztel gpre s teleptsk a frissen fordtott rendszermagot. Ha ez a gp NFS-en keresztl ri a /usr/src s /usr/obj knyvtrakat, akkor az egyfelhasznls mdban aktivlni kell a hlzatot, majd csatlakoztatni ezeket. Ezt legknnyebben gy tudjuk megcsinlni, ha a gpet elszr elindtjuk tbbfelhasznls mdban, majd a shutdown now paranccsal egyfelhasznls mdba vltunk. Ha eljuttunk ide, teleptsnk az j rendszermagot s rendszert, illetve a megszokott mdon futtassuk a mergemaster parancsot. Amikor ezt befejeztk, ezen a gpen trjnk vissza a htkznapi tbbfelhasznls mkdsi mdba. Miutn a tesztelsre sznt gpen ellenriztk, hogy minden a megfelel mdon mkdik, az elbb trgyalt eljrssal teleptsk fel a fordtsi csoportban lev sszes tbbi gpre is az j szoftvereket.

655

Fejezet 24. A FreeBSD frisstse s frissen tartsa

24.8.3. Portok
Ugyanezt a gondolatmenet alkalmazhat a portfa esetben is. Az els s egyben legfontosabb lps a /usr/ports csatlakoztatsa ugyanarrl a gprl a fordtsi csoport minden gpre. Az /etc/make.conf megfelel belltsval mg a terjesztsi llomnyokat is meg tudjuk osztani. A DISTDIR rtkt egy olyan kzsen hasznlt knyvtrra lltsuk, amely rhat az NFS-en keresztl megosztott llomnyrendszernkben a root felhasznlknt tevkenykedk szmra. A WRKDIRPREFIX vltozt minden gpen egy helyi fordtsi knyvtrra lltsuk. Zrskppen mg hozztesszk, hogy ha csomagokat akarunk kszteni s msok szmra is elrhetv tenni, akkor ne felejtsk el a PACKAGES vltozt a DISTDIR vltozhoz hasonlan belltani.

Megjegyzsek
1. Ez azrt nem teljesen igaz. A rgebbi FreeBSD kiadsokat ugyan nem tmogathatjuk a vgtelensgig, de ltalban gy is tbb vig foglalkozunk velk. A FreeBSD rgebbi kiadsaival kapcsolatos jelenleg rvnyes biztonsgi hzirend rszletes bemutatsa a http://www.FreeBSD.org/security/ oldalon olvashat (angolul).

656

Fejezet 25. DTrace


rta: Tom Rhodes.

25.1. ttekints
A DTrace, vagy ms nven Dynamic Tracing technolgit a Sun dolgozta ki szerverek teljestmnyben jelentkez szk keresztmetszetek feldertsnek megknnytsre. Ez nem egy nyomkvetsre szolgl megoldst takar, hanem inkbb a rendszer vals idej elemzst s teljestmnynek vizsglatt elsegt eszkzt. A DTrace gyelemre mlt elemzeszkz, rengeteg rendkvl hasznos kpessggel rendelkezik a rendszerben felbukkan problmk diagnosztizlsra. Elre programozott szkriptek segtsgvel pedig ezen kpessgek tovbbi elnyeit tudjuk kihasznlni, ugyanis a DTrace programozhat egy n. D nyelven, amelynek rvn a klnbz vizsglatokat knnyen a sajt ignyeink szerint tudjuk alaktani. A fejezet elolvassa sorn megismerjk:

mi is az a DTrace s milyen lehetsgei vannak; a Solaris s FreeBSD opercis rendszereken megtallhat DTrace implementcik kzti eltrseket; a DTrace FreeBSD alatt hogyan engedlyezhet s hasznlhat.

A fejezet elolvasshoz ajnlott:


a UNIX s FreeBSD alapvet ismerete (3 fejezet); a rendszermag kongurcijnak s fordtsnak alapvet ismerete (8 fejezet); az opercis rendszerek s azon bell a FreeBSD biztonsgi fogalmainak minimlis ismerete (14 fejezet); a FreeBSD forrsainak megszerzsnek s azok lefordtsnak ismerete (24 fejezet).
FigyelemEz a funkci mg folyamatos tesztels alatt ll. Bizonyos rszei mg egyltaln nem, vagy csak korltozottan rhetek el. A dokumentci annak megfelelen fog majd vltozni, hogy ezek az elemek fokozatosan elrik az les felhasznlshoz szksges szintet.

25.2. Eltrsek az implementciban


Noha a FreeBSD alatt megtallhat DTrace implementci nagyon hasonl az eredeti, Solaris alatt fut vltozathoz, tartalmaz bizonyos klnbsgeket, amelyeket a tovbblps eltt mindenkppen rdemes megemltennk. Az egyik legfontosabb ilyen szembetn klnbsg, hogy a FreeBSD esetn a DTrace hasznlatt kln engedlyezni kell. A DTrace megfelel mkdshez teht a rendszermag kongurcis llomnyban meg kell adnunk bizonyos belltsokat s modulokat kell betltennk. Ezekrl hamarosan sz lesz. A rendszermag kongurcis llomnyban a DDB_CTF opci segtsgvel tudjuk engedlyezni n. CTF adatok betltst mind a rendszermag moduljaibl, mind pedig magbl a rendszermagbl egyarnt. A CTF a Solaris Compact Type Format elnevezs formtumra utal, amellyel pldul a DWARF megoldshoz hasonl mdon

657

Fejezet 25. DTrace trolhatunk tmrtett alakban klnbz tpus nyomkvetsi informcikat. Ilyen CTF adatok tbbek kzt a ctfconvert s a ctfmerge hasznlatval rendelhetek hozz binris llomnyokhoz. A ctfconvert segdprogram a fordtprogram ltal az ELF llomnyokban szerepl DWARF tpus szakaszokban trolt informcikat kpes beolvasni, s a ctfmerge a trgykdban tallhat CTF tpus ELF szakaszokat tudja vgrehajthat llomnyokk vagy osztott knyvtrakka sszefzni. Rviden beszlni fogunk arrl, hogyan lehet mindezeket a FreeBSD alaprendszerbe s rendszermagjba is bepteni. FreeBSD s Solaris esetn elfordulhat, hogy ms fajta providerek llnak rendelkezsnkre. Ezek kzl taln a legfontosabb a dtmalloc, amely a FreeBSD rendszermagjban tpus szerint teszi lehetv a malloc() fggvny kvetst. FreeBSD alatt kizrlag csak a root tudja hasznlni a DTrace-t. Ennek oka a kt opercis rendszer biztonsgi megoldsai kzti klnbsgekben keresend, mivel a Solaris esetn ltezik nhny olyan alacsonyszint ellenrzs, amely a FreeBSD-nl mg nincs. Ezrt pldul a /dev/dtrace/dtrace eszkz szigoran csak a root szmra rhet el. Vgezetl megemltjk, hogy a DTrace felhasznlsra a Sun CDDL licence vonatkozik. A Common Development and Distribution License FreeBSD a /usr/src/cddl/contrib/opensolaris/OPENSOLARIS.LICENSE llomnyban tallhat, vagy interneten keresztl a http://www.opensolaris.org/os/licensing cmen. Ezen licenc rtelmben a DTrace tmogatssal ksztett FreeBSD rendszermagok tovbbra is BSD licencek maradnak, azonban a rendszerrel terjesztett binrisok futtatsakor vagy a modulok betltsekor mr a CDDL rvnyesl.

25.3. A DTrace tmogatsnak engedlyezse


A DTrace ltal felknlt lehetsgeket a kvetkez sorok hozzadsval tudjuk engedlyezni a rendszermag kongurcis llomnyban:
options options KDTRACE_HOOKS DDB_CTF

Megjegyzs: AMD64 architektrn ezeken kvl mg az albbi sor is kelleni fog:


options KDTRACE_FRAME

Ezzel a belltssal az FBT (function boundary tracing) rszre nyjtunk tmogatst. A DTrace ugyan enlkl is kpes lesz mkdni, de akkor csak korltozott mrtkben tudunk ilyen tpus vizsglatokat vgezni.

Az egsz rendszert jra kell fordtanunk a CTF hasznlatval. Ennek elvgzshez a kvetkez parancsokat kell kiadnunk:
# cd /usr/src # make WITH_CTF=1 kernel

A fordts befejezdse utn indtsuk jra a rendszernket. A rendszer jraindulsa s az j rendszermag betltdse utn szksgnk lesz egy Korn-fle parancsrtelmezre is, mivel a DTrace eszkztrban rengeteg, a ksh programra pl eszkzt fogunk tallni. Ezrt teht teleptsk a

658

Fejezet 25. DTrace


shells/ksh93 csomagot, de megjegyezzk, hogy ugyanezen eszkzk szmra a shells/pdksh vagy shells/mksh csomagok is megfelelnek.

Vgl tltsk le a DTrace eszkztrnak legfrissebb vltozatt. Az aktulis verzi a http://www.opensolaris.org/os/community/dtrace/dtracetoolkit/ cmen rhet el. Kpes nmagt telepteni, de a benne tallhat eszkzk hasznlathoz nem ktelez ezt elvgezni.

25.4. A DTrace hasznlata


A DTrace funkciinak alkalmazshoz lteznie kell egy DTrace eszkznek. Ennek ltrehozshoz be kell tltennk a megfelel modult:
# kldload dtraceall

Innentl mr mkdsre ksz a DTrace. Rendszeradminisztrtorknt a kvetkez mdon krdezhetjk le a rendelkezsre ll vizsglatokat:
# dtrace -l | more

Mivel lekrdezs eredmnye pillanatok alatt betlten az egsz kpernyt, ezrt az egszet mg tirnytjuk a more parancshoz. Ha ez rendesen lefut, akkor a DTrace tnylegesen hasznlhatnak tekinthet. Ezt kveten tekintsk t a hozztartoz eszkzkszletet. Ez a mellkelt eszkzkszlet lnyegben a rendszerrel kapcsolatos informcik sszegyjtsre alkalmas szkripteket tartalmaz. Vannak szkriptek, amelyekkel a megnyitott llomnyokat, a memrit, a processzorhasznlatot s mg sok minden mst krdezhetnk le. A szkriptek a kvetkez parancs segtsgvel tmrthetek ki:
# gunzip -c DTraceToolkit* | tar xvf -

A cd parancs segtsgvel lpjnk be az gy keletkez knyvtrba, s a kisbets nvvel rendelkez llomnyok engedlyeit lltsuk be a 755 mdra. Mindegyik szkriptben el kell vgeznnk nmi mdostst: a /usr/bin/ksh hivatkozsokat rjuk t mindenhol a /usr/local/bin/ksh nvre, illetve a /usr/bin/sh hivatkozsokat /bin/sh nvre, majd vgezetl pedig a /usr/bin/perl hivatkozsokat a /usr/local/bin/perl nvre.
Fontos: Itt mg egyszer kiemelnnk, hogy a FreeBSD-ben jelenleg megtallhat DTrace tmogats mg nem teljes s ksrleti jelleggel szerepel. Ezrt bizonyos szkriptek nem fognak mkdni, vagy azrt, mert tlsgosan Solaris lehetsgeihez igazodnak, vagy pedig azrt, mert a jelenlegi implementci ltal mg nem ismert vizsglatokra tmaszkodnak.

Jelenlegi ismereteink szerint a FreeBSD egyelre csak kt szkriptet tmogat teljes mrtkben, ezek a hotkernel s a procsystime. A szakasz tovbbi rszben ezzel a kettvel fogunk rszletesebben foglalkozni. A hotkernel feladata segteni beazonostani azokat a fggvnyeket, amelyek a legtbb idt veszik ignybe a rendszermagon bell. A szkript futtatsakor nagyjbl a kvetkezt csinlja:
# ./hotkernel

Sampling... Hit Ctrl-C to end.

659

Fejezet 25. DTrace A folyamat Ctrl+C billentykombinci hatsra llthat meg. A szkript futsnak befejezdsekor klnbz rendszermagbeli fggvnyek s a hozzjuk tartoz idk jelennek meg, az utbbi szerint nvekv sorrendben:
kernel_thread_lock_flags 0xc1097063 kernelsched_userret kernelkern_select kernelgeneric_copyin kernel_mtx_assert kernelvm_fault kernelsopoll_generic kernelfixup_filename kernel_isitmyx kernelfind_instance kernel_mtx_unlock_flags kernelsyscall kernelDELAY 0xc108a253 kernelwitness_lock kernelread_aux_data_no_wait kernelXint0x80_syscall kernelwitness_checkorder kernelsse2_pagezero kernelstrncmp kernelspinlock_exit kernel_mtx_lock_flags kernelwitness_unlock kernelsched_idletd 0xc10981a5 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 7 7 7 7 8 9 10 11 15 137 42139 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.3% 99.3%

Ez a szkript modulok esetn is alkalmazhat. Ezt a mdjt a -m kapcsol megadsval aktivlhatjuk:


# ./hotkernel -m

Sampling... Hit Ctrl-C to end. ^C MODULE 0xc107882e 0xc10e6aa4 0xc1076983 0xc109708a 0xc1075a5d 0xc1077325 0xc108a245 0xc107730d 0xc1097063 0xc108a253 kernel 0xc10981a5

COUNT 1 1 1 1 1 1 1 1 2 73 874 213781

PCNT 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.4% 99.6%

A procsystime szkript egy adott azonostval vagy nvvel rendelkez programhoz tudja megadni az ltala kezdemnyezett rendszerhvsok ltal felhasznlt idt. A most kvetkez pldban elindtjuk a /bin/csh egy jabb pldnyt. A procsystime elindul, majd megvrja, amg kiadunk nhny parancsot a csh frissen indtott msolatban. A teszt eredmnyei teht a kvetkezk lesznek:

660

Fejezet 25. DTrace


# ./procsystime -n csh

Tracing... Hit Ctrl-C to end... ^C Elapsed Times for processes csh, SYSCALL getpid sigreturn close fcntl dup setpgid stat setitimer wait4 sigaction sigprocmask gettimeofday write execve ioctl vfork sigsuspend read TIME (ns) 6131 8121 19127 19959 26955 28070 31899 40938 62717 67372 119091 183710 263242 492547 770073 3258923 6985124 3988049784

Jl meggyelhet, hogy (nanomsodpercekben mrve) a legtbb idt a read(), a legkevesebb idt pedig a getpid() rendszerhvs vette ignybe.

25.5. A D nyelv
A DTrace eszkztrban megtallhat szmos szkript a DTrace sajt programozsi nyelvn rdott. Ezt a nyelvet nevezik a Sun implementcijban a D nyelvnek. Ennek ismertetsre itt most kln nem trnk ki, azonban a http://wikis.sun.com/display/DTrace/Documentation cmen igen rszletesen olvashatunk rla.

661

IV. Hlzati kommunikci


A FreeBSD az egyik legelterjedtebb opercis rendszer a legnagyobb hlzati teljestmnyt nyjt kiszolglk krben. Az itt tallhat fejezetek tmi:

Soros kommunikci PPP s PPP Etherneten keresztl (PPPoE) Elektronikus levelezs Hlzati kiszolglk futattsa Tzfalak Egyb halad hlzati tmk

Ezek a fejezetek nem llnak egymssal szoros kapcsolatban, csupn egy adott tmrl adnak ismereteket. Ennlfogva nem ktelez ezeket sorrendben elolvasni, valamint egyltaln nem is kell mindegyikjket tolvasni ahhoz, hogy a FreeBSD-t hlzati krnyezetben is hasznlni tudjuk.

Fejezet 26. Soros vonali kommunikci


26.1. ttekints
A UNIX mindig is tmogatta a soros vonali kommunikcit. Tulajdonkppen az els UNIX-os gpek is soros vonalon kaptk a felhasznlktl a bemenetet s ugyangy kldtk vissza a kimenetet. Az idk azta mr sokat vltoztak, hogy egy tlagos terminl mindssze egy 10 karakter per msodperc sebessg soros nyomtatbl s egy billentyzetbl llt. Ebben a fejezetben ismertetnk nhny olyan megoldst, amellyel a FreeBSD kpes soros vonalon keresztl kommuniklni. A fejezet elolvassa sorn megismerjk:

hogyan kapcsoljunk terminlokat a FreeBSD rendszernkre; hogyan trcszzunk modem segtsgvel tvoli szmtgpeket; hogyan tegyk lehetv gpnkre a bejelentkezst tvoli felhasznlk szmra; hogyan indtsuk a rendszernket soros konzolrl.

A fejezet elolvasshoz ajnlott:


egy j rendszermag belltsnak s teleptsnek ismerete (8 fejezet); a UNIX-os engedlyek s a UNIX alatt futtatott programok mkdtetsnek megrtse (3 fejezet); annak a soros vonali hardvernek (modemnek vagy tbbportos krtynak a) kziknyve, amelyet a FreeBSD-vel hasznlni szeretnnk

26.2. Bevezets
26.2.1. Alapfogalmak
bps Bit per msodperc az adattvitel sebessge DTE Adatterminl eszkz (Data Terminal Equipment) ez pldul a szmtgpnk DCE Adatkommunikcis eszkz (Data Communications Equipment) ez a modem RS-232 a hardveres soros vonali kommunikcihoz szksges EIA szabvny kbel

663

Fejezet 26. Soros vonali kommunikci Amikor ebben a fejezetben az adattvitel sebessgrl beszlnk, akkor szndkosan nem hasznljuk a baud fogalmt. A baud ugyanis a kommunikcis eszkzben adott id alatt lezajl jelvltsok mennyisgt jelli, mikzben itt a bps (bit per msodperc) kifejezs hasznlata a helyes (vagy legalbb is a szrszlhasogatk egyelre megnyugodhatnak).

26.2.2. Kbelek s portok


Ha a FreeBSD rendszernkhz egy modemet vagy egy terminlt akarunk csatlakoztatni, akkor ahhoz a szmtgpnkben szksg lesz egy szabad soros portra s egy megfelel tpus kbelre. Ha mr tisztban vagyunk a rendelkezsre ll hardverrel s a hozztartoz kbellel, akkor nyugodtan tlphetjk ezt a rszt.

26.2.2.1. A kbelek fajti


A soros kbeleknek tbb klnbz tpusa van. Kzlk a cljainknak leginkbb megfelel kt legismertebb vltozatuk az n. null-modem s a szabvnyos (egyenes) RS-232-es soros kbelek. A hardverhez tartoz dokumentciban megtalljuk, hogy pontosan melyik tpus tartozik hozz. 26.2.2.1.1. A null-modem kbelek Egy null-modem kbel bizonyos jeleket, tbbek kzt a fldet (Signal Ground, SG), egyenesen kldi, msokat viszont felcserlten. Pldul az tkldtt adat (Transmitted Data, TD) jelzs t a kbel msik vgn a fogadott adat (Received Data, RD) thz fut be. A terminlokhoz akr sajt magunk is le tudunk gyrtani egy null-modem kbelt (pldul ha a boltiakkal nem lennnk megelgedve). A kvetkez tblzatban az RS-232C jeleit s rintkezinek szmozst lthatjuk egy DB-25-s csatlakoz esetben. A szabvny a kbel kt 1-es tjt sszekapcsol vonalat vdfldnek (Protective Ground, PD) nevezi, de ezt gyakran el is hagyjk. Nmely terminl remekl mkdik mindssze a 2-es, 3-as s 7-es tk hasznlatval, mikzben msok az imnti pldtl eltr kiosztst ignyelnek. Tblzat 26-1. A DB-25 DB-25 kzti null-modem kbel Jel SG TD RD RTS CTS DTR DTR DSR DCD T 7 2 3 4 5 20 20 6 8 prja: prja: prja: prja: prja: prja: prja: prja: prja: T 7 3 2 5 4 6 8 20 20 Jel SG RD TD CTS RTS DSR DCD DTR DTR

me a mostansg elterjedt msik kt sma. Tblzat 26-2. A DB-9 DB-9 kzti null-modem kbel

664

Fejezet 26. Soros vonali kommunikci Jel RD TD DTR DTR SG DSR DCD RTS CTS T 2 3 4 4 5 6 1 7 8 prja: prja: prja: prja: prja: prja: prja: prja: prja: T 3 2 6 1 5 4 4 8 7 Jel TD RD DSR DCD SG DTR DTR CTS RTS

Tblzat 26-3. DB-9 DB-25 kzti null-modem kbel Jel RD TD DTR DTR SG DSR DCD RTS CTS T 2 3 4 4 5 6 1 7 8 prja: prja: prja: prja: prja: prja: prja: prja: prja: T 2 3 6 8 7 20 20 5 4 Jel TD RD DSR DCD SG DTR DTR CTS RTS

Megjegyzs: Amikor egy t az tellenes oldalon kt msik thz csatlakozik, akkor azt ltalban gy valstjk meg, hogy a kt tt a sajt oldalukon sszektik, majd ezt kapcsoljk hozz a harmadik thz.

Ezek a megoldsok a legnpszerbbek. Termszetesen a tk sszektsnek tbb ms varicija is ltezik (ezekrl az RS-232 Made Easy c. knyvben olvashatunk bvebben), ahol az SG prja az SG, a TD prja az RD, az RTS s a CTS prja az DCD, a DTR prja a DSR s ugyanezek fordtva.

26.2.2.1.2. Szabvnyos RS-232C kbelek A szabvnyos soros kbel az sszes RS-232C jelet kzvetlenl tkldi. Vagyis a kbel egyik vgn lev tkldtt adat t a msik vgn is az tkldtt adat thz csatlakozik. Az ilyen tpus kbeleket tbbnyire a szmtgpek s a modemek kztt alkalmazzk, de egyes terminltpusok esetben is szksgnk lehet r.

26.2.2.2. A portok
A soros port olyan eszkz, amelyen keresztl a FreeBSD-s gp s a terminl kztt adatokat tudunk kzvetteni. Ebben a szakaszban az ilyen portok klnfle tpusait s ezek hasznlatt ismertetjk FreeBSD alatt.

665

Fejezet 26. Soros vonali kommunikci 26.2.2.2.1. A portok tpusai A soros portoknak tbb tpusa ltezik. Mieltt vsrolnnk egy ksztennk egy soros kbelt, mindenkppen gyzdjnk meg rla, hogy csatlakoztatni tudjuk majd a FreeBSD-s rendszernkhz s a terminlhoz egyarnt. A legtbb terminlon DB-25-s portot tallunk. A szemlyi szmtgpek, kztk azok, amelyeken FreeBSD fut, DB-25-s s DB-9es portokkal rendelkeznek. Ha a gpnkben egy tbbportos soros krtya van, akkor ezeken kvl mg RJ-12-es s RJ-45-s portjaink is lehetnek. A hardverhez tartoz dokumentcibl tudjuk kiderteni az adott port konkrt fajtjt, de gyakran a port vizulis vizsglata is segthet eldnteni a krdst.

26.2.2.2.2. A portok nevei FreeBSD alatt az egyes soros portokat a /dev knyvtrban tallhat eszkzlerkon keresztl tudjuk elrni. Ezeknek kt tpusa van:

A behvshoz hasznlt portok nevei /dev/ttydN alakak, ahol az N a port sorszma, ami nulltl indul. A behv portok alapveten a terminl esetben hasznlatosak. A behv portok hasznlathoz a soros vonalon az vonal szlelse (Data Carrier Detect, DCD) jelnek kell megbzhatan mkdnie. A hvshoz hasznlt portok nevei /dev/cuadN alakak. A hv portokat terminlok esetben ritkn alkalmazzk, helyettk inkbb csak modemekhez hasznljk. A hv portokat akkor rdemes hasznlni, ha a soros kbel vagy a terminl nem ismeri a DCD jelet.

Ha a terminlt az els soros portra (ami MS-DOS-ban a COM1) csatlakoztattuk, akkor a /dev/ttyd0 segtsgvel fogunk r hivatkozni. Ha viszont a msodik soros porton (ms nven COM2) tallhat, akkor a /dev/ttyd1 eszkzt hasznljuk, s gy tovbb.

26.2.3. A rendszermag belltsa


A FreeBSD alapbl ngy soros portot tmogat. Az MS-DOS vilgban ezeket rendre COM1, COM2, COM3 s COM4 portoknak nevezik. A FreeBSD jelen pillanatban ismeri mg a butbb tbbportos soros csatolkrtykat is, pldul a BocaBoard 1008 s 2016 tpusokat, valamint tbb intelligensebb tbbportos krtyt, pldul a Digiboard s a Stallion Technologies gyrtmnyait. Az alap rendszermag azonban csak a szabvnyos COM portokat keresi. Ha ellenrizni akarjuk, hogy a rendszermag rendben megtallta a soros portokat, akkor gyelmesen olvassuk el a rendszerindts sorn megjelen zeneteket, vagy az /sbin/dmesg parancs kiadsval krdezzk vissza a rendszermag zeneteit. Klnsen a sio kezdet sorokra kell gyelnnk.
Tipp: Az albbi paranccsal tudjuk leszrni a sio szvegrszt tartalmaz sorokat:
# /sbin/dmesg | grep sio

Pldul, ha ngy soros port tallhat a rendszernkben, akkor a rjuk vonatkoz rendszerzenetek a kvetkezk lesznek:
sio0 at 0x3f8-0x3ff irq 4 on isa

666

Fejezet 26. Soros vonali kommunikci


sio0: type 16550A sio1 at 0x2f8-0x2ff irq 3 on isa sio1: type 16550A sio2 at 0x3e8-0x3ef irq 5 on isa sio2: type 16550A sio3 at 0x2e8-0x2ef irq 9 on isa sio3: type 16550A

Ha a rendszermagunk nem ismerte volna fel az sszes soros portot, akkor valsznleg a /boot/device.hints llomnyt kell mdostanunk. Tegyk megjegyzsbe vagy akr teljesen tvoltsuk is el azokat az eszkzket, amelyekkel nem rendelkeznk. A soros portok s a tbbportos krtyk belltsval kapcsolatban a sio(4) man oldalt olvassuk el. vatosan bnjunk a FreeBSD megelz vltozataibl szrmaz kongurcis llomnyokkal, mert az eszkzk vonatkoz belltsokat s azok formtuma megvltozhatott azta.
Megjegyzs: Az port IO_COM1 a port 0x3f8, az IO_COM2 a 0x2f8, az IO_COM3 a 0x3e8 s az IO_COM4 a 0x2e8 belltst helyettesti. Ezek az adott porthoz tartoz gyakori cmeket kpviselik. A 4-es, 3-as, 5-s s 9 megszaktsok is igen ltalnosak ezeknl. A hagyomnyos soros portok viszont az ISA buszos PC-k esetben nem kpesek a megszaktsokon osztozni. (A tbbportos krtyk azonban lehetv teszik az 16550A szmra, hogy mindssze egy vagy kt megszaktst hasznljon.)

26.2.4. Specilis eszkzllomnyok


A rendszermagban tallhat legtbb eszkz az n. specilis eszkzllomnyokon keresztl rhet el, melyek a /dev knyvtrban tallhatak. A sio eszkzk a /dev/ttydN (behv portok) s /dev/cuadN (hv portok) llomnyok hasznlatval rhetek el. A FreeBSD ezenkvl mg kln eszkzllomnyokat biztost az inicializcihoz (/dev/cuadN .init) s a zrolshoz (/dev/cuadN .lock). Az inicializcis llomnyok a port megnyitsakor hasznlhatak a hozztartoz paramterek belltsra, pldul gy tudjuk elkldeni a crtscts utastst az olyan modemeknek, amelyek a forgalom irnytst RTS/CTS jelzseken keresztl valstjk meg. A zrol llomnyokkal a portokra vonatkoz zrolsokat llthatjuk be, gy a felhasznlk vagy a programok nem lesznek kpesek bizonyos paramtereket megvltoztatni. A termios(4), sio(4) s stty(1) man oldalakon olvashatunk rszletesebben a terminlok belltsairl, valamint az eszkzk zrolsrl s inicializlsrl.

26.2.5. A soros port belltsa


A ttydN (vagy cuadN ) lesz az az eszkz, amit majd az alkalmazsainkbl el akarunk rni. Amikor egy fut program megnyit egy ilyen eszkzt, mindig tartoznak hozz alaprtelmezett terminl I/O belltsok. Ezeket a kvetkez paranccsal tudjuk lekrdezni:
# stty -a -f /dev/ttyd1

Ha megvltoztatjuk az eszkz belltsait, akkor azok egszen addig rvnyben is maradnak, amg le nem zrjuk. Ha teht ezutn jra megnyitjuk, akkor minden visszall az alaprtelmezett llapotra. Az alaprtelmezett belltsok megvltoztatshoz a kezdeti llapotot szimbolizl eszkzt kell megnyitnunk s tlltanunk. Pldul, ha alapbl

667

Fejezet 26. Soros vonali kommunikci engedlyezni akarjuk a CLOCAL mdot, a 8 bites kommunikcit s a XON/XOFF tpus forgalomirnytst a ttyd5 eszkzn, akkor a kvetkezt gpeljk be:
# stty -f /dev/ttyd5.init clocal cs8 ixon ixoff

A soros eszkzk rendszerszint inicializlst az /etc/rc.d/serial llomny vezrli. Lnyegben ez hatrozza meg az sszes soros eszkz alaprtelmezett belltst. Ha bizonyos belltsok megvltoztatst tiltani szeretnnk az alkalmazsok fel, akkor azt a zrolt llapotot tartalmaz eszkzben kell rgztennk. Pldul, ha a ttyd5 eszkz sebessgt xen 57600 bps-ra akarjuk belltani, akkor rjuk be ezt:
# stty -f /dev/ttyd5.lock 57600

Ezutn ha egy alkalmazs megnyitja a ttyd5 eszkzt s megprblja a port sebessgt tlltani, akkor az tovbbra is 57600 bps marad. A kezdeti s a zrolt llapotot kpez eszkzket ltalban csak a root felhasznl szmra szabad rhatv tenni.

26.3. Terminlok
Ksztette: Sean Kelly. A terminlok olyankor knlnak knyelmes s kltsghatkony hozzfrst a FreeBSD rendszernkhz, amikor sem a gp konzoljt, sem pedig a hozztartoz hlzatot nem rjk el. Ebben a szakaszban olvashatjuk, miknt kell terminlokat hasznlni FreeBSD alatt.

26.3.1. A terminlok alkalmazsai s tpusai


Az eredeti UNIX rendszereknek nem voltak konzoljaik. Ehelyett az emberek a soros portokra csatlakoztatott terminlokon keresztl jelentkeztek be s gy futtattak rajtuk programokat. Ez nagyon hasonlt ahhoz, mint amikor egy modem s egy terminlprogram felhasznlsval betrcszunk egy tvoli gpre s vele szveges mdban dolgozunk. Napjaink szemlyi szmtgpein azonban tallhatunk mr akr nagy felbonts megjelentssel megldott konzolokat is, habr a soros porton keresztli bejelentkezs lehetsge mg mind a mai napig elrhet a legtbb UNIX-alap rendszerben. Ez all a FreeBSD sem kivtel. Ha rktnk egy terminlt a gpnk egyik res soros portjra, akkor a megszokott mdon kpesek vagyunk bejelentkezni a rendszerbe s futtatni brmilyen szveges programot, hasonlan ahhoz, ahogy azt a konzolban vagy az X Window Systemben egy xterm ablakban megtehetjk. Ha egy irodban vagyunk, akkor egy FreeBSD rendszerre tbb terminlt is kapcsolhatunk, melyek az alkalmazottak asztalain foglalnak helyet. Otthoni hasznlat esetn egy kiregedett szmtgp, pldul egy rgi IBM PC vagy egy Macintosh is rkthet egy gyorsabb FreeBSD rendszerre. Ennek segtsgvel az egybknt egyfelhasznls szmtgpnket egy valdi tbbfelhasznls rendszerr alakthatjuk. A FreeBSD esetn hromfle terminlrl beszlhetnk:

A buta (dumb) terminlok

668

Fejezet 26. Soros vonali kommunikci


A terminlknt funkcionl szemlyi szmtgpek Az X terminlok

A most kvetkez alszakaszokban ezeket fejtjk ki rszletesebben.

26.3.1.1. A buta terminlok


A buta terminl alatt olyan specilizlt eszkzt rtnk, amellyel soros vonalon keresztl csatlakozunk szmtgpekhez. Azrt nevezik ezeket butnak, mert csupn annyi szmtsi teljestmnyt zsfoltak beljk, hogy szveget legyenek kpesek kldeni, fogadni s megjelenteni. Semmilyen program nem kpes rajtuk futni. Helyette az a szmtgp fogja a szvegszerkesztt, fordtprogramot, levelez klienst, jtkot s a tbbit futtatni, amelyre vele kapcsoldtunk. A buta terminloknak tbbszz, klnbz gyrtmny fajtja ltezik. Ilyenek pldul a Digital Equipment VT-100 vagy a Wyse WY-75 tpus terminljai. A FreeBSD szinte mindegyikket ismeri. Egyes drgbb terminlok mg grakus megjelentsre is kpesek, de ezeket a lehetsgeket csak bizonyos szoftverek tudjk tnylegesen kihasznlni. A buta terminlok leginkbb olyan munkahelyeken terjedtek el, ahol az alkalmazottaknak nincs szksgk grakus alkalmazsok, teht pldul az X Window System hasznlatra.

26.3.1.2. Szemlyi szmtgpek mint terminlok


Ha egy buta terminl csupn szveg kldsre, fogadsra s megjelentsre kpes, akkor brmelyik szemlyi szmtgp utna tudja mindezt csinlni. Ehhez mindssze egy megfelel kbelre s az adott gpen fut terminl emulcis szoftverre van szksgnk. Az ilyen fajta megolds nagyon elterjedt az otthoni hasznlat esetn. Pldul, ha valamelyik csaldtagunk ppen szorgalmasan dolgozik a FreeBSD rendszerkonzoljn, akkor a rkapcsolt terminlon keresztl mg mi magunk is el tudunk vgezni valamennyi szveges felletet ignyl munkt. Az alap FreeBSD rendszerben legalbb kt segdprogram hasznlhat a soros vonali kapcsolaton keresztli munkra: a cu(1) s a tip(1). Egy FreeBSD rendszer kliensrl gy tudunk csatlakozni egy msik rendszerre:
# cu -l soros-vonali-eszkz

Ahol a soros-vonali-eszkz a rendszernkben a soros portot jell specilis eszkz neve. Az ilyen eszkzk neve /dev/cuadN . Az eszkz nevben az N-es rsz a soros port sorszmt adja meg.
Megjegyzs: A FreeBSD-ben az eszkzk sorszmozsa nulltl kezddik, nem pedig egytl (ellenttben teht azzal, ahogy azt az MS-DOS rendszerekben s leszrmazottaikban mr megszokhattuk). Ez azt jelenti, hogy amit az MS-DOS alap rendszerekben COM1-nek hvnak, az a FreeBSD-ben ltalban a /dev/cuad0.

Megjegyzs: Egyes emberek ms, tbbnyire a Portgyjtemnybl is elrhet programokat szeretnek inkbb hasznlni. A portok kztt tallhatunk elg sok olyan szoftvert, amely a cu(1) s a tip(1) programokhoz hasonlan mkdik. Ilyen pldul a comms/minicom.

669

Fejezet 26. Soros vonali kommunikci

26.3.1.3. Az X terminlok
Az X terminlok a terminlok kzl a legfejlettebbek. ltalban nem is soros porton, hanem hlzaton, pldul Etherneten keresztl csatlakoznak. Termszetesen nem csak szveges alkalmazsokat, hanem lnyegben brmilyen X alkalmazst kpesek megjelenteni. Az X terminlokrl itt most csak a teljessg kedvrt szlunk, de ebben a fejezetben nem szndkozunk trgyalni az X terminlok csatlakoztatst, belltst s hasznlatt.

26.3.2. Bellts
Ebben a fejezetben ismertetjk mindazt, ami ahhoz kell, hogy a FreeBSD rendszernkn engedlyezni tudjuk a terminlon keresztli bejelentkezseket. Felttelezzk, hogy a rendszermagunk tmogatja a terminlok ltal hasznlt soros portokat, illetve, hogy ezeket mr csatlakoztattuk is. Ha visszagondolunk a 12 fejezetre, akkor esznkbe juthat, hogy a rendszer indtsakor az init nev program felels az sszes fut program irnytsrt s inicializldsrt. Az init egyik feladata, hogy beolvassa az /etc/ttys llomnyt s neki megfelelen az elrhet terminlokon elindtsa a getty programot. A getty felels a bejelentkezshez szksges azonost beolvassrt s a login program elindtsrt. Ennek megfelelen teht, ha a FreeBSD rendszernkn terminlokat akarunk belltani, akkor ehhez a kvetkez lpseket kell megtennnk root felhasznlknt: 1. 2. 3. 4. 5. 6. Az /etc/ttys llomnyba vegynk fel egy bejegyzst a soros porthoz tartoz /dev knyvtrbeli eszkzhz, ha mg nem szerepelne benne. A porthoz adjuk meg a /usr/libexec/getty programot, majd hozz az /etc/gettytab llomnybl vlasszuk ki a megfelel getty tpust. Adjuk meg a terminl alaprtelmezett tpust. lltsuk a portot on (bekapcsolt) llapotra. Adjuk meg, hogy a port secure (biztonsgos) legyen-e. Mondjuk meg az init programnak, hogy olvassa jra az /etc/ttys llomnyt.

A msik lps kiegszt lpseknt az /etc/gettytab llomnyban mi magunk is ltrehozhatunk egy sajt getty tpust. A fejezetben ehhez ugyan nem adunk segtsget, de ha rdekel minket a tma, akkor ezzel kapcsolatban a gettytab(5) s getty(8) man oldalakat rdemes elolvasni.

26.3.2.1. Egy bejegyzs felvtele az /etc/ttys llomnyba


Az /etc/ttys llomnyban tallhatjuk meg az sszes portot, ahonnan a FreeBSD rendszernk engedlyezi a bejelentkezst. Pldul a ttyv0, az els virtulis konzol is szerepel benne. Ezen a bejegyzsen keresztl tudunk bejelentkezni a konzolra. Ebben az llomnyban talljuk meg mg a tbbi virtulis konzol, soros port s pszeudoterminl bejegyzseit is. A rgztett terminlok esetn egyszeren csak adjuk meg a soros porthoz tartoz /dev knyvtrbeli eszkzt a /dev eltag nlkl (gy pldul a /dev/ttyv0 ttyv0 nven fog megjelenni).

670

Fejezet 26. Soros vonali kommunikci Az alap FreeBSD teleptsben egy olyan /etc/ttys llomny tallhat, amely tartalmazza az els ngy soros portot, a ttyd0 eszkztl kezdve a ttyd3 eszkzig. Ha teht ezekre a portokra csatlakoztatnunk egy terminlt, akkor mr nem kell egy jabb bejegyzst felvennnk hozzjuk. Plda 26-1. Terminlok felvtele az /etc/ttys llomnyba Tegyk fel, hogy kt eszkzt szeretnnk a rendszernkhz csatlakoztatni: egy Wyse-50-es terminlt s egy rgi 286-os IBM PC-t, amelyen a Procomm terminlszoftverrel emullunk egy VT-100-as terminlt. A Wyse terminlt a msodik soros portunkra ktjk, mg a 286-ost a hatodik soros portra (pldul egy tbbportos soros vonali krtyn). A nekik megfelel /etc/ttys llomnybeli bejegyzsek gy fognak kinzni:
ttyd1 "/usr/libexec/getty std.38400" wy50 on insecure ttyd5 "/usr/libexec/getty std.19200" vt100 on insecure

Az els mezben ltalban a terminlhoz tartoz eszkzt nevezzk meg, amely a /dev knyvtrban tallhat. A msodik mez a vonalhoz tartoz vgrehajtand parancs, ami ltalban a getty(8). A getty mkdsbe helyezi s megnyitja a vonalat, belltja a sebessgt, bekri a felhasznl nevt, majd elindtja a login(1) programot. A getty program egy (opcionlis) paramtert fogad el a parancssorban, ami a getty tpusa. Egy ilyen getty tpus szabja meg a terminlhoz tartoz vonal jellemzit, pldul az adattviteli sebessget s a paritst. A getty ezeket a jellemzket az /etc/gettytab llomnybl olvassa be. A /etc/gettytab egyarnt tartalmaz bejegyzseket a rgi s j tpus terminlokhoz. Az std szveggel kezdd bejegyzsek szinte majdnem minden esetben mkdnek a hardveres terminlokkal. Az ilyen bejegyzsek gyelmen kvl hagyjk a paritst. 110 s 115 200 bps kztt minden adattviteli sebessghez tartozik egy-egy std bejegyzs. Termszetesen ebbe az llomnyba akr a sajt bejegyzseinket is elkszthetjk. A gettytab(5) man oldal nyjt ehhez tfog segtsget. Amikor az/etc/ttys llomnyban megadjuk a getty tpust, akkor ellenrizzk, hogy a belltsai megfelelnek a terminlnak. A pldnknl maradva: a Wyse-50 nem hasznl paritst s 38 400 bps-en zemel. A 286-os gp szintn nem dolgozik paritssal s 19200 bps-sel kapcsoldik.

A harmadik mezben adjuk meg ltalban a vonalra csatlakoz terminl tpust. Ez a betrcszs portok esetben tbbnyire az unknown vagy a dialup, mivel ezeken keresztl a felhasznlk gyakorlatilag szinte brmilyen tpus terminllal vagy szoftverrel be tudnak jelentkezni. A hardveres terminloknl a terminl tpusa azonban nem vltozik, ezrt a termcap(5) adatbzisban keressk ki a nekik megfelelt s adjuk meg ebben a mezben. A pldnkban a Wyse-50 egy vals terminltpust hasznl, mikzben a 286-oson fut Procomm egy VT-100-as tpus terminlt emull.

A negyedik mez azt mondja meg, hogy a port engedlyezett-e vagy sem. Ha itt a on rtket adjuk meg, akkor az init elindtja a msodik mezben szerepl getty programot. Ha viszont itt az off szerepel, akkor a getty nem fog elindulni, gy ezen a porton be sem fogunk tudni jelentkezni. Az utols mezben a port megbzhatsgt kell megjellnnk. Ha biztonsgosnak (secure) lltjuk be a portot, akkor rajta keresztl a root (vagy brmelyik nulls felhasznli azonostval rendelkez) felhasznl be tud jelentkezni. Amikor viszont nem biztonsgos (insecure), akkor elszr egy norml felhasznlval kell bejelentkeznnk, majd a su(1) programmal vagy egy hozz hasonl megoldssal kell rendszeradminisztrtorr vlnunk.

671

Fejezet 26. Soros vonali kommunikci Leginkbb az insecure belltst javasoljuk, mg ht lakat alatt rztt terminlok esetben is. Valjban sokkal egyszerbb bejelentkezni, majd kiadni egy su parancsot, ha netaln rendszeradminisztrtori jogosultsgokra lenne szksgnk.

26.3.2.2. A init utastsa az /etc/ttys jraolvassra


Miutn az /etc/ttys llomnyban elvgeztk a megfelel mdostsokat, a kongurcis llomny jraolvasshoz kldjnk egy SIGHUP (bonts) jelzst az init programnak. Mint pldul:
# kill -HUP 1

Megjegyzs: Mivel mindig az init indul el elsknt a rendszerben, ezrt a hozztartoz azonost az 1 lesz.

Ha mindent jl lltottunk be, a kbelek is a helykn vannak s a terminlokat is bekapcsoltuk, akkor minden terminlhoz elindul egy getty program, s mindegyikjkn megjelenik a bejelentkez kperny.

26.3.3. A terminlokkal kapcsolatos hibajelensgek


Olykor hiba igyeksznk a lehet legaprlkosabban gyelni minden apr rszletre, knnyen elfordulhat, hogy valamirt a terminl mgsem mkdik rendesen. Kvetkezzen most egy lista nhny ismert tnetrl s azok javasolt gygymdjairl.

26.3.3.1. Nem jelenik meg a bejelentkez kperny


Ellenrizzk, hogy a terminlt rendesen csatlakoztattuk s ram al helyeztk. Amikor egy szemlyi szmtgpet hasznlunk terminlnak, akkor nzzk meg, hogy a terminl emulcis program a megfelel soros porton fut. Vizsgljuk meg, hogy a kbel mind a kt vge pontosan illeszkedik a portokba. Gyzdjnk meg rla, hogy valban a megfelel tpus kbelt hasznljuk. Nzzk meg, hogy a terminl s a FreeBSD is ugyanazon az adattviteli sebessgen s paritsi belltssal megy. Ha kpernyvel rendelkez terminlunk van, akkor a kontrasztot s fnyerssget is ellenrizzk. Ha nyomtats terminlunk van, akkor vizsgljuk meg a papr s a tinta llapott. Gyzdjnk meg rla, hogy a getty valban fut s rendesen kiszolglja a terminlt. Pldul a ps paranccsal listzzuk ki az sszes jelenleg fut programot s keressk meg kztk a getty programot:
# ps -axww|grep getty

Ekkor ltnunk kell a terminlhoz tartoz bejegyzst. Pldul, ha a getty msodik soros portot jelkpez ttyd1 eszkzn fut, s az /etc/gettytab llomnybl az std.38400 nev bejegyzst hasznlja, akkor ez jelenik meg:
22189 d1 Is+ 0:00.03 /usr/libexec/getty std.38400 ttyd1

672

Fejezet 26. Soros vonali kommunikci Amennyiben semmilyen getty nem fut, akkor ellenrizzk, hogy valban engedlyeztk-e a portot az /etc/ttys llomnyban. A ttys llomny trsa utn ne felejtsk el kiadni a kill -HUP 1 parancsot sem. Ha a getty fut, de a terminlon tovbbra sem ltjuk a bejelentkez kpernyt, vagy megjelenik, de nem tudunk gpelni, akkor elfordulhat, hogy a terminl vagy kbel nem tmogatja a hardveres kzfogst (handshaking). Prbljuk meg az /etc/ttys llomnyban lev std.38400 bejegyzst az 3wire.38400 bejegyzsre kicserlni (de utna ne felejtsk el kiadni a kill -HUP 1 parancsot). A 3wire nagyon hasonlt az std bejegyzshez, de elhagyja a hardveres kzfogst. A 3wire alkalmazsakor viszont a puffer teltdsnek megelzse rdekben prblkozzunk az adattviteli sebessg cskkentsvel vagy engedlyezzk a szoftveres forgalomirnytst.

26.3.3.2. Amikor mindenfle szemt jelenik meg a kpernyn


Ellenrizzk, hogy a FreeBSD s a terminl ugyanazt az adattviteli sebessget s paritsi belltst hasznlja. Nzzk meg a fut getty programokat, s hogy a megfelel getty tpussal mennek-e. Ha nem, mdostsuk az /etc/ttys llomnyt s adjuk ki a kill -HUP 1 parancsot.

26.3.3.3. A karakterek dupln jelennek meg, a jelsz begpelsekor lthat


lltsuk t a terminlt (vagy a terminl emulcis szofvert) half duplex vagy local echo mdrl full duplex mdra.

26.4. Betrcszs szolgltatsok


Ksztette: Guy Helmer. Kiegsztette: Sean Kelly. Amikor egy FreeBSD rendszert akarunk betrcszs szolgltatsokhoz belltani, akkor az nagyon hasonlt a terminlok csatlakoztatshoz, azzal a eltrssel, hogy ilyenkor a terminlok helyett modemekkel kell dolgoznunk.

26.4.1. Kls kontra bels modemek


A kls modemek sokkal knyelmesebbnek tnnek betrcszs szempontjbl, mivel az ilyenek gyakran a statikus memrijukban trolt paramterek rvn tulajdonkppen flig elre be vannak lltva s sok esetben a fontosabb RS-232 jeleket kln lmpcskkkal mutatjk. A villog lmpk knnyen elkprztatjk a laikusokat, de emellett igen fontosak a modem mkdkpessgnek megllaptsban is. Ezzel szemben a bels modemeken nem tallhat statikus memria, ezrt a paramtereik csak DIP kapcsolkkal mdosthatak. Mg ha egy bels modemem ltunk is lmpkat, akkor sem knny gyelni rjuk, mert a gpnk burkolata gyis eltakarja ezeket.

26.4.1.1. Modemek s kbelek


Ha kls modemet hasznlunk, akkor mindenkppen szksgnk lesz hozz mg egy megfelel kbelre is. Egy szabvnyos RS-232-es soros kbel erre tkletesen megfelel egszen addig, amg a norml jeleket gy ktttk be rajta:

673

Fejezet 26. Soros vonali kommunikci Tblzat 26-4. A jelek neve Rvidts RD TD DTR DSR DCD SG RTS CTS Elnevezs Received Data (fogadott adat) Transmitted Data (kldtt adat) Data Terminal Ready (adatterminl ksz) Data Set Ready (adatbellts ksz) Data Carrier Detect (vonal szlse az RS-232 fogadst rzkel vonala) Signal Ground (fld) Request to Send (klds krse) Clear to Send (klds engedlyezse)

A FreeBSD-nek 2400 bps felett a forgalom irnytshoz az RTS s CTS jelekre van szksge. A CD jellel llaptja meg, hogy a hvs ltrejtt vagy a bontottk a vonalat, s a DTR jel hozza alapllapotba a modemet a munkamenet befejezse utn. Egyes kbelekben nem mindegyik jelet vezettk t, gy ha pldul gondjaink akadnak a bejelentkez kpernyvel amikor a vonalat bontjuk, akkor rdemes tnznnk a kbelt. A tbbi UNIX-szer opercis rendszerhez hasonlan a FreeBSD is hardveres jelek segtsgvel igyekszik kiderteni, hogy a hvs megvalsult vagy bontottk a vonalat, valamint a hvs befejezse utn gy bontja a vonalat s lltja vissza a modemet. A FreeBSD igyekszik elkerlni a parancsok kldst a modem fel, vagy a modem llapotnak folyamatos ellenrzst. Ha mr van nmi tapasztalatunk a PC-alap BBS-ek modemes elrst illeten, akkor valsznleg rtjk ezek okait.

26.4.2. A soros vonali fellettel kapcsolatos megfontolsok


A FreeBSD ismeri az NS8250-, NS16450-, NS16550- s NS16550A alap EIA RS-232C (CCITT V.24) szabvny kommunikcis felleteket. A 8250-es s a 16450-es eszkzk egykarakteres pufferrel rendelkeznek. A 16550-es eszkzk 16 karakteres puffert tartalmaznak, amellyel jobb teljestmny rhet el. (A sima 16550-esben lev hibk miatt azonban ez a 16 karakteres puffer nem hasznlhat ki rendesen, ezrt lehetleg a 16550A verzit hasznljuk). Mivel az opercis rendszer rszrl az egykarakteres eszkzk jval tbb trdst ignyelnek, mint a 16 karakteres eszkzk, ezrt inkbb a 16550A alap soros felleti krtykat ajnljuk. Amikor a rendszer egyszerre tbb soros portot is kezel, vagy ers terhels alatt ll, akkor a 16550A alap krtykrl ltalban az is elmondhat, hogy kisebb hibval dolgoznak.

26.4.3. Egy gyors ttekints


Ahogy arrl mr a terminlok esetben sz esett, az init az sszes betrcszs kapcsolathoz tartoz soros porthoz elindt egy getty programot. Pldul, ha a modemet a /dev/ttyd0 eszkzre kapcsoltuk, akkor a ps ax parancs kimenetben ezt lthatjuk:
4850 ?? I 0:00.09 /usr/libexec/getty V19200 ttyd0

Amikor egy felhasznl felhvja a modemet s az kapcsoldik, akkor a modem egy CD (Carrier Detect) jelet kld. A rendszermag ekkor tudomsul veszi a vonal szlelst s a getty segtsgvel megindtja a kommunikcit. A

674

Fejezet 26. Soros vonali kommunikci


getty egy login: szveget kld t a vonalhoz megadott sebessggel. A getty elkezdi gyelni, hogy a rtelmes karakterek rkeznek-e vissza, s egy tlagos kongurciban, ha ezt szemtnek tallja (mert pldul a modem nem a getty szmra belltott sebessggel csatlakozott), akkor megprblja egszen addig hangolni a vonal sebessgt, amg feldolgozsra alkalmas karaktereket nem kap.

Miutn a felhasznl megadta a felhasznli nevt, a getty elindtja a /usr/bin/login programot, amely befejezi a belptetst a felhasznl jelszavnak bekrsvel s annak elfogadsa esetn a hozztartoz parancsrtelmez elindtsval.

26.4.4. A kongurcis llomnyok


FreeBSD rendszernkben a betrcszs kapcsolatok engedlyezshez az /etc knyvtrban hrom llomny mdostsra lesz szksgnk. Kzlk az els, az /etc/gettytab a /usr/libexec/getty dmon belltsait tartalmazza. A msodik, az /etc/ttys az /sbin/init szmra mondja meg, hogy melyik tty eszkzkhz tartozik getty. Vgezetl a portok inicializlshoz ktd belltsokat az /etc/rc.d/serial szkriptben kell megadnunk. Kt iskola jtt ltre aszerint, hogy UNIX alatt hogyan hasznljk a betrcszs modemeket. Az egyik csoport gy szereti belltani a modemeit s rendszerit, hogy a tvoli felhasznl ltal vlasztott sebessgtl fggetlenl a szmtgp s a modem kzti RS-232 fellet egy x sebessgen fut. Ennek a belltsnak megvan az az elnye, hogy a tvoli felhasznl ilyenkor szinte azonnal megkapja a bejelentkez kpernyt. A htrnya viszont, hogy ebben az esetben a rendszer nem ismeri a felhasznl valdi adattviteli sebessgt, ezrt az olyan teljes kpernys alkalmazsok, mint pldul az Emacs, nem lesznek kpesek a lassabb kapcsolatokhoz szabni a megjelentsket. A msik csoport a modemek RS-232-es fellett a tvoli felhasznl kapcsoldsi sebessge szerint lltja be. gy pldul egy V.32bis (14,4 Kbps) kapcsolat esetn a modemhez tartoz RS-232 fellet 19,2 Kbps-on fog menni, mikzben a 2400 bps sebessg kapcsolatokhoz egy vele azonos sebessg RS-232-es fellet fog tartozni. Mivel a getty nem kpes kommuniklni a modemek ltal lejelentett csatlakozsi sebessgen, ezrt gy prblja azt megllaptani, hogy elkldi a login: szveget az alap sebessggel, majd gyeli a vlaszul rkez karaktereket. Ha a felhasznl ilyenkor szemetet lt, akkor felttelezik, hogy addig fogja nyomkodni az Enter billentyt, amg valami rtelmes szveget meg nem lt. Amikor az adattviteli sebessg eltr, akkor a getty ebbl csupn csak annyit vesz szre, hogy a felhasznl szemetet kld, ezrt egy jabb sebessggel megprblja megint elkldeni a login: szveget. Hivatalosan ez a folyamat ismtldik orrvrzsig, de ltalban csak egy-kt billentyt kell letni a megfelel belltsokhoz. Nyilvnval, hogy ilyenkor a bejelentkezs messze nem olyan zavartalan, mint a rgztett sebessg esetben, de gy a lassabb kapcsolattal rendelkez felhasznlk is jobb hasznlatsgot kapnak a teljes kpernys programokkal. Ebben a szakaszban egy valamennyire kiegyenslyozott belltst igyeksznk bemutatni, de rszben elfogunk hajlani abban az irnyba, amikor a modem a kapcsolat sebessgt kveti.

26.4.4.1. /etc/gettytab
A /etc/gettytab egy termcap(5)-szer llomny, amely a getty(8) belltsait tartalmazza. A gettytab(5) man oldalon olvashatunk az llomny pontos felptsrl s benne felsorolt belltsokrl. 26.4.4.1.1. A rgztett sebessg bellts Ha a modem kommunikcis sebessgt rgzteni akarjuk, akkor ehhez tbbnyire semmit sem kell megvltoztatnunk az /etc/gettytab llomnyban.

675

Fejezet 26. Soros vonali kommunikci 26.4.4.1.2. Az alkalmazkod sebessg bellts Az /etc/gettytab llomnyban ltre kell hoznunk egy olyan bejegyzst, amelyen keresztl a getty tudni fogja, hogy milyen sebessgeken akarjuk hasznlni a modemet. Ha egy 2400 bps sebessg modemnk van, akkor hozz a mr meglev D2400-as bejegyzst kell hasznlnunk.
# # A gyors betrcszs terminlokhoz me egy 2400/1200/300-as vlts # (brhonnan kezddhet): # D2400|d2400|Fast-Dial-2400:\ :nx=D1200:tc=2400-baud: 3|D1200|Fast-Dial-1200:\ :nx=D300:tc=1200-baud: 5|D300|Fast-Dial-300:\ :nx=D2400:tc=300-baud:

Ha ennl gyorsabb modemnk van, akkor mr mindenkppen fel kell vennnk hozz egy j bejegyzst az /etc/gettytab llomnyba. Ezzel a belltssal egy 14,4 Kbps sebessg modemet tudunk legfeljebb 19,2 Kbps-en hasznlni:
# # Kiegsztsek egy V.32bis modemhez: # um|V300|High Speed Modem at 300,8-bit:\ :nx=V19200:tc=std.300: un|V1200|High Speed Modem at 1200,8-bit:\ :nx=V300:tc=std.1200: uo|V2400|High Speed Modem at 2400,8-bit:\ :nx=V1200:tc=std.2400: up|V9600|High Speed Modem at 9600,8-bit:\ :nx=V2400:tc=std.9600: uq|V19200|High Speed Modem at 19200,8-bit:\ :nx=V9600:tc=std.19200:

Ennek eredmnye egy 8 bites, paritsmentes kapcsolat lesz. A fenti pldban a kommunikcit 19,2 Kbps-en (V.32bis kapcsolaton) kezdjk, majd utna haladunk vgig a 9600 bps (V.32), 2400 , 1200 bps s 300 bps sebessg kapcsolatokon, majd vissza ismt a 19,2 Kbps-re. Az adattviteli sebessg ilyen tpus vltogatst az nx= (next table, azaz kvetkez tblzat) tulajdonsg segtsgvel valstjk meg. Minden sorban lthat mg egy tc= (table continuation, vagyis a tblzat folytatsa) bejegyzs is, amivel az adott adattviteli sebessg szabvnyos belltsait adjuk meg. Ha egy 28,8 Kbps sebessg modemnk van s/vagy egy 14,4 Kbps sebessg modemen akarunk tmrtst hasznlni, akkor a 19,2 Kbps-nl nagyobb kommunikcis sebessget kell hasznlnunk. me egy olyan gettytab. ami 57,6 Kbps-rl indt:
# # A V.32bis vagy V.34 modemekhez kiegszts, # 57,6 Kbps-rl indulunk: # vm|VH300|Very High Speed Modem at 300,8-bit:\ :nx=VH57600:tc=std.300: vn|VH1200|Very High Speed Modem at 1200,8-bit:\

676

Fejezet 26. Soros vonali kommunikci


:nx=VH300:tc=std.1200: vo|VH2400|Very High Speed Modem at 2400,8-bit:\ :nx=VH1200:tc=std.2400: vp|VH9600|Very High Speed Modem at 9600,8-bit:\ :nx=VH2400:tc=std.9600: vq|VH57600|Very High Speed Modem at 57600,8-bit:\ :nx=VH9600:tc=std.57600:

Ha lass a processzorunk, vagy a rendszernk tlsgosan terhelt s nincs 16550A tpus soros portunk, akkor 57,6 Kbps-en sio silo hibk keletkezhetnek.

26.4.4.2. /etc/ttys
Az /etc/ttys llomny belltsrl mr a 26-1 Plda adott kpet. Ez a modemek esetben sem tr el klnsebben, habr a getty programnak ms terminltpust s -belltsokat kell tadnunk. Akr rgztett, akr alkalmazkod sebessget akarunk belltani, ennek ltalnos alakja az albbi:
ttyd0 "/usr/libexec/getty xxx " dialup on

A sorban lthat els elem a megfelel specilis eszkz neve jelen esetben ez a ttyd0, amely a /dev/ttyd0 eszkzre vonatkozik s ezt fogja a getty gyelni. A msodik elem, vagyis a "/usr/libexec/getty xxx " (ahol a xxx helyre kell berni a megfelel gettytab llomnybeli bejegyzst nevt) lesz az a parancs, amelyet az init meghv. A harmadik elem, a dialup a terminlok alaprtelmezett tpusa. A negyedik paramter, az on jelzi az init programnak, hogy aktivlja a vonalat. A sorban megjelenhetne tovbb mg egy tdik paramter is, a secure, de ezt csak olyan terminlok esetben rdemes megadni, amelyek zikailag megbzhatak (pldul a rendszerkonzol). Az alaprtelmezett terminltpus (vagyis a fenti pldban a dialup) a helyi belltsoktl fgg. A betrcszs vonalak esetben hagyomnyosan a dialup a terminl alaprtelmezett tpusa, amit aztn a felhasznlk a bejelentkezskor lefut szkriptjeiken keresztl a automatikusan t tudnak lltani a nekik megfelel terminlra. A szerz sajt rendszerben azonban inkbb a vt102 terminltpust volt rdemes megadni alaprtelmezettknt, mivel ott a felhasznlk csak ilyen tpus terminlokat hasznlnak. Miutn az /etc/ttys llomnyban elvgeztk a szksges mdostsokat, egy HUP jelzssel gyelmeztessk az init programot az jbli beolvassra. Ehhez a kvetkez parancs ajnlott:
# kill -HUP 1

Ha mg csak lltjuk be elszr a rendszernket, akkor az init gyelmeztetse eltt legynk trelmesek, s vrjuk meg, amg a modemek befejezik az inicializlst s kapcsoldnak a vonalakra. 26.4.4.2.1. A rgztett sebessg bellts A rgztett sebessg belltsnl a ttys llomnyban a getty paramtereknt egy szintn rgztett sebessg bejegyzst kell megadnunk. Pldul az olyan modemeknl, ahol a sebessget 19,2 Kbps-re rgztjk, a ttys gy fog kinzni:
ttyd0 "/usr/libexec/getty std.19200" dialup on

677

Fejezet 26. Soros vonali kommunikci Amennyiben a modemnk nem ezen a sebessgen zemelne, akkor az std.sebessg paramtert hasznljuk az std.19200 helyett. Eltte azonban ne felejtsk el ellenrizni, hogy a megadott tpus szerepel-e az /etc/gettytab llomnyban.

26.4.4.2.2. Az alkalmazkod sebessg bellts Az alkalmazkod sebessg belltsnl a ttys llomnyban az /etc/gettytab llomnybl a megfelel auto-baud (sic) kell megadnunk. Pldul, ha modemnk kezdsebessge 19,2 Kbps (s a gettytab ehhez tartalmaz egy V19200 nev bejegyzst), akkor a ttys gy fog kinzni:
ttyd0 "/usr/libexec/getty V19200" dialup on

26.4.4.3. /etc/rc.d/serial
A gyorsabb, mint pldul a V.32, V.32bis s V.34 modemeknl meg kell adnunk a hardveres forgalomirnyts (RTS/CTS) hasznlatt is. Az /etc/rc.d/serial llomnyban tudjuk megadni a FreeBSD rendszermagban a vonal hasznlathoz szksges vezrlsi belltsokra vonatkoz stty parancsokat. Pldul lltsuk be az 1-es sorszm (vagyis a COM2) soros porton a crtscts termios belltst a behvshoz s a hvshoz hasznlt eszkzk inicializlsakor. Ehhez a kvetkez sorokat kell felvennnk az /etc/rc.d/serial llomnyba:
# A soros portok kezdeti belltsai: stty -f /dev/ttyd1.init crtscts stty -f /dev/cuad1.init crtscts

26.4.5. A modemek belltsai


Ha olyan modemeink vannak, amelyek paramtereit egy statikus memriban troltk le, akkor ezek belltshoz egy terminlprogramot kell hasznlnunk (amilyen pldul MS-DOS alatt a Telix vagy FreeBSD alatt a tip). A modemet a getty programnak megadott kezdeti sebessgen csatlakoztassuk s az albbi elvrsok alapjn lltsuk be a paramtereit:

Kapcsoldskor CD jelzse. Mkdskor DTR jelzse. A DTR kldsekor bontsa a vonalat s hozza alapllapotba a modemet. CTS vezrls kimen adatforgalom. A XON/XOFF forgalomvezrls tiltsa. RTS vezrls bejv adatforgalom. Csendes md (ne adjon rtestst az eredmnyekrl). A parancsokat ne rja vissza.

A modemhez tartoz dokumentciban kell utnajrnunk, hogy milyen parancsok s/vagy DIP kapcsolk tlltsval lehet mindezeket elrni.

678

Fejezet 26. Soros vonali kommunikci Pldul, ha a fenti paramtereket egy U.S. Robotics Sportster 14400-as kls modem esetben a kvetkez neki kikldtt paranccsal lehet belltani:
ATZ AT&C1&D2&H1&I0&R2&W

Ilyenkor mg akr ms egyb paramtereket is bellthatunk, pldul a V.42bis s/vagy az MNP5 tmrtst. Az U.S. Robotics Sportster 14400 kls modemen ezenkvl mg tallunk nhny DIP kapcsolt is. Az ilyen modemek esetben pldul ezeket a belltsokat tudjuk hasznlni:

1. kapcsol: FEL normlis DTR 2. kapcsol: N/A (verblis/numerikus eredmnyjelz kdok) 3. kapcsol: FEL az eredmnyjelz kdok kldsnek tiltsa 4. kapcsol: LE nem kldi vissza a parancsokat 5. kapcsol: FEL automatikus vlasz 6. kapcsol: FEL normlis Carrier Detect 7. kapcsol: FEL a memriban trolt alaprtelmezsek betltse 8. kapcsol: N/A (intelligens/buta md)

A modemeknl az eredmnyjelz kdok kikapcsolsa/letiltsa ezrt fontos, mert gy el tudunk kerlni az olyan problmkat, hogy a getty tvesen egy login: promptot kld a parancs mdban lev modemnek, amikor az visszakldi a parancsot s az eredmny kdjt. Ennek eredmnye egy hosszra nyl, zavaros trsalgs lesz a getty s a modem kztt.

26.4.5.1. A rgztett sebessg bellts


A rgztett sebessg kongurci hasznlata esetn gy kell belltanunk a modemet, hogy a konkrt adattviteli sebssgtl fggetlenl is egy lland sebessg kapcsolat lljon fenn a szmtgp s a modem kztt. A U.S. Robotics Sportster 14400-as kls modem esetben a most kvetkez parancsokkal tudjuk rgzteni a kapcsolat sebessgt:
ATZ AT&B1&W

26.4.5.2. Az alkalmazkod sebessg bellts


Amikor vltoz sebessg kongurcival dolgozunk, akkor a modemet gy kell belltani, hogy a bejv hvsnak megfelel adattviteli sebessgre vltson a soros portjn. A U.S. Robotics Sportster 14400-as kls modem esetben az albbi parancsokkal rgztjk a modemnek kldtt hibamentestett parancsok sebessgt, mikzben engedlyezzk, hogy a soros port sebessge vltozhasson a nem hibamentestett kapcsolatoknl:
ATZ AT&B2&W

679

Fejezet 26. Soros vonali kommunikci

26.4.5.3. A modem belltsainak ellenrzse


A legtbb nagysebessg modem biztost valamilyen lehetsget arra, hogy emberi formban is le tudjuk krdezni a bels mkdsnek paramtereit. A U.S. Robotics Sportster 14400-as kls modem esetben az ATI5 parancs a statikus memriban trolt belltsokat mutatja meg. A modem vals mkdsi paramtereit (amit ugyebr befolysolnak a DIP kapcsolk llsai is) viszont az ATZ majd ATI4 parancsok kldsvel tudjuk lekrni. Ha azonban msmilyen mrkj modemnk lenne, akkor a modem lersban prbljunk tjkozdni arrl, miknt tudjuk a modem belltsait ellenrizni.

26.4.6. Hibaelhrts
Ebben a szakaszban bemutatunk nhny lpst, amelyeken keresztl ellenrizhetjk a rendszernkhz csatlakoztatott modemet.

26.4.6.1. A FreeBSD rendszer ellenrzse


Csatlakoztassuk a modemet a FreeBSD rendszerre, indtsuk be a gpet, majd ezutn gyeljk a modemnk llapott jelz lmpkat, hogy kzlk a DTR vilgt-e, amikor a login: felirat megjelenik a rendszerkonzolon. Amennyiben erre a vlasz igen, akkor az arra utal, hogy a FreeBSD a hozztartoz kommunikcis porton elindtotta a megfelel getty programot s a modem vrja a hvsokat. Amikor viszont a DTR lmpa nem vilgt, a konzolon keresztl jelentkezznk be a FreeBSD rendszerbe s adjuk ki egy ps ax parancsot, amivel gy ellenrizni tudjuk, hogy a porthoz tartoz getty elindult. A fut programok kztt teht valami ilyesmit kell majd ltnunk:
114 ?? 115 ?? I I 0:00.10 /usr/libexec/getty V19200 ttyd0 0:00.10 /usr/libexec/getty V19200 ttyd1

Ha viszont pldul ezt ltjuk:


114 d0 I 0:00.10 /usr/libexec/getty V19200 ttyd0

s modem mg nem fogadott hvst, akkor ez azt jelenit, hogy a getty megnyitotta a kommunikcis csatornt. Ez utalhat egyarnt egy hibs kbelre vagy a modem helytelen belltsra, mivel a getty egszen addig nem lesz kpes megnyitni az adott portot, amg a modem vissza nem kld neki egy CD (Carrier Detect) jelet. Ha a listban az adott ttydN eszkzhz semmilyen getty programot nem tallunk, akkor jra nzzk t az /etc/ttys llomnyban szerepl bejegyzseket, mert elfordulhat, hogy azokban vtettnk valamilyen hibt. Emellett mg a /var/log/messages naplban is rdemes utnanzni, htha az init vagy a getty kldtt valamilyen hibrl rtestst. Ha mg ezek utn sem tallunk semmit, akkor megint kezdjk el keresni hibkat, hinyz bejegyzseket vagy eszkzket az /etc/ttys, /etc/gettytab s a megfelel /dev/ttydN llomnyokban.

26.4.6.2. A betrcszs kiprblsa


Prbljunk meg bejutni a rendszernkbe. Ehhez a tvoli rendszeren ne felejtsk el belltani a 8 bites adattvitelt s az 1 stopbitet, illetve a paritst kikapcsolni. Ha erre kzvetlenl nem kapunk egy bejelentkezsi kpernyt vagy csak szemt jelenik meg, akkor kb. msodpercenknt egyszer nyomjuk le az Enter billentyt. Ha mg ezutn sem ltjuk a

680

Fejezet 26. Soros vonali kommunikci bejelentkezsi kpernyt felbukkani, akkor prbljunk kikldeni egy BREAK parancsot. Ha a hvshoz nagysebessg modemet hasznlunk, akkor prbljuk meg a modem sebessgt rgzteni s gy trcszni (ezt pldul a U.S. Robotics Sportster modemnl az AT&B1 paranccsal tudjuk elrni): Ha viszont mg ezek utn sem kapjuk meg a bejelentkez kpernyt, akkor a /etc/gettytab llomnyban megint nzzk t az sszes belltst:

Az /etc/ttys llomnyban megadott alaptulajdonsg neve egyezik az /etc/gettytab llomnyban tallhatval. Mindegyik nx= bejegyzs utn egy msik gettytab tulajdonsg neve jn. Mindegyik tc= bejegyzs utn egy msik gettytab tulajdonsg neve kvetkezik.

Ha hvunk, de a FreeBSD rendszernkre kapcsolt modem tovbbra sem veszi fel, akkor a modem belltsai kztt ellenrizzk, hogy a DTR jel kldsekor a modem fogadja-e a hvst. Ha gy tnik, hogy a modem minden ezzel kapcsolatos belltsa stimmel, akkor nzzk meg, hogy a modem lmpi kzl a DTR vilgt-e (mr ha van ilyen). Ha mindent tbbszr is vgignztnk s mg mindig nem leljk a megoldst, akkor tartsunk egy kis sznetet s trjnk vissza a problmhoz ksbb. Ha mg ezutn sem tudjuk mkdsre brni, akkor kldjnk egy levelet a FreeBSD general questions levelezsi lista (http://lists.FreeBSD.org/mailman/listinfo/freebsd-questions) cmre, amelyben lerjuk a modemnket s a vele kapcsolatos problmt, s a lista tagjai majd megprblnak neknk segteni.

26.5. A betrcszs szolgltatsok hasznlata


A kvetkezkben arra vonatkozan igyeksznk tancsokat adni, amikor mi magunk akarunk modemmel csatlakozni valamilyen szmtgphez. Ezek teht olyan esetekben hasznosak, amikor egy tvoli gppel akarunk terminlkapcsolatot ltesteni. A BBS-ek hasznlatra is rvnyes. Ez ilyen tpus kapcsolatok kifejezetten hasznosak tudnak lenni olyan esetekben, amikor az interneten el akarunk rni egy llomnyt, de gondjaink akadtak a PPP hasznlatval. Ha pldul egy llomnyt akarunk letlteni, de a PPP valamirt nem mkdik, akkor ezt a terminl alap kapcsolaton keresztl is meg tudjuk tenni. Ilyenkor egy zmodem segtsgvel tudjuk ttlteni a szmtgpnkre.

26.5.1. A gyri Hayes-modem erre nem alkalmas, mihez tudunk vele kezdeni?
A tip man oldala valjban mr nem is teljesen aktulis, ugyanis tartalmaz egy beptett Hayes-trcszt. gy tudjuk engedlyezni, ha az /etc/remote llomnyban megadjuk az at=hayes belltst. A Hayes-eszkzk meghajtja nem elg gyes ahhoz, hogy felismerje az jabb modemek ltal felknlt fejlettebb lehetsgeket pldul a BUSY, NO DIALTONE vagy a CONNECT 115200 zenetek csak megzavarjk. Ezrt a tip hasznlata sorn kapcsoljuk ki ezeket az zeneteket (az ATXO&W paranccsal).

681

Fejezet 26. Soros vonali kommunikci Emellett mg rdemes tudni, hogy a tip a hvskor 60 msodpercig vr. A modemnkn ennl kisebb idt kell belltanunk, msklnben a tip azt hiszi, hogy valamilyen kommunikcis problma merlt fel. Ehhez prblkozzunk az ATS7=45&W paranccsal.

26.5.2. Hogyan adjuk meg ezeket az AT parancsokat?


Az /etc/remote llomnyban hozzunk ltre egy direct bejegyzst. Pldul, ha a modemnk az els soros porton, vagyis a /dev/cuad0 eszkzn tanyzik, akkor a kvetkez sort kell belernunk:
cuad0:dv=/dev/cuad0:br#19200:pa=none

A br tulajdonsgnl a modem ltal ismert legnagyobb adattviteli sebessget adjuk meg. Ezutn gpeljk be a tip cuad0 parancsot s mr kapcsoldunk is a modemhez. Vagy root felhasznlknt a cu parancsot is hasznlhatjuk:
# cu -lvonal -ssebessg

Itt a vonal a soros port (pldul /dev/cuad0) s a sebessg annak sebessge (pldul 57600) lesz. Miutn befejeztk az AT parancsok kiadst, az ~. begpelsvel tudunk kilpni.

26.5.3. A pn tulajdonsgnl a @ jel nem hasznlhat!


A pn (phone number) tulajdonsg rtkben szerepl @ jel segtsgvel az /etc/phones llomnyban tudunk hivatkozni egy telefonszmra. A @ a tulajdonsgokat trol llomnyok azonban, gy pldul az /etc/remote llomny esetn is megklnbztetett jelentssel brnak. Ezrt itt csak egy visszaper jellel tudjuk berni:
pn=\@

26.5.4. Hogyan hvjunk fel egy szmot parancssorbl?


Tegynk egy ltalnos bejegyzst az /etc/remote llomnyunkba. Pldul egy ilyet:
tip115200|Dial any phone number at 115200 bps:\ :dv=/dev/cuad0:br#115200:at=hayes:pa=none:du: tip57600|Dial any phone number at 57600 bps:\ :dv=/dev/cuad0:br#57600:at=hayes:pa=none:du:

Ezutn mr ilyet is tudni fogunk:


# tip -115200 5551234

Ha viszont a tip helyett inkbb a cu programot hasznlnnk szvesen, akkor ehhez ksztsnk egy ltalnos bejegyzst:
cu115200|Use cu to dial any number at 115200bps:\ :dv=/dev/cuad1:br#57600:at=hayes:pa=none:du:

Majd gpeljk be ezt:

682

Fejezet 26. Soros vonali kommunikci


# cu 5551234 -s 115200

26.5.5. Ehhez minden adand alkalommal meg kell adnom a sebessget is?
Hozzunk ltre egy tip1200 vagy cu1200 nev bejegyzst, de a br tulajdonsgnl adjuk meg a hasznlni kvnt sebessget. Mivel a tip szerint az 1200 bps egy megfelel alaprtelmezs, ezrt alapbl a tip1200 bejegyzst fogja keresni. Ez termszetesen nem jelenti azt, hogy ilyen sebssggel is akarunk dolgozni.

26.5.6. A terminlszerveren keresztl tbb ms gpet is elrek


Ahelyett, hogy minden alkalommal megvrnnk a kapcsolds befejezst s begpelnnk a CONNECT gp parancsot, hasznljuk a cm tulajdonsgt. Pldul nzzk meg ilyen bejegyzst az /etc/remote llomnyban:
pain|pain.deep13.com|Forresters machine:\ :cm=CONNECT pain\n:tc=deep13: muffin|muffin.deep13.com|Franks machine:\ :cm=CONNECT muffin\n:tc=deep13: deep13:Gizmonics Institute terminal server:\ :dv=/dev/cuad2:br#38400:at=hayes:du:pa=none:pn=5551234:

Ennek hatsra elg csak annyit megadnunk, hogy tip pain vagy tip muffin, s mr kapcsoldunk is a pain vagy muffin gpekhez. A tip deep13 paranccsal pedig egyenesen a terminlszerverhez jutunk el.

26.5.7. Tbb vonalon is lehet egy gphez csatlakozni?


Ez gyakran okoz gondot olyan esetekben, amikor egy egyetemnek tbb betrcsz vonala van, s azokon keresztl tbbezer hallgat prbl meg dolgozni. Vegyk fel az egyetemet az /etc/remote llomnyba s hasznljuk a pn tulajdonsg megadsnl a @ jelet:
nagy-egyetem:\ :pn=\@:tc=dialout dialout:\ :dv=/dev/cuad3:br#9600:at=courier:du:pa=none:

Ezutn adjuk hozz az /etc/phones llomnyhoz az egyetem telefonszmait:


nagy-egyetem nagy-egyetem nagy-egyetem nagy-egyetem 5551111 5551112 5551113 5551114

A tip mindegyik telefonszmot az adott sorrendben prblja trcszni s vgn feladja a prblkozst. Ha folyamatosan akarjuk ezeket a szmokat hvni, akkor tip parancsot tegyk egy ciklusba.

683

Fejezet 26. Soros vonali kommunikci

26.5.8. Mirt kell ktszer lenyomni a Ctrl+P gombokat, hogy egyszer elkldje a Ctrl+P kombincit?
A Ctrl+P billentykombinci alaprtelmezs szerint a kiknyszertst jelenti, amivel a tip programnak tudunk szlni, hogy a kvetkez adat sz szerint rtend. A ~s szekvencival brmelyik msik karakternek t tudjuk adni ezt a szerepet, ami egy vltoz belltst jelenti (set a variable). Gpeljk be, hogy ~sforce=egyetlen-karakter s zrjuk le egy jsorral. Az egyetlen-karakter helyre tetszleges, egykarakteres szimblumot megadhatunk. Ha itt nem adunk meg semmit, akkor a kiknyszert karakter a nul lesz, amit a Ctrl+2 vagy a Ctrl+Szkz lenyomsval tudunk elhozni. Az egyetlen-karakter szerepre pldul tkletes a Shift+Ctrl+6, amit csak nagyon kevs terminlszerver alkalmaz. A kiknyszertst vgz karaktert az $HOME/.tiprc llomnyban tetszleges karakterre t tudjuk lltani:
force=egyetlen-karakter

26.5.9. Mirt lett hirtelen minden begpelt bet nagybets??


Valsznleg sikerlt lenyomnunk a Ctrl+A gombkombincit, ami a tip betmd vlts funkcijnak felel meg. Ezt olyanok szmra dolgoztk ki, akiknl nem mkdik a Caps Lock billenty. Az elbb bemutatott ~s hasznlatval lltsuk t a raisechar vltozt valami msra. Tulajdonkppen akr ugyanarra is llthatjuk, mint a kiknyszert karaktert, ha nem ll szndkunkban hasznlni. Ebben a pldban egy olyan .tiprc llomny szerepel, amely tkletesen megfelel azon Emacs felhasznlk szmra, akik sokat hasznljk a Ctrl+2 s Ctrl+A kombincikat:
force=^^ raisechar=^^

A ^^ a Shift+Ctrl+6 billentykombincit jelenti.

26.5.10. Hogyan mozgassunk llomnyokat a tip hasznlatval?


Amikor ms UNIX rendszerekkel vesszk fel a kapcsolatot, akkor llomnyokat a ~p (mint put, vagyis adni) s ~t (mint take, vagyis venni) hasznlatval tudunk mozgatni. Ezek a parancsok a tvoli rendszeren a cat s az echo felhasznlsval fogadnak s kldenek llomnyokat. Alakjuk a kvetkez:
~p helyi-llomny [tvoli-llomny]

~t tvoli-llomny [helyi-llomny]

Ilyenkor nincs hibaellenrzs, ezrt inkbb egy msik protokollt, pldul zmodemet rdemes hasznlnunk.

26.5.11. Hogyan lehet zmodemet hasznlni a tip programban?


llomnyokat gy tudunk fogadni, ha eltte a kapcsolat tvolabbi vgn elindtjuk a kldst vgz programot. Ezutn a ~C rz parancs kiadsval kezdhetjk meg helyben a fogadst.

684

Fejezet 26. Soros vonali kommunikci llomnyokat gy tudunk kldeni, ha eltte a kapcsolat msik vgn elindtjuk a fogad programot. Ezutn a ~C sz llomnyok parancs kiadsval tudjuk megkezdeni a kldst.

26.6. A soros vonali konzol belltsa


Ksztette: Kazutaka YOKOTA. Az alapjn szolgl rst ksztette: Bill Paul.

26.6.1. Bevezets
A FreeBSD kpes gy is elindulni, ha konzolknt mindssze egy buta terminlt kapcsolunk r soros porton keresztl. Az ilyen tpus kongurcis alapveten kt tpus szmra bizonyul hasznosnak: azon rendszergazdk szmra, akik billentyzettel s monitorral nem rendelkez gpekre akarnak FreeBSD-t telepteni, s olyan fejlesztk szmra, akik a rendszermag vagy klnbz eszkzmeghajtk mkdst akarjk nyomon kvetni. Ahogy arrl mr a 12 fejezetben is sz esett, a FreeBSD hrom indtsi fokozattal rendelkezik. Az els kt fokozat a rendszerindt blokk kdjban foglal helyet, amely pedig a lemezen tallhat FreeBSD slice elejn. A rendszer indulsakor ez a blokk betltdik s lefuttatja a harmadik fokozatot kpvisel rendszertltt (a /boot/loader llomnyt). Ha soros vonali konzol belltshoz teht be kell lltanunk a rendszerindt blokkot, a rendszertltt s a rendszermagot.

26.6.2. A soros konzol belltsa, rvidtett vltozat


Ebben a szakaszban azt felttelezzk, hogy az alap belltsokkal dolgozunk s csupn egy gyors ttekintsre van szksgnk a soros vonali konzolrl. 1. 2. Csatlakoztassunk egy soros kbelt a COM1 portra s a terminlra. Rendszeradminisztrtorknt a kvetkez parancs kell kiadnunk ahhoz, hogy a soros konzolon lthassuk az sszes rendszerindtshoz tartoz zenetet:
# echo console="comconsole" >> /boot/loader.conf

3.

Nyissuk meg az /etc/ttys llomnyt, s a ttyd0 eszkzhz tartoz sorban rjuk t az off paramtert az on rtkre s a dialup paramtert a vt100 rtkre. Ha nem ezeket lltjuk be, akkor a soros konzol keresztl jelsz megadsa nlkl is be tudunk jelentkezni, ami viszont egy biztonsgi rs veszlyvel fenyeget. A vltoztatsok rvnyestshez indtsuk jra a rendszernket.

4.

Ha ettl eltr belltsokra lenne szksgnk, akkor a folyamat egyes lpseibe a 26.6.3 Szakaszban kaphatunk mlyebb betekintst.

26.6.3. A soros vonali konzol belltsa


1. Ksztsk el a soros kbelt.

685

Fejezet 26. Soros vonali kommunikci Vagy a null-modem kbelre vagy pedig egy szabvnyos soros kbelre s egy null-modem talaktra lesz szksgnk. A soros kbelekkel kapcsolatosan a 26.2.2 Szakaszt rdemes elolvasni. 2. Hzzuk ki a billentyzetet. A legtbb szemlyi szmtgp az indtsa (vagyis a Power-On Self-Test, POST) sorn hibt jelez, ha nem rzkel billentyzetet. Egyes gpek hangosan panaszoljk a billentyzet hinyt, s nem is hajlandak egszen addig elindulni, amg nem csatlakoztatunk egyet. Ha a szmtgpnk hibt kld, de ennek ellenre mgis elindul, akkor semmit nem kell csinlnunk. (Nmelyik Phonix BIOS-os gpen ilyenkor megjelenik a Keyboard failed hibazenet, de ettl mg rendesen elindul a gp.) Amennyiben a szmtgpnk nem hajland billentyzet nlkl elindulni, lltsuk be a BIOS-ban a hiba gyelmen kvl hagyst (mr ha ez lehetsges). Az alaplap lersban tallhatjuk meg ennek pontos rszleit.
Tipp: A BIOS paramterei kztt a billentyzetet lltsuk Not installed llapotra. Ilyenkor mg tovbbra is hasznlhat a billentyzet, ezzel mindssze csak a BIOS szmra tiltjuk le az indtskori ellenrzst, ezrt nem fog panaszkodni a hinya miatt. Teht a billentyzetet mg a Not installed belltsa esetn is nyugodtan csatlakoztatjuk, mert mkdni fog.

Megjegyzs: Ha a rendszernkn PS/2-es egr is tallhat, akkor j esllyel a billentyzettel egytt az egeret is ki tudjuk hzni. Mivel a PS/2-es egr osztozik a billentyzettel bizonyos hardvereken, ezrt ha nem hzzuk ki az egeret is, akkor az alaplap mg tovbbra is kpes azt gondolni, hogy a billentyzet ott van. Pldul az AMI BIOS-os Gateway 2000-as 90 MHz-es Pentium rendszer pontosan gy mkdik. ltalban vve azonban ez nem szokott gondot okozni, mivel az egr billentyzet nlkl gy sem r tlsgosan sokat.

3.

Csatlakoztassunk egy buta terminlt a COM1 (sio0) portra. Ha nem rendelkeznk buta terminllal, akkor erre clra ugyangy alkalmas egy rgi XT-s PC valamilyen modemprogrammal vagy egy soros porton csatlakoz msik UNIX-os gp. Ha nincs COM1 (sio0) portunk, akkor szerezznk egyet. Jelen pillanatban a rendszerindt blokk jrafordtsa nlkl a COM1 porton kvl nem tudunk msikat vlasztani. Ha a COM1 portra mr raktunk valamilyen msik eszkzt, akkor azt ideiglenesen hzzuk le, majd a FreeBSD teleptse s elindtsa utn tegynk fel egy msik rendszerindt blokkot. (Egybknt felttelezzk, hogy a COM1 elrhet egy llomny/szmt/terminlszerveren ha valban valamilyen msik clra szksgnk lenne a COM1 portra (s semmikppen sem tudjuk trakni a COM2 (sio1) portra), akkor valsznleg nem is ezzel kellene elsknt foglalkoznunk.)

4.

Gondoskodjunk rla, hogy a rendszermag belltsait tartalmaz llomnyban a COM1 (sio0) eszkzhz megadtuk a megfelel paramtereket. Ezek az albbiak:
0x10

A konzolos mkdsi md engedlyezse az adott egysghez. Ha megadjuk ezt a paramtert, akkor a tbbit a rendszer gyelmen kvl hagyja. Pillanatnyilag legfeljebb egy egysg birtokolhatja ezt a belltst. Ha tbb ilyet adtunk volna meg, akkor (a felrs sorrendje szerint) az els kap ilyen szerepet. Ez a bellts nmagban mg nem teszi a soros portot konzoll. Ehhez mg szksgnk van a kvetkez belltsra, vagy a -h megadsra is.

686

Fejezet 26. Soros vonali kommunikci


0x20

Az egysg konzoll nyilvntsa (hacsak nincs egy tle nagyobb priorits konzol), fggetlenl a lentebb ismertetend -h opcitl. A 0x20 rtket a 0x10 rtkkel egytt kell megadni.
0x40

(A 0x10 rtkkel egytt) az egysget kivonja a normlis elrs all. Ezt a belltst ne hasznljuk, ha soros vonali konzolt akarunk zemeltetni az adott porton. Ezzel az egysget csak a rendszermag tvoli nyomkvetshez tudjuk hasznlni. A tvoli nyomkvetsrl a fejlesztk kziknyvben (http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/developers-handbook/index.html) olvastunk bvebben. Plda:
device sio0 at isa? port IO_COM1 flags 0x10 irq 4

A tovbbi rszletekrl a sio(4) man oldal tud felvilgostst nyjtani. Ha nem lltottuk be a megfelel paramtereket, akkor (egy msik konzolon) futtassuk a UserCong programot vagy fordtsuk jra a rendszermagot. 5. Hozzunk ltre egy boot.config llomnyt a rendszer indtshoz hasznlt meghajt a partcijnak gykerben. Ez az llomny mondja meg a rendszerindt blokkban tallhat kdnak, hogy miknt akarjuk indtani a rendszernket. A soros vonali konzol letrekeltshez a most kvetkez opcik kzl kell megadnunk egyet vagy tbbet amennyiben tbbet akarunk megadni, akkor mindegyiket egyetlen sorban szerepeltessk:
-h

A bels s a soros vonali konzolok kzti tkapcsols. Ezzel tudunk a konzolos eszkzk kztt vltani. Pldul, ha egy bels (video) konzolrl indtjuk a rendszert, akkor a rendszertltnek s a rendszermagnak tadott -h paramterrel arra tudjuk ezeket utastani, hogy konzolknt a soros portot hasznljk. Vagy ha soros porton keresztl indtjuk a rendszert, akkor -h megadsval megkrhetjk a rendszertltt s a rendszermagot, hogy ezutn mr a videokrtyt hasznlja konzolknt.
-D

Az egy- s ktkonzolos belltsok kzti vlts. Az egykonzolos kongurciban a konzol lehet bels (video) vagy soros vonali, attl fggen, hogy miknt hasznltuk a fenti -h opcit. A ktkonzolos kongurciban azonban a videokrtyn s a soros vonalon keresztl is egyszerre megjelenik a konzol, fggetlenl a -h hatstl. Ilyenkor viszont vegyk gyelembe, hogy ez a ktkonzolos kongurci csak a rendszerindt blokk futsa alatt l. Amint a rendszerindt megkapja a vezrlst, a -h ltal megadott konzol vlik az egyedliv.
-P

A rendszerindt blokk megprblja megkeresni a billentyzetet. Ha nem tallja, akkor magtl belltja a -D s -h opcikat.
Megjegyzs: Trbeli korltozsok miatt a rendszerindt blokk jelenlegi vltozata a -P paramterrel csak a kiterjesztett billentyzeteket kpes kezelni. A 101 gombnl kevesebbel (teht F11 s F12 gombokkal nem) rendelkez billentyzeteket ezrt nem felttlenl fogja szlelni. Ugyanezen korltozs miatt egyes laptopokon sem minden esetben sikerl rzkelni a billentyzetet. Ha ez a rendszernkn

687

Fejezet 26. Soros vonali kommunikci


problmhoz vezetne, akkor egyszerbb lesz elhagyni a -P hasznlatt. Sajnos, jelenleg semmilyen megolds nincs erre.

Vagy a -P opcival lltassuk be automatikusan a konzolt, vagy pedig a -h opcival engedlyezzk a soros vonali konzolt. Termszetesen itt a boot(8) man oldalon szerepl sszes tbbi paramtert is megadhatjuk. A -P kivtelvel az sszes opci a rendszertltnek (/boot/loader) kerl tadsra. A rendszertlt egyedl a -h llapotbl dnti el, hogy mely bels videoeszkzn vagy soros porton legyen a konzol. Ez azt jelenti, hogy a /boot.config llomnyban ha megadjuk a -D opcit, de mellette nem szerepel a -h, akkor a soros vonali konzolt csak a rendszerindt blokk futsa alatt tudjuk elrni a rendszertlt ugyanis alapbl a videokrtyt hasznlja konzolknt. 6. Kapcsoljuk be a szmtgpnket. Amikor elindtjuk a FreeBSD-s gpnket, a rendszerindt blokk kirja a /boot.config tartalmt a konzolra. Pldul gy:
/boot.config: -P Keyboard: no

A msodik sor csak olyankor jelenik meg, ha a /boot.config llomnyban a -P bellts is szerepel, s a billentyzet jelenltt (yes) vagy hinyt (no) jelzi. A /boot.config tartalmtl fggen ezek az zenetek vagy a soros vonali vagy a bels konzolon jelennek meg, esetleg mind a kettn. Bellts nincs
-h -D -Dh -P, van billentyzet -P, nincs billentyzet

Ahol megjelenik bels konzol soros vonali konzol soros vonali s bels konzol soros vonali s bels konzol bels konzol soros vonali konzol

Az imnti zenetek felbukkansa utn a tovbbi konzolos zenetek kldsben egy rvid sznet kvetkezik, amg a rendszerindt blokk a rendszertlt betltsvel folytatja a rendszer indtst. Normlis krlmnyek kztt ezt a folyamatot nem kell megszaktanunk, de esetleg olyankor mgis rdemes lehet, ha le akarjuk ellenrizni a belltsainkat. A rendszerindtsi folyamat flbeszaktshoz az Enter billentyn kvl nyomjuk le valamelyik msikat. Ekkor a rendszerindt blokk megll s vrja a tovbbi parancsokat. Ekkor valami ilyesmit lthatunk:
>> FreeBSD/i386 BOOT Default: 0:ad(0,a)/boot/loader boot:

Nzzk meg, hogy /boot.config belltsainak megfelelen a fenti zenet a soros vonali konzolon vagy a bels konzolon, illetve mind a kettn megjelenik-e. Ha az zenet a megfelel konzolon megjelenik, akkor az Enter lenyomsval folytathatjuk a rendszer indtst. Ha neknk a soros vonali konzolra lenne szksgnk, de semmi nem jelenik meg a soros terminlon, akkor

688

Fejezet 26. Soros vonali kommunikci valamit valsznleg nem jl lltottunk be. A rendszerindt blokktl kapott parancssorban a -h begpelsvel s az Enter vagy Return lenyomsval (ha lehetsges) jelezzk neki (s gy a rendszertltnek s a rendszermagnak is) a soros vonali konzol kivlasztst. Miutn befejezdtt a rendszer indtsa, menjnk vissza s ellenrizzk a megfelel paramtereket. Ahogy sikerlt elindtani a rendszertltt s a rendszerindts harmadik fokozatba lptnk, a rendszertlt megfelel krnyezeti vltozin keresztl mg mindig van lehetsgnk vltani a soros vonali s a bels konzol kztt, lsd 26.6.6 Szakasz.

26.6.4. sszefoglals
Itt most rviden sszefoglaljuk az eddig trgyalt klnbz belltsokat s tnylegesen kivlasztott konzolt.

26.6.4.1. 1. eset: a sio0 eszkznl a 0x10 belltst adjuk meg


device sio0 at isa? port IO_COM1 flags 0x10 irq 4

A /boot.cong belltsai nincsenek


-h -D -Dh -P, van billentyzet -P, nincs billentyzet

Konzol a rendszerindt Konzol a rendszertlt Konzol a blokk alatt alatt rendszermagban bels soros vonali soros vonali s bels soros vonali s bels bels soros vonali s bels bels soros vonali bels soros vonali bels soros vonali bels soros vonali bels soros vonali bels soros vonali

26.6.4.2. 2. eset: a sio0 eszkznl 0x30 belltsa


device sio0 at isa? port IO_COM1 flags 0x30 irq 4

A /boot.cong belltsai nincsenek


-h -D -Dh -P, van billentyzet -P, nincs billentyzet

Konzol a rendszerindt Konzol a rendszertlt Konzol a blokk alatt alatt rendszermagban bels soros vonali soros vonali s bels soros vonali s bels bels soros vonali s bels bels soros vonali bels soros vonali bels soros vonali soros vonali soros vonali soros vonali soros vonali soros vonali soros vonali

689

Fejezet 26. Soros vonali kommunikci

26.6.5. Tancsok a soros vonali konzol hasznlathoz


26.6.5.1. Nagyobb soros vonali sebessg belltsa
A soros port alaprtelmezsei a kvetkezk: 9600 baud, 8 bites tvitel, parits nincs s 1 stopbit. Ha a konzol alapsebessgt meg akarjuk vltoztatni, akkor ahhoz a kvetkezket kell tennnk:

Fordtsuk jra a rendszerindt blokkokat gy, hogy a BOOT_COMCONSOLE_SPEED vltozban a konzolnak egy msik sebessget adunk meg. Az j rendszerindt blokkok fordtsrl s teleptsrl a 26.6.5.2 Szakaszban kapunk rszletes lerst. Ha a soros vonali konzolt nem a -h opcival lltottuk be, vagy ha a rendszermag a rendszerindt blokkoktl eltr mdon ri el a soros vonali konzolt, akkor a rendszermag belltsai kz mg az albbit is fel kell vennnk, majd jra kell fordtanunk:
options CONSPEED=19200

A rendszermagnak adjuk t a -S rendszerindtsi paramtert. A -S parancssori opci a /boot.config llomnyban is megadhat. A boot(8) man oldalon tudhatjuk meg, hogy a /boot.config belltsai kz hogyan tudjuk felvenni s ott milyen tovbbi lehetsgeink vannak mg. A /boot/loader.conf llomnyban engedlyezzk a comconsole_speed belltst. Ez a bellts a szintn a /boot/loader.conf llomnyban megadhat console, boot_serial s boot_multicons vltozktl fgg. A soros vonali konzol sebessgt teht pldul gy tudjuk megvltoztatni a comconsole_speed megadsval:
boot_multicons="YES" boot_serial="YES" comconsole_speed="115200" console="comconsole,vidconsole"

26.6.5.2. Soros vonali konzol a sio0 porton kvl mshol


Ha valamilyen okbl kifolylag nem a sio0 porton keresztl akarjuk hasznlni a konzolt, akkor ahhoz a rendszerindt blokkok, a rendszertlt s a rendszermag forrsait jra kell fordtanunk az albbiak szerint: 1. 2. Szerezzk be a rendszermag forrst. (Lsd 24 fejezet) rjuk t a /etc/make.conf llomnyban a BOOT_COMCONSOLE_PORT cmt az ltalunk hasznlt porthoz tartozra (0x3F8, 0x2F8, 0x3E8 vagy 0x2E8). Itt csak a sio0 s sio3 (COM1 s COM4) kzti portok hasznlhatak a tbportos soros krtyk cmei nem adhatak meg. A megszaktsokat nem kell belltanunk. Ksztsnk egy sajt rendszermag belltsait tartalmaz llomnyt, s vegyk fel bele a hasznlni kvnt soros port megfelel paramtereit. Pldul, ha a sio1 (COM2) eszkzt akarjuk konzolknt hasznlni:
device sio1 at isa? port IO_COM2 flags 0x10 irq 3

3.

vagy
device sio1 at isa? port IO_COM2 flags 0x30 irq 3

A konzolra vonatkoz belltsokat a tbbi soros portnl ne adjuk meg. 4. Fordtsuk jra s teleptsk a rendszerindt blokkot s a rendszertltt:

690

Fejezet 26. Soros vonali kommunikci


# # # # cd /sys/boot make clean make make install

5. 6.

Fordtsuk s teleptsk jra a rendszermagot. A bsdlabel(8) segtsgvel msoljuk az j rendszerindt blokkot a rendszer indtst vgz lemezre s tltsk be az j rendszermagot.

26.6.5.3. A DDB elrse a soros vonalrl


Ha a soros vonali konzolrl akarjuk hasznlni a rendszermagba ptett nyomkvett (ami hasznos lehet tvoli vizsgldskor, de egyben veszlyes is, ha a soros porton tvesen kikldnk egy BREAK jelzst!), akkor a rendszermagot a kvetkez belltsokkal kell fordtanunk:
options BREAK_TO_DEBUGGER options DDB

26.6.5.4. A bejelentkez kperny elrse a soros vonali konzolrl


Habr erre nincs felttlenl szksgnk, a rendszer zeneteinek s a rendszermag nyomkvetjnek elrse utn akr be is tudunk jelentkezni a soros vonalon keresztl. me! Nyissuk meg az /etc/ttys llomnyt a kedvenc szvegszerkesztnkkel s keressk meg a kvetkez sorokat:
ttyd0 ttyd1 ttyd2 ttyd3 "/usr/libexec/getty "/usr/libexec/getty "/usr/libexec/getty "/usr/libexec/getty std.9600" std.9600" std.9600" std.9600" unknown unknown unknown unknown off off off off secure secure secure secure

A ttyd0 s ttyd3 kzti sorok pontosan a COM1 s COM4 kzti portoknak felelnek meg. A hasznlni kvnt port sorban szerepl off paramtert rjuk t az on rtkre. Ha a soros port sebessgt is megvltoztattuk, minden bizonnyal a std.9600 helyett is az adott sebessghez illeszked paramtert kell megadnunk, pldul az std.19200 rtkkel. rdemes tovbb mg az unknown helyett megadni az adott terminl tpust. Az llomny mdostst kveten a vltozatsok rvnyestshez ki kell adnunk a kill -HUP 1 parancsot is.

26.6.6. A konzol megvltoztatsa a rendszertltbl


A korbbi szakaszokban arrl beszltnk, hogy miknt lltsuk be a soros vonali konzolt a rendszerindt blokk megpiszklsval. Ebben a szakaszban viszont azt mutatjuk meg, hogy klnbz parancsokon s krnyezeti vltozkon keresztl miknt tudjuk megadni a konzolt a rendszertltben. Mivel a rendszertltre a rendszerindts harmadik fokozatban kerl sor, az ott megadott rtkekkel fell tudjuk brlni a rendszerindt blokk belltsait.

691

Fejezet 26. Soros vonali kommunikci

26.6.6.1. A soros vonali konzol belltsa


A rendszertlt s a rendszermag az /boot/loader.conf llomnyon keresztl elg knnyen rvehet a soros vonali konzol hasznlatra:
set console="comconsole"

Ez a rendszerindt blokk elz szakaszban trgyalt belltsaitl fggetlenl rvnyesl. A fenti sort a /boot/loader.conf llomny elejre rdemes tennnk, gy a soros vonali konzolon mr a lehet leghamarabb megjelennek a rendszer zenetei. Ehhez hasonl mdon a bels konzolt is megadhatjuk:
set console="vidconsole"

Ha a rendszertltben nem adjuk meg a console krnyezeti vltoz rtkt, akkor a rendszertlt, s gy a rendszermag is, a rendszerindt blokkban a -h opci ltal meghatrozott konzolt fogja hasznlni. A konzol a /boot/loader.conf.local vagy a /boot/loader.conf llomnyokban adhat meg. A rszletekkel kapcsolatban lsd a loader.conf(5) man oldalt.
Megjegyzs: Jelen pillanatban a rendszertltnek nincs a -P paramterrel ekvivalens rtk belltsa, ezrt a billentyzet jelenlte alapjn nem kpes magtl vlasztani a bels s a soros vonali konzol kztt.

26.6.6.2. Soros vonali konzol a sio0 porton kvl mshol


A rendszertltt ne a sio0 eszkzzel fordtsuk jra a soros vonali konzolhoz. Ehhez kvessk a 26.6.5.2 Szakaszban lert eljrs lpseit.

26.6.7. Figyelmeztetsek
A szakaszban szerepl tletek alapjn sokan gy most mr knnyen be tudnak lltani egy billentyzet s grakus hardver nlkli dediklt szervert. Sajnos azonban a legtbb rendszer nem engedi a billentyzet nlkli indtst, s akad nhny olyan is, amely pedig a grakus krtya hinyban nem is indul el. Az AMI BIOS-os gpeknl a grakus krtya nlkli indtshoz elegend csupn a belltsok kztt a grakus krtyt (graphics adapter) Not installed (nem teleptett) llapotra lltani. Ha ilyen opci nem tallhat a BIOS-ban, akkor helyette keressk a Halt on Error (lells hiba esetn) vltozatot. Ha ezt a All but Keyboard (a billentyzet kivtelvel minden) vagy akr a No Error (soha) rtkre lltjuk, az elbbi eredmnyt kapjuk. Ennek ellenre elfordulhat azonban, hogy egyes gpeken egyltaln nem tallunk ilyen lehetsget s videokrtya nlkl nem indulnak el. Ezekben az esetekben tegynk a gpbe valamilyen krtyt (ehhez elg egy egyszer tpus is), de monitort mr ne kssnk r. Esetleg megprblkozhatunk mg AMI BIOS teleptsvel is.

692

Fejezet 27. A PPP s a SLIP


tdolgozta, trendezte s aktualizlta: Jim Mock.

27.1. ttekints
A FreeBSD szmos mdon kpes sszektni kt szmtgpet. Ha betrcszs modemmel akarunk hlzati vagy internetes kapcsolatot felpteni, esetleg azt szeretnnk, hogy msok kpesek legyenek minket ilyen mdon elrni, akkor ahhoz PPP-t, illetve SLIP-et kell hasznlnunk. Ebben a fejezetben a modemes kommunikci belltsait mutatjuk be rszletesebben. A fejezet elolvassa sorn megismerjk:

hogyan lltsunk be felhasznli PPP-t; hogyan lltsunk be rendszerszint PPP-t; hogyan lltsunk be egy PPPoE (PPP over Ethernet, vagyis PPP Ethernet felett) kapcsolatot; hogyan lltsunk be egy PPPoA (PPP over ATM, vagyis PPP ATM felett) kapcsolatot; hogyan lltsunk be SLIP klienst s szervert.

A fejezet elolvasshoz ajnlott:


az alapvet hlzati technolgik ismerete; a betrcszs kapcsolatok, a PPP s/vagy SLIP alapjainak s cljainak megrtse.

Taln rdekli a kedves olvast, hogy mi az alapvet klnbsg a felhasznli s a rendszerszint PPP kztt. A vlasz egyszer: a felhasznli PPP a berkez s kimen adatokat nem a rendszermagban, hanem a felhasznli szinten dolgozza fel. Ez kltsges abbl a szempontbl, hogy emiatt adatokat kell msolgatni a rendszer s a felhasznli szint kztt, azonban egy sokkal tbbet tud PPP implementcinak ad ezzel utat. A felhasznli PPP a tun eszkzn keresztl kommunikl a klvilggal, mikzben a rendszermagban tallhat PPP mindezt a ppp eszkzzel valstja meg.
Megjegyzs: A fejezetben a felhasznli PPP-t egyszeren csak ppp nven fogjuk hivatkozni, hacsak nem lesz szksges klnbsget tennnk kzte s ms PPP szoftverek, mint pldul a pppd kztt. Ha mst nem mondunk, akkor a fejezetben ismertetett sszes parancsot root felhasznlknt kell kiadni.

27.2. A felhasznli PPP alkalmazsa


Frisstette s javtotta: Tom Rhodes. Eredetileg ksztette: Brian Somers. Segtett mg: Nik Clayton, Dirk Frm-

693

Fejezet 27. A PPP s a SLIP berg, s Peter Childs.

27.2.1. A felhasznli PPP


27.2.1.1. Elfelttelek
A lers felttelezi, hogy rendelkeznk a kvetkezkkel:

Olyan internet-elzets, ahol PPP-n keresztl csatlakozunk Egy modem vagy ms olyan rendszernkhz csatlakoz eszkz, amelyen keresztl el tudjuk rni az internet-szolgltatnkat Az internet-elzets betrcszshoz szksges telefonszmok A bejelentkezsi nevnk s jelszavunk. (Vagy a megszokott UNIX-os felhasznli nv s jelsz pros, vagy egy PAP esetleg CHAP bejelentkezsi nv s jelsz.) Egy vagy tbb nvszerver IP-cme. Ehhez az internet-szolgltatk ltalban kt IP-cmet adnak meg. Ha egyet sem kaptunk, akkor a ppp.conf llomnyban erre a clra hasznlhatjuk az enable dns parancsot, s ekkor a ppp majd automatikusan be fogja lltani neknk a nvszervereket. Ezt a lehetsget az befolysolja, hogy az internet-szolgltat oldaln mkd PPP implementci tmogatja-e a nvfelolds egyeztetst (DNS negotiation).

A kvetkez informcikat is megkaphatjuk az internet-elzetsnkhz, de nem felttlenl szksgesek:

Az internet-szolgltat tjrjnak IP-cme. Az tjr az a gp, amelyen keresztl a gpnk csatlakozik s szmra ez lesz az alaprtelmezett tjr. Ha nem rendelkeznk ezzel az informcival, akkor csak lltsunk be valamit, s majd a csatlakozskor a szolgltat PPP szervere fellrja a megfelel belltsokkal. Erre a cmre a ppp HISADDR nven hivatkozik.

A hasznland hlzati maszk. Amennyiben a szolgltat ezt nem adta meg, nyugodtan hasznljuk erre a 255.255.255.255 rtket. Ha a szolgltatnk statikus IP-cmet s rgztett hlzati nevet is biztost neknk, ezt is megadhatjuk. Minden ms esetben egyszeren csak hagyjuk, hogy a rendszer automatikusan vlasszon neknk egyet.

Ha a szksges informciknak nem vagyunk birtokban, akkor vegyk fel a kapcsolatot az internet-szolgltatkkal.
Megjegyzs: Ebben a szakaszban a pldkban szerepl kongurcis llomnyok sorait szmozva lthatjuk. Ezek a sorszmok a bemutats s a trgyals megknnytse rdekben szerepelnek, s nem az eredeti llomnyok rszei. Mindezek mellett a tabultorok s szkzk megfelel hasznlata is fontos.

27.2.1.2. A PPP automatikus belltsa


A ppp s a pppd (a PPP rendszerszint megvalstsa) egyarnt az /etc/ppp knyvtrban tallhat kongurcis llomnyokat hasznlja. A felhasznli PPP-hez ezenkvl mg a /usr/share/examples/ppp/ knyvtrban vannak pldk.

694

Fejezet 27. A PPP s a SLIP A ppp parancs belltsa az ignyeinktl fggen szmos llomny mdostst ignyelheti. A tartalmukat nagyban befolysolja, hogy a szolgltatnk rszrl a cmeket kiosztsa statikus (vagyis egy adott cmet kapunk s folyamatosan azt hasznljuk) esetleg dinamikus (vagyis az IP-cmnk minden egyes kapcsoldskor ms s ms). 27.2.1.2.1. PPP statikus IP-cmmel Ebben az esetben az /etc/ppp/ppp.conf kongurcis llomnyt kell tszerkesztennk. Tartalma az albbi pldhoz hasonlthat.
Megjegyzs: A : karakterrel vgzd sorok mindig az els oszlopban kezddnek (teht a sor elejn), mg az sszes tbbi sort tabultorok vagy szkzk hasznlatval bentebb kell raknunk.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

default: set log Phase Chat LCP IPCP CCP tun command ident user-ppp VERSION (built COMPILATIONDATE) set device /dev/cuad0 set speed 115200 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \ \"\" AT OK-AT-OK ATE1Q0 OK \\dATDT\\T TIMEOUT 40 CONNECT" set timeout 180 enable dns szolgaltato: set phone "(123) 456 7890" set authname ize set authkey mize set login "TIMEOUT 10 \"\" \"\" gin:--gin: \\U word: \\P col: ppp" set timeout 300 set ifaddr x.x.x.x y.y.y.y 255.255.255.255 0.0.0.0 add default HISADDR

1. sor: Ez azonostja be az alaprtelmezett bejegyzst. Az itt szerepl parancsok a ppp minden egyes futsakor magukbl vgrehajtdnak. 2. sor: Belltja a naplzs paramtereit. Amikor a belltsaink mr kifogstalanul mkdnek, akkor ezt a sort rdemes trni a kvetkezre:
set log phase tun

Ezzel jelents mrtkben vissza tudjuk fogni a naplzs mrtkt. 3. sor: Ezzel mondjuk meg a PPP-nek, hogy a tbbiek fel miknt azonostsa magt. A PPP akkor azonostja magt a trsak fel, ha valamilyen gondja akad az egyeztetsekkel s a kapcsolat belltsval. Az gy tovbbtott informcik a msik oldal rendszergazdi szmra nyjthatnak segtsget az ilyen jelleg problmk feldertsben.

695

Fejezet 27. A PPP s a SLIP 4. sor: Itt adjuk meg az eszkzt, amelyre a modem csatlakozik. A COM1 neve /dev/cuad0, a COM2 neve pedig /dev/cuad1. 5. sor: A csatlakozs sebessgt adjuk meg. Ha a 115 200-as rtk itt nem mkdne (ez egybknt minden jabb gyrtmny modem esetben elfogadhat), akkor helyette hasznljuk a 38400-as belltst. 6. s 7. sorok: A hvshoz hasznlt karakterlnc. A felhasznli PPP a chat(8) programhoz hasonl kldk-vrok tpus szerkesztst alkalmaz. A kihasznlhat lehetsgekrl a man oldaln olvashatunk rszletesebben. Az olvashatsg kedvrt a parancs a kvetkez sorban folytatdik. A ppp.conf llomnyban brmelyik parancs, ahol a \ karakterrel zrjuk a sort, az ugyangy folytathat a kvetkezben. 8. sor: A kapcsolathoz tartoz resjrati idt lltja be. Ennek rtke alapbl 180 msodperc, gy ez a sor pusztn csak az rthetsget szolglja. 9. sor: Arra utastja a PPP-t, hogy a tbbiektl krdezze le a helyi nvfelold belltsait. Ha sajt nvszervert futtatunk, akkor ezt a sort tegyk inkbb megjegyzsbe vagy trljk ki. 10. sor: Ez az res sor az tlthatsg kedvrt kerlt bele. A PPP az sszes res sort gyelmen kvl hagyja. 11. sor: Itt kezddik a szolgaltato nev szolgltathoz tartoz bejegyzs. Ezt ksbb akr ki is cserlhetjk az internet-szolgltatnk nevre, gy a load szolgltat belltssal tudjuk majd beindtani a kapcsolatot. 12. sor: Belltjuk a szolgltathoz tartoz telefonszmot. A kettspont (:) vagy a csvezetk (|) karakterekkel elvlasztva tbb telefonszmot is meg tudunk adni. A ppp(8) oldalon olvashatunk a kt elvlaszt kzti klnbsgekrl. Rviden ezeket gy foglalhatnnk ssze, hogy ha vltogatni akarunk a szmok kztt, akkor hasznljuk a kettspontot. Ha mindig az elsknt megadott szmot akarjuk hvni s a tbbit csak akkor, ha ez nem mkdik, akkor a csvezetk karakterre lesz szksgnk. Ahogy a plda is mutatja, az sszes telefonszmot tegyk mindig idzjelek kz. Ha a telefonszmban egybknt is szerepelnek szkzk, akkor is idzjelek (") kz kell tennnk. Ennek elhagysval egy egyszer, mde knyes hibt ejtnk. 13. s 14. sor: A felhasznli nevet s jelszt tartalmazza. Amikor egy UNIX fajtj bejelentkezst kapunk, akkor ezekre az rtkekre a set login parancsban \U s \P vltozkkal tudunk hivatkozni. Ha PAP vagy CHAP hasznlatval jelentkeznk be, akkor ezek az rtkek a hitelestskor kerlnek felhasznlsra.

696

Fejezet 27. A PPP s a SLIP 15. sor:

Ha a PAP vagy CHAP protokollok valamelyikt hasznljuk, akkor nem lesz szksgnk a login vltozra, ezrt ezt megjegyzsbe is tehetjk, vagy akr ki is trlhetjk. A PAP s CHAP hitelestsrl szl rszben olvashatjuk ennek tovbbi rszleteit. A bejelentkezshez hasznlt karakterlnc hasonlt a behvshoz hasznlt, chat-szer felptssel rendelkez karakterlnchoz. A pldban lthat karakterlnc egy olyan szolgltatshoz illeszkedik, ahol a bejelentkezs valahogy gy nz ki:
A Vilg Legjobb Szolgltatja login: iz password: miz protocol: ppp

Ezt a szkriptet alaktsuk a sajt ignyeinkhez. Ha elszr prblkozunk ilyen szkript rsval, akkor lehetleg kapcsoljuk be a rendszerek kztt lezajl beszlgets naplzst, hogy ellenrizni tudjuk minden a megfelelen mdon trtnik-e. 16. sor: Belltjuk a kapcsolathoz tartoz alaprtelmezett idkorltot (msodpercben). Itt a kapcsolat automatikusan lezrul 300 msodperc ttlensget kveten. Ha nem akarunk ilyen korltot szabni, akkor ezt az rtket lltsuk nullra vagy hasznljuk a -ddial paranccsori kapcsolt. 17. sor: A fellethez tartoz cmeket lltja be. A x.x.x.x helyre a szolgltat ltal kiosztott IP-cmet kell bernunk. A y.y.y.y helyett pedig a szolgltat tjrja kerl be (lnyegben az a gp, amelyhez csatlakozunk). Amennyiben az internet-szolgltatnk nem adott meg semmilyen tjrt, erre a clra a 10.0.0.2/0 cmet is hasznlhatjuk. Amikor neknk kell kitallnunk ezeket a cmeket, akkor ne felejtsnk el ltrehozni hozzjuk egy bejegyzst az /etc/ppp/ppp.linkup llomnyban a PPP dinamikus IP-cmmel szakaszban szereplek szerint. Ha nem adjuk meg ezt a sort, akkor a ppp parancs nem kpes -auto mdban mkdni. 18. sor: A szolgltat tjrjhoz felvesz egy alaprtelmezett tvonalat. A HISADDR kulcsszt a 17. sorban megadott tjr cmvel helyettestjk. Ezrt fontos, hogy ez a 17. sor utn szerepeljen, klnben a HISADDR nem lesz kpes inicializldni. Ha a ppp parancsot nem akarjuk -auto mdban futtatni, akkor ezt a sort a ppp.linkup llomnyba is trakhatjuk. Ha statikus IP-cmmel rendelkeznk s a ppp -auto mdban fut, akkor a ppp.linkup llomnyba egszen addig nem kell semmit sem rnunk, amg a csatlakozs eltt az tvlasztsi tblzatokban a megfelel adatok tallhatak. Olyankor is jl jhet, amikor a csatlakozst kveten meg akarunk hvni bizonyos programokat. Ezt majd a sendmailes pldban fogjuk bvebben kifejteni. Erre pldkat a /usr/share/examples/ppp/ knyvtrban tallhatunk.

697

Fejezet 27. A PPP s a SLIP 27.2.1.2.2. PPP dinamikus IP-cmmel Ha az internet-szolgltatnktl nem kaptunk statikus IP-cmet, akkor a ppp paranccsal is be tudjuk lltani a helyi s tvoli cmeket. Ez az IP-cmek kitallsval trtnik, valamint gy, hogy a ppp szmra a csatlakozs utn lehetv tesszk az IP kongurcis protocol (IP Conguration Protocol, IPCP) hasznlatt. A ppp.conf tartalma szinte teljesen megegyezik a PPP statikus IP-cmmel rszben szereplvel, egyetlen apr klnbsggel:
17 set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.255

Ismt szeretnnk elmondani, hogy a sorszmot ne rjuk bele, hiszen az csak hivatkozsi cllal szerepel. Legalbb egy szkzzel kezdjnk bentebb. 17. sor: A / utn megjelen szm azoknak a biteknek a szmt adja meg, amire a ppp tmaszkodik. A krnyezetnknek jobban megfelel IP-cmeket is megadhatunk, de a fenti plda minden esetben mkdni fog. Az utols paramterrel (0.0.0.0) azt mondjuk a PPP-nek, hogy az egyeztetst ne a 10.0.0.1, hanem a 0.0.0.0 cmmel kezdje meg, amire egyes szolgltatk esetn szksgnk is lesz. A set ifaddr els paramtereknt azonban soha ne adjuk meg a 0.0.0.0 cmet, mivel ezzel a PPP -auto mdban nem tudja belltani a kezdeti tvonalat. Ha nem -auto mdban indtjuk, akkor az /etc/ppp/ppp.linkup llomnyban meg kell adnunk mg egy bejegyzst is. A ppp.linkup llomnyt a kapcsolat ltrejtte utn dolgozzuk fel. Itt mr a ppp megkapta a fellethez tartoz cmeket, gy az tvlasztsi tblzatba fel tudjuk venni hozzjuk a megfelel bejegyzseket:
1 2 szolgaltato: add default HISADDR

1. sor: A kapcsolat felptse sorn a ppp a ppp.linkup llomnyban a kvetkez szablyok szerint fogja keresni a bejegyzseket: elszr a ppp.conf llomnyban megadott cmkt prblja megtallni. Ha ez nem sikerl, akkor az tjrnknak megfelel bejegyzst kezdi el keresni. Ez egy ngy byte-bl ll, felrsban az IP-cmekhez hasonlt cmke. Ha mg ez a cmke sem tallhat, akkor a MYADDR bejegyzst keresi. 2. sor: Ez a sor mondja meg a ppp programnak, hogy vegyen fel egy HISADDR cmre vonatkoz alaprtelmezett tvonalat. A HISADDR cmet az IPCP ltal egyeztetett tjr IP-cmre cserljk ki. Ha erre a rszletesebb pldt akarunk ltni, akkor a /usr/share/examples/ppp/ppp.conf.sample s /usr/share/examples/ppp/ppp.linkup.sample llomnyokban a pmdemand bejegyzst nzzk meg.

27.2.1.2.3. A bejv hvsok fogadsa Amikor egy helyi hlzathoz csatlakoz gpen akarjuk a ppp programot belltani a bejv hvsok fogadsra, akkor azt is el kell dntennk, hogy engedlyezzk-e a csomagok tovbbkldst a bels hlzat fel. Amennyiben igen, akkor a becsatlakoz gpenek a bels hlzatunkon ki kell osztani egy kln cmet s az /etc/ppp/ppp.conf llomnyban, s meg kell adnunk az enable proxy parancsot. Emellett mg az /etc/rc.conf llomnyban se feleljtsk el megadni a kvetkez sort:
gateway_enable="YES"

698

Fejezet 27. A PPP s a SLIP 27.2.1.2.4. Melyik getty? A FreeBSD belltsa betrcszs kapcsolatokhoz nagyon jl bemutatja a betrcszs szolgltatsok belltst a getty(8) segtsgvel. A getty helyett egybknt az mgetty (http://www.leo.org/~doering/mgetty/index.html), a getty egy gyesebb vltozata is hasznlhat, ami kifejezetten a betrcszs vonalakhoz kszlt. A mgetty hasznlatnak tbbek kzt az egyik elnye, hogy aktvan tartja a kapcsolatot a modemekkel, teht hogy ha az /etc/ttys llomnyban letiltjuk a modemet, akkor nem is fog vlaszolni a hvsokra. Emellett az mgetty ksbbi vltozatai (a 0.99 beta vltozattl kezdve) mg a PPP folyamok automatikus szlelst is tmogatjk, ezltal a kliensek szkriptek nlkl is kpesek elrni a szervernket. Ha errl tbbet akarunk megtudni, akkor az mgetty paranccsal kapcsolatban olvassuk el Az mgetty s az AutoPPP cm szakaszt.

27.2.1.2.5. A PPP engedlyei A ppp parancsot ltalban root felhasznlknt kell futtatni. Ha viszont a ppp parancsot tetszleges felhasznlval akarjuk szerver mdban futtatni az imntiek szerint, akkor ahhoz fel kell vennnk az /etc/group llomnyban szerepl network csoportba. Ezeken kvl mg az allow paranccsal is engedlyeznnk kell kongurcis llomny egy vagy tbb rsznek elrst is:
allow users fred mary

Ha ezt a parancsot a default bejegyzsnl adjuk meg, akkor az gy megadott felhasznlk mindenhez hozz tudnak frni.

27.2.1.2.6. PPP shellek a dinamikus IP-cmek hasznlinak Hozzunk ltre egy /etc/ppp/ppp-shell nev llomnyt, amelyben a kvetkezk szerepelnek:
#!/bin/sh IDENT=echo $0 | sed -e s/^.*-\(.*\)$/\1/ CALLEDAS="$IDENT" TTY=tty if [ x$IDENT = xdialup ]; then IDENT=basename $TTY fi echo "PPP for $CALLEDAS on $TTY" echo "Starting PPP for $IDENT" exec /usr/sbin/ppp -direct $IDENT

Ez a szkript legyen vgrehajthat. Ezutn az albbi paranccsal ppp-dialup nven ksztsnk egy szimbolikus linket erre a szkriptre:
# ln -s ppp-shell /etc/ppp/ppp-dialup

699

Fejezet 27. A PPP s a SLIP Ez a szkript lesz az sszes betrcsz felhasznlnk shellje. A most kvetkez plda az /etc/passwd llomnyban szerepl, pchilds nev PPP felhasznl bejegyzst mutatja be (ne felejtsk el, hogy soha ne kzvetlenl szerkesszk a jelszavakat trol llomnyt, hanem a vipw(8) segtsgvel).
pchilds:*:1011:300:Peter Childs PPP:/home/ppp:/etc/ppp/ppp-dialup

Hozzunk ltre egy /home/ppp nev knyvtrat a kvetkez brki ltal olvashat 0 byte-os llomnyokkal:
-r--r--r--r--r--r-1 root 1 root wheel wheel 0 May 27 02:23 .hushlogin 0 May 27 02:22 .rhosts

Ezek hatsra az /etc/motd llomny tartalma nem jelenik meg.

27.2.1.2.7. PPP shellek a statikus IP-cmek hasznlinak Az imntiekhez hasonl mdon ksztsk el a ppp-shell llomnyt, s mindegyik statikus IP-vel rendelkez hozzfrshez csinljunk egy szimbolikus linket a ppp-shell szkriptre. Pldul, ha hrom betrcszs gyfelnk van, fred, sam s mary, feljk 24 bites CIDR hlzatokat kzvettnk, akkor a kvetkezket kell begpelnnk:
# ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-fred # ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-sam # ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-mary

A fentebb szerepl betrcszs felhasznlk elrseihez tartoz shelleket lltsuk be az itt ltrehozott szimbolikus linkekre (gy teht mary shellje az /etc/ppp/ppp-mary lesz).

27.2.1.2.8. A ppp.conf belltsa a dinamikus IP-cmek hasznlinak Az /etc/ppp/ppp.conf llomnyban a kvetkez sorok valamelyiknek kellene szerepelnie:
default: set debug phase lcp chat set timeout 0 ttyd0: set ifaddr 203.14.100.1 203.14.100.20 255.255.255.255 enable proxy ttyd1: set ifaddr 203.14.100.1 203.14.100.21 255.255.255.255 enable proxy

Megjegyzs: A bentebb kezdett sorokat mi is kezdjnk bentebb.

A default: szakasz minden kapcsolat esetn betltdik. Az /etc/ttys llomnyban engedlyezett mindegyik betrcszs vonal ltrehoz a fenti ttyd0: szakaszhoz hasonl bejegyzst. Minden vonal kap egy egyedi IP-cmet a dinamikus felhasznlk szmra sznt cmtartomnybl.

700

Fejezet 27. A PPP s a SLIP 27.2.1.2.9. A ppp.conf belltsa a statikus IP-vel rendelkezk szmra A /usr/share/examples/ppp/ppp.conf llomnyban szerepl tartalom mellett az sszes statikus kioszts IP-cmmel rendelkez betrcsz felhasznlhoz mg hozz kell tennnk egy szakaszt. A pldnkban ezek tovbbra is fred, sam s mary.
fred: set ifaddr 203.14.100.1 203.14.101.1 255.255.255.255 sam: set ifaddr 203.14.100.1 203.14.102.1 255.255.255.255 mary: set ifaddr 203.14.100.1 203.14.103.1 255.255.255.255

Amennyiben szksges, az /etc/ppp/ppp.linkup tartalmazhat tovbbi tvlasztsi informcikat is az egyes statikus IP-cmmel rendelkez felhasznlkhoz. A lentebb bemutatott sor a kliens ppp sszektettsn keresztl vesz fel egy tvonalat a 203.14.101.0/24 hlzat fel.
fred: add 203.14.101.0 netmask 255.255.255.0 HISADDR sam: add 203.14.102.0 netmask 255.255.255.0 HISADDR mary: add 203.14.103.0 netmask 255.255.255.0 HISADDR

27.2.1.2.10. Az mgetty s az AutoPPP Ha az mgetty programot az AUTO_PPP belltssal fordtjuk le, akkor azzal az mgetty kpess vlik a PPP kapcsolatok LCP fzist szlelni s magtl ltrehozni hozz egy ppp shellt. Mivel az alaprtelmezett nv/jelsz pros azonban ilyenkor nem jelenik meg, a felhasznlkat a PAP vagy a CHAP protokollon keresztl lehet hitelesteni. Ez a szakasz most felttelezi, hogy a sikeresen belltottuk, lefordtottuk s teleptettk az mgetty valamelyik (0.99 bta vagy ksbbi) vltozatt az AUTO_PPP opci engedlyezsvel. Az /usr/local/etc/mgetty+sendfax/login.config llomnyban ne felejtsk ellenrizni, hogy szerepel a kvetkez:
/AutoPPP/ /etc/ppp/ppp-pap-dialup

Ezzel utastjuk az mgetty programot arra, hogy az szlelt PPP kapcsolatokhoz futtassa le a ppp-pap-dialup szkriptet. Hozzunk ltre az /etc/ppp/ppp-pap-dialup nev llomnyt, amelyben majd a kvetkezk fognak szerepelni (az llomny legyen vgrehajthat):
#!/bin/sh exec /usr/sbin/ppp -direct pap$IDENT

701

Fejezet 27. A PPP s a SLIP Az /etc/ttys llomnyban engedlyezett sszes betrcszs vonalhoz ksztsk el a megfelel bejegyzst az /etc/ppp/ppp.conf llomnyban. Ezek remekl meg fognak frni az imnt ksztett dencikkal.
pap: enable pap set ifaddr 203.14.100.1 203.14.100.20-203.14.100.40 enable proxy

Minden olyan felhasznlnak, aki ezzel a mdszerrel jelentkezik be, szksge lesz egy nv/jelsz kombincira az /etc/ppp/ppp.secret llomnyban, vagy az albbi bellts megadsval vlaszthatjuk azt is, hogy a felhasznlkat az /etc/passwd llomnyon keresztl a PAP protokoll segtsgvel azonostjuk.
enable passwdauth

Ha statikus IP-cmet akarunk kiosztani nmely felhasznlknak, akkor az /etc/ppp/ppp.secret llomnyban ezt megadhatjuk a harmadik paramternek. Errl bvebben a /usr/share/examples/ppp/ppp.secret.sample llomnyban lthatunk pldt.

27.2.1.2.11. A Microsoft kiterjesztsei A PPP gy is bellthat, hogy krsre DNS s NetBIOS tpus nvfeloldshoz is szolgltasson informcikat. A PPP 1.x vltozatval gy lehet engedlyezni ezeket a kiterjesztseket, ha az /etc/ppp/ppp.conf llomny megfelel rszeibe felvesszk a kvetkez sorokat:
enable msext set ns 203.14.100.1 203.14.100.2 set nbns 203.14.100.5

A PPP msodik s ksbbi vltozataiban pedig:


accept dns set dns 203.14.100.1 203.14.100.2 set nbns 203.14.100.5

Ezzel a kliens megkapja az elsdleges s msodlagos nvszerverek cmeit, valamint a NetBIOS nvszervert. Ha a msodik s az azt kvet verzikban a set dns sort elhagyjuk, akkor a PPP az /etc/resolv.conf llomnyban tallhat rtkeket fogja hasznlni.

27.2.1.2.12. A PAP s CHAP hitelests Egyes internet-szolgltatk gy lltjk be a rendszerket, hogy a kapcsolat felptse sorn a hitelests a PAP vagy CHAP mechanizmusok valamelyikvel trtnik. Ilyenkor a szolgltat nem egy login: sorral fogja bekrni a szksges adatokat, hanem kzvetlenl a PPP kapcsolatot kezdi el hasznlni. A PAP nem olyan biztonsgos, mint a CHAP, de itt a biztonsg nem is annyira fontos, mivel a jelszavak, amelyeket ugyan a PAP titkostatlan formban kld tovbb, csak egy soros vonalon haladnak t. A rossz indulat tmadk itt nem sok mindent tudnak lehallgatni. A PPP statikus IP-cmmel s a PPP dinamikus IP cmmel cm szakaszokhoz kpest a kvetkez mdostsokat kell elvgeznnk:

702

Fejezet 27. A PPP s a SLIP


13 14 15 set authname AFelhasznliNevem set authkey AJelszavam set login

13. sor: Ebben a sorban adjuk meg a PAP/CHAP felhasznli nevnket, amelyet AFelhasznliNevem helyett kell berni. 14. sor: Ebben a sorban adjuk meg a PAP/CHAP jelszavunkat, AJelszavam helyett. Szndnkunk egyrtelmstse rdekben ezek mellett mg egy tovbbi sort is rdemes felvennnk, teht:
16 accept PAP

vagy
16 accept CHAP

Alaprtelmezs szerint a PAP s CHAP is egyarnt elfogadott. 15. sor: A PAP s CHAP alkalmazsakor ltalban nem is kell bejelentkeznnk a szolgltat szerverre. Ezrt a set login parancsnl hasznlt karakterlncot le is kell tiltanunk.

27.2.1.2.13. A ppp belltsainak megvltoztatsa menet kzben A httrben fut ppp programhoz menet kzben is tudunk beszlni, de csak olyankor, amikor az ehhez szksges portot megadtuk. Ezt gy tudjuk megtenni, ha belltsok kz felvesszk az albbit:
set server /var/run/ppp-tun%d DiagnosticPassword 0177

gy a PPP az elre megadott UNIX tartomnybeli socketen keresztl fogja vrni a kapcsoldsunkat, s a konkrt hozzfrshez jelszt kr. A nvben szerepl %d a hasznlatban lev tun eszkz sorszmt jelli. Miutn a csatlakozs belltdott, a szkriptekben a pppctl(8) program hasznlhat a fut program vezrlshez.

27.2.1.3. A PPP hlzati cmfordtsi kpessgnek kihasznlsa


A PPP kpes a rendszermag rsegtse nlkl kpes hlzati cmfordtst vgezni. Ezt a lehetsget a kvetkez sor hozzadsval tudjuk aktivlni az /etc/ppp/ppp.conf llomnyban:
nat enable yes

A PPP-be ptett hlzati cmfordts a -nat parancssori paramterrel is bekapcsolhat. Az /etc/rc.conf llomnyban is tallhat hozz egy ppp_nat vltoz, amely alaprtelmezs szerint engedlyezett. Amikor hasznljuk ezt a lehetsget, az /etc/ppp/ppp.conf llomnyban a kvetkez opcikkal engedlyezhetjk a bejv kapcsolatok tovbbtst:
nat port tcp 10.0.0.2:ftp ftp

703

Fejezet 27. A PPP s a SLIP


nat port tcp 10.0.0.2:http http

vagy egyltaln ne bzzunk meg a klvilgban:


nat deny_incoming yes

27.2.1.4. A rendszer vgs belltsa


Mostanra ugyan mr belltottuk a ppp programot, azonban mg nhny dolgot be kell lltanunk, mieltt tnylegesen nekiltnnk hasznlni. Ezek mindegyike az /etc/rc.conf llomny mdostst ignyli. Az llomnyt fentrl lefel fogjuk feldolgozni, de eltte ne felejtsnk el rtket adni a hostname= vltoznak, pldul:
hostname="ize.minta.com"

Amennyiben a szolgltatnk statikus IP-cmet s nevet biztost szmunkra, az lesz a legjobb, ha itt a tle kapott nevet adjuk meg. Keressk meg a network_interfaces vltozt. Ha a rendszernkben krsre akarjuk trcszni a szolgltatnkat, akkor a tun0 eszkzt mindenkppen vegyk fel az rtkbe, minden ms esetben pedig tvoltsuk el.
network_interfaces="lo0 tun0" ifconfig_tun0=

Megjegyzs: Az ifconfig_tun0 vltoznak res rtket kell megadnunk, s ltre kell hoznunk egy /etc/start_if.tun0 nev llomnyt. Ebben a kvetkez sornak kell szerepelnie:
ppp -auto arendszerem

Ez a szkript a hlzat belltsakor fut le, s a ppp dmont automatikus mdban indtja el. Ha az adott gp egy helyi hlzat tjrja is egyben, akkor az -alias kapcsolt is rdemes megadnunk mellette. A pontosabb rszletek tekintetben olvassuk el a megfelel man oldalt.

Az /etc/rc.conf llomnyban a NO rtk megadsval tiltsuk le az tvlasztst vgz program hasznlatt:


router_enable="NO"

Fontos, hogy a routed dmon ne induljon el, mivel routed hajlamos trlni a ppp ltal ltrehozott alaprtelmezett tvlasztsi bejegyzseket. Ezenkvl mg a sendmail_flags vltozrl szl sorbl is rdemes kivenni a -q opcit, msklnben a sendmail minden mvelet megkezdse eltt nekill felderteni a hlzatot, s ezzel megindtja a trcszst. Prbljuk meg gy trni az rtkt:
sendmail_flags="-bd"

Ezrt cserbe viszont a sendmail programot a ppp kapcsolat ltrejttekor mindig utastanunk kell, hogy jbl ellenrizze a levelezsi sort. Ezt a kvetkezk begpelsvel rhetjk el:
# /usr/sbin/sendmail -q

704

Fejezet 27. A PPP s a SLIP Ugyanezt automatikusan is meg tudjuk tenni a !bg paranccsal a ppp.linkup llomnyban:
1 2 3 4 szolgaltato: delete ALL add 0 0 HISADDR !bg sendmail -bd -q30m

Ha nem felelne meg ez a megolds, akkor egy dlter is bellthat az SMTP forgalom szrsre. A pldk kztt megtalljuk ennek pontos minkntjt. Ezutn mr csak a gpnk jraindtsa maradt htra. Az jraindts utn mr be is gpelhetjk:
# ppp

ahol a dial szolgaltato parancs kiadsval meg tudjuk kezdeni a PPP kapcsolat felptst, vagy a ppp programot megkrhetjk arra, hogy automatikusan kezdje el, amint van kimen forgalom (s nem ksztettk el a start_if.tun0 szkriptet). Ekkor gpeljk be ezt:
# ppp -auto szolgaltato

27.2.1.5. sszefoglals
Gyorsan foglaljuk ssze, hogy az ppp belltshoz milyen lpsek megttele szksges az els alkalommal: A kliens oldaln: 1. 2. 3. 4. 5. 6. Gyzdjnk meg rla, hogy a tun eszkz benne van a rendszermagban. Ellenrizzk, hogy a tunN eszkzhz tartoz llomny rendelkezsre ll a /dev knyvtrban. Hozzunk ltre egy bejegyzst az /etc/ppp/ppp.conf llomnyban. A pmdemand pldbl a legtbb szolgltat esetben ki tudunk indulni. Ha dinamikus IP-cmet kapunk, akkor az /etc/ppp/ppp.linkup llomnyba is vegynk fel egy bejegyzst. Frisstsk az /etc/rc.conf llomnyunkat. Ha igny szerint akarunk trcszni, akkor hozzunk ltre start_if.tun0 nven egy szkriptet.

A szerver oldaln: 1. 2. 3. 4. 5. 6. 7. Gondoskodjunk rla, hogy a tun eszkz tmogatsa szerepel rendszermagban. Gyzdjnk meg rla, hogy a tunN eszkz megtallhat a /dev knyvtrban. Az /etc/passwd llomnyban (a vipw(8) program hasznlatval) hozzunk ltre bejegyzseket. A felhasznlk knyvtraiban hozzunk ltre egy olyan prolt, amely ppp -direct direct-server vagy egy ehhez hasonl parancsot futtat le. Az /etc/ppp/ppp.conf llomnyban adjuk meg egy bejegyzst. A direct-server plda ehhez egy remek alapot biztost. Az /etc/ppp/ppp.linkup llomnyban hozzunk ltre egy bejegyzst. Frisstsk az /etc/rc.conf llomnyunkat.

705

Fejezet 27. A PPP s a SLIP

27.3. A rendszerszint PPP alkalmazsa


Egyes rszeit ksztette: Gennady B. Sorokopud s Robert Huff.

27.3.1. A rendszerszint PPP belltsa


Mieltt a gpnkn nekikezdnk a PPP belltsnak, ellenrizzk, hogy a pppd megtallhat a /usr/sbin knyvtrban s az /etc/ppp knyvtr ltezik. A pppd kt mdban kpes mkdni: 1. kliensknt a gpnket soros vonali vagy modemes PPP kapcsolaton keresztl csatlakoztatjuk a klvilghoz 2. szerverknt a szmtgpnk egy hlzat rsze, ahol a tbbieket a PPP hasznlatval kapcsoljuk ssze Mind a kt esetben egy kongurcis llomny tartalmt kell sszelltanunk (ez az /etc/ppp/options vagy a ~/.ppprc, ha a gpnkn tbb felhasznl is PPP-t akar hasznlni). Egy modemes vagy soros vonali szoftverre is szksgnk lesz (ez tbbnyire a comms/kermit), amellyel tvoli gpeket tudunk felhvni s feljk kapcsolatot felpteni.

27.3.2. A pppd mint kliens


Az alapjul szolgl informcikat adta: Trev Roydhouse. A most kvetkez /etc/ppp/options llomnnyal egy Cisco terminl szerverhez tudunk kapcsoldni egy PPP vonalon keresztl.
crtscts modem noipdefault # a hardveres forgalomirnyts engedlyezse # modem vezrlvonal # a tvoli PPP szervernek kell IP-cmet adnia # ha az IPCP alap egyeztets sorn a tvoli gp nem kld # neknk IP-cmet, akkor vegyk ki ezt a belltst passive # LCP csomagokat vrunk domain ppp.ize.com # ide rjuk be a hlzati nevnket :tvoli_ip # ide kell rni a tvoli PPP szerver IP-cmt # a PPP kapcsolaton keresztl erre fogjuk tovbbkldeni a csomagokat # ha nem adtuk meg "noipdefault" belltst, akkor ezt a sort # rjuk t helyi_ip:tvoli_ip alakra # adjuk meg ezt a sort is, ha a PPP szervernket egyben az # alaprtelmezett tjrnak is be akarjuk lltani

defaultroute

gy kapcsoldunk: 1. Trcszzuk a tvoli gpet a Kermit (vagy brmilyen ms modemes program) elindtsval, majd adjuk meg a felhasznli nevnket s jelszavunkat (vagy brmi mst, amivel a tvoli gpen engedlyezni tudjuk a PPP hasznlatt). Lpjnk ki a Kermit programbl (anlkl, hogy bontannk a vonalat).

2.

706

Fejezet 27. A PPP s a SLIP 3. rjuk be a kvetkezket:


# /usr/sbin/pppd /dev/tty01 19200

Ne felejtsk el megadni a megfelel sebessget s eszkzt. A szmtgpnk most mr PPP-n keresztl csatlakozik. Ha valamilyen okbl nem sikerlne felpteni a kapcsolatot, akkor vegyk fel a debug belltst is az /etc/ppp/options llomnyba, majd a konzolra rkez zenetek segtsgvel prbljuk meg felderteni a problma okt. Az albbi /etc/ppp/pppup szkript mind a hrom fzist automatikuss teszi:
#!/bin/sh pgrep -l pppd pid=pgrep pppd if [ "X${pid}" != "X" ] ; then echo killing pppd, PID= ${pid} kill ${pid} fi pgrep -l kermit pid=pgrep kermit if [ "X${pid}" != "X" ] ; then echo killing kermit, PID= ${pid} kill -9 ${pid} fi ifconfig ppp0 down ifconfig ppp0 delete kermit -y /etc/ppp/kermit.dial pppd /dev/tty01 19200

Az /etc/ppp/kermit.dial egy olyan Kermit szkript, amivel trcszni tudunk s a tvoli gpen elvgezni az sszes szksges hitelestst (a lers vgn tallhatunk is egy ilyen szkriptet pldaknt). Az albbi /etc/ppp/pppdown szkripttel tudjuk bontani a PPP vonalat:
#!/bin/sh pid=pgrep pppd if [ X${pid} != "X" ] ; then echo killing pppd, PID= ${pid} kill -TERM ${pid} fi pgrep -l kermit pid=pgrep kermit if [ "X${pid}" != "X" ] ; then echo killing kermit, PID= ${pid} kill -9 ${pid} fi /sbin/ifconfig ppp0 down /sbin/ifconfig ppp0 delete kermit -y /etc/ppp/kermit.hup /etc/ppp/ppptest

707

Fejezet 27. A PPP s a SLIP A /usr/etc/ppp/ppptest elindtsval ellenrizni tudjuk, hogy a pppd mg mindig fut. Ez valahogy gy nz ki:
#!/bin/sh pid=pgrep pppd if [ X${pid} != "X" ] ; then echo pppd running: PID= ${pid-NONE} else echo No pppd running. fi set -x netstat -n -I ppp0 ifconfig ppp0

A vonal bontshoz az /etc/ppp/kermit.hup szkriptet kell elindtanunk, amiben a kvetkez szerepelnek:


set set set set set set set set set set set line /dev/tty01 ; ide rjuk be a sajt modemnket speed 19200 file type binary file names literal win 8 rec pack 1024 send pack 1024 block 3 term bytesize 8 command bytesize 8 flow none

pau 1 out +++ inp 5 OK out ATH0\13 echo \13 exit

A kermit helyett a chat programot is hasznlhatjuk: A kvetkez kt llomny mr elg egy kapcsolat ltrehozshoz pppd hasznlatval:
/etc/ppp/options: /dev/cuad1 115200 crtscts # a hardveres forgalomirnyts engedlyezse modem # modemes vezrlvonal connect "/usr/bin/chat -f /etc/ppp/login.chat.script" noipdefault # a tvoli PPP kiszolglnak adnia kell egy IP-cmet # ha a tvoli gp nem kldi az IP-cmnk az IPCP alap egyeztets sorn # akkor tvoltsuk el ezt a belltst passive # LCP csomagokat vrunk domain sajat.tartomany # ide rjuk be a sajt tartomnynevnket : # a tvoli PPP kiszolgl IP-cmt tegyk ide # ezen keresztl fogjuk tovbbkldeni a PPP kapcsolaton thalad csomagokat # nem adtuk meg a "noipdefault" belltst, akkor ezt

708

Fejezet 27. A PPP s a SLIP


# sort rjuk t helyi_ip:tvoli_ip alakra defaultroute # ez a sor akkor kell, ha a PPP szerver lesz az # alaprtelmezett tjrnk is /etc/ppp/login.chat.script: Megjegyzs: A most kvetkezt egyetlen sorba kell rnunk.

ABORT BUSY ABORT NO CARRIER "" AT OK ATDTtelefon.szm CONNECT "" TIMEOUT 10 ogin:-\\r-ogin: bejelentkezsi-azonost TIMEOUT 5 sword: jelsz

Miutn ezeket teleptettk s a megfelelkppen mdostottuk, mr csak a pppd parancsot kell kiadnunk, valahogy gy:
# pppd

27.3.3. A pppd mint szerver


Az /etc/ppp/options llomnyban nagyjbl a kvetkezknek kell szerepelnie:
crtscts netmask 255.255.255.0 192.114.208.20:192.114.208.165 # # # # # # # # # hardveres forgalomirnyts hlzati maszk (nem ktelez) a helyi s tvoli gpek IP-cmei a helyi IP-nek el kell trnie az Ethernet (vagy ms egyb) fellethez tartoz cmtl. a tvoli IP a tvoli gphez rendelt IP-cm a sajt tartomnyunk az LCP csomagok vrsa modemes vonal

domain ppp.ize.com passive modem

Az albbi /etc/ppp/pppserv szkript a pppd dmont szervernek lltja be:


#!/bin/sh pgrep -l pppd pid=pgrep pppd if [ "X${pid}" != "X" ] ; then echo killing pppd, PID= ${pid} kill ${pid} fi pgrep -l kermit pid=pgrep kermit if [ "X${pid}" != "X" ] ; then echo killing kermit, PID= ${pid} kill -9 ${pid} fi # reset ppp interface ifconfig ppp0 down

709

Fejezet 27. A PPP s a SLIP


ifconfig ppp0 delete # enable autoanswer mode kermit -y /etc/ppp/kermit.ans # run ppp pppd /dev/tty01 19200

A szerver lelltsra a kvetkez /etc/ppp/pppservdown szkriptet kell hasznlnunk:


#!/bin/sh pgrep -l pppd pid=pgrep pppd if [ "X${pid}" != "X" ] ; then echo killing pppd, PID= ${pid} kill ${pid} fi pgrep -l kermit pid=pgrep kermit if [ "X${pid}" != "X" ] ; then echo killing kermit, PID= ${pid} kill -9 ${pid} fi ifconfig ppp0 down ifconfig ppp0 delete kermit -y /etc/ppp/kermit.noans

A kvetkez Kermit szkript (/etc/ppp/kermit.ans) engedlyezi vagy tiltja le a modem automatikus vlaszadst. Krlbell gy pl fel:
set set set set set set set set set set set line /dev/tty01 speed 19200 file type binary file names literal win 8 rec pack 1024 send pack 1024 block 3 term bytesize 8 command bytesize 8 flow none

pau 1 out +++ inp 5 OK out ATH0\13 inp 5 OK echo \13 out ATS0=1\13 inp 5 OK echo \13

; "ATS0=0\13"-ra rjuk t, ha le akarjuk tiltani az ; automatikus vlaszadst

710

Fejezet 27. A PPP s a SLIP


exit

Az /etc/ppp/kermit.dial elnevezs szkriptet hasznlhatjuk arra, hogy trcszzunk tvoli gpeket s hitelestsk magunkat rajtuk. rjuk t az ignyeinknek megfelelen, tegyk bele a bejelentkezshez szksges azonostt s jelszt, illetve a modemnk s a tvoli gp vlaszai szerint mdostsuk az input utastsokat.
; ; rjuk ide azt a com vonalat, amire a modemnk csatlakozik: ; set line /dev/tty01 ; ; ide kerl a modem sebessge: ; set speed 19200 set file type binary ; teljes 8 bites llomny-tvitel set file names literal set win 8 set rec pack 1024 set send pack 1024 set block 3 set term bytesize 8 set command bytesize 8 set flow none set modem hayes set dial hangup off set carrier auto ; adjuk meg a SET CARRIER utastst is, ha kell set dial display on ; adjuk meg a SET DIAL utastst is, ha kell set input echo on set input timeout proceed set input case ignore def \%x 0 ; a bejelentkezs szmllja goto slhup :slcmd ; tegyk a modemet parancs mdba echo Tegyuk a modemet parancs modba. clear ; trljk a be nem olvasott karaktereket a bemeneti pufferbl pause 1 output +++ ; a Hayes-fle helyettestsi szekvencik hasznlata input 1 OK\13\10 ; vrjuk meg az OK jelzst if success goto slhup output \13 pause 1 output at\13 input 1 OK\13\10 if fail goto slcmd ; ha a modem nem vlaszol OK-val, akkor prblkozzunk jra :slhup clear pause 1 echo A vonal bontasa. output ath0\13 input 2 OK\13\10 if fail goto slcmd ; bontsuk a vonalat ; trljk ki a be nem olvasott karaktereket a bemeneti pufferbl

; a kapcsolat ltrejttt jelz Hayes-parancs ; ha nincs OK vlasz, akkor tegyk a modemet parancs mdba

711

Fejezet 27. A PPP s a SLIP

:sldial pause 1 echo Dialing. output atdt9,550311\13\10 assign \%x 0 :look clear increment \%x input 1 {CONNECT } if success goto sllogin reinput 1 {NO CARRIER\13\10} if success goto sldial reinput 1 {NO DIALTONE\13\10} if success goto slnodial reinput 1 {\255} if success goto slhup reinput 1 {\127} if success goto slhup if < \%x 60 goto look else goto slhup :sllogin assign \%x 0 pause 1 echo A bejelentkezes keresese.

; trcszzuk a szmot

; ide rjuk a telefonszmot ; nullzzuk le az idztt

; trljk az olvasatlan karaktereket a bemeneti pufferbl ; szmoljuk a msodperceket

; bejelentkezs ; nullzzuk le az idztt

:slloop increment \%x ; szmoljuk a msodperceket clear ; trljk az olvasatlan karaktereket a bemeneti pufferbl output \13 ; ; ide rjuk be a vrhat bejelentkezsi sablont: ; input 1 {Felhasznaloi nev: } if success goto sluid reinput 1 {\255} if success goto slhup reinput 1 {\127} if success goto slhup if < \%x 10 goto slloop ; tzszer prblkozzunk a bejelentkezssel else goto slhup ; 10 sikertelen prblkozs utn bontsuk a vonalat s kezdjk jra :sluid ; ; ide rjuk be a felhasznli azonostnkat: ; output ppp-login\13 input 1 {Jelszo: } ; ; ide tegyk a hozztartoz jelszt: ;

712

Fejezet 27. A PPP s a SLIP


output ppp-password\13 input 1 {Atvaltas SLIP modba.} echo quit :slnodial echo \7Nincs vonal. exit 1 ; ; ; ; ;

Ellenorizzuk a telefonvonalat!\7

local variables: mode: csh comment-start: "; " comment-start-skip: "; " end:

27.4. PPP kapcsolatok hibaelhrtsa


Ksztette: Tom Rhodes. Ebben a szakaszban sszefoglalunk nhny olyan problmt, ami a PPP modemen keresztli hasznlata sorn keletkezhet. Pldul pontosan tisztban kell lennnk azzal, hogy a trcszott rendszer milyen adatokat s hogyan fog tlnk bekrni. Egyes szolgltatk egy ssword promptot, mg msok egy password promptot adnak. Ha a ppp szkript nem illeszkedik ezekhez az elvrsokhoz, akkor nem tudunk bejelentkezni. A ppp csatlakozsok nyomonkvetsnek egyik leggyakoribb mdja a manulis kapcsolds. A kvetkezkben ezrt a manulis csatlakozsokra vonatkoz legszksgesebb ismereteket mutatjuk be lpsrl lpsre.

27.4.1. Az eszkzlerk ellenrzse


Ha sajt rendszermagot hasznlunk, ne felejtsk el felvenni a kvetkez sort a kongurcis llomnyba:
device sio

A GENERIC rendszermag a sio eszkzt mr alaprtelmezs szerint tartalmazza, ezrt ilyenkor mr nincs tbb teendnk. Egyszeren csak a dmesg parancs kimenetben keressk meg a modemes eszkzhz tartoz adatokat:
# dmesg | grep sio

Ennek eredmnyekppen kapunk egy rvid sszefoglalst a sio tpus eszkzkrl. Ezek lesznek a szmunkra fontos COM portok. Amennyiben a modemnk egy szabvnyos soros portknt mkdik, akkor a sio1 vagy COM2 nven kell keresnnk. Ha megtalltuk, akkor nem kell j rendszermagot fordtanunk. Amikor a soros vonali modemnk a sio1 vagy COM2 porton csatlakozik DOS-ban, akkor itt a neki megfelel eszkz a /dev/cuad1 lesz.

27.4.2. Kapcsolds manulisan


A ppp kzi irnytsval gyorsan, egyszeren s minden fjdalomtl mentesen tudunk csatlakozni az internethez, de olyankor is hasznos, ha ki akarjuk derteni, hogy az internet-szolgltatnk milyen mdon kezeli a kliensek ppp

713

Fejezet 27. A PPP s a SLIP csatlakozsait. Nos, akkor ehhez indtsuk is el a PPP alkalmazst a paranccsorbl. Az albbi pldkban rendre a pelda nvvel hivatkozunk a PPP-t mkdtet gpre. A ppp teht a ppp parancs begpelsvel indthat:
# ppp

Ezzel elindtottuk a ppp programot.


ppp ON pelda> set device /dev/cuad1

Belltjuk a modemnket, ami ebben az esetben a cuad1.


ppp ON pelda> set speed 115200

Belltjuk a csatlakozs sebessgt, ami ebben az esetben 115 200 kbit/mp.


ppp ON pelda> enable dns

Azt mondjuk a ppp programnak, hogy lltsa be a nvfeloldt s az /etc/resolv.conf llomnyt egsztse ki a megfelel nvszerverekkel. Ha a ppp nem kpes megllaptani a gpnk nevt, akkor ksbb ezt mg kzzel is be tudjuk lltani.
ppp ON pelda> term

Vltsunk terminl mdba, gy mi irnytjuk a modemet.


deflink: Entering terminal mode on /dev/cuad1 type ~h for help
at

OK
atdt123456789

Az at paranccsal hozzuk alaphelyzetbe a modemet, majd a atdt paranccsal s egy telefonszm megadsval megkezdjk a szolgltat trcszst.
CONNECT

Ezzel jelez vissza a kapcsolds megkezdsrl. Ha itt brmilyen hardvertl fggetlen csatlakozsi problma merlne fel, akkor ezen a ponton tudunk ellene tenni valamit.
ISP Login:felhasznalonev

Itt kell megadnunk a felhasznli nevnket, ami megegyezik a szolgltat ltal adott azonostnkkal.
ISP Pass:jelszo

Ezttal a jelszavunkat kell megadni, amit szintn a szolgltat bocstott rendelkezsnkre az azonost mellett. Akrcsak amikor bejelentkeznk a FreeBSD-be, itt sem fog ltszdni a jelszavunk.
Shell or PPP:ppp

Szolgltattl fggen elfordulhat, hogy ez a sor soha nem is jelenik meg. Itt krdezik meg, hogy a szolgltatnl egy shellt akarunk hasznlni, vagy csak elindtani egy ppp kapcsolatot. Ebben a pldban termszetesen a ppp opcit vlasztjuk, mivel egy internet-elzets birtokosai vagyunk.

714

Fejezet 27. A PPP s a SLIP


Ppp ON pelda>

Figyeljk meg, hogy az els p nagybetss vlt. Ezzel jelzi a program, hogy sikeresen csatlakoztunk a szolgltatnkhoz.
PPp ON pelda>

Sikeresen azonostottuk magunkat a szolgltat fel s vrjuk az IP-cmnket.


PPP ON pelda>

Megkaptuk az IP-cmnket s ezzel sikeresen felplt a kapcsolat.


PPP ON pelda>add default HISADDR

Itt adjuk hozz az alaprtelmezett tvonalat, amire mindenkppen szksgnk van ahhoz, hogy a klvilggal is kapcsolatban tudjunk lpni, mivel jelenleg csak a vonal msik vgn lv gpet rjk el. Ha ezt bizonyos, mr meglev tvonalak miatt nem sikerl felvenni, akkor az add el tegynk egy ! jelet. Ezt viszont a kapcsolat felptse eltt is megtehetjk, gy menet kzben az j tvonalat felveszi a tbbi kz. Ha eddig minden remekl ment, akkor ezen ponton mr egy l internet-kapcsolattal rendelkeznk, s a programot a CTRL+z lenyomsval a httrbe is tehetjk. Ha a PPP felirat ismt a ppp feliratra vltana, akkor az arra utal, hogy elvesztettk a kapcsolatot. Erre nem rt gyelni, mivel ezzel jelzi az aktulis kapcsolat llapott. A nagybets P-k jellik, hogy az adott szinten megvan a kapcsolat a szolgltat fel, a kisbets p-k pedig arra utalnak, hogy azon a szinten a kapcsolat valamirt megsznt. A ppp csak ezt a kt llapotot ismeri.

27.4.2.1. Nyomkvets
Ha kzvetlen vonalunk van s mgsem sikerl kapcsolatot ltesteni, akkor tiltsuk le a hardveres CTS/RTS forgalomirnytst a set ctsrts off paranccsal. Ez leginkbb akkor fordul el, ha csatlakoztunk egy olyan terminlszerverhez, amely valamennyire kpes kezelni a PPP kapcsolatokat, de a PPP megll, mikor adatot prbl rni a kommunikcis csatornra, mivel arra a CTS (Clear To Send lehet kldeni) jelzsre vr, amely soha nem fog megrkezni. Ha mgis ezt a belltst akarjuk hasznlni, akkor a set accmap belltsra is szksgnk lesz, mivel ez kell bizonyos karakterek hardverfgg tkldsnek fellbrlshoz, legtbb esetben a XON/XOFF miatt. A ppp(8) man oldalon tallhatunk errl s ennek hasznlatrl rszletesebb lerst. Ha egy rgebbi gyrtmny modemnk van, akkor a set parity even bellts alkalmazsa is javasolt. Alaprtelmezs szerint ugyanis nincs parits, de a rgebbi modemek s (a forgalom nvekedsvel) egyes szolgltatk mg hasznljk hibaellenrzsre. Ha Compuserve elzetsnk van, mindenkppen kapcsoljuk be. Amikor a PPP nem tr vissza parancs mdba, akkor gyanthatan az egyeztetsben lesz valahol problma, mivel a szolgltat a kliensktl vrja a kezdemnyezst. Ezen a ponton a ~p paranccsal utasthatjuk a ppp programot a kongurcis informcik tkldsnek megkezdsre. Ha egyltaln nem kapunk promptot a bejelentkezshez, akkor nagy a alsznsge, hogy az imnti UNIX stlus hitelests helyett PAP vagy CHAP protokollt kell hasznlnunk. A PAP vagy CHAP hasznlathoz mindssze a kvetkez belltsokat kell megadnunk PPP programnak a terminl md aktivlsa eltt:
ppp ON pelda> set authname felhasznalonev

ahol a felhasznalonev helyett a szolgltattl kapott azonostt kell bernunk.


ppp ON pelda> set authkey jelszo

715

Fejezet 27. A PPP s a SLIP ahol a jelszo helyett a szolgltattl kapott jelszt kell megadnunk. Ha sikeresen csatlakoztunk, de mg nem tallunk semmilyen tartomnynevet, akkor a ping(8) s IP-cm segtsgvel tudjuk megvizsglni, hogy mkdkpes-e a kapcsolat. Ha 100 szzalkos (100%) csomagvesztst (packet loss) tapasztalunk, akkor szinte biztos, hogy nincs meg az alaprtelmezett tvonal. Nzzk meg jra, hogy az add default HISADDR belltst megadtuk-e a kapcsolat felptsekor. Ha viszont mr el tudunk rni egy tvoli IP-cmet, akkor nagyon valszn, hogy az /etc/resolv.conf llomnyba nem kerlt bele a megfelel nvfelold cme. Az emltett llomnynak valahogy gy kellene kinznie:
domain minta.com nameserver x.x.x.x nameserver y.y.y.y

Ahol az x.x.x.x s y.y.y.y cmeket a szolgltatnk nvszervereinek cmvel kell behelyettesteni. Ez nem minden esetben tallhat meg az elzeti szerzdsben, de ha felhvjuk a szolgltatnkat, akkor minden bizonnyal elruljk ezeket a cmeket. A syslog(3) is alkalmas a PPP kapcsolatok naplzsra. Ehhez csupn ennyit kell megadnunk az /etc/syslog.conf llomnyban:
!ppp *.*

/var/log/ppp.log

A legtbb esetben ez a lehetsg mr eleve adott.

27.5. A PPP hasznlata Ethernet felett (PPPoE)


Ksztette (a http://node.to/freebsd/how-tos/how-to-freebsd-pppoe.html alapjn): Jim Mock. Ebben a szakaszban azt ismertetjk, hogyan lltsuk be a PPP-t Ethernet felett (PPP over Ethernet, PPPoE).

27.5.1. A rendszermag belltsa


A PPPoE mkdshez most mr semmilyen mdostsra nincs szksg a rendszermag belltsaiban. Amennyiben a hozz szksges Netgraph tmogats nem tallhat a rendszermagban, akkor azt a ppp nmkden betlti.

27.5.2. A ppp.conf belltsa


me egy mkd ppp.conf llomny:
default: set log Phase tun command # itt akr egy rszletesebb naplzst is be tudunk lltani set ifaddr 10.0.0.1/0 10.0.0.2/0 a_szolgaltato_neve: set device PPPoE:xl1 # az xl1 helyre rjuk be a sajt Ethernet eszkznket set authname FELHASZNALONEV

716

Fejezet 27. A PPP s a SLIP


set set set add authkey JELSZO dial login default HISADDR

27.5.3. A ppp futtatsa


root felhasznlknt adjuk ki az albbi parancsot:
# ppp -ddial a_szolgaltato_neve

27.5.4. A ppp indtsa a rendszerindts sorn


Az /etc/rc.conf llomnyba vegyk fel a kvetkezket:
ppp_enable="YES" ppp_mode="ddial" ppp_nat="YES" # csak akkor, ha cmfordts kell a helyi hlzaton, msklnben "NO" ppp_profile="a_szolgaltato_neve"

27.5.5. A szolgltatsi cmkk hasznlata


Bizonyos esetekben szolgltatsi cmkt (service tag) is hasznlnunk kell a kapcsolat ltrehozshoz. A szolgltatsi cmkk segtsgvel tudjuk megklnbztetni az adott hlzaton elrhet klnbz PPPoE szervereket. A szolgltattl kapott dokumentciban szerepelnie kell minden ehhez kapcsold informcinak. Amennyiben nem talljuk, rdekldjnk a szolgltatnl. Utols remnyknt megprblhatjuk a Portgyjtemnyben tallhat Roaring Penguin PPPoE (http://www.roaringpenguin.com/pppoe/) nev program ltal javasolt mdszert. Ennl vegyk azonban szmtsba, hogy flre tudja programozni a modemnket, amitl akr hasznlhatatlann is vlhat, ezrt ktszer is gondoljuk meg, mieltt hasznlni kezdjk. Egyszeren csak tegyk fel a szolgltattl a modemnk mell kapott szoftvert. Ezutn lpjnk be a program System menjbe. Itt kell lennie a megfelel prolnak, ami ltalban az ISP. A prol neve (a szolgltats cmkje) a ppp.conf llomnyban a PPPoE bejegyzs rszeknt jelenik meg a set device parancsban (ennek pontos rszleteit lsd a ppp(8) man oldalon). Teht nagyjbl gy nz ki:
set device PPPoE:xl1:ISP

Az xl1 eszkz nevt ne felejtsk el a megfelel Ethernet krtyhoz tartoz eszkz nevre kicserlni. Az ISP helyett pedig rjuk be az imnt kidertett prol nevt. A tmval kapcsolatban az albbi helyeken tallhatunk tovbbi informcikat:

Cheaper Broadband with FreeBSD on DSL (http://renaud.waldura.com/doc/freebsd/pppoe/), rta: Renaud Waldura (angolul).

717

Fejezet 27. A PPP s a SLIP

Nutzung von T-DSL und T-Online mit FreeBSD (http://www.ruhr.de/home/nathan/FreeBSD/tdsl-freebsd.html), rta: Udo Erdelhoff (nmetl).

27.5.6. PPPoE s a 3Com HomeConnect ADSL Modem Dual Link


Ez a modem nem felel meg az RFC 2516 (http://www.faqs.org/rfcs/rfc2516.html) elrsainak (A Method for transmitting PPP over Ethernet (PPPoE), rta: L. Mamakos, K. Lidl, J. Evarts, D. Carrel, D. Simone s R. Wheeler). Helyette az Ethernet keretekben eltr csomagtpus kdokat hasznl. A 3Com-nl (http://www.3com.com/) panaszkodjunk, ha szerintnk is be kellene tartaniuk a PPPoE specikcijt. A FreeBSD is csak akkor lesz kpes egyttmkdni ezzel az eszkzzel, ha belltjuk a megfelel sysctl vltozt. Ezt a rendszerindts sorn automatikusan meg tudjuk tenni az /etc/sysctl.conf mdostsval:
net.graph.nonstandard_pppoe=1

vagy kzvetlenl az albbi paranccsal:


# sysctl net.graph.nonstandard_pppoe=1

Sajnos, mivel ez egy rendszerszint bellts, ezrt a 3Com HomeConnect ADSL Modem s ms normlis PPPoE kliens vagy szerver egyszerre nem hasznlhat.

27.6. PPP ATM felett (PPPoA)


Most a PPP ATM feletti (PPP over ATM, PPPoA) belltst fogjuk bemutatni. A PPPoA az eurpai DSL szolgltatk krben igen nagy npszersgnek rvend.

27.6.1. PPPoA hasznlata az Alcatel SpeedTouch USB-vel


Az ilyen eszkzkhz tartoz PPPoA tmogats a FreeBSD-ben portknt ll rendelkezsre, mivel az ehhez szksges rmware csak az Alcatel licencelsi felttelei szerint (http://www.speedtouchdsl.com/disclaimer_lx.htm) terjeszthet, ezrt nem lehet rsze az alap FreeBSD rendszernek. A szoftver teleptshez ezrt a Portgyjtemnyt kell hasznlnunk. Teleptsk a net/pppoa portot s kvessk a mellkelt utastsokat. Sok ms USB-s eszkzhz hasonlan az Alcatel SpeedTouch USB-nek a gpnkrl kell letltenie a mkdshez szksges rmware-t. Ez a folyamat FreeBSD alatt automatizlhat, teht ez a msols minden esetben megtrtnik, amikor az eszkzt az USB portra csatlakoztatjuk. Ehhez az /etc/usbd.conf llomnyba a kvetkez adatokat kell beletennnk. Az llomnyt root felhasznlknt tudjuk csak szerkeszteni.
device "Alcatel SpeedTouch USB" devname "ugen[0-9]+" vendor 0x06b9 product 0x4061 attach "/usr/local/sbin/modem_run -f /usr/local/libdata/mgmt.o"

Az usbd, vagyis az USB dmon engedlyezshez az /etc/rc.conf llomnyba tegyk bele az albbit:

718

Fejezet 27. A PPP s a SLIP


usbd_enable="YES"

Emellett mg a ppp kapcsolatot is be tudjuk lltani az indts sorn. Ehhez mindssze a kvetkez sort kell megadnunk az /etc/rc.conf llomnyban. Ismt megemltjk, hogy ezt a mveletet csak a root felhasznlval tudjuk vgrehajtani.
ppp_enable="YES" ppp_mode="ddial" ppp_profile="adsl"

Ezutn gy tudjuk szra brni a kapcsolatot, ha a net/pppoa porthoz mellkelt ppp.conf llomnyt hasznljuk fel kiindulsknt.

27.6.2. Az mpd hasznlata


Az mpd segtsgvel tbbfle szolgltatshoz, kztk a PPTP-hez hozz tudunk frni. Az mpd a Portgyjtemnyben net/mpd nven tallhat meg. Sok ADSL modemnek szksge van egy PPTP tunnelre kzte s gp kztt. Ilyen modem pldul az Alcatel SpeedTouch Home is. Elszr magt a portot kell teleptennk, majd ezutn mr be tudjuk lltani az mpd-t a sajt s a szolgltatnk ignyei szerint. A port a rengeteg lerssal megtzdelt minta kongurcis llomnyait a PREFIX /etc/mpd/ knyvtrba teszi. Itt a PREFIX azt a knyvtrat jelli, ahova a portok kerlnek. Ez alapbl a /usr/local/. Az mpd belltsrl szl teljes dokumentci a telepts utn elrhet HTML formtumban a PREFIX /share/doc/mpd/ knyvtrban. me egy plda az mpd belltsra ADSL kapcsolatok esetben. Az ezzel kapcsolatos belltsaink kt llomnyra bomlanak, melyek kzl az els az mpd.conf:
default: load adsl adsl: new set set set set set set set

-i ng0 bundle bundle bundle link link link link

adsl adsl authname felhasznlnv password jelsz disable multilink

no pap acfcomp protocomp disable chap accept chap keep-alive 30 10

set ipcp no vjcomp set ipcp ranges 0.0.0.0/0 0.0.0.0/0 set set set set iface iface iface iface route default disable on-demand enable proxy-arp idle 0

open

719

Fejezet 27. A PPP s a SLIP A felhasznli azonost, amellyel a szolgltat fel hitelestjk magunkat. Az azonosthoz tartoz jelsz, amelyet szintn a szolgltatl kaptunk.

Az mpd.links llomny tartalmazza a felptend kapcsolatra vagy kapcsolatokra vonatkoz informcikat. Pldul az elbbiekhez tartoz mpd.links tartalma ez:
adsl: set set set set set

link pptp pptp pptp pptp

type pptp mode active enable originate outcall self 10.0.0.1 peer 10.0.0.138

A FreeBSD-s szmtgpnk cme, ahonnan az mpd indul. Az ADSL modemnk IP-cme. Az Alcatel SpeedTouch Home esetn ez a cm alaprtelmezs szerint a
10.0.0.138.

A kapcsolat ezek utn pillanatok alatt felpthet, ha a root felhasznlval kiadjuk a kvetkez parancsot:
# mpd -b adsl

A kapcsolat llapott a kvetkez paranccsal tudjuk ezutn ellenrizni:


% ifconfig ng0

ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> mtu 1500 inet 216.136.204.117 --> 204.152.186.171 netmask 0xffffffff

FreeBSD alatt az mpd hasznlata ajnlott az ADSL szolgltatsok elrshez.

27.6.3. A pptpclient hasznlata


FreeBSD alatt a net/pptpclient segtsgvel is tudunk PPPoA tpus szolgltatsokhoz kapcsoldni. A net/pptpclient felhasznlsval gy tudunk DSL szolgltatsokat elrni, ha felteleptjk a hozztartoz portot vagy csomagot, majd mdostjuk az /etc/ppp/ppp.conf llomnyt. Mind a kt mveletet csak root felhasznlknt tudjuk lebonyoltani. Ehhez egy ppp.conf llomnyt lentebb adtunk meg. A ppp.conf llomnyban tallhat tovbbi belltsi lehetsgekrl a ppp(8) man oldalon olvashatunk.
adsl: set log phase chat lcp ipcp ccp tun command set timeout 0 enable dns set authname felhasznlnv set authkey jelsz set ifaddr 0 0 add default HISADDR

A DSL szolgltatnktl kapott felhasznli nv. Az elzetshez tartoz jelsz.

720

Fejezet 27. A PPP s a SLIP


FigyelemMivel az elzetshez tartoz jelszt a ppp.conf llomnyba titkostatlan formban kell szerepeltetnnk, ezrt gondoskodjunk rla, hogy senki sem kpes olvasni a tartalmt. A most kvetkez parancsokkal belltjuk, hogy ez az llomny csak a root felhasznl szmra legyen olvashat. A rszletekrt lsd a chmod(1) s chown(8) man oldalakat.
# chown root:wheel /etc/ppp/ppp.conf # chmod 600 /etc/ppp/ppp.conf

Ezzel a paranccsal a DSL tvlasztnk fel nyitunk egy tunnelt a PPP kapcsolathoz. Az Ethernetes DSL modemek ltalban egy elre belltott helyi hlzati IP-cmmel rendelkeznek, amelyhez tudunk csatlakozni. Az Alcatel SpeedTouch Home esetben ez a cm a 10.0.0.138. Az tvlaszthoz adott dokumentciban keressk meg, hogy az eszkznkhz konkrtan milyen cm tartozik. A tunnel megnyitshoz s a PPP kapcsolat megindtshoz a kvetkez parancsot kell kiadnunk:
# pptp cm adsl

Tipp: Az imnti parancs vgre mg rdemes odatenni az et jelet (&) is, mivel gy a pptp mkdst a httrben folytatja.

A parancs hatsra a virtulis tunnelt megtestest tun eszkz jn ltre a pptp s ppp programok kztt. Miutn visszakaptuk a parancssort, vagy a pptp program megerstette a kapcsolds sikeressgt, a keletkezett jratot gy tudjuk ellenrizni:
% ifconfig tun0

tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500 inet 216.136.204.21 --> 204.152.186.171 netmask 0xffffff00 Opened by PID 918

Ha nem tudnnk valamirt csatlakozni, akkor elszr nzzk meg az tvlasztnk belltsait, ami ltalban a telnet vagy egy bngsz segtsgvel elrhet. Ha mg mindig nem vagyunk kpesek csatlakozni, akkor a pptp parancs kimenetben s ppp /var/log/ppp.log nven elrhet napljban kereshetnk rulkod nyomokat.

27.7. A SLIP hasznlata


Eredetileg ksztette: Satoshi Asami. A hozzvalkat biztostotta: Guy Helmer s Piero Serini.

27.7.1. A SLIP kliensek belltsa


A kvetkezkben azt mutatjuk be, hogy egy FreeBSD-s gpet miknt tudunk egy hlzaton statikus nvvel belltani a SLIP hasznlatval. A dinamikus hlzati nevek hasznlatakor (vagyis amikor a cmnk minden egyes trcszskor megvltozhat) egy valamivel bonyolultabb belltsra van szksgnk. Elszr is llaptsuk meg, hogy a modemnk melyik soros portra csatlakozik. Sokan /dev/modem nven egy szimbolikus linket hoznak ltre a valdi eszkzre, pldul a /dev/cuadN lerra. Ennek ksznheten az eszkz tnyleges nvetl el tudunk vonatkoztatni s soha nem kell mdostanunk semmit, ha a modemet pldul egy msik

721

Fejezet 27. A PPP s a SLIP portra kell traknunk. Ugyanis knnyedn kacifntoss tud vlni a helyzet, amikor egyszerre kell megvltoztatnunk egy rakat dolgot az /etc knyvtrban s mdostanunk az sszes .kermrc llomnyt!
Megjegyzs: A /dev/cuad0 a COM1 port, a /dev/cuad1 a COM2 s gy tovbb.

A rendszermag belltsait tartalmaz llomnyban a kvetkeznek mindenkppen szerepelnie kell:


device sl

Mivel ez ltalban a GENERIC rendszermagban megtallhat, gy ez nem okoz semmilyen gondot, kivve, hogy ha korbban mr kitrltk.

27.7.1.1. Amiket csak egyszer kell megtenni


1. Vegyk fel az otthoni gpnket, az tjrnkat s a nvszervereket az /etc/hosts llomnyba. Erre lljon itt egy konkrt plda:
127.0.0.1 136.152.64.181 136.152.64.1 128.32.136.9 128.32.136.12 localhost loghost water.CS.Example.EDU water.CS water inr-3.CS.Example.EDU inr-3 slip-gateway ns1.Example.EDU ns1 ns2.Example.EDU ns2

2. 3.

Figyeljnk oda, hogy az /etc/nsswitch.conf llomnyban szerepl hosts szakaszban a dns sz eltt a files sznak kell megjelennie. Ezek nlkl mks dolgok tudnak trtnni rendszernkben. Szerkesszk t az /etc/rc.conf llomnyt. 1. A hlzati nevnket a kvetkez sorban tudjuk megadni:
hostname="az.en.nevem"

Ide a gpnk teljes internetes hlzati nevt kell bernunk. 2. Az alaprtelmezett tjrt az albbi sor mdostsval tudjuk belltani gy, hogy a
defaultrouter="NO"

vltoz rtkt trjuk:


defaultrouter="slip-gateway"

4.

Ksztsk el az /etc/resolv.conf llomnyt, amelyben majd a kvetkezk legyenek:


domain CS.Example.EDU nameserver 128.32.136.9 nameserver 128.32.136.12

Lthat, hogy ezek a nvfeloldsrt felels szerverek cmei. Termszetesen a tnylegesen berand tartomny (domain) neve s a nvszerverek cmei mindig az adott krnyezetnktl fggenek. 5. 6. lltsuk be egy jelszt a root s toor felhasznlknak (s mindenki msnak, akinek mg nem lenne). Indtsuk jra a szmtgpnket s utna gyzdjnk meg rla, hogy a megfelel hlzati nvvel rendelkezik.

722

Fejezet 27. A PPP s a SLIP

27.7.1.2. A SLIP kapcsolatok felptse


1. Trcszzunk s gpeljk be a slip parancsot, majd ezt kveten a gpnk nevt s a jelszt. Ez leginkbb a konkrt krnyezettl fgg. Ha a Kermit nev programot hasznljuk, akkor egy ilyen szkripttel is prblkozhatunk:
# a kermit belltsa set modem hayes set line /dev/modem set speed 115200 set parity none set flow rts/cts set terminal bytesize 8 set file type binary # a kvetkez makr felels a trcszsrt s a bejelentkezsrt define slip dial 643-9600, input 10 =>, if failure stop, output slip\x0d, input 10 Azonosito:, if failure stop, output silvia\x0d, input 10 Jelszo:, if failure stop, output ***\x0d, echo \x0aCONNECTED\x0a

Termszetesen a felhasznli nevet s a jelszt a sajtunkra kell benne kicserlnnk. Miutn ezzel is megvagyunk, a Kermit paranccsorban a csatlakozshoz egyszeren csak rjuk be, hogy slip.
Megjegyzs: Nem javasoljuk, hogy az llomnyrendszeren a jelszavakat titkostatlan formban troljuk. Mindeki csak a sajt felelssgre tegyen ilyet.

2.

Hagyjuk el a Kermit programot (a Ctrl-z billentykombincival brmikor fel tudjuk fggeszteni a futst) s
root felhasznlknt rjuk be a kvetkezt:
# slattach -h -c -s 115200 /dev/modem

Ha ezutn mr kpesek vagyunk a ping paranccsal elrni az tvlaszt msik oldaln tallhat gpet, akkor az azt jelenti, hogy sikerlt csatlakoznunk! Ha viszont itt mg nem jrnnk sikerrel, akkor az slattach parancsnak ne a -c paramtert adjuk meg, hanem a -a paramtert.

27.7.1.3. Hogyan bontsunk egy kapcsolatot


Tegyk a kvetkezket:
# kill -INT cat /var/run/slattach.modem.pid

Ez lelltja az slattach programot. Ne felejtsk el azonban, hogy ezt csak a root felhasznlval tudjuk vgrehajtani. Ezutn trjnk vissza a kermit programhoz (ha felfggesztettk volna, akkor ehhez a fg parancsra lesz szksgnk), s lpjnk ki belle (q). Az slattach(8) man oldala ehhez a ifconfig sl0 down parancsot javasolja, amellyel lnyegben lelltjuk a hozztartoz felletet. Igazbl a kett kztt nincs semmilyen komolyabb eltrs (mivel az (ifconfig sl0 is ugyanezt eredmnyezi.) Nha elfordulhat, hogy a modem egyszeren nem hajland eldobni a vonalat. Ilyen esetekben indtsuk el a kermit programot s lpjnk ki megint. Msodjra ltalban mr sikerl.

723

Fejezet 27. A PPP s a SLIP

27.7.1.4. Hibaelhrts
Ha valamirt ez mgsem vlna be, akkor csak nyugodtan krdezskdjnk a freebsd-net (http://lists.FreeBSD.org/mailman/listinfo/freebsd-net) levelezsi listn. A tapasztalatok szerint az embereknek eddig a kvetkezkkel voltak problmik:

Az slattach meghvsakor sem a -c, sem pedig a -a paramtert nem adtk meg. (Ez ugyan nem vgzetes hiba, de egyes felhasznlk szerint ez segtett megoldani a gondokat.) Az sl0 helyett s10-et rtak be (egyes bettpusoknl knnyen ssze lehet tveszteni ezeket). Az ifconfig sl0 segtsgvel ellenrizhet a fellet llapota. Pldul ilyet lthatunk:
# ifconfig sl0

sl0: flags=10<POINTOPOINT> inet 136.152.64.181 --> 136.152.64.1 netmask ffffff00

Ha a ping(8) no route to host hibazenetet ad, akkor az tvlasztsi tblzattal van a gond. A netstat -r paranccsal gyorsan ki tudjuk listzni a rendszernkben jelenleg nyilvntartott utakat:
# netstat -r

Routing tables Destination (root node) (root node)

Gateway

Flags

Refs

Use

IfaceMTU

Rtt

Netmasks:

Route Tree for Protocol Family inet: (root node) => default inr-3.Example.EDU UG localhost.Exampl localhost.Example. UH inr-3.Example.ED water.CS.Example.E UH water.CS.Example localhost.Example. UGH (root node)

8 224515 5 42127 1 0 34 47641234

sl0 lo0 sl0 lo0

0.438 0.438

Az elz pldkat egy viszonylag forgalmas rendszerbl ragadtuk ki. A rendszernkn megjelen szmok a hlzati aktivits mrtknek fggvnyei.

27.7.2. A SLIP szerverek belltsa


Ebben a lersban igyeksznk bemutatni hogyan kell egy FreeBSD tpus rendszer alatt SLIP szervert belltani, ami ltalban annyit jelent, hogy a rendszernben a tvoli SLIP kliensek csatlakozsakor automatikusan elindtjuk a kapcsolatokat.

27.7.2.1. Elfelttelek
Ez a szakasz igen szakmai jelleg, ezrt az olvas rszrl feltteleznk a tmban nmi alapismeretet. Ez alatt alapveten a TPC/IP hlzati protokollt rtjk, klns hangsllyal a hlzatok s hlzati csompontok cmzsen, a hlzati maszkokon, alhlzatokon, tvlasztson, az olyan tvlasztsi protokollokon, mint pldul a RIP. A SLIP belltsa egy betrcszs szerveren mindezen fogalmak ismerett ignyli, s ha ezekkel mg nem lennnk tisztban, akkor olvassuk el pldul Craig Hunt TCP/IP Network Administration cm knyvt (OReilly & Associates, Inc.; ISBN: 0-937175-82-X) vagy Douglas Comer TCP/IP protokollrl szl knyveit.

724

Fejezet 27. A PPP s a SLIP Mindezek mellett mg felttelezzk, hogy mr belltottuk a modem(ek)et s a rajtuk keresztli bejelentkezshez szksges llomnyokat. Ha mg nem ksztettk volna fel erre a rendszernket, akkor a 26.4 Szakasz ad rszletes tjkoztatst a betrcszs szolgltatsok belltsrl. A soros vonali eszkzmeghajtval kapcsolatban tovbb rdemes tolvasni a sio(4) oldalt, valamint a ttys(5), gettytab(5), getty(8) s init(8) oldalakat a bejelentkezsek modemen keresztli fogadsrl, illetve taln az stty(1) oldalt a soros port paramtereinek megfelel belltsrl (mint pldul a clocal a kzvetlenl csatlakoz soros felletek esetben).

27.7.2.2. Gyors ttekints


A FreeBSD SLIP szerverknt ltalban a kvetkez mdon zemel: a SLIP felhasznl trcszza a FreeBSD-s SLIP szervernket, majd bejelentkezik egy speclis SLIP bejelentkezsi azonost hasznlatval, amely a /usr/sbin/sliplogin shellt hasznlja. A sliplogin program az /etc/sliphome/slip.hosts llomnyban megkeresi a specilis felhasznlhoz tartoz sort, s ha tall egy ilyet, akkor csatlakoztatja a soros vonalat egy rendelkezsre ll SLIP felletre, amelyen aztn a SLIP felltet belltshoz lefuttatja az /etc/sliphome/slip.login shell szkriptet. 27.7.2.2.1. Plda SLIP szerveren keresztli bejelentkezsre Pldul, ha a SLIP felhasznl azonostja Shelmerg, akkor az /etc/master.passwd llomnyban a hozztartoz bejegyzst nagyjbl ilyen:
Shelmerg:password:1964:89::0:0:Guy Helmer - SLIP:/usr/users/Shelmerg:/usr/sbin/sliplogin

Amikor Shelmerg bejelentkezik, a sliplogin az /etc/sliphome/slip.hosts llomnyban keresni fog egy felhasznl azonostjhoz illeszked sort. Pldul tegyk fel, hogy az /etc/sliphome/slip.hosts llomnyban szerepel egy ilyen sor:
Shelmerg dc-slip sl-helmer 0xfffffc00 autocomp

A sliplogin ezt a sor fogja megtallni, majd a soros vonalat a kvetkez elrhet SLIP fellethez kapcsolja, amelyen ezutn vgrehajtja az /etc/sliphome/slip.login szkriptet a kvetkez mdon:
/etc/sliphome/slip.login 0 19200 Shelmerg dc-slip sl-helmer 0xfffffc00 autocomp

Ha minden jl megy, akkor az /etc/sliphome/slip.login kiad egy ifconfig parancsot azon a SLIP felleten, amelyre a sliplogin magt csatlakoztatta (amely a fenti pldban a 0. SLIP fellet volt, s amelyet meg is adtunk slip.login els paramtereknt), s gy belltja a helyi IP-cmet (dc-slip), a tvoli IP-cmet (sl-helmer), a SLIP fellethez tartoz hlzati maszkot (0xfffffc00) valamint a tovbbi opcikat (autocomp). Ha valami rosszul slne el, akkor a sliplogin ezekrl ltalban nagyon j minsg, informcids zeneteket kszt, amelyeket a syslogd dmon pedig a /var/log/messages llomnyba rgzt. (A syslogd(8) s syslog.conf(5) man oldalak s taln maga az /etc/syslog.conf segthet kiderteni, hogy a syslogd jelenleg naplz-e, s ha igen, akkor hova.)

27.7.2.3. A rendszermag belltsa


A FreeBSD alap (vagyis a GENERIC) rendszermagja tmogatja a SLIP (sl(4)) hasznlatt. Ha viszont sajt rendszermagunk van, akkor elfordulhat, hogy belltsok kz fel kell vennnk a kvetkez sort is:
device sl

725

Fejezet 27. A PPP s a SLIP Alaprtelmezs szerint a FreeBSD nem tovbbt semmilyen csomagot. Amennyiben a FreeBSD SLIP szervernket tvlasztknt is mkdtetni akarjuk, gy az /etc/rc.conf llomnyban a gateway_enable vltozt t kell lltanunk a YES rtkre. Ennek hatsra az jraindts utn is megmarad a csomagok tovbbtsa. A vltoztatsok azonnali letbelptetshez adjuk ki root felhasznlknt a kvetkez parancsot:
# /etc/rc.d/routing start

Ha a FreeBSD rendszermag belltsa sorn segtsgre szorulnnk, akkor olvassuk el 8 fejezetet.

27.7.2.4. A sliplogin belltsa


Ahogy arra mr korbban is utaltunk, az /etc/sliphome knyvtrban hrom llomny felels a /usr/sbin/sliplogin belltsrt (lsd sliplogin(8)): a slip.hosts, amelyekben a SLIP felhasznlkat s a hozzjuk tartoz IP-cmeket adjuk meg; a slip.login, amely ltalban csak a SLIP felletet lltja be; (az elhagyhat) slip.logout, amely a soros vonal bontsakor a slip.login hatst igyekszik visszafordtani. 27.7.2.4.1. A slip.hosts belltsa Az /etc/sliphome/slip.hosts soraiban whitespace karakterekkel tagoltan legalbb ngy elem szerepel:

a SLIP felhasznl bejelentkezsi azonostja a SLIP kapcsolat helyi cme (a SLIP szerverhez kpest) a SLIP kapcsolat tvoli cme hlzati maszk

A helyi s tvoli cmek lehetnek hlzati nevek is (amelyeket vagy az /etc/hosts, vagy pedig az /etc/nsswitch.conf llomnyban szerepl belltsok alapjn tudunk feloldani IP-cmre), illetve a hlzati maszk is lehet egy olyan nv, amelyet az /etc/networks fel tud oldani. A pldaknt bemutatott rendszernkben az /etc/sliphome/slip.hosts llomny nagyjbl gy pl fel:
# # login helyi-cm # # Shelmerg dc-slip

tvoli-cm

maszk

opc1 opc2 (normal,compress,noicmp) autocomp

sl-helmerg

0xfffffc00

A sorok vgn az albbi opcik kzl egy vagy tbb szerepelhet:


normal

a fejlceket nem tmrtjk a fejlcek tmrtse ha a tvoli vgpont engedi, akkor tmrtsk a fejlceket

compress autocomp noicmp

az ICMP csomagok tiltsa (gy pldul a ping ltal generlt csomagok is eldobdnak a svszlessg felemsztese helyett)

A SLIP kapcsolathoz tartoz helyi s tvoli cmek megvlasztsa fgg attl, hogy egy kln TCP/IP alhlzatot szentelnk-e neki, vagy a SLIP szervernkn egy ARP proxy-t hasznlunk (amely tulajdonkppen nem egy valdi ARP proxy, de ebben a szakaszban gy fogunk r hivatkozni). Ha nem vagyunk biztosak benne, hogy

726

Fejezet 27. A PPP s a SLIP melyik mdszert vlasszuk vagy hogy miknt osszuk ki az IP-cmeket, akkor nzznk utna ezekenek a SLIP hasznlatval kapcsolatos elfelttelek kztt megemltett knyvekben (27.7.2.1 Szakasz) s/vagy konzultljunk a hlzatunk karbantartjval. Ha a SLIP klienseknek kln alhlzatokat osztunk ki, akkor a sajt IP-cmnkbl kell ltrehoznunk s kiadnunk ezeket. Ezutn valsznleg a SLIP szervernkn keresztl mg meg kell adnunk egy statikus tvonalat legkzelebbi IP tvlaszt fel. Minden ms esetben az ARP proxy mdszert kell alkalmaznunk, ahol a SLIP kliensek IP-cmeit a SLIP szerver Ethernet alhlzatbl osztjuk ki, s ennek megfelelen az /etc/sliphome/slip.login s /etc/sliphome/slip.logout szkripteket mdostanunk kell gy, hogy az arp(8) segtsgvel kpesek legyenek a SLIP szerver ARP tblzatban kezelni a proxy ARP bejegyzseket.

27.7.2.4.2. A slip.login belltsa Egy tlagos /etc/sliphome/slip.login llomny krlbell ilyen:


#!/bin/sh # # @(#)slip.login

5.1 (Berkeley) 7/1/90

# # Egy ltalnos slip vonali bejelentkezsi llomny. A sliplogin ezt az albbi # paramterekkel hvja meg: # 1 2 3 4 5 6 7-n # slipegys. ttyseb. azonost helyi-cm tvoli-cm maszk egyb-pmek. # /sbin/ifconfig sl$1 inet $4 $5 netmask $6

Ez a slip.login llomny az ifconfig segtsgvel pusztn belltja a megfelel SLIP fellethez tartoz helyi, valamint tvoli cmet s a hlzati maszkot. Ha ehelyett azonban az ARP proxy mdszert vlasztottuk volna (teht a SLIP kliensekenek nem akarunk egsz alhlzatokat kiutalni), akkor az /etc/sliphome/slip.login llomny ekppen alakul:
#!/bin/sh # # @(#)slip.login

5.1 (Berkeley) 7/1/90

# # Egy ltalnos slip vonali bejelentkezsi llomny. A sliplogin ezt az albbi # paramterekkel hvja meg: # 1 2 3 4 5 6 7-n # slipegys. ttyseb. azonost helyi-cm tvoli-cm maszk egyb-pmek. # /sbin/ifconfig sl$1 inet $4 $5 netmask $6 # A SLIP kliensre vonatkoz ARP krseket a mi Ethernet cmnkkel # vlaszoljuk meg: /usr/sbin/arp -s $5 00:11:22:33:44:55 pub

Lthatjuk, hogy az elbbi slip.login llomny egy arp -s $5 00:11:22:33:44:55 pub paranccsal egszlt ki, ami a SLIP szerver ARP tblzatban hoz ltre egy ARP bejegyzst. Ez az ARP bejegyzs gondoskodik rla,

727

Fejezet 27. A PPP s a SLIP hogy a SLIP szerver vlaszoljon a sajt Ethernetes MAC-cmvel, amikor egy msik IP csompont a SLIP kliens IP-cme fell rdekldik. Amikor a fenti pldbl indulunk ki, a benne megadott MAC-cmet (00:11:22:33:44:55) felttlenl cserljk a rendszernk Ethernet krtyjnak MAC-cmvel, mert klnben az ARP proxy egyltaln nem fog mkdni! A SLIP szervernk MAC-cmt a netstat -i paranccsal derthetjk ki, amelynek a kimenetben a msodik sor valahogy gy nz ki:
ed0 1500 <Link>0.2.c1.28.5f.4a 191923 0 129457 0 116

Ebbl derl ki, hogy az adott rendszer valdi MAC-cme a 00:02:c1:28:5f:4a az arp(8) szmra azonban a netstat -i kimenetben szerepl pontokat kettspontokra kell cserlni, s a tagokat ki kell egszteni ktkarakteres hexadecimlis szmokk. Az arp(8) man oldaln tudhatunk meg ennek rszleteirl tbbet.
Megjegyzs: Amikor ltrehozzuk az /etc/sliphome/slip.login s /etc/sliphome/slip.logout llomnyokat, akkor ne felejtsk el hozzjuk belltani a vgrehajtst engedlyez bitet sem (teht ilyenkor mindig adjuk ki a chmod 755 /etc/sliphome/slip.login /etc/sliphome/slip.logout parancsokat is), klnben a sliplogin ezeket nem tudja majd elindtani.

27.7.2.4.3. A slip.logout belltsa Az /etc/sliphome/slip.logout llomnyra nincs felttlenl szksgnk (hacsak nem egy ARP proxy-t akarunk csinlni), de ha valamirt mgis el akarjuk kszteni, akkor ehhez a kvetkez alapvet slip.logout szkript hasznlhat:
#!/bin/sh # # slip.logout # # Egy logout llomny a slip vonalhoz. A sliplogin ezt a szkriptet a # kvetkez paramterekkel hvja: # 1 2 3 4 5 6 7-n # slipegys. ttyseb. login helyi-cm tvoli-cm maszk opc-pmek. # /sbin/ifconfig sl$1 down

Ha az ARP proxy mdszert hasznljuk, s az /etc/sliphome/slip.logout felhasznlsval akarjuk a SLIP klienshez tartoz ARP bejegyzst trlni, akkor ebbl induljunk ki:
#!/bin/sh # # @(#)slip.logout # # Egy logout llomny a slip vonalhoz. A sliplogin ezt a szkriptet a # kvetkez paramterekkel hvja: # 1 2 3 4 5 6 7-n # slipegys. ttyseb. login helyi-cm tvoli-cm maszk opc-pmek. #

728

Fejezet 27. A PPP s a SLIP


sbin/ifconfig sl$1 down # Ne vlaszoljunk tbbet a SLIP kliensre vonatkoz ARP krsekre /usr/sbin/arp -d $5

Az arp -d $5 parancs eltvoltja az ARP proxy mkdshez bejegyzst, amelyet mg a slip.login szkripttel vettnk fel a SLIP kliens bejelentkezsekor. Taln felesleges ismtelgetsnek tnhet: az /etc/sliphome/slip.logout llomnynak ltrehozsa utn lltsuk be a vgrehajtsra szl bitet (vagyis adjuk ki a chmod 755 /etc/sliphome/slip.logout parancsot).

27.7.2.5. Az tvlasztssal kapcsolatos megfontolsok


Ha a hlzatunk tbbi rsze (lnyegben az internet) s a SLIP klienseink kztt nem az ARP proxy mdszerrel kzvettjk a csomagokat, akkor a legkzelebbi alaprtelmezett tjrkhoz minden bizonnyal fel kell vennnk statikus tvonalakat, gy a SLIP kliensek alhlzatai a SLIP szervernkn keresztl ki tudnak jutni. 27.7.2.5.1. Statikus tvonalak A legkzelebbi alaprtelmezett tjrk fel nem minden esetben knny felvenni statikus tvonalakat (vagy egyes esetekben pedig egyenesen lehetetlen, mivel nincsenek meg hozz a jogaink). Ha az intzmnynkn bell tbb tjr is megtallhat, akkor bizonyos tvlasztk, pldul a Cisco s Proteon gyrtmnyak esetben nem csak a SLIP alhlzatok fel kell belltanunk statikus tvonalakat, hanem azt is meg kell mondanunk, hogy ezekrl milyen ms tvlasztk is tudjanak. Pontosan emiatt a statikus tvlaszts bezemelshez szksgnk lesz egy kis utnajrsra s prblgatsra.

729

Fejezet 28. Elektronikus levelezs


Eredetileg ksztette: Bill Lloyd. tdolgozta: Jim Mock.

28.1. ttekints
Az elektronikus levelezs, ms nven e-mail, a kommunikci egyik legjobban elterjedt formja. Ebben a fejezetben bemutatjuk, hogyan futtassunk FreeBSD-n levelez szervert, illetve hogyan kldjnk s fogadjunk e-maileket a FreeBSD hasznlatval. Ez azonban semmikppen sem tekinthet egy teljes referencinak s tulajdonkppen szmos fontos tnyezrl szt sem ejtnk. A tmra gy kaphatunk egy sokkal tfogbb rltst, ha a B Fggelkben felsorolt remek knyveket is elolvassuk. A fejezet elolvassa sorn megismerjk:

milyen szoftverkomponensek jtszanak szerepet az elektronikus levelek kldsben s fogadsban; FreeBSD-ben hol tallhatak a sendmail kongurcis llomnyai; mi a klnbsg a helyi s tvoli postaldk kztt; hogyan akadlyozzuk meg, hogy a levelez szervernk a kretlen levlszemetet tovbbtson; rendszernkn hogyan teleptsnk s lltsunk be ms levelez szervereket a sendmail helyett; hogyan oldjuk meg a levelez szerverekkel kapcsolatban felmerl ltalnos problmkat; hogyan hasznljuk az SMTP protokollt az UUCP protokollal; hogyan kell rendszerket csak levlkldsre belltani; hogyan levelezznk betrcszs kapcsolattal; hogyan nveljk rendszernk vdelmt az SMTP hitelestsnek engedlyezsvel; hogyan teleptsnk s hasznljunk a levelek kldsre s fogadsra pldul a mutthoz hasonl levelez klienseket; hogyan tltsk le leveleinket egy tvoli POP vagy IMAP szerverrl; hogyan alkalmazzunk automatikusan adott szablyokat vagy szrket az rkez levelekre.

A fejezet elolvassa eltt ajnlott:


az internet-csatlakozsunk megfelel belltsa (31 fejezet); a nvfelolds belltsa (29 fejezet); a kls fejleszts alkalmazsok teleptsnek ismerete (4 fejezet).

28.2. Az elektronikus levelezs hasznlata


t fontosabb rszre bonthatjuk a levelezst. Ezek: a felhasznli program (mail user agent), a levlkld dmon (mail transfer agent), a nvfelolds, a helyi vagy tvoli postalda s termszetesen maga a levelez szerver (mail host).

730

Fejezet 28. Elektronikus levelezs

28.2.1. A felhasznli program


Ide soroljuk a klnbz parancssoros programokat, mint pldul a mutt, pine, elm s mail, valamint a klnfle grakus alkalmazsokat, mint pldul a balsa s az xfmail, csak hogy felsoroljuk nhny jabb, egy webbngszhz hasonlan kinomult eszkzt is. Ezek a programok egyszeren tkldik az elektronikus levelekkel kapcsolatos tranzakcikat a helyi levelez szervernek vagy meghvjk valamelyik levlkld dmont, esetleg kzvetlenl a TCP protokollon keresztl kzbestenek.

28.2.2. A levlkld dmon


A FreeBSD alapbl a sendmail nev programot ajnlja fel erre a clra, de tmogat ms levelez szervereket is, ezek kzl meg is emltnk nhnyat zeltknt:

exim postx qmail

Ez a dmon ltalban kt feladatot lt el a berkez levelek fogadsrt s a kimen levelek elkldsrt felels. Nem tartozik azonban a feladatai kz, hogy a POP vagy IMAP protokollokhoz hasonlan olvashatv tegye a leveleinket, illetve csatlakozni engedjen a helyi mbox vagy Maildir formtum postaldinkhoz. Ezekhez a mveletekhez egy kln dmon szksgeltetik.
FigyelemA sendmail rgebbi vltozatai tartalmaznak olyan komoly biztonsgi hibkat, amelyek kihasznlsval az illetktelen behatolk helyi s/vagy tvoli hozzfrst tudnak szerezni a gpnkn. Az ilyen jelleg problmk elkerlse rdekben igyekezznk mindig a legfrissebb verzijt hasznlni. Vagy a FreeBSD Portgyjtemnybl teleptsnk fel egy msik levlkld dmont.

28.2.3. Az elektronikus levelek s a nvfelolds


A nvfelolds (Domain Name System, DNS) s a hozztartoz named dmon nagy szerepet jtszik az elektronikus levelek tovbbtsban. A dmon a leveleket gy kldi t az egyik gprl a msikra, hogy a nvfeloldson keresztl megkeresi azt a tvoli gpet, amelynek a leveleket cmeztk. Ez a folyamat szintn vgbemegy, amikor egy tvoli gprl levelet kldenek a mi szervernkre. A DNS valstja meg a hlzati nevek s az IP-cmek sszerendelst valamint ez trolja el a levlkldsre vonatkoz informcikat is, amelyeket MX rekordoknak hvnak. Az MX (Mail eXchanger, levlvlt) rekord adja meg azt a gpet vagy azokat a gpeket, amelyek az adott nvtartomnyban fogadjk a leveleket. Ha a hlzati nevnkhz vagy tartomnyunkhoz nem tartozik MX rekord, akkor a levl kzvetlenl a gpnkre vndorol feltve, hogy rendelkezik olyan A rekorddal, amely sszerendeli a gpnk nevt az IP-cmvel. A host(1) parancs hasznlatval az albbi pldhoz hasonlan tetszleges tartomny MX rekordjt meg tudjuk nzni:
% host -t mx FreeBSD.org FreeBSD.org mail is handled (pri=10) by

mx1.FreeBSD.org

731

Fejezet 28. Elektronikus levelezs

28.2.4. Az elektronikus levelek fogadsa


A tartomnyunkhoz tartoz leveleket fogadst a levelez szerver vgzi. sszegyjti a tartomnyunkba kldtt sszes levelet s ezeket a belltsainktl fggen vagy mbox (a levelek trolsnak alaprtelmezett mdja) vagy pedig Maildir formtumban eltrolja. Ahogy eltrolt egy levelet, gy helyben egybl el is tudjuk olvasni pldul a mail(1) vagy a mutt hasznlatval, illetve tvolrl a POP vagy IMAP s a hasonl protokollokkal tudjuk elrni s begyjteni. Ezrt teht ha csak a helyi gpen kvnjuk olvasni a leveleinket, akkor ahhoz egyltaln nem kell POP vagy IMAP szervert teleptennk.

28.2.4.1. Tvoli postaldk elrse a POP s IMAP hasznlatval


A tvoli postaldk elrshez tudnunk kell csatlakozni egy POP vagy IMAP szerverhez. Ezeken a protokollokon keresztl tudjk a felhasznlk minden klnsebb nehzsg nlkl elrni tvolrl a helyi postaldikat. Noha a POP s az IMAP segtsgvel egyarnt el tudjuk gy rni a postaldkat, az IMAP hasznlatnak mgis tbb elnye van, me nhny kzlk:

Az IMAP a levelek leszedse mellett trolni is kpes a tvoli szerveren. Az IMAP tmogat prhuzamos lekrseket. Az IMAP hihetetlenl hasznos tud lenni lassabb sszekttetsek esetben, mivel lehetv teszi a felhasznlk szmra, hogy csak az zenetek vzt tltsk le s ne az egszet. Tovbb a szerver s a kliens kzti adatmozgs cskkentse rdekben kpes bizonyos feladatokat a szerveren elvgezni, pldul keresni.

Egy POP vagy IMAP szerver teleptshez az albbi lpsek megttele szksges: 1. Vlasszuk ki az ignyeinket legjobban kielgt IMAP vagy POP szervert. A kvetkez POP s IMAP szerverek elgg elterjedtek s egyben remek pldk:

qpopper teapop imap-uw courier-imap

2. 3.

A Portgyjtemnybl teleptsk fel a kivlasztott POP vagy IMAP dmont. Ha szksges, akkor a POP vagy IMAP szerver betltshez rjuk t az /etc/inetd.conf llomnyt.
FigyelemMeg kell emltennk, hogy mind a POP s az IMAP az sszes informcit, teht belrtve a felhasznlk neveit s jelszavait titkostatlan formban tovbbtja. Ez azt jelenti, hogy ha ezeket a protokollokat biztonsgos mdon szeretnnk elrni, akkor az ssh(1) hasznlatval hozzunk ltre hozz egy tunnelt s azon keresztl hasznljuk. Errl rszletesebben a 14.11.8 Szakaszban olvashatunk.

28.2.4.2. A helyi postaldk elrse


A helyi postaldkat a szerveren lev levelez kliensek kzvetlen hasznlatval rhetjk el. Ilyen alkalmazsok pldul a mutt vagy a mail(1).

732

Fejezet 28. Elektronikus levelezs

28.2.5. A levelez szerver


A levelez szerver az a szerver, amely a gpnk vagy akr az egsz hlzatunk irnyba rkez levelek fogadsrt s elkldsrt felels.

28.3. A sendmail belltsa


rta: Christopher Shumway. A sendmail(8) a FreeBSD alaprtelmezett levltovbbt gynke (Mail Transfer Agent, MTA). A sendmail feladata fogadni a levelez kliensektl (Mail User Agent, MUA) rkez leveleket s kzbesteni azokat a kongurcis llomnyban megadott megfelel leveleznek. A sendmail hlzati kapcsolatokat is fogad, kpes a helyi postaldkba vagy akr ms programoknak is leveleket tovbbtani. A sendmail a kvetkez llomnyban trolja belltsait: llomny
/etc/mail/access /etc/mail/aliases /etc/mail/local-host-names /etc/mail/mailer.conf /etc/mail/mailertable /etc/mail/sendmail.cf /etc/mail/virtusertable

Szerep A sendmail ltal engedlyezett hozzfrseket trol adatbzis A postaldk lnevei Azon nevek felsorolsa, amelyek szmra a sendmail leveleket fogad A levelez programok belltsai A levelez programok kzbestsi tblzata A sendmail kzponti belltsait trol llomny Virtulis felhasznlk s tartomnyok tblzatai

28.3.1. /etc/mail/access
Az engedlyezett hozzfrseket trol adatbzis tartalmazza milyen hlzati neveken vagy IP-cmeken lehet elrni a helyi levelez szervert s azok milyen tpus hozzfrst kapnak. A gpek az OK (rendben), REJECT (visszautast), RELAY (tovbbts) belltsokat alkalmazhatjuk, vagy egyszeren meghvhatjuk hozzjuk a sendmail hibakezel rutinjt egy adott kzbestsi hibval. Ha egy gpet az OK belltssal veszk fel a listra, ami egybknt alaprtelmezs, akkor ez a gp levelet tud kldeni egszen addig, amg a vgs cl a helyi gp marad. A REJECT belltssal felsorolt gpek szmra semmifle levelezs nem engedlyezett. Ha pedig egy gp mellett a RELAY bellts jelenik meg, akkor a szerveren keresztl tetszleges cmre kldhet. Plda 28-1. A sendmail elrst szablyoz adatbzis belltsa
cyberspammer.com FREE.STEALTH.MAILER@ another.source.of.spam okay.cyberspammer.com 128.32 550 Nem szeretjuk a spammereket 550 Nem szeretjuk a spammereket REJECT OK RELAY

733

Fejezet 28. Elektronikus levelezs Ebben a pldban t bejegyzst lthatunk. A tblzat bal felnek valamelyik sorra illeszked kldkre a tblzatban a sor jobb feln megjelen cselekvs rvnyesl. Az els kt sorban a sendmail hibakezel rutinjnak adunk t hibakdokat. A hozztartoz zenet akkor fog megjelenni a tvoli gpen, amikor a tle rkez levl illeszkedik a bal oldali szablyra. Az ezeket kvet bejegyzsben visszalknk minden olyan levelet, amely az internetrl egy adott szmtgptl rkezik, pldul az another.source.of.spam cmrl. A kvetkez bejegyzsben az okay.cyberspammer.com cmrl elfogadjuk a kapcsoldst, ami viszont sokkal pontosabb megjells a fentebb szerepl cyberspammer.com sornl. A pontosabban kifejtett nevek fellbrljk a kevsb pontosan megnevezetteket. Vgl az utols bejegyzsben engedlyezzk a levelek tovbbkldst minden olyan gp szmra, amelynek cme a 128.32 eltaggal kezddik. Ezek teht kpesek ezen a levelez szerveren keresztl brhova leveleket kldeni. Az llomny mdostsa utn az adatbzis frisstshez mindig le kell futtatnunk egy make parancsot az /etc/mail/ knyvtrban.

28.3.2. /etc/mail/aliases
Az lneveket tartalmaz adatbzis virtulis postaldkat sorol fel, amelyek ms felhasznlkra, llomnyokra, programokra vagy tovbbi lnevekre vonatkozhatnak. me nhny plda az /etc/mail/aliases llomnyban szerepl bejegyzsekre: Plda 28-2. Virtulis postaldk
root: localuser ftp-bugs: joe,eric,paul bit.bucket: /dev/null procmail: "|/usr/local/bin/procmail"

A formai szablyok egyszerek: a kettspont bal oldalra kell rni azt a postaldt, amely a jobb oldaln lev clokra bomlik. A plda els sorban egyszeren megfeleltetjk a root postaldjt a localuser postaldjnak, majd ezt a nevet keressk az lnevek adatbzisban. Ha nem tallunk mr r illeszkedst, akkor az zenetet a localuser nev helyi felhasznlnak tovbbtjuk. A kvetkez sorban cmek listjt lthatjuk. Ennek megfelelen a ftp-bugs postalda cmre kldtt levelek hrom tovbbi helyi postaldra mennek tovbb: ezek nv szerint a joe, eric s paul felhasznlk postaldi. Itt a tvoli postaldk <felhasznl@plda.hu> alakban adhatak meg. A kvetkez sor az llomnyok hasznlatt pldzza, ahol konkrtan a /dev/null llomnyba irnytjuk t az adott cmre rkez leveleket. Az utols sorban pedig a programok hasznlatra lthatunk pldt, ahol ebben az esetben a levl egy UNIX-os csvn keresztl a /usr/local/bin/procmail szabvnyos bemenetre kerl. Ha megvltoztatjuk ezt az llomnyt, akkor utna az adatbzis frisstshez ne felejtsk el meghvni a make parancsot az /etc/mail/ knyvtrban.

28.3.3. /etc/mail/local-host-names
Ebben az llomnyban adhatjuk meg, hogy a sendmail(8) milyen hlzati neveket fogadjon el helyi hlzati nvknt. Ide kell raknunk azokat a tartomnyokat vagy cmeket, amelyektl a sendmail leveleket fogad el. Pldul, ha a levelez szerver az minta.com tartomnybl s a level.minta.com cmrl fogad el leveleket, akkor a local-host-names valahogy gy fog kinzni:
minta.com

734

Fejezet 28. Elektronikus levelezs


level.minta.com

Az llomny mdostsakor a sendmail(8) programot jra kell indtani a vltozsok rvnyestshez.

28.3.4. /etc/mail/sendmail.cf
Ahogy a sendmail kzponti kongurcis llomnya, a sendmail.cf irnytja a sendmail tfog viselkedst, belertve mindent az e-mail cmek trstl kezdve a tvoli szervereknek kldtt elutast zenetek kldsig. Mivel ennyire sokfajta szerepet tlt be egyszerre, ezrt ez a kongurcis llomny meglehetsen sszetett s a rszletezse meghaladn ennek a lersnak a hatrait. Szerencsre az tlagos levelez szerverek esetben ezt az llomnyt nagyon ritkn kell mdostani. A sendmail kzponti kongurcis llomnya a sendmail lehetsgeit s viselkedst meghatroz m4(1) makrkbl pthet fel. A pontosabb rszleteket a /usr/src/contrib/sendmail/cf/README llomnyban talljuk meg. Az llomny megvltoztatsa utn a mdostsok rvnyestshez jra kell indtani a sendmail programot.

28.3.5. /etc/mail/virtusertable
A virtusertable llomny kpezi le a virtulis tartomnyokhoz tartoz cmeket valdi postaldk cmeire. Ezek a postaldk lehetnek helyiek, tvoliak, az /etc/mail/aliases llomnyban megadott lnevek vagy llomnyok. Plda 28-3. Plda a virtulis tartomnyok lekpezsre
root@minta.com postmaster@minta.com @minta.com root postmaster@noc.minta.net joe

A fenti pldban megadtunk egy lekpezst a minta.com tartomnyhoz. Ez az llomny gy dolgozdik fel, hogy fentrl lefel illesztdnek a cmek, egszen az els egyezsig. Az els bejegyzs szerint a <root@minta.com> a helyi root felhasznl postaldjra kpzdik le. A kvetkez bejegyzs szerint a <postmaster@minta.com> a noc.minta.net cmen tallhat postmaster nev felhasznl postaldjra kpzdik le. Vgezetl, ha a minta.com cmrl eddig mg semmi sem illeszkedett volna, akkor az utols lekpezs veszi t, amely az minta.com tartomnyon bell az sszes tbbi cmre kldtt levelet a helyi joe nev felhasznl postaldjra kpezi le.

28.4. A levltovbbt gynk megvltoztatsa


rta: Andrew Boothman. Levelei segtsgl szolgltak: Gregory Neil Shapiro. Ahogy arrl mr korbban sz esett, a FreeBSD alapbl tartalmazza a sendmail programot mint levltovbbt gynkt (MTA, Mail Transfer Agent). Ennlfogva alaprtelmezs szerint ez a felels a kimen s berkez levelek kezelsrt.

735

Fejezet 28. Elektronikus levelezs Szmtalan okbl ereden egyes rendszergazdk azonban mgis szeretnk lecserlni a rendszerkhz tartoz levltovbbtt. Ennek oka lehet egyszeren csak annyi, hogy ki akarunk prblni egy msik programot vagy ppen egy olyan eszkzre van szksgnk, amely kizrlag csak mshol tallhat meg. Szerencsre a FreeBSD megknnyti ezt a vltst.

28.4.1. Az j levltovbbt teleptse


A levltovbbtk szles kre elrhet. A FreeBSD Portgyjtemnybl elindulva sok ilyen programot tallhatunk. Termszetesen teljesen mindegy, hogy melyik levltovbbtt vlasztjuk egszen addig, amg kpesek vagyunk FreeBSD alatt rendesen futtatni. Kezdjk teht az j levltovbbt teleptsvel. Miutn sikerlt telepteni, lehetsgnk van eldnteni, hogy valban eleget tesz-e az ignyeinknek, st az j szoftvert mg az eltt be tudjuk lltani, hogy tvenn a sendmail helyt. Vigyzzunk azonban, hogy az j szoftver teleptsekor ne rjon fell olyan rendszerszint binrisokat, mint pldul a /usr/bin/sendmail. Msrszt az j levelez szoftvert szolglatba helyezse eltt mindenkppen fontos megfelelen belltanunk. A kivlasztott levltovbbt belltsval kapcsolatban olvassuk el a hozztartoz dokumentcit.

28.4.2. A sendmail letiltsa


FigyelemAmikor letiltjuk a sendmail kimen levl szolgltatst, soha ne felejtsk el ptolni valamilyen ms levelez rendszerrel. Ha nem gy cseleksznk, akkor pldul a periodic(8) s a hozz hasonl programok nem lesznek kpesek a tlk megszokott mdon e-mailben elkldeni a futsuk eredmnyt. A rendszer bizonyos rszei radsul egy mkd, sendmail-kompatibilis rendszert feltteleznek. Ha letiltsa utn az alkalmazsok tovbbra is a sendmail segtsgvel prblnak levelet kldeni, akkor ez a levl a sendmail inaktv sorba kerlhet, ahonnan soha nem kerl kzbestsre.

A sendmail teljes lelltshoz, belertve a kimen levelekhez tartoz szolgltatst is, a kvetkezket kell megadni az /etc/rc.conf llomnyban:
sendmail_enable="NO" sendmail_submit_enable="NO" sendmail_outbound_enable="NO" sendmail_msp_queue_enable="NO"

Ha csak a sendmail berkez levelekre vonatkoz szolgltatst akarjuk tiltani, akkor ahhoz az /etc/rc.conf llomnyban a kvetkezt lltsuk be:
sendmail_enable="NO"

A sendmail indtsval kapcsolatos tovbbi belltsokat az rc.sendmail(8) man oldalon talljuk.

28.4.3. Az j levltovbbt elindtsa a rendszerrel egytt


Az j levltovbbtt gy tudjuk elindtani a rendszerrel egytt, ha az /etc/rc.conf llomnyba felvesszk a kvetkez sort, pldul a postx esetben:

736

Fejezet 28. Elektronikus levelezs


# echo postfix _enable="YES" >> /etc/rc.conf

Az j levltovbbt gy most mr magtl el fog indulni a rendszer indtsakor.

28.4.4. A sendmail mint a rendszer alaprtelmezett levelez eszkznek lecserlse


A sendmail annyira elterjedt szabvnyos szoftver a UNIX rendszereken, hogy egyes szoftverek egyszeren felttelezik a jelenltt. Emiatt sok levltovbbthoz tartozik egy sendmail kompatibilis parancssoros fellet is, amellyel igyekeznek megknnyteni a sendmail gyors lecserlst. Ennek kvetkeztben teht, ha egy msik levelez eszkzt hasznlunk, akkor valamilyen mdon meg kell bizonyosodnunk rla, hogy a szabvnyos sendmail binrisok, mint pldul a /usr/bin/sendmail, valban a kivlasztott levltovbbtot fogjk aktivlni. Szerencsre a FreeBSD pontosan emiatt tartalmaz egy mailwrapper(8) nev rendszert. Amikor a sendmail teleptse szerint mkdik, valami hasonlt fogunk tallni az /etc/mail/mailer.conf llomnyban:
sendmail /usr/libexec/sendmail/sendmail send-mail /usr/libexec/sendmail/sendmail mailq /usr/libexec/sendmail/sendmail newaliases /usr/libexec/sendmail/sendmail hoststat /usr/libexec/sendmail/sendmail purgestat /usr/libexec/sendmail/sendmail

Ez azt jelenti, hogy amikor az itt felsorolt ltalnos parancsok kzl lefuttatjuk valamelyiket (pldul magt a sendmail parancsot), akkor a rendszer magtl meghvja a sendmail nven szerepl wrapper programot, amely pedig a mailer.conf alapjn kiderti, hogy az adott esetben a /usr/libexec/sendmail/sendmail hvsra van szksg. Ez a rendszer megknnyti az alaprtelmezett sendmail funkcik helyben lefuttatand binrisok tlltst. gy teht, ha a /usr/local/supermailer/bin/sendmail-compat llomnyt akarjuk futtatni a megszokott sendmail helyben, akkor az /etc/mail/mailer.conf llomnyt a kvetkezkppen kell mdostanunk:
sendmail /usr/local/kedvenclevelez/bin/sendmail-compat send-mail /usr/local/kedvenclevelez/bin/sendmail-compat mailq /usr/local/kedvenclevelez/bin/mailq-compat newaliases /usr/local/kedvenclevelez/bin/newaliases-compat hoststat /usr/local/kedvenclevelez/bin/hoststat-compat purgestat /usr/local/kedvenclevelez/bin/purgestat-compat

28.4.5. A mvelet befejezse


Ahogy a cljainknak megfelelen mindent belltottunk, akkor vagy egyszeren lelltjuk a sendmail neve alatt fut programokat s helyettk elindtjuk az j szoftverhez tartozkat, vagy csak jraindtjuk a gpet. Az jraindtssal mellesleg ellenrizhetjk azt is, hogy jl lltottuk be a rendszernket s az j levlkld tnyleg elindul a rendszernkkel egytt.

737

Fejezet 28. Elektronikus levelezs

28.5. A hibk elhrtsa


1. Mirt kell teljes hlzati neveket megadni a gpemen? Elfordulhat, hogy a hivatkozni kvnt gp valjban egy msik tartomnyban szerepel. Pldul, ha az ize.mize.edu gpen vagyunk s a vagyis nev gpet akarjunk innen elrni a mize.edu tartomnyban, akkor a teljes hlzati nevvel, vagyis a vagyis.mize.edu nven kell r hivatkoznunk, nem pedig egyszeren csak vagyis nven. Rgebben egybknt ezt a BSD-tpus BIND nvfeloldk megengedtk. A FreeBSD jelenlegi vltozatai azonban mr olyan BIND verzit tartalmaznak, amelyek alaprtelmezs szerint mr nem engedik a tartomnyunkon kvli relatv nevek hasznlatt. Teht a vagyis vagy a vagyis.ize.mize.edu gp lesz, vagy a legfels, gykr tartomnyban keresi a rendszer. Ez eltr a korbbi viselkedstl, ahol a keress folytatdott a vagyis.mize.edu s vagyis.edu tartomnyokban is. Az RFC 1535 elolvassbl ki fog derlni, hogy mirt nem vlt be ez a gyakorlat s hogy mirt tekinthet mg akr biztonsgi rsnek is. Ezt a problmt egybknt megoldhatjuk annyival, hogy az /etc/resolv.conf llomnyba a
search ize.mize.edu mize.edu

sor helyett a
domain ize.mize.edu

sort rjuk be. Arra viszont gyeljnk, hogy a keressi rend ne lpje t a helyi s nyilvnos adminisztrci kztt meghzd hatrt, ahogy azt az RFC 1535 nevezi.

2. A sendmail szerint a levl a sajt farkba harap Ezt a sendmail gyakran ismrtelt krdsei kztt a kvetkezkppen vlaszoltk meg:
A kvetkez hibazenetet kapom: 553 MX list for taromny.net points back to fel.tartomny.net 554 felhasznl@tartomny.net... Local configuration error Hogyan oldhat meg ez a problma? Azt krtk, hogy a tartomnyba (pldul tartomny.net) kldtt levl az MX rekord felhasznlsval egy adott gpre legyen tirnytva (ebben az esetben ez a fel.tartomny.net), de a tovbbtst vgz gp nem ismeri fel magt a tartomny.net cmen. Vegyk fel a tartomny.net tartomnyt az /etc/mail/local-host-names llomnyba [melyet a 8.10 eltti verzikban /etc/sendmail.cw llomnynak hvnak] (ha a FEATURE(use_cw_file) belltst hasznljuk) vagy tegyk hozz a Cw tartomny.net sort az /etc/mail/sendmail.cf llomnyhoz.

A sendmail GYIK a http://www.sendmail.org/faq/ cmen tallhat meg (angolul) s mindenkppen javasolt elolvasni, ha fel szeretnnk piszklni a levelez rendszernk belltsait.

738

Fejezet 28. Elektronikus levelezs

3. Hogyan tudok levelez szervert futtatni egy betrcszs PPP kapcsolat esetben? Egy helyi hlzaton lev FreeBSD-s gpet akarunk teht az internethez kapcsolni. Ez a FreeBSD-s gp lesz a helyi hlzat leveleket tovbbt tjrja. A PPP kapcsolat nem dediklt. Legalbb kt mdon meg tudjuk oldani. Az egyik mdszer szerint az UUCP hasznlatra lesz szksgnk. A msik mdszer szerint szereznnk kell egy jjel-nappal zemel internetes szervert, amely majd szolgltatja a msodlagos MX rekordot a tartomnyunkhoz. Pldul, ha a cgnk tartomnya a cg.hu s az internet-szolgltatnk a szolgltat.net nvre belltotta a tartomnyunkhoz a msodlagos MX rekordokat:
cg.hu.

MX MX

10 20

cg.hu. szolgltat.net.

Vgs cmzettknt csak egy gpet kell megadni (az /etc/mail/sendmail.cf llomnyba a cg.hu cmhez tegyk hozz a Cw cg.hu sort). Amikor a leveleket kldeni akar sendmail megprbl kzbesteni, elszr hozznk (cg.hu) prbl csatlakozni a modemes sszekttetsen keresztl. Ez valsznleg idtllpssel befejezdik, mivel nem vagyunk fenn minden pillanatban a neten. A sendmail ekkor automatikusan a msodlagos MX rekord ltal megadott cmre kldi a levelet, teht a szolgltatnkhoz (szolgltat.net). Ez a msodlagos MX cm prblja majd idlegesen elrni a gpnket s kzbesteni a leveleket az elsdleges MX rekord ltal megadott gpre (cg.hu). A bejelentkezskor ezrt egy hasonl szkriptet kell lefuttatnunk:
#!/bin/sh # Tegyk a /usr/local/bin/pppmyisp llomnyba: ( sleep 60 ; /usr/sbin/sendmail -q ) & /usr/sbin/ppp -direct pppmyisp

Ha ksztnk egy kln bejelentkez szkriptet a felhasznlk szmra, akkor a sendmail -qRcg.hu parancsot is hasznlhatjuk a fenti szkript helyett. Ezzel a cg.hu sorban tallhat sszes levl azonnal feldolgozsra kerl. A helyzetet gy lehetne mg jobban pontostani: Az albbi zenet a FreeBSD Internet service providers levelezsi lista (http://lists.FreeBSD.org/mailman/listinfo/freebsd-isp) archvumbl szrmazik.
> > > > > > > > > we provide the secondary MX for a customer. The customer connects to our services several times a day automatically to get the mails to his primary MX (We do not call his site when a mail for his domains arrived). Our sendmail sends the mailqueue every 30 minutes. At the moment he has to stay 30 minutes online to be sure that all mail is gone to the primary MX. Is there a command that would initiate sendmail to send all the mails now? The user has not root-privileges on our machine of course.

In the privacy flags section of sendmail.cf, there is a definition Opgoaway,restrictqrun Remove restrictqrun to allow non-root users to start the queue processing. You might also like to rearrange the MXs. We are the 1st MX for our customers like this, and we have defined:

739

Fejezet 28. Elektronikus levelezs

# If we are the best MX for a host, try directly instead of generating # local config error. OwTrue That way a remote site will deliver straight to you, without trying the customer connection. You then send to your customer. Only works for hosts, so you need to get your customer to name their mail machine customer.com as well as hostname.customer.com in the DNS. Just put an A record in the DNS for customer.com.

Az idzet fordtsa:
> > > > > > > > > > Msodlagos MX rekordot biztostunk az gyfeleinknek. Az gyfelek ezutn automatikusan csatlakoznak naponta akr tbbszr is a szolgltatsunkhoz s leszedik az elsdleges MX rekordhoz tartoz leveleket. (Nem szlunk neki, amikor a tartomnyhoz levl rkezik.) A sendmail programunk minden 30 percben elkldi a sorban felhalmozdott leveleket. Teht jelen pillanatban legalbb 30 percig fenn kell lennie az gyflnek, hogy rendben megkapja az elsdlegesre MX rekordra. Ltezik valamilyen parancs a sendmail programhoz, amellyel azonnal lekrhetjk az sszes levelnket? A felhasznlmnak termszetesen nincsenek rendszergazdai jogosultsgai az adott gpen.

A sendmail.cf privacy flags belltsai kztt van egy definci, az Opgoaway,restrictqrun. Vegyk ki innen a restrictqrun belltst, amivel a nem root felhasznlk is megindthatjk a sor feldolgozst. Valsznleg az MX-ek trendezsre is szksg lesz. Mi vagyunk az els MX az ilyen tpus gyfelek szmra, s ezt adtuk meg: # Ha mi vagyunk a legjobb MX a levl szmra, akkor ne generljunk # helyi belltsi hibt, hanem prblkozzunk kzvetlenl. OwTrue

Ezzel mr a tvoli gp kzvetlenl neknk kld anlkl, hogy prblkozna az gyfl kapcsolatval. Ezt majd tovbbkldjnk az gyflnek. Ez csak hlzati nevek esetben mkdik, teht az gyfelnk el kell neveznie a leveleket fogad gpt customer.com-nak, valamint a fel kell venni a hostname.customer.com cmet is a DNS-be. Ehhez egyszeren csak elegend egy A rekordot betenni a customer.com-hoz.

4. Mirt kapok folyton Relaying Denied hibt, amikor ms gpekrl kldk levelet? A FreeBSD alaprtelmezett teleptse sorn a sendmail gy lltdik be, hogy csak arrl a gprl kldhetnk vele levelet, ahol fut. Pldul, ha POP szerver is elrhet, akkor a felhasznlk meg tudjk nzni a leveleiket az iskolbl, munkbl vagy brmilyen ms tvoli helyrl, de leveleket onnan tovbbra sem tudnak kldeni. ltalban pr pillanattal a prblkozs utn a MAILER-DAEMON kldeni fog egy 5.7 Relaying Denied (5.7 A tovbbts nem engedlyezett) zenetet. Tbb lehetsgnk is van ennek megkerlsre. Az a legegyszerbb mdszer, ha az internet-szolgltatnk cmt felvesszk az /etc/mail/relay-domains llomnyba. Pldul gy:

740

Fejezet 28. Elektronikus levelezs


# echo "az.internet.szolgltat.net" > /etc/mail/relay-domains

Az llomny ltrehozsa vagy mdostsa utn jra kell indtanunk a sendmail programot. Ez remekl mkdik abban az esetben, ha rendszergazdk vagyunk s nem akarunk a helyi gprl levelet kldeni, vagy egy msik gpen vagy akr msik internet-szolgltatval akarunk valamilyen kattingats levelez programot hasznlni. Olyankor is nagyon hasznos lehet, amikor csak egy vagy kt e-mail hozzfrst lltottunk be. Ha egyszerre tbb cmet is fel szeretnnk venni, akkor nyissuk meg ezt az llomnyt a kedvenc szvegszerkesztnkkel s rjuk be a tartomnyokat, soronknt egyet:
sajt.internet.szolgltat.net msik.internet.szolgltat.com felhasznlk-internet.szolgltat.ja www.minta.org

Innentl kezdve a listban szerepl brmelyik gprl tudunk levelet kldeni (feltve, hogy az adott felhasznl hozzfr a gpnkhz). Ezzel gynyren megoldhatjuk, hogy a felhasznlink kpesek legyenek tvolrl is levelet kldeni a rendszernkn keresztl anlkl, hogy msok pedig szemetet kldennek t rajtunk.

28.6. Komolyabb tmk


A kvetkez szakaszban szba kerlnek olyan komolyabb tmk, mint pldul a levelek kongurcija s a levelezs belltsa az egsz tartomny szmra.

28.6.1. Alapvet belltsok


Alapbl kpesnek kell lennnk leveleket kldeni kls gpekre egszen addig, amg az /etc/resolv.conf llomny a megfelel belltsokat tartalmazza vagy egy sajt nvszervert futtatunk. Ha szeretnnk, hogy a gpnkre rkez levelek elrjk a FreeBSD-s gpnkn fut levltovbbt gynkt (pldul a sendmail programot), akkor erre kt mdszer knlkozik:

Futtassunk sajt nvszervert s hozzunk ltre magunknak egy tartomnyt. Pldul FreeBSD.org. Kzvetlenl a gpnkre kldessk a leveleket. Ezt gy tehetjk meg, ha egybl a gpnkhz tartoz DNS nvre kldetjk a leveleket. Pldul az enyem.FreeBSD.org cmre.

Fggetlenl attl, hogy a fentiek kzl melyik megoldst vlasztjuk, a levelek csak akkor tudnak eljutni kzvetlenl a gpnkre, ha lland, statikus IP-cmmel rendelkeznk (teht nem dinamikus cmmel, amit ltalban a betrcszs PPP kapcsolatokhoz szoktak kiosztani). Ha tzfal mgtt vagyunk, akkor valamilyen mdon felnk kell irnytani az SMTP forgalmat is. Ha kzvetlenl a gpnkn akarjuk fogadni a leveleket, akkor a kvetkez kett kzl az egyik mindenkppen kelleni fog:

Gondoskodjunk rla, hogy a hozznk tartoz DNS-ben (legkisebb sorszm) MX rekord a gpnk IP-cmre mutat. Gondoskodjunk rla, hogy a hozznk tartoz DNS-ben nincs semmilyen MX rekord a gpnkhz.

A fentiek kzl brmelyik elg ahhoz, hogy kzvetlenl a gpnkre rkezzen meg a levl.

741

Fejezet 28. Elektronikus levelezs Prbljuk ki:


# hostname

enyem.FreeBSD.org
# host enyem.FreeBSD.org

enyem.FreeBSD.org has address 204.216.27.XX

Ha ezt ltjuk, akkor minden gond nlkl lehet kldeni levelet a <nevem@enyem.FreeBSD.org> a cmre (felttelezve, hogy a sendmail megfelelen mkdik az enyem.FreeBSD.org cmen). Ha viszont ehhez hasonlt tapasztalunk:
# host enyem.FreeBSD.org

enyem.FreeBSD.org has address 204.216.27.XX enyem.FreeBSD.org mail is handled (pri=10) by kozpont.FreeBSD.org

A gpnkre (enyem.FreeBSD.org) kldtt sszes levelet a kozpont szedi ssze ugyanazon felhasznli nvvel ahelyett, hogy kzvetlenl a gpnkre kldeni ezeket. Az imnti adatokat a DNS szerver hatrozza meg. A levelek tovbbtsval kapcsolatos informcikat az MX mint Mail eXchange DNS-rekord trolja. Ha nincs ilyen MX rekord, akkor az IP-cm alapjn kzvetlenl az adott gphez kerl a levl. Pldul a freefall.FreeBSD.org MX rekordja hajdann gy nzett ki:
freefall freefall freefall freefall MX MX MX MX 30 40 10 20 mail.crl.net agora.rdrop.com freefall.FreeBSD.org who.cdrom.com

Lthatjuk, hogy a freefall esetben tbb MX bejegyzs is szerepel. A legalacsonyabb MX-szm gp fogja kapni az erre a cmre berkez leveleket, amennyiben elrhet. Ha valamilyen okbl nem rhet el, akkor helyette ideiglenesen a tbbiek (melyeket nha csak tartalk MX-eknek neveznek) veszik t a levelet s tadjk a legalacsonyabb szmnak, amint az jra elrhetv vlik. A tartalk jelleggel megadott MX gpek akkor rnek tnylegesen valamit, ha teljesen mshonnan csatlakoznak az internethez. Az internet szolgltat vagy egy ismersnk gpe valsznleg minden tovbbi nlkl segt ennek megoldsban.

28.6.2. Egy egsz tartomny leveleinek kezelse


Egy levelez szerver belltshoz valahogy meg kell tudnunk oldalni, hogy a klnbz munkallomsokra kldtt levelek kzvetlenl hozz fussanak be. Alapveten teht arrl lenne sz, hogy a tartomnyunkon (ez ebben az esetben a *.FreeBSD.org) belli gpekre cmzett levelekre ez a gp tart ignyt s gy ezek ide irnytdnak t, majd a felhasznlk errl a kzponti levelez szerverrl kapjk meg a leveleiket. Az letnk megknnytshez minden felhasznlnak ltrehozzuk a sajt felhasznli nevt a levelez szerveren is. Ezt az adduser(8) paranccsal gyorsan el is vgezhetjk. A levelez szerver lesz a hlzat sszes munkallomshoz kirendelt levlvlt. Ezt a DNS belltsai kztt gy adhatjuk meg:
enyem.FreeBSD.org A 204.216.27.XX ; Munkalloms

742

Fejezet 28. Elektronikus levelezs


MX 10 kozpont.FreeBSD.org ; Levelez szerver

Ezzel lnyegben az A rekord gyelmen kvl hagysval tirnytjuk a munkallomsok szmra rkez sszes levelet a levelez szerverre. A levelek teht az MX rekord ltal mutatott cmre mennek ki. Ezt nllan nem tudjuk elvgezni, hacsak nem futattunk egy sajt DNS szervert. Ha nincsen vagy nem is tudunk DNS szervert futtatni, akkor ebben a krdsben egyeztessnk az internet-szolgltatnkkal vagy brkivel, aki a DNS belltsairt felels. Ha virtulis e-mail cmket is kezelnk, akkor a most kvetkez informci mg a hasznunkra lehet. A plda kedvrt most feltesszk, hogy a tartomnyunkban van egy gyfelnk, jelen esetben az ugyfel1.org, s azt akarjuk, hogy az ugyfel1.org cmre kldtt levelek a sajt levelez szervernkre kerljenek t, a level.sajat.com cmre. A DNS-t ehhez gy kell belltani:
ugyfel1.org MX 10 level.sajat.com

Ha csak az ugyfel1.org levelezst akarjuk kezelni, akkor ahhoz nem kell kln A rekord.
Megjegyzs: Vigyzzunk, mert az ugyfel1.org csak akkor pingelhet, ha ltezik hozz A rekord.

Befejezsl a levelez szervernkn fut sendmail szmra is fel kell trnunk, hogy milyen tartomnyokhoz s/vagy hlzati nevekhez fogadjon leveleket. Ezt tbb mdon is elvgezhetjk. A kvetkezk brmelyik megfelel erre a clra:

A FEATURE(use_cw_file) hasznlata esetn vegyk fel a cmeket az /etc/mail/local-host-names llomnyba. Ha a sendmail 8.10 eltti vltozatai esetben ehhez az /etc/sendmail.cw llomnyra lesz szksgnk. Tegyk be a Cwsajat.cimunk.com sort az /etc/sendmail.cf vagy a sendmail 8.10 s ksbbi vltozatai esetn az /etc/mail/sendmail.cf llomnyba.

28.7. SMTP s az UUCP


A FreeBSD-hez tartoz sendmail olyan gpek szmra lett kialaktva, amelyek kzvetlenl az internethez csatlakoznak. Az UUCP hasznlatval levelez rendszerek szmra egy msik kongurcis llomnyt kell telepteni a sendmail szmra. Az /etc/mail/sendmail.cf lltsa kzzel egyltaln nem knny. A sendmail 8. vltozata radsul a kongurcis llomnyokat az m4(1) elfeldolgoz segtsgvel gyrtja le, ahol a tnyleges belltsok egy magasabb absztrakcis szinten jelennek meg. Az m4(1) tpus kongurcis llomnyok a /usr/share/sendmail/cf knyvtrban tallhatak. A cf alknyvtrban lev README llomny igyekszik a felhasznlt bevezetni az m4(1) alap belltsok vilgba. A mailertable nev lehetsg hasznlatval tudjuk a legjobban tmogatni az UUCP protokollon keresztli kzbestst. Ezzel felpl egy olyan adatbzis, amelyet a sendmail fel tud hasznlni a tovbbtst rint dntsekben. Ehhez elsknt hozzuk is ltre a sajt .mc llomnyunkat. Ehhez a /usr/share/sendmail/cf/cf knyvtr tartalmaz nhny pldt. Hvjuk most ezt az llomnyunkat ize.mc nven. A kvetkez mdszerrel tudjuk egy vals sendmail.cf llomnny alaktani:

743

Fejezet 28. Elektronikus levelezs


# cd /etc/mail # make ize.cf # cp ize.cf /etc/mail/sendmail.cf

Egy tlagos .mc llomny egybknt valahogy gy pl fel:


VERSIONID(verziszm) OSTYPE(bsd4.4) FEATURE(accept_unresolvable_domains) FEATURE(nocanonify) FEATURE(mailertable, hash -o /etc/mail/mailertable) define(UUCP_RELAY, sajat.uucp.relay ) define(UUCP_MAX_SIZE, 200000) define(confDONT_PROBE_INTERFACES) MAILER(local) MAILER(smtp) MAILER(uucp) Cw Cw
sajat.al.nev azuucpgepneve.UUCP

Az accept_unresolvable_domains, nocanonify s confDONT_PROBE_INTERFACES lehetsgekre hivatkoz sorok megakadlyozzk, hogy a levl kzbestsben a DNS is szerepet jtsszon. Az UUCP_RELAY az UUCP alap kzbests tmogatst engedlyezi. Egyszeren csak rjunk ide egy internetes hlzati nevet, amely kpes feldolgozni az .UUCP ltartomny cmeit. Az esetek tbbsgben ide az internet-szolgltatnk levelek tovbbkldsrt felels gpe kerl. Miutn ezzel vgeztnk, szksgnk lesz mg az /etc/mail/mailertable llomnyra is. Ha a klvilg fel csak egyetlen sszekttetst hasznlunk a levelekhez, akkor az albbi pontosan megfelel:
# # makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable . uucp-dom:sajat.uucp.relay

Egy bonyolultabb plda pedig gy nz ki:


# # makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable # horus.interface-business.de uucp-dom:horus .interface-business.de uucp-dom:if-bus interface-business.de uucp-dom:if-bus .heep.sax.de smtp8:%1 horus.UUCP uucp-dom:horus if-bus.UUCP uucp-dom:if-bus . uucp-dom:

Az els hrom sor azokat a specilis eseteket kezeli, ahol a tartomny fel kldtt levelek nem az alaprtelmezett ton visszk tovbb, hanem valamelyik UUCP szomszd fel s gy le tudjuk rvidteni a kzbests tvonalt. Az ezeket kvet sor dolgozza fel a helyi Ethernet tartomny fel STMP protokollal tovbbthat leveleket. Vgl az UUCP szomszdokat is felsoroljuk az .UUCP ltartomny jellse szerint, gy megengedjk, hogy a

744

Fejezet 28. Elektronikus levelezs


uucp-szomszd ! cmzett

fellbrlja az alaprtelmezett szablyokat. Az utols sorban mindig egyetlen pont szerepel, ami minden msra illeszkedik, gy az UUCP kzbests egy olyan UUCP szomszd fel halad, amely a vilg fel egy univerzlis levelez tjrnak tekinthet. A uucp-dom: kulcssz mgtt szerepl sszes csompont nevnek rvnyes UUCP szomszdra kell utalnia, amelyet a uuname paranccsal le is tudunk ellenrizni. A feladatbl mr csak annyi maradt htra, hogy hasznlat eltt ezt az llomnyt t kell alaktani DBM adatbzis formtumba. Az ehhez szksges parancsot rdemes mailertable llomny elejre bejegyzsben felrni. A mailertable megvltoztatsakor mindig le kell futtatni ezt a parancsot.

Utols jtancs: ha nem lennnk biztosak valamelyik kzbestsi tvonal mkdsben, ne felejtsk el a sendmail -bt belltst. Ezzel a sendmail az n. cmtesztel mdban (address test mode) indul el. Gpeljk be, hogy 3,0, majd rjuk be a tesztelni kvnt cmet. Az utols sorban lthatjuk a felhasznlt bels levltovbbt gynkt, a clgpet, amellyel ezt meghvjuk, s a (valsznleg az tfordtott) cmet. Innen a Ctrl+D billentykombincival lphetnk ki.
% sendmail -bt

ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) Enter <ruleset> <address>
> 3,0 ize@pelda.com

canonify ... parse


> ^D

input: ize @ pelda . com returns: $# uucp-dom $@ sajat.uucp.relay $: ize < @ pelda . com . >

28.8. Csak klds belltsa


Ksztette: Bill Moran. Gyakran elfordulhat, hogy csak leveleket akarunk tovbbkldeni. Mint pldul:

Asztali szmtgpnk van, de hasznlni akarunk olyan programokat, mint pldul a send-pr(1). Ehhez az internet-szolgltatn keresztl kell tovbbkldeni a levelet. A szmtgpnk egy olyan szerver, amely nem helyben kezeli a leveleket, ezrt az sszeset tkldi feldolgozsra.

Szinte brmelyik levlkld gynk kpes betlteni ezt az rt. Sajnos elgg bonyolult helyesen belltani gy egy brmire kpes levlkldt, hogy egyszeren csak szabaduljon meg a levelektl. Ilyenkor a sendmail vagy a postx hasznlatval tulajdonkppen gyval lvnk verbre. Tovbb, ha egy tlagos internet-hozzfrssel rendelkeznk, addhat, hogy a szerzds egyszeren tiltja a levelez szerver futtatst. Legegyszerbben gy tudjuk kielgteni az ilyen jelleg ignyeket, ha felteleptjk a mail/ssmtp portot. A root felhasznlval adjuk ki a kvetkez parancsokat:
# cd /usr/ports/mail/ssmtp # make install replace clean

Teleptse utn a mail/ssmtp portot a mindssze ngysoros /usr/local/etc/ssmtp/ssmtp.conf llomnnyal llthatjuk be:
root=valodiemail@minta.com

745

Fejezet 28. Elektronikus levelezs


mailhub=level.minta.com rewriteDomain=minta.com hostname=_GEPNEV_

A root felhasznl szmra felttlenl egy valdi e-mail cmet adjuk meg. A level.minta.com helyre az internet-szolgltatnk kimen leveleket tovbbt szervert adjuk meg (bizonyos szolgltatk ezt kimen levelez szervernek vagy SMTP szervernek nevezik). Ne felejtsk el sendmail dmont sem letiltani, belertve a kimen levelek kezelst. Ennek rszleteit lsd a 28.4.2 Szakaszban. A mail/ssmtp hasznlatnl mg adhatunk meg tovbbi belltsokat is. A /usr/local/etc/ssmtp llomnyban vagy az ssmtp man oldaln tallhatunk pldkat s olvashatunk bvebben a tmrl. Az ssmtp ilyen fajta belltsval a szmtgpnkn lev szoftverek is helyesen fognak mkdni, mikzben nem srtjk meg az internet-szolgltat elrsait s nem tesszk lehetv, hogy a szmtgpnkrl levlszemetet kldhessenek.

28.9. Levelezs betrcszs kapcsolattal


Ha statikus IP-cmnk van, akkor az alaprtelmezett belltsok tkletesen megfelelek szmunkra. Csupn a gpnkhz tartoz internetes cmet kell megadnunk a gpnk nevnek s a sendmail elvgzi a tbbit. Ha viszont dinamikusan kiosztott IP-cmmel rendelkeznk s betrcszs PPP kapcsolaton keresztl csatlakozunk az internethez, akkor valsznleg az internet-szolgltat levelez szervern van egy postaldnk. Most tegyk fel, hogy a internet-szolgltat tartomnya a szolgaltato.net s a felhasznli nv a felhasznalo, a gpnk neve pedig otthoni.bsdm, valamint az internet-szolgltat rszrl levelezsre a relay.szolgaltato.net gpet hasznlhatjuk. A postaldnkbl gy tudjuk letlteni a leveleket, ha teleptnk hozz egy programot. Erre a feladatra a fetchmail hibtlanul alkalmas, mivel tbb klnbz protokollt ismer. Ez a program csomagknt vagy a Portgyjtemnybl (mail/fetchmail) is elrhet. Az internet-szolgltatk erre ltalban a POP protokollt ajnljk fel. Ha a felhasznli PPP alkalmazst hasznljuk, lltsuk be az /etc/ppp/ppp.linkup llomnyt a kvetkez mdon s gy a csatlakozskor maguktl letltdnek a leveleink:
MYADDR: !bg su felhasznalo -c fetchmail

Ha a sendmail segtsgvel kldjk tovbb a leveleket a nem helyi hozzfrsek fel (ahogy azt lentebb is lthatjuk), akkor minden bizonnyal a csatlakozskor arra is szksgnk lesz, hogy a leveleket trol sor is feldolgozdjon. Ezt gy oldhatjuk meg, ha az /etc/ppp/ppp.linkup llomnyba a fetchmail parancs utn a kvetkezt tesszk:
!bg su felhasznalo -c "sendmail -q"

Ez a plda felttelezi, hogy az otthoni.bsdm gpen van egy felhasznalo nev felhasznlnk. Az otthoni.bsdm gpen a felhasznalo felhasznli knyvtrban hozzunk ltre egy .fetchmailrc llomnyt:
poll szolgaltato.net protocol pop3 fetchall pass TitkosJelszo

Ezt az llomnyt csak s kizrlag a felhasznalo olvashatja, mivel szerepel benne a hozztartoz TitkosJelszo.

746

Fejezet 28. Elektronikus levelezs gy tudunk a megfelel from: fejlccel kldeni, ha felvilgostjuk a sendmail programot, hogy ne az <felhasznalo@otthoni.bsdm> cmet, hanem a <felhasznalo@szolgaltato.net> cmet hasznlja. St, a gyorsts kedvrt a sendmail szmra rdemes elrulni, hogy a relay.szolgaltato.net cmen keresztl kldjn. A munka elvgzshez elegend az albbi .mc llomny:
VERSIONID(otthoni.bsdm.mc 1.0) OSTYPE(bsd4.4)dnl FEATURE(nouucp)dnl MAILER(local)dnl MAILER(smtp)dnl Cwlocalhost Cwotthoni.bsdm MASQUERADE_AS(szolgaltato.net)dnl FEATURE(allmasquerade)dnl FEATURE(masquerade_envelope)dnl FEATURE(nocanonify)dnl FEATURE(nodns)dnl define(SMART_HOST, relay.szolgaltato.net) Dmotthoni.bsdm define(confDOMAIN_NAME,otthoni.bsdm)dnl define(confDELIVERY_MODE,deferred)dnl

Az elz szakaszban tallhatjuk meg annak a mdjt, hogy miknt varzsoljunk ebbl az .mc llomnybl egy sendmail.cf llomnyt. A sendmail.cf frisstse utn pedig ne felejtsk el a sendmail jraindtst!

28.10. Az SMTP hitelestse


rta: James Gorham. Levelez szervernkn az SMTP protokoll hitelestsnek (SMTP Authentication) engedlyezse tbb szempontbl is elnykkel br. Az SMTP hitelestsnek bekapcsolsa egy jabb rteget kpez a sendmail vdelmben, s az olyan llandan mozgsban lev felhasznlk szmra is megoldst nyjt, akik anlkl kpesek hasznlni ugyanazt a levelez szervert, hogy minden alkalommal jrakongurlnk a levelez kliensket. 1. Teleptsk fel a security/cyrus-sasl2 portot. A security/cyrus-sasl2 port tbb fordtsi idej belltst tmogat. Itt most az SMTP hitelestst fogjuk hasznlni, ezrt gondoskodjunk a LOGIN opci engedlyezsrl. A security/cyrus-sasl2 telepts utn nyissuk meg szerkesztsre a /usr/local/lib/sasl2/Sendmail.conf llomnyt (vagy ha mg nem ltezne, hozzuk ltre), s benne vegyk fel a kvetkez sort:
pwcheck_method: saslauthd

2.

3.

Ezt kveten teleptsk a security/cyrus-sasl2-saslauthd portot, s tegyk bele az /etc/rc.conf llomnyba ezt a sort:
saslauthd_enable="YES"

Vgezetl indtsuk el a saslauthd dmont:

747

Fejezet 28. Elektronikus levelezs


# /usr/local/etc/rc.d/saslauthd start

Ez a dmon fog kzvetteni a sendmail s a FreeBSD passwd adatbzisa kzti hitelestsben. Ezzel elkerlhetjk az j felhasznli nevek s jelszavak felvtelt az SMTP hitelests hasznlathoz, gy a hozzfrsek s a levelezs jelszava ugyanaz marad. 4. Most pedig rjuk hozz az albbi sorokat az /etc/make.conf llomnyhoz:
SENDMAIL_CFLAGS=-I/usr/local/include/sasl -DSASL SENDMAIL_LDFLAGS=-L/usr/local/lib SENDMAIL_LDADD=-lsasl2

Ezek a sorok lltjk be a sendmail szmra, hogy fordts kzben a cyrus-sasl2 fggvnyeit hasznlja. A sendmail jrafordtsa eltt mindenkppen legyen fenn a cyrus-sasl2 port. 5. A sendmail jrafordtst a kvetkez parancsok vgrehajtsval intzhetjk el:
# # # # # # cd /usr/src/lib/libsmutil make cleandir && make obj && make cd /usr/src/lib/libsm make cleandir && make obj && make cd /usr/src/usr.sbin/sendmail make cleandir && make obj && make && make install

A sendmail fordtsa esetn semmilyen problmnak nem szabadna elfordulnia, kivve ha a /usr/src knyvtrat s a szksges osztott knyvtrakat nem vltoztatjuk idkzben tlsgosan gyakran. 6. A sendmail lefordtsa s jrateleptse utn szerkesszk t az /etc/mail/freebsd.mc llomnyt (vagy azt az .mc llomnyt, amelyet ppen hasznlunk). Sok rendszergazda a hostname(1) parancs vlaszt hasznlja fel az .mc tpus llomnyok egyedi elnevezshez). rjuk bele a kvetkez sorokat:
dnl set SASL options TRUST_AUTH_MECH(GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN)dnl define(confAUTH_MECHANISMS, GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN)dnl

Ezek lltjk be a sendmail szmra a felhasznlk hitelestsre alkalmas klnbz mdszereket. Ha a pwcheck mdszer helyett valami mst akarunk hasznlni, akkor jrjunk utna a dokumentciban. 7. Zrsul futassuk le a make(1) parancsot az /etc/mail knyvtrban. gy lefut az j .mc llomnyunk s ltrejn egy freebsd.cf (vagy amilyen nevet az .mc llomnynak megadtunk) .cf llomny. Ezutn a make install restart parancs kiadsval msoltassuk t ezt a sendmail.cf helyre s szablyosan indtassuk jra a sendmail szolgltatst. A folyamatrl rszletesebb tjkoztatst az /etc/mail/Makefile llomny tud nyjtani.

Ha eddig minden a legnagyobb rendben trtnt, akkor most mr kpesek vagyunk bejelentkezsi informcit is tadni a levelez kliensnek s elkldeni egy tesztzenetet. A hibk kiszrshez lltsuk a sendmail LogLevel opcijt az 13 rtkre s gyeljk a /var/log/maillog llomnyt. Tovbbi felvilgostsrt olvassuk el a sendmail SMTP hitelestssel (http://www.sendmail.org/~ca/email/auth.html) foglalkoz oldalt (angolul).

748

Fejezet 28. Elektronikus levelezs

28.11. Levelez kliensek


Ksztette: Marc Silver. A levelez kliens (Mail User Agent, MUA) egy olyan alkalmazs, amelyik elektronikus levelek kldsre s fogadsra hasznlhat. Azonkvl, ahogy az e-mail fejldik s egyre bonyolultabb vlik, a levelez kliensek is egyre inkbb ersebb vlnak abban a tekintetben, ahogy az e-maileket kezelik. Ezzel egytt a felhasznlk is egyre tbb lehetsget s rugalmassgot kapnak. A FreeBSD szmos levelez klienst tmogat, mindegyikk knnyedn telepthet a FreeBSD Portgyjtemnye segtsgvel. A felhasznlk vlaszthatnak a grakus kliensek, mint pldul az evolution vagy a balsa s a konzolos kliensek, pldul a mutt, pine vagy mail kztt, esetleg hasznlhatjk a nagyobb szervezetek rszrl felknlt webes felleteket is.

28.11.1. mail
A mail(1) a FreeBSD alaprtelmezett levelez kliense. Egy olyan konzolos alkalmazs, amelyben elrhetjk az e-mailek kldshez s fogadshoz szksges sszes alapvet funkcit, habr a csatolmnyokat csak korltozottan kpes kezelni s csak a helyi postaldkat kezeli. Annak ellenre, hogy a mail nmaga nem kpes kommuniklni POP vagy IMAP szerverekkel, az ilyen postaldk tartalmt egy fetchmail-szer alkalmazssal (lsd 28.12 Szakasz) le tudjuk tlteni a szmra is elrhet helyi mbox llomnyba. A levelek kldshez s fogadshoz egyszeren hvjuk be a mail programot a kvetkez mdon:
% mail

Ezutn a /var/mail knyvtrban tallhat felhasznli postaldnk tartalmt automatikusan beolvassa a mail segdprogram. Ha a postalda res, akkor a program egybl befejezi futst s kzli, hogy nem tallt levelet. Amikor viszont tudott beolvasni leveleket, megjelenik egy fellet, ahol a berkezett zenetek listjt lthatjuk. Az zenetek automatikusan sorszmozdnak, ahogy ezt az albbi plda is szemllteti:
Mail version 8.1 6/6/93. Type ? for "/var/mail/marcs": 3 messages 3 new >N 1 root@localhost Mon Mar N 2 root@localhost Mon Mar N 3 root@localhost Mon Mar help. 8 14:05 8 14:05 8 14:05 14/510 14/509 14/509 "proba" "felhasznaloi hozzaferes" "minta"

Az zenetek olvassnak a t paranccsal kezdhetnk neki, amelyet az elolvasand zenet sorszma kvet. Ebben a pldban az els e-mailt nyitjuk meg:
& t 1 Message 1: From root@localhost Mon Mar 8 14:05:52 2004 X-Original-To: marcs@localhost Delivered-To: marcs@localhost To: marcs@localhost Subject: proba Date: Mon, 8 Mar 2004 14:05:52 +0200 (SAST) From: root@localhost (Charlie Root) Ezt az uzenetet probabol kuldom, valaszolj ra, ha megkaptad.

749

Fejezet 28. Elektronikus levelezs Ahogy az a fenti pldbl is ltszik, a t billenty hatsra az zenet a teljes fejlcvel egytt jelenik meg. Az zenetek listjt a h billentyvel hozhatjuk vissza. Ha egy levlre vlaszolni szeretnnk, akkor ezt a mail paranccsal is megtehetjk, vagy az R vagy az r parancsokkal. Az R arra utastja a mail programot, hogy csak az zenet kldjnek vlaszoljon, mg az r hatsra nem csupn a kld, hanem az zenet sszes cmzettje megkapja a vlaszunkat. A parancshoz hozztzhetjk egy levl sorszmt is, ekkor az adott levlre fogunk vlaszolni. Miutn kiadtuk a parancsot, rjuk meg a vlaszunkat s j sorban kezdve zrjuk le az zenetet egyetlen . bersval. Valahogy gy:
& R 1 To: root@localhost Subject: Re: proba
Koszonom, megkaptam a leveledet. .

EOT

j levelet az m segtsgvel tudunk kldeni, ami utn meg kell adnunk a cmzettet. Egyszerre tbb cmzettet is meg tudunk adni, ha a cmzett helyn cmeiket egy , karakterrel elvlasztva soroljuk fel. Ezutn a levl tmja is megadhat, amit vgl a levl szvege kvet. Az zenetet egy j sorban megadott egyetlen . segtsgvel zrhatjuk le.
& mail root@localhost Subject: Elsajatitottam a mail hasznalatat
Most mar en is tudok levelet irni es fogadni a mail hasznalataval... :) .

EOT

Amikor a mail segdprogramban vagyunk, a ? hasznlatval brmikor segtsget krhetnk, valamint a mail mkdsvel kapcsolatban a mail(1) man oldalt rdemes felkeresni.
Megjegyzs: Ahogy azt mr korbban is emltettk, a mail(1) parancsot eredetileg nem ksztettk fel az csatolt llomnyok kezelsre, ezrt igen gyengn bnik velk. Az jabb levelez kliensek, mint pldul a mutt, a csatolt llomnyokat sokkal intelligensebb mdon kezelik. Ha viszont ragaszkodunk a mail hasznlathoz, akkor a converters/mpack port hasznlatt rdemes megfontolnunk.

28.11.2. mutt
A mutt apr mrete ellenre egy igen komoly levelez kliens s remek lehetsgeket ajnl fel. me zeltskppen kzlk nhny:

Kpes az zeneteket szlakba rendezni Az e-mailek titkostsra s elektronikus alrsra tmogatja a PGP hasznlatt MIME tmogats Maildir tmogats Nagyfok testreszabhatsg

750

Fejezet 28. Elektronikus levelezs Ezen lehetsgei rvn a mutt ez egyik legfejlettebb levelez kliens. A mutt rszletesebb bemutatst a http://www.mutt.org cmen talljuk (angolul). A mutt stabil vltozata a mail/mutt port hasznlatval telepthet fel, mikzben a fejleszts alatt lev vltozatot a mail/mutt-devel port telepti. Miutn a portot sikerlt felraknunk, a mutt az albbi parancs begpelsvel indthat el:
% mutt

A mutt indulsa utn automatikusan beolvassa a /var/mail knyvtrban megtallhat felhasznli postaldt s ha lehetsges, akkor megjelenti a tartalmt. Ha nincsen levl a felhasznl postaldjban, akkor a mutt a felhasznl parancsaira vr. Ezen a kpen a mutt zenetlistja lthat:

A levelek elolvasshoz egyszeren csak vlasszuk ki a kurzorral s nyomjuk meg az Enter billentyt. Ezutn a mutt gy mutatja a levelet:

Ahogy azt mr a mail(1) parancsnl is megszokhattuk, a mutt is lehetv teszi, hogy vagy csak a kldnek, vagy pedig rajta kvl mg az sszes cmzettnek is vlaszoljunk. A levl kldjnek az r lenyomsval tudunk vlaszolni. A csoportos vlaszadshoz pedig, ahol teht a kldn kvl a cmzettek is megkapjk a levelnket, a g billentyt kell hasznlni.

751

Fejezet 28. Elektronikus levelezs


Megjegyzs: A mutt az e-mailek ltrehozshoz s megvlaszolshoz a vi(1) szvegszerkesztt hasznlja. Ezt gy tudjuk tlltani, ha a knyvtrunkban tallhat .muttrc llomnyban trjuk az editor vltozt, vagy rtket adunk az EDITOR krnyezeti vltoznak. A mutt belltsrl tbbet a http://www.mutt.org cmen tudhatunk meg.

Egy j levl megrshoz nyomjuk le az m gombot. Miutn ellttuk rvnyes tmval a levelet, a mutt elindtja a vi(1) szvegszerkesztt s nekilthatunk a levl szvegnek. Amint befejeztk, mentsk el s lpjnk ki a vi szerkesztbl. Ezutn visszakapjuk a mutt fellett, ahol a kldend e-mail sszefoglalst lthatjuk. A levelet vgl az y lenyomsval kldhetjk el. Erre a kvetkez kpen lthatunk egy pldt:

A mutt ezenkvl mg rengeteg segtsget is tartalmaz, amelyet a legtbb menbl a ? gomb lenyomsval rhetnk el. A fels sorban mindig lthatjuk a kiadhat parancsok rvid sszefoglalst.

28.11.3. pine
A pine alapveten a kezd felhasznlk szmra rdott, de szmos komolyabb lehetsget is tmogat.
FigyelemA pine szoftverrel kapcsolatban a mltban mr rengeteg tvolrl kihasznlhat sebezhetsg ltott napvilgot, s ennek ksznheten a tmadk megfelelen elksztett e-mailek segtsgvel tetszleges kdot tudnak futtatni a rendszeren lev helyi felhasznlkon keresztl. Noha az sszes ilyen ismert hibt javtottk, de a FreeBSD biztonsgi tisztje szerint a pine kdjt biztonsg szempontjbl annyira hanyag mdon rtk, hogy tovbbi, eddig mg felfedezetlen sebezhetsgeket is magban rejt. Ennek megfelelen teht a pine hasznlata mindenkinek csak sajt felelssgre javasolt.

A pine jelenlegi verzija a mail/pine4 porton keresztl telepthet. A telepts lezajlsa utn a pine a kvetkez paranccsal indthat:
% pine

A pine els futtatsa sorn egy dvzl zenetet s egy rvid bemutatkozst jelent meg, valamint a pine fejleszti arra krik a felhasznlkat, hogy kldjenek nekik egy nvtelen zenetet, amibl le tudjk szrni mennyien

752

Fejezet 28. Elektronikus levelezs hasznljk a kliensket. A nvtelen zenet elkldshez a Enter lenyomsval jrulhatunk hozz vagy az E hasznlatval enlkl tudunk kilpni a kpernyrl. Ezt az dvzl kpernyt itt lthatjuk:

A felhasznl ezutn a fmenbe kerl, ahol a kurzorbillentykkel minden gond nlkl tudunk mozogni. Ebben a fmenben a levelek megrsra, a leveleket trol knyvtrak tallzsra vagy ppen a cmjegyzk karbantartsra gyorsbillentyket is hasznlhatuk. A fmen alatt szerepel az adott menben vgrehajthat feladatokhoz tartoz gyorsbillentyk rvid felsorolsa. A pine alaprtelmezs szerint az inbox knyvtrat nyitja meg. A bennelv zenetek listjnak megtekintshez nyomjuk a I gombot vagy vlasszuk ki a lentihez hasonl mdon a MESSAGE INDEX menpontot:

Az zenetek listjban az adott knyvtrban tallhat zenetek lthatjuk, s kztk a kurzorbillentykkel mozoghatunk. A kiemelt zenet az Enter lenyomsval olvashat el.

753

Fejezet 28. Elektronikus levelezs

A lenti kpen egy ilyen plda zenetet lthatunk a pine programban. A rendelkezsnkre ll gyorsbillentyk ilyenkor is a kperny aljn megjelennek referenciaknt. Ilyen gyorsbillenty tbbek kzt az r gomb, amelynek hatsra a klienssel megvlaszolhatjuk a ppen lthat zenetet.

A pine kliensen bell a pico szvegszerkeszt segtsgvel tudunk megvlaszolni egy e-mailt, amely alapbl a pine mell telepl. A pico megknnyti a navigcit az zenetekben s sokkal elnzbb a kezd felhasznlkkal, mint pldul a vi(1) vagy a mail(1). Ha befejeztk a vlaszt, az zenetet a Ctrl+X billentykombincival tudjuk elkldeni. A pine erre megerstst fog krni.

754

Fejezet 28. Elektronikus levelezs

A pine alkalmazs a fmenbl elrhet SETUP menpont meghvsval szabhat testre. A tovbbi rszleteket a http://www.washington.edu/pine oldalon tallhatjuk (angolul).

28.12. A fetchmail hasznlata


rta: Marc Silver. A fetchmail egy mindentud IMAP s POP kliens, amely lehetv teszi a felhasznlk szmra, hogy automatikusan tltsenek le leveleket tvoli IMAP s POP szerverekrl s lementsk azokat a helyi postaldikba. gy a levelek sokkal knnyebben elrhetek. A fetchmail a mail/fetchmail port segtsgvel telepthet, s szmos lehetsget ajnl fel, tbbek kzt:

A POP3, APOP, KPOP, IMAP, ETRN s az ODMR protokollok ismerete. Kpes SMTP hasznlatval levelet tovbbtani, s ennek rvn a szrs, tovbbklds s az lnevek hasznlata a megszokott mdon mkdik. Dmonknt futtatva kpes adott idkznknt ellenrizni a frissen rkez zeneteket. Kpes egyszerre tbb postaldt is kezelni, majd ezek tartalmt a belltsainak megfelelen tovbbkldeni a klnbz helyi felhasznlknak.

Noha a fetchmail sszes lehetsgnek aprlkos bemutatsa meghaladn ennek a lersnak a kereteit, azrt szt kertnk nhny alapvet funkcijra. A fetchmail segdprogramnak a megfelel mkdshez egy .fetchmailrc nev kongurcis llomnyra van szksge. Ez az llomny trolja a szerverekre vonatkoz, valamint a bejelentkezshez szksges informcikat. Az llomny knyes tartalmra tekintettel azt javasoljuk, hogy csak a tulajdonosnak engedlyezzk az olvasst:
% chmod 600 .fetchmailrc

Az albb ismertetsre kerl .fetchmailrc llomnyban azt lthatjuk, ahogy egyetlen felhasznl postaldjt rjk el a POP protokoll hasznlatval. Arra utastja a fetchmail programot, hogy csatlakozzon a levelezes.com cmre a joska felhasznlval s az XXX jelszval. Ebben a pldban felttelezzk, hogy a joska nev felhasznl ltezik a rendszernkben is.

755

Fejezet 28. Elektronikus levelezs


poll levelezes.com protocol pop3 username "joska" password "XXX"

A kvetkez pldban tbb POP s IMAP szerverhez csatlakozunk s ahol lehet, tbb helyi felhasznlnak irnytjuk t a leveleket:
poll user user poll user levelezes.com proto pop3: "joska", with password "XXX", is "jozsi" here; "andrea", with password "XXXX"; levelezes2.net proto imap: "jani", with password "XXXXX", is "hardstuff" here;

A fetchmail program a -d bellts megadsval dmonknt is elindthat, amely utn meg kell adni (msodpercekben) azt az idkzt, aminek elteltvel a fetchmail lekrdi a .fetchmailrc llomnyban felsorolt szervereket. Az albbi pldban a fetchmail 600 msodpercenknt kri el a leveleket:
% fetchmail -d 600

A fetchmail tovbbi lehetsgeirl s mkdsrl a http://fetchmail.berlios.de/ oldalon olvashatunk (angolul).

28.13. A procmail hasznlata


rta: Marc Silver. A procmail segdprogram egy hihetetlenl ers alkalmazs, mellyel a berkez leveleinket tudjuk szrni. A felhasznlk szmra olyan szablyok megadst teszi lehetv, amelyekre aztn a rendszer illeszti a bejv leveleket, s az eredmnynek megfelelen elvgez bizonyos feladatokat vagy tirnytja a levelet ms postaladkba s/vagy e-mail cmekre. A procmail a mail/procmail porttal telepthet fel. Miutn ez sikerlt, akr kzvetlenl be is pthetjk a legtbb levelez kliensbe. Errl az adott levelez kliens dokumentcijban olvashatunk tbbet. A procmail gy is integrlhat, ha a felvesszk a kvetkez sort a procmail szolgltatra ignyt tart felhasznl knyvtrban tallhat .forward llomnyba:
"|exec /usr/local/bin/procmail || exit 75"

A kvetkez szakaszban lthatjuk a procmail nhny alapvet szablyt, valamint ezek rvid lerst. Ezeket a szablyokat a .procmailrc llomnyba kell belerni, amely szintn a felhasznl knyvtrban leledzik. Ezen szablyok tbbsge a procmailex(5) man oldalon is olvashat. A <felhasznalo@levelezes.com> cmrl rkez leveleket irnytsuk t a <jocim@levelezes2.com> kls cmre:
:0 * ^From.*felhasznalo@levelezes.com ! jocim@levelezes2.com

Minden 1000 byte-nl kisebb levelet kldjnk t a <jocim@levelezes2.com> kls cmre:


:0 * < 1000 ! jocim@levelezes2.com

Kldjk t az sszes <masik@levelezes.com> cmre kldtt levelet a masik postaldba:

756

Fejezet 28. Elektronikus levelezs


:0 * ^TOmasik@levelezes.com masik

Kldjk az sszes olyan levelet a /dev/null eszkzre, amelyek a tmjban szerepel a Spam sz:
:0 ^Subject:.*Spam /dev/null

Egy hasznos szably, amellyel el tudjuk kapni a FreeBSD.org levelezsi listirl rkez leveleket s el tudjuk raktrozni ezeket a sajt postaldjukba:
:0 * ^Sender:.owner-freebsd-\/[^@]+@FreeBSD.ORG { LISTNAME=${MATCH} :0 * LISTNAME??^\/[^@]+ FreeBSD-${MATCH} }

757

Fejezet 29. Hlzati szerverek


tdolgozta: Murray Stokely.

29.1. ttekints
Ebben a fejezetben a UNIX tpus rendszerekben leggyakrabban alkalmazott hlzati szolgltatsok kzl fogunk nhnyat bemutatni. Ennek sorn megismerjk a hlzati szolgltatsok klnbz tpusainak teleptst, belltst, tesztelst s karbantartst. A fejezet tartalmt folyamatosan pldkkal igyeksznk illusztrlni. A fejezet elolvassa sorn megismerjk:

hogyan dolgozzunk az inetd dmonnal; hogyan lltsuk be a hlzati llomnyrendszereket; hogyan lltsunk be egy hlzati informcis szervert a felhasznli hozzfrsek megosztsra; hogyan lltsuk be automatikusan a hlzati hozzfrsnket a DHCP hasznlatval; hogyan lltsunk be nvfelold szervereket; hogyan lltsuk be az Apache webszervert; hogyan lltsuk be az llomnyok tvitelrt felels (FTP) szervert; a Samba hasznlatval hogyan lltsunk be Windows-os kliensek szmra llomny- s nyomtatszervert; az NTP protokoll segtsgvel hogyan egyeztessk az idt s dtumot, hogyan lltsunk be egy idszervert; a szabvnyos naplz dmon, a syslogd belltst hlzati keresztli naplzsra.

A fejezet elolvasshoz ajnlott:


az /etc/rc szkriptek alapjainak ismerete; az alapvet hlzati fogalmak ismerete; a kls szoftverek teleptsnek ismerete (4 fejezet).

29.2. Az inetd szuperszerver


Ksztette: Chern Lee. A FreeBSD 6.1-RELEASE vltozathoz igaztotta: A FreeBSD Dokumentcis Projekt.

29.2.1. ttekints
Az inetd(8) dmont gyakran csak internet szuperszerverknt nevezik, mivel a helyi szolgltatsok kapcsolatainak kezelsrt felels. Amikor az inetd fogad egy csatlakozsi krelmet, akkor eldnti rla, hogy ez melyik programhoz tartozik s elindt egy pldnyt belle, majd tadja neki a socketet (az gy meghvott program a szabvny bemenethez, kimenethez s hibajelzsi csatornjhoz kapja meg a socket lerit). Az inetd hasznlatval gy

758

Fejezet 29. Hlzati szerverek tudjuk cskkenteni a rendszernk terhelst, hogy a csak alkalmanknt meghvott szolgltatsokat nem futtatjuk teljesen fggetlen nll mdban. Az inetd dmont elssorban ms dmonok elindtsra hasznljuk, de nhny trivilis protokollt kzvetlenl is kpes kezelni, mint pldul a chargen, auth s a daytime. Ebben a fejezetben az inetd belltsnak alapjait foglaljuk ssze mind parancssoros mdban, mind pedig az
/etc/inetd.conf kongurcis llomnyon keresztl.

29.2.2. Belltsok
Az inetd mkdse az rc(8) rendszeren keresztl inicializlhat. Az inetd_enable ugyan alapbl a NO rtket veszi fel, vagyis tiltott, de a sysinstall hasznlatval mr akr a telepts sorn bekapcsolhat attl fggen, hogy a felhasznl milyen kongurcit vlasztott. Ha teht a:
inetd_enable="YES"

vagy
inetd_enable="NO"

sort tesszk az /etc/rc.conf llomnyba, akkor azzal az inetd dmont indthatjuk el vagy tilthatjuk le a rendszer indtsa sorn. Az
# /etc/rc.d/inetd rcvar

paranccsal lekrdezhetjk a pillanatnyilag rvnyes belltst. Emellett mg az inetd dmonnak az inetd_flags vltozn keresztl klnbz parancssori paramtereket is t tudunk adni.

29.2.3. Parancssori paramterek


Hasonlan a legtbb szerverhez, az inetd viselkedst is befolysolni tudjuk a parancssorban tadhat klnbz paramterekkel. Ezek teljes listja a kvetkez:
inetd [-d] [-l] [-w] [-W] [-c maximum] [-C arny] [-a cm | nv] [-p llomny] [-R arny] [-s maximum] [konfigurcis llomny]

Ezek a paramterek az /etc/rc.conf llomnyban az inetd_flags segtsgvel adhatak meg az inetd rszre. Alaprtelmezs szerint az inetd_flags rtke -wW -C 60, ami az inetd ltal biztostott szolgltatsok TCP protokollon keresztli wrappelst kapcsolja be, illetve egy IP-cmrl nem engedi a felknlt szolgltatsok elrst percenknt hatvannl tbbszr. A kezd felhasznlk rmmel nyugtzhatjk, hogy ezeket az alapbelltsokat nem szksges mdostaniuk, habr a ksbbiekben majd fny derl arra, hogy a kiszolgls gyakorisgnak szablyozsa remek vdekezst nyjthat tlzottan nagy mennyisg kapcsoldsi krelem ellen. A megadhat paramterek teljes listja az inetd(8) man oldaln olvashat.

759

Fejezet 29. Hlzati szerverek -c maximum Az egyes szolgltatsokhoz egyszerre felpthet kapcsolatok alaprtelmezett maximlis szmt adja meg. Alapbl ezt a dmont nem korltozza. A max-child belltssal ez akr szolgltatsonknt kln is megadhat. -C arny Korltozza, hogy egyetlen IP-cmrl alapbl hnyszor hvhatak meg az egyes szolgltatsok egy percen bell. Ez az rtk alapbl korltlan. A max-connections-per-ip-per-minute belltssal ez szolgltatsonknt is denilhat. -R arny Megadja, hogy egy szolgltatst egy perc alatt mennyiszer lehet meghvni. Ez az rtk alaprtelmezs szerint 256. A 0 megadsval eltrljk ezt a tpus korltozst. -s maximum Annak maximumt adja meg, hogy egyetlen IP-cmrl egyszerre az egyes szolgltatsokat mennyiszer tudjuk elrni. Alapbl ez korltlan. Szolgltatsonknt ezt a max-child-per-ip paramterrel tudjuk fellbrlni.

29.2.4. Az inetd.conf llomny


Az inetd belltst az /etc/inetd.conf kongurcis llomnyon keresztl vgezhetjk el. Amikor az /etc/inetd.conf llomnyban mdostunk valamit, az inetd dmont a kvetkez paranccsal meg kell krnnk, hogy olvassa jra: Plda 29-1. Az inetd kongurcis llomnynak jraolvassa
# /etc/rc.d/inetd reload

A kongurcis llomny minden egyes sora egy-egy dmont r le. A megjegyzseket egy # jel vezeti be. Az /etc/inetd.conf llomny bejegyzseinek formtuma az albbi:
szolgltats-neve socket-tpusa protokoll

{wait|nowait}[/max-child[/max-connections-per-ip-per-minute[/max-child-per-ip]]] felhasznl[:csoport][/bejelentkezsi-osztly ]
szerver-program szerver-program-paramterei

Az IPv4 protokollt hasznl ftpd(8) dmon bejegyzse pldul gy nz ki:


ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l

szolgltats-neve Ez az adott dmon ltal kpviselt szolgltatst nevezi meg, amelynek szerepelnie kell az /etc/services llomnyban. Ez hatrozza meg, hogy az inetd milyen porton gyelje a berkez kapcsolatokat. Ha egy j szolgltatst hozunk ltre, akkor azt elszr az /etc/services llomnyba kell felvennnk.

760

Fejezet 29. Hlzati szerverek csatlakozs-tpusa Ennek az rtke stream, dgram, raw, vagy seqpacket lehet. A stream tpust hasznlja a legtbb kapcsolat-orientlt TCP dmon, mikzben a dgram tpus az UDP szlltsi protokollt alkalmaz dmonok esetben hasznlatos. protokoll Valamelyik a kvetkezk kzl: Protokoll tcp, tcp4 udp, udp4 tcp6 udp6 tcp46 udp46 Magyarzat TCP IPv4 UDP IPv4 TCP IPv6 UDP IPv6 TCP IPv4 s v6 UDP IPv4 s v6

{wait|nowait}[/max-child[/max-connections-per-ip-per-minute[/max-child-per-ip]]] A wait|nowait bellts mondja meg, hogy az inetd dmonbl meghvott dmon sajt maga kpes-e kezelni kapcsolatokat. A dgram tpus kapcsolatok esetben egyrtelmen a wait belltst kell hasznlni, mikzben a stream esetn, ahol ltalban tbb szlon dolgozunk, a nowait megadsa javasolt. A wait hatsra ltalban egyetlen dmonnak adunk t tbb socketet, mg a nowait minden sockethez egy jabb pldnyt indt el. Az inetd ltal indthat pldnyokat a max-child megadsval korltozhatjuk. Ha teht pldul az adott dmon szmra legfeljebb pldny ltrehozst engedlyezzk, akkor a nowait utn /10 belltst kell megadnunk. A /0 hasznlatval korltlan mennyisg pldnyt engedlyezhetnk. A max-child mellett mg tovbbi kt msik bellts jhet szmtsba az egyes dmonok ltal kezelhet kapcsolatok maximlis szmnak korltozsban. A max-connections-per-ip-per-minute az egyes IP-cmekrl befut lekezelhet kapcsolatok percenknti szmt szablyozza, gy pldul ha itt a tizes rtket adjuk meg, akkor az adott szolgltatshoz egy IP-cmrl percenknt csak tzszer frhetnk hozz. A max-child-per-ip az egyes IP-cmekhez egyszerre elindthat pldnyok szmra r el egy korltot. Ezek a paramterek segtenek megvni rendszernket az erforrsok akaratos vagy akaratlan kimertstl s a DoS (Denial of Service) tpus tmadsoktl. Ebben a mezben a wait vagy nowait valamelyikt ktelez megadni. A max-child, max-connections-per-ip-per-minute s max-child-per-ip paramterek ellenben elhagyhatak. A stream tpus tbb szlon fut dmonok a max-child, max-connections-per-ip-per-minute vagy max-child-per-ip korltozsa nlkl egyszeren csak gy adhatak meg: nowait. Ha ugyanezt a dmont tz kapcsolatra lekorltozzuk, akkor a kvetkezt kell megadnunk: nowait/10. Amikor pedig IP-cmenknt 20 kapcsolatot engedlyeznk percenknt s mindssze 10 pldnyt, akkor: nowait/10/20. Az imnti belltsok a ngerd(8) dmon alaprtelmezett paramtereinl is megtallhatak:
finger stream tcp nowait/3/10 nobody /usr/libexec/fingerd fingerd -s

Vgezetl engedlyezzk 100 pldnyt, melyek kzl IP-cmenknt 5 hasznlhat: nowait/100/0/5.

761

Fejezet 29. Hlzati szerverek felhasznl Ezzel azt a felhasznlt adjuk meg, akinek a nevben az adott dmon futni fog. Az esetek tlnyom rszben a dmonokat a root felhasznl futtatja. Lthatjuk azonban, hogy biztonsgi okokbl bizonyos dmonok a daemon vagy a legkevesebb joggal rendelkez nobody felhasznlval futnak. szerver-program A kapcsolat felplsekor az itt teljes elrsi ttal megadott dmon indul el. Ha ezt a szolgltatst maga az inetd belsleg valstja meg, akkor ebben a mezben az internal rtket adjuk meg. szerver-program-paramterei Ez a szerver-program belltssal egytt mkdik, s ebben a mezben a dmon meghvsakor alkalmazand paramtereket tudjuk rgzteni, amelyet a dmon nevvel kezdnk. Ha a dmont a parancssorbl a sajtdmon -d paranccsal hvnnk meg, akkor a sajtdmon -d lesz szerver-program-paramterei bellts helyes rtke is. Termszetesen, ha a dmon egy belsleg megvalstott szolgltats, akkor ebben a mezben is az internal fog megjelenni.

29.2.5. Vdelem
Attl fggen, hogy a telepts sorn mit vlasztottunk, az inetd ltal tmogatott szolgltatsok egyes rsze taln alapbl engedlyezett is. Amennyiben egy adott dmont konkrtan nem hasznlunk, akkor rdemes megfontolni a letiltst. A krdses dmon sorba tegynk egy # jelet az /etc/inetd.conf llomnyba, majd olvastassuk jra az inetd belltsait. Egyes dmonok, mint pldul az ngerd hasznlata egyltaln nem ajnlott, mivel a tmadk szmra hasznos informcikat tudnak kiszivrogtatni. Ms dmonok nem gyelnek a vdelemre, s a kapcsolatokhoz rendelt lejrati idejk tlsgosan hossz vagy ppen nincs is. Ezzel a tmadnak lehetsge van lass kapcsolatokkal leterhelni az adott dmont, ezltal kimerteni a rendszer erforrsait. Ha gy talljuk, hogy tlsgosan sok az ilyen kapcsolat, akkor j tletnek bizonyulhat a dmonok szmra a max-connections-per-ip-per-minute, max-child vagy max-child-per-ip korltozsok elrendelse. Alaprtelmezs szerint a TCP kapcsolatok wrappelse engedlyezett. A hosts_access(5) man oldalon tallhatjuk meg az inetd ltal meghvhat klnfle dmonok TCP-alap korltozsainak lehetsgeit.

29.2.6. Egyb lehetsgek


A daytime, time, echo, discard, chargen s auth szolgltatsok feladatainak mindegyikt maga az inetd is kpes elltni. Az auth szolgltats a hlzati keresztl azonostst teszi lehetv s bizonyos mrtkig bellthat. A tbbit egyszeren csak kapcsoljuk ki vagy be. A tmban az inetd(8) man oldaln tudunk mg jobban elmerlni.

762

Fejezet 29. Hlzati szerverek

29.3. A hlzati llomnyrendszer (NFS)


tdolgozta s javtotta: Tom Rhodes. rta: Bill Swingle. A FreeBSD tbb llomnyrendszert ismer, kztk a hlzati llomnyrendszert (Network File System, NFS) is. Az NFS llomnyok s knyvtrak megosztst teszi lehetv a hlzaton keresztl. Az NFS hasznlatval a felhasznlk s a programok kpesek majdnem gy elrni a tvoli rendszereken tallhat llomnyokat, mintha helyben lteznnek. me az NFS nhny legjelentsebb elnye:

A helyi munkallomsok kevesebb trterletet hasznlnak, mivel a kzs adatokat csak egyetlen szmtgpen troljuk s megosztjuk mindenki kztt. A felhasznlknak nem kell a hlzat minden egyes gpn kln felhasznli knyvtrral rendelkeznik. Ezek ugyanis az NFS segtsgvel akr egy szerveren is bellthatak s elrhetv tehetek a hlzaton keresztl. A klnbz httrtrak, mint pldul a oppy lemezek, CD-meghajtk s Zip meghajtk a hlzaton tbb szmtgp kztt megoszthatak. Ezzel cskkenteni tudjuk a hlzatunkban szksges cserlhet lemezes eszkzk szmt.

29.3.1. Ahogy az NFS mkdik


Az NFS legalbb kt f rszbl rakhat ssze: egy szerverbl s egy vagy tbb kliensbl. A kliensek a szerver ltal megosztott adatokhoz kpesek tvolrl hozzfrni. A megfelel mkdshez mindssze csak nhny programot kell belltani s futtatni. A szervernek a kvetkez dmonokat kell mkdtetnie: Dmon nfsd mountd rpcbind Lers Az NFS dmon, amely kiszolglja az NFS kliensektl rkez krseket. Az NFS csatlakoztat dmonja, amely vgrehajtja az nfsd(8) ltal tkldtt krseket. Ez a dmon lehetv teszi az NFS kliensek szmra, hogy fel tudjk derteni az NFS szerver ltal hasznlt portot.

A kliensen is futnia kell egy dmonnak, amelynek a neve nfsiod. Az nfsiod dmon az NFS szerver fell rkez krseket szolglja ki. A hasznlata teljesen opcionlis, csupn a teljestmnyt hvatott javtani, de a normlis s helyes mkdshez nincs r szksgnk. Az nfsiod(8) man oldaln errl tbbet is megtudhatunk.

29.3.2. Az NFS belltsa


Az NFS belltsa viszonylag egyrtelmen adja magt. A mkdshez szksges programok automatikus elindtsa csupn nhny apr mdostst ignyel az /etc/rc.conf llomnyban. Az NFS szerveren gondoskodjunk rla, hogy az albbi belltsok szerepeljenek az /etc/rc.conf llomnyban:
rpcbind_enable="YES" nfs_server_enable="YES" mountd_flags="-r"

763

Fejezet 29. Hlzati szerverek A mountd magtl el fog indulni, ha az NFS szervert engedlyezzk. A kliensen a kvetkez belltst kell felvennnk az /etc/rc.conf llomnyba:
nfs_client_enable="YES"

Az /etc/exports llomny adja meg, hogy az NFS milyen llomnyrendszereket exportljon (vagy mskppen szlva osszon meg). Az /etc/exports llomnyban teht a megosztani kvnt llomnyrendszereket kell szerepeltetnnk, s azt, hogy melyik szmtgpekkel tudjuk ezeket elrni. A gpek megnevezse mellett a hozzfrsre tovbbi megszortsokat rhatunk fel. Ezek rszletes lerst az exports(5) man oldalon talljuk meg. Lssunk nhny pldt az /etc/exports llomnyban megjelen bejegyzsekre: A most kvetkez pldkban az llomnyrendszerek exportlsnak nomsgait igyeksznk rzkeltetni, noha a konkrt belltsok gyakran a rendszernktl s a hlzati kongurcitl fggenek. Pldul, ha a /cdrom knytrat akarjuk hrom gp szmra megosztani, akik a szerverrel megegyez tartomnyban tallhatak (ezrt nem is kell megadnunk a tartomnyt) vagy mert egyszeren megtallhatk az /etc/hosts llomnyunkban. Az -ro bellts az exportlt llomnyrendszereket rsvdett teszi. Ezzel a belltssal a tvoli rendszerek nem lesznek kpesek mdostani az exportlt llomnyrendszer tartalmt.
/cdrom -ro gp1 gp2 gp3

A kvetkez sorban a /home knyvtrat hrom gp szmra osztjuk meg, melyeket IP-cmekkel adtunk meg. Ez olyan helyi hlzat esetn hasznos, ahol nem lltottunk be nvfeloldst. Esetleg a bels hlzati neveket az /etc/hosts llomnyban is trolhatjuk. Ezzel utbbival kapcsolatban a hosts(5) man oldalt rdemes fellapoznunk. Az -alldirs bellts lehetv teszi, hogy az alknyvtrak is csatlakozsi pontok lehessenek. Ms szval, nem fogja csatlakoztatni az alknyvtrakat, de megengedi a kliensek szmra, hogy csak azokat a knyvtrakat csatlakoztassk, amelyeket kell vagy amelyekre szksgnk van.
/home -alldirs 10.0.0.2 10.0.0.3 10.0.0.4

A kvetkez sorban az /a knyvtrat gy exportljuk, hogy az llomnyrendszerhez kt klnbz tartomnybl is hozz lehessen frni. A -maproot=root bellts hatsra a tvoli rendszer root felhasznlja az exportlt llomnyrendszeren szintn root felhasznlknt fogja rni az adatokat. Amennyiben a -maproot=root belltst nem adjuk meg, akkor a tvoli rendszeren hiba root az adott felhasznl, az exportlt llomnyrendszeren nem lesz kpes egyetlen llomnyt sem mdostani.
/a -maproot=root gep.minta.com doboz.haz.org

A kliensek is csak a megfelel engedlyek birtokban kpesek elrni a megosztott llomnyrendszereket. Ezrt a klienst ne felejtsk el felvenni a szerver /etc/exports llomnyba. Az /etc/exports llomnyban az egyes sorok az egyes llomnyrendszerekre s az egyes gpekre vonatkoznak. A tvoli gpek llomnyrendszerenknt csak egyszer adhatak meg, s csak egy alaprtelmezett bejegyzsk lehet. Pldul tegyk fel, hogy a /usr egy nll llomnyrendszer. Ennek megfelelen az albbi bejegyzsek az /etc/exports llomnyban rvnytelenek:
# Nem hasznlhat, ha a /usr egy llomnyrendszer: /usr/src kliens /usr/ports kliens

Egy llomnyrendszerhez, vagyis itt a /usr partcihoz, kt export sort is megadtunk ugyanahhoz a kliens nev gphez. Helyesen gy kell megoldani az ilyen helyzeteket:

764

Fejezet 29. Hlzati szerverek


/usr/src /usr/ports kliens

Az adott gphez tartoz egy llomnyrendszerre vonatkoz exportoknak mindig egy sorban kell szerepelnik. A kliens nlkl felrt sorok egyetlen gphez tartoznak fognak szmtani. Ezzel az llomnyrendszerek megosztst tudjuk szablyozni, de legtbbek szmra nem jelent gondot. Most egy rvnyes exportlista kvetkezik, ahol a /usr s az /exports mind helyi llomnyrendszerek:
# Osszuk meg az src s ports knyvtrakat a kliens01 s kliens02 rszre, de csak a # kliens01 frhessen hozz rendszeradminisztrtori jogokkal: /usr/src /usr/ports -maproot=root kliens01 /usr/src /usr/ports kliens02 # A kliensek az /exports knyvtrban teljes joggal rendelkeznek s azon bell # brmit tudnak csatlakoztatni. Rajtuk kvl mindenki csak rsvdetten kpes # elrni az /exports/obj knyvtrat: /exports -alldirs -maproot=root kliens01 kliens02 /exports/obj -ro

A mountd dmonnal az /etc/exports llomnyt minden egyes mdostsa utn jra be kell olvastatni, mivel a vltoztatsaink csak gy fognak rvnyeslni. Ezt megcsinlhatjuk gy is, hogy kldnk egy HUP (hangup, avagy felfggeszts) jelzst a mr fut dmonnak:
# kill -HUP cat /var/run/mountd.pid

vagy meghvjuk a mountd rc(8) szkriptet a megfelel paramterrel:


# /etc/rc.d/mountd onereload

Az 11.7 Szakaszban tudhatunk meg rszleteket az rc szkriptek hasznlatrl. Ezek utn akr a FreeBSD jraindtsval is aktivlhatjuk a megosztsokat, habr ez nem felttlenl szksges. Ha root felhasznlnknt kiadjuk a kvetkez parancsokat, akkor azzal minden szksges programot elindtunk. Az NFS szerveren teht:
# rpcbind # nfsd -u -t -n 4 # mountd -r

Az NFS kliensen pedig:


# nfsiod -n 4

Ezzel most mr minden kszen ll a tvoli llomnyrendszer csatlakoztatsra. A pldkban a szerver neve szerver lesz, valamint a kliens neve kliens. Ha csak ideiglenesen akarunk csatlakoztatni egy llomnyrendszert vagy egyszeren csak ki akarjuk prblni a belltsainkat, a kliensen root felhasznlknt az albbi parancsot hajtsuk vgre:
# mount szerver:/home /mnt

Ezzel a szerveren tallhat /home knyvtrat fogjuk a kliens /mnt knyvtrba csatlakoztatni. Ha mindent jl belltottunk, akkor a kliensen most mr be tudunk lpni az /mnt knyvtrba s lthatjuk a szerveren tallhat llomnyokat.

765

Fejezet 29. Hlzati szerverek Ha a szmtgp indtsval automatikusan akarunk hlzati llomnyrendszereket csatlakoztatni, akkor vegyk fel ezeket az /etc/fstab llomnyba. Erre me egy plda:
szerver:/home /mnt nfs rw 0 0

Az fstab(5) man megtallhatjuk az sszes tbbi belltst.

29.3.3. Zrolsok
Bizonyos alkalmazsok (pldul a mutt) csak akkor mkdnek megfelelen, ha az llomnyokat a megfelel mdon zroljk. Az NFS esetben az rpc.lockd hasznlhat az ilyen zrolsok megvalstsra. Az engedlyezshez mind a szerveren s a kliensen vegyk fel a kvetkez sort az /etc/rc.conf llomnyba (itt mr felttelezzk, hogy az NFS szervert s klienst korbban belltottuk):
rpc_lockd_enable="YES" rpc_statd_enable="YES"

A kvetkez mdon indthatjuk el:


# /etc/rc.d/lockd start # /etc/rc.d/statd start

Ha nincs szksgnk valdi zrolsra az NFS kliensek s az NFS szerver kztt, akkor megcsinlhatjuk azt is, hogy az NFS kliensen a mount_nfs(8) programnak az -L paramter tadsval csak helyileg vgznk zrolst. Ennek tovbbi rszleterl a mount_nfs(8) man oldalon kaphatunk felvilgostst.

29.3.4. Gyakori felhasznlsi mdok


Az NFS megoldst a gyakorlatban rengeteg esetben alkalmazzk. Ezek kzl most felsoroljuk a legelterjedtebbeket:

Tbb gp kztt megosztunk egy teleptlemezt vagy ms telepteszkzt. Ez gy sokkal olcsbb s gyakorta knyelmes megolds abban az esetben, ha egyszerre tbb gpre akarjuk ugyanazt a szoftvert telepteni. Nagyobb hlzatokon sokkal knyelmesebb lehet egy kzponti NFS szerver hasznlata, ahol a felhasznlk knyvtrait troljuk. Ezek a felhasznli knyvtrak aztn megoszthatak a hlzaton keresztl, gy a felhasznlk mindig ugyanazt a knyvrat kapjk fggetlenl attl, hogy milyen munkallomsrl is jelentkeztek be. Tbb gppel is kpes gy osztozni az /usr/ports/distfiles knyvtron. Ezen a mdon sokkal gyorsabban tudunk portokat telepteni a gpekre, mivel nem kell kln mindegyikre letlteni az ehhez szksges forrsokat.

29.3.5. Automatikus csatlakoztats az amd hasznlatval


Ksztette: Wylie Stilwell. jrarta: Chern Lee. Az amd(8) (automatikus csatlakoztat dmon, az automatic mounter daemon) nmkden csatlakoztatja a tvoli llomnyrendszereket, amikor azokon bell valamelyik llomnyhoz vagy knyvtrhoz prblunk hozzfrni. Emellett az amd az egy ideje mr inaktv llomnyrendszereket is automatikusan levlasztja. Az amd hasznlata egy

766

Fejezet 29. Hlzati szerverek remek alternatvt knl az ltalban az /etc/fstab llomnyban megjelen llandan csatlakoztatott llomnyrendszerekkel szemben. Az amd gy mkdik, hogy kapcsoldik egy NFS szerver /host s /net knyvtraihoz. Amikor egy llomnyt akarunk elrni ezeken a knyvtrakon bell, az amd kikeresi a megfelel tvoli csatlakoztatst s magtl csatlakoztatja. A /net segtsgvel egy IP-cmrl tudunk exportlt llomnyrendszereket csatlakoztatni, mikzben a /host a tvoli gp hlzati neve esetben hasznlatos. Ha teht a /host/izemize/usr knyvtrban akarunk elrni egy llomnyt, akkor az amd dmonnak ahhoz elszr az izemize nev gprl exportlt /usr knyvtrat kell csatlakoztatnia. Plda 29-2. Egy exportlt llomnyrendszer csatlakoztatsa az amd hasznlatval Egy tvoli szmtgp ltal rendelkezsre bocstott megosztsokat a showmount paranccsal tudjuk lekrdezni. Pldul az izemize gpen elrhet exportlt llomnyrendszereket gy lthatjuk:
% showmount -e izemize

Exports list on izemize: /usr /a


% cd /host/izemize/usr

10.10.10.0 10.10.10.0

Ahogy a pldban ltjuk is, a showmount parancs a /usr knyvtrat mutatja megosztsknt. Amikor teht belpnk a /host/izemize/usr knyvtrba, akkor amd magtl megprblja feloldani az izemize hlzati nevet s csatlakoztatni az elrni kvnt exportlt llomnyrendszert. Az amd az indt szkripteken keresztl az /etc/rc.conf albbi belltsval engedlyezhet:
amd_enable="YES"

Emellett mg az amd_flags hasznlatval tovbbi paramterek is tadhat az amd fel. Alaprtelmezs szerint az amd_flags tartalmaz az albbi:
amd_flags="-a /.amd_mnt -l syslog /host /etc/amd.map /net /etc/amd.map"

Az /etc/amd.map llomny adja meg az exportlt llomnyrendszerek alaprtelmezett belltsait. Az /etc/amd.conf llomnyban az amd tovbbi lehetsgeit kongurlhatjuk.. Ha tbbet is szeretnnk tudni a tmrl, akkor az amd(8) s az amd.conf(5) man oldalakat javasolt elolvasnunk.

29.3.6. Problmk ms rendszerek hasznlatakor


Ksztette: John Lind. Nmely PC-s ISA buszos Ethernet krtykra olyan korltozsok rvnyesek, melyek komoly hlzati problmk keletkezshez vezethetnek, klnsen az NFS esetben. Ez a nehzsg nem FreeBSD-fgg, de a FreeBSD rendszereket is rinti. Ez gond ltalban majdnem mindig akkor merl fel, amikor egy (FreeBSD-s) PC egy hlzatba kerl tbbek kzt a Silicon Graphic s a Sun Microsystems ltal gyrtott nagyteljestmny munkallomsokkal. Az NFS csatlakoztatsa s bizonyos mveletek mg hibtlanul vgrehajtdnak, azonban hirtelen a szerver ltszlag nem vlaszol tbbet a kliens fel gy, hogy a tbbi rendszertl folyamatosan dolgozza felfele a krseket. Ez a kliens rendszeren tapasztalhat csak, amikor a kliens FreeBSD vagy egy munkalloms. Sok rendszeren egyszeren

767

Fejezet 29. Hlzati szerverek rendesen le sem lehet lltani a klienst, ha a problma egyszer mr felttte a fejt. Egyedli megolds gyakran csak a kliens jraindtsa marad, mivel az NFS-ben kialakult helyzetet mshogy nem lehet megoldani. Noha a helyes megolds az lenne, ha beszereznnk egy nagyobb teljestmny s kapacits krtyt a FreeBSD rendszer szmra, azonban egy jval egyszerbb kerlt is tallhat a kielgt mkds elrshez. Ha a FreeBSD rendszer kpviseli a szervert, akkor a kliensnl adjuk meg a -w=1024 belltst is a csatlakoztatsnl. Ha a FreeBSD rendszer a kliens szerept tlti be, akkor az NFS llomnyrendszert az -r=1024 belltssal csatlakoztassuk rla. Ezek a belltsok az fstab llomny negyedik mezjben is megadhatak az automatikus csatlakoztatshoz, vagy manulis esetben a mount(8) parancsnak a -o paramterrel. Hozz kell azonban tennnk, hogy ltezik egy msik problma, amit gyakran ezzel tvesztenek ssze, amikor az NFS szerverek s kliensek nem ugyanabban a hlzatban tallhatak. Ilyen esetekben mindenkppen gyzdjnk meg rla, hogy az tvlasztk rendesen tovbbkldik a mkdshez szksges UDP informcikat, klnben nem sokat tudunk tenni a megolds rdekben. A most kvetkez pldkban a gyorsvonat lesz a nagyteljestmny munkalloms (fellet) neve, illetve a freebsd pedig a gyengbb teljestmny Ethernet krtyval rendelkez FreeBSD rendszer (fellet) neve. A szerveren az /osztott nev knyvtrat fogjuk NFS llomnyrendszerknt exportlni (lsd exports(5)), amelyet majd a /projekt knyvtrba fogunk csatlakoztatni a kliensen. Minden esetben rdemes lehet mg megadnunk a hard vagy soft, illetve bg opcikat is. Ebben a pldban a FreeBSD rendszer (freebsd) lesz a kliens, s az /etc/fstab llomnyban gy szerepel az exportlt llomnyrendszer:
gyorsvonat:/osztott /projekt nfs rw,-r=1024 0 0

s gy tudjuk manulisan csatlakoztatni:


# mount -t nfs -o -r=1024 gyorsvonat:/osztott /projekt

Itt a FreeBSD rendszer lesz a szerver, s a gyorsvonat /etc/fstab llomnya gy fog kinzni:
freebsd:/osztott /projekt nfs rw,-w=1024 0 0

Manulisan gy csatlakoztathatjuk az llomnyrendszert:


# mount -t nfs -o -w=1024 freebsd:/osztott /projekt

Szinte az sszes 16 bites Ethernet krtya kpes mkdni a fenti rsi vagy olvassi korltozsok nlkl is. A kvncsibb olvask szmra elruljuk, hogy pontosan mirt is kvetkezik be ez a hiba, ami egyben arra is magyarzatot ad, hogy mirt nem tudjuk helyrehozni. Az NFS ltalban 8 kilobyte-os blokkokkal dolgozik (habr kisebb mret darabkkat is tud kszteni). Mivel az Ethernet ltal kezelt legnagyobb mret nagyjbl 1500 byte, ezrt az NFS blokkokat tbb Ethernet csomagra kell osztani mg olyankor is, ha ez a program felsbb rtegeiben osztatlan egysgknt ltszik ezt aztn fogadni kell, sszerakni s nyugtzni mint egysget. A nagyteljestmny munkallomsok a szabvny ltal mg ppen megengedett szorossggal kpesek ontani magukbl az egy egysghez tartoz csomagokat, kzvetlenl egyms utn. A kisebb, gyengbb teljestmny krtyk esetben azonban az egymshoz tartoz, ksbb rkez csomagok rfutnak a korbban megkapott csomagokra mg pontosan azeltt, hogy elrnk a gpet, gy az egysgek nem llthatak ssze vagy nem nyugtzhatak. Ennek eredmnyekppen a munkalloms egy adott id mlva megint prblkozik, de ismt az egsz 8 kilobyte-os blokkot kldi el, ezrt ez a folyamat a vgtelensgig ismtldik. Ha a kldend egysgek mrett az Ethernet ltal kezelt csomagok maximlis mrete al cskkentjk, akkor biztosak lehetnk benne, hogy a teljes Ethernet csomag egyben megrkezik s nyugtzdik, gy elkerljk a holtpontot.

768

Fejezet 29. Hlzati szerverek A nagyteljestmny munkallomsok termszetesen tovbbra is kldhetnek a PC-s rendszerek fel tlfut csomagokat, de egy jobb krtyval az ilyen tlfutsok nem rintik az NFS ltal hasznlt egysgeket. Amikor egy ilyen tlfuts bekvetkezik, az rintett egysget egyszeren jra elkldik, amelyet a rkvetkez alkalommal nagy valsznsggel mr tudunk rendesen fogadni, sszerakni s nyugtzni.

29.4. Hlzati informcis rendszer (NIS/YP)


rta: Bill Swingle. rta: Eric Ogren s Udo Erdelhoff.

29.4.1. Mi ez?
A hlzati informcis szolgltatst (Network Information Service, avagy NIS) a Sun Microsystems fejlesztette ki a UNIX (eredetileg SunOS) rendszerek kzpontostott karbantartshoz. Mostanra mr lnyegben ipari szabvnny ntte ki magt, hiszen az sszes nagyobb UNIX-szer rendszer (a Solaris, HP-UX, AIX, Linux, NetBSD, OpenBSD, FreeBSD stb.) tmogatja a NIS hasznlatt. A NIS rgebben srga oldalak (Yellow Pages) nven volt ismert, de a klnbz jogi problmk miatt ksbb ezt a Sun megvltoztatta. A rgi elnevezst (s a yp rvidtst) azonban mg napjainkban is lehet nhol ltni. Ez egy RPC alapjn mkd, kliens/szerver felpts rendszer, amely az egy NIS tartomny bell lev szmtgpek szmra teszi lehetv ugyanazon kongurcis llomnyok hasznlatt. Segtsgvel a rendszergazda a NIS klienseket a lehet legkevesebb adat hozzadsval, eltvoltsval vagy mdostsval kpes egyetlen helyrl belltani. Hasonl a Windows NT tartomnyaihoz, s habr a bels implementcit tekintve mr akadnak kztk jelents eltrsek is, az alapvet funkcik szintjn mgis sszevethetek.

29.4.2. A tmhoz tartoz fogalmak s programok


A NIS teleptse szmos fogalom s fontos felhasznli program kerl el FreeBSD-n, akr egy NIS szervert akarunk belltani, akr csak egy NIS klienst: Fogalom NIS tartomnynv Lers A NIS kzponti szerverei s az sszes hozzjuk tartoz kliens (belertve az alrendelt szervereket) rendelkezik egy NIS tartomnynvvel. Hasonl a Windows NT ltal hasznlt tartomnynevekhez, de a NIS tartomnynevei semmilyen kapcsolatban nem llnak a nvfeloldssal. Az RPC (Remote Procedure Call, a NIS ltal hasznlt egyik hlzati protokoll) engedlyezshez lesz r szksgnk. Ha az rpcbind nem fut, akkor sem NIS szervert, sem pedig NIS klienst nem tudunk mkdtetni. A NIS klienst kti ssze a hozztartoz NIS szerverrel. A NIS tartomnynevet a rendszertl veszi, s az RPC hasznlatval csatlakozik a szerverhez. Az ypbind a NIS krnyezet kliens s szerver kzti kommunikcijnak magjt alkotja. Ha az ypbind lell a kliens gpn, akkor nem tudjuk elrni a NIS szervert.

rpcbind

ypbind

769

Fejezet 29. Hlzati szerverek Fogalom ypserv Lers Csak a NIS szervereken szabad futnia, mivel ez maga a NIS szerver programja. Ha az ypserv(8) lell, akkor a szerver nem lesz kpes tovbb kiszolglni a NIS krseket (szerencsre az alrendelt szerverek kpesek tvenni ezeket). A NIS bizonyos vltozatai (de nem az, amelyik a FreeBSD-ben is megjelenik) nem prblnak meg ms szerverekhez csatlakozni, ha bedglik az aktulis hasznlt szerver. Ezen gyakran egyedl csak a szervert kpvisel program (vagy akr az egsz szerver) jraindtsa segthet, illetve az ypbind jraindtsa a kliensen. Ez egy olyan program, amelyet csak a NIS kzponti szerverein kell csak futtatni. Ez a dmon a NIS kliensek szmra a NIS jelszavaik megvltoztatst teszi lehetv. Ha ez a dmon nem fut, akkor a felhasznlk csak gy tudjk megvltoztatni a jelszavukat, ha bejelentkeznek a kzponti NIS szerverre.

rpc.yppasswdd

29.4.3. Hogyan mkdik?


A NIS krnyezetekben hromfle gp ltezik: a kzponti szerverek, az alrendelt szerverek s a kliensek. A szerverek kpezik a gpek kongurcis informciinak kzponti trhelyt. A kzponti szerverek troljk ezen informcik hiteles msolatt, mg ezt az alrendelt szerverek redundnsan tkrzik. A kliensek a szerverekre tmaszkodnak ezen informcik beszerzshez. Sok llomny tartalma megoszthat ezen a mdon. Pldul a master.passwd, a group s hosts llomnyokat meg szoktk osztani NFS-en. Amikor a kliensen fut valamelyik programnak olyan informcira lenne szksge, amely ltalban ezekben az llomnyokban nla megtallhat lenne, akkor helyette a NIS szerverhez fordul.

29.4.3.1. A gpek tpusai

A kzponti NIS szerver. Ez a szerver, amely leginkbb a Windows NT elsdleges tartomnyvezrljhez hasonlthat tartja karban az sszes, NIS kliensek ltal hasznlt llomnyt. A passwd, group, s sszes tbbi ehhez hasonl llomny ezen a kzponti szerveren tallhat meg.
Megjegyzs: Egy gp akr tbb NIS tartomnyban is lehet kzponti szerver. Ezzel a lehetsggel viszont itt most nem foglalkozunk, mivel most csak egy viszonylag kis mret NIS krnyezetet feltteleznk.

Az alrendelt NIS szerverek. A Windows NT tartalk tartomnyvezrlihez hasonltanak, s az alrendelt NIS szerverek feladata a kzponti NIS szerveren trolt adatok msolatainak karbantartsa. Az alrendelt NIS szerverek a redundancia megvalstsban segtenek, aminek leginkbb a fontosabb krnyezetekben van szerepe. Emellett a kzponti szerver terhelsnek kiegyenltst is elvgzik. A NIS kliensek elsknt mindig ahhoz a NIS szerverhez csatlakoznak, amelytl elszr vlaszt kapnak, legyen akr az egy alrendelt szerver. A NIS kliensek. A NIS kliensek, hasonlan a Windows NT munkallomsokhoz, a NIS szerveren (amely a Windows NT munkallomsok esetben a tartomnyvezrl) keresztl jelentkeznek be.

770

Fejezet 29. Hlzati szerverek

29.4.4. A NIS/YP hasznlata


Ebben a szakaszban egy plda NIS krnyezetet lltunk be.

29.4.4.1. Tervezs
Tegyk fel, hogy egy aprcska egyetemi labor rendszergazdi vagyunk. A labor, mely 15 FreeBSD-s gpet tudhat magnak, jelen pillanatban mg semmilyen kzpontostott adminisztrci nem ltezik. Mindegyik gp sajt /etc/passwd s /etc/master.passwd llomnnyal rendelkezik. Ezeket az llomnyokat sajt kezleg kell szinkronban tartani. Teht ha most felvesznk egy felhasznlt a laborhoz, akkor az adduser parancsot mind a 15 gpen ki kell adni. Egyrtelm, hogy ez gy nem maradhat, ezrt gy dntttk, hogy a laborban NIS-t fogunk hasznlni, s kt gpet kineveznk szervernek. Az imntieknek megfelelen a labor most valahogy gy nz ki: A gp neve
ellington coltrane basie bird cli[1-11]

IP-cm
10.0.0.2 10.0.0.3 10.0.0.4 10.0.0.5 10.0.0.[6-17]

A gp szerepe kzponti NIS alrendelt NIS tanszki munkalloms kliensgp a tbbi kliensgp

Ha mg nincs tapasztalatunk a NIS rendszerek sszelltsban, akkor elszr j tlet lehet vgiggondolni, miknt is akarjuk kialaktani. A hlzatunk mrettl fggetlenl is akadnak olyan dntsek, amelyeket mindenkppen meg kell hoznunk. 29.4.4.1.1. A NIS tartomnynv megvlasztsa Ez nem az a tartomnynv, amit megszokhattunk. Ennek a pontos neve NIS tartomnynv. Amikor a kliensek krnek valamilyen informcit, akkor megadjk annak a NIS tartomnynak a nevt is, amelynek rszei. gy tud egy hlzaton tbb szerver arrl dnteni, hogy melyikk melyik krst vlaszolja meg. A NIS ltal hasznlt tartomnynvre teht inkbb gy rdemes gondolni, mint egy valamilyen mdon sszetartoz gpek kzs nevre. Elfordul, hogy egyes szervezetek az interneten is nyilvntartott tartomnynevket vlasztjk NIS tartomnynvnek. Ez alapveten nem ajnlott, mivel a hlzati problmk feldertse kzben flrertseket szlhet. A NIS tartomnynvnek a hlzatunkon bell egyedinek kell lennie, s lehetleg minl jobban rja le az ltala csoportba sorolt gpeket. Pldul a Kis Kft. zleti osztlyt tegyk a kis-uzlet NIS tartomnyba. Ebben a pldban most a proba-tartomany nevet vlasztottuk. A legtbb opercis rendszer azonban (kztk a SunOS) a NIS tartomnynevet hasznlja internetes tartomnynvknt is. Ha a hlzatunkon egy vagy tbb ilyen gp is tallhat, akkor a NIS tartomny nevnek az internetes tartomnynevet kell megadnunk.

29.4.4.1.2. A szerverek zikai elvrsai Nem rt nhny dolgot fejben tartani, amikor a NIS szervernek hasznlt gpet kivlasztjuk. Az egyik ilyen szerencstlen dolog az a szint fggsg, ami a NIS kliensek fell meggyelhet a szerverek fel. Ha egy kliens nem tudja a NIS tartomnyon bell felvenni a kapcsolatot valamelyik szerverrel, akkor az a gp knnyen megbzhatatlann vlhat. Felhasznli- s csoportinformcik nlkl a legtbb rendszer egy idre le is merevedik.

771

Fejezet 29. Hlzati szerverek Ennek gyelembevtelvel teht olyan gpet kell szervernek vlasztanunk, amelyet nem kell gyakran jraindtani, s nem vgznk rajta semmilyen komoly munkt. A clnak legjobban megfelel NIS szerverek valjban olyan gpek, amelyek egyedli feladata csak a NIS krsek kiszolglsa. Ha a hlzatunk nem annyira leterhelt, akkor mg a NIS szerver mellett ms programokat is futtathatunk, de ne feledjk, hogy ha a NIS szolgltats megsznik, akkor az az sszes NIS kliensen reztetni fogja kedveztlen hatst.

29.4.4.2. A NIS szerverek


A NIS rendszerben trolt sszes informci ltalnos pldnya egyetlen gpen tallhat meg, amelyet a kzponti NIS szervernek hvunk. Az informcik trolsra sznt adatbzis pedig NIS tblzatoknak (NIS map) nevezzk. FreeBSD alatt ezek a tblzatok a /var/yp/tartomnynv knyvtrban tallhatak, ahol a tartomnynv a kiszolglt NIS tartomnyt nevezi meg. Egyetlen NIS szerver egyszerre akr tbb tartomnyt is kiszolglhat, gy itt tbb knyvtr is tallhat, minden tmogatott tartomnyhoz egy. Minden tartomny sajt, egymstl fggetlen tblzatokkal rendelkezik. A kzponti s alrendelt NIS szerverek az ypserv dmon segtsgvel dolgozzk fel a NIS krseket. Az ypserv felels a NIS kliensektl befut krsek fogadsrt, s a krt tartomny valamint tblzat nevbl meghatrozza az adatbzisban trolt llomnyt, majd innen visszakldi a hozztartoz adatot a kliensnek. 29.4.4.2.1. A kzponti NIS szerver belltsa A kzponti NIS szerver belltsa viszonylag magtl rtetd, de a nehzsgt az ignyeink szabjk meg. A FreeBSD alapbl tmogatja a NIS hasznlatt. Ezrt mindssze annyit kell tennnk, hogy a kvetkez sorokat betesszk az /etc/rc.conf llomnyba, s a FreeBSD gondoskodik a tbbirl. 1.
nisdomainname="proba-tartomany"

Ez a sor adja meg a hlzati belltsok (vagy pldul az jraindts) sorn a NIS tartomny nevt, amely a korbbiak szerint itt most a proba-tartomany. 2.
nis_server_enable="YES"

Ezzel utastjuk a FreeBSD-t, hogy a hlzati alkalmazsok kvetkez indtsakor a NIS szervert is aktivlja. 3.
nis_yppasswdd_enable="YES" Ezzel engedlyezzk az rpc.yppasswdd dmont, amely a korbban emltettek szerint lehetv teszi a

felhasznlk szmra, hogy a kzvetlenl a kliensekrl vltoztassk meg a NIS jelszavukat.


Megjegyzs: A konkrt NIS belltsainktl fggen tovbbi bejegyzsek felvtelre is szksgnk lehet. Erre ksbb mg az olyan NIS szervereknl, amelyek egyben NIS kliensek, vissza fogunk trni.

Miutn ezeket belltottuk, rendszeradminisztrtorknt adjuk ki az /etc/netstart parancsot. Az /etc/rc.conf llomnyban szerepl adatok alapjn mindent bellt magtl. Mg mieltt inicializlnnk a NIS tblzatokat, indtsuk el manulisan az ypserv dmont:

772

Fejezet 29. Hlzati szerverek


# /etc/rc.d/ypserv start

29.4.4.2.2. A NIS tblzatok inicializlsa A NIS tblzatok lnyegben a /var/yp knyvtrban trolt adatbzisok. A kzponti NIS szerver /etc knyvtrban tallhat kongurcis llomnyokbl lltdnak el, egyetlen kivtellel: ez az /etc/master.passwd llomny. Ennek megvan a maga oka, hiszen nem akarjuk a root s az sszes tbbi fontosabb felhasznlhoz tartoz jelszt az egsz NIS tartomnnyal megosztani. Ennek megfelelen a NIS tblzatok inicializlshoz a kvetkezt kell tennnk:
# cp /etc/master.passwd /var/yp/master.passwd # cd /var/yp # vi master.passwd

El kell tvoltanunk az sszes rendszerszint (bin, tty, kmem, games, stb), s minden olyan egyb hozzfrst, amelyeket nem akarjuk kzvetteni a NIS kliensek fel (pldul a root s minden ms nulls, vagyis rendszeradminisztrtori azonostval elltott hozzfrst).
Megjegyzs: Gondoskodjunk rla, hogy az /var/yp/master.passwd llomny sem a csoport, sem pedig brki ms szmra nem olvashat (600-as engedly)! Ennek belltshoz hasznljuk az chmod parancsot, ha szksges.

Ha vgeztnk, akkor mr tnyleg itt az ideje inicializlni NIS tblzatainkat. A FreeBSD erre egy ypinit nev szkriptet ajnl fel (errl a sajt man oldaln tudhatunk meg tbbet). Ez a szkript egybknt a legtbb UNIX tpus opercis rendszeren megtallhat, de nem az sszesen. A Digital UNIX/Compaq Tru64 UNIX rendszereken ennek a neve ypsetup. Mivel most a kzponti NIS szerver tblzatait hozzuk ltre, azrt az ypinit szkriptnek t kell adnunk a -m opcit is. A NIS tblzatok ellltsnl felttelezzk, hogy a fentebb ismertetett lpseket mr megtettk, majd kiadjuk ezt a parancsot:
ellington# ypinit -m proba-tartomany Server Type: MASTER Domain: proba-tartomany Creating an YP server will require that you answer a few questions. Questions will all be asked at the beginning of the procedure. Do you want this procedure to quit on non-fatal errors? [y/n: n] n Ok, please remember to go back and redo manually whatever fails. If you dont, something might not work. At this point, we have to construct a list of this domains YP servers. rod.darktech.org is already known as master server. Please continue to add any slave servers, one per line. When you are done with the list, type a <control D>. master server : ellington next host to add: coltrane next host to add: ^D The current list of NIS servers looks like this: ellington coltrane Is this correct? [y/n: y] y [ .. a tblzatok generlsa .. ]

773

Fejezet 29. Hlzati szerverek

NIS Map update completed. ellington has been setup as an YP master server without any errors.

Az zenetek fordtsa:
A szerver tpusa: KZPONTI, tartomny: proba-tartomany Az YP szerver ltrehozshoz meg kell vlaszolni nhny krdst az eljrs megkezdse eltt. Szeretnnk, ha az eljrs megszakadna a nem vgzetes hibk esetn is? [i/n: n] n Rendben, akkor ne felejtsk el manulisan kijavtani a hibt, ha valamivel gond lenne. Ha nem tesszk meg, akkor elfordulhat, hogy valami nem fog rendesen mkdni. Most ssze kell lltanunk egy listt a tartomny YP szervereirl. Jelenleg a rod.darktech.org a kzponti szerver. Krjnk, adjon meg tovbbi alrendelt szervereket, soronknt egyet. Amikor ezt befejeztk, a <control D> lenyomsval tudunk kilpni. kzponti szerver : ellington kvetkez gp : coltrane kvetkez gp : ^D A NIS szerverek listja jelenleg a kvetkez: ellington coltrane Ez megfelel? [i/n: i] i [ .. a tblzatok generlsa .. ] A NIS tblzatok sikeressen frissltek. Az elligon szervert minden hiba nlkl sikerlt kzponti szerverknt belltani.

Az ypinit a /var/yp/Makefile.dist llomnybl ltrehozza a /var/yp/Makefile llomnyt. Amennyiben ez ltrejtt, az llomny felttelezi, hogy csak FreeBSD-s gpek rszvtelvel akarunk kialaktani egy egyszerveres NIS krnyezetet. Mivel a proba-tartomany mg egy alrendelt szervert is tartalmaz, ezrt t kell rnunk a /var/yp/Makefile llomnyt:
ellington# vi /var/yp/Makefile

Ezt a sort kell megjegyzsbe tennnk:


NOPUSH = "True"

(ha mg nem lenne gy).

29.4.4.2.3. Az alrendelt NIS szerverek belltsa Az alrendelt NIS szerverek belltsa mg a kzpontinl is egyszerbb. Jelentkezznk be az alrendelt szerverre s az eddigieknek megfelelen rjuk t az /etc/rc.conf llomnyt. Az egyetlen klnbsg ezttal csupn annyi lesz, hogy az ypinit lefuttatsakor a -s opcit kell megadnunk (mint slave, vagyis alrendelt). A -s opci hasznlathoz a kzponti NIS szerver nevt is t kell adnunk, ezrt a konkrt parancs valahogy gy fog kinzni:

774

Fejezet 29. Hlzati szerverek


coltrane# ypinit -s ellington proba-tartomany Server Type: SLAVE Domain: test-domain Master: ellington Creating an YP server will require that you answer a few questions. Questions will all be asked at the beginning of the procedure. Do you want this procedure to quit on non-fatal errors? [y/n: n]
n

Ok, please remember to go back and redo manually whatever fails. If you dont, something might not work. There will be no further questions. The remainder of the procedure should take a few minutes, to copy the databases from ellington. Transferring netgroup... ypxfr: Exiting: Map successfully transferred Transferring netgroup.byuser... ypxfr: Exiting: Map successfully transferred Transferring netgroup.byhost... ypxfr: Exiting: Map successfully transferred Transferring master.passwd.byuid... ypxfr: Exiting: Map successfully transferred Transferring passwd.byuid... ypxfr: Exiting: Map successfully transferred Transferring passwd.byname... ypxfr: Exiting: Map successfully transferred Transferring group.bygid... ypxfr: Exiting: Map successfully transferred Transferring group.byname... ypxfr: Exiting: Map successfully transferred Transferring services.byname... ypxfr: Exiting: Map successfully transferred Transferring rpc.bynumber... ypxfr: Exiting: Map successfully transferred Transferring rpc.byname... ypxfr: Exiting: Map successfully transferred Transferring protocols.byname... ypxfr: Exiting: Map successfully transferred Transferring master.passwd.byname... ypxfr: Exiting: Map successfully transferred Transferring networks.byname... ypxfr: Exiting: Map successfully transferred Transferring networks.byaddr... ypxfr: Exiting: Map successfully transferred Transferring netid.byname... ypxfr: Exiting: Map successfully transferred Transferring hosts.byaddr... ypxfr: Exiting: Map successfully transferred Transferring protocols.bynumber... ypxfr: Exiting: Map successfully transferred Transferring ypservers... ypxfr: Exiting: Map successfully transferred Transferring hosts.byname... ypxfr: Exiting: Map successfully transferred

775

Fejezet 29. Hlzati szerverek

coltrane has been setup as an YP slave server without any errors. Dont forget to update map ypservers on ellington.

Most mr lennie kell egy /var/yp/proba-tartomany nev knyvtrunknak is. A kzponti NIS szerver tblzatainak msolata itt fognak troldni. Ezeket soha ne felejtsk el frissen tartani. Az alrendelt szervereken a kvetkez /etc/crontab bejegyzsek pontosan ezt a feladatot ltjk el:
20 21 * * * * * * * * root root /usr/libexec/ypxfr passwd.byname /usr/libexec/ypxfr passwd.byuid

Ez a kt sor gondoskodik rla, hogy az alrendelt szerverek ne felejtsk el egyeztetni a tblzataikat a kzponti szerver tblzataival. Habr ezek a bejegyzsek nem nlklzhetetlenek a megfelel mkdshez, mivel a kzponti szerver mindig igyekszik az alrendelt szervereknek elkldeni a NIS tblzataiban ltrejtt vltozsokat. Mivel azonban a jelszavak ltfontossgak a szervertl fgg rendszerek szmra, ezrt j tlet lehet explicit mdon is elrni a frisstst. Ez a forgalmasabb hlzatokon nagyobb jelentsggel br, mivel ott a tblzatok frisstse nem mindig fejezdik be rendesen. Most pedig futassuk le a /etc/netstart parancsot az alrendelt szervereken is, amivel gy elindul a NIS szerver.

29.4.4.3. A NIS kliensek


A NIS kliens az ypbind dmon segtsgvel egy ktsnek (bind) nevezett kapcsolatot pt ki egy adott NIS szerverrel. Az ypbind ellenrzi a rendszer alaprtelmezett tartomnyt (ezt a domainname paranccsal lltottunk be), majd RPC krseket kezd szrni a helyi hlzaton. Ezek a krsek annak a tartomnynak a nevt tartalmazzk, amelyhez az ypbind megprbl ktst ltrehozni. Ha az adott tartomny kiszolglsra belltott szerver szleli ezeket a krseket, akkor vlaszol az ypbind dmonnak, amely pedig feljegyzi a szerver cmt. Ha tbb szerver is elrhet (pldul egy kzponti s tbb alrendelt), akkor az ypbind az elsknt vlaszol cmt fogja rgzteni. Innentl kezdve a kliens kzvetlenl ennek a szervernek fogja kldeni a NIS krseit. Az ypbind idnknt megpingeli a szervert, hogy meggyzdjn az elrhetsgrl. Ha az ypbind egy adott idn bell nem kap vlaszt a ping krseire, akkor megsznteti a ktst a tartomnyhoz s nekilt keresni egy msik szervert. 29.4.4.3.1. A NIS kliensek belltsa Egy FreeBSD-s gpet NIS kliensknt meglehetsen egyszeren lehet belltani. 1. Nyissuk meg az /etc/rc.conf llomnyt s a NIS tartomnynv belltshoz, valamint az ypbind elindtshoz a kvetkezket rjuk bele:
nisdomainname="proba-tartomany" nis_client_enable="YES"

2.

A NIS szerveren tallhat jelszavak importlshoz tvoltsuk el az sszes felhasznli hozzfrst az


/etc/master.passwd llomnyunkbl s a vipw segtsgvel adjuk hozz az albbi sort az llomny

vghez:
+::::::::: Megjegyzs: Ez a sor beenged brkit a rendszernkre, akinek a NIS szervereken van rvnyes hozzfrse. A NIS klienseket ezzel a sorral sokfle mdon tudjuk lltani. A

776

Fejezet 29. Hlzati szerverek


hlzati csoportokrl szl szakaszban tallunk majd errl tbb informcit. A tma mlyebb megismershez az OReilly Managing NFS and NIS cm knyvt ajnljuk.

Megjegyzs: Legalbb helyi hozzfrst (vagyis amit nem NIS-en keresztl importlunk) azonban mindenkppen hagyjunk meg az /etc/master.passwd llomnyunkban, s ez a hozzfrs legyen a wheel csoport tagja. Ha valami gond lenne a NIS hasznlatval, akkor ezen a hozzfrsen keresztl tudunk a gpre tvolrl bejelentkezni, majd innen root felhasznlra vltva megoldani a felmerlt problmkat.

3.

A NIS szerverrl az sszes lehetsges csoport-bejegyzst az /etc/group llomnyban gy tudjuk importlni:


+:*::

Miutn elvgeztk ezeket a lpseket, kpesek lesznk futtatni az ypcat passwd parancsot, s ltni a NIS szerver jelszavakat tartalmaz tblzatt.

29.4.5. A NIS biztonsga


ltalban tetszleges tvoli felhasznl kldhet RPC krseket az ypserv(8) szmra s krheti le a NIS tblzatok tartalmt, feltve, hogy ismeri a tartomny nevt. Az ilyen hitelests nlkli mveletek ellen az ypserv(8) gy vdekezik, hogy tartalmaz egy securenets nev lehetsget, amellyel az elrhetsgket tudjuk leszkteni gpek egy csoportjra. Az ypserv(8) indtsakor ezeket az informcikat a /var/yp/securenets llomnybl prblja meg betlteni.
Megjegyzs: Az elrsi tvonala megadhat a -p opci hasznlatval. Ez az llomny olyan bejegyzseket tartalmaz, amelyekben egy hlzati cm s tle lthatatlan karakterekkel elvlasztva egy hlzati maszk szerepel. A # karakterrel kezdd sorokat megjegyzsnek nyilvntjuk. Egy minta securenets llomny valahogy gy nzne ki:

# Engedlyezzk nmagunkrl a csatlakozst -- kell! 127.0.0.1 255.255.255.255 # Engedlyezzk a 192.168.128.0 hlzatrl rkez csatlakozsokat: 192.168.128.0 255.255.255.0 # Engedlyezzk a laborban tallhat 10.0.0.0 s 10.0.15.255 kzti # cmekkel rendelkez gpek csatlakozst: 10.0.0.0 255.255.240.0

Ha az ypserv(8) olyan cmrl kap krst, amely illeszkedik az elrt cmek valamelyikre, akkor a szoksos mdon feldolgozza azt. Ellenkez esetben a krst gyelmen kvl hagyja s egy gyelmeztetst vesz fel hozz a naplba. Ha a /var/yp/securenets llomny nem ltezik, akkor az ypserv tetszleges gprl engedlyezi a csatlakozst. Az ypserv lehetsget ad a Wietse Venema ltal fejlesztett TCP Wrapper csomag hasznlatra is. Ezzel a rendszergazda a /var/yp/securenets llomny helyett a TCP Wrapper kongurcis llomnyai alapjn kpes szablyozni az elrhetsget.

777

Fejezet 29. Hlzati szerverek


Megjegyzs: Mikzben mind a kt mdszer nyjt valamilyen fajta vdelmet, de a privilegizlt portok tesztelshez hasonlan az IP lczsval (IP spoong) sebezhetek. Ezrt az sszes NIS-hez tartoz forgalmat tzfallal kell blokkolnunk. Az /var/yp/securenets llomnyt hasznl szerverek nem kpesek az elavult TCP/IP implementcikat hasznl rvnyes klienseket rendesen kiszolglni. Egyes ilyen implementcik a cmben a gphez tartoz biteket nullra lltjk az zenetszrshoz, s/vagy ezrt az zenetszrshoz hasznlt cm kiszmtsakor nem tudja szleli a hlzati maszkot. A legtbb ilyen problma megoldhat a kliens kongurcijnak megvltoztatsval, mg ms problmk megoldsa a krdses kliensek nyugdjazst kvnjk meg, vagy a /var/yp/securenets hasznlatnak elhagyst. Egy rgebbi TCP/IP implementcival zemel szerveren pedig a /var/yp/securenets llomny hasznlata kifejezetten rossz tlet, s a hlzatunk nagy rszben kpes hasznlhatatlann tenni a NIS funkciit. A TCP Wrapper csomag alkalmazsa a NIS szervernk vlaszadshoz szksges idejt is segt cskkenteni. Az ilyenkor jelentkez plusz kslekeds mellesleg elg nagy lehet ahhoz, hogy a klienseknl idtllps kvetkezzen be, klnsen a terheltebb hlzatokon vagy a lass NIS szerverek esetben. Ha egy vagy tbb kliensnk is ilyen tneteket mutat, akkor rdemes a krdses kliens rendszereket alrendelt NIS szerverekk alaktani s nmagukhoz rendelni.

29.4.6. Egyes felhasznlk bejelentkezsnek megakadlyozsa


A laborunkban van egy basie nev gp, amely a tanszk egyetlen munkallomsa. Ezt a gpet nem akarjuk kivenni a NIS tartomnybl, de a kzponti NIS szerver passwd llomnya mgis egyarnt tartalmazza a hallgatk s az oktatk elrseit. Mit lehet ilyenkor tenni? Adott felhasznlk esetben le tudjuk tiltani a bejelentkezst a gpen mg olyankor is, ha lteznek a NIS adatbzisban. Ehhez mindssze a kliensen az /etc/master.passwd llomny vgre be kell tennnk egy -felhasznlnv sort, ahol a felhasznlnv annak a felhasznlnak a neve, akit nem akarunk beengedni a gpre. Ezt leginkbb a vipw hasznlatn keresztl rdemes megtennnk, mivel a vipw az /etc/master.passwd llomny alapjn vgez nmi ellenrzst, valamint a szerkeszts befejeztvel magtl jragenerlja a jelszavakat trol adatbzist. Pldul, ha a bill nev felhasznlt ki akarjuk tiltani a basie nev gprl, akkor:
basie# vipw
[vegyk fel a -bill sort a vgre, majd lpjnk ki]

vipw: rebuilding the database... vipw: done basie# cat /etc/master.passwd root:[jelsz]:0:0::0:0:The super-user:/root:/bin/csh toor:[jelsz]:0:0::0:0:The other super-user:/root:/bin/sh daemon:*:1:1::0:0:Owner of many system processes:/root:/sbin/nologin operator:*:2:5::0:0:System &:/:/sbin/nologin bin:*:3:7::0:0:Binaries Commands and Source,:/:/sbin/nologin tty:*:4:65533::0:0:Tty Sandbox:/:/sbin/nologin kmem:*:5:65533::0:0:KMem Sandbox:/:/sbin/nologin games:*:7:13::0:0:Games pseudo-user:/usr/games:/sbin/nologin news:*:8:8::0:0:News Subsystem:/:/sbin/nologin man:*:9:9::0:0:Mister Man Pages:/usr/share/man:/sbin/nologin bind:*:53:53::0:0:Bind Sandbox:/:/sbin/nologin

778

Fejezet 29. Hlzati szerverek


uucp:*:66:66::0:0:UUCP pseudo-user:/var/spool/uucppublic:/usr/libexec/uucp/uucico xten:*:67:67::0:0:X-10 daemon:/usr/local/xten:/sbin/nologin pop:*:68:6::0:0:Post Office Owner:/nonexistent:/sbin/nologin nobody:*:65534:65534::0:0:Unprivileged user:/nonexistent:/sbin/nologin +::::::::: -bill basie#

29.4.7. A hlzati csoportok alkalmazsa


Ksztette: Udo Erdelhoff. Az elz szakaszban ismertetett mdszer viszonylag jl mkdik olyan esetekben, amikor nagyon kevs felhasznlra s/vagy szmtgpre kell alkalmaznunk specilis megszortsokat. A nagyobb hlzatokban szinte biztos, hogy elfelejtnk kizrni egyes felhasznlkat az rzkeny gpekrl, vagy az sszes gpen egyenknt kell ehhez a megfelel belltsokat elvgezni, s ezzel lnyegben elvesztjk a NIS legfontosabb elnyt, vagyis a kzpontostott karbantarthatsgot. A NIS fejleszti erre a problmra a hlzati csoportokat ltrehozsval vlaszoltak. A cljuk s mkdsk szempontjbl leginkbb a UNIX-os llomnyrendszerekben tallhat csoportokhoz mrhetek. A legnagyobb eltrs a numerikus azonostk hinyban mutatkozik meg, valamint a hlzati csoportokat a felhasznlkon kvl tovbbi hlzati csoportok megadsval is ki lehet alaktani. A hlzati csoportok a nagyobb, bonyolultabb, tbbszz felhasznls hlzatok szmra jttek ltre. Egy rszrl ez nagyon j dolog, klnsen akkor, ha egy ilyen helyzettel kell szembenznnk. Msrszrl ez a mrtk bonyolultsg szinte teljesen lehetetlenn teszi a hlzati csoportok egyszer bemutatst. A szakasz tovbbi rszben hasznlt plda is ezt a problmt igyekszik illusztrlni. Ttelezzk fel, hogy laborunkban a NIS sikeres bevezetse felkeltette a fnkeink gyelmt. gy a kvetkez feladatunk az lett, hogy terjesszk ki a NIS tartomnyt az egyetemen tallhat nhny msik gpre is. Az albbi kt tblzatban az j felhasznlk s az j szmtgp neveit talljuk, valamint a rvid lersukat. Felhasznlk nevei
alpha, beta charlie, delta echo, foxtrott, golf, ... able, baker, ...

Lers az IT tanszk htkznapi dolgozi az IT tanszk jdonslt dolgozi tlagos dolgozk sztndjasok

Gpek nevei
haboru, halal, ehseg, szennyezes

Lers A legfontosabb szervereink. Csak az IT tanszk dolgozi frhetnek hozzjuk.

buszkeseg, kapzsisag, irigyseg, harag, bujasag, Kevsb fontos szerverek. Az IT tankszk sszes tagja el tudja rni ezeket a gpeket. lustasag egy, ketto, harom, negy, ...

tlagos munkallomsok. Egyedl csak a valdi dolgozk jelentkezhetnek be ezekre a gpekre.

779

Fejezet 29. Hlzati szerverek Gpek nevei


szemetes

Lers Egy nagyon rgi gp, semmi rtkes adat nincs rajta. Akr mg az szndjasok is nyzhatjk.

Ha ezeket az ignyeket gy prbljuk meg teljesteni, hogy a felhasznlkat egyenknt blokkoljuk, akkor minden rendszer passwd llomnyba kln fel kell vennnk a -felhasznl sorokat a letiltott felhasznlkhoz. Ha csak egyetlen bejegyzst is kihagyunk, akkor knnyen bajunk szrmazhat belle. Ez a rendszer kezdeti belltsa sorn mg taln nem okoz gondot, de az j felhasznlkat biztosan el fogjuk felejteni felvenni a megfelel csoportokba. Elvgre Murphy is optimista volt. A hlzati csoportok hasznlata ilyen helyzetekben szmos elnyt rejt. Nem kell az egyes felhasznlkat kln felvenni, egy felhasznlt felvesznk valamelyik csoportba vagy csoportokba, s a csoportok sszes tagjnak egyszerre tudjuk tiltani vagy engedlyezni a hozzfrseket. Ha hozzadunk egy j gpet a hlzatunkhoz, akkor mindssze a hlzati csoportok bejelentkezsi korltozsait kell belltani. Ha j felhasznlt vesznk fel, akkor a felhasznlt kell vennnk egy vagy tbb hlzati csoportba. Ezek a vltoztatsok fggetlenek egymstl, s nincs szksg minden felhasznl s minden gp sszes kombincijra. Ha a NIS belltsainkat elzetesen krltekinten megterveztk, akkor egyetlen kzponti kongurcis llomnyt kell mdostani a gpek elrsnek engedlyezshez vagy tiltshoz. Az els lps a hlzati csoportokat tartalmaz NIS tblzat inicializlsa. A FreeBSD ypinit(8) programja alaprtelmezs szerint nem hozza ltre ezt a tblzatot, de ha ksztnk egy ilyet, akkor a NIS implementcija kpes kezelni. Egy ilyen res tblzat elksztshez ennyit kell begpelni:
ellington# vi /var/yp/netgroup

Ezutn elkezdhetjk felvenni a tartalmt. A pldnk szerint legalbb ngy hlzati csoportot kell csinlnunk: az IT dolgozinak, az IT j dolgozinak, a norml dolgozknak s az szndjasoknak.
IT_DOLG IT_UJDOLG FELHASZNALO OSZTONDIJAS (,alpha,proba-tartomany) (,charlie,proba-tartomany) (,echo,proba-tartomany) (,golf,proba-tartomany) (,able,proba-tartomany) (,beta,proba-tartomany) (,delta,proba-tartomany) (,foxtrott,proba-tartomany) \ (,baker,proba-tartomany)

Az IT_DOLG, IT_UJDOLG stb. a hlzati csoportok nevei lesznek. Minden egyes zrjelezett csoport egy vagy tbb felhasznli hozzfrst tartalmaz. A csoportokban szerepl hrom mez a kvetkez: 1. Azon gpek neve, amelykre a kvetkez elemek rvnyesek. Ha itt nem adunk meg neveket, akkor a bejegyzs az sszes gpre vonatkozik. Ha megadjuk egy gp nevt, akkor jutalmunk a teljes sttsg, a rettegets s totlis megtbolyods. 2. A csoporthoz tartoz hozzfrs neve. 3. A hozzfrshez kapcsold NIS tartomny. A csoportba ms NIS tartomnyokbl is t tudunk hozni hozzfrseket, ha netaln ppen olyan szerencstlenek lennnk, hogy tbb NIS tartomnyt is felgyelnnk kell. A mezk mindegyike tartalmazhat dzskerkaraktereket. Errl rszletesebben a netgroup(5) man oldalon olvashatunk.
Megjegyzs: A hlzati csoportoknak lehetleg ne adjunk 8 karakternl hosszabb nevet, klnsen abban az esetben, ha a NIS tartomnyban ms opercis rendszereket is hasznlunk. A nevekben eltrnek a kis- s nagybetk. Ha a hlzati csoportokat nevt nagybetkkel rjuk, akkor knnyen klnbsget tudunk tenni a felhasznlk, gpek s hlzati csoportok nevei kztt.

780

Fejezet 29. Hlzati szerverek


Egyes (nem FreeBSD alap) NIS kliensek nem kpesek kezelni a nagyon sok bejegyzst tartalmaz hlzati csoportokat. Pldul a SunOS nhny korbbi verzija fennakad rajta, ha egy hlzati csoport 15 bejegyzsnl tbbet tartalmaz. Az ilyen korltozsok all gy tudunk kibjni, ha 15 felhasznlnknt jabb hlzati csoportokat hozunk ltre, amelyekkel az eredeti hlzati csoportot ptjk fel:
NAGYCSP1 (,joe1,tartomany) (,joe2,tartomany) (,joe3,tartomany) [...] NAGYCSP2 (,joe16,tartomany) (,joe17,tartomany) [...] NAGYCSP3 (,joe31,tartomany) (,joe32,tartomany) NAGYCSOPORT NAGYCSP1 NAGYCSP2 NAGYCSP3

Ugyanez a folyamat javasolt olyan esetekben is, ahol 225 felhasznlnl tbbre lenne szksg egyetlen hlzati csoporton bell.

Az gy ltrehozott j NIS tblzat sztkldse meglehetsen knny feladat:


ellington# cd /var/yp ellington# make

Ez a parancs ltrehoz hrom NIS tblzatot: netgroup, netgroup.byhost s netgroup.byuser. Az ypcat(1) paranccsal ellenrizni is tudjuk az j NIS tblzatainkat:
ellington% ypcat -k netgroup ellington% ypcat -k netgroup.byhost ellington% ypcat -k netgroup.byuser

Az els parancs kimenete a /var/yp/netgroup llomny tartalmra emlkeztethet minket. A msodik parancsnak nincs semmilyen kimenete, hacsak nem adtunk meg valamilyen gpfgg hlzati csoportot. A harmadik parancs a hlzati csoportokat listzza ki a felhasznlkhoz. A kliensek belltsa teht nagyon egyszer. A haboru nev szerver belltshoz indtsuk el a vipw(8) programot, s cserljk a
+:::::::::

sort erre:
+@IT_DOLG:::::::::

Innentl kezdve kizrlag csak az IT_DOLG csoportban tallhat felhasznlk fognak bekerlni a haboru jelsz adatbzisba, s csak ezek a felhasznlk tudnak ide bejelentkezni. Sajnos ez a korltozs a parancsrtelmez ~ funkcijra s sszes olyan rutinra is vonatkozik, amelyet a felhasznli nevek s azok numerikus azonost kztt kpez le. Ms szval a cd ~felhasznl parancs nem fog mkdni, s az ls -l parancs kimenetben a felhasznli nevek helyett csak numerikus azonostk jelennek meg, tovbb afind . -user joe -print No such user (Nincs ilyen felhasznl) hibt fog visszaadni. Ez gy tudjuk megjavtani, ha gy importljuk a szerverre az sszes felhasznl bejegyzst, hogy kzben tiltjuk a hozzfrsket. Ehhez vegynk fel egy jabb sort az /etc/master.passwd llomnyba. A sor valahogy gy fog kinzni:
+:::::::::/sbin/nologin, amely annyit tesz, hogy importljuk az sszes bejegyzst, de a hozzjuk tartoz parancsrtelmez a /sbin/nologin legyen. A passwd llomnyban tetszleges mez tartalmt le tudjuk gy cserlni, ha megadunk neki egy alaprtelmezett rtket az /etc/master.passwd llomnyban.

781

Fejezet 29. Hlzati szerverek


FigyelemVigyzzunk, hogy a +:::::::::/sbin/nologin sort az +@IT_DOLG::::::::: sor utn rjuk. Ha nem gy tesznk, akkor a NIS-bl importlt sszes felhasznli hozzfrs a /sbin/nologin parancsrtelmezt kapja.

Miutn elvgeztk ezt a vltoztatst, minden jabb dolgoz felvtele utn csupn egyetlen tblzatot kell megvltoztatnunk. Ugyanezt a taktikt kvethetjk a kevsb fontosabb szerverek esetben is, hogy ha a helyi /etc/master.passwd llomnyukban a korbbi +::::::::: bejegyzst valami ilyesmivel helyettestjk:
+@IT_DOLG::::::::: +@IT_UJDOLG::::::::: +:::::::::/sbin/nologin

Az egyszer munkallomsok esetben pedig ezekre a sorokra lesz szksgnk:


+@IT_DOLG::::::::: +@FELHASZNALOK::::::::: +:::::::::/sbin/nologin

Minden remekl zemel egszen addig, amg nhny ht mlva ismt vltozik a hzirend: az IT tanszkre sztndjasok rkeznek. Az IT sztndjasai a munkallomsokat s a kevsb fontosabb szervereket tudjk hasznlni. Az j IT dolgozk mr a kzponti szerverekre is bejelentkezhetnek. gy teht ltrehozunk egy j hlzati csoportot IT_OSZTONDIJAS nven, majd felvesszk ide az j IT sztndjasokat, s nekiltunk vgigzongorzni az sszes gp sszes kongurcis llomnyt... Ahogy azonban egy rgi monds is tartja: A kzpontostott tervezsben ejtett hibk teljes koszhoz vezetnek. A NIS az ilyen helyzeteket gy igyekszik elkerlni, hogy megengedi jabb hlzati csoportok ltrehozst ms hlzati csoportokbl. Egyik ilyen lehetsg a szerep alap hlzati csoportok kialaktsa. Pldul, ha a fontosabb szerverek bejelentkezsi korltozsai szmra hozzunk ltre egy NAGYSRV nev csoportot, valamint egy msik hlzati csoportot KISSRV nven a kevsb fontosabb szerverekhez, vgl MUNKA nven egy harmadik hlzati csoportot a munkallomsokhoz. Mindegyik ilyen hlzati csoport tartalmazza azokat a csoportokat, amelyek engedlyezik a gpek elrst. A hlzati csoportok lerst tartalmaz NIS tblzat most valahogy gy fog kinzni:
NAGYSRV KISSRV MUNKA IT_DOLG IT_UJDOLG IT_DOLG IT_UJDOLG IT_OSZTONDIJAS IT_DOLG IT_OSZTONDIJAS FELHASZNALOK

A bejelentkezsi megszortsok ilyen tpus megadsa viszonylag jl mkdik, hogy ha azonos korltozsok al es gpek csoportjait akarjuk felrni. Bnatunk ez a kivtel, s nem a szably. Az esetek nagy tbbsgben ugyanis a bejelentkezsre vonatkoz korltozsokat gpenknt kell egyesvel megadni. A hlzati csoportok gpfgg megadsa teht az imnti hzirendhez trsul ignyek kielgtsnek egyik mdja. Ebben a forgatknyvben az /etc/master.passwd llomny minden szmtgpen kt +-os sorral kezddik. Kzlk az els a gpen engedlyezett hozzfrseket tartalmaz hlzati csoportra vonatkozik, a msodik pedig az sszes tbbi hozzfrshez az /sbin/nologin parancsrtelmezt kapcsolja hozz. Itt j tlet, ha a gp nevnek VGIG-NAGYBETS vltozatt adjuk meg a hozztartoz hlzati csoport nevnek:
+@GPNV ::::::::: +:::::::::/sbin/nologin

Miutn elvgeztk ezt a feladatot minden egyes gpen, az /etc/master.passwd llomny helyi vltozatait soha tbb nem kell mdostanunk. Az sszes tbbi vltoztatst a NIS tblzaton keresztl tudjuk keresztl vinni. me a

782

Fejezet 29. Hlzati szerverek felvzolt forgatknyvhz tartoz hlzati csoportok kiptsnek egyik lehetsges vltozata, egy-kt nomsggal kiegsztve:
# Elszr a felhasznlk csoportjait adjuk meg: IT_DOLG (,alpha,proba-tartomany) (,beta,proba-tartomany) IT_UJDOLG (,charlie,proba-tartomany) (,delta,proba-tartomany) TANSZ1 (,echo,proba-tartomany) (,foxtrott,proba-tartomany) TANSZ2 (,golf,proba-taromany) (,hotel,proba-tartomany) TANSZ3 (,india,proba-taromany) (,juliet,proba-tartomany) IT_OSZTONDIJAS (,kilo,proba-tartomany) (,lima,proba-tartomany) D_OSZTONDIJAS (,able,proba-tartomany) (,baker,proba-tartomany) # # Most pedig hozzunk ltre csoportokat szerepek szerint: FELHASZNALOK TANSZ1 TANSZ2 TANSZ3 NAGYSRV IT_DOLG IT_UJDOLG KISSRV IT_DOLG IT_UJDOLG IT_OSZTONDIJAS MUNKA IT_DOLG IT_OSZTONDIJAS FELHASZNALOK # # Kvetkezzenek a specilis feladatokhoz tartoz csoportok: # Az echo s a golf tudja elrni a vrusvdelemrt felels gpet: VEDELEM IT_DOLG (,echo,proba-tartomany) (,golf,proba-tartomany) # # Gp alap hlzati csoportok # A f szervereink: HABORU NAGYSRV EHSEG NAGYSRV # Az india nev felhasznl hozz szeretn ehhez frni: SZENNYEZES NAGYSRV (,india,proba-tartomany) # # Ez valban fontos s komolyan szablyoznunk kell: HALAL IT_DOLG # # Az elbb emltett vrusvdelmi gp: EGY VEDELEM # # Egyetlen felhasznlra korltozzuk le ezt a gpet: KETTO (,hotel,proba-tartomany) # [...s itt folytatdik a tbbi csoporttal]

Ha a felhasznli hozzfrseinket valamilyen adatbzisban troljuk, akkor a tblzat els rszt akr az adatbzis lekrdezsein keresztl is el tudjuk lltani. Ezzel a mdszerrel az j felhasznlk automatikusan hozzfrnek a gpekhez. Legynk viszont vatosak: nem mindig javasolt gpeken alapul hlzati csoportokat kszteni. Ha a hallgati laborokba egyszerre tbb tucat vagy akr tbb szz azonos kongurcij gpet teleptnk, akkor a gp alap csoportok helyett inkbb szerep alap csoportokat ptsnk fel, mivel gy a NIS tblzatok mrett egy elfogadhat mreten tudjuk tartani.

783

Fejezet 29. Hlzati szerverek

29.4.8. Amit felttlenl szben kell tartanunk


Mg mindig akad nhny olyan dolog, amit mskppen kell csinlnunk azutn, hogy most mr NIS krnyezetben vagyunk.

Amikor egy j felhasznlt akarunk felvenni a laborba, akkor csak a kzponti NIS szerverre kell felvennnk, s jra kell generltatnunk a NIS tblzatokat. Ha ezt elfelejtjk megtenni, akkor az j felhasznl a kzponti NIS szerveren kvl sehova sem lesz kpes bejelentkezni. Pldul, ha fel akarjuk venni a jsmith nev felhasznlt a laborba, akkor ezt kell tennnk:
# pw useradd jsmith # cd /var/yp # make proba-tartomany

Vagy a pw useradd jsmith parancs helyett az adduser jsmith parancsot is hasznlhatjuk.

A rendszergazdai szint hozzfrseket ne troljuk a NIS tblzatokban. Olyan gpekre egyltaln ne is kldjnk olyan karbantartshoz hasznlt hozzfrseket, amelynek a felhasznli hivatalosan nem is frhetnnek hozzjuk. A kzponti NIS szervert s az alrendelt szervereket vjuk minl jobban, s igyekezznk minimalizlni a kiesseiket. Ha valaki feltri vagy egyszeren csak kikapcsolja ezeket a gpeket, akkor ezzel lnyegben mindenkit megakadlyoz abban, hogy be tudjon jelentkezni a laborban. Ezek a kzpontostott vezrls rendszerek legfbb gyengesgei. Ha nem vdjk kellen a NIS szervereinket, akkor azzal nagyon ellensget szerezhetnk magunknak!

29.4.9. Kompatibilits a NIS els vltozatval


A FreeBSD-ben megtallhat ypserv szolgltats valamennyire kpes elltni a NIS els vltozatt hasznl klienseket is. A FreeBSD NIS implementcija csak a NIS v2 protokollt hasznlja, azonban mivel ms implementcik kompatibilisek kvnnak maradni a rgebbi rendszerekkel, ismerik a v1 protokollt is. Az ilyen rendszerekhez tartoz ypbind dmonok mg olyankor is megprblnak v1-es NIS szerverekhez ktst ltrehozni, amikor valjban nincs is r szksgk (s gyakran mg akkor is ilyet keresnek, amikor az zenetkre mr vlaszolt egy v2-es szerver). Hozztennnk, hogy br az ypserver ezen vltozata a norml klienshvsokat kpes feldolgozni, a tblzatokat mr nem tudja tkldeni a v1-es klienseknek. Ebbl kvetkezik, hogy a kzponti vagy alrendelt szerverek nem tudnak egyttmkdni olyan NIS szerverekkel, amelyek csak a v1-es protokollt beszlik. Szerencsre ilyen szervereket manapsg mr alig hasznlnak.

29.4.10. NIS szerverek, melyek egyben NIS kliensek


vatosan kell bnnunk az ypserv elindtsval olyan tbbszerveres tartomnyokban, ahol a szerverek maguk is NIS kliensek. Alapveten nincs abban semmi kivetnival, ha a szervereket sajt magukhoz ktjk ahelyett, hogy engednnk nekik a ktsi krsek kldst s gy egymshoz ktnnk ezeket. Klns hibk tudnak szrmazni olyan helyzetekben, amikor az egyik szerver lell, mikzben a tbbiek pedig fggenek tle. Vgl is ilyenkor minden kliens szpen kivrja a szksges idt, aztn megprbl ms szerverekhez ktdni, de az itt fellp kslekeds jelents mennyisg lehet, s ez a hibajelensg ismt fennllhat, mivel elfordulhat, hogy a szerverek megint egymshoz kapcsoldnak.

784

Fejezet 29. Hlzati szerverek A klienst gy tudjuk egy adott szerverhez ktni, ha az ypbind parancsot a -S belltssal indtjuk. Ha mindezt nem akarjuk manulisan megtenni a NIS szerver minden egyes jraindtsakor, akkor vegyk fel a kvetkez sorokat az /etc/rc.conf llomnyba:
nis_client_enable="YES" # elindtjuk a klienst is nis_client_flags="-S NIS tartomny ,szerver"

Rszletesebb lsd az ypbind(8) man oldalt.

29.4.11. A jelszavak formtuma


A NIS rendszerek kiptse sorn az emberek leggyakrabban a jelszavak formtumval kapcsolatban tapasztalnak nehzsgeket. Ha a szervernk DES titkosts jelszavakat hasznl, akkor csak olyan klienseket fog tudni tmogatni, amelyek szintn gy kdoljk ezeket. Pldul, ha a hlzaton vannak Solaris rendszer NIS klienseink, akkor szinte biztos, hogy DES titkostst kell hasznlnunk. A szerverek s a kliensek ltal hasznlt formtumokat az /etc/login.conf llomnyba tekintve derthetjk ki. Ha a gpek tbbsgn a DES titkostst ltjuk, akkor a default osztlynak egy ilyen bejegyzst kell tartalmaznia:
default:\ :passwd_format=des:\ :copyright=/etc/COPYRIGHT:\ [a tbbit most nem mutatjuk]

A passwd_format tulajdonsg tovbbi lehetsges rtkei lehetnek a blf s az md5 (melyek rendre a Blowsh s MD5 titkosts jelszavakat adjk meg). Ha vltoztattunk valamit az /etc/login.conf llomnyban, akkor a bejelentkezsi tulajdonsgok adatbzist is jra kell generlni, melyet root felhasznlknt a kvetkez mdon tehetnk meg:
# cap_mkdb /etc/login.conf

Megjegyzs: Az /etc/master.passwd llomnyban jelenlev jelszavak formtuma azonban nem frisstdik egszen addig, amg a felhasznlk a bejelentkezsi adatbzis jragenerlsa utn meg nem vltoztatjk a jelszavaikat.

gy tudjuk mg biztostani, hogy a jelszavak megfelel formtumban kdoldjanak, ha az /etc/auth.conf llomnyban megkeressk a crypt_default sort, amelyben a vlaszthat jelszformtumok felhasznlsi sorrendjt tallhatjuk meg. Itt teht mindssze annyit kell tennnk, hogy a kiszemelt formtumot a lista elejre tesszk. Pldul, ha a DES titkosts jelszavakat akarunk hasznlni, akkor ez a bejegyzs gy fog kinzni:
crypt_default = des blf md5

Ha a fenti lpseket kvetjk az sszes FreeBSD alap NIS szervernl s kliensnl, akkor biztosra mehetnk abban, hogy a hlzatunkon bell ugyanazt a jelszformtumot fogjk hasznlni. Ha gondunk akadna a NIS kliensek hitelestsvel, akkor itt rdemes kezdeni a hiba feldertst. Ne felejtsk: ha egy NIS szervert egy heterogn hlzatba akarunk telepteni, akkor valsznleg az sszes rendszeren a DES titkostst kell vlasztani, mivel ltalban ez a kzs nevez ebben a tekintetben.

785

Fejezet 29. Hlzati szerverek

29.5. A hlzat automatikus belltsa (DHCP)


rta: Greg Sutter.

29.5.1. Mi az a DHCP?
A Dinamikus llomskongurcis protokoll, avagy Dynamic Host Conguration Protocol (DHCP) annak eszkzeit rja le, hogy egy rendszer miknt tud csatlakozni egy hlzathoz s miknt tudja azon bell megszerezni a kommunikcihoz szksges informcikat. A FreeBSD 6.0 eltti vltozatai az ISC (Internet Systems Consortium, vagyis az internetes rendszerkonzorcium) ltal kidolgozott DHCP kliens (dhclient(8)) implementcijt tartalmazzk. A ksbbi verzikban pedig az OpenBSD 3.7 verzijbl tvett dhclient paranccsal dolgozhatunk. Ebben a szakaszban a dhclient parancsra vonatkoz sszes informci egyarnt rvnyes az ISC s az OpenBSD ltal fejlesztett DHCP kliensekre. A DHCP szerver az ISC-tl szrmazik.

29.5.2. Mivel foglalkozik ez a szakasz


Ebben a szakaszban az ISC s az OpenBSD DHCP klienseinek kliens- s szerver oldali komponsenseit mutatjuk be. A kliens oldali program neve a dhclient, amely a FreeBSD rszeknt rkezik, s a szerver oldali elem pedig a net/isc-dhcp31-server porton keresztl rhet el. A lentebb emltett hivatkozsok mellett a tmban mg a dhclient(8), dhcp-options(5) s a dhclient.conf(5) man adhatnak bvebb felvilgostst a tmban.

29.5.3. Ahogyan mkdik


Amikor a dhclient, vagyis a DHCP kliens elindul egy kliensgpen, akkor a hlzaton zenetszrssal prblja meg elkrni a kongurcijhoz szksges adatokat. Alaprtelmezs szerint ezek a krsek a 68-as UDP porton keresztl mennek. A szerver ezekre a 67-es UDP porton vlaszol, ahol visszaad a kliensnek egy IP-cmet s a hlzat hasznlathoz szksges tovbbi informcikat, mint pldul a hlzati maszkot, az alaprtelmezett tjr s a nvfeloldsrt felels szerverek cmt. Az sszes ilyen jelleg adat egy DHCP brlet (lease) formjban rkezik meg, amely csak egy adott ideig rvnyes (ezt a DHCP szerver karbantartja lltja be). gy a hlzaton a kliens nlkli IP-cmeket egy id utn automatikusan visszanyerjk. A DHCP kliensek rengeteg informcit kpes elkrni a szervertl. Ezek teljes listjt a dhcp-options(5) man oldaln olvashatjuk el.

29.5.4. Hasznlat a FreeBSD-n bell


A FreeBSD teljes egszben tartalmazza az ISC vagy az OpenBSD DHCP klienst, a dhclient programot (attl fggen, hogy a FreeBSD melyik vltozatt hasznljuk). A DHCP kliensek tmogatsa a teleptben s az alaprendszerben is megtallhat, s ezzel menteslnk minden konkrt hlzati bellts all a DHCP szervereket alkalmaz hlzatokon. A dhclient a FreeBSD 3.2 vltozata ta megtallhat a rendszerben. DHCP hasznlatt a sysinstall is lehetv teszi. Amikor egy hlzati felletet a sysinstall programon bell lltunk be, akkor a msodik krds mindig ez szokott lenni: Do you want to try DHCP conguration of the interface? (Megprbljuk DHCP hasznlatval belltani a felletet?) Ha erre igennel vlaszolunk, akkor azzal lnyegben a dhclient parancsot indtjuk el, s ha mindez sikerrel zrul, akkor szinte magtl kitltdik az sszes hlzati belltsunk.

786

Fejezet 29. Hlzati szerverek A DHCP hasznlathoz kt dolgot kell belltanunk a rendszernkn:

Gondoskodjunk rla, hogy a bpf eszkz rsze a rendszermagunknak. Ha mg nem lenne benne, akkor a rendszermag belltsait tartalmaz llomnyba vegyk fel a device bpf sort s fordtsuk jra a rendszermagot. A rendszermagok fordtsrl a 8 fejezetben tudhatunk meg tbbet. A bpf eszkz alapbl megtallhat a GENERIC rendszermagokban, gy ha ezt hasznljuk, akkor nem kell sajt verzit ksztennk a DHCP hasznlathoz.
Megjegyzs: Azok szmra viszont, akik biztonsgi szempontbl aggdnak a rendszerk miatt, meg kell emltennk, hogy a bpf egyben az az eszkz, amely a csomagok lehallgatst is lehetv teszi (habr az ilyeneket root felhasznlknt lehet csak elindtani). A bpf kell a DHCP hasznlathoz, azonban ha nagyon fontos neknk a rendszernk biztonsga, akkor a bpf eszkzt rdemes kivennnk a rendszermagbl, ha mg pillanatnyilag nem hasznlunk ilyet.

Az /etc/rc.conf llomnyunkat az albbiak szerint kell mdostani:


ifconfig_fxp0="DHCP" Megjegyzs: Az fxp0 eszkzt ne felejtsk el kicserlni arra a felletre, amelyet automatikusan akarunk belltani. Ennek mikntje a 11.8 Szakaszban olvashat.

Ha a dhclient a rendszernkben mshol tallhat, vagy egyszeren csak tovbbi belltsokat akarunk tadni a dhclient parancsnak, akkor adjuk meg a kvetkezt is (vltoztassuk meg ignyeink szerint):
dhclient_program="/sbin/dhclient" dhclient_flags=""

A DHCP szerver, a dhcpd a net/isc-dhcp31-server port rszeknt rhet el. Az a port tartalmazza az ISC DHCP szervert s a hozztartoz dokumentcit.

29.5.5. llomnyok
/etc/dhclient.conf

A dhclient mkdshez szksg lesz egy kongurcis llomnyra, aminek a neve /etc/dhclient.conf. Ez az llomny ltalban csak megjegyzseket tartalmaz, mivel az alaprtelmezett rtkek tbbnyire megfelelek. Ezt a kongurcis llomnyt a dhclient.conf(5) man oldal rja le.
/sbin/dhclient

A dhclient statikusan linkelt s az /sbin knyvtrban tallhat. A dhclient(8) man oldal tud rla rszletesebb felvilgostst adni.
/sbin/dhclient-script

A dhclient-script a FreeBSD-ben lev DHCP kliens kongurcis szkriptje. Mkdst a dhclient-script(8) man oldal rja le, de a felhasznlk rszrl semmilyen mdostst nem ignyel.

787

Fejezet 29. Hlzati szerverek


/var/db/dhclient.leases

A DHCP kliens az rvnyes brleteket tartja nyilvn ezekben az llomnyban s naplknt hasznlja. A dhclient.leases(5) man oldal ezt valamivel bvebben kifejti.

29.5.6. Tovbbi olvasnivalk


A DHCP protokoll mkdst az RFC 2131 (http://www.freesoft.org/CIE/RFC/2131/) mutatja be. A tmhoz kapcsoldan itt (http://www.dhcp.org/) tudunk mg lersokat tallni.

29.5.7. A DHCP szerverek teleptse s belltsa


29.5.7.1. Mirl szl ez a szakasz
Ebben a szakaszban arrl olvashatunk, hogy miknt kell egy FreeBSD tpus rendszert DHCP szervernek belltani, ha az ISC (internetes rendszerkonzorcium) DHCP szervert hasznljuk. Ez a szerver nem rsze a FreeBSD-nek, ezrt a szolgltats elindtshoz elszr fel kell raknunk a net/isc-dhcp31-server portot. A Portgyjtemny hasznlatra vonatkozan a 4 fejezet lehet segtsgnkre.

29.5.7.2. A DHCP szerver teleptse


Ha a FreeBSD rendszernket DHCP szerverknt akarjuk belltani, akkor ehhez elsknt a bpf(4) eszkz jelenltt kell biztostani a rendszermagban. Ehhez vegyk fel a device bpf sort a rendszermagunk belltsait tartalmaz llomnyba, majd fordtsuk jra a rendszermagot. A rendszermag lefordtsrl a 8 fejezetben olvashatunk. A bpf eszkz a FreeBSD-hez alapbl adott GENERIC rendszermag rsze, ezrt a DHCP hasznlathoz nem kell felttlenl jat fordtanunk.
Megjegyzs: A biztonsgi szempontok miatt aggd felhasznlk rszre megjegyezzk, hogy a bpf eszkz egyben a csomagok lehallgatst is lehetv teszi (habr az ilyen tmj programok futtatshoz megfelel jogokra is szksg van). A bpf hasznlata ktelez a DHCP mkdtetshez, de ha nagyon knyesek vagyunk a biztonsgot illeten, akkor minden olyan esetben, amikor nem hasznljuk ki ezt a lehetsget, tvoltsuk el a rendszermagbl.

A kvetkez lpsben t kell szerkesztennk a mintaknt mellkelt dhcpd.conf llomnyt, amelyet a net/isc-dhcp31-server port rakott fel. Ez alaprtelmezs szerint a /usr/local/etc/dhcpd.conf.sample nven tallhat meg, s mieltt brmit is vltoztatnnk rajta, msoljuk le /usr/local/etc/dhcpd.conf nven.

29.5.7.3. A DHCP szerver belltsa


A dhcpd.conf az alhlzatokat illetve a gpeket rint deklarcikat tartalmazza, s taln a legknnyebben a kvetkez plda alapjn mutathat be:
option domain-name "minta.com"; option domain-name-servers 192.168.4.100;

788

Fejezet 29. Hlzati szerverek


option subnet-mask 255.255.255.0; default-lease-time 3600; max-lease-time 86400; ddns-update-style none; subnet 192.168.4.0 netmask 255.255.255.0 { range 192.168.4.129 192.168.4.254; option routers 192.168.4.1; } host mailhost { hardware ethernet 02:03:04:05:06:07; fixed-address levelezes.minta.com;(10) }

Ez a bellts adja meg a kliensek szmra az alaprtelmezett keressi tartomnyt (search domain). A resolv.conf(5) tud ezzel kapcsolatban rszletesebb informcikat adni. Ez a bellts adja meg a kliensek ltal hasznlt nvfelold szerverek vesszvel elvlasztott felsorolst. A kliensekhez tartoz hlzati maszk. A kliens egy adott idre krhet brleti jogot, egybknt a szerver dnt a brlet lejrati idejrl (msodpercekben). Ez az a maximlis id, amennyire a szerver hajland brbe adni IP-cmet. A kliens ugyan hosszabb idre is krheti s meg is kapja, de legfeljebb csak max-lease-time msodpercig lesz rvnyes. Ez a bellts hatrozza meg, hogy a DHCP szervernek frisstse-e a nvoldsi informcikat a brlsek elfogadsnl vagy visszamondsnl. Az ISC implementcijnl ez a bellts ktelez. Ezzel adjuk meg milyen tartomnybl tudunk IP-cmeket kiosztani a kliensek szmra. A kezd cmet is belertve, innen fogunk kiutalni egyet a klienseknek. A kliensek fel elkldtt alaprtelmezett tjr cme. A gp hardveres MAC-cme (gy a DHCP szerver kpes felismerni a krs kldjt).

(10) Ennek megadsval a gpek mindig ugyanazt az IP-cmet kapjk. Itt mr megadhatunk egy hlzati nevet, mivel a brlethez tartoz informcik visszakldse eltt maga a DHCP szerver fogja feloldani a gp nevt. Miutn befejeztk a dhcpd.conf mdostst, a DHCP szerver az /etc/rc.conf llomnyban tudjuk engedlyezni, vagyis tegyk bele a kvetkezt:
dhcpd_enable="YES" dhcpd_ifaces="dc0"

A dc0 fellet nevt helyettestsk annak a felletnek (vagy whitespace karakterekkel elvlasztott felleteknek) a nevvel, amelyen keresztl a DHCP szerver vrni fogja a kliensek krseit. Ezutn a kvetkez parancs kiadsval indtsuk el a szervert:
# /usr/local/etc/rc.d/isc-dhcpd start

Amikor a jvben valamit vltoztatunk a kongurcis llomnyon, akkor ezzel kapcsolatban fontos megemlteni, hogy ha csak egy SIGHUP jelzst kldnk a dhcpd dmonnak, akkor az a tbbi dmontl eltren nmagban mg

789

Fejezet 29. Hlzati szerverek nem eredmnyezi a kongurcis adatok jraolvasst. Helyette a SIGTERM jelzssel kell lelltani a programot, majd jraindtani a fenti paranccsal.

29.5.7.4. llomnyok
/usr/local/sbin/dhcpd

A dhcpd statikusan linkelt s a /usr/local/sbin knyvtrban tallhat. A porttal egytt felkerl dhcpd(8) man oldal ad rszletesebb tmutatst dhcpd hasznlatrl.
/usr/local/etc/dhcpd.conf

Mieltt a dhcpd megkezdhetn mkdst, egy kongurcis llomnyra is szksgnk lesz, amely a /usr/local/etc/dhcpd.conf. Ez az llomny tartalmazza az sszes olyan informcit, ami kell a kliensek megfelel kiszolglshoz valamint a szerver mkdshez. Ez a kongurcis llomny porthoz tartoz dhcpd.conf(5) man oldalon kerl ismertetsre.
/var/db/dhcpd.leases

A DHCP szerver ebben az llomnyba tartja nyilvn a kiadott brleteket, egy napl formjban. A porthoz kapcsold dhcpd.leases(5) man oldalon errl tbbet is megtudhatunk.
/usr/local/sbin/dhcrelay

A dhcrelay llomnynak olyan komolyabb krnyezetekben van szerepe, ahol a DHCP szerver a kliensektl rkez krseket egy msik hlzaton tallhat DHCP szerverhez tovbbtja. Ha szksg lenne erre a lehetsgre, akkor teleptsk fel a net/isc-dhcp31-relay portot. A porthoz tartoz dhcrelay(8) man oldal ennek rszleteit taglalja.

29.6. Nvfelolds (DNS)


Ksztette: Chern Lee, Tom Rhodes, s Daniel Gerzo.

29.6.1. ttekints
A FreeBSD alaprtelmezs szerint a BIND (Berkeley Internet Name Domain) egyik verzijt tartalmazza, amely a nvfeloldsi (Domain Name System, DNS) protokoll egyik elterjedt implementcija. A DNS protokollon keresztl tudunk az IP-cmekhez neveket rendelni s fordtva. Pldul a www.FreeBSD.org nvre a FreeBSD Projekt webszervernek IP-cmt kapjuk meg, mikzben a ftp.FreeBSD.org pedig a hozztartoz FTP szerver IP-cmt fogja visszaadni. Ehhez hasonlan a fordtottja is megtrtnhet, vagyis egy IP-cmhez is krhetjk a hlzati nv feloldst. A nvfeloldsi krsek kiszolglshoz nem felttlenl szksges nvszervert futtatni a rendszernkn. A FreeBSD jelen pillanatban alapbl a BIND9 nvszervert tartalmazza. A benne szerepl vltozata tbb biztonsgi javtst, j llomnyrendszeri kiosztst s automatizlt chroot(8) belltst is magban foglal. Az interneten keresztli nvfeloldst legfels szint tartomnyoknak (Top Level Domain, TLD) nevezett hitelestett tvek nmileg bonyolult rendszern alapszik, valamint ms egyb olyan nvszervereken, amelyek tovbbi egyni informcikat trolnak s traznak.

790

Fejezet 29. Hlzati szerverek A BIND fejlesztst jelenleg az Internet Systems Consortium (http://www.isc.org/) felgyeli.

29.6.2. Alapfogalmak
A lers megrtshez be kell mutatnunk nhny nvfeloldssal kapcsolatos fogalmat. Fogalom Kzvetlen nvfelolds (forward DNS) s (origin) named, BIND Nvfelold (resolver) Meghatrozs A hlzati nevek lekpezse IP-cmekre. Egy adott zna llomnyban szerepl tartomnyra vonatkozik. A FreeBSD-n belli BIND nvszerver klnbz megnevezsei. Az a program a rendszerben, amelyhez a hlzaton lev gpek a znk adatainak elrsvel kapcsolatban fordulnak.

Inverz nvfelolds (reverse Az IP-cmek lekpzse hlzati nevekre. DNS) Gykrzna (root zone) Az interneten tallhat znk hierarchijnak tve. Minden zna ebbe a gykrznba esik, ahhoz hasonlan, ahogy egy llomnyrendszerben az llomnyok a gykrknyvtrba. Zna (zone) Egy klnll tartomny, altartomny vagy a nvfelolds azon rsze, amelyet egyazon fennhatsg alatt tartanak karban.

Pldk znkra:

A gykrznra a lersokban ltalban . nven szoktak hivatkozni. A org. egy legfels szint tartomny (TLD) a gykrznn bell. A minta.org. a org. TLD tartomny alatti zna. A 1.168.192.in-addr.arpa egy olyan zna, amelyek a 192.168.1.* IP-cmtartomnyban szerepl sszes cmet jelli.

Mint lthatjuk, a hlzati nevek balrl kiegszlve pontosodnak. Teht pldul a minta.org. sokkal pontosabb meghatrozs, mint a org., ahogy az org. magnl a gykrznnl jelent tbbet. A hlzati nevek felosztsa leginkbb egy llomnyrendszerhez hasonlthat, pldul a /dev knyvtr a gykren bell tallhat, s gy tovbb.

29.6.3. Mirt rdemes nvszervert futtatni


A nvszerverek ltalban kt alakban jelennek meg. Egyikk a hitelestett nvszerver, a msikuk a gyorsttraz nvszerver. Egy hitelestett nvszerverre akkor van szksgnk, ha:

a vilg tbbi rsze fel akarunk hiteles nvfeloldsi informcikat szolgltatni; regisztrltunk egy tartomnyt (pldul minta.org) s az alatta lev hlzati nevekhez is szeretnnk IP-cmeket rendeltetni;

791

Fejezet 29. Hlzati szerverek

a IP-cmtartomnyunkban szksg van inverz nvfeloldsi bejegyzsekre (amely IP-cmbl ad meg hlzati nevet) is; a krsek teljestshez egy tartalk avagy msodik, alrendelt (slave) nvszerver kell.

A gyorsttraz nvszerverre akkor van szksgnk, ha:

egy helyi nvfelold szerver felhasznlsval fel akarjuk gyorstani az egybknt a kls nvszerver fel irnyul krsek kiszolglst.

Amikor valaki lekrdezi a www.FreeBSD.org cmt, akkor a nvfelold elszr ltalban a kapcsolatot rendelkezsre bocst internet-szolgltat nvszervert krdezi meg s onnan kapja meg a vlaszt. Egy helyi, gyorsttraz nvszerver hasznlata esetn azonban egy ilyen krst csak egyszer kell kiadni a kls nvszervernek. Ezutn mr minden tovbbi ilyen krs el sem hagyja a bels hlzatunkat, mivel a vlasz szerepel a gyorsttrban.

29.6.4. Ahogyan mkdik


FreeBSD alatt a BIND dmon nyilvnval okokbl named nven rhet el. llomny named(8) rndc(8)
/etc/namedb /etc/namedb/named.conf

Lers A BIND dmon. A nvszervert vezrl segdprogram. A BIND ltal kezelt znk adatait trol knyvtr. A dmon kongurcis llomnya.

Attl fggen, hogy miknt lltjuk be az adott znt a szerveren, a hozztartoz llomnyok a /etc/namedb knyvtron bell a master, slave vagy dynamic alknyvtrban foglalnak helyet. Az itt trolt llomnyokban lev nvfeloldsi informcik alapjn vlaszol a nvszerver a fel intzett krsekre.

29.6.5. A BIND elindtsa


Mivel a BIND alapbl elrhet a rendszerben, viszonylag knnyen be tudjuk lltani. A named alaprtelmezett belltsa szerint egy chroot(8) krnyezetben fut egyszer nvfeloldst vgz szerver, amely a helyi IPv4 interfszen (127.0.0.1) fogadja a krseket. Ezzel a belltssal a kvetkez parancson keresztl tudjuk elindtani:
# /etc/rc.d/named onestart

Ha engedlyezni akarjuk a named dmont minden egyes rendszerindtskor, tegyk a kvetkez sort az /etc/rc.conf llomnyba:
named_enable="YES"

rtelemszeren az /etc/namedb/named.conf tele van olyan belltsi lehetsgekkel, amelyek meghaladjk ennek a lersnak a kereteit. Ha viszont kvncsiak vagyunk a FreeBSD-ben a named indtshoz hasznlt belltsokra, akkor az /etc/defaults/rc.conf llomnyban nzzk meg named_* vltozkat s olvassuk t az rc.conf(5) man oldalt. Emellett mg a 11.7 Szakaszt is hasznos lehet elolvasni.

792

Fejezet 29. Hlzati szerverek

29.6.6. A kongurcis llomnyok


A named belltsait tartalmaz llomnyok pillanatnyilag az /etc/namedb knyvtrban tallhatak s hacsak nem egy egyszer nvfeloldra tartunk ignyt, akkor a hasznlata eltt mdostanunk is kell. Itt ejtjk meg a belltsok nagy rszt.

29.6.6.1. /etc/namedb/named.conf
// // // // // // // // // // // $FreeBSD$ Rszletesebb lerst a named.conf(5) s named(8) man oldalakon, valamint a /usr/share/doc/bind9 knyvtrban tallhatunk. Ha egy hitelestett szervert akarunk belltani, akkor igyekezznk a nvfelolds sszes finom rszletvel pontosan tisztban lenni. Ugyanis mg a legkisebb hibkkal is egyrszt elvghatunk gpeket az internet-lrstl, vagy msrszt felesleges forgalmat tudunk generlni

options { // A chroot knyvtrhoz relatv elrsi t, amennyiben ltezik directory "/etc/namedb"; pid-file "/var/run/named/pid"; dump-file "/var/dump/named_dump.db"; statistics-file "/var/stats/named.stats"; // Ha a named dmont csak helyi nvfeloldknt hasznljuk, akkor ez // egy biztonsgos alapbellts. Ha viszont a named dmon az egsz // hlzatunkat is kiszolglja, akkor ezt a belltst tegyk // megjegyzsbe, vagy adjunk meg egy rendes IP-cmet, esetleg // trljk ki. listen-on { 127.0.0.1; }; // // // // // Ha rendszernkn engedlyezett az IPv6 hasznlata, akkor a helyi nvfelold hasznlathoz ezt a sort vegyk ki a megjegyzsbl. A hlzatunk tbbi rszrl pedig gy lehet elrni, ha itt megadunk egy IPv6 cmet, vagy az "any" kulcsszt. listen-on-v6 { ::1; };

// Az albbi znkat mr a lentebb tallhat res znk eleve lefedik. // Ha teht a lenti res znkat kivesszk a konfigurcibl, akkor // ezeket a sorokat is tegyk megjegyzsbe. disable-empty-zone "255.255.255.255.IN-ADDR.ARPA"; disable-empty-zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA"; disable-empty-zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA"; // // // // /* Ha a szolgltatnk nvszervert is elrhetv tett szmunkra, akkor itt adjuk meg annak az IP-cmt s engedlyezzk az albbi sort. Ezzel egyben kihasznljuk a gyorsttrat is, gy mrskeljk az internet fel mozg nvfeloldsokat.

793

Fejezet 29. Hlzati szerverek


forwarders { 127.0.0.1; }; * // // // // // // // // // // // // // // Ha a forwarders rsz nem res, akkor alaprtelmezs szerint a forward first rtkkel rendelkezik. Ekkor a krst a helyi szerver kapja abban az esetben, amikor a forwarders rszben megadott szerverek nem tudjk megvlaszolni. Emellett a nvszerverben a kvetkez sor hozzadsval letilthatjuk, hogy nmagtl ne kezdemnyezzen krseket: forward only; Ha a krsek tovbbtst az /etc/resolv.conf llomnyban megadott bejegyzsek mentn szeretnnk automatikusan konfigurlni, akkor vegyk ki a megjegyzsbl az albbi sort s adjuk hozz az /etc/rc.conf llomnyhoz a name_auto_forward=yes sort. Emellett hasznlhat mg a named_auto_forward_only bellts is (amely fentebb lert funkcit valstja meg). include "/etc/namedb/auto_forward.conf";

Ahogy arrl a megjegyzsekben is sz esik, gy tudjuk aktivlni a gyorsttrat, ha megadjuk a forwarders belltst. Normlis krlmnyek kztt a nvszerver az interneten az egyes nvszervereket rekurzvan fogja keresni egszen addig, amg meg nem tallja a keresett vlaszt. Az imnti bellts engedlyezsvel azonban elszr a szolgltat nvszervert (vagy az ltala kijellt nvszervert) fogjuk megkrdezni, a sajt gyorsttrbl. Ha a szolgltat krdses nvszervere egy gyakran hasznlt, gyors nvszerver, akkor ezt rdemes bekapcsolnunk.
FigyelemItt a 127.0.0.1 megadsa nem mkdik. Mindenkppen rjuk t a szolgltatnk nvszervernek IP-cmre.

/* A BIND legjabb vltozataiban alaprtelmezs szerint minden egyes kimen krsnl ms, vletlenszeren vlasztott UDP portot hasznlnak, ezltal jelents mrtkben cskkenthet a gyorsttr meghamisthatsgnak (cache poisoning) eslye. Javasoljuk mindenkinek, hogy hasznljk ki ezt a lehetsget s eszerint lltsk be a tzfalakat. Ha nem sikerl a tzfalat hozzigaztani ehhez a viselkedshez AKKOR S CSAK IS AKKOR engedlyezzk a lenti belltst. Alkalmazsval sokkal kevsb lesz ellenll a nvszerver a klnbz hamistsi ksrletekkel szemben, ezrt lehetsg szerint kerljk el. Az NNNNN helyre egy 49160 s 65530 kzti szmot kell bernunk. */ // query-source address * port NNNNN; }; // Ha engedlyezzk a helyi nvszervert, akkor az /etc/resolv.conf

794

Fejezet 29. Hlzati szerverek


// llomnyban els helyen megadni a 127.0.0.1 cmet. St, az // /etc/rc.conf llomnybl se felejtsk ki. // A hagyomnyos "root-hints" megolds. Hasznljuk ezt VAGY a lentebb // megadott alrendelt znkat. zone "." { type hint; file "named.root"; }; /* Tbb szempontbl is elnys, ha a kvetkez znkat alrendeljk a gykr nvfelold szervereknek: 1. A helyi felhasznlk krseit gyorsabban tudjuk feloldalni. 2. A gykrszerverek fel nem megy semmilyen hamis forgalom. 3. A gykrszerverek meghibsodsa vagy elosztott DoS tmads esetn rugalmasabban tudunk reaglni. Msfell azonban ez a mdszer a "hints" llomny alkalmazsval szemben tbb felgyeletet ignyel, mivel figyelnnk kell, nehogy egy vratlan meghibsods mkdskptelenn tegye a szervernket. Ez a megolds leginkbb a sok klienst kiszolgl nvszerverek esetn bizonyulhat jvedelmezbbnek. vatosan bnjunk vele! A mdszer alkalmazshoz vegyk ki a megjegyzsbl a kvetkez bejegyzseket s tegyk megjegyzsbe a fenti hint znt. */ zone "." { type slave; file "slave/root.slave"; masters { 192.5.5.241; // F.ROOT-SERVERS.NET. }; notify no; }; zone "arpa" { type slave; file "slave/arpa.slave"; masters { 192.5.5.241; // F.ROOT-SERVERS.NET. }; notify no; } zone "in-addr.arpa" { type slave; file "slave/in-addr.arpa.slave"; masters { 192.5.5.241; // F.ROOT-SERVERS.NET. }; notify no; }; */

795

Fejezet 29. Hlzati szerverek


/* Az albbi znk helyi kiszolglsval meg tudjuk akadlyozni, hogy a bellk indtott krsek elhagyjk a hlzatunkat s a elrjk a gykr nvfelold szervereket. Ez a megkzelts kt komoly elnnyel rendelkezik: 1. A helyi felhasznlk krseit gyorsabban tudjuk megvlaszolni. 2. A gykrszerverek fel nem tovbbtdik semmilyen hamis forgalom. */ // RFC 1912 zone "localhost" { type master; file "master/localhost-forward.db"; }; zone "127.in-addr.arpa" { type master; file "master/localhost-reverse.db"; }; zone "255.in-addr.arpa" { type master; file "master/empty.db"; }; // A helyi IPv6 cmek rszre ltrehozott RFC 1912-szer zna zone "0.ip6.arpa" { type master; file "master/localhost-reverse.db"; }; // "Ez" a hlzat (RFC 1912 s 3330) zone "0.in-addr.arpa" { type master; file "master/empty.db"; }; // Magncl hlzatok (RFC 1918) zone "10.in-addr.arpa" { type master; file "master/empty.db"; }; zone "16.172.in-addr.arpa" { type master; file "master/empty.db"; }; zone "17.172.in-addr.arpa" { type master; file "master/empty.db"; }; zone "18.172.in-addr.arpa" { type master; file "master/empty.db"; }; zone "19.172.in-addr.arpa" { type master; file "master/empty.db"; }; zone "20.172.in-addr.arpa" { type master; file "master/empty.db"; }; zone "21.172.in-addr.arpa" { type master; file "master/empty.db"; }; zone "22.172.in-addr.arpa" { type master; file "master/empty.db"; }; zone "23.172.in-addr.arpa" { type master; file "master/empty.db"; }; zone "24.172.in-addr.arpa" { type master; file "master/empty.db"; }; zone "25.172.in-addr.arpa" { type master; file "master/empty.db"; }; zone "26.172.in-addr.arpa" { type master; file "master/empty.db"; }; zone "27.172.in-addr.arpa" { type master; file "master/empty.db"; }; zone "28.172.in-addr.arpa" { type master; file "master/empty.db"; }; zone "29.172.in-addr.arpa" { type master; file "master/empty.db"; }; zone "30.172.in-addr.arpa" { type master; file "master/empty.db"; }; zone "31.172.in-addr.arpa" { type master; file "master/empty.db"; }; zone "168.192.in-addr.arpa" { type master; file "master/empty.db"; }; // Helyi link/APIPA (RFC 3330 s 3927) zone "254.169.in-addr.arpa" { type master; file "master/empty.db"; }; // Dokumentcis prbahlzat (RFC 3330) zone "2.0.192.in-addr.arpa" { type master; file "master/empty.db"; }; // tvlasztsi teljestmny tesztelsre (RFC 3330) zone "18.198.in-addr.arpa" { type master; file "master/empty.db"; }; zone "19.198.in-addr.arpa" { type master; file "master/empty.db"; }; // Az IANA rszre fentartott - a rgi E osztly cmtr zone "240.in-addr.arpa" { type master; file "master/empty.db"; }; zone "241.in-addr.arpa" { type master; file "master/empty.db"; };

796

Fejezet 29. Hlzati szerverek


zone zone zone zone zone zone zone zone zone zone zone zone zone "242.in-addr.arpa" "243.in-addr.arpa" "244.in-addr.arpa" "245.in-addr.arpa" "246.in-addr.arpa" "247.in-addr.arpa" "248.in-addr.arpa" "249.in-addr.arpa" "250.in-addr.arpa" "251.in-addr.arpa" "252.in-addr.arpa" "253.in-addr.arpa" "254.in-addr.arpa" { { { { { { { { { { { { { type type type type type type type type type type type type type master; master; master; master; master; master; master; master; master; master; master; master; master; file file file file file file file file file file file file file "master/empty.db"; "master/empty.db"; "master/empty.db"; "master/empty.db"; "master/empty.db"; "master/empty.db"; "master/empty.db"; "master/empty.db"; "master/empty.db"; "master/empty.db"; "master/empty.db"; "master/empty.db"; "master/empty.db"; }; }; }; }; }; }; }; }; }; }; }; }; };

// Hozzrendels nlkli IPv6-cmek (RFC 4291) zone "1.ip6.arpa" { type master; file "master/empty.db"; }; zone "3.ip6.arpa" { type master; file "master/empty.db"; }; zone "4.ip6.arpa" { type master; file "master/empty.db"; }; zone "5.ip6.arpa" { type master; file "master/empty.db"; }; zone "6.ip6.arpa" { type master; file "master/empty.db"; }; zone "7.ip6.arpa" { type master; file "master/empty.db"; }; zone "8.ip6.arpa" { type master; file "master/empty.db"; }; zone "9.ip6.arpa" { type master; file "master/empty.db"; }; zone "a.ip6.arpa" { type master; file "master/empty.db"; }; zone "b.ip6.arpa" { type master; file "master/empty.db"; }; zone "c.ip6.arpa" { type master; file "master/empty.db"; }; zone "d.ip6.arpa" { type master; file "master/empty.db"; }; zone "e.ip6.arpa" { type master; file "master/empty.db"; }; zone "0.f.ip6.arpa" { type master; file "master/empty.db"; }; zone "1.f.ip6.arpa" { type master; file "master/empty.db"; }; zone "2.f.ip6.arpa" { type master; file "master/empty.db"; }; zone "3.f.ip6.arpa" { type master; file "master/empty.db"; }; zone "4.f.ip6.arpa" { type master; file "master/empty.db"; }; zone "5.f.ip6.arpa" { type master; file "master/empty.db"; }; zone "6.f.ip6.arpa" { type master; file "master/empty.db"; }; zone "7.f.ip6.arpa" { type master; file "master/empty.db"; }; zone "8.f.ip6.arpa" { type master; file "master/empty.db"; }; zone "9.f.ip6.arpa" { type master; file "master/empty.db"; }; zone "a.f.ip6.arpa" { type master; file "master/empty.db"; }; zone "b.f.ip6.arpa" { type master; file "master/empty.db"; }; zone "0.e.f.ip6.arpa" { type master; file "master/empty.db"; }; zone "1.e.f.ip6.arpa" { type master; file "master/empty.db"; }; zone "2.e.f.ip6.arpa" { type master; file "master/empty.db"; }; zone "3.e.f.ip6.arpa" { type master; file "master/empty.db"; }; zone "4.e.f.ip6.arpa" { type master; file "master/empty.db"; }; zone "5.e.f.ip6.arpa" { type master; file "master/empty.db"; }; zone "6.e.f.ip6.arpa" { type master; file "master/empty.db"; }; zone "7.e.f.ip6.arpa" { type master; file "master/empty.db"; }; // IPv6 ULA (RFC 4193) zone "c.f.ip6.arpa" { type master; file "master/empty.db"; }; zone "d.f.ip6.arpa" { type master; file "master/empty.db"; };

797

Fejezet 29. Hlzati szerverek


// IPv6 helyi link (RFC zone "8.e.f.ip6.arpa" { zone "9.e.f.ip6.arpa" { zone "a.e.f.ip6.arpa" { zone "b.e.f.ip6.arpa" { // Elavult IPv6 helyi zone "c.e.f.ip6.arpa" zone "d.e.f.ip6.arpa" zone "e.e.f.ip6.arpa" zone "f.e.f.ip6.arpa" 4291) type master; type master; type master; type master;

file file file file

"master/empty.db"; "master/empty.db"; "master/empty.db"; "master/empty.db";

}; }; }; };

cmek (RFC 3879) { type master; file { type master; file { type master; file { type master; file

"master/empty.db"; "master/empty.db"; "master/empty.db"; "master/empty.db";

}; }; }; };

// Az IP6.INT mr elavult (RFC 4159) zone "ip6.int" { type master; file "master/empty.db"; }; // // // // // // // // // // // // // // // // // // // FONTOS: Ne hasznljuk ezeket az IP-cmeket, mert nem valdiak, csupn illusztrcis s dokumentcis clokbl adtuk meg! Az alrendelt znk belltsaira vonatkoz bejegyzsek. rdemes ilyet belltani legalbb ahhoz a znhoz, amelyhez a tartomnyunk is tartozik. Az elsdleges nvszerverhez tartoz IP-cmet rdekldjk meg az illetkes hlzati rendszergazdtl. Soha ne felejtsnk el megadni znt az inverz keresshez! A neve az IP-cm tagjainak fordtott sorrendjbl // szrmazik, amelyhez hozztoldunk mg egy ".IN-ADDR.ARPA" (illetve IPv6 esetn ".IP6.ARPA") rszt. Mieltt nekiltnnk egy elsdleges zna belltsnak, gondoljuk vgig, hogy tnyleg a megfelel szinten ismerjk a nvfelolds s a BIND mkdst. Gyakran ugyanis egyltaln nem nyilvnval csapdkba tudunk esni. Egy alrendelt zna belltsa ltalban sokkal egyszerbb feladat. FONTOS: Ne kvessk vakon a most kvetkez pldt :-) Helyette inkbb valdi neveket s cmeket adjunk meg.

/* Plda dinamikus znra key "mintaorgkulcs" { algorithm hmac-md5; secret "sf87HJqjkqh8ac87a02lla=="; }; zone "minta.org" { type master; allow-update { key "mintaorgkulcs"; }; file "dynamic/minta.org"; }; */ /* Plda inverz alrendelt znkra zone "1.168.192.in-addr.arpa" { type slave; file "slave/1.168.192.in-addr.arpa";

798

Fejezet 29. Hlzati szerverek


masters { 192.168.1.1; }; }; */

A named.conf llomnyban teht gy adhatunk meg kzvetlen s inverz alrendelt znkat. Minden egyes jabb kiszolglt znhoz az egy j bejegyzst kell felvenni a named.conf llomnyban. Pldul a minta.org cmhez tartoz legegyszerbb ilyen bejegyzs gy nz ki:
zone "minta.org" { type master; file "master/minta.org"; };

Ez egy kzponti zna, ahogy arrl a type mez, vagyis a tpusa is rulkodik. Tovbb a file mezben lthatjuk, hogy a hozztartoz informcikat az /etc/namedb/master/minta.org llomnyban trolja.
zone "minta.org" { type slave; file "slave/minta.org"; };

Az alrendelt esetben a znhoz tartoz informcikat a zna kzponti szervertl kapjuk meg s megadott llomnyban mentjk el. Ha valamirt a kzponti szerver lell vagy nem rhet el, akkor az alrendelt szerver az tkldtt zna informcik alapjn kpes helyette kiszolglni a krseket.

29.6.6.2. A zna llomnyok


A minta.org cmhez tartoz plda kzponti zna llomny (amely az /etc/namedb/master/nven.org rhet el) tartalma az albbi:
$TTL 3600 minta.org. ; alaprtelmezs szerint 1 ra IN SOA ns1.minta.org. 2006051501 10800 3600 604800 300 )

admin.minta.org. ( ; sorozatszm ; frissts ; ismtls ; lejrat ; TTL negatv vlasz

; nvszerverek IN IN ; MX rekordok IN IN IN MX 10 MX 20 A mx.minta.org. levelezes.minta.org. 192.168.1.1 NS NS ns1.minta.org. ns2.minta.org.

799

Fejezet 29. Hlzati szerverek


; a gpek nevei localhost IN ns1 IN ns2 IN mx IN levelezes IN ; lnevek www

A A A A A

127.0.0.1 192.168.1.2 192.168.1.3 192.168.1.4 192.168.1.5

IN

CNAME

minta.org.

A .-ra vgzd hlzati nevek abszolt nevek, mg minden ms . nlkli nv az sre vezehet vissza (teht relatv). Pldul az ns1 nvbl az ns1.minta.org keletkezik. A zna llomnyok felptse a kvetkez:
rekordnv IN rekordtpus rtk

A nvfeloldsban leggyakrabban alkalmazott rekordok tpusai: SOA a zna fennhatsgnak kezdete NS egy hitelestett nvszerver A egy gp cme CNAME egy lnv kanonikus neve MX levlvlt PTR mutat a tartomnynvre (az inverz felolds hasznlja)
minta.org. IN SOA ns1.minta.org. admin.minta.org. ( 2006051501 ; sorozatszm 10800 ; 3 rnknt frisstsnk 3600 ; 1 ra utn prblkozzunk jra 604800 ; 1 ht utn jr le 300 ) ; TTL negatv vlasz

minta.org.

a tartomny neve, amely egyben a zna se

800

Fejezet 29. Hlzati szerverek


ns1.minta.org.

a zna elsdleges/hitelestett nvszervere


admin.minta.org.

a znrt felels szemly neve, akinek az e-mail cmt a @ behelyettestsvel kapjuk meg. (Teht a <admin@example.org> cmbl admin.example.org lesz.)
2006051501

az llomny sorozatszma. Ezt a zna llomny mdostsakor mindig nvelnnk kell. Manapsg a rendszergazdk a sorozatszmot hhnnvv alakban adjk meg. A 2006051501 teht azt jelenti, hogy az llomnyt 2006. mjus 15-n mdostottk utoljra, s a 01 pedig arra utal, hogy aznap elszr. A sorozatszm megadsa fontos az alrendelt nvszerverek szmra, mivel gy tudjk megllaptani, hogy a zna mikor vltozott utoljra.
IN NS ns1.minta.org.

Ez egy NS bejegyzs. A znhoz tartoz minden hitelestett nvszervernek lennie kell legalbb egy ilyen bejegyzsnek.
localhost ns1 ns2 mx levelezes IN IN IN IN IN A A A A A 127.0.0.1 192.168.1.2 192.168.1.3 192.168.1.4 192.168.1.5

Az A rekord egy gp nevt adja meg. Ahogy a fenti pldbl is kiderl, az ns1.minta.org nv a 192.168.1.2 cmre kpzdik le.
IN A 192.168.1.1

Ez a sor 192.168.1.1 cmet rendeli az aktulis shz, amely jelen esetnkben az example.org.
www IN CNAME @

A kanonikus neveket trol rekordokat ltalban egy gp lneveihez hasznljuk. Ebben a pldban a www a fgp egyik lneve, amely itt ppensggel a minta.org (192.168.1.1) tartomnyneve. A CNAME rekordok mell ms tpus rekordokat ugyanarra a hlzati nvre soha ne adjunk meg.
IN MX 10 levelezes.minta.org.

Az MX rekord adja meg, hogy milyen levelez szerverek felelsek a znba rkez levelek fogadsrt. A levelezes.minta.org a levelez szerver hlzati neve, ahol a 10 az adott levelez szerver prioritsa. Tbb levelez szerver is megadhat 10-es, 20-as stb. prioritsokkal. A minta.org tartomnyon bell elszr mindig a legnagyobb MX prioritssal rendelkez levelez szervernek prbljuk meg tovbbtani a leveleket (a legkisebb prioritsi rtkkel rendelkez rekord), majd ezutn a msodik legnagyobbnak stb. egszen addig, amg a levelet tovbb nem kldtk. Az in-addr.arpa zna llomnyok (inverz DNS) esetn ugyanez a felpts, kivve, hogy a PTR tpus bejegyzsek szerepelnek az A s CNAME helyett.
$TTL 3600

801

Fejezet 29. Hlzati szerverek

1.168.192.in-addr.arpa. IN SOA ns1.minta.org. admin.minta.org. ( 2006051501 ; sorozatszm 10800 ; frissts 3600 ; ismtls 604800 ; lejrat 300 ) ; TTL negatv vlasz IN IN 1 2 3 4 5 IN IN IN IN IN NS NS PTR PTR PTR PTR PTR ns1.minta.org. ns2.minta.org. minta.org. ns1.minta.org. ns2.minta.org. mx.minta.org. levelezes.minta.org.

Ez az llomny rja le teht a kitallt tartomnyunkon bell az IP-cmek s hlzati nevek sszerendelst. rdemes megemlteni, hogy a PTR rekordok jobb oldaln ll nevek mindegyiknek teljes hlzati nvnek kell lennie (vagyis . karakterrel kell vgzdnie).

29.6.7. A gyorsttraz nvszerver


A gyorsttraz nvszerver az a nvszerver, amely elsdleges feladata a rekurzv krsek kiszolglsa. Egyszeren tovbbtja a berkez krseket, majd megjegyzi azokat, gy ksbb kzvetlenl tud vlaszolni.

29.6.8. Biztonsg
Habr a nvfelolds szempontjbl a BIND a legelterjedtebb, a biztonsgossgval azrt akadnak gondok. Gyakran tallnak benne potencilis s kihasznlhat biztonsgi rseket. A FreeBSD azonban a named dmont automatikusan egy chroot(8) krnyezetbe helyezi. Emellett mg lteznek tovbbi ms vdelmi mechanizmusok is, amelyek segtsgvel el tudjuk kerlni a nvfeloldst clz esetleges tmadsokat. Sosem rt olvasgatni a CERT (http://www.cert.org/) ltal kiadott biztonsgi gyelmeztetseket s feliratkozni a FreeBSD security notications levelezsi lista (http://lists.FreeBSD.org/mailman/listinfo/freebsd-security-notications) cmre, hogy folyamatosan rtesljnk az interneten s a FreeBSD-ben tallt klnbz biztonsgi hibkrl.
Tipp: Ha valamilyen gondunk tmadna, akkor esetleg prblkozzunk meg a forrsaink frisstsvel s a named jrafordtsval.

802

Fejezet 29. Hlzati szerverek

29.6.9. Egyb olvasnivalk


A BIND/named man oldalai: rndc(8) named(8) named.conf(5)

Az ISC BIND hivatalos honlapja (angolul) (http://www.isc.org/software/bind) Az ISC BIND hivatalos fruma (angolul) (http://www.isc.org/software/guild) OReilly DNS and BIND 5th Edition (http://www.oreilly.com/catalog/dns5/) RFC1034 - Domain Names - Concepts and Facilities (http://www.rfc-editor.org/rfc/rfc1034.txt) RFC1035 - Domain Names - Implementation and Specication (http://www.rfc-editor.org/rfc/rfc1035.txt)

29.7. Az Apache webszerver


Ksztette: Murray Stokely.

29.7.1. ttekints
A FreeBSD szolglja ki a legforgalmasabb honlapok nagy rszt szerte a vilgban. A mgttk ll webszerverek ltalban az Apache webszervert alkalmazzk. Az Apache hasznlathoz szksges csomagok megtallhatak a FreeBSD teleptlemezn is. Ha a FreeBSD els teleptsekor mg nem teleptettk volna az Apache szervert, akkor a www/apache13 vagy www/apache12 portbl tudjuk feltenni. Az Apache szervert sikeres teleptst kveten be kell lltanunk.
Megjegyzs: Ebben a szakaszban az Apache webszerver 1.3.X vltozatt mutatjuk be, mivel ezt hasznljk a legtbben FreeBSD alatt. Az Apache 2.X rengeteg j technolgit vezetett be, de ezekkel itt most nem foglalkozunk. Az Apache 2.X vltozatval kapcsolatban keressk fel a http://httpd.apache.org/ oldalt.

29.7.2. Bellts
Az Apache webszerver kongurcis llomnya FreeBSD alatt /usr/local/etc/apache/httpd.conf nven tallhat. Ez az llomny egy szokvnyos UNIX-os szveges kongurcis llomny, ahol a megjegyzseket egy # karakterrel vezetjk be. Az itt hasznlhat sszes lehetsges belltsi lehetsg tfog ismertetse meghaladn az egsz kziknyv hatrait, ezrt most csak a leggyakrabban mdostott direktvkat fogjuk ismertetni.
ServerRoot "/usr/local"

Ez adja meg az Apache szmra az alaprtelmezett knyvtrat. A binrisai ezen bell a bin s sbin alknyvtrakban, a kongurcis llomnyai pedig az etc/apache knyvtrban troldnak.
ServerAdmin sajt@cmnk.az.interneten

Erre a cmre kldhetik neknk a szerverrel kapcsolatos hibkat. Ez a cm egyes szerver ltal generlt oldalakon jelenik meg, pldul hibk esetben.

803

Fejezet 29. Hlzati szerverek


ServerName www.minta.com

A ServerName segtsgvel meg tudjuk adni, hogy milyen nevet kldjn vissza a szerver a klienseknek olyankor, ha az nem egyezne meg a jelenlegivel (vagyis a www nevet hasznljuk a gpnk valdi neve helyett).
DocumentRoot "/usr/local/www/data"

A DocumentRoot adja meg azt a knyvtrat, ahonnan kiszolgljuk a dokumentumokat. Alaprtelmezs szerint az sszes krs erre a knyvtrra fog vonatkozni, de a szimbolikus linkek s az lnevek akr ms helyekre is mutathatnak. A vltoztatsok vgrehajtsa eltt mindig is j tlet biztonsgi msolatot kszteni az Apache kongurcis llomnyairl. Ahogy sikerlt sszerakni egy szmunkra megfelel kongurcit, kszen is llunk az Apache futtatsra.

29.7.3. Az Apache futtatsa


A tbbi hlzati szervertl eltren az Apache nem az inetd szuperszerverbl fut. A kliensektl rkez HTTP krsek minl gyorsabb kiszolglsnak rdekben gy lltottuk be, hogy nllan fusson. Ehhez egy szkriptet is mellkeltnk, amellyel igyekeztnk a lehet legjobban leegyszersteni a szerver indtst, lelltst s jraindtst. Az Apache els indtshoz adjuk ki a kvetkez parancsot:
# /usr/local/sbin/apachectl start

gy pedig a szervert brmikor lellthatjuk:


# /usr/local/sbin/apachectl stop

Ha valamilyen okbl megvltoztattuk volna a szerver belltsait, akkor ezen a mdon tudjuk jraindtani:
# /usr/local/sbin/apachectl restart

Ha a jelenleg megnyitott kapcsolatok felbontsa nlkl akarjuk jraindtani az Apache szervert, akkor ezt rjuk be:
# /usr/local/sbin/apachectl graceful

Mindezekrl az apachectl(8) man oldalon tallunk bvebb lerst. Amennyiben szksgnk lenne az Apache elindtsra a rendszer indtsakor, akkor a kvetkez sort vegynk fel az /etc/rc.conf llomnyba:
apache_enable="YES"

Az Apache 2.2 esetben:


apache22_enable="YES"

Amikor az Apache httpd nev programjnak szeretnnk tovbbi paranccsori paramtereket tadni a rendszer indtsa sorn, akkor ezeket gy tudjuk megadni az rc.conf llomnyban:
apache_flags=""

804

Fejezet 29. Hlzati szerverek Most, miutn a webszervernk mkdik, a bngsznkkel mindezt ellenrizni is tudjuk a http://localhost/ cm bersval. Ilyenkor az alaprtelmezs szerinti /usr/local/www/data/index.html llomny tartalmt lthatjuk.

29.7.4. Virtulis nevek


Az Apache a virtulis nevek hasznlatnak kt klnbz mdjt ismeri. Ezek kzl az els mdszer a nv alap virtualizci (Name-based Virtual Hosting). Ilyenkor a kliens HTTP/1.1 fejlcbl prblja meg a szerver megllaptani a hivatkozsi nevet. Segtsgvel tbb tartomny is osztozhat egyetlen IP-cmen. Az Apache nv alap virtualizcijnak belltshoz az albbi belltst kell hozztennnk a httpd.conf llomnyhoz:
NameVirtualHost *

Ha a webszervernk neve www.tartomany.hu, s hozz egy www.valamilyenmasiktartomany.hu virtulis nevet akarunk megadni, akkor azt a kvetkezkppen tehetjk meg a httpd.conf llomnyon bell:
<VirtualHost *> ServerName www.tartomany.hu DocumentRoot /www/tartomany.hu </VirtualHost> <VirtualHost *> ServerName www.valamilyenmasiktartomany.hu DocumentRoot /www/valamilyenmasiktartomany.hu </VirtualHost>

A cmek s elrsi utak helyre helyettestsk be a hasznlni kvnt cmeket s elrsi utakat. A virtulis nevek belltsnak tovbbi rszleteivel kapcsolatosan keressk fel az Apache hivatalos dokumentcijt a http://httpd.apache.org/docs/vhosts/ cmen (angolul).

29.7.5. Apache-modulok
Az alap szerver kpessgeinek kiegsztshez tbb klnbz Apache modul ll rendelkezsnkre. A FreeBSD Portgyjtemnye az Apache teleptse mellett lehetsget ad a npszerbb bvtmnyeinek teleptsre is.

29.7.5.1. mod_ssl
A mod_ssl modul az OpenSSL knyvtr hasznlatval valst meg ers titkostst a biztonsgos socket rteg msodik, illetve harmadik verzijval (Secure Sockets Layer, SSL v2/v3) s a biztonsgos szlltsi rtegbeli (Transport Layer Security v1) protokoll segtsgvel. Ez a modul mindent biztost ahhoz, hogy a megfelel hatsgok ltal alrt tanstvnyokat tudjunk krni, s ezltal egy vdett webszervert futtassunk FreeBSD-n. Ha mg nem teleptettnk volna fel az Apache szervert, akkor a www/apache13-modssl porton keresztl a mod_ssl modullal egytt is fel tudjuk rakni az Apache 1.3.X vltozatt. Az SSL tmogatsa pedig mr az Apache 2.X www/apache22 porton keresztl elrhet vltozataiban alaprtelmezs szerint engedlyezett.

805

Fejezet 29. Hlzati szerverek

29.7.5.2. Kapcsolds nyelvekhez


Mindegyik nagyobb szkriptnyelvhez ltezik egy kln Apache-modul, amelyek segtsgvel komplett Apache-modulokat tudunk kszteni az adott nyelven. Gyakran a dinamikus honlapok is gy prbljk a szerverbe ptett bels rtelmezn keresztl a kls rtelmez indtsbl s benne a szkriptek lefuttatsbl fakad kltsgeket megsprolni, ahogy errl a kvetkez szakaszokban olvashatunk.

29.7.6. Dinamikus honlapok


Az utbbi vtizedben egyre tbb vllalkozs fordult az internet fel bevteleik s rszesedseinek nvelsnek remnyben, amivel egyre jobban megntt az igny a dinamikus honlapokra is. Mikzben bizonyos cgek, mint pldul a Microsoft, a sajt fejleszts termkeikbe ptettek be ehhez tmogatst, addig a nylt forrsokkal foglalkoz kzssg sem maradt ttlen s felvette a kesztyt. A dinamikus tartalom ltrehozshoz tbbek kzt Django, Ruby on Rails, a mod_perl s a mod_php modulok hasznlhatak.

29.7.6.1. Django
A Django egy BSD tpus licensszel rendelkez keretrendszer, amelynek hasznlatval nagy teljestmny s elegns webes alkalmazsokat tudunk gyorsan kifejleszteni. Tartalmaz egy objektum-relcis lekpezt, gy az adattpusokat Python-objektumokknt tudjuk lerni, s ezekhez az objektumokhoz egy sokrt, dinamikus adatbzis hozzfrst nyjt alkalmazsfejleszti felletet, gy a fejlesztknek egyetlen SQL utastst sem kell megrniuk. Tallhatunk mg benne tovbb egy bvthet sablonrendszert, amelynek ksznheten az alkalmazs bels mkdse elvlaszthat a HTML-beli megjelenstl. A Django mkdshez a mod_python modulra, az Apache szerverre s egy tetszlegesen vlasztott SQL alap adatbzisrendszerre van szksg. A hozztartoz FreeBSD port mindezeket automatikusan telepti a megadott belltsok szerint. Plda 29-3. A Django teleptse az Apache, mod_python3 s a PostgreSQL hasznlatval
# cd /usr/ports/www/py-django; make all install clean -DWITH_MOD_PYTHON3 -DWITH_POSTGRESQL

Miutn a Django s a hozz szksges komponensek felkerltek rendszernkre, hozzunk ltre egy knyvtrat a leend Django projektnknek s lltsuk be az Apache szervert, hogy az oldalunk bell a megadott linkekre a sajt alkalmazsunkat hvja meg a begyazott Python-rtelmezn keresztl. Plda 29-4. Az Apache belltsa a Django s mod_python hasznlathoz A kvetkez sort kell hozztennnk a httpd.conf llomnyhoz, hogy az Apache bizonyos linkeket a webes alkalmazs fel irnytson t:
<Location "/"> SetHandler python-program PythonPath "[/a/django/csomagok/helye/] + sys.path" PythonHandler django.core.handlers.modpython SetEnv DJANGO_SETTINGS_MODULE azoldalam.beallitasai PythonAutoReload On PythonDebug On </Location>

806

Fejezet 29. Hlzati szerverek

29.7.6.2. Ruby on Rails


A Ruby on Rails egy olyan msik nylt forrskd keretrendszer, amivel lnyegben egy teljes fejleszti kszletet kapunk s amelyet kifejezetten arra leztk ki, hogy segtsgvel a webfejlesztk sokkal gyorsabban tudjanak haladni s a komolyabb alkalmazsok gyorsabb elksztse se okozzon nekik gondot. A Portrgyjtemnybl pillanatok alatt telepthet.
# cd /usr/ports/www/rubygem-rails; make all install clean

29.7.6.3. mod_perl
Az Apache s Perl egyestsn fradoz projekt a Perl programozsi nyelv s az Apache webszerver erejnek sszehangolsn dolgozik. A mod_perl modulon keresztl Perlben vagyunk kpesek modulokat kszteni az Apache szerverhez. Radsul a szerverben egy bels lland rtelmez is tallhat hozz, ezzel igyekeznek megsprolni a kls rtelmez s a Perl indtsbl keletkez tbbletkltsgeket. A mod_perl tbb klnbz mdon llthat munkba. A mod_perl hasznlathoz nem szabad elfelejtennk, hogy a mod_perl 1.0-s verzija csak az Apache 1.3 vltozatval mkdik, s a mod_perl 2.0-s vltozata pedig csak az Apache 2.X vltozataival. A mod_perl 1.0 a www/mod_perl portbl telepthet, valamint a statikusan beptett vltozata a www/apache13-modperl portban tallhat. A mod_perl 2.0 a www/mod_perl2 portbl rakhat fel.

29.7.6.4. mod_php
rta: Tom Rhodes. A PHP, vagy msik nevn PHP, a hipertext feldolgoz egy ltalnos cl szkriptnyelv, amelyet kifejezetten honlapok fejlesztshez hoztak ltre. A szabvnyos HTML gyazhat nyelv felptsben a C, Java s Perl nyelveket tvzi annak elrse rdekben, hogy ezzel segtse a fejlesztket a dinamikusan generlt oldalak minl gyorsabb megrsban. A PHP5 tmogatst gy tudjuk hozzadni az Apache webszerverhez, ha teleptjk a lang/php5 portot. Ha a lang/php5 portot most teleptjk elszr, akkor a vele kapcsolatos belltsokat tartalmaz OPTIONS men automatikusan megjelenik. Ha ezzel nem tallkoznnk, mert pldul valamikor korbban mr felraktuk volna a lang/php5 portot, akkor a port knyvtrban kvetkez parancs kiadsval tudjuk jra visszahozni:
# make config

A belltsok kztt jelljk be az APACHE opcit, amelynek eredmnyekppen ltrejn az Apache webszerverhez hasznlhat mod_php5 betlthet modul.
Megjegyzs: A PHP4 modult mg ma is rengeteg szerver hasznlja tbb klnbz okbl (pldul kompatibilitsi problmk vagy a mr korbban kiadott tartalom miatt). Ha teht a mod_php5 helyett inkbb a mod_php4 modulra lenne szksgnk, akkor a lang/php4 portot hasznljuk. A lang/php4 portnl is megtallhatjuk a lang/php5 fordtsi idej belltsainak nagy rszt.

Az imntiek rvn teleplnek s belltdnak a dinamikus PHP alkalmazsok tmogatshoz szksges mouldok. Az /usr/local/etc/apache/httpd.conf llomnyban ellenrizni is tudjuk, hogy az albbi rszek megjelentek-e:

807

Fejezet 29. Hlzati szerverek


LoadModule php5_module libexec/apache/libphp5.so

AddModule mod_php5.c <IfModule mod_php5.c> DirectoryIndex index.php index.html </IfModule> <IfModule mod_php5.c> AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps </IfModule>

Ahogy befejezdtt a mvelet, a PHP modul betltshez mindsszesen az apachectl paranccsal kell vatosan jraindtanunk a webszervert:
# apachectl graceful

A PHP jvbeni frisstseihez mr nem lesz szksgnk a make config parancsra, mivel a korbban kivlasztott OPTIONS menn belli belltasainkat a FreeBSD Portgyjtemnyhez tartoz keretrendszer automatikusan elmenti. A PHP FreeBSD-ben megtallhat tmogatsa kifejezetten modulris, ezrt az alap teleptse igencsak korltozott. A tovbbi elemek hozzadshoz a lang/php5-extensions portot tudjuk hasznlni. A port egy menvezrelt felletet nyjt a PHP klnbz bvtmnyeinek teleptshez. Az egyes bvtmnyeket azonban a megfelel portok hasznlatval is fel tudjuk rakni. Pldul PHP5 modulhoz gy tudunk tmogatst adni a MySQL adatbzis szerverhez, ha felteleptjk a databases/php5-mysql portot. Miutn teleptettnk egy bvtmnyt, az Apache szerverrel jra be kell tltetnnk a megvltozott belltsokat:
# apachectl graceful

29.8. llomnyok tvitele (FTP)


Ksztette: Murray Stokely.

29.8.1. ttekints
Az adatllomny tviteli protokoll (File Transfer Protocol, FTP) a felhasznlk szmra lehetsget ad az n. FTP szerverekre llomnyokat feltlteni, illetve onnan llomnyokat letlteni. A FreeBSD alaprendszere is tartalmaz egy ilyen FTP szerverprogramot, ftpd nven. Ezrt FreeBSD alatt egy FTP szerver belltsa meglehetsen egyszer.

29.8.2. Bellts
A bellts legfontosabb lpse, hogy eldntsk milyen hozzfrseken t lehet elrni az FTP szervert. Egy htkznapi FreeBSD rendszerben rengeteg hozzfrs a klnbz dmonokhoz tartozik, de az ismeretlen felhasznlk szmra nem kellene megengednnk ezek hasznlatt. Az /etc/ftpusers llomnyban szerepelnek azok a felhasznlk, akik semmilyen mdon nem rhetik el az FTP szolgltatst. Alaprtelmezs szerint itt

808

Fejezet 29. Hlzati szerverek tallhatjuk az elbb emltett rendszerszint hozzfrseket is, de ide minden tovbbi nlkl felvehetjk azokat a felhasznlkat, akiknl nem akarjuk engedni az FTP elrst. Ms esetekben elfordulhat, hogy csak korltozni akarjuk egyes felhasznlk FTP elrst. Ezt az /etc/ftpchroot llomnyon keresztl tehetjk meg. Ebben az llomnyban a lekorltozni kvnt felhasznlkat s csoportokat rhatjuk bele. Az ftpchroot(5) man oldaln olvashatjuk el ennek rszleteit, ezrt ennek pontos rszleteit itt most nem trgyaljuk. Ha az FTP szervernkhz nvtelen (anonim) hozzfrst is engedlyezni akarunk, akkor ahhoz elszr ksztennk kell egy ftp nev felhasznlt a FreeBSD rendszernkben. A felhasznlk ezutn az ftp vagy anonymous nevek, valamint egy tetszleges jelsz (ez a hagyomnyok szerint a felhasznl e-mail cme) hasznlatval is kpesek lesznek bejelentkezni. Az FTP szerver ezutn a nvtelen felhasznlk esetben meghvja a chroot(2) rendszerhvst, s ezzel lekorltozza hozzfrsket az ftp felhasznl knyvtrra. Kt szveges llomnyban adhatunk meg a becsatlakoz FTP kliensek szmra dvzl zeneteket. Az /etc/ftpwelcome llomny tartalmt mg a bejelentkezs eltt ltni fogjk a felhasznlk, a sikeres bejelentkezst kveten pedig az /etc/ftpmotd llomny tartalmt ltjk. Vigyzzunk, mert ennek az llomnynak mr a bejelentkezsi krnyezethez kpest relatv az elrse, ezrt a nvtelen felhasznlk esetben ez konkrtan az ~ftp/etc/ftpmotd llomny lesz. Ahogy belltottuk az FTP szervert, az /etc/inetd.conf llomnyban is engedlyeznnk kell. Itt mindssze annyira lesz szksgnk, hogy eltvoltsuk a megjegyzst jelz # karaktert a mr meglev ftpd sor ell:
ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l

Ahogy arrl mr a 29-1 Plda szt ejtett, az inetd belltsait jra be kell olvastatnunk a kongurcis llomny megvltoztatsa utn. A 29.2.2 Szakasz rja le az inetd engedlyezsnek rszleteit. Az ftpd nll szerverknt is elindthat. Ehhez mindssze elegend csak a megfelel vltozt belltani az
/etc/rc.conf llomnyban: ftpd_enable="YES"

Miutn megadtuk az imnti vltozt, a szerver el fog indulni a rendszer kvetkez indtsa sorn. Szksg esetn termszetesen root felhasznlknt a kvetkez paranccsal is kzvetlenl elindthat:
# /etc/rc.d/ftpd start

Most mr be is tudunk jelentkezni az FTP szerverre:


% ftp localhost

29.8.3. Karbantarts
Az ftpd dmon a syslog(3) hasznlatval naplzza az zeneteket. Alaprtelmezs szerint a rendszernaplz dmon az FTP mkdsre vonatkoz zeneteket az /var/log/xferlog llomnyba rja. Az FTP naplinak helyt az /etc/syslog.conf llomnyban tudjuk mdostani:
ftp.info /var/log/xferlog

Legynk krltekintek a nvtelen FTP szerverek zemeltetsekor. Azt pedig ktszer is gondoljuk meg, hogy engedlyezzk-e a nvtelen felhasznlk szmra llomnyok feltltst, hiszen knnyen azon kaphatjuk magunkat,

809

Fejezet 29. Hlzati szerverek hogy az FTP oldalunk illeglis llomnycserk sznterv vlik vagy esetleg valami sokkal rosszabb trtnik. Ha mindenkppen szksgnk lenne erre a lehetsgre, akkor lltsunk be olyan engedlyeket a feltlttt llomnyokra, hogy a tbbi nvtelen felhasznl ezeket a tartalmuk tzetes ellenrzsig ne is olvashassa.

29.9. llomny- s nyomtatsi szolgltatsok Microsoft Windows kliensek szmra (Samba)


Ksztette: Murray Stokely.

29.9.1. ttekints
A Samba egy olyan elterjedt nylt forrskd szoftver, ami Microsoft Windows kliensek szmra tesz lehetv llomny- s nyomtatsi szolgltatsokat. Az ilyen kliensek ltala helyi meghajtknt kpesek elrni a FreeBSD llomnyrendszert, vagy helyi nyomtatknt a FreeBSD ltalt kezelt nyomtatkat. A Samba csomagja ltalban megtallhat a FreeBSD telepteszkzn. Ha a FreeBSD-vel egytt nem raktuk fel a Samba csomagjt, akkor ezt ksbb net/samba3 port vagy csomag teleptsvel ptolhatjuk.

29.9.2. Bellts
A Samba kongurcis llomnya a telepts utn /usr/local/share/examples/samba/smb.conf.default nven tallhat meg. Ezt kell lemsolnunk /usr/local/etc/smb.conf nven, amelyet aztn a Samba tnyleges hasznlata eltt mdostanunk kell. Az smb.conf llomny a Samba futshoz hasznlt belltsokat tartalmazza, mint pldul Windows kliensek szmra felknlt a nyomtatk s megosztsok adatait. A Samba csomagban ezen kvl tallhatunk mg egy swat nev webes eszkzt, amellyel egyszer mdon tudjuk az smb.conf llomnyt lltgatni.

29.9.2.1. A Samba webes adminisztrcis eszkze (SWAT)


A Samba webes adminisztrcis segdeszkze (Samba Web Administration Tool, SWAT) az inetd dmonon keresztl fut dmonknt. Ennek megfeleln az /etc/inetd.conf llomnyban a kvetkez sort kell kivennnk megjegyzsbl, mieltt a swat segtsgvel megkezdennk a Samba belltst:
swat stream tcp nowait/400 root /usr/local/sbin/swat swat

Ahogy azt a 29-1 Plda is mutatja, az inetd dmont jra kell indtanunk a megvltozott kongurcis llomnynak jbli beolvasshoz. Miutn az inetd.conf llomnyban a swat engedlyezsre kerlt, a bngsznk segtsgvel prbljunk meg a http://localhost:901 cmre csatlakozni. Elszr a rendszer root hozzfrsvel kell bejelentkeznnk. Miutn sikeresen bejelentkeztnk a Samba belltsait trgyal lapra, el tudjuk olvasni a rendszer dokumentcijt, vagy a Globals flre kattintva nekilthatunk a belltsok elvgzsnek. A Globals rszben tallhat opcik az /usr/local/etc/smb.conf llomny [global] szekcijban tallhat vltozkat tkrzik.

810

Fejezet 29. Hlzati szerverek

29.9.2.2. ltalnos belltsok


Akr a swat eszkzzel, akr a /usr/local/etc/smb.conf kzvetlen mdostsval dolgozunk, a Samba belltsa sorn a kvetkezkkel mindenkppen ssze fogunk futni:
workgroup

A szervert elrni kvn szmtgpek ltal hasznlt NT tartomny vagy munkacsoport neve.
netbios name

A Samba szerver NetBIOS neve. Alaprtelmezs szerint ez a nv a gp hlzati nevnek els tagja.
server string

Ez a szveg jelenik meg akkor, ha pldul a net view paranccsal vagy valamilyen ms hlzati segdprogrammal krdezzk le a szerver beszdesebb lerst.

29.9.2.3. Biztonsgi belltsok


A /usr/local/etc/smb.conf llomnyban a kt legfontosabb bellts a vlasztott biztonsgi modell s a kliensek felhasznli jelszavainak trolshoz hasznlt formtum. Az albbi direktvk vezrlik ezeket:
security

Itt a kt leggyakoribb bellts a security = share s a security = user. Ha a kliensek a FreeBSD gpen tallhat felhasznli neveiket hasznljk, akkor felhasznli szint vdelemre van szksgnk (teht a user belltsra). Ez az alaprtelmezett biztonsgi hzirend s ilyenkor a klienseknek elszr be kell jelentkeznik a megosztott erforrsok elrshez. A megoszts (share) szint vdelem esetben, a klienseknek nem kell a szerveren rvnyes felhasznli nvvel s jelszval rendelkeznik a megosztott erforrsok elrshez. Ez volt az alapbellts a Samba korbbi vltozataiban.
passdb backend

A Samba szmos klnbz hitelestsi modellt ismer. A klienseket LDAP, NIS+, SQL adatbzis vagy esetleg egy mdostott jelsz llomnnyal is tudjuk hitelesteni. Az alaprtelmezett hitelestsi mdszer a smbpasswd, gy itt most ezzel foglalkozunk. Ha feltesszk, hogy az alaprtelmezett smbpasswd formtumot vlasztottuk, akkor a Samba gy fogja tudni hitelesteni a klienseket, ha eltte ltrehozzuk a /usr/local/private/smbpasswd llomnyt. Ha a Windows-os kliensekkel is el akarjuk rni a UNIX-os felhasznli hozzfrseinket, akkor hasznljuk a kvetkez parancsot:
# smbpasswd -a felhasznlnv

Megjegyzs: A Samba a 3.0.23c verzijtl kezdden a hitelestshez szksges llomnyokat a


/usr/local/etc/samba knyvtrban trolja. A felhasznli hozzfrsek hozzadsra innentl mr a tdbsam

parancs hasznlata javasolt:


# pdbedit -a -u felhasznlnv

811

Fejezet 29. Hlzati szerverek A hivatalos Samba HOGYAN (http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/) ezekrl a belltsokrl szolgl tovbbi informcikkal (angolul). Viszont az itt vzolt alapok viszont mr elegendek a Samba elindtshoz.

29.9.3. A Samba elindtsa


A net/samba3 port a Samba irnytsra egy j indt szkriptet tartalmaz. A szkript engedlyezshez, teht ltala a Samba elindtsnak, lelltsnak s jraindtsnak lehetv ttelhez vegyk fel a kvetkez sort az /etc/rc.conf llomnyba:
samba_enable="YES"

Ha mg nomabb irnytsra vgyunk:


nmbd_enable="YES" smbd_enable="YES"

Megjegyzs: Ezzel egyben a rendszer indtsakor automatikusan be is indtjuk a Samba szolgltatst.

A Samba a kvetkezkkel brmikor elindthat:


# /usr/local/etc/rc.d/samba start

Starting SAMBA: removing stale tdbs : Starting nmbd. Starting smbd.

Az rc szkriptekkel kapcsolatban a 11.7 Szakaszt ajnljuk elolvassra. A Samba jelen pillanatban hrom klnll dmonbl ll. Lthatjuk is, hogy az nmbd s smbd dmonokat elindtotta a samba szkript. Ha az smb.conf llomnyban engedlyeztk a winbind nvfeloldsi szolgltatst is, akkor lthatjuk, hogy ilyenkor a winbindd dmon is elindul. A Samba gy llthat le akrmikor:
# /usr/local/etc/rc.d/samba stop

A Samba egy sszetett szoftvercsomag, amely a Microsoft Windows hlzatokkal kapcsolatos szles kr egyttmkdst tesz lehetv. Az ltala felknlt alapvet lehetsgeken tl a tbbit a http://www.samba.org honlapon ismerhetjk meg (angolul).

812

Fejezet 29. Hlzati szerverek

29.10. Az rk egyeztetse az NTP hasznlatval


Ksztette: Tom Hukins.

29.10.1. ttekints
Idvel a szmtgp rja hajlamos elmszni. A hlzati id protokoll (Network Time Protocol, NTP) az egyik mdja az rnk pontosan tartsnak. Rengeteg internetes szolgltats elvrja vagy ppen elnyben rszesti a szmtgp rjnak pontossgt. Pldul egy webszervertl megkrdezhetik, hogy egy llomnyt adott ideje mdostottak-e. A helyi hlzatban az egyazon llomnyszerveren megosztott llomnyok ellentmondsmentes dtumozsa rdekben szinte elengedhetetlen az rk szinkronizlsa. Az olyan szolgltatsok, mint a cron(8) is komolyan ptkeznek a pontosan jr rendszerrra, amikor egy adott pillanatban kell lefuttatniuk parancsokat. A FreeBSD alapbl az ntpd(8) NTP szervert tartalmazza, amellyel ms NTP szerverek segtsgvel tudjuk belltani gpnk rjt, vagy ppen idvel kapcsolatos informcikat szolgltatni msoknak.

29.10.2. A megfelel NTP szerverek kivlasztsa


Az rnk egyeztetshez egy vagy tbb NTP szerverre lesz szksgnk. Elfordulhat, hogy a hlzati rendszergazdnk vagy az internet-szolgltatnk mr belltott egy ilyen szervert erre a clra. Ezzel kapcsolatban olvassuk el a megfelel lersokat. A nyilvnosan elrhet NTP szerverekrl kszlt egy lista (http://ntp.isc.org/bin/view/Servers/WebHome), ahonnan knnyedn ki tudjuk keresni a szmunkra leginkbb megfelel (hozznk legkzelebbi) szervert. Ne hagyjuk gyelmen kvl a szerverre vonatkoz hzirendet s krjnk engedlyt a hasznlathoz, amennyiben ez szksges. Tbb, egymssal kzvetlen kapcsolatban nem ll NTP szerver vlasztsval jrunk jl, ha netaln az egyikk vratlanul elrhetetlenn vagy az rja pontatlann vlna. Az ntpd(8) a visszakapott vlaszokat intelligensen hasznlja fel, mivel esetkben a megbzhat szervereket rszesti elnyben.

29.10.3. A gpnk belltsa


29.10.3.1. Alapvet belltsok
Ha a szmtgpnk indtsakor akarjuk egyeztetni az rnkat, akkor erre az ntpdate(8) nev programot hasznlhatjuk. Ez olyan asztali gpek szmra megfelel vlaszts, amelyeket gyakran indtanak jra s csak idnknt kell szinkronizlnunk. A legtbb gpnek viszont az ntpd(8) hasznlatra van szksge. Az ntpdate(8) elindtsa olyan esetekben is hasznos, ahol az ntpd(8) is fut. Az ntpd(8) az rt fokozatosan lltja, ellenben az ntpdate(8) az eltrs mrtktl s irnytl fggetlenl egyszeren tlltja a gp rjt a pontos idre. Az ntpdate(8) elindtst gy tudjuk engedlyezni a rendszer indtsakor, ha az /etc/rc.conf llomnyba berakjuk az ntpdate_enable="YES" sort. Emellett mg ntpdate_flags vltozban meg kell adnunk az alkalmazott belltsok mellett azokat a szervereket, amelyekkel szinkronizlni akarunk.

813

Fejezet 29. Hlzati szerverek

29.10.3.2. ltalnos belltsok


Az NTP az /etc/ntp.conf llomnyon keresztl llthat, amelyek felptst az ntp.conf(5) man oldal trgyalja. me erre egy egyszer plda:
server ntplocal.minta.com prefer server timeserver.minta.org server ntp2a.minta.net driftfile /var/db/ntp.drift

A server bellts adja meg az egyeztetshez hasznlt szervereket, soronknt egyet. Ha egy szerver mellett szerepel mg a prefer paramter is, ahogy azt a pldban a ntplocal.minta.com mellett lthattuk, akkor a tbbivel szemben azt a szervert fogjuk elnyben rszesteni. Az gy kiemelt szervertl rkez vlaszt abban az esetben viszont eldobjuk, hogy a tbbi szervertl kapott vlasz jelents mrtkben eltr tle. Minden ms esetben a vlasza lesz a mrvad. A prefer paramtert ltalban olyan NTP szerverekhez hasznljk, amelyek kzismerten nagy pontossgak, teht pldul kln erre a clra sznt felgyeleti eszkzt is tartalmaznak. A driftfile belltssal azt az llomnyt adjuk meg, amiben a rendszerra frekvencia eltoldsait troljuk. Az ntpd(8) program ezzel ellenslyozza automatikusan az ra termszetes elmszst, ezltal lehetv tve, hogy egy viszonylag pontos idt kapjuk mg abban az esetben is, amikor egy kis idre kls idforrsok nlkl maradnnk. A driftfile belltssal egyben azt az llomnyt jelljk ki, amely az NTP szervertl kapott korbbi vlaszokat trolja. Ez az NTP mkdshez szksges bels adatokat tartalmaz, ezrt semmilyen ms programnak nem szabad mdostania.

29.10.3.3. A szervernk elrsnek szablyozsa


Alaprtelmezs szerint az NTP szervernket brki kpes elrni az interneten. Az /etc/ntp.conf llomnyban szerepl restrict bellts segtsgvel azonban meg tudjuk mondani, milyen gpek rhetik el a szervernket. Ha az NTP szervernk fel mindenfle prblkozst el akarunk utastani, akkor az /etc/ntp.conf llomnyba a kvetkez sort kell felvennnk:
restrict default ignore

Megjegyzs: Ezzel egyben azonban a helyi belltsainkban szerepl szerverek elrst is megakadlyozzuk. Ha kls NTP szerverekkel is szeretnnk szinkronizlni, akkor itt is engedlyeznk kell ezeket. Errl bvebben lsd az ntp.conf(5) man oldalon.

Ha csak a bels hlzatunkban lev gpek szmra szeretnnk elrhetv tenni az rk egyeztetst, de sem a szerver llapotnak mdostst nem engedlyezzk, sem pedig azt, hogy a vele egyenrang szerverekkel szinkronizljon, akkor az imnti helyett a
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

sort rjuk bele, ahol a 192.168.1.0 a bels hlzatunk IP-cme s a 255.255.255.0 a hozztartoz hlzati maszk. Az /etc/ntp.conf tbb restrict tpus belltst is tartalmazhat. Ennek rszleteirl az ntp.conf(5) man oldalon, az Access Control Support cm szakaszban olvashatunk.

814

Fejezet 29. Hlzati szerverek

29.10.4. Az NTP futtatsa


gy tudjuk az NTP szervert elindtani a rendszernkkel egytt, ha az /etc/rc.conf llomnyban szerepeltetjk az ntpd_enable="YES" sort. Ha az ntpd(8) szmra tovbbi belltsokat is t akarunk adni, akkor az /etc/rc.conf llomnyban adjuk meg az ntpd_flags paramtert. Ha a gpnk jraindtsa nlkl akarjuk elindtani a szerver, akkor az ntpd parancsot adjuk ki az /etc/rc.conf llomnyban a ntpd_flags vltozhoz megadott paramterekkel. Mint pldul:
# ntpd -p /var/run/ntpd.pid

29.10.5. Az ntpd hasznlati idleges internet csatlakozssal


Az ntpd(8) program megfelel mkdshez nem szksges lland internet kapcsolat. Ha azonban igny szerinti trcszssal ptjnk fel ideiglenes kapcsolatot, akkor rdemes letiltani az NTP forgalmt, nehogy feleslegesen aktivlja vagy tartsa letben a vonalat. Ha PPP tpus kapcsolatunk van, akkor az /etc/ppp/ppp.conf llomnyban a filter direktvval tudjuk ezt leszablyozni. Pldul:
set filter dial 0 deny udp src eq 123 # Nem engedjk az NTP ltal kldtt adatoknak, hogy trcszst # kezdemnyezzenek: set filter dial 1 permit 0 0 set filter alive 0 deny udp src eq 123 # Nem engedjk az NTP adatainak, hogy fenntartsk a kapcsolatot: set filter alive 1 deny udp dst eq 123 set filter alive 2 permit 0/0 0/0

Mindenezekrl rszletesebb felvilgostst a ppp(8) man oldal PACKET FILTERING cm szakaszban s a /usr/share/examples/ppp/ knyvtrban tallhat pldkban kaphatunk.
Megjegyzs: Egyes internet-szolgltatk blokkoljk az alacsonyabb portokat, ezltal az NTP nem hasznlhat, mivel a vlaszok nem fogjk elrni a gpnket.

29.10.6. Tovbbi olvasnivalk


Az NTP szerver dokumentcija HTML formtumban a /usr/share/doc/ntp/ knyvtrban tallhat.

29.11. Tvoli gpek naplzsa syslogd hasznlatval


Ksztette: Tom Rhodes. A rendszernaplkkal kapcsolatos mveletek egyarnt fontosak a biztonsg s a karbantarts szempontjbl. Ha kzepes vagy nagyobb mret, esetleg klnbz tpus hlzatokban adminisztrlunk tbb gpet, akkor knnyen

815

Fejezet 29. Hlzati szerverek tlthatatlann vlhat a naplk rendszeres felgyelete. Ilyen helyzetekben a tvoli naplzs belltsval az egsz folyamatot sokkal knyelmesebb tehetjk. Nmileg kpesek vagyunk enyhteni a naplllomnyok kezelsnek terht, ha egyetlen kzponti szerverre kldjk t az adatokat. Ekkor a FreeBSD alaprendszerben megtallhat alapeszkzkkel, mint pldul a syslogd(8) vagy a newsyslog(8) felhasznlsval egyetlen helyen be tudjuk lltani a naplk sszegyjtst, sszefslst s cserjt. A most kvetkez plda kongurciban az A gp, a naploszerver.minta.com fogja gyjteni a helyi hlzatrl rkez naplinformcikat. A B gp, a naplokliens.minta.com pedig a szervernek kldi a naplzand adatokat. les krnyezetben mind a kt gpnek rendelkeznie kell megfelel DNS bejegyzsekkel, vagy legalbb szerepelnik kell egyms /etc/hosts llomnyaiban. Ha ezt elmulasztjuk, a szerver nem lesz hajland adatokat fogadni.

29.11.1. A naplszerver belltsa


A naplszerverek olyan gpek, amelyeket gy lltottunk be, hogy naplzsi informcikat tudjanak fogadni tvoli szmtgpekrl. A legtbb esetben gy egyszersteni tudunk a kongurcin, vagy olykor egyszeren csak hasznos, ha ezt a megoldst alkalmazzuk. Fggetlenl attl, hogy mirt hasznljuk, a tovbblps eltt nhny elkszletet meg kell tennnk. Egy rendesen belltott naplszervernek legalbb a kvetkez kvetelmnyeknek kell eleget tennie:

az 514-es UDP portot engedlyezni kell mind a kliensen, mind pedig a szerveren fut tzfal szablyrendszerben; a syslogd(8) kpes legyen a tvoli kliens gpekrl rkez zeneteket fogadni; a syslogd(8) szervernek s az sszes kliensnek rendelkeznie kell rvnyes DNS (kzvetlen s inverz) bejegyzsekkel vagy szerepelnie kell az /etc/hosts llomnyban.

A naplszerver belltshoz mindegyik klienst fel kell vennnk az /etc/syslog.conf llomnyba, valamint meg kell adnunk a megfelel funkcit (facility):
+naplokliens.minta.com /var/log/naplokliens.log *.* Megjegyzs: A syslog.conf(5) man oldaln megtallhatjuk a klnbz tmogatott s elrhet funkcikat.

Miutn belltottuk, az sszes adott funkcihoz tartoz zenet az elbb megadott llomnyba (/var/log/naplokliens.log) fog kerlni. A szerveren tovbb meg kell adnunk a kvetkez sort az /etc/rc.conf llomnyban:
syslogd_enable="YES" syslogd_flags="-a naplokliens.minta.com -vv"

Az els sorral engedlyezzk a syslogd elindtst a rendszerindts sorn, majd a msodik sorral engedlyezzk, hogy a kliens naplzni tudjon a szerverre. Itt mg lthat a -vv opci, amellyel a naplzott zenetek rszletessgt tudjuk nvelni. Ennek nagyon fontos a szerepe a naplzsi funkcik behangolsakor, mivel gy a rendszergazdk pontosan lthatjk milyen tpus zenetek milyen funkcival kerltek rgztsre a naplban. Befejezskppen hozzuk ltre a naplllomnyt. Teljesen mindegy, hogy erre milyen megoldst alkalmazunk, pldul a touch(1) remekl megfelel:

816

Fejezet 29. Hlzati szerverek


# touch /var/log/naplokliens.log

Ezutn indtsuk jra s ellenrizzk a syslogd dmont:


# /etc/rc.d/syslogd restart # pgrep syslog

Ha vlaszul megkapjuk a fut dmon azonostjt, akkor sikerlt jraindtanunk, elkezdhetjk a kliens belltst. Ha valamirt nem indult volna jra a szerver, az /var/log/messages llomnybl prbljuk meg kiderteni az okt.

29.11.2. A naplkliens belltsa


A naplkliens az a gp, amely egy helyi naplpldny karbantartsa mellett tovbbkldni a naplzand informcikat egy naplszervernek. Hasonlan a naplszerverekhez, a klienseknek is teljestenie bizonyos alapvet elvrsokat:

a syslogd(8) dmon kldjn bizonyos tpus zeneteket a naplszervernek, amely ezeket pedig kpes legyen fogadni; a hozztartoz tzfal engedje t a forgalmat az 514-es UDP porton; rendelkezzen mind kzvetlen, mind pedig inverz DNS bejegyzssel, vagy szerepeljenek az /etc/hosts llomnyban.

A kliens belltsa sokkal egyszerbb a szerverhez kpest. A kliensen adjuk hozz a kvetkez sorokat az /etc/rc.conf llomnyhoz:
syslogd_enabled="YES" syslogd_flags="-s -vv"

A szerver belltsaihoz hasonlan itt is engedlyezzk a syslogd dmont s megnveljk a naplzott zenetek rszletessgt. A -s kapcsolval pedig megakadlyozzuk, hogy a kliens ms gpekrl is hajland legyen naplzeneteket elfogadni. A funkcik a rendszernek azon rszt rjk le, amelyhez ltrejn az adott zenet. Teht pldul az ftp s ipfw egyarnt ilyen funkcik. Amikor keletkezik egy naplzenet valamelyikkhz, ltalban megjelenik a nevk. A funkcikhoz tartozik mg egy priorits vagy szint is, amellyel az adott zenet fontossgt jelzik. Ezek kzl a leggyakoribb a warning (mint gyelmeztets) s info (mint informci). A hasznlhat funkcik s a hozzjuk tartoz prioritsok teljes listjt a syslog(3) man oldaln olvashatjuk. A naplszervert meg kell adnunk a kliens /etc/syslog.conf llomnyban. Itt a @ szimblummal jelezzk, hogy az adatokat egy tvoli szerverre szeretnnk tovbbkldeni, valahogy gy:
*.* @naploszerver.minta.com

Ezutn a bellts rvnyestshez jra kell indtanunk a syslogd dmont:


# /etc/rc.d/syslogd restart

A logger(1) hasznlatval prbljuk ki a kliensrl a aplzenetek hlzaton keresztli kldst, s kldjnk valamit a syslogd dmonnak:

817

Fejezet 29. Hlzati szerverek


# logger "Udvozlet a naplokliensrol"

A parancs kiadsa utn az zenetnek mind a kliens, mind pedig a szerver /var/log/messages llomnyban meg kell jelennie.

29.11.3. Hibakeress
Elfordulhat, hogy a naplszerver valamirt nem kapja meg rendesen az zeneteket, ezrt valamilyen mdon meg kell keresnnk a hiba okt. Ez tbb minden lehet, de ltalban kt leggyakoribb ok valamilyen hlzati kapcsoldsi vagy DNS belltsi hiba. Ezek tesztelshez gondoskodjunk rla, hogy a gpek klcsnsen elrhetek egymsrl az /etc/rc.conf llomnyban megadott hlzati nevk szerint. Ha ezzel ltszlag minden rendben van, akkor prbljuk meg mdostani a syslogd_flags rtkt az /etc/rc.conf llomnyban. A most kvetkez pldban a /var/log/naplokliens.log teljesen res, illetve a /var/log/messages llomny semmilyen hibra utal okot nem tartalmaz. A hibakeresshez mg tbb informcit a syslogd_flags trsval tudunk krni:
syslogd_flags="-d -a naploklien.minta.com -vv"

Termszetesen ne felejtsk el jraindtani a szervert:


# /etc/rc.d/syslogd restart

A dmon jraindtsa utn kzvetlenl az albbiakhoz hasonl zenetek rasztjk el a kpernyt:

logmsg: pri 56, flags 4, from naploszerver.minta.com, msg syslogd: restart syslogd: restarted logmsg: pri 6, flags 4, from naploszerver.minta.com, msg syslogd: kernel boot file is /boot/kernel Logging to FILE /var/log/messages syslogd: kernel boot file is /boot/kernel/kernel cvthname(192.168.1.10) validate: dgram from IP 192.168.1.10, port 514, name naplokliens.minta.com; rejected in rule 0 due to name mismatch.

A diagnosztikai zeneteket vgigolvasva nyilvnval vlik, hogy azrt dobja el az zeneteket a szerver, mert nem megfelel a gp neve. Miutn tnzzk a belltsainkat, felfedezhetnk az /etc/rc.conf llomnyban egy apr hibt:
syslogd_flags="-d -a naploklien.minta.com -vv"

Lthatjuk, hogy ebben a sorban a naplokliens nvnek kellene szerepelni, nem pedig a naploklien nvnek. Miutn elvgeztk a szksges javtsokat, indtsuk jra a szervert s vizsgljuk meg az eredmnyt:
# /etc/rc.d/syslogd restart

logmsg: pri 56, flags 4, from naploszerver.minta.com, msg syslogd: restart syslogd: restarted logmsg: pri 6, flags 4, from naploszerver.minta.com, msg syslogd: kernel boot file is /boot/kernel syslogd: kernel boot file is /boot/kernel/kernel logmsg: pri 166, flags 17, from naploszerver.minta.com, msg Dec 10 20:55:02 <syslog.err> naplosze cvthname(192.168.1.10) validate: dgram from IP 192.168.1.10, port 514, name naplokliens.minta.com; accepted in rule 0.

818

Fejezet 29. Hlzati szerverek

logmsg: pri 15, flags 0, from naplokliens.minta.com, msg Dec 11 02:01:28 pgj: Masodik teszt uzenet Logging to FILE /var/log/naplokliens.log Logging to FILE /var/log/messages

Itt mr minden zenet rendben megrkezett s a megfelel llomnyokba kerlt (a /var/log/messages a kliensen, s a /var/log/naplokliens.log a szerveren)).

29.11.4. Biztonsgi megfontolsok


Mint minden hlzati szolgltats esetn, ilyenkor is gyelembe kell vennnk bizonyos biztonsgi megfontolsokat a tnyleges kongurci kiptse eltt. Olykor elfordulhat, hogy a naplk klnbz knyes informcikat tartalmaznak, mint pldul a helyi rendszeren fut szolgltatsok nevei, felhasznli nevek vagy egyb kongurcis adatok. A kliens s a szerver kztt hlzaton utaz adatok viszont se nem titkostottak, se nem jelszval vdettek. Ha titkostst szeretnnk hasznlni, akkor javasoljuk pldul a security/stunnel portot, amellyel egy titkostott tunnelen keresztl tudunk adatokat kldeni a hlzaton. A helyi rendszer biztonsgnak szavatolsa is fontos lehet. A naplk sem a hasznlat sorn, sem pedig a lecserlsk utn nem kerlnek titkostsra. Emiatt a helyi rendszerhez hozzfr felhasznlk kedvkre nyerhetnek ki bellk a rendszernket rint kongurcis informcikat. Ezrt ilyenkor nagyon fontos, hogy mindig a megfelel engedlyeket lltsuk be a naplkra. A newsyslog(8) segdprogrammal be tudjuk lltani a frissen ltrehozott s a lecserlt naplk engedlyeit. Teht knnyen megakadlyozhatjuk a helyi felhasznlk kvncsiskodst, ha itt a naplk engedlyeit pldul a 600 kddal adjuk meg.

819

Fejezet 30. Tzfalak


rta: Joseph J. Barbish. SGML formtumra alaktotta s aktualizlta: Brad Davis.

30.1. Bevezets
A tzfalakkal a rendszernkn keresztlfoly bejv s kimen forgalmat tudjuk szrni. A tzfalak egy vagy tbb szablyrendszer alapjn vizsgljk az ppen rkez vagy tvoz hlzati csomagokat, s vagy tovbbengedik ezeket vagy meglltjk. A tzfalak szablyai a csomagok egy vagy tbb jellemzjt veszik szemgyre, amelyek lehetnek pldul a protokoll tpusa, a forrs vagy cl hlzati cme, esetleg a forrs- vagy a clport. A tzfalak jelents mrtkben kpesek gyaraptani egy gp vagy egy hlzat vdelmt. Leginkbb a kvetkezkre tudjuk felhasznlni:

A bels hlzatunkban fut alkalmazsok, szolgltatsok, gpek megvdsre s elszigetelsre az internetrl rkez nem kvnt forgalom ellen A bels hlzatban lev gpek elrst tudjuk korltozni vagy letiltani az interneten elrhet szolgltatsok fel A hlzati cmfordts (Network Address Translation, NAT) belltshoz, ahol a bels hlzatunk privt IP-cmeket hasznlnak s egy kzs kapcsolaton keresztl rik el az internetet (egyetlen IP-cmmel, vagy pedig automatikusan kiosztott publikus cmekkel).

A fejezet elolvassa sorn megismerjk:


hogyan adjuk meg helyesen a csomagok szrst ler szablyokat; a FreeBSD-be ptett tzfalak kzti klnbsgeket; hogyan lltsuk be s hasznljuk az OpenBSD PF tzfalt; hogyan lltsuk be s hasznljuk az IPFILTER tzfalat; hogyan lltsuk be s hasznljuk az IPFW tzfalat.

A fejezet elolvassa eltt ajnlott:

a FreeBSD-hez s az internethez ktd alapvet fogalmak ismerete.

30.2. Rviden a tzfalakrl


A tzfalak szablyrendszereit alapveten ktflekppen tudjuk sszelltani: inkluzv, vagyis megenged, illetve exkluzv vagyis kizr mdon. Az exkluzv tzfalak minden forgalmat tengednek, amirl nem rendelkeznek a tzfal szablyai. Az inkluzv tzfalak ennek pontosan az ellenkezjt teszik. Csak azt a forgalmat engedik t, amirl van szably s minden mst blokkolnak. Az inkluzv tzfalak alkalmazsval sokkal jobban keznkbentudjuk tartani a hlzatunk kimen forgalmt, ezrt leginkbb az internetes szolgltatsokat futtat rendszerek esetben bizonyulhat jobb vlasztsnak. Emellett az internetrl a hlzatunk fel irnyul forgalmat is kpes szablyozni. Ekkor az egyetlen szablyra sem illeszked

820

Fejezet 30. Tzfalak csomagokat egyszeren eldobjuk s naplzzuk. Az inkluzv tzfalak ltalban biztonsgosabbak az exkluzv tpus trsaiknl, mivel esetkben jelents mrtkben visszaszorul a nem kvnatos tfoly forgalom.
Megjegyzs: Hacsak nem emeljk ki kln, a fejezet tovbbi rszben minden pldaknt megadott szablyrendszer inkluzv tzfalat hoz ltre.

Ez a tpus vdelem mg tovbb fokozhat az llapottart tzfalak (stateful rewall) hasznlatval. Az ilyen tpus tzfalak szemmel tartjk a rajtuk keresztl megnyitott kapcsolatokat, s vagy csak a mr meglev kapcsolathoz tartoz forgalmat engedik t vagy nyitnak egy jat. Az llapottart tzfalak htrnya, hogy a Denial of Service (DoS) tpus tmadsokkal szemben sokkal srlkenyebbek olyan helyzetekben, amikor az j kapcsolatok nagyon gyorsan jnnek ltre. A legtbb tzfal esetben azonban tudjuk vegyteni az llapottart s nem llapottart viselkedst, s ezzel egy idelis belltst kialaktani.

30.3. Tzfalak
A FreeBSD alaprendszerbe hrom klnbz tzfalat ptettek be, melyek a kvetkezk: az IPFILTER (msik nevn IPF), az IPFIREWALL (ms nven IPFW) s az OpenBSD csomagszrje (Packet Filter, azaz PF). A forgalom szablyozsra (vagyis alapveten a svszlessg kihasznltsgnak vezrlsre) a FreeBSD kt beptett csomagot tartalmaz: ez az altq(4) s a dummynet(4). ltalban a Dummynet az IPFW, mg az ALTQ a PF partnere. Az IPFILTER esetben maga az IPFILTER vgzi a cmfordtst s a szrst, a svszlessget pedig az IPFW a dummynet(4) vagy a PF az ALTQ segtsgvel. Az IPFW s a PF szablyokkal rendelkezik a rendszernkbe rkez vagy onnan tvoz csomagokrl, habr megoldsaik teljesen mshogy mkdnek s a szablyok megadsi mdja is eltr. A FreeBSD azrt tartalmaz egyszerre ennyifle tzfalat, mert az emberek elvrsai s ignyei eltrnek. Egyikk sem tekinthet a legjobbnak. A szerz egybknt az IPFILTER megoldst rszesti elnyben, mivel egy hlzati cmfordtst alkalmaz krnyezetben sokkal knnyebb vele megfogalmazni az llapottart szablyokat, valamint tartalmaz egy beptett FTP proxyt is, amivel gy a kimen FTP kapcsolatok belltsa mg tovbb egyszersdik. Mivel az sszes tzfal a csomagok fejlcnek bizonyos mezinek alapjn dolgozik, ezrt a tzfal szablyrendszert megalkot egynnek teljesen tisztban kell lennie a TCP/IP mkdsvel, tovbb azzal, hogy ezekben a mezkben milyen rtkek szerepelhetnek s ezeket hogyan hasznljk egy tlagos kapcsolat alatt. Ebben a tmban a http://www.ipprimer.com/overview.cfm cmen tallhatunk egy remek ismertett (angolul).

30.4. Az OpenBSD csomagszrje (PF) s az ALTQ


tnzte s aktualizlta:John Ferrell. 2003 jliusban az OpenBSD PF nven ismert csomagszrjt trtk FreeBSD-re s elrhetv tettk a FreeBSD Portgyjtemnynek rszeknt. A PF programot beptetten tartalmaz els kiads pedig 2004 novemberben a FreeBSD 5.3 volt. A PF egy teljes, mindentud tzfal, amely tmogatja az n. ALTQ (Alternate Queuing, vagyis a vltbesorols) megoldst. Az ALTQ lehetv teszi a svszlessg korltozst a szolgltats minsge (Quality of Service, QoS) alapjn.

821

Fejezet 30. Tzfalak Az OpenBSD Projekt kivl munkt vgez a PF felhasznli tmutatjnak (http://www.openbsd.org/faq/pf/) karbantartsval. A kziknyv ezen szakasza ezrt elssorban azzal foglalkozik, hogyan kell a PF-et FreeBSD alatt hasznlni, mikzben igyekszik egy ltalnos sszefoglalst adni a tmrl. A rszletesebb informcikkal kapcsolatban azonban felttlenl nzzk meg a felhasznli tmutatt. A http://pf4freebsd.love2party.net/ cmen olvashatunk tbbet arrl (angolul), hogy a PF-et hogyan hasznljunk FreeBSD-n.

30.4.1. A PF rendszermagmodulok hasznlata


A PF modul betltshez a kvetkez sort kell felvennnk az /etc/rc.conf llomnyba:
pf_enable="YES"

Ezt kveten futtassuk le a hozztartoz rendszerindt szkriptet:


# /etc/rc.d/pf start

A PF modul abban az esetben nem fog betltdni, ha nem tallja a szablyokat tartalmaz kongurcis llomnyt. Ez alaprtelmezs szerint az /etc/pf.conf llomny. Ha a szablyok lersa rendszernkn mshol tallhat, akkor az /etc/rc.conf llomnyban a kvetkez mdon adhatjuk meg annak pontos helyt:
pf_rules="/elrsi/t/pf.conf "

Megjegyzs: A FreeBSD 7.0 kiadssal a minta pf.conf llomny az /etc knyvtrbl tkerlt a /usr/share/examples/pf knyvtrba. A FreeBSD 7.0 eltti kiadsokban alaprtelmezs szerint tallhat egy pf.conf llomny az /etc knyvtrban.

A PF modul parancssorbl akr kzzel is betlthet:


# kldload pf.ko

A PF mkdsnek naplzst a pflog.ko teszi lehetv, amelyet az albbi sor hozzadsval engedlyezhetnk az /etc/rc.conf llomnyban:
pflog_enable="YES"

A modul betltst a hozztartoz rendszerindt szkript segtsgvel krhetjk:


# /etc/rc.d/pflog start

Ha a PF tbbi funkcijt is hasznlni szeretnnk, akkor ehhez egy j rendszermagot kell fordtanunk PF tmogatssal.

30.4.2. A PF rendszermagbeli belltsai


Noha egyltaln nem szksges beptennk a PF tmogatst a rendszermagba, abban az esetben mgis szksgnk lehet r, amikor a PF olyan komolyabb lehetsgeit szeretnnk kiaknzni, amelyek mr nem rszei a modulnak. Ilyen pldul a pfsync(4), amely a PF ltal hasznlt llapottblzatok bizonyos vltozsainak megjelentsre

822

Fejezet 30. Tzfalak alkalmas pszeudoeszkz. A carp(4) megoldsval prostva gy akr hibatr tzfalak is kialakthatak a PF-fel. A CARP megoldsrl a kziknyvben bvebb ismertetst a 31.13 Szakasz ad. A PF rendszermag kongurcis belltsai a /usr/src/sys/conf/NOTES llomnyban tallhatak:
device pf device pflog device pfsync

A device pf bellts engedlyezi a csomagszr tzfalat (pf(4)). A device pflog megadsval keletkezik egy pog(4) pszeudo hlzati eszkz, amellyel egy bpf(4) eszkzre rkez forgalmat tudunk naplzni. Ezutn a pogd(8) dmon hasznlhat tle szrmaz naplzott adatok rgztsre. A device pfsync engedlyezi a pfsync(4) pszeudo hlzati eszkz ltrejttt, amely az n. llapotvltsok meggyelsre alkalmas.

30.4.3. Az rc.conf llomnyban elrhet belltsok


A kvetkez rc.conf(5) belltsok aktivljk a rendszerindts sorn a PF s a pog(4) hasznlatt:
pf_enable="YES" pf_rules="/etc/pf.conf" pf_flags="" pflog_enable="YES" pflog_logfile="/var/log/pflog" pflog_flags="" # # # # # # a PF engedlyezse (a modul betltse, ha kell) a pf szablyait tartalmaz llomny a pfctl indtshoz szksges tovbbi paramterek a pflogd(8) elindtsa hol tartsa a pflogd az naplit a pflogd indtshoz szksges paramterek

Ha a tzfalunk mgtt egy helyi hlzat is meghzdik, akkor az ott lev gpek szmra valamilyen mdon tudnunk kell tovbbtani a csomagokat vagy cmfordtst kell vgezni, gy ez is mindenkppen kelleni fog:
gateway_enable="YES" # az tjr funkcik engedlyezse

30.4.4. A szrsi szablyok megfogalmazsa


A PF a belltsait a pf.conf(5) llomny trolja (amely alaprtelmezs szerint az /etc/pf.conf helyen tallhat), s az ebben tallhat szablyok alapjn mdostja, dobja el vagy ppen engedi t a csomagokat. A FreeBSD rendszernkben ehhez tallhatunk nhny pldt a /usr/share/examples/pf/ knyvtrban. A PF ltal hasznlt szablyokrl minden rszletre kiterjeden a PF felhasznli tmutatjban (http://www.openbsd.org/faq/pf/) olvashatunk.
FigyelemA PF felhasznli tmutatjnak (http://www.openbsd.org/faq/pf/) olvassakor ne feledkezznk meg rla, hogy a klnbz FreeBSD verzik klnbz PF verzikat tartalmaznak. A FreeBSD 7.X s ksbbi vltozatok az OpenBSD 4.1 kiadsban szerepl PF vltozatot tartalmazzk.

A FreeBSD packet lter levelezsi lista (http://lists.FreeBSD.org/mailman/listinfo/freebsd-pf) remek hely a PF tzfal belltsval s futtatsval kapcsolatos krdsekre. A krdezs eltt azonban ne felejtsk el alaposan tnzni az archvumot!

823

Fejezet 30. Tzfalak

30.4.5. A PF hasznlata
A PF a pfctl(8) segtsgvel vezrelhet. Az albbiakban ezzel kapcsolatban most sszefoglalunk nhny hasznos parancsot (de ne felejtsk el megnzni a pfctl(8) man oldalon tallhat tbbi lehetsget sem): Parancs
pfctl -e pfctl -d pfctl -F all -f /etc/pf.conf

Lers A PF engedlyezse A PF tiltsa Az sszes (cmfordtsi, szrsi, llapottartsi stb.) szably trlse, s az /etc/pf.conf llomny jratltse A szrsi (rules), cmfordtsi (nat) s llapottartsi (state) informcik lekrdezse Az /etc/pf.conf llomny ellenrzse a benne lev szablyok betltse nlkl

pfctl -s [ rules | nat | state ] pfctl -vnf /etc/pf.conf

30.4.6. Az ALTQ engedlyezse


Az ALTQ kizrlag csak gy hasznlhat, ha a kongurcis belltsokon keresztl beptjk a FreeBSD rendszermagjba. Az ALTQ alkalmazst nem minden hlzati krtya meghajtja tmogatja, ezrt ezt a altq(4) man oldalon ellenrizzk. A kvetkez rendszermag kongurcis belltsokkal engedlyezhetjk az ALTQ hasznlatt s bvthetjk azt tovbbi lehetsgekkel:
options options options options options options options ALTQ ALTQ_CBQ ALTQ_RED ALTQ_RIO ALTQ_HFSC ALTQ_PRIQ ALTQ_NOPCC

# # # # # #

osztlyozs alap besorols (Class Bases Queuing, CBQ) vletlen korai szlels (Random Early Detection, RED) RED befele/kifele hiearchikus csomagtemez (Hierarchical Packet Scheduler, HFSC) prioritsos besorols (Priority Queuing, PRIQ) az SMP esetn kell

Az options ALTQ az ALTQ rendszert engedlyezi. Az options ALTQ_CBQ engedlyezi a osztlyozs alap besorolst (Class Based Queuing, CBQ). A CBQ hasznlatval a kapcsolatunkhoz tartoz svszlessget klnbz osztlyokra vagy sorokra tudjuk bontani s a szrsi szablyoknak megfelelen osztlyozni segtsgkkel a forgalmat. Az options ALTQ_RED a vletlen korai szlels (Random Early Detection, RED) hasznlatt engedlyezi. A RED a hlzati forgalomban keletkez torldsok elkerlsre alkalmas. A RED ezt a problmt gy oldja meg, hogy mri a sorok hosszt s sszeveti a hozztartoz minimlis s maximlis kszbrtkekkel. Ha a sor hossza meghaladja a szmra elrt maximlis rtket, akkor az j csomagokat eldobja. Nevhez hen a RED az eldobsra tlt csomagokat vletlenszeren vlasztja ki. Az options ALTQ_RIO engedlyezi a RED hasznlatt mind a kt irnyba, teht be- s kifel. Az options ALTQ_HFSC a prtatlan hierachikus szolgltatsi grbe alap csomagtemezt (Hierarchical Fair Service Curve Packet Scheduler, HFSC) engedlyezi. Vele kapcsolatban a http://www-2.cs.cmu.edu/~hzhang/HFSC/main.html cmen tallhatunk bvebben olvasnivalt (angolul).

824

Fejezet 30. Tzfalak Az options ALTQ_PRIQ a prioritsos besorolst (Priority Queuing, PRIQ) teszi elrhetv. A PRIQ mindig elsknt a nagyobb rtk sorban lev forgalmat tovbbtja. Az options ALTQ_NOPCC az ALTQ SMP, vagyis tbbprocesszoros tmogatst adja meg. Ilyen tpus rendszerekben ez ktelez.

30.5. Az IPFILTER (IPF) tzfal


Az IPFILTER szerzje Darren Reed. Az IPFILTER nem ktdik egyik rendszerhez sem: ez egy olyan nylt forrskd alkalmazs, amelyet trtak FreeBSD, NetBSD, OpenBSD, SunOS, HP/UX s Solaris opercis rendszerekre. Az IPFILTER karbantartsa s tmogatsa pillanatnyilag is aktv, folyamatosan jelennek meg jabb vltozatai. Az IPFILTER egy rendszermag oldaln mkd tzfalazsi s egy cmfordtsi mechanizmusra alapszik, amelyet felhasznli programokkal tudunk felgyelni s vezrelni. A tzfal szablyai az ipf(8) segdprogrammal llthatak be vagy trlhetek. A hlzati cmfordtsra vonatkoz szablyokat az ipnat(1) segdprogrammal llthatjuk be vagy trlhetjk. Az ipfstat(8) segdprogram kpes futs kzben statisztikkat kszteni az IPFILTER rendszermagban elhelyezked rszeinek viselkedsrl. Az ipmon(8) program pedig az IPFILTER cselekvseit kpes a rendszernaplkba feljegyezni. Az IPF eredetileg olyan szablyfeldolgozsi mdszer szerint kszlt, amelyben az utols egyez szably nyer s csak llapotnlkli szablyokat ismert. Az id mlsval az IPF rszv vlt a quick opci s a keep state opcin keresztl az llapottarts is, melyek drmai mrtkben korszerstettk a szablyok feldolgozsnak elvt. Az IPF hivatalos dokumentcija csak a rgi szablyok ltrehozst s azok feldolgozsnak lerst tartalmazza. A korszerstett funkcik csak kiegsztskppen jelennek meg, s az ltaluk felknlt elnyk megrtse egy sokkal magasabb szint s biztonsgosabb tzfal megptst teszik lehetv. A szakaszban szerepl utastsokban olyan szablyok szerepelnek, amelyek kihasznljk a quick s keep state opcikat. Ezek az inkluzv tzfalszablyok ltrehozsnak alapjai. A rgi tpus szablyokrl a http://www.obfuscation.org/ipf/ipf-howto.html#TOC_1 s http://coombs.anu.edu.au/~avalon/ip-lter.html cmeken olvashatunk (angolul). Az IPF gyakran ismtelt krdsei a http://www.phildev.net/ipf/index.html cmen rhetek el (angolul). A nylt forrs IPFILTER levelezsi lista kereshet archvumait a http://marc.theaimsgroup.com/?l=iplter cmen talljuk (angolul).

30.5.1. Az IPF engedlyezse


Az IPF megtallhat a FreeBSD alapteleptsben mint menet kzben kln betlthet modul. Ha az rc.conf llomnyba berjuk a ipfilter_enable="YES" sort, akkor ez a modul dinamikusan betltdik. A betlthet modul alapbl naplz s a default pass all belltst tartalmazza. Ha helyette a block all szablyt akarjuk hasznlni, akkor emiatt mg nem kell felttlenl jrafordtanunk a FreeBSD rendszermagjt, elg ha egyszeren csak a szablyrendszernk vgre beszrjuk.

825

Fejezet 30. Tzfalak

30.5.2. A rendszermag belltsai


Az IPF hasznlathoz nem ktelez a kvetkez belltsokkal jrafordtani a FreeBSD rendszermagjt, itt csupn httrinformciknt szerepel. Amikor az IPF a rendszermagba kerl, a betlhet modulra nem lesz szksg. Az IPF a rendszermag forrsai kztt tallhat /usr/src/sys/conf/NOTES llomnyban megadott belltsai a kvetkez mdon foglalhatak ssze:
options IPFILTER options IPFILTER_LOG options IPFILTER_DEFAULT_BLOCK

Az options IPFILTER engedlyezi az IPFILTER tzfal tmogatst. Az options IPFILTER_LOG hatsra az IPF az ipl csomagnaplz pszeudo eszkzre jegyzi fel a forgalmat minden olyan szably esetn, ahol megjelenik a log kulcssz. Az options IPFILTER_DEFAULT_BLOCK megvltoztatja az alaprtelmezett viselkedst, teht minden olyan csomag, amely nem illeszkedik a tzfal valamelyik pass tpus (tenged) szablyra, blokkolsra kerl. Ezek a belltsok csak azt kveten rvnyeslnek, ha fordtottunk s teleptettnk velk egy j rendszermagot.

30.5.3. Az rc.conf llomny belltsai


Az /etc/rc.conf llomnyban a kvetkez utastsokra lesz szksgnk az IPF mkdsbe hozsra a rendszer indtsa sorn:
ipfilter_enable="YES" ipfilter_rules="/etc/ipf.rules" ipmon_enable="YES" ipmon_flags="-Ds" # # # # # # # az ipf tzfal indtsa betlti a szablyokat tartalmaz szveges llomnyt elindtja az IP monitor naplzst D = indts dmonknt s = naplzs a syslog hasznlatval v = a tcp ablak, ack, seq csomagok naplzsa n = az IP-cmek s portok feloldsa

Ha olyan helyi hlzat ll meg a tzfal mgtt, amely egy fenntartott privt IP-cmtartomnyt hasznl, akkor mg a kvetkez utastsokra is szksgnk lesz a cmfordts bekapcsolshoz:
gateway_enable="YES" ipnat_enable="YES" ipnat_rules="/etc/ipnat.rules" # a helyi hlzat tjrja # az ipnat funkci elindtsa # az ipnat mkdshez szksges defincik

30.5.4. IPF
Az ipf(8) parancs hasznlhat a szablyokat tartalmaz llomny betltsre. ltalban egy llomnyba rjuk ssze a tzfal szablyait s ezzel a paranccsal cserljk le egyszerre a tzfalban lev jelenlegi szablyokat:
# ipf -Fa -f /etc/ipf.rules

Az -Fa az sszes bels szably trlst jelenti. Az -f jelzi, hogy egy llomnybl kell beolvasni a betltend szablyokat.

826

Fejezet 30. Tzfalak Ezzel mintegy lehetsgnk van vltoztatni a korbban sszelltott szablyainkon, futtatni a fenti IPF parancsot s ezen keresztl gy frissteni a szablyok friss msolatval a mr mkd tzfalat, hogy nem is kell jraindtanunk a rendszert. Ez a mdszer igen knyelmes az j szablyok kiprblshoz, mivel brmikor tetszlegesen vgrehajthat. Az ipf(8) man oldala tartalmazza a parancsnak megadhat tovbbi belltsokat. Az ipf(8) parancs a szablyokat trol llomnyt egy szabvnyos szveges llomnynak tekinti, semmilyen szimbolikus helyettestst alkalmaz szkriptet nem fogad el. Lehetsgnk van azonban olyan IPF szablyokat kszteni, amelyek kiaknzzk a szkriptek szimbolikus helyettestsnek lehetsgeit. Errl bvebben lsd 30.5.9 Szakasz.

30.5.5. Az IPFSTAT
Az ipfstat(8) alaprtelmezs szerint a arra hasznlatos, hogy le tudjuk krdezni s megjelenteni a tzfalhoz tartoz szmllk rtkeit, amelyek a legutbbi indts vagy az ipf -Z parancs ltal kiadott lenullzsuk ta a bejv vagy kimen forgalombl a megadott szablyoknak megfelel csomagok alapjn gyjtenek ssze statisztikkat. A parancs mkdsnek rszleteit az ipfstat(8) man oldalon olvashatjuk. Az ipfstat(8) meghvsa alapbl gy nz ki:
input packets: blocked 99286 passed 1255609 nomatch 14686 counted 0 output packets: blocked 4200 passed 1284345 nomatch 14687 counted 0 input packets logged: blocked 99286 passed 0 output packets logged: blocked 0 passed 0 packets logged: input 0 output 0 log failures: input 3898 output 0 fragment state(in): kept 0 lost 0 fragment state(out): kept 0 lost 0 packet state(in): kept 169364 lost 0 packet state(out): kept 431395 lost 0 ICMP replies: 0 TCP RSTs sent: 0 Result cache hits(in): 1215208 (out): 1098963 IN Pullups succeeded: 2 failed: 0 OUT Pullups succeeded: 0 failed: 0 Fastroute successes: 0 failures: 0 TCP cksum fails(in): 0 (out): 0 Packet log flags set: (0)

Az -i mint bejv (inbound), vagy az -o mint kimen (outbound) forgalomra vonatkoz paramterek megadsval a rendszermagban az adott oldalon jelenleg teleptett s alkalmazott szablyokat krhetjk le s jelenthetjk meg. Az ipfstat -in parancs gy a bejv forgalomra vonatkoz bels szablyokat mutatja a szablyok szmval. Az ipfstat -on parancs a kimen forgalmat rint bels szablyokat mutatja a szablyok szmval. Az eredmny krlbell ilyen lesz:
@1 pass out on xl0 from any to any @2 block out on dc0 from any to any @3 pass out quick on dc0 proto tcp/udp from any to any keep state

Az ipfstat -ih a bejv forgalomhoz tartoz bels szablyokat mutatja s mindegyik el odarja, hogy eddig mennyi csomag illeszkedett rjuk.

827

Fejezet 30. Tzfalak Az ipfstat -oh ugyangy a kiment forgalom esetn mutatja a bels szablyokat s mindegyik eltt feltnteti, hogy az adott pillanatig mennyi csomag illeszkedett rjuk. A kimenete nagyjbl ilyen lesz:
2451423 pass out on xl0 from any to any 354727 block out on dc0 from any to any 430918 pass out quick on dc0 proto tcp/udp from any to any keep state

Az ipfstat parancs taln egyik legfontosabb funkcija a -t kapcsolval csalhat el, melynek hatsra a rendszerben aktv llapotok tblzatt mutatja meg ugyangy, ahogy a top(1) a FreeBSD rendszerben fut programokat. Amikor a tzfalunk tmads alatt ll, ezzel a funkcival tudjuk a problmt beazonostani, lesni a mlybe s ltni a tmadtl rkez csomagokat. A kiegsztskppen megadhat alkapcsolk megadsval kivlaszthatjuk azt a cl vagy forrs IP-cmet, portot vagy protokollt, amelyet vals idben meg akarunk gyelni. Ennek rszleteit az ipfstat(8) man oldaln lthatjuk.

30.5.6. Az IPMON
Az ipmon megfelel mkdshez be kell kapcsolnunk a rendszermag IPFILTER_LOG belltst. Ez a parancs kt klnbz mdban hasznlhat. Ha parancsot a -D opci nlkl gpeljk be, akkor ezek kzl alapbl a natv mdot kapjuk meg. A dmon md abban az esetben hasznos, ha folyamatosan naplzni akarjuk a rendszerben zajl esemnyeket, majd ksbb ezeket tnzni. gy kpes egymssal egyttmkdni a FreeBSD s az IPFILTER. A FreeBSD beptve tartalmaz olyan lehetsget, aminek rvn magtl cserli a rendszernaplkat. Ezrt ha tkldjk a syslogd(8) dmonnak a naplzand zeneteket, akkor sokkal jobban jrunk, mintha egyszeren csak mezei llomnyba naplznnk. Az rc.conf alaprtelmezsei kztt az ipmon_flags bellts a -Ds kapcsolkat rgzti:
ipmon_flags="-Ds" # # # # D s v n = = = = indts dmonknt naplzs a syslog hasznlatval a tcp ablak, ack, seq csomagok naplzsa az IP-cmek s portok nevnek feloldsa

Ennek a viselkedsnek az elnyei minden bizonnyal egyrtelmek. Segtsgvel kpesek vagyunk az esetek megtrtnte utn tnzni, hogyan milyen csomagokat dobott el a rendszer, azok milyen cmekrl rkeztek s hova szntk. Ez egy komoly fegyver a tmadk lenyomozsban. Hiba engedlyezzk a naplzst, az IPF nszntbl semmilyen naplzsi szablyt nem fog gyrtani. A tzfal gazdjnak kell eldntenie, hogy a szablyokat kzl melyiket akarja naplzni, s gy neki kell megadnia a log kulcsszt ezekben az esetekben. Normlis esetben csak a deny szablyokat naplzzk. Egyltaln nem ritka, hogy a szablyrendszer vgn egy alaprtelmezs szerint mindent eldob szably ll, amely naplz. Ezzel lehetsgnk nylik rgzteni azokat a csomagokat, amelyek egyetlen szablyra sem illeszkedtek.

30.5.7. Naplzs az IPMON hasznlatval


A syslogd egy sajt mdszert alkalmaz a naplzott adatok elklntsre. Egy funkcik (facility) s szintek (level) segtsgvel kialaktott specilis csoportostst alkalmaz. Az IPMON -Ds mdja a security (biztonsg) funkcit hasznlja. Teht az IPMON ltal naplzott sszes adat a security csoportjba kerl. Ezen tl a kvetkez szinteken klnthetjk el ignyeinknek megfelelen a naplzott adatokat:

828

Fejezet 30. Tzfalak


LOG_INFO - az tengeds vagy blokkols helyett a "log" kulcsszval elltott csomagok LOG_NOTICE - az t is engedett csomagok LOG_WARNING - a blokkolt csomagok LOG_ERR - a naplzott csomagok kzl azok, amelyek tlsgosan kicsik (hibs a fejlck)

Az IPFILTER csak akkor tud naplzni a /var/log/ipfilter.log llomnyba, ha eltte ltrehozzuk. Az albbi parancs erre tkletesen megfelel:
# touch /var/log/ipfilter.log

A syslogd(8) mkdst az /etc/syslog.conf llomnyban szerepl dencik vezrlik. A syslog.conf llomny szmottev mrtkben kpes meghatrozni azt, ahogy a syslog az IPF s a hozz hasonl alkalmazsoktl kapott rendszerszint zeneteket kezeli. Az /etc/syslog.conf llomnyba az albbi sor kell felvennnk:
security.* /var/log/ipfilter.log

A security.* megadsval az sszes ilyen tpus zenet egy elre rgztett helyre kerl. Az /etc/syslog.conf llomnyban elvgzett mdostsokat gy lptethetjk rvnybe, ha jraindtjuk a szmtgpet vagy az /etc/rc.d/syslogd reload paranccsal megkrjk a syslogd(8) dmont, hogy olvassa jra az /etc/syslog.conf llomnyt. Az imnt ltrehozott naplt ne felejtsk el megadni az /etc/newsyslog.conf llomnyban sem, s akkor ezzel a cserjt is megoldjuk.

30.5.8. A naplzott zenetek formtuma


Az ipmon ltal ltrehozott zenetek whitespace karakterekkel elvlasztott adatmezkbl llnak. A kvetkez mezk az sszes zenet esetben megjelennek: 1. A csomag megrkezsnek dtuma 2. A csomag megrkezsnek idpontja. :PP:MM.E alakban jelennek meg az rk, percek, msodpercek s ezredmsodpercek (ez tbb szmjegy hossz is lehet) szerint 3. Azon interfsz a neve, ahol a csomag feldolgozsra kerlt, pldul dc0 4. A szablyhoz tartoz csoport s sorszm, pldul @0:17 Ezek az ipfstat -in paranccsal nzhetek meg. 1. Cselekvs: a p mint tment (passed), b mint blokkolt (blocked), S mint rvid csomag (short packet), n mint egyik szablyra sem illeszkedett (not match), L mint naplzs (log). A mdostk megjelentsnek sorrendje: S, p, b, n, L. A nagybets P s B azt jelzi, hogy a csomagot egy felsbb szint bellts miatt naplztk, nem egy szably hatsra. 2. Cmek: ez tulajdonkppen hrom mezt takar: a forrs cmet s portot (melyet egy vessz vlaszt el), a -> jelet s cl cmet s portot. Pldul: 209.53.17.22,80 -> 198.73.220.17,1722. 3. A PR utn a protokoll neve vagy szma olvashat, pldul PR tcp. 4. A len csomaghoz tartoz fejlc s trzsnek teljes hosszt jelli, pldul len 20 40.

829

Fejezet 30. Tzfalak Amennyiben a csomag TCP, egy ktjellel kezdden tovbbi mezk is megjelenhetnek a belltott opciknak megfelel betk kpben. A betket s belltsaikat az ipmon(8) man oldaln olvashatjuk. Amennyiben a csomag ICMP, a sort kt mez zrja, melyek kzl az els tartalma mindig ICMP, s ezt egy perjellel elvlasztva az ICMP zenet tpusa s altpusa kveti. Teht pldul az ICMP 3/3 a nem elrhet port zenetet hordozza.

30.5.9. A szablyok felrsa szimbolikus helyettestssel


Az IPF hasznlatban gyakorlott felhasznlk kzl nhnyan kpesek olyan stlus szablyrendszert kszteni, ahol szimbolikus helyettestst hasznlnak. Ennek az egyik legnagyobb elnye az, hogy ilyenkor elg csak a szimbolikus nvhez tartoz rtket megvltoztatni s amikor a szkript lefut, akkor az sszes r hivatkoz szablyba ez kerl be. Szkript lvn a szimbolikus helyettestssel ki tudjuk emelni a gyakran hasznlt rtkeket s behelyettesteni ezeket tbb helyre. Ezt a most kvetkez pldban lthatjuk. Az itt alkalmazott felrs kompatibilis az sh(1), csh(1) s tcsh(1) parancsrtelmezkkel. A szimbolikus helyettestst egy dollrjellel fejezzk ki: $. A szimbolikus mezkben nem szerepel a $ jells. A szimbolikus mez tartalmt ketts idzjelbe (") tesszk. Kezdjk gy el a szablyok rst:
######### Az IPF szablyait tartalmaz szkript eleje ########### oif="dc0" # a kimen interfsz neve odns="192.0.2.11" # az internet szolgltat nvszervernek IP-cme myip="192.0.2.7" # a szolgltattl kapott statikus IP-cmnk ks="keep state" fks="flags S keep state" # Vlaszthatunk, hogy az /etc/ipf.rules llomnyt ebbl a szkriptbl # hozzuk ltre vagy futtathatjuk "magt" a szkriptet. # # Egyszerre csak az egyik sort hasznljuk. # # 1) Ezzel gyrhatjuk le az /etc/ipf.rules llomnyt: #cat > /etc/ipf.rules << EOF # # 2) Ezzel futtathajuk "magt" a szkriptet: /sbin/ipf -Fa -f - << EOF # Engedlyezzk a szolgltat nvszervernek elrst. pass out quick on $oif proto tcp from any to $odns port = 53 $fks pass out quick on $oif proto udp from any to $odns port = 53 $ks # Engedlyezzk kifel a titkostatlan www funkcit. pass out quick on $oif proto tcp from $myip to any port = 80 $fks # Engedlyezzk kifel a TLS SSL felett zemel titkostott www funkcit. pass out quick on $oif proto tcp from $myip to any port = 443 $fks EOF

830

Fejezet 30. Tzfalak


################## Itt az IPF szkript vge ########################

Ennyi lenne. A pldban szerepl szablyok most nem annyira lnyegesek, a hangsly most igazbl a szimbolikus helyettestsen s annak hasznlatn van. Ha a fenti pldt az /etc/ipf.rules.script llomnyba mentjk, akkor ezeket a szablyokat a kvetkez paranccsal jra tudjuk tlteni:
# sh /etc/ipf.rules.script

Egyetlen aprcska gond van a begyazott szimblumokat tartalmaz llomnyokkal: az IPF maga nem kpes megrteni a helyettestseket, azrt kzvetlenl nem olvassa a szkriptet. Ez a szkript kt mdon hasznosthat:

Vegyk ki megjegyzsbl a cat paranccsal kezdd sort, s tegyk megjegyzsbe az /sbin/ipf kezdett. A megszokottak szerint tegyk az ipfilter_enable="YES" sort az /etc/rc.conf llomnyba, majd minden egyes mdostsa utn futtassuk le a szkriptet az /etc/ipf.rules llomny ltrehozshoz vagy frisstshez. Tiltsuk le az IPFILTER aktivlst a rendszerindtskor, teht rjuk bele az ipfilter_enable="NO" sort (ami mellesleg az alaprtelmezett rtke) az /etc/rc.conf llomnyba. Tegynk egy, az albbi szkripthez hasonlt az /usr/local/etc/rc.d/ knyvtrba. A szkriptnek adjuk valamilyen rtelmes nevet, pldul ipf.loadrules.sh. Az .sh kiterjeszts hasznlata ktelez.
#!/bin/sh sh /etc/ipf.rules.script

A szkript engedlyeit lltsuk be gy, hogy a root tulajdonban legyen s kpes legyen olvasni, rni valamint vgrehajtani.
# chmod 700 /usr/local/etc/rc.d/ipf.loadrules.sh

Most miutn a rendszer elindult, az IPF szablyai be fognak tltdni.

30.5.10. Szablyrendszerek az IPF-ben


Az IPF esetben a szablyrendszer olyan szablyokbl ll, amelyek a csomagokrl tartalmuk alapjn eldntik, hogy t kell engedni vagy vissza kell tartani. A gpek kzt kt irnyban raml csomagok egy munkamenet alap trsalgst kpeznek. A tzfalhoz tartoz szablyrendszer egyarnt feldolgozza a internetrl a hlzatunk fel igyekv csomagokat, illetve a hlzatunk ezekre adott vlaszait. Az egyes TCP/IP szolgltatsokat (mint pldul telnet, www, levelezs stb.) a hozzjuk tartoz protokol s szabvnyos (fogad) portszm rja le. Ezekre a forrsrl ltalban valamilyen nem szabvnyos (magasabb rtk) portrl rkeznek csomagok. Ekkor a kommunikci sszes paramtere (vagyis a portok s cmek) brmelyike alapjn denilhatunk blokkolst vagy tovbbengedst ler szablyokat. Az IPF eredetileg gy rdott, hogy a szablyokat az utols illeszked szably nyer stlusban dolgozza fel s csak llapot nlkli szablyokat ismert. Az idk folyamn az IPF szablyai kiegszltek a quick s az llapottartsra vonatkoz keep state opcikkal, amelynek ksznheten risi mrtkben korszersdtt a szablyok feldolgozsa. A szakaszban szerepl utastsok olyan szablyokat alkalmaznak, amelyekben egyarnt szerepel a quick s az llapottartsrt felels keep state bellts. Ez az inkluzv tzfalak ltrehozsnak egyik alapeszkze.

831

Fejezet 30. Tzfalak


FigyelemA tzfal szablyainak sszelltsa sorn nagyon vatosnak kell lennnk! Bizonyos belltsok hatsra akr ki is zrhatjuk magunkat a szervernkrl. Az ebbl fakad esetleges kellemetlensgek elkerlse rdekben javasoljuk, hogy a tzfal alapjait elszr helyi konzolrl ptsk fel, ne pedig tvolrl, pldul ssh segtsgvel.

30.5.11. A szablyok felptse


A szablyok felptsnek bemutatst itt most leszktjk a modern llapottart szablyokra s az els illeszked szably nyer tpus feldolgozsra. A szablyok felrsnak rgebbi mdjai az ipf(8) man oldalon tallhatak. A # karakterrel egy megjegyzs kezdett jelezzk, s ltalban a sor vgn vagy egy kln sorban bukkan fel. Az res sorokat a rendszer nem veszi gyelembe. A szablyok kulcsszavakat tartalmaznak. Ezeknek a kulcsszavaknak balrl jobbra haladva adott sorrendben kell szerepelnik. A kulcsszavakat kiemeltk. Egyes kulcsszavakhoz tovbbi belltsok is tartozhatnak, amelyek maguk is kulcsszavak lehetnek, s mg tovbbi opcikkal rendelkezhetnek. Az albbi nyelvtan mindegyik elemt kiemeltk s az albbiakban egyenknt kifejtjk a rszleteiket.
CSELEKVS BE-KI OPCIK SZRS LLAPOTTART PROTOKOLL FORRS_CM,CL_CM OBJEKTUM PORTSZM TCP_BELLTS LLAPOTTART CSELEKVS = block | pass BE-KI = in | out OPCIK = log | quick | on interfsz SZRS = proto rtk | forrs/cl IP | port = szm | ags bellts PROTOKOLL = tcp/udp | udp | tcp | icmp FORRS_CM,CL_CM = all | from objektum to objektum OBJEKTUM = IP-cm | any PORTSZM = portszm TCP_BELLTS = S LLAPOTTART = keep state

30.5.11.1. CSELEKVS
A cselekvs hatrozza meg, hogy mit kell tenni azokkal a csomagokkal, amelyek illeszkednek a szably tbbi rszre. Minden szablyhoz tartoznia kell egy cselekvsnek. A kvetkez cselekvsek kzl vlaszthatunk: A block megadsval a szablyban szerepl szrsi felttelre illeszked csomagot eldobjuk. A pass megadsval a szablyban szerepl szrsi felttelre illeszked csomagot tengedjk a tzfalon.

832

Fejezet 30. Tzfalak

30.5.11.2. BE-KI
Az sszes szrsi szably esetben ktelez egyrtelmen nyilatkozunk arrl, hogy a bemen vagy a kimen forgalomra vonatkozik. Ezrt a kvetkez kulcssz vagy az in vagy pedig az out, de kzlk egyszerre csak az egyiket szabad hasznlni, msklnben a szably hibsnak minsl. Az in jelenti, hogy a szablyt az internet fell az adott interfszen berkez csomagokra kell alkalmazni. Az out jelenti, hogy a szablyt az internet fel az adott interfszen kikldtt csomagokra kell alkalmazni.

30.5.11.3. OPCIK
Megjegyzs: Ezek az opcik csak a lentebb bemutatott sorrendben hasznlhatk.

A log jelzi, hogy illeszkeds esetn a csomag fejlct az ipl eszkzn keresztl naplzni kell (lsd a naplzsrl szl szakaszt). A quickjelzi, hogy illeszkeds esetn ez lesz a legutolsnak ellenrztt szably s gy egy olyan rvidzrat tudunk kpezni a feldolgozsban, amellyel elkerljk a csomagra egybknt vonatkoz tbbi szably illesztst. Ez az opci a korszerstett szablyfeldolgozs kihasznlshoz elengedhetetlen. Az on hasznlatval a szrs felttelei kz bevonhatjuk a csomaghoz tartoz hlzati interfszt. Itt az interfszek az ifcong(8) ltal megjelentett formban adhatak meg. Az opci megadsval csak az adott interfszen az adott irnyba (befel/kifel) kzleked csomagokra fog illeszkedni a szably. Ez az opci a korszerstett szablyfeldolgozs kihasznlshoz nlklzhetetlen. Amikor naplzunk egy csomagot, akkor a hozztartoz fejlc az IPL csomagnaplz pszeudo eszkzhz kerl. A log kulcssz utn kzvetlenl a kvetkez minstk szerepelhetnek (a kvetkez sorrendben): A body jelzi, hogy a csomag tartalmnak els 128 byte-jt mg jegyezzk fel a fejlc mell. A first minstt akkor rdemes hasznlnunk, amikor a log kulcsszt a keep state opcival egytt alkalmazzuk, mivel ilyenkor csak a szablyt kialakt csomag kerl naplzsra s nem minden olyan, ami illeszkedik az llapottartsi felttelekre.

30.5.11.4. SZRS
Ebben a szakaszban olyan kulcsszavak jelenhetnek meg, amelyekkel a csomagok klnfle tulajdonsgai alapjn tlkezhetnk azok illeszkedsrl. Itt adott egy kiindul kulcssz, amelyhez tovbbi kulcsszavak is tartoznak, s amelyek kzl csak egyet vlaszthatunk. Az albbi ltalnos tulajdonsgok alapjn tudjuk szrni a csomagokat, ebben a sorrendben:

30.5.11.5. PROTOKOLL
A proto egy olyan kulcssz, amelyhez hozz kell rendelnnk mg valamelyik opcijt is. Ez az opci segt az adott protokolloknak megfelelen vlogatni a csomagok kztt. A korszerstett szablyfeldolgozs lehetsgeinek kihasznlshoz nlklzhetetlen. Opciknt a tcp/udp | udp | tcp | icmp, vagy brmelyik, az /etc/protocols llomnyban megtallhat kulcssz felhasznlhat. A tcp/udp ebbl a szempontbl specilisnak tekinthet, mivel hatsra egyszerre

833

Fejezet 30. Tzfalak illeszthetek a szablyra a TCP s UDP csomagok, s gy a protokolltl eltekintve azonos szablyok felesleges tbbszrzst kerlhetjk el.

30.5.11.6. FORRS_CM/CL_CM
Az all kulcssz gyakorlatilag a from any to any (brhonnan brhova) szinonmja s nem tartozik hozz paramter. A from forrs to cl felptse: a from s to kulcsszavak az IP-cmek illesztsre hasznlhatak. Ilyenkor a szablyokban a forrs s a cl paramtereknek is szerepelnik kell. Az any egy olyan specilis kulcssz, amely tetszleges IP-cmre illeszkedik. Nhny plda az alkalmazsra: from any to any vagy from 0.0.0.0/0 to any, from any to 0.0.0.0/0, from 0.0.0.0/0 to any vagy from any to 0.0.0.0. Az IP-cmek megadhatak pontozott numerikus formban a hlzati maszk bitekben mrt hosszval egytt, vagy akr egyetlen pontozott numerikus IP-cmknt. Nincs lehetsg olyan IP-cmtartomnyok illesztsre, amelyek nem adhatak meg knyelmesen ponttal elvlasztott szmok s maszk hosszval. A net-mgmt/ipcalc port az ilyen szmtsokat knnyti meg. A hlzati maszkok hossznak megllaptsban segthet az emltett segdprogram (angol nyelv) honlapja: http://jodies.de/ipcalc.

30.5.11.7. PORT
Amikor portra vonatkoz illeszkedst runk el, megadhatjuk a forrsra s clra, amit aztn vagy csak TCP vagy pedig csak UDP csomagokra alkalmazunk. A portok feltteleinek megfogalmazsnl hasznlhatjuk a portok szmt vagy az /etc/services llomnyban szerepl nevket. Amikor a port egy from tpus objektum lersban jelenik meg, akkor automatikusan a forrsportot jelenti, mg a to objektum lersban pedig a clportot. A to objektumoknl a port megadsa elengedhetetlen a korszerstett szablyfeldolgozs elnyeinek kihasznlshoz. Plda: from any to any port = 80. Az egyes portokat klnbz mveletek segtsgvel, numerikusan hasonlthatjuk ssze, ahol akr porttartomnyt is megadhatunk. port "=" | "!=" | "<" | ">" | "<=" | ">=" | "eq" | "ne" | "lt" | "gt" | "le" | "ge". A porttartomnyok megadshoz hasznljuk a port "<>" | "><" felrsi mdot.
FigyelemA forrsra s clra vonatkoz paramterek utn szerepl msik kt paramter nlklzhetetlen a korszerstett szablyfeldolgozs mkdshez.

30.5.11.8. TCP_BELLTS
A belltsok csak a TCP forgalom szrsnl rvnyeslnek. A betk jellik azokat a lehetsges belltsokat, amelyek a TCP csomagok fejlcben megvizsglhatak. A korszerstett szablyfeldolgozs a flags S paramter segtsgvel ismeri fel a TCP munkameneteket kezdemnyez krseket.

834

Fejezet 30. Tzfalak

30.5.11.9. LLAPOTTART
A keep state jelzi, hogy a szably paramtereinek megfelel brmely csomag aktivlja az llapottart szrs hasznlatt.
Megjegyzs: Ez a bellts felttlenl szksges a korszerstett szablyfeldolgozs megfelel kihasznlshoz.

30.5.12. llapottart csomagszrs


Az llapottart szrs a csomagok ktirny ramlst egy ltrejtt kapcsolatba sorolja be. Amikor aktivldik, az llapottart szably elre dinamikusan ltrehozza a ktirny kommunikciban megfordul csomagokhoz a megfelel bels szablyokat. Olyan vizsglatokat vgez, amelyek segtsgvel ki tudja derteni, hogy a csomag kldje s cmzettje kztt fennll ktirny kapcsolat rvnyes szablyok szerint zajlik-e. Minden olyan csomagot, amely nem illeszkedik megfelelen a kapcsolatra vonatkoz smra, csalsnak tekintjk s automatikusan eldobjuk. Az llapottarts rvn lehetsgnk van a TCP vagy UDP kapcsolatokhoz tartoz ICMP csomagokat is tengedni a tzfalon. Teht ha kapunk egy 3-as tpus, 4-es kd ICMP vlaszt valamilyen bngszsre hasznlt llapottart szablyon keresztl kikldtt krsre, akkor az automatikusan bejhet. Amelyik csomagot az IPF egyrtelmen kpes besorolni az aktv kapcsolatba, mg ha az eltr protokollt is hasznl, beengedi. Ami ilyenkor trtnik: Az internethez csatlakoz interfszen keresztl kifel halad csomagokat elszr egy dinamikus llapottbla alapjn illesztjk, s ha a csomag illeszkedik az aktv kapcsolatban kvetkezknt vrt csomagra, akkor tmegy a tzfalon s a dinamikus llapottblban frissl a kapcsolat llapota. Az aktv munkameneten kvl csomagok pedig egyszeren a kimen szablyrendszer szerint kerlnek ellenrzsre. Hasonlan az elzhz, az internethez csatlakoz interfszen keresztl befel halad csomagokat elszr egy dinamikus llapottbla alapjn illesztjk, s ha a csomag illeszkedik az aktv kapcsolatban kvetkezknt vrt csomagra, akkor tmegy a tzfalon s a dinamikus llapottblban frissl a kapcsolat llapota. Az aktv munkamenethez nem tartoz csomagok pedig egyszeren a bejv szablyrendszer szerint kerlnek ellenrzsre. Amikor egy kapcsolat befejezdik, automatikusan trldik a dinamikus llapottblbl. Az llapottart csomagszrs hasznlatval az jonnan keletkez kapcsolatok elutastsra vagy engedlyezsre tudunk koncentrlni. Ha engedlyeztk egy j kapcsolat ltrejttt, akkor a rkvetkez sszes tbbi csomag automatikusan tmegy a tzfalon s minden ms hamis csomag eldobdik. Ha tiltjuk az j kapcsolatot, akkor egyetlen rkvetkez csomag sem juthat t. Az llapottart szrs ltal felknlt fejlett elemzsi lehetsgek kpesek vdelmet nyjtani a behatolk rszrl alkalmazott megannyi klnbz tmadsi mdszer ellen.

30.5.13. Plda inkluzv szablyrendszerre


A most kvetkez szablyrendszer arra mutat pldt, hogyan programozzunk le egy nagyon biztonsgos inkluzv tzfalat. Az inkluzv tzfalak csak a szablyainak megfelel szolgltatsokat engedik keresztl, s alaprtelmezs szerint minden mst blokkolnak. Egy hlzat gpeit vd tzfalnak, amelyet gyakran hlzati tzfalnak (network rewall) is neveznek, legalbb kt hlzati interfsszel kell rendelkeznie. Ezeket az interfszeket ltalban gy

835

Fejezet 30. Tzfalak lltjk be, hogy tkletesen megbznak az egyik oldalban (a helyi hlzatban), a msikban (az internetben) pedig egyltaln nem. A tzfalat egybknt gy is bellthatjuk, hogy csak a tzfalat mkdtet gpet vdje ezt egyrendszeres tzfalnak (host based rewall) nevezik. Az ilyen tpus megoldsokat nem biztonsgos hlzaton keresztl kommunikl szervereknl alkalmaznak. Mindegyik UNIX-tpus rendszert, kztk a FreeBSD-t is gy alaktottk ki, hogy az opercis rendszeren belli kommunikci az lo0 interfszen s a 127.0.0.1 IP-cmen keresztl trtnik. A tzfal szablyai kztt felttlenl szerepelnik kell olyanoknak, amelyek lehetv teszik ezen a specilis intefszen a csomagok zavartalan mozgst. Az internetre csatlakoz interfszhez kell rendelni a kifel s befel halad forgalom hitelestst a hozzfrsnek vezrlst. Ez lehet a felhasznli PPP ltal ltrehozott tun0 interfsz vagy a DSL-, illetve kbelmodemhez csatlakoz hlzati krtya. Ahol egy vagy tbb hlzati krtya is csatlakozik tbb klnbz helyi hlzathoz, gy kell belltani a hozzjuk tartoz interfszeket, hogy egyms fel s az internet fel kpesek legyenek kldeni s fogadni. A szablyokat elszr hrom nagy csoportba kell szerveznnk: elszr jnnek a megbzhat interfszek, ezeket kvetik az internet fel mutat interfszek, vgl internet fell jv, nem megbzhat interfszeke. Az egyes csoportokban szerepl szablyokat gy kell megadni, hogy kzlk elre kerljenek a leggyakrabban alkalmazottak, s a csoport utols szablya blokkoljon s naplzzon minden csomagot az adott interfszen s irnyban. A kimen forgalomat vezrl szablyrendszer csak pass (teht tenged) szablyokat tartalmazhat, amelyek bentrl az interneten elrhet szolgltatsokat azonostjk egyrtelmen. Az sszes ilyen szablyban meg kell jelenni a quick, on, proto, port s keep state belltsoknak. A proto tcp szablyok esetben meg kell adni a flag opcit is, amivel fel tudjuk ismertetni a kapcsolatok keletkezst s ezen keresztl aktivlni az llapottartst. A bejv forgalmat vezrl szablyrendszerben elszr az eldobni kvnt csomagokat kell megadni, aminek kt eltr oka van. Elszr is elfordulhat, hogy a veszlyes csomagok rszleges illeszkeds miatt szablyosnak tnnek. Az ilyen csomagokat rtelemszeren nem lenne szabad beengedni a szablyok rszleges megfelelse alapjn. A msodszor az eleve ismerten problms s rtelmetlen csomagokat csendben el kellene vetni, mieltt a szakaszhoz tartoz utols szably fogn meg s naplzn. Ez az utols szably egybknt szksg esetn felhasznlhat a tmadk elleni bizonytkok begyjtsre. A msik, amire mg oda kell gyelnnk, hogy a blokkolt csomagok esetben semmilyen vlasz nem keletkezzen, egyszeren csak tnjenek el. gy a tmad nem fogja tudni, hogy a csomagjai vajon elrtk-e a rendszernket. Minl kevesebb informcit tudnak sszegyjteni a rendszernkrl a tmadk, annl tbb idt kell sznniuk csnytevseik kieszelsre. A log first opcit tartalmaz szablyok csak az illeszkedsnl fogjk naplzni a hozzjuk tartoz esemnyt. Erre lthatunk pldt az nmap OS fingerprint szablynl. Az security/nmap segdprogramot a tmadk gyakran alkalmazzk a megtmadni kvnt szerver opercis rendszernek feldertsre. Minden log first opcival megadott szably illeszkedsnl a ipfstat -hio parancs meghatrozdik az eddigi illeszkedsek aktulis szma. Nagyobb rtkek esetben kvetkeztethetnk arra, hogy a rendszernket megtmadtk (vagyis csomagokkal rasztjk ppen el). Az ismeretlen portszmok feldertsre az /etc/services llomny, esetleg a http://www.securitystats.com/tools/portsearch.php (angol nyelv) honlap hasznlhat. rdemes tovbb megnzni a trjai programok ltal hasznlt portokat a http://www.simovits.com/trojans/trojans.html cmen (angolul). A kvetkez szablyrendszer egy olyan biztonsgos inkluzv tpus tzfal, amelyet les rendszeren is hasznlnak. Ezt a rendszernkn nem hasznlt szolgltatsokra vonatkoz pass szablyok trlsvel knnyedn a sajt ignyeink szerint alakthatjuk.

836

Fejezet 30. Tzfalak Ha nem akarunk ltni bizonyos zeneteket, akkor vegynk fel hozzjuk egy block tpus szablyt a befel irnyul forgalomhoz tartoz szablyok kz. A szablyokban rjuk t a dc0 interfsz nevt annak a hlzati krtynak az interfszre, amelyen keresztl csatlakozunk az internethez. A felhasznli PPP esetben ez a tun0 lesz. Teht a kvetkezket kell berni az /etc/ipf.rules llomnyba:
################################################################# # A helyi hlzatunkon zajl forgalmat ne korltozzuk. # Csak akkor kell, ha helyi hlzathoz is csatlakozunk. ################################################################# #pass out quick on xl0 all #pass in quick on xl0 all ################################################################# # A bels interfszen szintn ne korltozzunk semmit. ################################################################# pass in quick on lo0 all pass out quick on lo0 all ################################################################# # Az internet fel forgalmaz interfsz (kimen kapcsolatok) # A sajt hlzatunkrl bellrl vagy errl az tjrrl # kezdemnyezett kapcsolatokat vizsgljuk az internet fel. ################################################################# # Engedlyezzk az internet szolgltatk nvszervernek elrst, # az "xxx" helyett a nvszervet IP-cmt kell megadni. # Msoljuk le ezeket a sorokat, ha a szolgltatnknak tbb # nvszervert is beakarjuk lltani. A cmeiket az /etc/resolv.conf # llomnyban talljuk. pass out quick on dc0 proto tcp from any to xxx port = 53 flags S keep state pass out quick on dc0 proto udp from any to xxx port = 53 keep state # DSL vagy kbeles hlzatoknl engedlyezzk a # szolgltatnk DHCP szervernek elrst. # Ez a szably nem kell, ha "felhasznli PPP"-vel # kapcsoldunk az internethez, ilyenkor teht az egsz # csoport trlhet. # Hasznljuk az albbi szablyt s keressk meg a naplban az # IP-cmet. Ha megtalltuk, akkor tegyk bele a megjegyzsben # szerepl szablyba s trljk az els szablyt. pass out log quick on dc0 proto udp from any to any port = 67 keep state #pass out quick on dc0 proto udp from any to z.z.z.z port = 67 keep state # Kifel engedlyezzk a szabvnyos nem biztonsgos WWW funkcikat. pass out quick on dc0 proto tcp from any to any port = 80 flags S keep state # Kifel engedlyezzk a biztonsgos WWW funkcikat TLS SSL # protokollal. pass out quick on dc0 proto tcp from any to any port = 443 flags S keep state

837

Fejezet 30. Tzfalak


# Kifel engedlyezzk az e-mailek kldst s fogadst. pass out quick on dc0 proto tcp from any to any port = 110 flags S keep state pass out quick on dc0 proto tcp from any to any port = 25 flags S keep state # Kifel engedlyezzk az id szolgltatst. pass out quick on dc0 proto tcp from any to any port = 37 flags S keep state # Kifel engedlyezzk az nntp hreket. pass out quick on dc0 proto tcp from any to any port = 119 flags S keep state # Kifel engedlyezzk az tjrrl s a helyi hlzatrl a nem # biztonsgos FTP hasznlatt (passzv s akv mdokban is). Ez a # funkci a mkdshez a nat szablyokat tartalmaz llomnyban # hivatkozott FTP proxyt hasznlja. Amennyiben a pkg_add paranccsal # csomagokat akarunk telepteni az tjrra, erre a szablyra # mindenkppen szksgnk lesz. pass out quick on dc0 proto tcp from any to any port = 21 flags S keep state # Kifel engedlyezzk az ssh/sftp/scp # (biztonsgos telnet/rlogin/FTP) # szolgltatsok # elrst az SSH (secure shell) hasznlatval. pass out quick on dc0 proto tcp from any to any port = 22 flags S keep state # Kifel engedlyezzk a nem biztonsgos telnet elrst. pass out quick on dc0 proto tcp from any to any port = 23 flags S keep state # Kifel engedlyezzk FreeBSD CVSUp funkcijt. pass out quick on dc0 proto tcp from any to any port = 5999 flags S keep state # Kifel engedlyezzk a pinget. pass out quick on dc0 proto icmp from any to any icmp-type 8 keep state # Kifel engedlyezzk a helyi hlzatrl rkez whois krseket. pass out quick on dc0 proto tcp from any to any port = 43 flags S keep state # Minden mst eldobunk s naplzzuk az els elfordulsukat. # Ez a szably blokkol alaprtelmezs szerint mindent. block out log first quick on dc0 all ################################################################# # Az internet felli interfsz (bejv kapcsolatok) # A sajt hlzatunk fel vagy erre az tjrra # nyitott kapcsolatokat vizsgljuk az internet fell. ################################################################# # Eldobjuk az sszes olyan # lehetne tovbbtani vagy block in quick on dc0 from block in quick on dc0 from block in quick on dc0 from block in quick on dc0 from block in quick on dc0 from block in quick on dc0 from block in quick on dc0 from bejv forgalmat, amit hivatalosan nem fenntartott cmterlethez tartozik. 192.168.0.0/16 to any #RFC 1918: privt IP 172.16.0.0/12 to any #RFC 1918: privt IP 10.0.0.0/8 to any #RFC 1918: privt IP 127.0.0.0/8 to any #helyi 0.0.0.0/8 to any #helyi 169.254.0.0/16 to any #DHCP 192.0.2.0/24 to any #dokumentcis clokra fenntartva

838

Fejezet 30. Tzfalak


block in quick on dc0 from 204.152.64.0/23 to any block in quick on dc0 from 224.0.0.0/3 to any #Sun klaszterek sszektsre hasznlt #D s E osztly multicast

##### Itt eldobunk egy raks csf dolgot ############ # Ezeket nem akarjuk a naplban ltni: # Eldobjuk a tredkcsomagokat. block in quick on dc0 all with frags # Eldobjuk a tlsgosan rvid TCP csomagokat. block in quick on dc0 proto tcp all with short # Eldobjuk a forrs ltal kzvettett (source routed) csomagokat. block in quick on dc0 all with opt lsrr block in quick on dc0 all with opt ssrr # Elutastjuk az "OS fingerprint" krseket. # Naplzzuk az els elfordulst, gy nlunk lesz a kvncsiskod # egyn IP-cme. block in log first quick on dc0 proto tcp from any to any flags FUP # Eldobunk mindent, aminek specilis belltsai vannak. block in quick on dc0 all with ipopts # Elutastjuk a publikus pinget. block in quick on dc0 proto icmp all icmp-type 8 # Elutastjuk az ident krseket. block in quick on dc0 proto tcp from any to any port = 113 # Blokkoljuk az sszes Netbios szolgltatst: 137=nv, 138=datagram, # 139=session. A Netbios az MS Windows megosztst implementlja. # Blokkoljuk az MS Windows hosts2 nvszerver krseit is a 81-es # porton. block in log first quick on dc0 proto tcp/udp from any to any port = block in log first quick on dc0 proto tcp/udp from any to any port = block in log first quick on dc0 proto tcp/udp from any to any port = block in log first quick on dc0 proto tcp/udp from any to any port = # Engedlyezzk a szolgltatnk DHCP szervertl rkez # Ebben a szablyban meg kell adnunk a szolgltat DHCP # IP-cmt, mivel itt csak a hiteles forrsbl fogadunk # Erre csak DSL- s kbelmodemes kapcsolat esetben van # "felhasznli PPP" alkalmazsa sorn szksgtelen. Ez # megegyezik a kimen kapcsolatoknl megadott cmmel. pass in quick on dc0 proto udp from z.z.z.z to any port

137 138 139 81

forgalmat. szervernek el csomagokat. szksg, a az IP-cm = 68 keep state

# Befel engedlyezzk a szabvnyos WWW funkcit, mivel webszervernk # van. pass in quick on dc0 proto tcp from any to any port = 80 flags S keep state # Befel engedlyezzk az internetrl rkez nem biztonsgos telnet # kapcsolatokat. Azrt nem biztonsgos, mert az azonostkat s

839

Fejezet 30. Tzfalak


# jelszavakat titkostatlan formban kzli az interneten keresztl. # Trljk ezt a szablyt, ha nem hasznlunk telnet szervert. #pass in quick on dc0 proto tcp from any to any port = 23 flags S keep state # Befel engedlyezzk az internetrl # rkez ssh/sftp/scp (biztonsgos # telnet/rlogin/FTP) # kapcsolatokat az SSH (secure shell) hasznlatval. pass in quick on dc0 proto tcp from any to any port = 22 flags S keep state # Minden mst dobjuk el s naplzzuk az els elfordulsukat. # Az els alkalom naplzsval elejt tudjuk venni a "Denial of # Service" tpus tmadsoknak, amivel egybknt lehetsges lenne a # napl elrasztsa. # Ez a szably blokkol alaprtelmezs szerint mindent. block in log first quick on dc0 all ################### Itt van a szablyok vge ##############################

30.5.14. NAT
A NAT jelentse Network Address Translation, vagyis hlzati cmfordts. A Linux esetben ezt IP masqueradingnak, vagyis IP maszkolsnak hvjk. A hlzati cmfordts s az IP maszkols lnyegben ugyanazt takarja. Az IPF cmfordtsrt felels funkcijnak ksznheten kpesek vagyunk a tzfal mgtt elhelyezked helyi hlzat szmra megosztani az internet-szolgltatl kapott publikus IP-cmet. Sokakban felmerlhet a krds, hogy erre vajon mi szksgnk lehet. Az internet-szolgltatk a magnszemlyeknek ltalban dinamikus IP-cmeket osztanak ki. A dinamikus itt arra utal, hogy a cmnk minden alkalommal vltozik, amikor betrcszunk a szolgltathoz vagy amikor ki- s bekapcsoljuk a modemnket. Ez a dinamikus IP-cm fog azonostani minket az interneten. Most tegyk fel, hogy t gpnk van otthon, viszont csak egyetlen elzetssel rendelkeznk. Ebben az esetben t telefonvonalat kellene hasznlnunk s mindegyik gphez elzetni az internetre. A hlzati cmfordts alkalmazsval azonban mindssze egyetlen elzets kell. A gpek kzl ngyet hozzktnk egy switch-hez s a switch-et pedig a fennmarad gphez, amelyen FreeBSD fut. Ez utbbi lesz az gy kialaktott helyi hlzatunk tjrja. A tzfalban mkd cmfordts segtsgvel a helyi hlzaton tallhat gpek IP-cmeit szrevtlenl t tudjuk fordtani a hlzatunk publikus IP-cmre, ahogy a csomagok elhagyjk az tjrt. A berkez csomagok esetben mindez visszafel trtnik meg. Az IP-cmek kzl adott egy tartomny, amit a cmfordtst hasznl helyi hlzatok rszre tartanak fenn. Az RFC 1918 szerint az albbi IP-cmtartomnyok hasznlhatk a helyi hlzatban, mivel ezeken keresztl kzvetlenl sosem lehet kijutni az internetre: Kezd IP: 10.0.0.0 Kezd IP: 172.16.0.0 Kezd IP: 192.168.0.0 -

Zr IP: 10.25

Zr IP: 172.3 Zr IP: 192.1

30.5.15. IPNAT
A cmfordtsra vonatkoz szablyokat az ipnat paranccsal tudjuk betlteni. Az ilyen tpus szablyokat ltalban

840

Fejezet 30. Tzfalak az /etc/ipnat.rules llomnyban talljuk. A rszleteket lsd az ipnat(1) man oldaln. Amikor a cmfordts zembe helyezse utn meg akarjuk vltoztatni a cmfordts szablyait, elszr a cmfordts szablyait tartalmaz llomnyt mdostsuk, majd a bels cmfordtsi szablyok s a cmfordtsi tblzatban szerepl aktv bejegyzsek trlshez futassuk le az ipnat parancsot a -CF belltssal. A cmfordtsi szablyok jratltst egy ehhez hasonl paranccsal tudjuk elvgezni:
# ipnat -CF -f /etc/ipnat.szablyok

A cmfordtshoz tartoz statisztikkat ezzel a paranccsal tudjuk lekrdezni:


# ipnat -s

A cmfordtsi tblzatban pillanatnyilag szerepl sszerendelseket a kvetkez paranccsal tudjuk listzni:


# ipnat -l

A szablyok feldolgozsval s az aktv szablyokkal/bejegyzsekkel kapcsolatos informcik rszletezst gy engedlyezhetjk:


# ipnat -v

30.5.16. A cmfordtsi szablyok


A cmfordtsi szablyok nagyon rugalmasak s rengeteg olyan funkcit meg tudunk velk valstani, ami az zleti s otthoni felhasznlk szmra egyarnt hasznos. Itt most a szablyok felptst csak egyszerstve mutatjuk be, leginkbb a nem zleti krnyezetek tekintetben. A szablyok komplett formai lerst az ipnat(5) man oldaln talljuk. Egy cmfordtsi szably teht valahogy gy nz ki:
map INTERFSZ HELYI_IP_TARTOMNY -> PUBLIKUS_CM

A szablyt a map kulcssz kezdi. A INTERFSZ helyre az internet fel mutat kls interfsz nevt rjuk be. A HELYI_IP_TARTOMNY lesz az, amelyben a kliensek cmeznek. Ez pldul a 192.168.1.0/24. A PUBLIKUS_CM lehet egy kls IP-cm vagy a 0/32 specilis kulcssz, amellyel a FELLET -hez rendelt IP-cmre hivatkozunk.

30.5.17. Hogyan mkdik a hlzati cmfordts


A publikus cl fel halad csomag megrkezik a helyi hlzatrl. Miutn a kimen kapcsolatokra vonatkoz szablyok tengedik, a cmfordts kapja meg a szerepet s fentrl lefel haladva nekilt alkalmazni a sajt szablyait, ahol az els egyez szerint cselekszik. A cmfordts a szablyokat a csomaghoz tartoz interfszre s a forrs IP-cmre illeszti. Amikor a csomag interfsznek neve illeszkedik egy cmfordtsi szablyra, akkor ezutn a csomag forrs (vagyis a helyi hlzaton belli) IP-cmrl igyekszik eldnteni, hogy a szably nyilnak bal oldaln szerepl tartomnyba esik-e. Ha erre is illeszkedik, akkor a forrs IP-cmt trjuk a 0/32 kulcssz alapjn feldertett

841

Fejezet 30. Tzfalak publikus IP-cmre. A cmfordt rutin ezt feljegyzi a sajt bels tblzatba, gy amikor a csomag visszatr az internetrl, akkor kpes lesz visszafordtani az eredeti bels IP-cmre s feldolgozsra tadni a tzfal szablyainak.

30.5.18. A cmfordts engedlyezse


A cmfordts letre keltshez a kvetkezket kell belltanunk az /etc/rc.conf llomnyban. Elszr engedlyezzk a gpnknek, hogy kzvettsen forgalmat az interfszek kztt:
gateway_enable="YES"

Minden alkalommal indtsuk el a cmfordtsrt felels IPNAT programot:


ipnat_enable="YES"

Adjuk meg az IPNAT szmra a betltend szablyokat:


ipnat_rules="/etc/ipnat.rules"

30.5.19. Hlzati cmfordts nagyon nagy helyi hlzatok esetben


Az olyan helyi hlzatokban, ahol rengeteg PC tallhat vagy tbb alhlzatot is tartalmaz, az sszes privt IP-cm egyetlen publikus IP-cmbe tmrtse igen komoly problmv tud dagadni s az azonos portok gyakori hasznlata a helyi hlzatra kttt szmtgpek kztt tkzseket okoz. Kt mdon tudunk megoldst nyjtani erre a problmra.

30.5.19.1. A hasznlhat portok kiosztsa


Egy normlis cmfordtsi szably valahogy gy nzne ki:
map dc0 192.168.1.0/24 -> 0/32

A fenti szablyban a csomag forrsportjt az IPNAT vltozatlanul a feldolgozs utn hagyja. Ha ehhez mg hozztesszk a portmap kulcsszt, akkor ezzel utastani tudjuk az IPNAT-ot, hogy csak az adott tartomnyban kpezze le a forrsportokat. Pldul a kvetkez szably hatsra az IPNAT a forrsportokat egy adott tartomnyon bell fogja mdostani:
map dc0 192.168.1.0/24 -> 0/32 portmap tcp/udp 20000:60000

Ha viszont mg inkbb meg akarjuk knnyteni a dolgunkat, akkor itt egyszeren csak adjuk meg az auto kulcsszt, amellyel az IPNAT nmagtl megllaptja, hogy milyen portokat tud hasznlni:
map dc0 192.168.1.0/24 -> 0/32 portmap tcp/udp auto

842

Fejezet 30. Tzfalak

30.5.19.2. Tbb publikus cm hasznlata


Minden nagyobb helyi hlzat esetben elrkeznk ahhoz a ponthoz, ahol mr egyetlen publikus cm nem elg. Ha tbb publikus IP-cmmel is rendelkeznk, akkor ezekbl a cmekbl egy kzs kszletet hozhatunk ltre, amibl majd az IPNAT vlogathat mikzben a csomagok cmeit trja kifel menetben. Pldul ahelyett, hogy a csomagokat egyetlen publikus IP-cmre kpeznnk le, ahogy itt tesszk:
map dc0 192.168.1.0/24 -> 204.134.75.1

A hlzati maszk segtsgvel meg tudjuk adni IP-cmek egy tartomnyt is:
map dc0 192.168.1.0/24 -> 204.134.75.0/255.255.255.0

CIDR-jellssel:
map dc0 192.168.1.0/24 -> 204.134.75.0/24

30.5.20. A portok tirnytsa


Gyakran elfordul, hogy van webszervernk, levelez szervernk, adatbzis szervernk s nvszervernk, melyek a helyi hlzat klnbz gpein futnak. Ebben az esetben a szerverekhez tartoz forgalmat is fordtanunk kell, illetve valamilyen mdon a bejv forgalmat is t kell irnytanunk a helyi hlzat megfelel gpeihez. Az IPNAT ezt a gondot a hlzati cmfordts tirnytst tmogat funkciival sznteti meg. Tegyk fel, hogy a 10.0.10.25 bels cmen van egy webszervernk, amelyhez a 20.20.20.5 publikus IP tartozik. Ilyenkor a kvetkez szablyt adjuk meg:
rdr dc0 20.20.20.5/32 port 80 -> 10.0.10.25 port 80

vagy:
rdr dc0 0.0.0.0/0 port 80 -> 10.0.10.25 port 80

gy tudjuk belltani a 10.0.10.33 cmmel rendelkez nvszervert a kintrl rkez nvfeloldsi krsek fogadsra:
rdr dc0 20.20.20.5/32 port 53 -> 10.0.10.33 port 53 udp

30.5.21. Az FTP s a cmfordts


Az FTP egy olyan skvlet, amely mg az internet egy rgi korszakbl maradt fenn, amikor az egyetemek kztt mg brelt vonal ltezett s az FTP szolglt a kutatk kzt az llomnyok megosztsra. Ez mg abban az idben trtnt, amikor a biztonsg egyltaln nem volt lnyeges szempont. Az vek elrehaladtval az FTP protokoll beleivdott a feltrekv internet gerincbe s a titkostatlanul kldtt azonostival s jelszavaival tovbbra is ugyanolyan vdtelen maradt. Az FTP kt vltozatban, aktv s passzv mdban kpes mkdni. Az eltrs kettejk kztt az adatcsatorna megllaptsban van. A passzv md sokkal biztonsgosabb, mivel ilyenkor az adatcsatornt az FTP kapcsolatot kezdemnyez lltja be. Az FTP klnbz mdjainak magyarzatt s a kztk lev klnbsget a http://www.slacksite.com/other/ftp.html cmen ismerhetjk meg rszleteiben (angolul).

843

Fejezet 30. Tzfalak

30.5.21.1. Az IPNAT szablyai


Az IPNAT egy specilis beptett FTP proxyval rendelkezik, amelyre a hlzati cmfordts lekpezsei kztt hivatkozhatunk. Kpes gyelni az sszes aktv vagy passzv FTP kapcsolathoz tartoz kimen krst s ezekhez dinamikusan ltrehozni olyan ideiglenes szrsi szablyokat, amelyek valban csak az adatcsatornhoz felhasznlt portokat tartalmazzk. Ezzel ki tudjuk kszblni az FTP azon kros hatst a tzfalra nzve, hogy egyszerre tlsgosan sok magasabb tartomnybeli port legyen nyitva. Ez a szably a bels hlzat sszes FTP forgalmt lekezeli:
map dc0 10.0.10.0/29 -> 0/32 proxy port 21 ftp/tcp

Ez a szably pedig az tjrrl rkez FTP forgalommal brkzik meg:


map dc0 0.0.0.0/0 -> 0/32 proxy port 21 ftp/tcp

Ez a szably kezeli a bels hlzatrl rkez sszes nem FTP tpus forgalmat:
map dc0 10.0.10.0/29 -> 0/32

Az FTP lekpzsre vonatkoz szably a szoksos lekpzsi szably el kerl. Az sszes csomag fentrl haladva az els illeszked szably alapjn kerl feldolgozsra. Elszr az interfsz nevt vizsgljuk, majd a bels hlzatbeli forrs IP-t, vgl azt, hogy a csomag egy FTP kapcsolat rsze. Ha minden paramterben megfelel, akkor az FTP proxy kszt egy ideiglenes szrsi szablyt hozz, amellyel az FTP kapcsolathoz tartoz csomagok mind a kt irnyba kpesek lesznek vndorolni, termszetesen a cmfordtssal egytt. Az sszes tbbi bentrl rkez csomag tlp ezen a szablyon s megll a harmadiknl, ahol az interfsznek s forrs IP-nek megfelelen tfordtjuk a cmt.

30.5.21.2. Az IPNAT szrsi szablyai FTP-re


Az FTP esetben csak egyetlen szrsi szablyra van szksgnk a hlzati cmfordtsba ptett FTP proxy hasznlathoz. FTP proxy nlkl az albbi hrom szably kellene:
# Kifel engedlyezzk a bels gpek FTP elrst az internet irnyba, # aktv s passzv mdokban. pass out quick on rl0 proto tcp from any to any port = 21 flags S keep state # Kifel engedlyezzk a passzv mdhoz tartoz magasabb tartomnybeli # adatcsatornkat. pass out quick on rl0 proto tcp from any to any port > 1024 flags S keep state # Aktv mdban beengedjk az FTP szervertl rkez adatcsatornt. pass in quick on rl0 proto tcp from any to any port = 20 flags S keep state

844

Fejezet 30. Tzfalak

30.6. IPFW
Az IPFIREWALL (IPFW) a FreeBSD ltal tmogatott tzfalaz alkalmazs, melyet a FreeBSD Projektben rsztvev nkntesek fejlesztettek ki s tartanak karban. Rgi tpus, llapottarts nlkli szablyokat hasznl, s az itt hasznlatos szablyrsi technikt egyszer llapottart megoldsnak nevezzk. Az IPFW szabvny FreeBSD-ben lev, mintaknt szolgl szablyrendszere (ez az /etc/rc.firewall s /etc/rc.firewall6 llomnyokban tallhat meg) annyira egyszer, hogy komolyabb mdostsok nlkl nem ajnlatos hasznlni. Ez a plda nem tartalmaz llapottart szrst, ami viszont a legtbb esetben kvnatos lenne, ezrt ezt a szakaszt nem erre alapozzuk. Az IPFW llapottarts nlkli szablyainak felptsben olyan technikailag kinomult levlogatsi kpessgek bjnak meg, amelyek jcskn meghaladjk az tlagos tzfalptk tudst. Az IPFW elssorban olyan szakemberek vagy szakmailag elrehaladott felhasznlk szmra kszlt, akiknek specilis csomagszrsi ignyeik vannak. A klnbz protokollok hasznlatnak s a hozzjuk tartoz fejlcinformcik mindenre kiterjed ismerete szinte nlklzhetetlen az IPFW valdi erejnek kihasznlshoz. Ez a szint azonban tlmutat a kziknyv ezen szakasznak keretein. Az IPFW ht komponensbl pl fel, melyek kzl az elsdleges a rendszermag tzfalazsrt felels szablyfeldolgoz s a hozztartoz csomagnyilvntarts, majd ezt kveti a naplzs, a hlzati cmfordtst aktivl divert szably, valamint a komolyabb clok megvalstsra alkalmas lehetsgek: a forgalom korltozsrt felels dummynet, a tovbbkldsre alkalmas fwd rule szably, a hlzati hidak tmogatsa, illetve az ipstealth. Az IPFW egyarnt hasznlhat IPv4 s IPv6 esetn.

30.6.1. Az IPFW engedlyezse


Az IPFW az alap FreeBSD teleptsben kln, futs idben betlthet modulknt rhet el. Ha az rc.conf llomnyban megadjuk a firewall_enable="YES" belltst, akkor a rendszer indulsakor ezt a modult dinamikusan betlti. Az IPFW-t csak akkor kell a FreeBSD rendszermagjba beptennk, ha szksgnk van a cmfordtsi funkcijra is. Ha teht az rc.conf llomnyban megadtuk a firewall_enable="YES" sort s jraindtottuk a szmtgpnket, akkor a kvetkez fehrrel kiemelt zenet fog megjelenni a rendszerindts sorn:

ipfw2 initialized, divert disabled, rule-based forwarding disabled, default to deny, logging disab

A logging disabled zenetbl kiderl, hogy a modul nem vgez naplzst. A naplzst s a hozztartoz rszletessg szintjt gy tudjuk belltani, ha az /etc/sysctl.conf llomnyba felvesszk a kvetkez sorokat, amivel a kvetkez indtskor mr mkdni fog:
net.inet.ip.fw.verbose=1 net.inet.ip.fw.verbose_limit=5

30.6.2. A rendszermag belltsai


Ha nem akarjuk kihasznlni az IPFW ltal felknlt cmfordtsi lehetsgeket, akkor egyltaln nem szksges a FreeBSD rendszermagjba belefordtani a tmogatst. Ezrt az albbiakat csak kiegszt informciknt tntettk fel.
options IPFIREWALL

845

Fejezet 30. Tzfalak Ez a bellts engedlyezi az IPFW hasznlatt a rendszermag rszeknt.


options IPFIREWALL_VERBOSE

Ezzel s a log kulcsszval tudjuk az IPFW szablyain keresztlhalad csomagokat naplzni.


options IPFIREWALL_VERBOSE_LIMIT=5

Ez az rtk korltozza a syslogd(8) segtsgvel naplzott azonos bejegyzsek maximlis szmt. Ezt a belltst olyan veszlyes krnyezetekben rdemes hasznlnunk, ahol naplzni akarunk. Segtsgvel meg tudjuk akadlyozni, hogy a rendszernapl elrasztsval megakasszk a rendszernket.
options IPFIREWALL_DEFAULT_TO_ACCEPT

Ezen bellts hatsra a tzfal alaprtelmezs szerint mindent tenged, ami ltalban akkor jhet jl, amikor elszr belltjuk a tzfalat.
options IPDIVERT

Ezzel a belltssal engedlyezzk a cmfordts hasznlatt.


Megjegyzs: Ha nem adjuk meg az IPFIREWALL_DEFAULT_TO_ACCEPT belltst, vagy ha nem engedlyezzk a bejv csomagokat, akkor a gpnkre semmilyen csomag nem lesz kpes bejutni, illetve onnan kijutni.

30.6.3. Az /etc/rc.conf belltsai


gy tudjuk engedlyezni a tzfalat:
firewall_enable="YES"

A FreeBSD-hez mellkelt alaprtelmezett tzfaltpusok kzl az /etc/rc.firewall llomny tolvassval tudunk vlasztani, s megadni az albbi helyett:
firewall_type="open"

A kvetkez rtkek llnak rendelkezsnkre:


open

tengedi az sszes forgalmat csak ezt a gpet vdi az egsz hlzatot vdi a helyi interfsz kivtelvel minden IP alap forgalmat tilt tiltja a tzfal szablyainak betltst a tzfal szablyait tartalmaz llomny abszolt elrsi tvonala

client simple closed

UNKNOWN

llomnynv

Kt klnbz mdon lehet betlteni a sajt ipfw szablyainkat. Az egyik kzlk, ha a firewall_type vltozban megadjuk a tzfal szablyait tartalmaz llomny abszolt elrsi tvonalt, az ipfw(8) parancssori

846

Fejezet 30. Tzfalak belltsai nlkl. Az albbi pldban egy olyan egyszer szablyrendszert lthatunk, amely blokkolja az sszes bejv s kimen forgalmat:
add deny in add deny out

Msrszrl az firewall_script vltozban is megadhatjuk azt a szkriptet, amelyben a rendszerindts sorn meghvjuk ipfw parancsot. Az imnti szablyrendszert az albbi szkripttel tudjuk kivltani:
#!/bin/sh ipfw -q flush ipfw add deny in ipfw add deny out

Megjegyzs: Ha a firewall_type vltoz client vagy simple rtkt hasznljuk, akkor az /etc/rc.firewall llomnyban tallhat alaprtelmezett szablyokat rdemes tvizsglnunk, hogy kellen illeszkednek-e az adott gphez. Hozztennnk, hogy a fejezetben szerepl pldk azt felttelezik, hogy a firewall_script rtke az /etc/ipfw.rules llomny.

A naplzs gy engedlyezhet:
firewall_logging="YES"

FigyelemA firewall_logging vltoz egyedl csak annyit tesz, hogy belltja a net.inet.ip.fw.verbose sysctl vltoznak az 1 rtket (lsd 30.6.1 Szakasz). A napl korltozsra nincs kln vltoz az rc.conf llomnyon bell, de az /etc/sysctl.conf llomny segtsgvel s manulisan be tudjuk lltani a hozztartoz vltozt:
net.inet.ip.fw.verbose_limit=5

Amennyiben a gpnk tjrknt viselkedik, teht a natd(8) segtsgvel cmfordtst vgez, a 31.9 Szakaszban olvashatunk utna, hogy ehhez az /etc/rc.conf llomnyban milyen belltsokat kell megadnunk.

30.6.4. Az IPFW parancs


Norml esetben az ipfw parancs hasznlatos arra, hogy a tzfal mkdse kzben az aktv bels szablyai kz vegynk fel vagy trljnk kzlk manulisan bejegyzseket. Ennek a mdszernek az egyedli htrnya, hogy az gy vgrehajtott mdostsok el fognak veszni a rendszer lelltsval. Itt inkbb azt a megoldst javasoljuk, hogy az sszes szablyt tegyk bele egy llomnyba s a rendszerindts sorn ezt tltsk be, majd ha vltoztatni akarunk a tzfalon, akkor ezt az llomnyt mdostsuk s a rgiek trlsvel tltsk be jra az egsz szablyrendszert. Az ipfw parancs mellesleg remekl hasznlhat a jelenleg fut tzfalszablyok megjelentsre a konzolon. Az IPFW nyilvntartsban az egyes szablyokhoz dinamikusan jnnek ltre szmllk, amelyek a r illeszked csomagokat szmoljk. A tzfal tesztelse folyamn a szablyok s hozztartoz szmllk lekrdezse a megfelel mkds ellenrzsnek egyik lehetsges mdja.

847

Fejezet 30. Tzfalak A szablyokat gy tudjuk egyms utn felsoroltatni:


# ipfw list

A szablyokat gy tudjuk az utols illeszkedsk idejvel egytt megjelenteni:


# ipfw -t list

A kvetkez pldban a nyilvntartsi informcikat krdezzk le, ekkor a szablyok mellett az illeszked csomagok szma is lthatv vlik. Az els sorban a szably szma szerepel, majd ezt kveti rendre az illeszked kimen s bejv csomagok mennyisge, valamint vgl maga a szably.
# ipfw -a list

A statikus szablyok mellett a dinamikusakat gy lehet kilistzni:


# ipfw -d list

A lejrt dinamikus szablyokat is meg tudjuk nzni:


# ipfw -d -e list

A szmllk nullzsa:
# ipfw zero

Csak a SZM sorszm szablyhoz tartoz szmllk nullzsa:


# ipfw zero SZM

30.6.5. Szablyrendszerek az IPFW-ben


Az IPFW esetben a szablyrendszer olyan szablyokbl ll, amelyek a csomagokrl tartalmuk alapjn eldntik, hogy t kell engedni vagy vissza kell tartani. A gpek kzt kt irnyban raml csomagok egy munkamenet alap trsalgst kpeznek. A tzfalhoz tartoz szablyrendszer egyarnt feldolgozza a internetrl a hlzatunk fel igyekv csomagokat, illetve a hlzatunk ezekre adott vlaszait. Az egyes TCP/IP szolgltatsokat (mint pldul telnet, www, levelezs stb.) a hozzjuk tartoz protokol s szabvnyos (fogad) portszm rja le. Ezekre a forrsrl ltalban valamilyen nem szabvnyos (magasabb rtk) portrl rkeznek csomagok. Ekkor a kommunikci sszes paramtere (vagyis a portok s cmek) brmelyike alapjn denilhatunk blokkolst vagy tovbbengedst ler szablyokat. Amikor egy csomag elri a tzfalat, a szablyrendszer els szablyval kerl sszehasonltsra s amg nem illeszkedik valamelyikre, addig lefut r a tbbi szably is fentrl lefel egyesvel, a sorszmuknak megfelel nvekv sorrendben. Ha a csomag megfelel valamelyik szably levlogatsi paramtereinek, akkor a benne megnevezett cselekvs zajlik le, s szmra a feldolgozs befejezdik. Ezt a viselkedst neveztk az els illeszkeds nyer tpus keressnek. Amennyiben a csomag egyetlen szablyra sem illeszkedik, akkor az IPFW 65535-s sorszm lland szablya fogja elcspni, amely feladata szerint eldobja az sszes hozz berkez csomagot anlkl, hogy brmit is vlaszolna a csomag feladjnak.
Megjegyzs: A keress a count, skipto s tee szablyok utn mg folytatdik.

848

Fejezet 30. Tzfalak

Az itt szerepl utastsok klnbz llapottartsra vonatkoz opcikat, pldul a keep state, limit, in, out s via kulcsszavakat tartalmaz szablyokon alapulnak. Lnyegben ezt tekinthetjk az inkluzv tpus tzfalak kiindulsi alapjaknt.
FigyelemA tzfal szablyainak belltsa sorn nem rt vatosnak lennnk, mert gyelmetlensgnk rvn knnyen kizrathatjuk magunkat a gpnkrl.

30.6.5.1. A szablyok felptse


Az itt bemutatsra kerl szablyok felptst csak olyan mrtkig rszletezzk, ami elenged a szabvnyos inkluzv tpus tzfalak kialaktshoz. A szablyok felptsnek pontos lerst az ipfw(8) man oldaln tallhatjuk meg. A szablyok kulcsszavakat tartalmaznak. Ezeket a kulcsszavakat soronknt egy elre rgztett sorrendben kell szerepeltetni. A kulcsszavakat a szvegben kiemeltk. Bizonyos kulcsszavakhoz tovbbi opcikhoz is tartozhatnak, amelyek gyakran maguk is kulcsszavak s szintn tovbbi opcikat tartalmazhatnak. A # egy megjegyzs kezdett jelzi, mely egyarnt megjelenhet egy kln sorban, vagy egy szablyt tartalmaz sor vgn. Az res sorok nem vesznek rszt a feldolgozsban.
PARANCS SZABLY_SZM CSELEKVS NAPLZS SZRS LLAPOTTARTS

30.6.5.1.1. PARANCS Minden j szably elttt az add (mint hozzads) parancsnak kell szerepelni, amellyel a bels tblzatba tudjuk felvenni.

30.6.5.1.2. SZABLY_SZM A szablyokhoz mindig tartozik egy sorszm is.

30.6.5.1.3. CSELEKVS A szablyhoz az albbi cselekvsek valamelyike kapcsolhat, amely akkor hajtdik vgre, amikor a csomag megfelel a hozztartoz szrsi feltteleknek.
allow | accept | pass | permit

A fentiek kzl mindegyik ugyanazt jelenti, vagyis hatsukra az illeszked csomag kilp a tzfalbl. Ez a szably meglltja a keresst.
check-state

A csomagot a dinamikus szablyokat trol tblzattal veti ssze. Ha itt egyezst tall, akkor vgrehajtja az egyez dinamikus szablyhoz tartoz cselekvst, minden ms esetben tovbblp a kvetkez szablyra. Ennek a szablynak nincs illeszthet paramtere. Ha a szablyrendszerben nem szerepel ilyen, akkor a dinamikus szablyok vizsglatt az els keep-state vagy limit hasznlatnl vonja be a rendszer.
deny | drop

849

Fejezet 30. Tzfalak Mind a kt sz ugyanarra utal, vagyis a szablyra illeszked csomagokat el kell dobni. Ebben az esetben a keress befejezdik.

30.6.5.1.4. NAPLZS
log vagy logamount

Amikor egy csomag egy log kulcsszt tartalmaz szablyra illeszkedik, akkor a rendszernaplban egy zenet keletkezik a security (biztonsg) funkcin keresztl. A naplba tnylegesen csak akkor kerl bele az zenet, ha az adott szably mg nem haladta meg a hozztartoz logamount paramter rtkt. Ha ezt nem adtuk meg, akkor az itt rvnyes korlt a net.inet.ip.fw.verbose_limit sysctl vltozbl fog szrmazni. A nulla rtk mind a kt esetben megsznteti ezt a korltozst. Ha elrtk a korltot, akkor a naplzst gy tudjuk jra engedlyezni, ha trljk a naplzshoz tartoz szmll rtkt, lsd az ipfw reset log parancsot.
Megjegyzs: A naplzs mindig az sszes paramter illeszkedsnek ellenrzse utn trtnik, de mg a cselekvs (accept, deny) elvgzse eltt. Teljesen rajtunk mlik, hogyan milyen szablyokat naplzunk.

30.6.5.1.5. SZRS Ebben a szakaszban azok a kulcsszavak tallhatak, amelyek segtsgvel a csomagok klnbz tulajdonsgait tudjuk megvizsglni s eldnteni, hogy illeszkedik-e a szablyra vagy sem. A kvetkez ltalnos tulajdonsgokat tudjuk megvizsglni, ebben a kttt sorrendben:
udp | tcp | icmp

Brmilyen ms olyan protokoll is megadhat, amely megtallhat az /etc/protocols llomnyban. Ezzel adjuk a csomaghoz tartoz protokollt. Hasznlata ktelez.
from forrs to cl

Mind a from s to kulcsszavak IP-cmek illesztsre alkalmasak. A szablyoknak tartalmazniuk kell a forrs S a cl paramtereket is. Az any egy olyan kulcssz, amely tetszleges IP-cmre illeszkedik. A me pedig egy olyan specilis kulcssz, amely a tzfalat mkdtet FreeBSD-s gp (teht ez a gp) adott interfszhez tartoz IP-cmt jelli, mint ahogy a from me to any, from any to me, from 0.0.0.0/0 to any, from any to 0.0.0.0/0, from 0.0.0.0 to any, from any to 0.0.0.0 vagy from me to 0.0.0.0 paramterekben. Az IP-cmek numerikus pontozott formban a hlzati maszk hosszval egytt (CIDR-jellssel), vagy egyszeren csak pontozott formban adhatak meg. A hlzati maszkok megllaptsban a net-mgmt/ipcalc port lehet segtsgnkre. Errl bvebb informcikat a segdprogram honlapjn, a http://jodies.de/ipcalc cmen tallhatunk (angolul).
port szm

A portszmokat is ismer protokollok esetben (mint pldul a TCP vagy UDP) adhatjuk meg. Fontos, hogy itt annak a szolgltatsnak a portszmt adjuk meg, amelyre a szably vonatkozik. A szolgltats (az /etc/services llomnybl szrmaz) nevt is megadhatjuk a port szma helyett.
in | out

A berkez valamint a kimen csomagokat adhatjuk meg ezen a mdon. Itt az in s out kulcsszavak, melyeket ktelez megadni a szably rszeknt.
via interfsz

850

Fejezet 30. Tzfalak Nv szerint az adott interfszen keresztl halad csomagokat tudjuk szrni. A via kulcssz hatsra a hasznlt interfsz is szmtani fog a csomag feldolgozsa sorn.
setup

Ez a kulcssz a TCP csomagok esetben a kapcsolatok felptsre vonatkoz krseket segt beazonostani.
keep-state

Ez egy ktelez kulcssz. Feldolgozsakor a tzfal ltrehoz dinamikus szablyt, amely alaprtelmezs szerint az egyazon protokollt hasznl forrs s cl IP/port prosok kzti ktirny forgalomra fog automatikusan illeszkedni.
limit {forrscm | forrsport | clcm | clport}

A tzfal csak N darab, a szablynak megfelel azonos paramter kapcsolatot fog tengedi. Itt egy vagy tbb forrss clcm valamint forrs- s clport adhat meg. A limit s a keep-state egy szablyon bell nem hasznlhat. A limit ugyanazokat az llapottart funkcikat kpviseli, mint a keep-state, csak a sajt kiegsztseivel megtoldva.

30.6.5.2. LLAPOTTARTS
Az llapottart szrs a ktirny csomagvltsokat egy ltrejtt kapcsolatba sorolja. Olyan vizsglatokat vgez, amivel kpes megllaptani, hogy a csomag kldje s cmzettje kztt kialakult kommunikci kvet-e valamilyen ktirny csomagkldsre rvnyes folyamatot. Az gy fellltott sablontl eltr sszes csomag hamisnak minsl s automatikusan eldobsra kerl. A check-state segtsgvel ellenrizhetjk, hogy az adott csomag a IPFW szerint megfelel-e valamelyik dinamikusan lekpzett szablynak. Ha egyezik valamelyikjkkel, akkor a csomag a tzfalbl kilpve folytatja tjt s a kommunikciban soron kvetkez csomag szmra ltrejn egy msik dinamikus szably. Ha nincs egyezs, akkor csomag feldolgozsa a szablyrendszer kvetkez szablynl folytatdik. A dinamikus szablyokat kezel rutin sebezhet, mivel ha egyszerre nagy mennyisg SYN csomagot kldnk, akkor olyan sok dinamikus bejegyzs keletkezik, hogy egyszeren kifogyunk a rendelkezsre ll erforrsokbl. A FreeBSD fejleszti azonban az ilyen termszet tmadsok kivdsre is felksztettk, s kialaktottk belle a limit opcit. Alkalmazsval le tudjuk korltozni az egyszerre foly prhuzamos kapcsolatok szmt a forrs vagy a cl a limit paramternl megadott mezinek s a csomag IP-cme alapjn. gy az adott szablyhoz s IP-cmhez csak elre rgztett mennyisg nyitott llapot dinamikus szably ltezhet egy idben. Ha ezt a korltot tlpjk, a csomag eldobdik.

30.6.5.3. A tzfal zeneteinek naplzsa


A naplzs elnyei nyilvnvalak. Ha engedlyezzk, aktivlsa utn kpesek lesznk olyan informciknak utnanzni, mint pldul milyen csomagokat dobtunk el, honnan rkeztek, hova tartottak. Ez egy komoly fegyvernk lehet a potencilis tmadkkal szemben. Azonban hiba engedlyezznk nmagban a naplzst, attl az IPFW mg sajt magtl nem fog naplzst elr szablyokat gyrtani. A tzfal karbantartinak maguknak kell eldntenie, hogy a szablyrendszerben mely szablyokhoz tartozzon naplzs, nekik kell felvenni ezekhez a log kulcsszt. ltalban csak az eldobssal jr deny tpus szablyokat vagy a bejv ICMP pingeket szoktk naplzni. Gyakran gy oldjk meg ezt, hogy a szablyrendszer utols szablyaknt lemsoljk az ipfw alaprtelmezett mindent eldobunk szablyt s a

851

Fejezet 30. Tzfalak naplzst adjk meg benne. Ezen a mdon fny derl azokra a csomagokra, amelyek a szablyrendszerben semmire sem illeszkedtek. A naplzs azonban egy ktl fegyver, mivel ha nem vagyunk elg krltekintek, akkor a sok naplinformci kztt knnyen el tudunk veszni s a lemeznk is gyorsan betelhet a mindent elfoglal naplktl. Mellesleg a naplk megdagasztst clz DoS tpus tmads a rendszerek lebntsra alkalmazott egyik legsibb technika. Ezek az zenetek nem csak a rendszernaplba kerlnek bele, hanem az elsdleges konzol kpernyjre is kirdnak, ami egy id utn idegest tud lenni. A rendszermag IPFIREWALL_VERBOSE_LIMIT=5 belltsval azonban kpesek vagyunk korltozni azokat a rendszernapl fel kldtt egyms utn kvetkez zeneteket, amelyek ugyanarra a szablyra vonatkoznak. Amikor ezt a belltst megadjuk a rendszermag fordtsnl, akkor az egyes szablyokhoz az ltala meghatrozott rtken fell nem jn ltre tbb hasonl zenet. Hiszen semmi sem derl ki 200 teljesen azonos naplzenetbl. Pldul, ha az egyes szablyokhoz legfeljebb t egymst kvet zenetet engedlyeznk, akkor a tbbi fennmarad azonos zenetet sszeszmolja a rendszer s a kvetkez mdon kzvetti a rendszernaplz szolgltats fel:
last message repeated 45 times

Ami magyarul gy hangzik:


az utols zenet 45 alkalommal ismtldtt meg

Az sszes csomagokkal kapcsolatos naplzs alaprtelmezs szerint a /var/log/security llomnyba kerl, amelyet az /etc/syslog.conf llomny denil.

30.6.5.4. Szablyokat tartalmaz szkript ksztse


A rutinosabb IPFW felhasznlk a szablyokat egy llomnyban programozzk le olyan stlusban, hogy szkriptknt is futtathat legyen. Ennek az egyik legnagyobb elnye, hogy a tzfal szablyai gy egyszerre cserlhetek a rendszer jraindtsa nlkl. Ez a mdszer nagyon knyelmes az j szablyok kiprblsnl, mivel tetszleges alkalommal vgrehajthatjuk. Mivel ez egy szkript, ki tudjuk hasznlni az itt megszokott szimbolikus helyettests ltal felknlt lehetsgeket, s ezzel a gyakran hasznlt rtkeket is egyszerre tbb szablyban tudjuk helyettesteni. Erre a kvetkezkben fogunk egy konkrt pldt ltni. A szkript felptse kompatibilis a sh(1), csh(1) s tcsh(1) parancsrtelmezkkel. A szimbolikus mezk helyettestst a $ vagyis dollrjel vezeti be. Maguk a szimbolikus mezk nem tartalmazzk a $ eltagot. A szimbolikus mezk rtkeit "ketts idzjelek" kztt kell megadni. A szablyok sszerst kezdjk el gy:
####### itt kezddik az ipfw szablyait tartalmaz szkript ###### # ipfw -q -f flush # trljk az sszes aktulis szablyt # Set defaults oif="tun0" # a kimen interfsz odns="192.0.2.11" # az internet szolgltat nvszervernek IP-cme cmd="ipfw -q add " # a szablyok hozzadshoz szksges elemek ks="keep-state" # csupn a lustasg miatt $cmd 00500 check-state $cmd 00502 deny all from any to any frag $cmd 00501 deny tcp from any to any established $cmd 00600 allow tcp from any to any 80 out via $oif setup $ks

852

Fejezet 30. Tzfalak


$cmd 00610 allow tcp from any to $odns 53 out via $oif setup $ks $cmd 00611 allow udp from any to $odns 53 out via $oif $ks #### itt fejezdik be az ipfw szablyait tartalmaz szkript ######

Ezzel kszen is vagyunk. Most ne trdjnk a pldban szerepl szablyokkal, itt most a szimbolikus helyettests hasznlatt igyekeztk bemutatni. Ha az imnti pldt az /etc/ipfw.rules llomnyba mentettk el, akkor az albbi parancs kiadsval tudjuk jratlteni a benne szerepl szablyokat:
# sh /etc/ipfw.rules

Az /etc/ipfw.rules llomnyt egybknt tetszleges nven hvhatjuk s brhov rakhatjuk. Ugyanez termszetesen elrhet a kvetkez parancsok egyms utni begpelsvel is:
# # # # # # # ipfw ipfw ipfw ipfw ipfw ipfw ipfw -q -q -q -q -q -q -q -f flush add check-state add deny all from any to any frag add deny tcp from any to any established add allow tcp from any to any 80 out via tun0 setup keep-state add allow tcp from any to 192.0.2.11 53 out via tun0 setup keep-state add 00611 allow udp from any to 192.0.2.11 53 out via tun0 keep-state

30.6.5.5. llapottart szablyrendszerek


A most kvetkez cmfordts nlkli szablyrendszer arra mutat pldt, hogyan valstsunk meg egy biztonsgos inkluzv tzfalat. Az inkluzv tzfalak csak a szablyainak megfelel szolgltatsokat engedik t, minden mst alaprtelmezs szerint tiltanak. A komplett hlzati szegmensek vdelmre sszelltott tzfalaknak legalbb kt interfszk van, amelyek mindegyikhez tartoznia kell szablyoknak a megfelel mkdshez. Az UNIX mintj opercis rendszer, kztl a FreeBSD is olyan, hogy a rendszerben belli kommunikcit a lo0 nev interfszen s a 127.0.0.1 IP-cmen bonyoltja le. A tzfalban mindenkppen szerepelnik kell olyan szablyoknak, amelyek gondoskodnak ezen specilis bels csomagok zavartalan kzlekedsrl. Az internet fel csatlakoz interfsz lesz az, amelyen keresztl a kifel men krseket hitelestjk s vezreljk az internet elrst, valamint ahol szrjk az internet fell rkez krseket. Ez lehet a PPP esetben a tun0 eszkz, vagy a DSL-, illetve kbelmodemhez csatlakoz hlzati krtya. Abban az esetben, amikor egy vagy tbb hlzati krtyval csatlakozunk a tzfal mgtt tallhat bels helyi hlzatra, szintn gondoskodnunk kell a helyi hlzaton bell mozg csomagok akadlymentes tovbbtsrl. A szablyokat elszr hrom nagyobb osztlyba kell sorolnunk: az sszes szabadon forgalmaz interfsz, a publikus kimen s a publikus bejv interfsz csoportjba. A publikus interfszekhez tartoz csoportokban gy kell rendeznnk a szablyokat, hogy elre kerljenek a gyakrabban hasznltak s htra a kevsb hasznltak, valamint a csoportok utols szablya blokkoljon s naplzzon minden csomagot az adott interfszen s irnyban. A kvetkez szablyrendszerben szerepl, a kimen kapcsolatokat tartalmaz csoport csak olyan allow tpus szablyokat tartalmaz, amelyek szrsi felttelei egyrtelmen azonostjk az interneten elrhet szolgltatsokat. Az sszes szablyban megjelennek a proto, port, in/out, via s keep state opcik. A proto tcp szablyokban emellett szerepel mg egy setup opci is, amellyel a kapcsolatokat kezdemnyez csomagokat tudjuk azonostani s felvenni az llapottartsrt felels dinamikus szablyok kz.

853

Fejezet 30. Tzfalak A bejv forgalmat vezrl szablyrendszerben elszr az eldobni kvnt csomagokat kell megadni, aminek kt eltr oka van. Elszr is elfordulhat, hogy a veszlyes csomagok rszleges illeszkeds miatt szablyosnak tnnek. Az ilyen csomagokat rtelemszeren nem lenne szabad beengedni a szablyok rszleges megfelelse alapjn. A msodszor az eleve ismerten problms s rtelmetlen csomagokat csendben el kellene vetni, mieltt a szakaszhoz tartoz utols szably fogn meg s naplzn. Ez az utols szably egybknt szksg esetn felhasznlhat a tmadk elleni bizonytkok begyjtsre. A msik, amire mg oda kell gyelnnk, hogy a blokkolt csomagok esetben semmilyen vlasz nem keletkezzen, egyszeren csak tnjenek el. gy a tmad nem fogja tudni, hogy a csomagjai vajon elrtk-e a rendszernket. Minl kevesebb informcit tudnak sszegyjteni a rendszernkrl a tmadk, annl biztonsgosabbnak tekinthet. Amikor ismeretlen portokra rkez csomagokat naplzunk, rdemes az /etc/services/ llomnyban vagy http://www.securitystats.com/tools/portsearch.php cmen (angolul) utnanzni a porthoz tartoz szolgltatsnak. A klnbz trjai programok ltal portok szmai ezen a linken rhetek el (angolul): http://www.simovits.com/trojans/trojans.html.

30.6.5.6. Plda egy inkluzv szablyrendszerre


A most kvetkez, cmfordtst nem tartalmaz szablyrendszer teljesen inkluzv tpus. les rendszereken is nyugodtan alkalmazhatjuk. Egyszeren csak annyit kell tennnk, hogy megjegyzsbe tesszk az olyan szolgltatsokra vonatkoz szablyokat, amelyeket nem akarunk engedlyezni. Amikor pedig olyan zenetek jelennek meg a naplban, amelyeket nem akarunk tovbb ltni, a bejv kapcsolatokhoz vegynk fel egy deny tpus szablyt hozzjuk. Minden szablyban cserljk ki a dc0 interfszt arra a hlzati krtyra, amely kzvetlenl csatlakoztatja rendszernket az internethez. A felhasznli PPP esetben ez a tun0. A szablyok hasznlatban felfedezhetnk egyfajta rendszerszersget:

Mindegyik sorban, ahol az internet fel nyitunk meg egy kapcsolatot, a keep-state opcit hasznljuk. Az internetrl az sszes hitelestett szolgltats elrse tartalmazza a limit opcit az elrasztsok kivdse miatt. Az sszes szablyban az in vagy az out paramterrel megadjuk szrni kvnt forgalom irnyt. Az sszes szablyban szerepel a via paramterrel a csomagokat tovbbt interfsz neve.

Az albbi szablyokat tegyk az /etc/ipfw.rules llomnyba.


############## Itt kezddnek az IPFW szablyai ########################## # Kezds eltt trljk az sszes aktv szablyt. ipfw -q -f flush # lltsuk be a parancsok tovbbi szksges opcit. cmd="ipfw -q add" pif="dc0" # az internethez csatlakoz # interfsz neve ################################################################# # A bels hlzat szmra ne korltozzunk semmit se. # Ha nincs helyi hlzatunk, akkor erre nincs szksgnk. # Az xl0 nevt rjuk t a helyi hlzatra csatlakoz # interfsz nevre. ################################################################ #$cmd 00005 allow all from any to any via xl0

854

Fejezet 30. Tzfalak


################################################################ # A rendszer bels interfszt se szrjk. ################################################################ $cmd 00010 allow all from any to any via lo0 ################################################################ # A csomagot engedjk t a tzfalon, ha korbban mr felvettnk # hozz egy dinamikus szablyt a keep-state opcival. ################################################################ $cmd 00015 check-state ################################################################ # Az internet fel forgalmaz interfsz (kimen kapcsolatok) # A sajt hlzatunkrl bellrl vagy errl az tjrrl # kezdemnyezett kapcsolatokat vizsgljuk az internet fel. ################################################################ # Kifel engedlyezzk az internet-szolgltatnk nvszervernek # elrst. Az x.x.x.x a szolgltatnk nvszervernek IP-cme # legyen. Ha a szolgltatnak tbb nvszervere is van, akkor # msoljuk le ezeket a sorokat s az /etc/resolv.conf # llomnyban tallhat IP-cmeket helyettestsk be. $cmd 00110 allow tcp from any to x.x.x.x 53 out via $pif setup keep-state $cmd 00111 allow udp from any to x.x.x.x 53 out via $pif keep-state # Kbel/DSL konfigurcik esetben kifel engedlyezzk a # szolgltatnk DHCP szervernek elrst. Ha a "felhasznli # PPP"-t hasznljuk, akkor erre nem lesz szksgnk, az egsz # csoportot trlhetjk. Az albbi szabllyal csphetjk el a # berand IP-cmet. Ha a naplban megtalltuk, akkor vegyk # ki az els szablyt, a msodikba rjuk bele a cmet s # engedlyezzk. $cmd 00120 allow log udp from any to any 67 out via $pif keep-state #$cmd 00120 allow udp from any to x.x.x.x 67 out via $pif keep-state # Kifel engedlyezzk a szabvny nem biztonsgos WWW # funkci elrst. $cmd 00200 allow tcp from any to any 80 out via $pif setup keep-state # Kifel engedlyezzk a biztonsgos HTTPS funkci # elrst TLS SSL hasznlatval. $cmd 00220 allow tcp from any to any 443 out via $pif setup keep-state # Kifel engedlyezzk a e-mailek kldst s fogadst. $cmd 00230 allow tcp from any to any 25 out via $pif setup keep-state $cmd 00231 allow tcp from any to any 110 out via $pif setup keep-state # Kifel engedlyezzk a FreeBSD (a make install s a CVSUP) # funkciit. Ezzel lnyegben a rendszeradminisztrtornak # ISTENI jogokat adunk. $cmd 00240 allow tcp from me to any out via $pif setup keep-state uid root # Kifel engedlyezzk a pinget.

855

Fejezet 30. Tzfalak


$cmd 00250 allow icmp from any to any out via $pif keep-state # Kifel engedlyezzk az id szolgltatst. $cmd 00260 allow tcp from any to any 37 out via $pif setup keep-state # Kifel engedlyezzk az nntp news szolgltatst # (vagyis a hrcsoportokat) $cmd 00270 allow tcp from any to any 119 out via $pif setup keep-state # Kifel engedlyezzk a biztonsgos FTP, telnet s SCP # elrst az SSH (secure shell) hasznlatval. $cmd 00280 allow tcp from any to any 22 out via $pif setup keep-state # Kifel engedlyezzk a whois szolgltatst. $cmd 00290 allow tcp from any to any 43 out via $pif setup keep-state # Dobjuk el s naplzzunk mindent, ami megprbl kijutni. # Ez a szably gondoskodik rla, hogy alaprtelmezs szerint # mindent blokkoljunk. $cmd 00299 deny log all from any to any out via $pif ################################################################ # Az internet felli interfsz (bejv kapcsolatok) # A sajt hlzatunk fel vagy erre az tjrra # nyitott kapcsolatokat vizsgljuk az internet fell. ################################################################

# Blokkoljunk minden olyan bejv forgalmat, amely a fenntartott # cmtartomnyok fel tart. $cmd 00300 deny all from 192.168.0.0/16 to any in via $pif #RFC 1918: privt IP $cmd 00301 deny all from 172.16.0.0/12 to any in via $pif #RFC 1918: privt IP $cmd 00302 deny all from 10.0.0.0/8 to any in via $pif #RFC 1918: privt IP $cmd 00303 deny all from 127.0.0.0/8 to any in via $pif #helyi $cmd 00304 deny all from 0.0.0.0/8 to any in via $pif #helyi $cmd 00305 deny all from 169.254.0.0/16 to any in via $pif #DHCP $cmd 00306 deny all from 192.0.2.0/24 to any in via $pif #dokumentcis clokra fenntartott $cmd 00307 deny all from 204.152.64.0/23 to any in via $pif #Sun klaszterek sszektsre hasznlt $cmd 00308 deny all from 224.0.0.0/3 to any in via $pif #D s E osztly multicast # A nyilvnos pingek tiltsa. $cmd 00310 deny icmp from any to any in via $pif # Az ident szolgltats tiltsa. $cmd 00315 deny tcp from any to any 113 in via $pif # Blokkoljuk az sszes Netbios szolgltatst: 137=nv, 138=datagram, # 139=session. A Netbios az MS Windows megosztst implementlja. # Blokkoljuk az MS Windows hosts2 nvszerver krseit is a 81-es # porton. $cmd 00320 deny tcp from any to any 137 in via $pif $cmd 00321 deny tcp from any to any 138 in via $pif $cmd 00322 deny tcp from any to any 139 in via $pif $cmd 00323 deny tcp from any to any 81 in via $pif

856

Fejezet 30. Tzfalak

# Eldobjuk az sszes ksn rkez csomagot. $cmd 00330 deny all from any to any frag in via $pif # Eldobjuk azokat az ACK csomagokat, amelyek egyik dinamikus # szablynak sem felelnek meg. $cmd 00332 deny tcp from any to any established in via $pif # Befel engedlyezzk a szolgltat DHCP szervernek vlaszt. Ebben # a szablyban csak a DHCP szerver IP-cme szerepelhet, mivel ez az # egyetlen olyan hitelestett forrs, ami ilyen csomagokat kldhet. # Ez csak a kbeles s DSL tpus kapcsolatok esetben szksges. # Amikor a "felhasznli PPP"-vel csatlakozunk az internethez, nem # kell ez a szably. Ugyanazt az IP-cmet kell megadnunk, amelyet a # kimen kapcsolatoknl is. #$cmd 00360 allow udp from any to x.x.x.x 67 in via $pif keep-state # Befel engedlyezzk a szabvny WWW funkcit, mivel webszervernk # is van. $cmd 00400 allow tcp from any to me 80 in via $pif setup limit src-addr 2 # Befel engedlyezzk a biztonsgos FTP, telnet s SCP # tpus kapcsolatokat az internetrl. $cmd 00410 allow tcp from any to me 22 in via $pif setup limit src-addr 2 # Befel engedlyezzk az internetrl rkez nem biztonsgos telnet # kapcsolatokat. Azrt tekintjk nem biztonsgosnak, mert az # azonostk s a jelszavak az interneten titkostatlanul vndorolnak. # Trljk ezt a csoportot, ha nincs telnet szolgltatsunk. $cmd 00420 allow tcp from any to me 23 in via $pif setup limit src-addr 2 # Dobjuk el s naplzzuk az sszes tbbi kintrl rkez csomagot. $cmd 00499 deny log all from any to any in via $pif # Alaprtelmezs szerint dobjuk el mindent. Az ide rkez # csomagokat is naplzzuk, amibl tbbet is ki tudunk majd # derteni. $cmd 00999 deny log all from any to any ############# Itt fejezdnek be az IPFW szablyai #####################

30.6.5.7. Plda hlzati cmfordtsra s llapottartsra


Az IPFW cmfordt funkcijnak kihasznlshoz tovbbi kongurcis belltsok alkalmazsra is szksgnk lesz. A rendszermagban opci kztt meg kell adnunk az option IPDIVERT sort a tbbi IPFIREWALL sor mellett, s fordtanunk egy sajt verzit. Emellett mg az /etc/rc.conf llomnyban is engedlyezni kell az IPFW alapvet funkciit.
natd_enable="YES" natd_interface="rl0" natd_flags="-dynamic -m" # engedlyezzk a cmfordtsrt felels dmont # az internet fel mutat hlzati krtya neve # -m = a portszmok megtartsa, ha lehetsges

857

Fejezet 30. Tzfalak Az llapottart szablyok hasznlata a divert natd cmfordtsi opcival egytt nagyban nveli a szablyrendszer leprogramozsnak bonyolultsgt. A check-state s divert natd szablyok helye kritikus a megfelel mkds tekintetben. Az eddig megszokott egyszer viselkeds itt mr nem rvnyesl. Bevezetnk egy j cselekvst is, amelynek a neve skipto. A skipto parancs hasznlathoz elengedhetetlen a szablyok sorszmozsa, mivel pontosan tudnunk kell, hogy a skipto hatsra hova kell ugrania a vezrlsnek. A kvetkez pldban nem fogunk sok megjegyzst ltni, mivel benne az egyik lehetsges programozsi stlust prbljuk rzkeltetni s a csomagok szablyrendszerek kzti ramlst magyarzzuk. A feldolgozs a szablyokat tartalmaz llomny tetejn tallhat els szabllyal kezddik, s innen egyesvel pereg vgig lefel a feldolgozs egszen addig, amg a csomag a szrsi felttelek valamelyiknek eleget nem tesz s tvozik a tzfalbl. Leginkbb a 100-as, 101-es, 450-es, 500-as s 510-es sorszm szablyokat emelnnk ki. Ezek vezrlik kimen s bejv csomagok fordtst, ezrt a hozzjuk tartoz dinamikus llapottart bejegyzsek mindig a helyi hlzat IP-cmeire hivatkoznak. Amit mg rdemes meggyelnnk, hogy az sszes tereszt s eldob szablyban szerepel a csomag haladsi irnya (teht kimen vagy ppen bejv) s az rintett interfszt megnevezse. Emellett azt is vegyk szre, hogy az sszes kifel irnyul kapcsolatltrehozsi krs az 500-as sorszm szablyhoz fog ugrani a cmfordts elvgzshez. Tegyk fel, hogy a helyi hlzatunkon lev felhasznlk szeretnek honlapokat nzgetni az interneten. A honlapok a 80-as porton keresztl kommuniklnak. Teht amikor egy ilyen csomag elri a tzfalat, nem fog illeszkedni a 100-as szablyra, mert a fejlce szerint kifel halad s nem befel. A 101-es szablyon is tlp, mivel ez az els csomag, gy a dinamikus llapottart tblzatban sem szerepel mg. A csomag vgl a 125-s szablyra fog illeszkedni: kifel halad az internetre csatlakoz hlzati krtyn. A csomagban azonban mg mindig az eredeti forrs IP-cme tallhat, amely a helyi hlzat egyik gpre hivatkozik. A szably illeszkedsekor kt cselekvs is vgbemegy. A keep-state opci hatsra ez a szably felveszi ezt a kapcsolatot az llapottart dinamikus szablyok kz s vgrehajtja a msik megadott feladatot. Ez a feladat rsze a dinamikus tblzatba rgztett bejegyzsnek, ami ebben az esetben a skipto 500 (ugorjunk az 500-as szablyra) lesz. Az 500-as szably a tovbbklds eltt lefordtja a csomag forrs IP-cmt. Ezt ne felejtsk el, nagyon fontos! A csomag ezutn eljut a cljhoz, s visszatrve ismt belp a szablyrendszer tetejn. Ezttal illeszkedni fog a 100-as szablyra s a cl IP-cmt visszafordtjuk a helyi hlzatunk megfelel gpnek cmre. Ezutn a check-state szablyhoz kerl, amely megtallja a dinamikus szablyok kztt s tovbbengedi a bels hlzatra. Ezzel visszakerl a kld gphez, amely egy jabb csomagot kld egy jabb adatszeletet krve a tvoli szervertl. Ekkor mr a check-state szably megtallja a hozztartoz bejegyzst a dinamikus szablyok kztt s vgrehajtdik a korbban letrolt skipto 500 mvelet. A csomag erre az 500-as szablyra ugrik, ahol lefordtjuk a cmt s tovbbkldjk. Az bejv oldalon minden, ami egy korbban kialakult kapcsolat rszeknt rkezik, automatikusan a check-state s a megfelel helyre rakott divert natd szablyok ltal dolgozdik fel. Itt mindssze a rossz csomagok eldobsval s a hitelestett szolgltatsok elrsnek biztostsval kell foglalkoznunk. Pldul a tzfalon egy webszerver fut, s azt szeretnnk, hogy az internetrl kpesek legyenek elrni a rajta lev oldalakat. Az jonnan berkez kapcsolatptsi krelem a 100-as szablyra fog illeszkedni, amelynek a cl IP-cmt a tzfal helyi hlzaton tallhat cmre fogjuk lekpezni. A csomagot ezutn mg megvizsgljuk, nem tartalmaz-e valamilyen huncutsgot, majd vgl a 425-s szablynl fog kiktni. Az egyezskor kt dolog trtnhet: a csomaghoz felvesznk egy dinamikus szablyt, de ezttal az adott forrs IP-cmrl rkez kapcsolatkrsek szmt 2-re lekorltozzuk. Ezzel az adott szolgltats portjn meg tudjuk vni a tzfalat zemeltet gpet a DoS tpus tmadsoktl. A csomagot ezutn hozztartoz cselekvs szerint tovbbengedjk a bels hlzat fel. Visszatrskor a tzfal felismeri, hogy a csomag egy mr meglev kapcsolathoz tartozik, ezrt kzvetlenl az 500-as szablyhoz kerl cmfordtsra, majd a kimen interfszen keresztl tovbbkldjk. me az els plda egy ilyen szablyrendszerre:
#!/bin/sh

858

Fejezet 30. Tzfalak


cmd="ipfw -q add" skip="skipto 500" pif=rl0 ks="keep-state" good_tcpo="22,25,37,43,53,80,443,110,119" ipfw -q -f flush $cmd 002 allow all from any to any via xl0 $cmd 003 allow all from any to any via lo0 # nem szrjk a bels hlzatot # nem szrjk a helyi interfszt

$cmd 100 divert natd ip from any to any in via $pif $cmd 101 check-state # A kimen csomagok hitelestse: $cmd 120 $skip udp from any to xx.168.240.2 53 out via $pif $ks $cmd 121 $skip udp from any to xx.168.240.5 53 out via $pif $ks $cmd 125 $skip tcp from any to any $good_tcpo out via $pif setup $ks $cmd 130 $skip icmp from any to any out via $pif $ks $cmd 135 $skip udp from any to any 123 out via $pif $ks

# Az sszes olyan csomagot eldobjuk, amely a fenntartott # cmtartomnyokba tart: $cmd 300 deny all from 192.168.0.0/16 to any in via $pif $cmd 301 deny all from 172.16.0.0/12 to any in via $pif $cmd 302 deny all from 10.0.0.0/8 to any in via $pif $cmd 303 deny all from 127.0.0.0/8 to any in via $pif $cmd 304 deny all from 0.0.0.0/8 to any in via $pif $cmd 305 deny all from 169.254.0.0/16 to any in via $pif $cmd 306 deny all from 192.0.2.0/24 to any in via $pif $cmd 307 deny all from 204.152.64.0/23 to any in via $pif $cmd 308 deny all from 224.0.0.0/3 to any in via $pif

#RFC 1918: privt IP #RFC 1918: privt IP #RFC 1918: privt IP #helyi #helyi #DHCP #dokumentcis clokra fenntartott #Sun klaszter #D s E osztly multicast

# Az rkez csomagok hitelestse: $cmd 400 allow udp from xx.70.207.54 to any 68 in $ks $cmd 420 allow tcp from any to me 80 in via $pif setup limit src-addr 1

$cmd 450 deny log ip from any to any # Ide ugrunk a kimen llapottart szablyoknl: $cmd 500 divert natd ip from any to any out via $pif $cmd 510 allow ip from any to any ##################### a szablyok vge ##################

A kvetkez plda teljesen megegyezik az elzvel, azonban itt mr dokumentcis szndkkal szerepelnek megjegyzsek is, melyek a tapasztalatlan IPFW szablyrknak segtik jobban megrteni a szablyok pontos mkdst. A msodik plda:

859

Fejezet 30. Tzfalak


#!/bin/sh ############# Az IPFW szablyai itt kezddnek ########################### # Kezds eltt trljk az sszes jelenleg aktv szablyt: ipfw -q -f flush # Belltjuk a parancsok megfelel eltagjait: cmd="ipfw -q add" skip="skipto 800" pif="rl0" # az internethez csatlakoz # hlzati interfsz neve ################################################################# # A bels hlzat szmra ne korltozzunk semmit se. # Ha nincs helyi hlzatunk, akkor erre nincs szksgnk. # Az xl0 nevt rjuk t a helyi hlzatra csatlakoz # interfsz nevre. ################################################################# $cmd 005 allow all from any to any via xl0 ################################################################# # A rendszer bels interfszt se szrjk. ################################################################# $cmd 010 allow all from any to any via lo0 ################################################################# # Ellenrizzk, hogy ez egy berkez csomag s ha igen, akkor # fordtsuk a cmt. ################################################################# $cmd 014 divert natd ip from any to any in via $pif ################################################################# # Ha ehhez a csomaghoz korbban mr vettk fel dinamikus # szablyt a keep-state opci rvn, akkor engedjk tovbb. ################################################################# $cmd 015 check-state ################################################################# # Az internet fel forgalmaz interfsz (kimen kapcsolatok) # A sajt hlzatunkrl bellrl vagy errl az tjrrl # kezdemnyezett kapcsolatokat vizsgljuk az internet fel. ################################################################# # Kifel engedlyezzk az internet-szolgltatnk nvszervernek # elrst. Az x.x.x.x a szolgltat nvszervernek IP-cme # lesz. Ha a szolgltatnknak tbb nvszervere is van, akkor # az /etc/resolv.conf llomnybl nzzk ki a cmeiket s # msoljuk le az albbi sor mindegyikkhz. $cmd 020 $skip tcp from any to x.x.x.x 53 out via $pif setup keep-state

# A kbeles s DSL kapcsolatok esetn engedlyezzk a szolgltat # DHCP szervernek elrst. $cmd 030 $skip udp from any to x.x.x.x 67 out via $pif keep-state

860

Fejezet 30. Tzfalak

# Kifel engedlyezzk a szabvny nem biztonsgos WWW funkcit $cmd 040 $skip tcp from any to any 80 out via $pif setup keep-state # Kifel engedlyezzk a biztonsgos HTTPS funkcit a TLS SSL # hasznlatval. $cmd 050 $skip tcp from any to any 443 out via $pif setup keep-state # Kifel engedlyezzk az e-mailek kldst s fogadst. $cmd 060 $skip tcp from any to any 25 out via $pif setup keep-state $cmd 061 $skip tcp from any to any 110 out via $pif setup keep-state # Kifel engedlyezzk a FreeBSD (make install s CVSUP) funkciit. # Ezzel a rendszeradminisztrtornak ISTENI jogokat adunk. $cmd 070 $skip tcp from me to any out via $pif setup keep-state uid root # Kifel engedlyezzk a pinget. $cmd 080 $skip icmp from any to any out via $pif keep-state # Kifel engedlyezzk az id szolgltatst. $cmd 090 $skip tcp from any to any 37 out via $pif setup keep-state # Kifel engedlyezzk az nntp news szolgltatst (teht a # hrcsoportokat). $cmd 100 $skip tcp from any to any 119 out via $pif setup keep-state # Kifel engedlyezzk a biztonsgos FTP, telnet s SCP # funkcikat az SSH (secure shell) hasznlatval. $cmd 110 $skip tcp from any to any 22 out via $pif setup keep-state # Kifel engedlyezzk ki a whois krseket. $cmd 120 $skip tcp from any to any 43 out via $pif setup keep-state # Kifel engedlyezzk az NTP idszerver elrst. $cmd 130 $skip udp from any to any 123 out via $pif keep-state ################################################################# # Az internet felli interfsz (bejv kapcsolatok) # A sajt hlzatunk fel vagy erre az tjrra # nyitott kapcsolatokat vizsgljuk az internet fell. ################################################################# # Tiltsuk a fenntartott cmtartomnyok # forgalmat. $cmd 300 deny all from 192.168.0.0/16 $cmd 301 deny all from 172.16.0.0/12 $cmd 302 deny all from 10.0.0.0/8 $cmd 303 deny all from 127.0.0.0/8 $cmd 304 deny all from 0.0.0.0/8 $cmd 305 deny all from 169.254.0.0/16 $cmd 306 deny all from 192.0.2.0/24 $cmd 307 deny all from 204.152.64.0/23 $cmd 308 deny all from 224.0.0.0/3 fel halad sszes berkez to to to to to to to to to any any any any any any any any any in in in in in in in in in via via via via via via via via via $pif $pif $pif $pif $pif $pif $pif $pif $pif #RFC 1918: privt IP #RFC 1918: privt IP #RFC 1918: privt IP #helyi #helyi #DHCP #dokumentcis clokra fenntartott #Sun klaszter #D s E osztly multicast

861

Fejezet 30. Tzfalak

# Az ident tiltsa. $cmd 315 deny tcp from any to any 113 in via $pif # Blokkoljuk az sszes Netbios szolgltatst: 137=nv, 138=datagram, # 139=session. A Netbios az MS Windows megosztst implementlja. # Blokkoljuk az MS Windows hosts2 nvszerver krseit is a 81-es # porton. $cmd 320 deny tcp from any to any 137 in via $pif $cmd 321 deny tcp from any to any 138 in via $pif $cmd 322 deny tcp from any to any 139 in via $pif $cmd 323 deny tcp from any to any 81 in via $pif # Dobjuk el a ksn rkez csomagokat. $cmd 330 deny all from any to any frag in via $pif # Dobjuk el azokat az ACK csomagokat, amelyekre nincs # dinamikus szably. $cmd 332 deny tcp from any to any established in via $pif # Engedlyezzk a szolgltat DHCP szervertl rkez forgalmat. Ennek # a szablynak tartalmaznia kell a DHCP szerver cmt, mert csak tle # fogadunk el ilyen tpus csomagokat. Egyedl csak kbeles vagy DSL # konfigurcik esetn hasznlatos, a "felhasznli PPP" esetben # trlhetjk. Ez ugyanaz az IP-cm, amelyet a kimen kapcsolatoknl # megadtunk. $cmd 360 allow udp from x.x.x.x to any 68 in via $pif keep-state # Befel engedlyezzk a szabvny WWW funkcit, mivel van # webszervernk. $cmd 370 allow tcp from any to me 80 in via $pif setup limit src-addr 2 # Befel engedlyezzk a biztonsgos FTP, telnet s SCP # hasznlatt az internetrl. $cmd 380 allow tcp from any to me 22 in via $pif setup limit src-addr 2 # Befel engedlyezzk a nem biztonsgos telnet elrst az # internetrl. Azrt nem tekintjk biztonsgosnak, mert az # azonostkat s a jelszavakat az interneten titkostatlanul # kzvetti. Ha nincs telnet szolgltatsunk, akkor trlhetjk is ezt # a csoportot. $cmd 390 allow tcp from any to me 23 in via $pif setup limit src-addr 2 # Dobjuk el s naplzzuk az sszes internetrl rkez hitelestetlen kapcsolatot. $cmd 400 deny log all from any to any in via $pif # Dobjuk el s naplzzuk az sszes internetre men hitelestetlen kapcsolatot. $cmd 450 deny log all from any to any out via $pif # Ez lesz a kimen szablyokhoz tartoz "skipto" clja. $cmd 800 divert natd ip from any to any out via $pif $cmd 801 allow ip from any to any

862

Fejezet 30. Tzfalak


# Minden mst alaprtelmezs szerint tiltunk s naplzunk. $cmd 999 deny log all from any to any ############# Az IPFW szablyai itt fejezdnek be #####################

863

Fejezet 31. Egyb halad hlzati tmk


31.1. ttekints
Ebben a fejezetben szmos komolyabb hlzati tmt fogunk trgyalni. A fejezet elolvassa sorn megismerjk:

az tjrk s az tvlaszts alapjait; hogyan lltsunk be IEEE 802.11 s Bluetooth eszkzket; a FreeBSD segtsgvel hogyan tudunk kt hlzatot sszektni hlzati hidakon keresztl; hogyan indtsuk hlzatrl egy lemez nlkli gpet; hogyan lltsunk be hlzati cmfordtst; hogyan kapcsoljunk ssze kt szmtgpet PLIP hasznlatval; hogyan lltsuk be az IPv6 hasznlatt egy FreeBSD-s gpen hogyan lltsuk be az ATM hasznlatt; hogyan engedlyezzk s hasznljuk a Kzs cmredundancia protokollt FreeBSD-ben.

A fejezet elolvasshoz ajnlott:


az /etc/rc knyvtrban tallhat szkriptek mkdsnek ismerete; az alapvet hlzati fogalmak ismerete; egy j FreeBSD rendszermag belltsnak s teleptsnek ismerete (8 fejezet); a kls szoftverek teleptsnek ismerete (4 fejezet).

31.2. tjrk s az tvlaszts


Ksztette: Coranth Gryphon. Egy gp egy msikat gy tud megtallni a hlzaton, ha erre ltezik egy olyan mechanizmus, amely lerja, hogyan tudunk eljutni az egyiktl a msikig. Ezt hvjuk tvlasztsnak (routing). Az tvonal (route) cmek egy prjaknt adhat meg, egy cllal (destination) s egy tjrval (gateway). Ez a pros mondja meg, hogy ha el akarjuk rni ezt a clt, akkor ezen az tjrn keresztl kell tovbbhaladnunk. A cloknak hrom tpusa lehet: egyni gpek, alhlzatok s az alaprtelmezett. Az alaprtelmezett tvonalat (default route) abban az esetben alkalmazzuk, ha semelyik ms tvonal nem megfelel. Az alaprtelmezett tvonalakrl a ksbbiekben mg beszlni fogunk. Hrom tpusa van az tjrknak: egyni gpek, felletek (avagy linkek) s a hardveres Ethernet cmek (MAC-cmek).

31.2.1. Plda
Az tvlaszts klnbz terleteit a kvetkez netstat parancs alapjn fogjuk bemutatni:

864

Fejezet 31. Egyb halad hlzati tmk


% netstat -r

Routing tables Destination Gateway Flags UGSc UH UHLW UHLW UC UHLW UHLW UC UC Refs 37 0 5 1 0 3 0 0 0 Use 418 181 63288 2421 0 4601 5 0 0 Netif Expire ppp0 lo0 ed0

default outside-gw localhost localhost test0 0:e0:b5:36:cf:4f 10.20.30.255 link#1 example.com link#1 host1 0:e0:a8:37:8:1e host2 0:e0:a8:37:8:1e host2.example.com link#1 224 link#1

77

lo0 lo0 =>

Az els kt sorban az alaprtelmezett tvonalat (melyrl rszleteiben majd a kvetkez szakaszban fogunk szlni) s a localhost tvonalt lthatjuk. A localhost cmhez az tvlasztsi tblzatban a lo0 eszkz tartozik (a Netif oszlopban), amelyet loopback eszkznek is neveznek. Ez arra utastja a rendszert, hogy az ide kldtt csomagokat ne a helyi hlzaton kldje keresztl, hanem csak ezen a bels felleten, mivel gyis oda jutnnak vissza, ahonnan indultak. A tblzatban a kvetkez sor egy 0:e0 kezdet cmet tartalmaz. Ez egy hardveres Ethernet cm, ms nven MAC-cm. A FreeBSD magtl kpes beazonostani tetszleges gpet (ebben a pldban a test0 gpet) a helyi Ethernetes hlzaton s felvenni hozz egy tvonalat, kzvetlenl az ed0 Ethernetes csatolfelleten keresztl. Ehhez a tpus tvonalhoz tartozik mg egy lejrati id is (a Expire oszlop), amely akkor kap szerepet, ha ennyi id elteltvel nem kapunk semmilyen hrt a gprl. Amikor ilyen trtnik, az gphez eddig nyilvntartott tvonal automatikusan trldik. Ezek a gpek a RIP (tvonal-informcis protokoll, Routing Information Protocol) nev mechanizmuson keresztl azonostdnak, mely a legrvidebb t kiszmtsa alapjn hatrozza meg a helyi gpekhez vezet tvonalat. A FreeBSD a helyi alhlzat (10.20.30.255 s example.com, az alhlzathoz tartoz nv) esetben is felvesz tvonalakat. A link#1 megnevezs a gpben tallhat els Ethernet-krtyt jelli. Meggyelhetjk, hogy rajta kvl nincs is tbb fellete. Mindegyik csoport (a helyi hlzati gpek s a helyi alhlzatokatok) tvonalait a routed nev dmon tartja automatikusan karban. Ha ez nem fut, akkor csak a statikusan denilt (vagyis az elre megadott) tvonalak fognak ltezni. A host1 sor a sajt gpnkre vonatkozik, amelyet az Ethernet cme szerint ismernk. Mivel mi vagyunk kld gp, a FreeBSD tudni fogja, hogy ilyenkor az Ethernetes fellet helyett a loopback eszkzt (lo0) kell hasznlnia. A kt host2 sor arra mutat pldt, amikor az ifcong(8) paranccsal lneveket hozunk ltre (ennek konkrt okait lsd az Ethernetrl szl rszben). A lo0 fellet neve utn szerepl => szimblum azt jelzi, hogy ez nem csak egy loopback fellet (mivel a cme szintn a helyi gpre mutat), hanem a fellet egy msik neve. Ilyen tvonalak csak az lneveket ismer gpeknl jelennek meg. A helyi hlzaton minden ms gpnl egyszeren csak a link#1 jelenik meg az ilyen tvonalak esetben. Az utols sor (a 224 cllal rendelkez alhlzat) a multicastre (tbbeskldsre) szolgl, amellyel majd egy msik szakaszban foglalkozunk. Vgezetl az tvonalakhoz tartoz klnfle tulajdonsgok a Flags oszlopban lthatak. Az albbi rvid tblzatban sszefoglaltunk kzlk nhnyat:

865

Fejezet 31. Egyb halad hlzati tmk

U H G S C W L

Up: az tvonal aktv Host: az tvonal egyetlen gpre mutat Gateway: az adott cl fel ezen a gpen keresztl kldjnk, amely majd kitallja, hogy merre kldje tovbb Static: ez az tvonal statikus, nem a rendszer hozta ltre automatikusan Clone: ebbl az tvonalbl szrmaztatunk j tvonalat azokhoz a gpekhez, amelyekhez csatlakozunk. Ilyen tvonalakat ltalban a helyi hlzatokban tallhatunk WasCloned: azt jelzi, hogy ezt az tvonalat egy helyi hlzatra mutat (kln, avagy Clone tpus) tvonal alapjn hoztuk ltre automatikusan Link: az tvonal Ethernetes hardverhez kapcsoldik

31.2.2. Alaprtelmezett tvonalak


Amikor a helyi rendszernek fel kell vennie a kapcsolatot egy tvoli gppel, ellenrzi az tvlasztsi tblzatban, hogy ltezik-e mr hozz valamilyen tvonal. Ha a tvoli gp egy olyan alhlzatba esik, amelyet mr el tudunk rni (klnozott tvonalak), akkor a rendszer megnzi, hogy a hozztartoz felleten kpes-e kapcsolatot ltesteni. Ha minden ismert tvonal csdt mond, akkor a rendszernknek marad mg egy utols eslye: az alaprtelmezett tvonal hasznlata. Ez az tvonal egy specilis tjr tvonal (ebbl ltalban csak egyetlen egy ltezik a rendszerben) s tulajdonsgai kztt mindig szerepel a c. A helyi hlzat gpei kzl ez az tjr az legyen, amelyik kzvetlenl kapcsoldik a kls vilghoz (PPP sszekttetssel, DSL, kbelmodem, T1 vagy brmilyen ms hlzati felleten keresztl). Amikor pedig magt a kls vilg fel tjrknt szolgl gpet lltjuk be, az alaprtelmezett tvonal az internet-szolgltatnk ltal megadott gp cme lesz. Vegynk egy pldt az alaprtelmezett tvonalakra. Egy tipikus kongurci:

Helyi2

Ethernet

Helyi1

PPP

Szolgltat

Ethernet

T1-J

A Helyi1 s Helyi2 gpek a hlzatunk tagjai. A Helyi1 az internet-szolgltatt ri el egy betrcszs PPP kapcsolaton keresztl. A PPP szerver a kls felletn keresztl a helyi hlzaton pedig egy msik tjrhoz csatlakozik. Az egyes gpek alaprtelmezett tvonalai gy alakulnak: Gp Helyi2 Helyi1 Alaprtelmezett tjr Helyi1 T1-J Fellet Ethernet PPP

Gyakran felmerl a krds, hogy Mirt (s hogy-hogy) a T1-J a Helyi1 gp szmra az alaprtelmezett tjr s nem a szolgltat azon szervere, amelyhez csatlakozott? Ne felejtsk el, hogy a PPP fellet a szolgltat helyi hlzatban a mi rsznkre kap cmet, s a itt az sszes tbbi gphez tartoz tvonal automatikusan ltrejn. Emiatt mr eleve el tudjuk rni a T1-J gpet, ezrt amikor a szolgltatn keresztl kldnk, nincs szksgnk egy tovbbi lpcsre.

866

Fejezet 31. Egyb halad hlzati tmk ltalban a X.X.X.1 cmet szoktk a helyi hlzat tjrjnak kiosztani. Ezrt (az elbbi pldt jrahasznostva) ha a helyi hlzatunkon a C osztly 10.20.30 cmtartomnyt hasznljuk, s a szolgltatnkhoz a 10.9.9 cmtartomny tartozik, akkor az alaprtelmezett tvonalak a kvetkezk lesznek: Gp Helyi2 (10.20.30.2) Helyi1 (10.20.30.1, 10.9.9.30) Alaprtelmezett tvonal Helyi1 (10.20.30.1) T1-J (10.9.9.1)

Az /etc/rc.conf llomnyon keresztl knnyen meg tudjuk adni az alaprtelmezett tvonalat. A pldnkban a Helyi2 gp /etc/rc.conf llomnyba kell felvennnk a kvetkez sort:
defaultrouter="10.20.30.1"

A route(8) parancs hasznlatval viszont akr kzvetlenl is megtehetjk mindezt:


# route add default 10.20.30.1

A route(8) man oldalon olvashatunk arrl bvebben, hogy a hlzati tvlasztsi tblzatokat kzzel hogyan tudjuk mdostani.

31.2.3. Ketts hlzat gpek


Egy msik tpus kongurcirl is szt kell ejtennk, ahol a gp egyszerre kt hlzatnak is tagja. Gyakorlatilag az tjrknt zemel szmtgpek (mint pldul az, amelyik a fenti pldban PPP kapcsolattal csatlakozott) ilyen ketts hlzat gpnek tekinthetek. Ez a kifejezs azonban igazbl csak azokra az esetekre illik, ahol a gp egyszerre kt helyi hlzatban is megjelenik. Az egyik esetben a gpben kt Ethernet krtya tallhat, melyek mindegyike birtokol egy-egy hlzati cmet az egyes alhlzatokon. De elfordulhat az is, hogy a gpnkben csupn egyetlen Ethernet krtya van s az ifcong(8) segtsgvel lneveket hoztunk ltre hozz. Az elbbi ltalban kt zikailag elklnl Ethernet alap hlzat esetben trtnik, mg az utbbinl csak egyetlen zikai hlzati szegmensrl van sz, amely viszont logikailag kt kln alhlzatot tartalmaz. Akrmelyiket is vesszk, az tvlasztsi tblzatok gy jnnek ltre, hogy bennk a gp a msik alhlzat fel tjrknt (bejv tvonalknt) lesz nyilvntartva. Ebben a kongurciban a gp a kt alhlzat kztt tvlasztknt fog tevkenykedni, s gyakran valamelyik vagy ppen mind a kt irnyba be kell lltanunk valamilyen csomagszrst vagy tzfalazst. Ha azt szeretnnk, hogy ez a gp a kt fellet kztt tovbbtson csomagokat, akkor a FreeBSD-ben kln engedlyezni kell ezt a lehetsget. A kvetkez szakaszban ennek rszleteit trjuk fel.

31.2.4. Az tvlasztk belltsa


A hlzati tvlaszt nem csinl mst, csak tovbbkldi az egyik felletn berkez csomagokat egy msik felletre. Az internetes szabvnyok s a sokves mrnki tapasztalat azonban nem engedik, hogy a FreeBSD Projekt alaprtelmezs szerint is elrhetv tegye ezt a FreeBSD rendszerekben. Ezt a lehetsget az albbi vltoz YES rtkre lltsval lehet engedlyezni az rc.conf(5) llomnyban:
gateway_enable="YES" # Ez legyen YES, ha tjrknt akarunk zemelni

867

Fejezet 31. Egyb halad hlzati tmk Ezzel lnyegben a net.inet.ip.forwarding sysctl(8) vltoz rtkt lltjuk 1-re. Ha valamirt egy idre szneteltetni akarjuk a csomagok tovbbkldst, akkor lltsuk a vltoz rtkt 0-ra. Az j tvlasztnak nem rt arrl sem tudnia, hogy merre tovbbtsa a forgalmat. Ha elg egyszer a hlzatunk, akkor akr statikus tvonalakat is hasznlhatunk. A FreeBSD alapbl tartalmazza a BSD-k esetn szabvnyos routed(8) tvlaszt dmont, amely a RIP (v1 s v2) valamint az IRDP megoldsokat ismeri. A BGP v4, OSPF v2 s a tbbi fejlettebb tvlasztsi protokoll a net/zebra csomagban rhet el. Az ettl bonyolultabb hlzati tvlasztsi feladatokhoz olyan kereskedelmi termkek is elrhetek, mint pldul a GateD.

31.2.5. Statikus tvonalak belltsa


rta: Al Hoang.

31.2.5.1. Manulis kongurci


Tegyk fel, hogy hlzatunk a kvetkez:

internet (10.0.0.1/24) alaprtelmezett tjr az internet fel xl0 fellet, 10.0.0.10/24 A-utvalaszto FreeBSD tjr

xl1 fellet, 192.168.1.1/24

1. bels hlzat 192.168.1.2/24 B-utvalaszto 192.168.2.1/24

2. bels hlzat
Ebben a forgatknyvben az A-utvalaszto a mi FreeBSD-s gpnk, amely az internet fel vezet tvlaszt szerept jtssza. Szmra az alaprtelmezett tvonal a 10.0.0.1, amelyen keresztl a kls vilgot tudja elrni. Felttelezzk, hogy a B-utvalaszto nev gpet mr eleve jl lltottuk be, ezrt tudja merre kell mennie. (A kp alapjn egyszer: csak vegynk fel egy alaprtelmezett tvonalat a B-utvalaszto gphez, ahol gy a 192.168.1.1 lesz az tjr.) Ha megnzzk most az A-utvalaszto tvlasztsi tblzatt, akkor nagyjbl a kvetkezket fogjuk ltni:
% netstat -nr

Routing tables

868

Fejezet 31. Egyb halad hlzati tmk

Internet: Destination default 127.0.0.1 10.0.0/24 192.168.1/24

Gateway 10.0.0.1 127.0.0.1 link#1 link#2

Flags UGS UH UC UC

Refs 0 0 0 0

Use 49378 6 0 0

Netif xl0 lo0 xl0 xl1

Expire

Az A-utvalaszto tvlasztsi tblzata alapjn jelen helyzetben nem lehet elrni a 2. bels hlzatot. Nincs ugyanis olyan tvonal, amely a 192.168.2.0/24 alhlzat fel vezetne. Ezt pldul gy tudjuk megoldani, ha manulisan felvesszk ezt az tvonalat. Az albbi paranccsal hozzadjuk a 2. bels hlzat elrst az A-utvalaszto tvlasztsi tblzathoz, ahol a 192.168.1.2 lesz a kvetkez ugrsi pont (next hop):
# route add -net 192.168.2.0/24 192.168.1.2

Most mr az A-utvalaszto brmelyik gpet kpes elrni a 192.168.2.0/24 hlzaton.

31.2.5.2. Rgztett kongurci


A fenti plda tkletesen szemllti a statikus tvonalak felvtelt egy mkd rendszeren. Azonban ezzel az a gond, hogy az gy megadott tvlasztsi informci nem marad meg a gp jraindtsa utn. Ezrt az elbbihez hasonl statikus tvonalakat inkbb az /etc/rc.conf llomnyban rgztsk:
# A 2. bels hlzat elrst felvesszk statikus tvonalknt static_routes="belsohalo2" route_belsohalo2="-net 192.168.2.0/24 192.168.1.2"

A static_routes kongurcis vltoz karakterlncok szkzzel tagolt felsorolst tartalmazza. Mindegyik karakterlnc egy tvonal neve. Az imnti pldban csak egyetlen ilyen nv szerepelt a static_routes rtkben, amely a belsohalo2 volt. Utna bertunk mg egy kongurcis vltozt is, amelynek a neve route_belsohalo2. Ide helyeztk a route(8) parancsnak tadand bellts sszes paramtert. Ez pontosan olyan, mintha a kvetkez parancsot adtuk volna ki:
# route add -net 192.168.2.0/24 192.168.1.2

Ezrt kellett a "-net 192.168.2.0/24 192.168.1.2". Ahogy mr korbban is emltettk, a static_routes rtkben tbb karakterlncot is megadhatunk, aminek segtsgvel egyszerre tbb statikus tvonalat is ltrehozhatunk. A kvetkez sorok arra mutatnak pldt, hogy a 192.168.0.0/24 s 192.168.1.0/24 hlzatok szmra miknt lltsunk be statikus tvonalakat a kpzeletbeli tvlasztnkon:
static_routes="net1 net2" route_net1="-net 192.168.0.0/24 192.168.0.1" route_net2="-net 192.168.1.0/24 192.168.1.1"

869

Fejezet 31. Egyb halad hlzati tmk

31.2.6. Az tvonalak terjedse


Azt mr tudjuk, hogyan adjuk meg a klvilg fel vezet tvonalakat, azonban arrl mg nem beszltnk, hogy kvlrl miknt tallnak meg bennnket. Annyit mr megismertnk, hogy az tvlasztsi tblzatokban megadhatjuk a hlzaton azt a gpet, amelyen keresztl az adott cmtartomny (a pldban egy C osztly alhlzat) fel kldhetnk, amely pedig tovbbkldi a hozz rkez csomagokat. Amikor a csatlakozunk az internet-szolgltatnkhoz, a nla lev tvlasztsi tblzatok gy lltdnak be, hogy az alhlzatunk fel igyekv adatok a korbban ltrejtt PPP sszekttetsen keresztl jutnak el hozznk. A vilg tbbi rszn lev rendszerek viszont honnan fogjk tudni, hogy a mi internet-szolgltatnknak kldjenek? Van egy rendszer (ez leginkbb a nvszerverek elosztott informcis adatbzishoz hasonlt), ami nyilvntartja a pillanatnyilag kiosztott cmtartomnyokat s megadja a csatlakozsi pontjukat az internet gerinchlzatn. Ez a gerinc tulajdonkppen olyan fvonalakbl ll, amelyen keresztl a vilgban az orszgok kztt mozog az internet forgalma. A gerinchlzat mindegyik gpe trolja a kzponti tvlasztsi tblzatok egy msolatt, ami a forgalmat egy adott hlzatrl a megadott gerincbeli hordozra irnytja t, vgig az internet-szolgltatk lncn egszen addig, amg az el nem ri a hlzatunkat. A szolgltatnk feladata, hogy a gpnk fel legazsknt (s gy a felnk vezet tknt) beregisztlja magt a gerinchlzat gpein. Ezt nevezik az tvonal terjedsnek.

31.2.7. Hibaelhrts
Nha gondok lehetnek az tvonal terjedsvel, s egyes gpek nem kpesek elrni minket. A traceroute(8) parancs mind kzl taln az egyik leghasznosabb ilyen helyzetekben, mivel ezzel fel tudjuk derteni, hogy az tvlaszts hol akad meg. Ugyanilyen jl hasznosthat azokban az esetekben, amikor ltszlag nem tudunk elrni egy tvoli gpet (teht a ping(8) csdt mond). A traceroute(8) parancsnak annak a tvoli gpnek a nevt kell megadnunk, amelyhez csatlakozni akarunk. Futsa kzben megjelenti azokat az tjrkat, amelyeken keresztl csatlakozni prbl, akr sikerlt elrni a clgpet, akr a kapcsolat hinya miatt kudarcot vall. A parancs hasznlatrl s mkdsrl rszletesebb informcikat a traceroute(8) man oldaln tallunk.

31.2.8. tvlaszts multicast esetn


A FreeBSD alapbl tmogatja mind a multicastet hasznl alkalmazsokat, mind pedig a multicasthez tartoz tvlasztst. Multicast esetben semmilyen specilis bellts nem szksgeltetik, az ilyen alkalmazsok egybl el tudjk rni ezt a lehetsget. A multicast krsek tvlasztshoz azonban be kell ptennk nmi tmogatst a rendszermagba:
options MROUTING

Emellett mg el kell indtanunk az mrouted(8) dmont is, amelyhez az /etc/mrouted.conf llomnyban mg be kell lltanunk tunneleket s a DVMRP hasznlatt. A multicasthez tartoz tovbbi belltsokat az mrouted(8) man oldaln tallhatjuk.

870

Fejezet 31. Egyb halad hlzati tmk


Megjegyzs: A FreeBSD 7.0 megjelensvel a mrouted(8) dmont kivettk az alaprendszerbl. Azt a DVMRP tbbeskldsi protokollt valstja meg, amelyet a legtbb alkalmazsban mostansg mr a pim(4) segtsgvel oldanak meg. Ennek megfelelen a hozztartoz multicast protokollt valstja meg, amelyet a legtbb alkalmazsban mostansg mr a pim(4) segtsgvel oldanak meg. Ennek megfelelen a hozztartoz map-mbone(8) s mrinfo(8) segdprogramok is eltvoltsra kerltek. Ezek a programok attl a kiadstl kezdden a Portgyjtemny rszeknt rhetek el a net/mrouted portban.

31.3. Vezetk nlkli hlzatok


Loader, Marc Fonvieille, s Murray Stokely.

31.3.1. A vezetk nlkli hlzatok alapjai


A legtbb vezetk nlkli hlzat az IEEE 802.11 szabvnyon nyugszik. Az alapvet vezetk nlkli hlzatokban tbb olyan llomst tallhatunk, amelyek egymssal rdijelek szrsval kommuniklnak a 2,4 GHz vagy 5 GHz frekvenciatartomnyban (noha ez a helyi viszonyoknak megfelelen vltozhat, s a 2,3 GHz, illetve a 4,9 GHz tartomnyokban is lehetsges a kommunikci). A 802.11 szabvny hlzatok ktflekppen szervezdnek. Elszr is infrastrukturlisan, (infrastructural mode) ahol az egyik llomst kinevezzk a kzpontnak s a tbbi pedig ehhez fog tartozni. Az ilyen hlzatokat BSS-nek nevezzk s az imnt emltett kzpont neve hozzfrsi pont (Access Point, AP) lesz. A BSS-ben az sszes kommunikci a hozzfrsi pontokon keresztl halad mg abban az esetben is, amikor az egyik lloms egy msik vezetk nlkli llomssal akarja felvenni a kapcsolatot. Az ilyen jelleg hlzatok msik tpus szervezdsi mdjban nincsenek kijellt kzpontok s a kommunikci az llomsok kztt kzvetlenl zajlik. A hlzat ezen formjt IBBS-nek nevezzk, vagy ismeretebb nevn ad-hoc hlzatnak (ad-hoc network). A 802.11 alap hlzatok elsknt a 2,4 GHz-es svot hdtottk meg, s az IEEE 802.11 valamint 802.11b szabvnyokban rgztett protokollokat hasznltk. Ezekben a specikcikban megtallhatjuk a mkdsi frekvencit, a kzeghozzfrsi rteg jellemzinek lerst, belertve a keretezst s az tviteli sebessgeket (a kommunikci ugyanis eltr sebessgekkel is trtnhet). A ksbb kiadott 802.11a szabvny azt speciklja, hogy az 5 GHz-es tartomnyban miknt mkdjenek, ahol tbbek kzt megtallhatjuk a klnfle jelkezelsi mechanizmusokat s a nagyobb tviteli sebessgek hasznlatt. Ezt mg a 802.11g szabvny kvette, ami a 802.11b hlzatokkal kompatibilis mdon lehetv tette a 802.11a jelkezelsnek s tviteli mdszereinek hasznlatt a 2,4 GHz-es svban. A 802.11 alap hlzatok mindenfle tviteli technikitl eltekintve tbbfle biztonsgi megoldssal tallkozhatunk. Az korai 802.11 dokumentumok egy nagyon egyszer biztonsgi protokollt, a WEP-et emltenek. Ez a protokoll a hlzaton mozg adatokat egy rgztett s ismert osztott kulccsal kdolja le az RC4 titkostssal. A kommunikcihoz az sszes llomsnak elre meg kell egyeznie ebben a kulcsban. Errl a smrl idkzben kiderlt, hogy knnyen feltrhet s manapsg mr csak nagyon ritkn alkalmazzk, kivve taln csak a kbor felhasznlk elijesztsre. A jelenleg rvnyes biztonsgi elrsokat az IEEE 802.11i specikci adja meg, amely j kriptograi titkostsokat denil valamint egy tovbbi protokollt az llomsok azonostsra s a kulcsok cserjre. Emellett a titkostshoz hasznlt kulcsok idszakosan frisslnek s kln eszkzk llnak rendelkezsre a betrsi ksrletek szlelsre (s azok elhrtsra). A vezetk nlkli hlzatok esetben msik elterjedt titkostsi protokoll a WPA. Ez igazbl 802.11i eldjnek tekinthet, amelyet egy ipari csoport denilt, amg a 802.11i

871

Fejezet 31. Egyb halad hlzati tmk minsts alatt llt. A WPA ennek megfelelen teljesti a 802.11i szabvny elvrsainak egy rszt s kifejezetten a rgi hardverek szmra kszlt. A WPA mkdshez egyedl a TKIP titkostsra van szksgnk, amely az eredeti WEP titkostsbl szrmazik. A 802.11i engedi a TKIP hasznlatt, de az adatok kdolsra egy ersebb titkosts, az AES-CCM ismerett is ignyli. (Az AES a WPA esetben nem kell, mivel a rgi eszkzk esetben tlsgosan kltsgesnek tltk meg a hasznlatt.) A fenti szabvnyokon kvl a 802.11e a msik fontos szabvny, amire tekintettel kell lennnk. Ez rja le a 802.11 hlzatokon a multimdis alkalmazsok kzvettshez, mint pldul a videk vals idej lejtszshoz vagy a VoIP (voice over IP) megvalstshoz tartoz protokollokat. A 802.11i szabvnyhoz hasonlan a 802.11e is magban foglal egy elzetes specikcit, amelyet WME (ksbb pedig mr WMM)-nek neveznek. Ezt szintn egy ipari csoport denilta a 802.11e rszeknt, amivel a 802.11e vgs elfogadsig tudjk a multimdis ignyeket kiszolglni. Amit a 802.11e s WME/WMM megoldsaival kapcsolatban rdemes tudnunk: a QoS (Quality of Service) protokoll s ms egyb fejlett kzeghozzfrsi protokollok segtsgvel a vezetk nlkli hlzatokban lehetv teszik a forgalom priorits szerinti temezst. Ezen protokollok megfelel implementcijnak segtsgvel teht a fontosabb adatok nagy sebessg kldst s ramoltatst vagyunk kpesek elrni. A FreeBSD a 6.0 verzi ta ismeri a 802.11a, 802.11b s 802.11g szabvnyokon alapjn mkd hlzatokat. A WPA s 802.11i biztonsgi protokollok (a 11a, 11b s 11g szabvnyok brmelyike esetn) hasonlkppen tmogatottak, valamint a WME/WMM protokollok mkdshez szksges QoS csak bizonyos vezetk nlkli eszkzk esetben.

31.3.2. Kezdeti belltsok


31.3.2.1. A rendszermag belltsa
A vezetk nlkli hlzatok hasznlathoz egy vezetk nlkli hlzati krtyra lesz szksgnk, valamint a rendszermagban is be kell lltani ehhez a megfelel tmogatst. Ez utbbit tbb klnbz modulra szedtk szt, s ezek kzl csak azokat kell belltani, amelyeket tnyleg hasznlni is fogunk. Elszr is teht kell egy vezetk nlkli eszkz. Az elterjedtebb tpusaik ltalban az Atheos ltal gyrtott alkatrszeket tartalmazzk. Az ilyen fajtj eszkzket az ath(4) meghajt kezeli, melyet gy tudunk a rendszer indtsakor betlteni, ha a /boot/loader.conf llomnyba felvesszk a kvetkez sort:
if_ath_load="YES"

Az Atheos meghajtja hrom klnll rszre oszlik: maga a meghajt (ath(4)), a hardveres rteg, ami a chipfgg funkcikat kezeli (ath_hal(4)) s a keretek kldsvel kapcsolatban az tviteli sebessg megvlasztst lehetv tev algoritmus (ez itt most az ath_rate_sample). Amikor ezt a tmogatst modulknt tltjk be, ezek a fggsgek automatikusan felolddnak. Ha az Atheos eszkzk helyett valamelyik msikhoz tartoz modult szeretnnk hasznlni, akkor pldul az Intersil Prism esetben a wi(4) meghajtt kell megadnunk:
if_wi_load="YES"

Megjegyzs: A lers tovbbi rszeiben az ath(4) eszkzt fogjuk hasznlni, minden ms esetben ennek a nevt kell csak lecserlnk a pldkban. A rendszerben elrhet vezetk nlkli meghajtk s az ltaluk tmogatott krtyk listja a FreeBSD Hardverjegyzetekben tallhat. Ezek a jegyzetek a klnbz architektrkra s kiadsokhoz a FreeBSD holnapjrl, a Kiadsi jegyzetek (http://www.FreeBSD.org/releases/index.html) oldalrl rhetek el. Ha a vezetk nlkli eszkznkhz nem ltezik natv FreeBSD-s meghajt, akkor az NDIS meghajt segtsgvel akr kzvetlenl a Windows-os meghajtjt is hasznlhatjuk.

872

Fejezet 31. Egyb halad hlzati tmk

FreeBSD 7.X esetn az eszkzmeghajt belltsval egytt a 802.11 hlzatok tmogatst is be kell tltennk a rendszermagba. Ez az ath(4) meghajt esetben a legalbb a wlan(4), wlan_scan_ap s wlan_scan_sta modulok betltst jelenti. A wlan(4) modul a vezetknlkli eszkz meghajtprogramjval egytt tltdik be, mg a tbbi modult a /boot/loader.conf llomny hasznlatval kell a rendszerindts sorn betltennk:
wlan_scan_ap_load="YES" wlan_scan_sta_load="YES"

A FreeBSD 8.0 kiadstl kezdden ezek a modulok rszei a wlan(4) meghajtnak, amely a hlzati krtya meghajtjval egytt mindig automatikusan betltdik. Emellett mg azokra a modulokra is szksgnk van, amelyek a hasznlni kvnt biztonsgi protokollokhoz nyjtanak kriptograi tmogatst. Ezek hivatalosan a wlan(4) modul krsre automatikusan betltdnek, azonban itt most manulisan lltjuk be. Erre a clra a kvetkez modulokat talljuk: wlan_wep(4), wlan_ccmp(4) s wlan_tkip(4). A wlan_ccmp(4) s wlan_tkip(4) meghajtk csak akkor fognak kelleni, ha a WPA s/vagy a 802.11i biztonsgi protokollokat hasznljuk. Amennyiben a hlzatunkon nincs titkosts, akkor mg a wlan_wep(4) tmogats sem kell. Ezeket a modulok gy lehet betlteni a rendszerindtsnl, ha felvesszk a kvetkez sorokat a /boot/loader.conf llomnyba:
wlan_wep_load="YES" wlan_ccmp_load="YES" wlan_tkip_load="YES"

Miutn ezt megcsinltuk, egyszeren csak indtsuk jra a gpnket. Ha mg nem akarjuk jraindtani a gpet, akkor a kldload(8) parancs segtsgvel akr kzzel is betlthetjk az elbb felsorolt modulokat.
Megjegyzs: Ha nem akarunk modulokat hasznlni, a mkdshez szksges meghajtkat a rendszermagba is be tudjuk pteni a kvetkez sorok megadsval a rendszermag belltsait tartalmaz llomnyban:
device wlan device wlan_wep device wlan_ccmp device wlan_tkip device wlan_amrr device ath device ath_hal options AH_SUPPORT_AR5416 device ath_rate_sample # # # # # # # # # a 802.11 tmogatsa 802.11 WEP tmogats 802.11 CCMP tmogats 802.11 TKIP tmogats AMRR forgalomvezrlsi algoritmus Atheros IEEE 802.11 vezetk nlkli hlzati meghajt az Atheros meghajt hardveres rtege az AR5416 tx/rx lerk engedlyezse SampleRate forgalomvezrlsi algoritmus

Hozztesszk, hogy az albbi sorok hozzadsa a FreeBSD 7.X vltozatban ktelez, ms verziknl viszont nem:
device wlan_scan_ap device wlan_scan_sta # a 802.11 AP md keress # a 802.11 STA md keress

Az elbbiek megadsval fordtsuk jra s teleptsk a rendszermagot, majd indtsuk jra a szmtgpnket.

Miutn a rendszernk jra elindult, a rendszer indts sorn generlt zenetei kztt tallnunk kell valamennyi informcit a felismert vezetk nlkli eszkzkrl. Pldul:
ath0: <Atheros 5212> mem 0xff9f0000-0xff9fffff irq 17 at device 2.0 on pci2

873

Fejezet 31. Egyb halad hlzati tmk


ath0: Ethernet address: 00:11:95:d5:43:62 ath0: mac 7.9 phy 4.5 radio 5.6

31.3.3. Az infrastrukturlis mkdsi md


ltalban az infrastrukturlis avagy a BBS md hasznlata a gyakori. Ebben a mkdsi mdban adott szm vezetk nlkli hozzfrsi pont csatlakozik a hagyomnyos hlzatra. Mindegyik vezetk nlkli hlzatnak sajt neve van, amit a hlzat SSID-jnek hvunk. A vezetk nlkli kliensek ezekhez a vezetk nlkli hozzfrsi pontokhoz kapcsoldnak.

31.3.3.1. A FreeBSD-s kliensek hasznlata


31.3.3.1.1. Hogyan keressnk hozzfrsi pontokat A hlzatok keresshez az ifconfig paranccsal tudunk nekifogni. Egy ilyen krs kiszolglsa eltarthat nhny pillanatig, mivel ekkor a rendszernek vgig kell bklsznia az sszes elrhet frekvencit s azokon hozzfrsi pontok utn kutatni. Egyedl a rendszeradminisztrtor kezdemnyezheti ezeket a keresseket:
# ifconfig wlan0 create wlandev ath0 # ifconfig wlan0 up scan

SSID dlinkap freebsdap

BSSID 00:13:46:49:41:76 00:11:95:c3:0d:ac

CHAN RATE S:N 11 54M -90:96 1 54M -83:96

INT CAPS 100 EPS WPA WME 100 EPS WPA

Megjegyzs: Csak up jelzs felleten tudunk hlzatokat keresni. Tovbbi keressekre mr nincs szksg a fellet up llapotban tartshoz.

Megjegyzs: FreeBSD 7.X esetn a wlan0 eszkz helyett kzvetlenl az adott eszkz nevt kell megadnunk, pldul ath0. Az imnti sorokat ennek megfelelen teht ebben az esetben gy kell rtelmezni:
# ifconfig ath0 up scan

A lers tovbbi rszben a FreeBSD 7.X felhasznlknak ezen sma alapjn kell hasznlniuk a parancsokat s a kongurcis belltsokat.

A keress sorn keletkez listban lthatjuk megtallt BBS vagy IBBS fajtj hlzatokat. A hlzatok neve s SSID-ja mellett mg megjelenik egy BSSID oszlop is, ahol a hozzfrsi pontok MAC-cme szerepel. A CAPS oszlop az egyes llomsok tulajdonsgait adja meg:
E

Extended Service Set (ESS): az lloms egy infrastrukturlis vagyis BBS hlzat rsze.

874

Fejezet 31. Egyb halad hlzati tmk


I

IBSS/ad-hoc hlzat: az lloms egy ad-hoc hlzat rsze.


P

Privacy: a BBS-en bell minden keretet titkostani kell. Teht a BSS arra ktelezi az llomst, hogy WEP, TKIP vagy AES-CCMP titkosts hasznlatval kdolja a hlzat tagjai kztt kzleked kereteket.
S

Short Preamble: a hlzatban rvid bevezetjeleket hasznlnak (a 802.11b High Rate/DSSS PHY elrsai szerint), ahol a szokvnyos 128 bites szinkronizcis mez hossza csak 56 bit.
s

Short Slot Time: a 802.11g hlzat rvid slotidt hasznl, mivel nem tallhatak benne rgi (802.11b szabvny) llomsok. A jelenleg ismert hlzatok listjt gy tudjuk lekrdezni:
# ifconfig wlan0 list scan

Ezt az informcit maga az adapter automatikusan, vagy a felhasznl tudja frissteni a scan krs kiadsval. Az elavult adatok maguktl trldnek a gyorsttrbl, gy idvel a lista zsugorodni fog, hacsak nem keresnk folyamatosan hlzatokat.

31.3.3.1.2. Alapvet belltsok Ebben a szakaszban arra mutatunk pldkat, hogy miknt tudunk FreeBSD alatt titkosts nlkl hasznlni egy vezetk nlkli hlzati krtyt. Miutn elsajttottuk az itt szerepl ismereteket, hatrozottan javasoljuk, hogy a vezetk nlkli hlzatunkat WPA hasznlatval lltsuk be. A vezetk nlkli hlzatok belltsa hrom elemi lpsbl pl fel: a hozzfrsi pont kivlasztsa, az llomsunk hitelestse s az IP-cm belltsa. A kvetkezkben ezeket a lpseket vitatjuk meg. 31.3.3.1.2.1. A hozzfrsi pont kivlasztsa A legtbb esetben hagyjuk, hogy a rendszer vlassza ki magnak a klnbz heurisztikk alapjn a leginkbb megfelel hozzfrsi pontot. Ez az alaprtelmezett tevkenysg, amikor aktivljuk a felletet vagy valamilyen ms mdon, pldul az/etc/rc.conf llomnybl hivatkozunk r:
wlans_ath0="wlan0" ifconfig_wlan0="DHCP"

Megjegyzs: A korbban emltettek szerint a FreeBSD 7.X felhasznlknak csak a krtyt kell belltani:
ifconfig_ath0="DHCP"

Ha viszont tbb hozzfrsi pont kzl mi magunk akarunk kivlasztani egyet, akkor ezt az SSID megadsval tehetjk meg:

875

Fejezet 31. Egyb halad hlzati tmk


wlans_ath0="wlan0" ifconfig_wlan0="ssid sajt_ssid DHCP"

Amikor olyan krnyezetben vagyunk, ahol tbb hozzfrsi pontnak is megegyezik az SSID-ja (gyakran gy prbljk egyszersteni azt, hogy automatikusan vltani lehessen kztk), akkor szksgnk lehet ezt egy adott eszkzhz hozzrendelni. Ebben az esetben a hozzfrsi pont BSSID-jt is denilni kell (s az SSID-t akr el is hagyhatjuk):
wlans_ath0="wlan0" ifconfig_wlan0="ssid sajt_ssid bssid xx:xx:xx:xx:xx:xx DHCP"

Ms mdokon is kpesek vagyunk szablyozni a hozzfrsi pontok megvlasztst, pldul a rendszernk ltal vizsglt frekvenciasvok megadsval. Ez olyankor tud hasznos lenni, ha tbbsvos vezetk nlkli krtynk van, s az sszes tartomny vgigpsztzsa tlsgosan sok idt venne el. Ezt a mvelet a mode paramter megadsval lehet egy konkrt svra leszkteni, pldul a
wlans_ath0="wlan0" ifconfig_wlan0="mode 11g ssid sajt_ssid DHCP"

bellts hatsra a krtya 802.11g mdban fog zemelni, ami kizrlag csak 2,4 GHz-es frekvencikon hasznlhat, gy az 5 GHz-es csatornkat egyszeren gyelmen kvl hagyjuk. Ugyanezt a channel paramterrel is meg tudjuk oldani, mivel gy a mkdst egy adott frekvencira korltozzuk, valamint a chanlist paramterrel, ahol a psztzand csatornkat sorolhatjuk fel. Ezekrl a paramterekrl rszletesebb lerst az ifcong(8) man oldalon tallhatunk.

31.3.3.1.2.2. Hitelests Miutn sikeresen kivlasztottuk a szmunkra megfelel hozzfrsi pontot, az adatok kldshez az llomsunknak valamilyen mdon hitelestenie kell magt. A hitelests tbb mdon trtnhet. Erre a leggyakrabban alkalmazott smt nylt hitelestsnek (open authentication) nevezik, ahol a hlzathoz tetszleges lloms csatlakozhat s kommuniklhat vele. Ezt a tpus hitelestst akkor rdemes hasznlni, amikor a vezetk nlkli hlzatunkat teszteljk. Ms smkban az adatfolyam megindtshoz egy titkostsi kzfogs szksges, vagy elre megosztott kulcsok esetleg jelszavak segtsgvel, vagy bonyolultabb smk esetben itt mg olyan klnbz httrszolgltatsok is megjelennek, mint pldul a RADIUS. A legtbb felhasznl a nylt hitelestst hasznlja, ami egyben az alaprtelmezs is. A msik legelterjedtebb bellts a WPA-PSK, avagy WPA Personal, amelyrl lentebb mg szlni fogunk.
Megjegyzs: Ha Apple AirPort Extreme Base Station tpus hozzfrsi pontunk van, akkor az osztott kulcs hitelests mellett egy WEP kulcsot is be lltanunk. Ezt az /etc/rc.conf llomnyban vagy a wpa_supplicant(8) programban tehetjk meg. Ha egyetlen AirPort bzisllomsunk van, akkor az elrst valahogy gy tudjuk belltani:
wlans_ath0="wlan0" ifconfig_wlan0="authmode shared wepmode on weptxkey 1 wepkey 01234567 DHCP"

ltalnossgban vve elmondhatjuk, hogy az osztott kulcs hitelestst inkbb kerljk el, mivel WEP kulcsok hasznlatra alapszik s radsul olyan mdon, hogy nagyon knny feltrni. Ha mr mindenkppen a WEP mellett kell dntennk (pldul a rgebbi eszkzkkel gy tudunk csak kompatibilisek maradni), akkor jobban jrunk, ha a nylt hitelestshez alkalmazzuk. A WEP hasznlatt rint tovbbi informcikat a 31.3.3.1.4 Szakaszban talljuk.

876

Fejezet 31. Egyb halad hlzati tmk

31.3.3.1.2.3. IP-cm szerzse DHCP hasznlatval Miutn kivlasztottunk egy hozzfrsi pontot s belltottuk a hitelests paramtereit, egy IP-cm is kelleni fog a kommunikcihoz. Az esetek tlnyom rszben DHCP-n keresztl kapunk IP-cmet a vezetk nlkli kapcsolatunkhoz. Ezt gy rhetjk el, ha egyszeren megnyitjuk az /etc/rc.conf llomnyt s az albbihoz hasonl mdon felvesszk a DHCP paramtert az eszkznk belltsaihoz:
wlans_ath0="DHCP" ifconfig_wlan0="DHCP"

gy mr kszen is llunk a vezetk nlkli fellet hasznlatra:


# /etc/rc.d/netif start

Ahogy a fellet mkdkpess vlik, az ifconfig parancs segtsgvel ellenrizni is tudjuk az ath0 fellet llapott:
# ifconfig wlan0

wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 ether 00:11:95:d5:43:62 inet 192.168.1.100 netmask 0xffffff00 broadcast 192.168.1.255 media: IEEE 802.11 Wireless Ethernet OFDM/54Mbps mode 11g status: associated ssid dlinkap channel 11 (2462 Mhz 11g) bssid 00:13:46:49:41:76 country US ecm authmode OPEN privacy OFF txpower 21.5 bmiss 7 scanvalid 60 bgscan bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS wme burst

A status: associated azt jelenti, hogy sikeresen csatlakoztunk egy vezetk nlkli hlzathoz (jelen esetben ez a dlinkap). A bssid 00:13:46:49:41:76 rsz a hozzfrsi pont MAC-cmt tartalmazza. Az authmode OPEN pedig arrl szmol be, hogy a kommunikci nem titkostott.

31.3.3.1.2.4. Statikus IP-cm Ha valami okbl nem tudjuk az IP-cmnket DHCP szerveren keresztl lekrni, bellthatunk rgztett IP-cmet is. Ehhez nem kell mst tennnk, mint a korbban bemutatott DHCP kulcsszt kicserlni egy konkrt cmmel. A hozzfrsi ponthoz megadott tbbi paramtert azonban felttlenl hagyjuk meg:
wlans_ath0="wlan0" ifconfig_wlan0="ssid sajt_ssid inet 192.168.1.100 netmask 255.255.255.0"

31.3.3.1.3. WPA A WPA (Wi-Fi Protected Access, vagyis vdett wi- hozzfrs) a 802.11 szabvnyokban hasznlatos biztonsgi protokoll, amelyet a WEP gyengesgeinek s megfelel hitelestsnek ellenslyozsra dolgoztak ki. A WPA a 802.1X hitelestsi protokolljait ersti s az adat srtetlensgnek megrzsre a WEP helyett tbb titkostsi

877

Fejezet 31. Egyb halad hlzati tmk algoritmust is felhasznl. A WPA ltal ignyelt egyetlen titkosts a TKIP (Temporary Key Integrity Protocol, vagyis az ideiglenes kulcs integritsi protokoll), amely a WEP ltal az integrits ellenrzsre s a bejutsok szlelsre s azok reaglsra sznt alap RC4 titkostst bvti ki. A TKIP a rgebbi hardvereken csupn szoftveres mdostssal mkdkpess tehet. Ez a kompromisszum a vdelmet ugyan nveli, de mg mindig kevs a tmadsok megfelel elhrtshoz. A WPA a TKIP mellett tartalmazza mg az AES-CCMP titkostst is, s ennek a hasznlata javasolt. Ezt a specikcit gyakran WPA2 (vagy RSN) nven emlegetik. A WPA denil hitelestsi s titkostsi protokollokat. A hitelests ltalban a kvetkez kt technika egyike alapjn trtnik: vagy 802.1X s egy httrszolgltats, pldul a RADIUS segtsgvel, vagy egy elre megosztott kulcsot alkalmaz minimlis kzfogssal az lloms s a hozzfrsi pont kztt. Az elbbit gyakran WPA Enterprise-nak, mg az utbbit WPA Personalnak hvjk. Mivel a legtbben nem lltanak be egy komplett RADIUS alap szervert a vezetk nlkli hlzatukhoz, ezrt a WPA-PSK a WPA leginkbb elterjedten hasznlt vltozata. A vezetk nlkli kapcsolat s a hitelests (kulcs alapjn vagy szerverrel) vezrlst a wpa_supplicant(8) segdprogram vgzi. Ennek a programnak mkdshez egy kongurcis llomnyra van szksge, amely az /etc/wpa_supplicant.conf nven rhet el. Errl az llomnyrl bvebb informcit a wpa_supplicant.conf(5) man oldaln lelhetnk. 31.3.3.1.3.1. WPA-PSK A WPA-PSK, ms nven WPA-Personal, egy adott jelsz alapjn generlt elre megosztott kulcssal (pre-shared key, PSK) mkdik, amit a vezetk nlkli hlzatokban mesterkulcsnt hasznlnak. Ez azt jelenti, hogy minden egyes vezetk nlkli felhasznl ugyanazon a kulcson osztozik. A WPA-PSK olyan kis mret hlzatok esetben megfelel, ahol a hitelestst elvgz szerver hasznlata nem lehetsges vagy nem oldhat meg.
FigyelemMindig igyekezznk ers jelszavakat hasznlni, melyek kellen hosszak s sokfle karaktert tartalmaznak, s gy nehezebben fejthetek meg vagy trhetek fel.

Elszr az /etc/wpa_supplicant.conf llomnyban lltsuk be az SSID-t s a hlzatunkhoz tartoz elre megosztott kulcsot:
network={ ssid="freebsdap" psk="freebsdmall" }

Ezutn az /etc/rc.conf llomnyban jelezzk, hogy a vezetk nlkli eszkzt a WPA segtsgvel lltjuk be s az IP-cmet a DHCP szervertl krjk el:
wlans_ath0="wlan0" ifconfig_ath0="WPA DHCP"

Innentl mr fel is tudjuk leszteni a felletet:


# /etc/rc.d/netif start

Starting wpa_supplicant. DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 5 DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 6 DHCPOFFER from 192.168.0.1 DHCPREQUEST on wlan0 to 255.255.255.255 port 67 DHCPACK from 192.168.0.1

878

Fejezet 31. Egyb halad hlzati tmk


bound to 192.168.0.254 -- renewal in 300 seconds. wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 ether 00:11:95:d5:43:62 inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255 media: IEEE 802.11 Wireless Ethernet autoselect OFDM/36Mbps mode 11g status: associated ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS wme burst roaming MANUAL

Kzzel is megprblhatjuk elindtani az elbb elksztett /etc/wpa_supplicant.conf llomny hasznlatval:


# wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf

Trying to associate with 00:11:95:c3:0d:ac (SSID=freebsdap freq=2412 MHz) Associated with 00:11:95:c3:0d:ac WPA: Key negotiation completed with 00:11:95:c3:0d:ac [PTK=CCMP GTK=CCMP] CTRL-EVENT-CONNECTED - Connection to 00:11:95:c3:0d:ac completed (auth) [id=0 id_str=]

A kvetkez parancs a dhclient indtsa legyen, amivel megszerezzk a DHCP szervertl az IP-cmnket:
# dhclient wlan0

DHCPREQUEST on wlan0 to 255.255.255.255 port 67 DHCPACK from 192.168.0.1 bound to 192.168.0.254 -- renewal in 300 seconds.
# ifconfig wlan0

ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 ether 00:11:95:d5:43:62 inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255 media: IEEE 802.11 Wireless Ethernet OFDM/36Mbps mode 11g status: associated ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS wme burst roaming MANUAL

Megjegyzs: Ha az /etc/rc.conf llomnyban szerepel a ifconfig_wlan0="DHCP" sor, akkor egyltaln nem szksges a dhclient parancs manulis kiadsa, mivel a dhclient magtl el fog indulni, miutn a wpa_supplicant egyeztette a kulcsokat.

Amikor a DHCP nem hasznlhat, megadhatunk a statikus IP-cmet is, miutn a wpa_supplicant sikeresen lebonyoltotta a hitelestst:
# ifconfig wlan0 inet 192.168.0.100 netmask 255.255.255.0 # ifconfig wlan0

ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 ether 00:11:95:d5:43:62 inet 192.168.0.100 netmask 0xffffff00 broadcast 192.168.0.255 media: IEEE 802.11 Wireless Ethernet OFDM/36Mbps mode 11g

879

Fejezet 31. Egyb halad hlzati tmk


status: associated ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS wme burst roaming MANUAL

Ha egyltaln nem hasznlunk DHCP szervert, akkor neknk kell belltani az alaprtelmezett tjrt s a nvszervert is:
# route add default alaprtelmezett_tjr # echo "nameserver nvszerver " >> /etc/resolv.conf

31.3.3.1.3.2. WPA s EAP-TLS A msik md, ahogy a WPA hasznlhat, az a 802.1X hitelestsi szerveren keresztl trtnik, s ebben az esetben a WPA neve WPA-Enterprise. Ez sokkal biztonsgosabb a WPA-Personal elre kiosztott kulcsaival szemben. A WPA-Enterprise az EAP (Extensible Authentication Protocol, azaz Bvthet hitelestsi protokoll) hasznlatn alapszik. Az EAP nmaga nem vgez titkostst, mivel gy alaktottk ki, hogy magt az EAP protokollt kell egy titkostott jraton keresztl bjtatni. Az EAP hitelestsi mdszereinek tbb tpust is kidolgoztk, melyek kzl a legismertebbek az EAP-TLS, EAP-TTLS valamint a EAP-PEAP. Az EAP-TLS (EAP szlltsi rtegbeli vdelemmel) a vezetk nlkli vilgban egy nagyon jl tmogatott hitelestsi protokoll, mivel ez volt az els EAP mdszer, amit a Wi- szvetsg (http://www.wi-.org/) jvhagyott. Az EAP-TLS mkdshez hrom tanstvny kell: egy hitelest hatsgtl (Certicate Authority, CA), egy a hitelestst vgz szervertl s egy a klienstl. Ezzel az EAP mdszerrel mind a hitelest szerver, mind a vezetk nlkli kliens kln kpviselik a sajt tanstvnyaikat, s ezeket a szervezetnket hitelest hatsg alrsa alapjn ellenrzik. A korbbiaknak megfelelen a belltsokat szintn az /etc/wpa_supplicant.conf llomnyon keresztl vgezzk el:
network={ ssid="freebsdap" proto=RSN key_mgmt=WPA-EAP eap=TLS identity="loader" ca_cert="/etc/certs/cacert.pem" client_cert="/etc/certs/clientcert.pem" private_key="/etc/certs/clientkey.pem" private_key_passwd="freebsdmallclient" }

Ez a mez adja meg a hlzat nevt (SSID). Itt az RSN (IEEE 802.11i), vagyis a WPA2 protokollt hasznljuk. A key_mgmt sor a kulcskezelsi protokollt adja meg. A mi esetnkben ez a WPA lesz, EAP hitelestssel: WPA-EAP.

880

Fejezet 31. Egyb halad hlzati tmk Ebben a mezben az EAP mdszert nevezzk meg a kapcsolathoz. Az identity mez az EAP esetn hasznlt azonostt tartalmazza. A ca_cert mez a hitelest hatsg tanstvnyt trol llomny elrsi tvonalt adja meg. Ezt a szerver tanstvnynak hitelestshez hasznljuk. A client_cert sor a kliens tanstvnyt tartalmaz llomny elrsi tvonalt adja meg. Ennek a vezetk nlkli hlzat minden egyes kliense esetben egyedinek kell lennie. A private_key mez a kliens tanstvnynak privt kulcst trol llomny elrsi tjt adja meg. A private_key_passwd mez a privt kulcshoz tartoz jelmondatot rgzti.

Az /etc/rc.conf llomnyba vegyk fel a kvetkez sorokat:


wlans_ath0="wlan0" ifconfig_wlan0="WPA DHCP"

A kvetkez lps a fellet felbresztse lesz az rc.d eszkz segtsgvel:


# /etc/rc.d/netif start

Starting wpa_supplicant. DHCPREQUEST on wlan0 to 255.255.255.255 port 67 DHCPREQUEST on wlan0 to 255.255.255.255 port 67 DHCPACK from 192.168.0.20 bound to 192.168.0.254 -- renewal in 300 seconds. wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 ether 00:11:95:d5:43:62 inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255 media: IEEE 802.11 Wireless Ethernet DS/11Mbps mode 11g status: associated ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS wme burst roaming MANUAL

Termszetesen, ahogy azt mr az elbbiekben is megmutattuk, mindezt manulisan is el tudjuk vgezni a wpa_supplicant s az ifconfig parancsok segtsgvel.

31.3.3.1.3.3. WPA s EAP-TTLS Az EAP-TLS hasznlatakor mind a hitelestst vgz szervernek s kliensnek is kell tanstvny, azonban az EAP-TTLS ( szlltsi rtegbeli vdelem EAP tunnelen keresztl) esetben a kliensnl ez elhagyhat. Ez a mdszer nagyjbl olyan, mint amit a webes oldalak csinlnak, ahol a webszerverek egy vdett SSL tunnelt kpeznek mg akkor is, amikor a ltogatk nem rendelkeznek kliens oldali tanstvnnyal. Az EAP-TTLS egy titkostott TLS tunnelen keresztl vdi le a hitelestsi adatok forgalmt. Ezt ismt az /etc/wpa_supplicant.conf llomnyon keresztl tudjuk belltani:
network={ ssid="freebsdap" proto=RSN key_mgmt=WPA-EAP

881

Fejezet 31. Egyb halad hlzati tmk


eap=TTLS identity="test" password="test" ca_cert="/etc/certs/cacert.pem" phase2="auth=MD5" }

Ebben a mezben az EAP mdszert lltjuk be a kapcsolathoz. Az identity mez a titkostott TLS tunnelen keresztl az EAP hitelestsnl felhasznlt azonostt adja meg. A password tartalmazza az EAP hitelestsnl hasznlt jelmondatot. A ca_cert mez hivatkozik a hitelest hatsg tanstvnyt tartalmaz llomnyra. Ez az llomny kell a szerver tanstvnynak ellenrzshez. Ebben a mezben a titkostott TLS tunnelben hasznlt hitelestsi mdszer nevezzk meg. Jelen esetnkben ez az EAP MD5-Challenge hasznlatval. A bels hitelests fzist gyakran csak phase2-nak (2. fzisnak) hvjk.

Mindezek mellett mg a kvetkez sorokat is vegyk fel az /etc/rc.conf llomnyba:


wlans_ath0="wlan0" ifconfig_wlan0="WPA DHCP"

Ezutn hozzuk mkdsbe a felletet:


# /etc/rc.d/netif start

Starting wpa_supplicant. DHCPREQUEST on wlan0 to 255.255.255.255 port 67 DHCPREQUEST on wlan0 to 255.255.255.255 port 67 DHCPREQUEST on wlan0 to 255.255.255.255 port 67 DHCPACK from 192.168.0.20 bound to 192.168.0.254 -- renewal in 300 seconds. wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 ether 00:11:95:d5:43:62 inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255 media: IEEE 802.11 Wireless Ethernet DS/11Mbps mode 11g status: associated ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS wme burst roaming MANUAL

31.3.3.1.3.4. WPA s EAP-PEAP A PEAP (Vdett EAP) az EAP-TTLS egyik alternatvjaknt jtt ltre. A PEAP mdszernek kt vltozata van, melyek kzl a leggyakoribb a PEAPv0/EAP-MSCHAPv2. A lers tovbbi rszben a PEAP elnevezssel erre az EAP mdszerre fogunk hivatkozni. A PEAP az EAP-TLS utn a leginkbb alkalmazott szabvny, ms szval, ha a hlzatunkban tbbfle opercis rendszer is megtallhat, akkor az EAP-TLS utn valsznleg a PEAP lesz a msik, amit mindegyik ismerni fog.

882

Fejezet 31. Egyb halad hlzati tmk A PEAP hasonl az EAP-TTLS-hez: szerver oldali tanstvnyokkal hitelesti a klienseket s titkostott TLS tunnelt hoz ltre a kliens s a hitelestst vgz szerver kztt, amivel segti megvni a hitelestsi informcikat. Biztonsg szempontjbl az EAP-TTLS s a PEAP kztt az a klnbsg, hogy a PEAP hitelests a felhasznli nevet titkostatlanul kldi s csak a jelsz megy t a titkostott TLS tunnelen. Az EAP-TTLS egyarnt a TLS tunnelt hasznlja mind a felhasznli nv, mind a jelsz esetben. Az EAP-PEAP belltsait az /etc/wpa_supplicant.conf llomnyba kell felvenni:
network={ ssid="freebsdap" proto=RSN key_mgmt=WPA-EAP eap=PEAP identity="test" password="test" ca_cert="/etc/certs/cacert.pem" phase1="peaplabel=0" phase2="auth=MSCHAPV2" }

Ebben a mezben megadjuk, az EAP mdszert hasznljuk a kapcsolathoz. Az identity mez az EAP hitelests sorn a titkostott TLS tunnelben tkldtt azonostt tartalmazza. A password mez az EAP hitelests sorn hasznlt jelmondatot denilja. A ca_cert mez a hitelest hatsg tanstvnyt tartalmaz llomny elrsi tjt adja meg. Ez az llomny kell a szerver tanstvnynak ellenrzshez. Ez a mez a hitelests els fzisnak (vagyis a TLS tunnel) paramtereit tartalmazza. A hitelestst vgz szervertl fggen a hitelestshez meg kell adnunk bizonyos cmkket. A legtbb esetben a cmke a kliens oldali EAP titkosts lesz, amit a peaplabel=0 hasznlatval lltunk be. A rszleteket a wpa_supplicant.conf(5) man oldalon olvashatjuk. Ebben a mezben a titkostott TLS tunnelben alkalmazott hitelestst protokollt nevezzk meg. A PEAP esetben ez az auth=MSCHAPV2 lesz.

A kvetkezket kell mg hozztennnk az /etc/rc.conf llomnyhoz:


wlans_ath0="wlan0" ifconfig_wlan0="WPA DHCP"

Ezutn mr mkdsbe is hozhatjuk a felletet:


# /etc/rc.d/netif start

Starting wpa_supplicant. DHCPREQUEST on wlan0 to 255.255.255.255 port 67 DHCPREQUEST on wlan0 to 255.255.255.255 port 67 DHCPREQUEST on wlan0 to 255.255.255.255 port 67 DHCPACK from 192.168.0.20 bound to 192.168.0.254 -- renewal in 300 seconds. wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 ether 00:11:95:d5:43:62 inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255 media: IEEE 802.11 Wireless Ethernet DS/11Mbps mode 11g

883

Fejezet 31. Egyb halad hlzati tmk


status: associated ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS wme burst roaming MANUAL

31.3.3.1.4. WEP A WEP (Wired Equivalent Privacy, azaz kbellel egyenrtk titkossg) az eredeti 802.11 szabvny rsze. Nincs kln hitelestsi mechanizmusa, csupn a hozzfrs-vezrls egy gyenge formjval tallkozhatunk benne, amit azonban knnyen fel lehet trni. A WEP ifconfig parancs hasznlatn keresztl llthat be:
# ifconfig wlan0 create wlandev ath0 # ifconfig wlan0 ssid sajt_hlzat wepmode on weptxkey 3 wepkey 3:0x3456789012 \ inet 192.168.1.100 netmask 255.255.255.0

A weptxkey utal arra, hogy a klds sorn WEP kulcsot hasznlunk. Itt most egy harmadik kulcsot hasznltunk, amelynek egyeznie kell a hozzfrsi pont belltsaival. Ha nem tudjuk pontosan, hogy milyen kulcsot hasznl a hozzfrsi pont, akkor prblkozzunk az 1 rtk (vagyis az els kulcs) megadsval. A wepkey utn kvetkezik a kivlasztott WEP kulcs. index:kulcs alakban kell megadni, s ha itt nem adunk meg indexet, akkor azzal az 1 index kulcsot lltjuk be. gyis fogalmazhatnnk, hogy az indexet csak olyankor kell megadni, amikor nem az els kulcsot akarjuk hasznlni.
Megjegyzs: A 0x3456789012 rtket a hozzfrsi pontnl belltott kulcsra kell belltani.

Ha rdekelnek minket a tovbbi rszletek, akkor btran lapozzuk fel az ifcong(8) parancs man oldalt. A wpa_supplicant segdprogramot is bevonhatjuk a vezetk nlkli felletek WEP alap hasznlatba. A fenti pldt a kvetkez mdon tudjuk lerni az /etc/wpa_supplicant.conf llomnyban:
network={ ssid="sajat_halozat" key_mgmt=NONE wep_key3=3456789012 wep_tx_keyidx=3 }

Majd:
# wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf

Trying to associate with 00:13:46:49:41:76 (SSID=dlinkap freq=2437 MHz) Associated with 00:13:46:49:41:76

884

Fejezet 31. Egyb halad hlzati tmk

31.3.4. Az ad-hoc mkdsi md


Az IBSS vagy ms nven ad-hoc mdot pont-pont tpus kapcsolatok kialaktsra terveztk. Pldul, ha az A s a B gpek kztt egy ad-hoc tpus hlzatot akarunk ltesteni, akkor egyszeren csak ki kell vlasztanunk kt IP-cmet s egy SSID-t. gy lltjuk be az A gpet:
# ifconfig wlan0 create wlandev ath0 # ifconfig wlan0 ssid freebsdap mediaopt adhoc inet 192.168.0.1 netmask 255.255.255.0 # ifconfig wlan0

wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 ether 00:11:95:c3:0d:ac inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255 media: IEEE 802.11 Wireless Ethernet autoselect <adhoc> (autoselect <adhoc>) status: associated ssid freebsdap channel 2 bssid 02:11:95:c3:0d:ac authmode OPEN privacy OFF txpowmax 36 protmode CTS bintval 100

Az adhoc paramterrel utalunk arra, hogy a fellet most IBSS mdban mkdik. A B gpen ezutn mr kpesek vagyunk szlelni az A gpet:
# ifconfig wlan0 up scan

SSID freebsdap

BSSID 02:11:95:c3:0d:ac

CHAN RATE S:N 2 54M -90:-96

INT CAPS 100 IS

A kimenetben szerepl I is megersti, hogy az A gpet ad-hoc mdban rjk el. gy mr csak a B gpet kell belltanunk egy msik IP-cmmel:
# ifconfig wlan0 create wlandev ath0 # ifconfig wlan0 ssid freebsdap mediaopt adhoc inet 192.168.0.2 netmask 255.255.255.0 # ifconfig wlan0

wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 ether 00:11:95:d5:43:62 inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255 media: IEEE 802.11 Wireless Ethernet autoselect <adhoc> (autoselect <adhoc>) status: associated ssid freebsdap channel 2 bssid 02:11:95:c3:0d:ac authmode OPEN privacy OFF txpowmax 36 protmode CTS bintval 100

Most mr mind az A s mind a B kszen ll az adatok cserjre.

31.3.5. FreeBSD alap hozzfrsi pontok


A FreeBSD kpes hozzfrsi pontknt (Access Point, AP) is zemelni, gy nem kell kln hardveres hozzfrsi pontot vsrolnunk vagy ad-hoc hlzatot hasznlnunk. Ez klnsen akkor hasznos, amikor a FreeBSD gpet egy msik hlzat (pldul az internet) fel lltottuk be tjrnak.

885

Fejezet 31. Egyb halad hlzati tmk

31.3.5.1. Alapvet belltsok


Mieltt nekillnnk a FreeBSD-s gpnket hozzfrsi pontnak belltani, egy olyan rendszermagra lesz szksgnk, amely tartalmazza a megfelel vezetk nlkli tmogatst a krtynkhoz. Emellett az alkalmazni kvnt biztonsgi protokollok tmogatst is bele kell ptennk. Ennek rszleteit lsd a 31.3.2 Szakaszban.
Megjegyzs: Jelenleg az NDIS meghajtn keresztl hasznlt Windows-os meghajtk nem teszik lehetv hozzfrsi pontok kialaktst. Egyedl a vezetk nlkli eszkzk natv FreeBSD-s meghajti ismerik a hozzfrsi pont mdot.

Ahogy betltttk a vezetk nlkli hlzatok tmogatst, egybl ellenrizni is tudjuk, hogy a vezetk nlkli eszkznk hasznlhat-e hozzfrsi pontknt (avagy hostap mdban):
# ifconfig ath0 list caps

ath0=783ed0f<WEP,TKIP,AES,AES_CCM,IBSS,HOSTAP,AHDEMO,TXPMGT,SHSLOT,SHPREAMBLE,MONITOR,TKIPMIC,WPA

A fenti kimenetben lthatjuk a krtynk tulajdonsgait. A HOSTAP sz arrl tanskodik, hogy a vezetk nlkli krtynk kpes hozzfrsi pontknt viselkedni. Mellette mg a klnfle tmogatott titkostsi mdszerek is lthatak: WEP, TKIP, WPA2 stb. Ezekbl az informcikbl tudjuk kiderteni, hogy a hozzfrsi pontunkon milyen titkostsi protokollokat tudunk hasznlni. A vezetk nlkli eszkznket most mr tllthatjuk hozzfrsi pontnak, amihez megadunk mg egy SSID-t s egy IP-cmet:
# ifconfig ath0 ssid freebsdap mode 11g mediaopt hostap inet 192.168.0.1 netmask 255.255.255.0

Az ifconfig parancs ismtelt hasznlatval le is tudjuk krdezni az ath0 fellet llapott:


# ifconfig ath0

ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255 inet6 fe80::211:95ff:fec3:dac%ath0 prefixlen 64 scopeid 0x4 ether 00:11:95:c3:0d:ac media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <hostap> status: associated ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac authmode OPEN privacy OFF txpowmax 38 bmiss 7 protmode CTS burst dtimperiod 1 bintval 100

A hostap paramterbl kiderl, hogy a fellet hozzfrsi pont mdban van. Ha az /etc/rc.conf llomnyban megadjuk a kvetkez sort, akkor a fellet belltsa a rendszer indtsakor magtl megtrtnik:
ifconfig_ath0="ssid freebsdap mode 11g mediaopt hostap inet 192.168.0.1 netmask 255.255.255.0"

31.3.5.2. Hitelests vagy titkosts nlkli hozzfrsi pontok


Habr a hozzfrsi pontok mkdtetse nem javasolt hitelests vagy titkosts nlkl, ebben a mdban knnyen meg tudunk gyzdni a hozzfrsi pontunk hasznlhatsgrl. Ez a tpus kongurci ezenkvl mg fontos szerepet jtszik a klienseken felbukkan hibk kiszrsben is.

886

Fejezet 31. Egyb halad hlzati tmk Miutn sikerlt az elbbiekben bemutatottak alapjn belltani a hozzfrsi pontunkat, egy msik vezetk nlkli gprl rgtn meg is kezdhetjk a keresst:
# ifconfig ath0 up scan

SSID freebsdap

BSSID 00:11:95:c3:0d:ac

CHAN RATE S:N 1 54M 22:1

INT CAPS 100 ES

Lthatjuk, hogy a kliens megtallta a hozzfrsi pontot s tudunk is r kapcsoldni:


# ifconfig ath0 ssid freebsdap inet 192.168.0.2 netmask 255.255.255.0 # ifconfig ath0

ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1 inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255 ether 00:11:95:d5:43:62 media: IEEE 802.11 Wireless Ethernet autoselect (OFDM/54Mbps) status: associated ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac authmode OPEN privacy OFF txpowmax 36 protmode CTS bintval 100

31.3.5.3. WPA titkostst hasznl hozzfrsi pontok


Ebben a szakaszban a FreeBSD-s hozzfrsi pontunkat WPA titkostssal lltjuk be. A WPA s a WPA alap kliensek belltsnak rszleteit a 31.3.3.1.3 Szakaszban talljuk. A WPA titkostst hasznl hozzfrsi pontokon a hostapd dmon foglalkozik a kliensek hitelestsvel s a kulcsok kezelsvel. A tovbbiakban az sszes belltst egy olyan FreeBSD-s gpen vgezzk el, amely hozzfrsi pontknt mkdik. Ahogy sikerlt belltanunk a hozzfrsi pont mdot, az /etc/rc.conf llomnyban a kvetkez sor segtsgvel knnyen meg tudjuk oldani, hogy az hostapd dmon a rendszerrel egytt magtl elinduljon:
hostapd_enable="YES"

Mieltt megprblnnk belltani a hostapd dmont, ne felejtsk el elvgezni a 31.3.5.1 Szakaszban emltett alapvet belltsokat sem. 31.3.5.3.1. WPA-PSK A WPA-PSK hasznlatt olyan kis mret hlzatok szmra sznjk, ahol egy kln hitelest szervert alkalmazsa nem lehetsges vagy nem kvnatos. A kongurci az /etc/hostapd.conf llomnyon keresztl trtnik:
interface=ath0 debug=1 ctrl_interface=/var/run/hostapd ctrl_interface_group=wheel ssid=freebsdap wpa=1 wpa_passphrase=freebsdmall wpa_key_mgmt=WPA-PSK wpa_pairwise=CCMP TKIP

887

Fejezet 31. Egyb halad hlzati tmk Ebben a mezben jelljk ki a hozzfrsi pontknt hasznlt vezetk nlkli felletet. Ebben a mezben adjuk meg a hostapd futtatsa sorn keletkez zenetek rszletessgt. A pldban szerepl 1 rtk ennek a legkisebb szintjt jelli. A ctrl_interface mez megadja a hostapd ltal hasznlt knyvtr elrsi tvonalt, amiben azokat a tartomnyokhoz tartoz socketeket troljuk, amelyeken keresztl olyan programokkal tudunk kommuniklni, mint pldul a hostapd_cli(8). Itt az alaprtelmezett rtket rtuk be. A ctrl_interface_group sor belltja azt a csoportot (ez jelen esetben a wheel), amin keresztl a vezrlfellet (control interface) llomnyaihoz hozz tudunk frni. Ebben a mezben a hlzat nevt lltjuk be. A wpa mezvel engedlyezzk a WPA hasznlatt s megadjuk, hogy melyik WPA hitelestsi protokollt alkalmazzuk. Az itt szerepl 1 rtk a WPA-PSK hitelests lltja be a hozzfrsi pont szmra. A wpa_passphrase mez a WPA hitelestshez szksges ASCII jelmondatot tartalmazza.
FigyelemLehetleg mindig ers jelszavakat hasznljunk, amelyek kellen hosszak s sokfle karaktert tartalmaznak, gy nehezebben fejthetek meg vagy trhetek fel.

A wpa_key_mgmt sor a kulcsok kezelsre hasznlt protokollt denilja. Ez a mi esetnk most a WPA-PSK. A wpa_pairwise mez a hozzfrsi pont ltal elfogadott titkostsi algoritmusokat hatrozza meg. A pldban a TKIP (WPA) s CCMP (WPA2) titkostst is tmogatjuk. A CCMP titkosts a TKIP egyik alternatvja, s lehetsg szerint hasznljuk ezt. A TKIP csak olyan llomsok esetben javasolt, amelyek nem tmogatjk a CCMP hasznlatt.

A kvetkez lps a hostapd elindtsa:


# /etc/rc.d/hostapd forcestart # ifconfig ath0

ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 2290 inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255 inet6 fe80::211:95ff:fec3:dac%ath0 prefixlen 64 scopeid 0x4 ether 00:11:95:c3:0d:ac media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <hostap> status: associated ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac authmode WPA2/802.11i privacy MIXED deftxkey 2 TKIP 2:128-bit txpowmax 36 protmode CTS dtimperio

A hozzfrsi pont mostantl mkdik, innentl a kliensek mr kpesek csatlakozni hozz, bvebben lsd a 31.3.3.1.3 Szakaszban. A hozzfrsi ponthoz tartoz llomsokat az ifconfig ath0 list sta paranccsal tudjuk listzni.

31.3.5.4. WEP titkostst hasznl hozzfrsi pontok


A WEP titkostst nem javasoljuk a hozzfrsi pontok esetben, mivel nem tartalmaz semmilyen hitelestsi mechanizmust s knnyen feltrhet. Egyes rgebbi vezetk nlkli krtyk azonban csak a WEP ltal nyjtott

888

Fejezet 31. Egyb halad hlzati tmk vdelmet ismerik, ezrt az ilyenek csak olyan hozzfrsi pontokhoz tudnak csatlakozni, amelyek vagy nem hasznlnank hitelestst s titkostst, vagy erre a WEP protokollt hasznljk. A vezetk nlkli eszkzt tegyk hozzfrsi pont mdba s lltsuk be neki a megfelel SSID-t s IP-cmet:
# ifconfig ath0 ssid freebsdap wepmode on weptxkey 3 wepkey 3:0x3456789012 mode 11g mediaopt hostap \ inet 192.168.0.1 netmask 255.255.255.0

A weptxkey bellts utn adjuk meg a kldshez hasznlt WEP kulcsot. Itt a harmadik kulcsot adtuk meg (vegyk szre, hogy a kulcsok szmozsa az 1 rtkkel kezddik). Ez a paramtert az adatok tnyleges titkostshoz kell megadni. A wepkey a kivlasztott WEP kulcs belltst jelli, aminek a formtuma index:kulcs. Ha itt nem adunk meg indexet, akkor automatikusan az els kulcsot lltjuk be. Ezrt taln mondanunk sem kell, hogy az indexet csak akkor kell megadni, ha nem az els kulcsot akarjuk hasznlni.

A ath0 fellet llapotnak megtekintshez adjuk ki megint az ifconfig parancsot:


# ifconfig ath0

ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255 inet6 fe80::211:95ff:fec3:dac%ath0 prefixlen 64 scopeid 0x4 ether 00:11:95:c3:0d:ac media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <hostap> status: associated ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac authmode OPEN privacy ON deftxkey 3 wepkey 3:40-bit txpowmax 36 protmode CTS dtimperiod 1 bintva

Egy msik vezetk nlkli gprl most mr megprblhatjuk megkeresni a hozzfrsi pontot:
# ifconfig ath0 up scan

SSID freebsdap

BSSID 00:11:95:c3:0d:ac

CHAN RATE S:N 1 54M 22:1

INT CAPS 100 EPS

Lthatjuk, hogy a kliens megtallta a hozzfrsi pontot, s a megfelel paramterekkel (kulcs stb.) kpes kapcsoldni hozz a 31.3.3.1.4 Szakaszban lertak szerint.

31.3.6. A vezetkes s vezetk nlkli hlzatok egyttes hasznlata


A vezetkes hlzatok ltalban jobb teljestmnyt nyjtanak s megbzhatbbak, mikzben a vezetk nlkli hlzatok pedig nagyobb rugalmassgot s mozgsteret szolgltatnak. Ezrt a hordozhat szmtgpek tulajdonosaiban felmerlhet az igny, hogy egyszerre mind a kettt hasznlva, tetszlegesen s problmamentesen vlthassanak a hlzatok kztt. FreeBSD rendszereken n. hibatr mdon kt vagy akr tbb hlzati interfszt ssze tudunk vonni. Ennek ksznheten az aktv hlzati kapcsolat megsznsekor rendszernk nllan igyekszik mindig a fennmarad elrhet hlzatok kzl a leginkbb preferltabbra vltani. A hlzati sszekttetsek sszefzsvel s a hibatrs konkrt megvalstsval az 31.6 Szakaszban foglalkozunk, ahol a 31-3 Pldaban lthatjuk is a vezetkes s vezetk nlkli kapcsolatok egyttes hasznlatnak belltst.

889

Fejezet 31. Egyb halad hlzati tmk

31.3.7. Hibaelhrts
Ha valamilyen gondunk lenne a vezetk nlkli hlzatok hasznlatval, akad nhny lps, amivel esetleg fel tudjuk derteni a hiba okt.

Ha nem ltjuk a hozzfrsi pontot a psztzs utn, ellenrizzk, hogy a vezetk nlkli eszkzt vletlenl nem korltoztuk-e le bizonyos csatornkra. Ha nem tudunk csatlakozni a hozzfrsi ponthoz, akkor egyeztessk vele az lloms egyes paramtereit, belertve a hitelestsi smt s a biztonsgi protokollokat. Minl jobban egyszerstsk le a kongurcikat. Ha WPA vagy WEP titkostst hasznlunk, akkor a hozzfrsi ponton lltsunk be nylt hitelestst s kapcsoljuk ki a titkostst, majd nzzk meg, hogy gy eljut-e hozznk valamilyen forgalom. Ahogy sikerlt csatlakozunk a hozzfrsi ponthoz, a biztonsgi belltsokat olyan egyszer eszkzkkel prbljuk meg diagnosztizlni, mint pldul a ping(8). A wpa_supplicant segdprogrammal tudunk nyomkvetst vgezni. A -dd opci megadsval indtsuk el manulisan s ellenrizzk a rendszernaplkat.

Vannak alacsonyabb szint nyomkvetsi lehetsgek is. A 802.11 protokollt tmogat rtegben is tudunk engedlyezni nyomkvetsi zeneteket a /usr/src/tools/tools/net80211 knyvtrban tallhat wlandebug program segtsgvel. Pldul a
# wlandebug -i ath0 +scan+auth+debug+assoc

net.wlan.0.debug: 0 => 0xc80000<assoc,auth,scan>

paranccsal a hozzfrsi pontok keresshez s a 802.11 protokollon bell a kapcsolat megszervezshez szksges kzfogsokhoz kapcsold konzolzeneteket tudjuk engedlyezni. A 802.11 rtegben rengeteg hasznos statisztikt tallhatunk. Mindezeket a wlanstats eszkzzel tudjuk kiratni. Ezeknek a statisztikknak a 802.11 rteg sszes hibjt be kell tudniuk azonostaniuk. Vigyzzunk azonban, mert az eszkzmeghajtkban a 802.11 rteg alatt rejl bizonyos hibk ilyenkor nem jelennek meg. Az eszkzfgg problmk feldertsvel kapcsolatban a megfelel meghajt dokumentcijt olvassuk t. Amennyiben a fenti tancsok mentn sem sikerl orvosolnunk a hibt okt, kldjnk egy hibajelentst s mellkeljk hozz a fentebb trgyalt eszkzk ltal gyrtott kimeneteket.

31.4. Bluetooth
rta: Pav Lucistnik.

31.4.1. Bevezets
A Bluetooth egy olyan vezetk nlkli technolgia, amellyel a 2,4 GHz-es frekvenciatartomnyban tudunk szemlyi hlzatokat ltrehozni 10 mteren bell. Az ilyen tpus hlzatok ltalban alkalmi jelleggel keletkeznek klnfle hordozhat eszkzk, mint pldul mobiltelefonok, kzi szmtgpek s laptopok kztt. Eltren ms npszer vezetk nlkli technolgiktl, pldul a wi-tl, a Bluetooth magasabb szint szolgltsi prolokat is felajnl: FTP-szer llomnyszervereket, az llomnyok ttolst, hang tkldst, soros vonali emulcit s mg sok minden mst.

890

Fejezet 31. Egyb halad hlzati tmk A FreeBSD-ben megvalstott Bluetooth protokollkszlet a Netgraph rendszerre ptkezik (lsd netgraph(4)). A Bluetooth alap USB-s hardverzrak szles krt tmogatja az ng_ubt(4) meghajt. A Broadcom BCM2033 chipre ptett Bluetooth eszkzket az ubtbcmfw(4) s az ng_ubt(4) meghajtk tmogatjk. A 3Com Bluetooth PC Card 3CRWB60-A eszkzt az ng_bt3c(4) meghajt tmogatja. A soros s UART alap Bluetooth eszkzket a sio(4), ng_h4(4) s hcseriald(8) ismeri. Ebben a szakaszban a Bluetooth alap USB-s hardverzrak hasznlatt mutatjuk be.

31.4.2. Az eszkz csatlakoztatsa


Alaprtelmezs szerint a Bluetooth eszkzmeghajtk modulknt rhetek el. Az eszkz csatlakoztatsa eltt a megfelel meghajtt be kell tltennk a rendszermagba:
# kldload ng_ubt

Ha a Bluetooth eszkz mr a rendszer indtsakor is jelen van, akkor a modult az /boot/loader.conf llomnyon keresztl is betlthetjk:
ng_ubt_load="YES"

Dugjuk be az USB-s hardverzrunkat. Az albbihoz hasonl kimenet fog keletkezni a konzolon (vagy a rendszernaplban):
ubt0: vendor 0x0a12 product 0x0001, rev 1.10/5.25, addr 2 ubt0: Interface 0 endpoints: interrupt=0x81, bulk-in=0x82, bulk-out=0x2 ubt0: Interface 1 (alt.config 5) endpoints: isoc-in=0x83, isoc-out=0x3, wMaxPacketSize=49, nframes=6, buffer size=294

Az /etc/rc.d/bluetooth szkript fogja vgezni a Bluetooth hasznlathoz szksges protokollkszlet elindtst s lelltst. J tlet lelltani az eszkz eltvoltsa eltt, de ha elhagyjuk, (ltalban) nem okoz vgzetes hibt. Az indtskor a kvetkez kimenetet kapjuk:
# /etc/rc.d/bluetooth start ubt0

BD_ADDR: 00:02:72:00:d4:1a Features: 0xff 0xff 0xf 00 00 00 00 00 <3-Slot> <5-Slot> <Encryption> <Slot offset> <Timing accuracy> <Switch> <Hold mode> <Sniff mode> <Park mode> <RSSI> <Channel quality> <SCO link> <HV2 packets> <HV3 packets> <u-law log> <A-law log> <CVSD> <Paging scheme> <Power control> <Transparent SCO data> Max. ACL packet size: 192 bytes Number of ACL packets: 8 Max. SCO packet size: 64 bytes Number of SCO packets: 8

31.4.3. Host Controller Interface (HCI)


A Host Controller Interface (HCI) egy parancsfelletet nyjt a mkdsi sv vezrljhez (baseband controller) s az sszekttetsek kezeljhez (link manager), valamint hozzfrst a hardverllapot s -vezrl regiszterekhez. Ez a fellet egy egysges mdszert szolgltat a Bluetooth mkdsi svjhoz tartoz tulajdonsgok elrshez. Az eszkzn zemel HCI rteg a Bluetooth hardverben tallhat HCI rmware-rel vlt adatokat s parancsokat. A Host

891

Fejezet 31. Egyb halad hlzati tmk Controller Transport Layer (vagyis a zikai busz) meghajtja mind a kt HCI rteget s a kettejk kzti informcicsert is elrhetv teszi. Az egyes Bluetooth eszkzkhz ltrejn egy-egy hci tpus Netgraph-beli csompont. Ez a HCI csompont ltalban a Bluetooth eszkzmeghajt csompontjhoz (lefel) s az L2CAP csomponthoz (felfel) csatlakozik. Az sszes HCI mveletet a HCI csomponton kell elvgezni s nem az eszkzmeghajthoz tartozn. A HCI csompont alaprtelmezett neve a devicehci. Ezekrl tbbet az ng_hci(4) man oldaln tudhatunk meg. Az egyik legltalnosabb feladat a Bluetooth eszkzk esetben a kzelben lev tovbbi eszkzk feldertse. Ezt a mveletet tudakozdsnak (inquiry) nevezik. A tudakozdst s az sszes tbbi HCI-hez kapcsold mveletet a hccontrol(8) segdprogrammal tudjuk elvgezni. A lentebb lthat plda azt mutatja meg, hogyan tudunk Bluetooth eszkzket keresni egy adott tvolsgon bell. Az elrhet eszkzk listjt nhny msodpercen alatt megkapjuk. A tvoli azonban eszkzk csak akkor fognak vlaszolni, ha felderthet (discoverable) mdban vannak.
% hccontrol -n ubt0hci inquiry

Inquiry result, num_responses=1 Inquiry result #0 BD_ADDR: 00:80:37:29:19:a4 Page Scan Rep. Mode: 0x1 Page Scan Period Mode: 00 Page Scan Mode: 00 Class: 52:02:04 Clock offset: 0x78ef Inquiry complete. Status: No error [00]

A BD_ADDR a Bluetooth eszkz egyedi cme, hasonl a hlzati krtyk MAC-cmhez. Erre a cmre lesz szksg ahhoz, hogy a tovbbiakban kommuniklni tudjunk az eszkzzel. Emberek szmra rtelmezhet nevet is hozz tudunk rendelni a BD_ADDR cmhez. Az /etc/bluetooth/hosts llomny tartalmazza a Bluetooth eszkzkre vonatkoz informcikat. A kvetkez pldban azt lthatjuk, hogyan tudunk beszdesebb nevet adni egy tvoli eszkznek:
% hccontrol -n ubt0hci remote_name_request 00:80:37:29:19:a4

BD_ADDR: 00:80:37:29:19:a4 Name: Pav T39-ese

Amikor tudakozdni kezdnk a tvoli Bluetooth eszkzk jelenlte fell, a gpnket sajat.gep.nev (ubt0) nven fogjk ltni. Ez a helyi eszkzhz rendelt nv brmikor megvltoztathat. A Bluetooth rendszer lehetsg ad pont-pont (termszetesen csak kt Bluetooth egysg kztt) vagy pont-multipont tpus kapcsolatok kiptsre. A pont-multipont kapcsolat esetn a kapcsolaton tbb Bluetooth eszkz osztozik. A most kvetkez pldban meglthatjuk, hogyan kell az aktv mkdsi svban lekrdezni a helyi eszkz ltrejtt kapcsolatait:
% hccontrol -n ubt0hci read_connection_list

Remote BD_ADDR Handle Type Mode Role Encrypt Pending Queue State 00:80:37:29:19:a4 41 ACL 0 MAST NONE 0 0 OPEN

A kapcsolat azonostja (connection handle) akkor hasznos, amikor egy svbeli kapcsolatot akarunk lezrni. Ezt ltalban nem kell kzzel megcsinlni. A rendszer magtl lezrja az inaktv svbeli kapcsolatokat.
# hccontrol -n ubt0hci disconnect 41

Connection handle: 41 Reason: Connection terminated by local host [0x16]

892

Fejezet 31. Egyb halad hlzati tmk A hccontrol help paranccsal tudjuk lekrdezni az elrhet HCI parancsokat. A legtbb HCI parancs vgrehajtshoz nem kellenek rendszeradminisztrtori jogosultsgok.

31.4.4. Logical Link Control and Adaptation Protocol (L2CAP)


A Logical Link Control and Adaptation Protocol (L2CAP) a kapcsolat-orientlt s a kapcsolat nlkli adatszolgltatsokrt felels a felsbb rtegek fel, valamit tmogatja a protokollok tbbszrzst, a darabolst s az sszerakst. Az L2CAP a magasabb szint protokollok s az alkalmazsok szmra egszen 64 kilobyte mretig lehetv teszi az adatcsomagok kldst s fogadst. A L2CAP a csatorna (channel) fogalmra ptkezik. A csatorna egy logikai kapcsolatot kpvisel a mkdsi svon belli kapcsolat felett. Mindegyik csatornhoz egyetlen protokoll ktdik, egy a tbbhz alapon. Tbb csatorna is tarthozhat ugyanahhoz a protokollhoz, de egy csatornn nem hasznlhatunk tbb protokollt. A csatornkon keresztl rkez L2CAP csomagok ezutn a megfelel felsbb rtegbeli protokollokhoz kerlnek. Tbb csatorna osztozhat ugyanazon a svbeli kapcsolaton. Minden Bluetooth eszkzhz ltrejn egy l2cap tpus Netgraph-csompont. Az L2CAP csompont ltalban egy Bluetooth HCI csomponthoz (lefel) s egy Bluetooth sockethez (felfel) kapcsoldik. Az L2CAP csompont alaprtelmezett neve devicel2cap. Errl rszletesebben az ng_l2cap(4) man oldal vilgost fel minket. Ezen a szinten hasznos parancsnak bizonyulhat az l2ping(8), amivel ms eszkzket tudunk pingelni. Elfordulhat, hogy egyes Bluetooth implementcik nem vlaszolnak semmilyen feljk kldtt adatra, gy az albbi pldban is szerepl 0 bytes teljesen normlis.
# l2ping -a 00:80:37:29:19:a4

0 0 0 0

bytes bytes bytes bytes

from from from from

0:80:37:29:19:a4 0:80:37:29:19:a4 0:80:37:29:19:a4 0:80:37:29:19:a4

seq_no=0 seq_no=1 seq_no=2 seq_no=3

time=48.633 time=37.551 time=28.324 time=46.150

ms ms ms ms

result=0 result=0 result=0 result=0

Az l2control(8) segdprogram hasznlhat az L2CAP csompontok klnbz mveleteinek kivitelezsre. Ebben a pldban a helyi eszkzhz tartoz logikai kapcsolatokat (csatornk) s svokat krdezzk le:
% l2control -a 00:02:72:00:d4:1a read_channel_list

L2CAP channels: Remote BD_ADDR 00:07:e0:00:0b:ca

SCID/ DCID 66/ 64

PSM 3

IMTU/ OMTU State 132/ 672 OPEN

% l2control -a 00:02:72:00:d4:1a read_connection_list

L2CAP connections: Remote BD_ADDR Handle Flags Pending State 00:07:e0:00:0b:ca 41 O 0 OPEN

Msik ugyanilyen diagnosztikai eszkz a btsockstat(1). Ha a viselkedst tekintjk, akkor leginkbb a netstat(1) programra hasonlt, de a Bluetooth hlzatban megjelen adatszerkezetekkel dolgozik. Az albbi plda az imnti l2control(8) parancs kimenetben szerepl logikai kapcsolatokat mutatja:
% btsockstat

Active L2CAP sockets PCB Recv-Q Send-Q Local address/PSM c2afe900 0 0 00:02:72:00:d4:1a/3 Active RFCOMM sessions L2PCB PCB Flag MTU Out-Q DLCs State

Foreign address CID 00:07:e0:00:0b:ca 66

State OPEN

893

Fejezet 31. Egyb halad hlzati tmk


c2afe900 c2b53380 1 127 0 Yes OPEN Active RFCOMM sockets PCB Recv-Q Send-Q Local address Foreign address Chan DLCI State c2e8bc80 0 250 00:02:72:00:d4:1a 00:07:e0:00:0b:ca 3 6 OPEN

31.4.5. Az RFCOMM protokoll


Az RFCOMM protokoll a soros portok emulcijt valstja meg az L2CAP protokollon keresztl. A protokoll az ETSI TS 07.10. RFCOMM szabvnyn alapszik, s egy egyszer tviteli protokoll, amelyet a 9 ts RS-232 (EIATIA-232-E) soros portok emulcijra ksztettek fel. Az RFCOMM protokoll legfeljebb 60 kapcsolat (RFCOMM csatorna) prhuzamos hasznlatt tmogatja kt Bluetooth eszkz kztt. Az RFCOMM szmra a teljes kommunikcis tvonal kt klnbz eszkzn fut alkalmazst (kommunikcis vgpontot) s kztk lev kommunikcis szegments foglalja magban. Az RFCOMM az adott eszkzn a soros portot hasznl alkalmazsok rszre kszlt. A kommunikcis szegmens az egyik eszkztl a msikig vezet Bluetooth alap sszekttets (kzvetlen kapcsolat). Kzvetlen kapcsolat esetn az RFCOMM csak az eszkzk kzti kapcsolattal foglalkozik, valamint hlzati kapcsolat esetn az eszkz s a modem kzti kapcsolattal. Az RFCOMM ms kongurcikat is tmogat, pldul olyan modulokat, amelyek az egyik oldalon a Bluetooth vezetk nlkli technolgin keresztl kommuniklnak, mg a msik oldalon egy vonalas felletet nyjtanak. A FreeBSD-ben az RFCOMM protokollt Bluetooth foglalatok rtegben valstottk meg.

31.4.6. Az eszkzk prostsa


Alaprtelmezs szerint a Bluetooth kommunikci nem hitelestdik s brmelyik eszkz kpes brmelyik msikkal felvenni a kapcsolatot. Egy Bluetooth eszkz (pldul egy mobiltelefon) egy adott szolgltatshoz ignyelhet hitelestst (pldul betrcszshoz). A Bluetooth alap hitelests tbbnyire PIN kdokkal trtnik. A PIN kd egy legfeljebb 16 karakterbl ll ASCII karakterlnc. A felhasznlknak mind a kt eszkzn ugyanazt a PIN kdot kell megadniuk. Miutn megadtuk a PIN kdot, az eszkzk ltrehoznak hozzjuk egy sszektettsbeli kulcsot (link key). Ezutn ezt a kulcsot vagy az eszkzkn troljuk vagy pedig valamilyen tarts troln. A kvetkez alkalommal mind a kt eszkzt ezt a korbban elksztett kulcsot fogja hasznlni. Ezt az eljrst nevezik prostsnak (pairing). Ha valamelyik eszkz elveszti az ssszekttets kulcst, akkor a prostst meg kell ismtelni. A hcsecd(8) dmon felels az sszes Bluetooth alap hitelestsi krs lekezelsrt. Az alaprtelmezett kongurcis llomnya az /etc/bluetooth/hcsecd.conf. Pldul gy tudjuk benne egy mobiltelefonhoz megadni az 1234 PIN kdot:
device { bdaddr name key pin }

00:80:37:29:19:a4; "Pav T39-ese"; nokey; "1234";

Semmilyen korltozs nincs a PIN kdokra (a mretktl eltekintve). Egyes eszkzkbe (pldul a Bluetooth fejhallgatk) elre rgztett PIN kdot ptettek bele. A -d kapcsol hatsra a hcsecd(8) dmont az eltrben lehet futtatni, gy knnyebben lthatjuk mi trtnik. A tvoli eszkzt lltsuk be a prosts elfogadsra s

894

Fejezet 31. Egyb halad hlzati tmk kezdemnyezznk fel egy Bluetooth kapcsolatot. A tvoli eszkznek erre azt kell vlaszolnia, hogy elfogadta a prostst, majd krni fogja a PIN kdot. Adjuk meg ugyanazt a PIN kdot, mint amit a hcsecd.conf llomnyba is bertunk. Most mr a gpnk s a tvoli eszkz prban vannak. A prostst a tvoli eszkzrl is kezdemnyezhetjk. A FreeBSD 5.5, 6.1 s jabb vltozataiban az /etc/rc.conf llomnyba a kvetkez sort kell felvenni a hcsecd automatikus indtshoz:
hcsecd_enable="YES"

Ez pedig a hcsecd dmon ltal generlt kimenetre plda:


hcsecd[16484]: hcsecd[16484]: hcsecd[16484]: hcsecd[16484]: hcsecd[16484]: hcsecd[16484]:

Got Link_Key_Request event from ubt0hci, remote bdaddr 0:80:37:29:19:a4 Found matching entry, remote bdaddr 0:80:37:29:19:a4, name Pavs T39, link key do Sending Link_Key_Negative_Reply to ubt0hci for remote bdaddr 0:80:37:29:19:a4 Got PIN_Code_Request event from ubt0hci, remote bdaddr 0:80:37:29:19:a4 Found matching entry, remote bdaddr 0:80:37:29:19:a4, name Pavs T39, PIN code ex Sending PIN_Code_Reply to ubt0hci for remote bdaddr 0:80:37:29:19:a4

31.4.7. Service Discovery Protocol (SDP)


A Service Discovery Protocol (SDP) segtsgvel a kliens alkalmazsok kpes felderteni, hogy a szerver alkalmazsok rszrl milyen szolgltatsok rhetek el, valamint ezek a szolgltatsok milyen tulajdonsgokkal rendelkeznek. A szolgltatsok tulajdonsgi kz soroljuk tbbek kztt a felajnlott szolgltats tpust vagy osztlyt, illetve a szolgltats kihasznlshoz szksges mechanizmusra vagy protokollra vonatkoz informcikat. Az SDP az SDP szerver s az SDP kliens kzti kommunikcit foglalja magban. A szerver karbantart egy listt azokrl a szolgltatsi rekordokrl, amelyek a szerverhez tartoz szolgltatsok jellemzit rjk le. Mindegyik ilyen szolgltatsi rekord egyetlen szolgltats adatait tartalmazza. A kliensek egy SDP krssel ezeket a szolgltatsi rekordokat krhetik el az SDP szervertl. Amennyiben a kliens, vagy a hozztartoz alkalmazs a szolgltats hasznlata mellett dnt, akkor a szolgltats hasznlathoz a megfelel szolgltat fel nyitnia kell egy kln kapcsolatot. Az SDP csak a szolgltatsok s azok tulajdonsgainak feldertshez ad segtsget, de semmilyen eszkzt nem tartalmaz a felhasznlsukra. ltalban az SDP kliensek ltalban valamilyen szmunkra kell tulajdonsg alapjn keresnek szolgltatsokat. Radsul addhatnak olyan alkalmak is, amikor a szolgltatsok elzetes ismerete nlkl szeretnnk felderteni a rendelkezsre ll szolgltatsok tpusait. A felajnlott szolgltatsok ilyen tpus feldolgozst nevezzk bngszsnek (browsing). Az sdpd(8) Bluetooth SDP szerver s a parancssoros sdpcontrol(8) kliens az alap FreeBSD telepts rsze. Az albbi pldban egy SDP bngszsi krst adunk ki:
% sdpcontrol -a 00:01:03:fc:6e:ec browse

Record Handle: 00000000 Service Class ID List: Service Discovery Server (0x1000) Protocol Descriptor List: L2CAP (0x0100) Protocol specific parameter #1: u/int/uuid16 1 Protocol specific parameter #2: u/int/uuid16 1

895

Fejezet 31. Egyb halad hlzati tmk


Record Handle: 0x00000001 Service Class ID List: Browse Group Descriptor (0x1001) Record Handle: 0x00000002 Service Class ID List: LAN Access Using PPP (0x1102) Protocol Descriptor List: L2CAP (0x0100) RFCOMM (0x0003) Protocol specific parameter #1: u/int8/bool 1 Bluetooth Profile Descriptor List: LAN Access Using PPP (0x1102) ver. 1.0

s gy tovbb. Mindegyik szolgltatshoz hozztartozik a tulajdonsgok egy listja (pldul RFCOMM csatorna). Lehetsges, hogy szolgltatstl fggen bizonyos tulajdonsgokat kell gyelnnk. Egyes Bluetooth implementcik nem tmogatjk a szolgltatsok bngszst s ezrt egy res listt adnak vissza. Ebben az esetben egy konkrt szolgltatsra tudunk rkeresni. A kvetkez pldban az OBEX Object Push (OPUSH) szolgltatst keressk:
% sdpcontrol -a 00:01:03:fc:6e:ec search OPUSH

FreeBSD alatt az sdpd(8) szerverrel tudunk szolgltatsokat felajnlani a Bluetooth klienseknek. A FreeBSD 5.5, 6.1 vagy ksbbi vltozataiban ehhez a kvetkez sort kell megadnunk az /etc/rc.conf llomnyban:
sdpd_enable="YES"

Ezutn az sdpd dmon gy indthat el:


# /etc/rc.d/sdpd start

A tvoli kliensek rszre Bluetooth szolgltatsokat felajnlani kvn helyi szerver alkalmazsoknak regisztrlniuk kell magukat a helyi SDP dmonnl. Pldul az egyik ilyen alkalmazs az rfcomm_pppd(8), s elindtsa utn regisztrlni fogja a Bluetooth LAN szolgltatst a helyi SDP dmonnl. A helyi SDP szerveren regisztrlt szolgltatsokat a helyi vezrlsi csatornn keresztl egy browse krssel tudjuk lekrdezni:
# sdpcontrol -l browse

31.4.8. A betrcszs hlzati s a PPP hlzati hozzfrsi (LAN) prolok


A betrcszs hlzati (Dial-Up Networking, DUN) prol leggyakrabban a modemek s mobiltelefonok kztt tnik fel. Ez a prol a kvetkez forgatknyveket dolgozza fel:

A szmtgpnkkel egy mobiltelefont vagy modemet vezetk nlkli modemknt hasznlunk, amivel az internethez vagy ms hlzatokhoz csatlakozunk betrcszssal. A szmtgpnkkel egy mobiltelefonon vagy modemen keresztl fogadunk adathvsokat.

A PPP hlzati hozzfrsi (LAN) prol a kvetkez helyezetekben alkalmazhat:

896

Fejezet 31. Egyb halad hlzati tmk


LAN hozzfrs egyetlen Bluetooth eszkzhz LAN hozzfrs tbb Bluetooth eszkzhz Kt gp sszektse (a soros vonali kapcsolat emulcival PPP-n keresztl)

FreeBSD alatt mind a kt prolt a ppp(8) s az rfcomm_pppd(8) valstja meg egy olyan wrapper eszkz, amely az RFCOMM Bluetooth kapcsolatokat a PPP szmra is rtelmess alaktja t. Mieltt mg brmelyik prolt elkezdennk hasznlni, egy j PPP cmkt kell ltrehozni az /etc/ppp/ppp.conf llomnyban. Erre pldt az rfcomm_pppd(8) man oldalon tallhatunk. A kvetkez pldban az rfcomm_pppd(8) programot fogjuk hasznlni arra, hogy egy RFCOMM tpus kapcsolatot nyissunk a 00:80:37:29:19:a4 cmmel rendelkez tvoli Bluetooth eszkz fel. A tnyleges RFCOMM csatorna szmt SDP-n keresztl a tvoli eszkztl kapjuk. Az RFCOMM csatorna kzzel is megadhat, s ilyen esetekben az rfcomm_pppd(8) nem fog SDP krst kldeni. A sdpcontrol(8) hasznlatval tudjuk lekrdezni a tvoli eszkzn ltrejtt RFCOMM csatornt.
# rfcomm_pppd -a 00:80:37:29:19:a4 -c -C dun -l rfcomm-dialup

A PPP hlzati elrs (LAN) szolgltats beindtshoz futni kell a sdpd(8) szervernek. A helyi hlzaton keresztl csatlakoz kliensekhez ltre kell hozni egy j bejegyzst az /etc/ppp/ppp.conf llomnyban. Az rfcomm_pppd(8) man oldalon tallhatunk erre pldkat. Vgezetl indtsuk el az RFCOMM PPP szervert egy rvnyes RFCOMM csatornaszmmal. Az RFCOMM PPP szerver ekkor automatikusan regisztrlja a Bluetooth LAN szolgltatst a helyi SDP dmonnl. A kvetkez pldban megmutatjuk, hogyan lehet elindtani egy RFCOMM PPP szervert:
# rfcomm_pppd -s -C 7 -l rfcomm-server

31.4.9. Az OBEX Object Push (OPUSH) prol


Az OBEX egy szles krben alkalmazott protokoll a mobileszkzk kzti egyszer llomnyvitelre. Legfkppen az infravrs kommunikciban alkalmazzk, ahol a laptopok vagy PDA-k kzti ltalnos llomnytvitelre hasznljk, illetve nvjegykrtyk vagy naptrbejegyzsek tkldsre mobiltelefonok kztt s egyb PIM alkalmazst futtat eszkzk esetben. Az OBEX szervert s klienst egy kls csomag, az obexapp valstja meg, amelyet az comms/obexapp portbl rhetnk el. Az OBEX kliens hasznlhat objektumok ttolsra vagy lehzsra az OBEX szerverhez. Ez az objektum lehet pldul egy nvjegykrtya vagy egy megbeszlt tallkoz. Az OBEX kliens SDP-n keresztl tud magnak RFCOMM csatornaszmot szerezni. Ezt gy tehetjk meg, ha a szolgltats neve helyett egy RFCOMM csatorna szmt adjuk meg. A tmogatott szolgltatsok: IrMC, FTRN s OPUSH. Szmknt RFCOMM csatorna is megadhat. Az albbi pldban egy OBEX munkamenetet lthatunk, ahol az eszkz informcis objektumt hzzuk le a mobiltelefonrl s egy j objektumot (egy nvjegykrtyt) tolunk fel a telefon knyvtrba.
% obexapp -a 00:80:37:29:19:a4 -C IrMC

obex> get telecom/devinfo.txt devinfo-t39.txt Success, response: OK, Success (0x20) obex> put new.vcf Success, response: OK, Success (0x20) obex> di Success, response: OK, Success (0x20)

897

Fejezet 31. Egyb halad hlzati tmk Az OBEX objektumok tologatsnak tmogatshoz az sdpd(8) szervernek kell futnia. Tovbb a berkez objektumok trolshoz ltre kell hoznunk mg egy knyvtrat is. Ez az knyvtr alaprtelmezs szerint a /var/spool/obex. Vgl indtsuk el az OBEX szervert egy rvnyes RFCOMM csatorna szmnak megadsval. Az OBEX szerver ezutn automatikusan regisztrlja az OBEX Object Push nev szolgltatst a helyi SDP dmonnl. Ebben a pldban lthatjuk az OBEX szerver indtst:
# obexapp -s -C 10

31.4.10. Soros vonali prol (SPP)


A soros vonali prol (Serial Port Prole, SPP) hasznlatval RS232 (vagy ahhoz hasonl) vonali adattvitelt tudunk emullni. Ez a prol a rgebben fejlesztett alkalmazsokkal birkzik meg, s a Bluetooth technolgival valdi kbel helyett egy virtulis soros portot kpez le. Az rfcomm_sppd(1) segdprogram ezt a soros vonali prolt valstja meg. gy egy pszeudo terminlt tudunk virtulis soros portknt hasznlni. Ha nem adunk meg RFCOMM csatornt, akkor az rfcomm_sppd(1) kpes SDP-n keresztl krni egyet magnak a tvoli eszkztl. Ha ezt fell kvnjuk brlni, akkor a parancssorban megadhatunk akr egy konkrt RFCOMM csatornt is.
# rfcomm_sppd -a 00:07:E0:00:0B:CA -t /dev/ttyp6

rfcomm_sppd[94692]: Starting on /dev/ttyp6...

Miutn csatlakoztunk, a pszeudo terminlt tudjuk soros portknt hasznlni:


# cu -l ttyp6

31.4.11. Hibaelhrts
31.4.11.1. Nem tudunk csatlakozni a tvoli eszkzzel
Egyes Bluetooth eszkzk nem tmogatjk a szerepek cserjt (role switch). Alaprtelmezs szerint amikor a FreeBSD elfogad egy j kapcsolatot, megprbl rajta szerepet cserlni s mesterr vlni. Azok az eszkzk, amelyek ezt nem tmogatjk, nem lesznek kpesek emiatt csatlakozni. Ez a szerepvlts az j kapcsolatok felptse sorn zajlik le, ezrt egy tvoli eszkztl nem lehet megtudni, hogy ismeri-e ezt a lehetsget. A helyi oldalon a kvetkez HCI opcival lehet kikapcsolni a szerepcsert:
# hccontrol -n ubt0hci write_node_role_switch 0

31.4.11.2. Valami nem megy. Lehet ltni valahogy, pontosan mi is trtnik?


Persze, igen. Egy kls csomag, a hcidump segtsgvel, amely a comms/hcidump portbl rhet el. A hcidump segdprogram a tcpdump(1) programhoz hasonlthat. Ezzel lehet a Bluetooth csomagok tartalmt megnzni a terminlon vagy elmenteni ezeket egy llomnyba.

898

Fejezet 31. Egyb halad hlzati tmk

31.5. Hlzati hidak


rta: Andrew Thompson.

31.5.1. Bevezets
Gyakran hasznos lehet anlkl felosztani egy zikai hlzatot (pldul egy Ethernet szegmenst) kt kln hlzati szegmensre, hogy kln IP-alhlzatot kellene ltrehozunk s sszektnnk ezeket egy tvlasztval. A kt ilyen mdon kialaktott hlzatot sszekt eszkzt nevezzk hlzati hdnak (bridge). A legalbb kt hlzati fellettel rendelkez FreeBSD rendszerek kpesek hlzati hd szerept betlteni. A hlzati hd az eszkzk adatkapcsolati rtegben a hozztartoz felletein megjelen (vagyis Ethernet) cmnek megtanulsval mkdik. A kt hlzat kztt csak akkor kzvett forgalmat, amikor a forrs s cl nem ugyanabban a hlzatban tallhat. A hlzati hidak bizonyos szempontbl lnyegben nagyon kevs porttal rendelkez Ethernet switch-ek.

31.5.2. A hlzati hidak tipikus alkalmazsai


Napjainkban akad nhny igen jellemz szituci, ahol szksg van a hlzati hidak alkalmazsra.

31.5.2.1. Hlzatok sszektse


A hlzati hidak alapvet feladata kt vagy tbb hlzati szegmens sszektse. Az egyszer hlzati krnyezet fellltsa helyett tbb okbl is felmerlhet a hidak ltrehozsa: kbelezsi megszortsok, tzfalazs vagy pszeudo hlzatok, pldul virtulis gpek felletnek csatlakoztatsa miatt. Egy hd hasznlatval radsul ssze tudunk ktni egy vezetk nlkli hozzfrsi pontknt zemel felletet egy vezetkes hlzattal.

31.5.2.2. Szrs vagy forgalomkorltozs tzfallal


Sokszor elfordulhat, hogy tvlaszts vagy hlzati cmfordts (NAT) nlkl szeretnnk tzfalat hasznlni. Pldaknt kpzeljnk el egy olyan kis mret cget, amely egy DSL vagy ISDN vonalon kapcsoldik az internet-szolgltatjhoz. A szolgltattl 13, mindenki ltal hasznlhat IP-cmet kaptak s a hlzatukban 10 gp van. Ebben a helyzetben egy tvlasztst vgz tzfal mkdtetse nehzkess vlna az alhlzatok problmi miatt. Egy hdknt viselked tzfallal azonban minden IP szmozsi problma nlkl egyszeren be tudjuk dobni a gpeket a DSL/ISDN tvlaszt mg.

31.5.2.3. A hlzat megcsapolsa


Egy hlzati hddal gy kapcsolunk ssze kt hlzati szegmenst, hogy kzben meg tudjuk vizsglni a kettejk kztt mozg Ethernet kereteket. Ezt a hd felleten a bpf(4) valamint a tcpdump(1) segtsgvel tudjuk megoldani, vagy gy, ha egy msik felleten elkldjk az sszes keret msolatt (span, vagyis feszt port).

899

Fejezet 31. Egyb halad hlzati tmk

31.5.2.4. VPN az adatkapcsolati rtegben


A kt Ethernet hlzatot egy IP alap sszekttetsen keresztl is ssze tudunk ktni, ha a hlzatokat egy EtherIP jraton keresztl ktjk ssze hddal, vagy egy OpenVPN-hez hasonl tap(4) alap megoldssal.

31.5.2.5. Redundancia az adatkapcsolati rtegben


A hlzatokat tbb linken keresztl ktjk ssze s a redundns tvonalakat a fesztfa protokollal (Spanning Tree Protocol, STP). Az Ethernetes hlzatok esetben a megfelel mkdshez a kt eszkz kztt csak egyetlen aktv tvonal ltezhet, gy a fesztfa protokoll szleli a hurkokat s a redundns sszekttetseket blokkolt llapotba teszi. Amikor azonban az aktv linkek egyike meghibsodik, akkor a protokoll jraszmolja a ft s a hlzati pontjai kzti konnektivitst megprblja helyrelltani az addig blokkolt linkek ismtelt engedlyezsvel.

31.5.3. A rendszermag belltsai


Ebben a szakaszban az if_bridge(4) hlzati hd implementcival foglalkozunk, de a Netgraph segtsgvel is tudunk hidakat pteni. Ez utbbirl az ng_bridge(4) man oldalon olvashatunk. Amikor ltrehozunk egy hlzati hidat, az ifcong(8) automatikusan betlti a hozztartoz meghajtt. Ha viszont a rendszermag belltsait tartalmaz llomnyba felvesszk a device if_bridge sort, akkor akr be is pthetjk a rendszermagba. A csomagszrs minden olyan tzfallal hasznlhat, amely a pl(9) rendszerre kapcsoldik. Maga a tzfal is betlthet modulknt, vagy belefordthat a rendszermagba. A hlzati hddal forgalmat is tudunk szablyozni az altq(4) vagy a dummynet(4) segtsgvel.

31.5.4. A hlzati hd engedlyezse


Hlzati hidak felletek klnozsval hozhatak ltre. A hd ltrehozshoz hasznljuk az ifcong(8) programot, s a megfelel meghajt automatikusan betltdik, ha nem lenne mg elrhet a rendszermagban.
# ifconfig bridge create

bridge0
# ifconfig bridge0

bridge0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500 ether 96:3d:4b:f1:79:7a id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15 maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200 root id 00:00:00:00:00:00 priority 0 ifcost 0 port 0

Ekkor ltrejn a hlzati hdhoz tartoz fellet s vletlenszeren generldik hozz egy Ethernetes cm. A maxaddr s a timeout paramterek vezrlik, hogy a hd mennyi MAC-cmet tartson meg a keretek tovbbtsrt felels tblzatban s mennyi msodperc utn trljn automatikusan egy bejegyzst a legutols hasznlat utn. A tbbi paramter a fesztfa mkdst irnytja. Vegyk fel a hdhoz tartoz hlzati tagfelleteket. A hd csak akkor fog a tagfelletek kztt csomagokat tovbbkldeni, amikor a hd s a tagok is up llapotban vannak:

900

Fejezet 31. Egyb halad hlzati tmk


# ifconfig bridge0 addm fxp0 addm fxp1 up # ifconfig fxp0 up # ifconfig fxp1 up

A hd most mr tkldi az Ethernet kereteket a fxp0 s fxp1 felletek kztt. Az imntiekkel megegyez kongurcit az /etc/rc.conf llomnyban gy alakthatjuk ki:
cloned_interfaces="bridge0" ifconfig_bridge0="addm fxp0 addm fxp1 up" ifconfig_fxp0="up" ifconfig_fxp1="up"

Ha a hdhoz IP-cmet is rendelni akarunk, akkor inkbb magnl a hdnl adjuk meg, ne a tagoknl. Ezt statikusan vagy DHCP hasznlatval is megtehetjk:
# ifconfig bridge0 inet 192.168.0.1/24

A hdhoz IPv6 cmet is hozz tudunk rendelni.

31.5.5. Tzfalazs
Ha engedlyezzk a csomagszrst, a hdon thalad csomagok elszr a kld fellet rkezsi oldalra kerlnek, majd a hdra, vgl a megfelel irnyban lev fellet kldsi oldalra. Brmelyik fzis letilthat. Amikor a csomagok ramlsnak irnya fontos szmunkra, akkor jobban jrunk, ha nem magra a hdra, hanem csak a tagfelletekre lltjuk be a tzfalat. A hd szmos mdosthat belltssal rendelkezik a nem-IP s ARP csomagok tkldsre, valamint arra, hogy az IPFW tzfal adatkapcsolati rteg szintjn mkdhessen. Az if_bridge(4) man oldal ennek rszleteit trja fel.

31.5.6. Fesztfk
A hd meghajtja a gyors fesztfa protokollt (Rapid Spanning Tree Protocol, RSTP avagy 802.1w) valstja meg, ami visszafel kompatibilis a korbban emltett fesztfa protokollal. A fesztfkat a hlzati topolgiban felbukkan hurkok szlelsre s eltvoltsra alkalmazzk. Az RSTP azonban a hagyomnyos STP-nl valamivel gyorsabb konvergencit gr, mivel itt a szomszdos switch-ek kicserlik egyms kztt az adataikat, s gy jabb hurkok ltrehozsa nlkl kpesek viszonylag gyorsan egyik llapotbl tvltani a msikba. Az albbi tblzat a tmogatott mkdsi mdokat lthatjuk: Opercis rendszer FreeBSD 5.4FreeBSD 6.2 FreeBSD 6.3+ FreeBSD 7.0+ STP mdok STP RSTP vagy STP RSTP vagy STP Alaprtelmezs STP STP RSTP

A tagfelleteken az stp paranccsal tudjuk engedlyezni a fesztfk hasznlatt. Az fxp0 s fxp1 felleteket sszekt hdfellet esetben teht gy:
# ifconfig bridge0 stp fxp0 stp fxp1

bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500

901

Fejezet 31. Egyb halad hlzati tmk


ether d6:cf:d5:a0:94:6d id 00:01:02:4b:d4:50 priority 32768 hellotime 2 fwddelay 15 maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200 root id 00:01:02:4b:d4:50 priority 32768 ifcost 0 port 0 member: fxp0 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP> port 3 priority 128 path cost 200000 proto rstp role designated state forwarding member: fxp1 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP> port 4 priority 128 path cost 200000 proto rstp role designated state forwarding

Lthatjuk, hogy a hd a fesztfban megkapta a 00:01:02:4b:d4:50-es azonostt s a 32768-as prioritst. Mivel root id rtke is ugyanez, elmondhatjuk, hogy ez a fa gykereknt funkcionl hd. Ha a hlzaton mr valahol ltezik egy msik hd:
bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 ether 96:3d:4b:f1:79:7a id 00:13:d4:9a:06:7a priority 32768 hellotime 2 fwddelay 15 maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200 root id 00:01:02:4b:d4:50 priority 32768 ifcost 400000 port 4 member: fxp0 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP> port 4 priority 128 path cost 200000 proto rstp role root state forwarding member: fxp1 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP> port 5 priority 128 path cost 200000 proto rstp role designated state forwarding

A root id 00:01:02:4b:d4:50 priority 32768 ifcost 400000 port 4 sor mutatja, hogy a fa gykert kpez hd most a 00:01:02:4b:d4:50 azonostval rendelkezik, s ezt a hidat 400000-res kltsggel ri el a port 4 (a 4. porton) keresztl, amely jelen esetben az fxp0 fellet.

31.5.7. Komolyabb hidak ptse


31.5.7.1. A forgalom ramlsnak tszerkesztse
A hidak tmogatjk az n. meggyelsi mdot, ahol a csomagokat a bpf(4) feldolgozsuk utn eldobja, gy nem folytatdik a feldolgozsuk vagy nem haladnak tovbb. Ennek kihasznlsval a kt vagy tbb felleten rkez adatokat egyetlen bpf(4) folyamm tudjuk alaktani. Ez olyan hlzati csapok forgalmnak tszerkesztsben hasznos, ahol a kt klnbz felleten keresztl kldjk ki az RX/TX (fogads/klds) jeleket. Az albbi paranccsal tudjuk megoldani, hogy ngy felletrl rkez adatot legynk kpesek egyetlen folyamknt olvasni:
# ifconfig bridge0 addm fxp0 addm fxp1 addm fxp2 addm fxp3 monitor up # tcpdump -i bridge0

902

Fejezet 31. Egyb halad hlzati tmk

31.5.7.2. Feszt portok


A hdhoz befut Ethernet keretek mindegyikrl kszl egy msolat, ami egy megadott feszt porton keresztl megy tovbb. Hidanknt vgtelen szm ilyen feszt port ltezhet, s ha egy felletet feszt portnak adtunk meg, akkor hagyomnyos portknt mr nem hasznlhatjuk. Ez leginkbb akkor hasznos, amikor passzvan akarjuk meggyelni a hddal rendelkez hlzatot a hd valamelyik feszt portjra csatlakoz gprl. Kldessk az sszes keretrl egy msolatot az fxp4 felletre:
# ifconfig bridge0 span fxp4

31.5.7.3. Privt felletek


A privt felletek (private interface) csak ms privt felletek fel kldenek tovbb adatot. gy felttel nlkl tudjuk korltozni a forgalmat, s sem Ethernet keretek, sem pedig ARP nem megy keresztl rajtuk. Ha viszont szelektven akarjuk korltozni a forgalmat, akkor helyette hasznljunk tzfalat.

31.5.7.4. Tapads felletek


Ha a hd egyik tagfellett tapadsnak (sticky) adjuk meg, akkor a dinamikusan megtanult cmek bejegyzsei a gyorsttrba kerlsk utn llandsulnak. A tapads bejegyzsek soha nem vlnek el vagy cserldnek le, mg abban az esetben sem, ha utna az adott cmet egy msik felletrl ltjuk. gy a tovbbtsra vonatkoz tblzatot nem kell elre feltltennk, s a hd egyik oldaln megltott kliensek nem kpesek tvndorolni egy msik hlzati szegmensbe. Msik ilyen plda a tapads cmek hasznlatra az lehetne, amikor a hidat VLAN-nal kombinljuk, s gy egy olyan tvlasztt hozunk ltre, ahol az gyfeleink az IP-cmtartomny pocsklsa nlkl zrhatak el egymstl. Tegyk fel, hogy az A-ugyfel a vlan100, s a B-ugyfel a vlan101 felleten csatlakozik. A hd IP-cme 192.168.0.1, amely maga is egy internet fel mutat tvlaszt.
# ifconfig bridge0 addm vlan100 sticky vlan100 addm vlan101 sticky vlan101 # ifconfig bridge0 inet 192.168.0.1/24

Mind a kt kliens a 192.168.0.1 cmet ltja alaprtelmezett tjrknt, s mivel a hd gyorsttra tapads bejegyzseket tartalmaz, a MAC-cmeik meghamistsval nem tudjk elcspni a msikuk forgalmt. A VLAN-ok kzti brminem kommunikcit privt felletek ltrehozsval akadlyozzuk meg (vagy egy tzfallal):
# ifconfig bridge0 private vlan100 private vlan101

Ezzel a megoldssal az gyfeleinket teljesen elszigeteljk egymstl gy, hogy kzben az egsz /24 cmtartomny kln alhlzatok kialaktsa nlkl kioszthat.

31.5.7.5. Cmek korltozsa


Korltozhatak az egy fellet mgl kldeni kpes egyedi MAC-cmek. Amikor ezen a hatron fell rkeznek ismeretlen feladtl csomagok, egszen addig eldobjuk ezeket, amg egy korbban mr regisztrlt bejegyzst a rendszer ki nem trl vagy ki nem vesznk a gyorsttrbl.

903

Fejezet 31. Egyb halad hlzati tmk A kvetkez pldban az vlan100 felleten csatlakoz A-ugyfel szmra korltozzuk le 10-re az Ethernet eszkzk szmt:
# ifconfig bridge0 ifmaxaddr vlan100 10

31.5.7.6. SNMP felgyelet


A hidak s az STP paramterei az alap FreeBSD rendszerben megtallhat SNMP dmonnal felgyelhetek. A hdhoz exportlt felgyeleti informcik (Management Information Base, MIB) megfelelnek az IETF ltal elrt szabvnyoknak, gy akr tetszleges SNMP kliens vagy brmilyen ms felgyeleti szoftver alkalmas az olvassukra. A hidat mkdtet gpen az /etc/snmp.config llomnyban engedlyezzk a begemotSnmpdModulePath."bridge" = "/usr/lib/snmp_bridge.so" sort s indtsuk el a bsnmpd dmont. Itt mg szksg lehet ms belltsok, pldul a kzssgek nevnek (community name) vagy a hozzfrsi listk (access list) mdostsra is. Ezzel kapcsolatban a bsnmpd(1) s az snmp_bridge(3) man oldalakat lapozzuk fel. A kvetkez pldban a Net-SNMP nev szoftver (net-mgmt/net-snmp) fogjuk hasznlni a hd elrsre, de ugyanerre a net-mgmt/bsnmptools port is alkalmas. Az SNMP klienst hasznl gpen egsztsk ki az $HOME/.snmp/snmp.conf llomnyt a hd felgyeleti informciinak importlsval az Net-SNMP rendszerbe:
mibdirs +/usr/share/snmp/mibs mibs +BRIDGE-MIB:RSTP-MIB:BEGEMOT-MIB:BEGEMOT-BRIDGE-MIB

Az IETF BRIDGE-MIB (RFC 4188) hasznlatn keresztl gy tudjuk elindtani egy hd felgyelett:
% snmpwalk -v 2c -c public bridge1.example.com mib-2.dot1dBridge

BRIDGE-MIB::dot1dBaseBridgeAddress.0 = STRING: 66:fb:9b:6e:5c:44 BRIDGE-MIB::dot1dBaseNumPorts.0 = INTEGER: 1 ports BRIDGE-MIB::dot1dStpTimeSinceTopologyChange.0 = Timeticks: (189959) 0:31:39.59 centi-seconds BRIDGE-MIB::dot1dStpTopChanges.0 = Counter32: 2 BRIDGE-MIB::dot1dStpDesignatedRoot.0 = Hex-STRING: 80 00 00 01 02 4B D4 50 ... BRIDGE-MIB::dot1dStpPortState.3 = INTEGER: forwarding(5) BRIDGE-MIB::dot1dStpPortEnable.3 = INTEGER: enabled(1) BRIDGE-MIB::dot1dStpPortPathCost.3 = INTEGER: 200000 BRIDGE-MIB::dot1dStpPortDesignatedRoot.3 = Hex-STRING: 80 00 00 01 02 4B D4 50 BRIDGE-MIB::dot1dStpPortDesignatedCost.3 = INTEGER: 0 BRIDGE-MIB::dot1dStpPortDesignatedBridge.3 = Hex-STRING: 80 00 00 01 02 4B D4 50 BRIDGE-MIB::dot1dStpPortDesignatedPort.3 = Hex-STRING: 03 80 BRIDGE-MIB::dot1dStpPortForwardTransitions.3 = Counter32: 1 RSTP-MIB::dot1dStpVersion.0 = INTEGER: rstp(2)

A pldban ltszik, hogy a dot1dStpTopChanges.0 rtke kett, ami arra utal, hogy az STP hd topolgija ktszer vltozott. A topolgia vltozsa pedig azt jelenti, hogy a hlzaton bell egy vagy tbb link llapota megvltozott vagy egyszeren meghibsodott s ezrt egy j ft kellett szmolni. A dot1dStpTimeSinceTopologyChange.0 rtk adja meg, hogy ez pontosan mikor is trtnt. Tbb hd felletnek felgyelethez a bels BEGEMOT-BRIDGE-MIB parancsot is hasznlhatjuk:
% snmpwalk -v 2c -c public bridge1.example.com

enterprises.fokus.begemot.begemotBridge

904

Fejezet 31. Egyb halad hlzati tmk

BEGEMOT-BRIDGE-MIB::begemotBridgeBaseName."bridge0" = STRING: bridge0 BEGEMOT-BRIDGE-MIB::begemotBridgeBaseName."bridge2" = STRING: bridge2 BEGEMOT-BRIDGE-MIB::begemotBridgeBaseAddress."bridge0" = STRING: e:ce:3b:5a:9e:13 BEGEMOT-BRIDGE-MIB::begemotBridgeBaseAddress."bridge2" = STRING: 12:5e:4d:74:d:fc BEGEMOT-BRIDGE-MIB::begemotBridgeBaseNumPorts."bridge0" = INTEGER: 1 BEGEMOT-BRIDGE-MIB::begemotBridgeBaseNumPorts."bridge2" = INTEGER: 1 ... BEGEMOT-BRIDGE-MIB::begemotBridgeStpTimeSinceTopologyChange."bridge0" = Timeticks: (116927) 0:19:2 BEGEMOT-BRIDGE-MIB::begemotBridgeStpTimeSinceTopologyChange."bridge2" = Timeticks: (82773) 0:13:47 BEGEMOT-BRIDGE-MIB::begemotBridgeStpTopChanges."bridge0" = Counter32: 1 BEGEMOT-BRIDGE-MIB::begemotBridgeStpTopChanges."bridge2" = Counter32: 1 BEGEMOT-BRIDGE-MIB::begemotBridgeStpDesignatedRoot."bridge0" = Hex-STRING: 80 00 00 40 95 30 5E 31 BEGEMOT-BRIDGE-MIB::begemotBridgeStpDesignatedRoot."bridge2" = Hex-STRING: 80 00 00 50 8B B8 C6 A9

gy tudjuk megadni, hogy a hidat mib-2.dot1dBridge rszfn keresztl akarjuk meggyelni:


% snmpset -v 2c -c private bridge1.example.com

BEGEMOT-BRIDGE-MIB::begemotBridgeDefaultBridgeIf.0 s bridge2

31.6. Linkek sszefzse s hibatrse


rta: Andrew Thompson.

31.6.1. Bevezets
A lagg(4) fellet lehetv teszi, hogy tbb hlzati felletet egyetlen virtulis felletknt fzznk ssze, s ezzel egy hibatr s nagysebessg sszekttetst alaktsunk ki.

31.6.2. Mkdsi mdok


failover Csak az elsdlegesknt kijellt porton keresztl fogad s kld adatokat. Amikor ez az elsdleges port elrhetetlenn vlik, a kvetkez aktv portot fogja hasznlni. Az elsknt felvett fellet vlik automatikusan az elsdleges portt, s az utna felvett sszes tbbit pedig csak hiba esetn hasznljuk. Cisco Fast EtherChannel A Cisco Fast EtherChannel (FEC) technolgia tmogatsa. Ez egy statikus bellts, s nem egyezteti az sszefzst a tbbiekkel vagy a linkek felgyelethez nem vlt kereteket. Ha a switch tmogatja az LACP hasznlatt, akkor inkbb azt vlasszuk. A FEC a kimen forgalmat a fejlcekben szerepl protokollok alapjn szmolt hastkddal prblja sztosztani az aktv portok kztt, s tetszleges aktv porton fogad berkez adatokat. Az emltett hastkdban egy Ethernetes forrs- s clcm szerepel, valamint ha elrhet, akkor egy VLAN cmke, illetve az IPv4/IPv6 forrss clcm.

905

Fejezet 31. Egyb halad hlzati tmk LACP Az IEEE 802.3ad Link Aggregation Control Protocol (LACP) s a Marker Protcol tmogatsa. Az LACP megprblja egyeztetni a tbbi gppel az sszefzhet linkeket egy vagy tbb csoportban (Link Aggregated Group, LAG). Mindegyik ilyen csoportban ugyanolyan sebessg portokat tallunk, full-duplex mkdsi mdban. A forgalmat gy a legnagyobb sszsebessggel rendelkez csoportban megtallhat portok kztt osztja el, ami a legtbb esetben az sszes portot magban foglal csoport. A zikai konnektivits megvltozsa esetn a linkek sszefzdse igen gyorsan alkalmazkodik az j kongurcihoz. Az LACP a kimen forgalmat az aktv portok kztt osztja szt fejlcekben szerepl protokollok alapjn szmolt hastkddal, s brmelyik aktv portrl fogad bejv forgalmat. A hastkdban megtallhat az Ethernetes forrs- s clcm, valamint ha elrhet, akkor a VLAN cmke, illetve az IPv4/IPv6 forrs- s clcmek. Loadbalance Ez a FEC md msik neve. Round-Robin A kimen forgalmat egy krkrs (Round-Robin) elv temezvel osztja szt az aktv portok kztt s tetszleges aktv portrl fogad bejv forgalmat. Ez a mkdsi md megsrti az Ethernet keretek rendezst s csak nagy krltekints mellett alkalmazzuk.

31.6.3. Pldk
Plda 31-1. LACP alap sszefzs egy Cisco switch-csel Ebben a pldban egy FreeBSD-s gp kt fellett kapcsoljuk ssze switch-csel egy egyszer terhels-kiegyenltssel s hibatrssel belltott linken keresztl. Mivel az Ethernet keretek sorrendje dnt fontossg, ezrt a kt lloms kztt egyazon zikai linken zajl forgalom maximlis sebessgt az adott fellet kapacitsa korltozza. A kldsi algoritmus a lehet legtbb informci alapjn prblja egymstl megklnbztetni a forgalmakat s elosztani ezeket a rendelkezsre ll felletek kztt. A Cisco switch-en vegynk fel a FastEthernet0/1 s FastEthernet0/2 interfszeket az 1 csoportba (channel group):
interface FastEthernet0/1 channel-group 1 mode active channel-protocol lacp

!
interface FastEthernet0/2 channel-group 1 mode active channel-protocol lacp

A FreeBSD-s gpen pedig a fxp0 s fxp1 hasznlatval hozzunk ltre a lagg(4) interfszt:
# ifconfig lagg0 create # ifconfig lagg0 up laggproto lacp laggport fxp0 laggport fxp1

Ellenrizzk a fellet llapott:


# ifconfig lagg0

906

Fejezet 31. Egyb halad hlzati tmk A ACTIVE jelzs, vagyis aktv llapot portok az sszefzshez kialaktott csoport azon tagjai, amelyeknl felplt a kapcsolat a tvoli switch fel s kszen llnak a kldsre s fogadsra. Ha az ifcong(8) programtl rszletesebb kimenetet krnk, akkor lthatjuk a csoportok azonostit is:
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=8<VLAN_MTU> ether 00:05:5d:71:8d:b8 media: Ethernet autoselect status: active laggproto lacp laggport: fxp1 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING> laggport: fxp0 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>

A show lacp neighbor paranccsal krdezhetjk le a portok llapott:


switch# show lacp neighbor Flags: S - Device is requesting Slow LACPDUs F - Device is requesting Fast LACPDUs A - Device is in Active mode P - Device is in Passive mode Channel group 1 neighbors Partners information: LACP port Priority Dev ID Age 32768 0005.5d71.8db8 29s 32768 0005.5d71.8db8 29s Oper Key 0x146 0x146 Port Number 0x3 0x4 Port State 0x3D 0x3D

Port Fa0/1 Fa0/2

Flags SA SA

Rszletesebb kijelzst a show lacp neighbor detail paranccsal kaphatunk.

Plda 31-2. A hibatrs belltsa A hibatrsi md arra alkalmas, hogy amikor az elsdleges porton elvesztjk a kapcsolatot, helyette egy msodlagos interfsz hasznlatra tudunk ttrni. Hozzuk ltre s lltsuk be a lagg0 interfszt, ahol az fxp0 legyen a finterfsz, az fxp1 pedig a tartalk interfsz:
# ifconfig lagg0 create # ifconfig lagg0 up laggproto failover laggport fxp0 laggport fxp1

Az gy ltrejv interfsz nagyjbl az albbi lesz, ahol eltrs a MAC-cm s az eszkz neve:
# ifconfig lagg0

lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=8<VLAN_MTU> ether 00:05:5d:71:8d:b8 media: Ethernet autoselect status: active laggproto failover laggport: fxp1 flags=0<> laggport: fxp0 flags=5<MASTER,ACTIVE>

907

Fejezet 31. Egyb halad hlzati tmk A forgalom kezdetben az fxp0 felleten keresztl rkezik s tvozik. Ha az fxp0 felleten valamirt megszakadna a kapcsolat, helyette az fxp1 lesz az aktv link. Ha ksbb helyrell a kapcsolat az elsdleges felleten, akkor jra az lesz aktv link.

Plda 31-3. Hibatrs belltsa vezetkes s vezetk nlkli hlzatok kztt Hordozhat szmtgpek hasznlata esetn ltalban rdemesebb a vezetk nlkli kapcsolatot msodlagos interfszknt belltani, gy csak akkor hasznlja a rendszer, ha vezetkes hlzat nem rhet el. A lagg(4) segtsgvel egyetlen IP-cmmel tudjuk hasznlni mind a kt interfszt: a teljestmny s biztonsgossg miatt elssorban a vezetkes hlzatot hasznljuk, mikzben megmarad a lehetsg az adatok tovbbtsra a vezetk nlkli kapcsolaton keresztl is. A bellts sorn a vezetk nlkli interfsz MAC-cmt gy kell mdostanunk, hogy megegyezzen a lagg(4) cmvel. A lagg(4) interfsz a sajt MAC-cmt az elsdleges interfsztl rkli, amely jelen esetnkben a vezetkes interfsz lesz. A most kvetkez pldban a vezetkes hlzatunk lesz az elsdleges interfsz (bge0), mg a vezetk nlkli (wlan0) a msodlagos. A wlan0 interfszt az iwn0 interfszbl hoztuk ltre, s a vezetkes kapcsolat MAC-cmt lltjuk be neki. Els lpsknt teht le kell krdeznnk a vezetkes interfsz MAC-cmt:
# ifconfig bge0

bge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=19b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4> ether 00:21:70:da:ae:37 inet6 fe80::221:70ff:feda:ae37%bge0 prefixlen 64 scopeid 0x2 nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL> media: Ethernet autoselect (1000baseT <full-duplex>) status: active

A bge0 helyett termszetesen a sajt vezetkes hlzati interfsznket kell megadni, s az ether kezdet sorban is sajt krtynk MAC-cme fog megjelenni. Ezutn mr meg is tudjuk vltoztatni az iwn0 cmt:
# ifconfig iwn0 ether 00:21:70:da:ae:37

Aktivljuk a vezetk nlkli interfszt, de ne lltsunk be neki semmilyen IP-cmet:


# ifconfig wlan0 create wlandev iwn0 ssid wlan_hlzat up

Hozzuk ltre a lagg(4) interfszt a bge0 mint elsdleges interfsz megadsval, valamint a wlan0 legyen a szksg esetn hasznlhat tartalk:
# ifconfig lagg0 create # ifconfig lagg0 up laggproto failover laggport bge0 laggport wlan0

Az gy ltrehozott interfsz nagyjbl gy fog megjelenni, egyedli fontosabb eltrsek a MAC-cmek s az eszkzk nevei:
# ifconfig lagg0

lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=8<VLAN_MTU> ether 00:21:70:da:ae:37 media: Ethernet autoselect status: active laggproto failover laggport: wlan0 flags=0<>

908

Fejezet 31. Egyb halad hlzati tmk


laggport: bge0 flags=5<MASTER,ACTIVE>

Hogy ne kelljen a rendszer minden egyes indtsa utn ezt a mveletet megismtelni, vegyk fel a kvetkez sorokat az /etc/rc.conf llomnyba:
ifconfig_bge0="up" ifconfig_iwn0="ether 00:21:70:da:ae:37" wlans_iwn0="wlan0" ifconfig_wlan0="WPA" cloned_interfaces="lagg0" ifconfig_lagg0="laggproto failover laggport bge0 laggport wlan0 DHCP"

31.7. Lemez nlkli mkds


Frisstette: Jean-Franois Docks. tdolgozta s javtotta: Alex Dupre. A FreeBSD kpes hlzaton keresztl elindulni s helyi lemez nlkl egy NFS szerver ltal megosztott llomnyrendszer csatlakoztatsval mkdni. Ehhez a szabvnyos kongurcis llomnyok mdostsn kvl semmi msra nincs szksgnk. Egy ilyen rendszert viszonylag knny belltani, mivel az sszes hozzval szinte kszen elrhet:

Rgtn adott legalbb kt mdszer, ha a rendszermagot hlzaton keresztl akarjuk betlteni:

PXE: az Intel ltal fejlesztett Preboot eXecution Environment (indts eltti vgrehajtsi krnyezet) nev rendszer a hlzati krtykba vagy alaplapokba ptett ROM segtsgvel teszi lehetv az intelligens rendszerindtst. A pxeboot(8) man oldaln olvashatunk errl rszletesebben. Az Etherboot port (net/etherboot) olyan ROM-ba programozhat kdot kszt, amellyel rendszermagokat tudunk hlzaton keresztl betlteni. Ez a kd egyarnt felhasznlhat egy hlzati rendszerindt PROM begetshez, vagy betlthet a helyi oppy (esetleg merev)lemezrl, illetve MS-DOS rendszer all. Elg sok hlzati krtya tmogatja ezt a mdot.

Egy mintaszkript (/usr/share/examples/diskless/clone_root) is prblja megknnyteni a szerveren a munkalloms rendszerindt llomnyrendszernek ltrehozst s karbantartst. Ezt a szkriptet valsznleg nmileg mdostani kell, de gy is sokat segt az elindulsban. Az /etc knyvtrban tallhat szabvnyos rendszerindtshoz hasznlt llomnyok, amelyekkel a lemez nlkli indulst lehet detektlni s segteni. A lapozs, amennyiben szksges, NFS vagy helyi lemez segtsgvel oldhat meg.

Szmos mdon llthatunk be egy lemez nlkli munkallomst. Rengeteg rszbl tevdik ssze, s ezek legtbbje remekl testreszabhat az ignyeinknek. A tovbbiakban egy teljes rendszer sszelltsnak lehetsges variciit ismertetjk, klns hangslyt fektetnk arra, hogy egyszerek s a hagyomnyos FreeBSD indtszkriptekkel kompatibilisek maradjanak. A bemutatand rendszer a kvetkez jellemzkkel br:

A lemez nlkli munkallomsok megosztott / s /usr llomnyrendszereket hasznlnak.

909

Fejezet 31. Egyb halad hlzati tmk A rendszer indtshoz hasznlt gykr llomnyrendszer a szabvny FreeBSD-s gykr (ez ltalban a szerver), ahol nhny llomnyt fellrtunk a lemez nlkli mkdshez vagy azrt, mert egyszeren az adott munkallomshoz tartozik. A gykr azon rszeit, amelyeket rhatv kvnunk tenni, md(4) alap llomnyrendszerekkel lapoljuk fell. Ilyenkor azonban brmilyen rajtuk ejtett vltoztats a rendszer jraindtsval elveszik.

A rendszermagot vagy az Etherboot vagy a PXE hasznlatval kldessk t s tltsk be, mivel egyes helyzetekben ezekre szksg lesz.
FigyelemA bemutatott rendszer nem biztonsgos. Helyezzk a hlzatunk egy jl vdett rszre, s a tbbi gp ne tekintse megbzhatnak.

A szakaszban szerepl sszes informcit a FreeBSD 5.2.1-RELEASE vltozatval teszteltk.

31.7.1. Httrinformcik
A lemez nlkli munkallomsok belltsa egyszerre adja magt s knnyen is elvthet. Az elkvetett hibkat olykor szmos okbl kifolylag nehz felismerni. Pldul:

A fordtsi idben megadott belltsok mst eredmnyeznek futsi idben. A hibazenetek gyakran titokzatosak vagy esetleg teljesen el is maradnak.

Ezrt ha valamennyire tisztban vagyunk a httrben zajl folyamatokkal, akkor sokkal tbb esllyel lesznk kpesek megoldani a menet kzben felmerl problmkat. A rendszernek a sikeres felkapaszkodshoz tbb mveletet is vgre kell hajtania:

A gpnek szksge van olyan indul paramterekhez, mint pldul az IP-cm, a vgrehajthat llomny neve, a szerver neve, a gykr elrsi tja. Ezeket a DHCP vagy a BOOTP protokollok hasznlatval adhatjuk meg. A DHCP a BOOTP kompatibilis kiterjesztse, ezrt ugyanazokat a portokat s alapvet csomagformtumot alkalmazza. A rendszerket kizrlag BOOTP hasznlatval is bellthatjuk. A bootpd(8) szerver az alap FreeBSD rendszer rsze. A DHCP azonban rengeteg elnnyel rendelkezik a BOOTP protokollal szemben (ttekinthetbb kongurcis llomnyok, a PXE hasznlatnak lehetsge, illetve sok minden ms, ami nem csak a lemez nlkli mkdshez kellhet), ezrt itt alapveten egy DHCP alap kongurcit mutatunk be, de ahol megoldhat, megemltjk a bootpd(8) esetn alkalmas pldkat is. A mintaknt szolgl kongurci az ISC DHCP szoftvercsomagot hasznlja (a tesztszerverre ennek a 3.0.1.r12 verzijt teleptetk fel).

A gpnek egy vagy tbb programot kell a sajt memrijba ttltenie. Erre vagy a TFTP vagy pedig az NFS alkalmas. A TFTP s az NFS kztt sok helyen fordtsi idben tudunk vlasztani. Gyakori hibaforrs a protokollhoz rosszul megadott llomnynevek hasznlata: a TFTP ltalban az sszes llomnyt a szerverrl egyetlen knyvtrbl tlti t, ezrt arra szmt, hogy a neveiket ehhez viszonytva adjuk meg. Az NFS hasznlata sorn azonban abszolt elrsi utakat kell megadnunk. A rendszer indtst lehetv tev kzbens programokat s a rendszermagot valahogy inicializlni kell s elindtani. Ezen a terleten tbb fontos vltozat kapott helyet:

910

Fejezet 31. Egyb halad hlzati tmk

A PXE a pxeboot(8) kdjt fogja betlteni, ez lnyegben a FreeBSD betlt harmadik fokozatnak egy mdostott vltozata. A loader(8) a mkdshez szksges paramtereket a rendszer indtsakor kapja meg, majd a vezrls tadsa eltt ezeket a rendszermag krnyezetben hagyja. Ebben az esetben akr a GENERIC rendszermag is hasznlhat. Az Etherboot kevesebb elksztssel kzvetlenl magt a rendszermagot tlti be. Ehhez azonban egy sajt rendszermagot kell pteni, kln belltsokkal.

A PXE s az Etherboot egyarnt jl hasznlhat. Mivel azonban a rendszermagok ltalban a loader(8) kdjra hagyjk a munka legnagyobb rszt, ezrt ahol lehetsges, a PXE megoldst rdemes alkalmazni. Teht ha az alaplapi BIOS s a hlzati krtya is tmogatja a PXE hasznlatt, akkor vlasszunk inkbb azt.

Vgezetl a gpnek valamilyen mdon hozz kell tudnia frnie az llomnyrendszerekhez. Erre tbbnyire az NFS jhet szba.

A tovbbi rszleket lsd a diskless(8) man oldalon.

31.7.2. Belltsi tmutat


31.7.2.1. Bellts a ISC DHCP hasznlatval
Az ISC DHCP szervere kpes a BOOTP s DHCP krseket is megvlaszolni. Az ISC DHCP 3.0 nem az alaprendszer rsze, ezrt a hasznlathoz elszr teleptennk kell a net/isc-dhcp30-server portot vagy a neki megfelel csomagot. Ahogy felteleptettk, le kell futtatnunk az ISC DHCP kongurcis llomnyt (ezt ltalban /usr/local/etc/dhcpd.conf nven talljuk meg). A most kvetkez, megjegyzsekkel kiegsztett pldban egy margaux nev gp az Etherboot, valamint egy corbieres nev gp PXE hasznlatval akar kapcsoldni:
default-lease-time 600; max-lease-time 7200; authoritative; option domain-name "minta.com"; option domain-name-servers 192.168.4.1; option routers 192.168.4.1; subnet 192.168.4.0 netmask 255.255.255.0 { use-host-decl-names on; option subnet-mask 255.255.255.0; option broadcast-address 192.168.4.255; host margaux { hardware ethernet 01:23:45:67:89:ab; fixed-address margaux.minta.com; next-server 192.168.4.4; filename "/data/misc/kernel.diskless"; option root-path "192.168.4.4:/data/misc/diskless"; } host corbieres { hardware ethernet 00:02:b3:27:62:df;

911

Fejezet 31. Egyb halad hlzati tmk


fixed-address corbieres.minta.com; next-server 192.168.4.4; filename "pxeboot"; option root-path "192.168.4.4:/data/misc/diskless"; } }

Ez a bellts arra utastja a dhcpd dmont, hogy a lemez nlkli gp hlzati neveknt a host deklarciban megadott rtket kldje el. Ezt gyis meg lehet csinlni, hogy felvessznk egy option host-name margaux rszt a host deklarcik kz. A next-server direktva a betlt vagy a rendszermag betltsrt felels TFTP vagy NFS szervert jelli ki (alaprtelmezs szerint ez megegyezik a DHCP szerverrel). A filename direktva azt az llomnyt adja meg, amelyet az Etherboot vagy a PXE a kvetkez vgrehajtsi lpsben betlt. Ezt a kivlasztott tviteli mdnak megfelelen kell megadni. Az Etherboot lefordthat az NFS vagy a TFTP hasznlatval is. A FreeBSD port alapbl az NFS tmogatst tartalmazza. A PXE a TFTP protokollt hasznlja, ezrt itt relatv llomnyneveket adunk meg (ez persze a TFTP szerver belltsaitl fgg, de ltalban ez a jellemz). St, a PXE a pxeboot llomnyt tlti be, nem is a rendszermagot. Lteznek tovbbi rdekes lehetsgek is, mint pldul a pxeboot llomny betltse a FreeBSD CD-jn tallhat /boot knyvtrbl (mivel a pxeboot(8) a GENERIC rendszermagot kpes betlteni, ezrt a PXE hasznlatval akr egy tvoli CD-meghajtrl is indthatjuk a rendszert). A root-path opci a rendszer indtshoz hasznlt gykr llomnyrendszert nevezi meg, amelyet tbbnyire az NFS jellsi mdszere szerint kell megadni. A PXE hasznlata sorn el lehet hagyni a gp IP-cmt egszen addig, amg nem engedlyezzk a rendszermagban a BOOTP belltst. Az NFS szerver ekkor megegyzik a TFTP szerverrel.

31.7.2.2. Bellts a BOOTP hasznlatval


Itt a bootpd (egyetlen kliensre korltozott) belltst lthatjuk. Ezt az /etc/bootptab llomnyba tegyk. Ne feledjk, hogy a BOOTP hasznlathoz az Etherboot portot a NO_DHCP_SUPPORT belltssal kell fordtanunk, mikzben a PXE esetben kell a DHCP. Egybknt a bootpd egyedli nyilvnval elnye csupn annyi, hogy az alaprendszer rsze.
.def100:\ :hn:ht=1:sa=192.168.4.4:vm=rfc1048:\ :sm=255.255.255.0:\ :ds=192.168.4.1:\ :gw=192.168.4.1:\ :hd="/tftpboot":\ :bf="/kernel.diskless":\ :rp="192.168.4.4:/data/misc/diskless": margaux:ha=0123456789ab:tc=.def100

912

Fejezet 31. Egyb halad hlzati tmk

31.7.2.3. A rendszer elksztse az Etherboot szmra


Az Etherboot honlapjn (http://etherboot.sourceforge.net) tallhatunk egy minden rszletre kiterjed dokumentcit (angolul) (http://etherboot.sourceforge.net/doc/html/userman/t1.html), amely elssorban ugyan a Linux tpus rendszerek szmra rdott, de ettl fggetlenl mg hasznos informcikat tartalmaz. A tovbbiakban csak annyit szeretnnk krvonalazni, hogy az Etherboot miknt brhat mkdsre FreeBSD rendszerekkel. Elszr teleptennk kell a net/etherboot csomagot vagy portot. Az Etherboot belltst (vagyis a TFTP hasznlatnak megadst az NFS helyett) az Etherboot forrst tartalmaz knyvtrban tallhat Config llomny megfelel trsval tudjuk megtenni. Itt most oppyrl fogjuk indtani a rendszert. A tbbi mdszerrel (PROM vagy MS-DOS program) kapcsolatban olvassuk el az Etherboot dokumentcijt. A rendszerindt lemez elksztshez tegynk egy lemezt annak a gpnek a meghajtjba, ahov az Etherboot felkerlt. Vltsunk az Etherboot knyvtrn bell az src alknyvtrba s gpeljk be:
# gmake bin32/eszkztpus.fd0

Az eszkztpus a lemez nlkli munkalloms Ethernet krtyjtl fgg. Az ugyanebben a knyvtrban tallhat NIC llomnybl tudjuk kiolvasni, hogy az adott krtyhoz melyik eszkztpus tartozik.

31.7.2.4. A rendszer indtsa PXE hasznlatval


Alaprtelmezs szerint a pxeboot(8) betlt a rendszermagot NFS-en keresztl tlti be. Ha az /etc/make.conf llomnyban a LOADER_TFTP_SUPPORT belltst adjuk meg, akkor TFTP tmogatssal is lefordthat. Ezzel kapcsolatban a /usr/share/examples/etc/make.conf llomnyban tallhat megjegyzseket rdemes elolvasnunk. A make.conf llomnyban mg tovbbi kt msik hasznos opcit is tallhatunk a soros vonali konzollal zemel lemez nlkli gpek szmra: az egyik a BOOT_PXELDR_PROBE_KEYBOARD, a msik pedig a BOOT_PXELDR_ALWAYS_SERIAL. A gp indtsakor gy tudjuk bezemelni a PXE hasznlatt, ha a BIOS belltsai kztt a Boot from network opcit vlasztjuk ki, vagy a gp bekapcsolsa utn lenyomjuk hozz a megfelel funkcibillentyt.

31.7.2.5. A TFTP s NFS szerverek belltsa


Ha a PXE vagy az Etherboot a TFTP protokollt hasznlja, akkor az llomnyszerveren a tftpd dmont kell elindtani: 1. 2. Ksztsnk egy knyvtrat, ahonnan majd a tftpd kldi az llomnyokat, pldul legyen ez a /tftpboot. Vegyk fel a kvetkez sort az /etc/inetd.conf llomnyunkba:
tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /tftpboot Megjegyzs: A tapasztalat szerint egyes PXE verzik a TFTP TCP alap vltozatt hasznljk. Ebben az esetben vegynk fel mg egy msodik sort is, ahol a dgram udp rszt stream tcp-re cserljk.

913

Fejezet 31. Egyb halad hlzati tmk 3. Mondjuk meg az inetd dmonnak, hogy olvassa jra a kongurcis llomnyt. Az albbi parancs megfelel mkdshez Az inetd_enable="YES" sornak szerepelnie kell az /etc/rc.conf llomnyban:
# /etc/rc.d/inetd restart

A tftpboot knyvtrat brhova rakhatjuk a szerveren. Viszont az inetd.conf s dhcpd.conf llomnyokban ezt ne felejtsk fel megadni. Minden esetben engedlyeznnk kell az NFS hasznlatt s vele egytt exportlni az NFS szerverrl elrni kvnt llomnyrendszereket. 1. Az /etc/rc.conf llomnyba tegyk bele a kvetkezt:
nfs_server_enable="YES"

2.

Az /etc/exports llomnyban a lemez nlkli rendszereknek sznt gykrknyvtrat tegyk elrhetv (a pldban rjuk t a ktet csatlakozsi pontjt s a margaux corbieres helyre lltsuk be a sajt lemez nlkli munkallomsaink neveit:
/data/misc -alldirs -ro margaux corbieres

3.

Krjk meg a mountd dmont, hogy olvassa jra a kongurcis llomnyt. Elfordulhat azonban, hogy ehhez elszr az NFS szolgltatst kell engedlyezni az /etc/rc.conf llomnybl s jraindtani a gpet.
# /etc/rc.d/mountd restart

31.7.2.6. Lemez nlkli rendszermag fordtsa


Ha az Etherboot hasznlata mellett dntnk, akkor a lemez nlkli kliensek szmra a rendszermagot a kvetkez belltsok hasznlatval kell jrafordtani (a megszokottak mellett):
options options BOOTP BOOTP_NFSROOT

# BOOTP-n keresztl krnk IP-cmet s hlzati nevet # a BOOTP-tl kapott informcik alapjn csatoljuk a gykeret NFS-en ke

Ezek mellett valsznleg szksgnk lesz a BOOTP_NFSV3, BOOT_COMPAT s BOOTP_WIRED_TO belltsok megadsra is (lsd a NOTES llomnyt). A belltsok nevei rgrl szrmaznak s nmileg flrevezetek lehetnek, mivel valjban semmit sem vltoztatnak a rendszermagban lev DHCP vagy a BOOTP rutinok hasznlatban (egybknt meg lehet adni vagy az egyik vagy a msik protokoll kizrlgos hasznlatt is). Fordtsuk le a rendszermagot (lsd 8 fejezet), s msoljuk a dhcpd.conf llomnyban megadott helyre.
Megjegyzs: Amikor a PXE protokollt hasznljuk, a rendszermagot nem fontos az imnt felsorolt paramterekkel fordtanunk (habr ajnlatos). Az engedlyezskkel tbb DHCP krs keletkezik a rendszermag elindulsa kzben, ezrt kisebb a kockzata annak, hogy a pxeboot(8) ltal bizonyos esetekben megszerzett s az j rtkek kztt valamilyen ellentmonds jn ltre. A hasznlatuk egyik elnye, hogy gy mellkhatsknt a hlzati nevnket is megkapjuk. Ellenkez esetben erre is tallnunk kellene valamilyen mdot, pldul fenntartani egy-egy rc.conf llomnyt minden kliensen.

Megjegyzs: Az Etherboot csak akkor lesz kpes betlteni a rendszermagot, ha device hinteket is beptnk. Ezt a kvetkez belltssal tudjuk megoldani (errl bvebben lsd a NOTES llomny megjegyzseit):

914

Fejezet 31. Egyb halad hlzati tmk


hints "GENERIC.hints"

31.7.2.7. A rendszerindt llomnyrendszer elksztse


A dhcpd.conf llomny root-path belltsnak megfelelen hozzunk ltre a rendszer indtsra alkalmas gykr llomnyrendszert. 31.7.2.7.1. Az llomnyrendszer feltltse a make world paranccsal Ezzel a mdszerrel a DESTDIR knyvtrba pillanatok alatt telepteni tudunk egy teljes szz rendszert (s nem csak a rendszerindt llomnyrendszert). Ehhez mindssze csak annyit kell tenni, hogy lefuttatjuk a kvetkez szkriptet:
#!/bin/sh export DESTDIR=/data/misc/diskless mkdir -p ${DESTDIR} cd /usr/src; make buildworld && make buildkernel cd /usr/src/etc; make distribution

Miutn vgzett, mr csak a DESTDIR knyvtrban tallhat /etc/rc.conf s /etc/fstab llomnyokat kell az ignyeinkhez igaztani.

31.7.2.8. A lapozterlet belltsa


Amennyiben szksges, a szerveren tallhat lapozllomnyt NFS-en keresztl el tudjuk rni. 31.7.2.8.1. Lapozs NFS-sel A rendszermag maga nem tmogatja az NFS alap lapozs engedlyezst a rendszer indtsakor. A lapozllomnyt ezrt a rendszerindt szkripteken keresztl aktivljuk, amelyekben csatlakoztatunk egy rhat llomnyrendszert, ahol ltrehozzuk s engedlyezzk a lapozllomnyt. Tetszleges mret lapozllomnyt pldul gy tudunk kszteni:
# dd if=/dev/zero of=/a/lapozllomny/helye bs=1k count=1 oseek=100000

Az engedlyezshez pedig a kvetkez sort kell felvenni az rc.conf llomnyba:


swapfile=/a/lapozllomny/helye

31.7.2.9. Egyb problmk


31.7.2.9.1. rsvdett /usr hasznlata Ha a lemez nlkli munkallomson X szervert akarunk futtatni, akkor az XDM kongurcis llomnyait kicsit mdostanunk kell, mert alaprtelmezs szerint a /usr knyvtrban hozza ltre a naplkat.

915

Fejezet 31. Egyb halad hlzati tmk 31.7.2.9.2. Nem FreeBSD-s szerver hasznlata Amikor a rendszer indtshoz hasznlt llomnyrendszert nem egy FreeBSD alap szmtgpen troljuk, akkor elszr ezt egy FreeBSD-s gpen kell elkszteni, majd a tar vagy cpio segtsgvel tmsolni a megfelel helyre. Ilyen helyzetekben gyakran gondok addhatnak olyan specilis llomnyokkal, mint pldul amelyek a /dev knyvtrban tallhatak, mivel a f- s aleszkzazonostk trolsra sznt mret klnbzhet. Ezt gy oldhatjuk meg, ha exportlunk egy knyvtrat a nem FreeBSD alap szerveren, ezt csatlakoztatjuk a FreeBSD-s gpen, majd a devfs(5) segtsgvel a eszkzlerkat a felhasznl szmra szrevtlen mdon foglaljuk le.

31.8. ISDN
Az ISDN technolgiai s hardveres htterrl sokat megtudhatunk Dan Kegel ISDN-rl szl oldaln (angolul) (http://www.alumni.caltech.edu/~dank/isdn/). Az ISDN hasznlatt rviden gy foglalhatnnk ssze:

Ha Eurpban lnk, akkor minden bizonnyal az ISDN krtykkal foglalkoz szakaszt rdemes elolvasnunk. Ha elssorban betrcszs ISDN-nel szeretnnk csatlakozni az internetre egy internet-szolgltatn keresztl, akkor a terminl adaptereket trgyal szakaszt nzzk meg. A szolgltatk vltsakor ezzel jr a legtbb rugalmassg s a legkevesebb problma. Ha kt helyi hlzat sszektsre hasznljuk, vagy az internethez egy brelt ISDN vonalon keresztl kapcsoldunk, akkor egy nll tvlaszt vagy hlzati hd belltsban rdemes gondolkodnunk.

A kltsg fontos szerepet jtszik az elfogadhat megolds kivlasztsban. A most kvetkez lehetsgeket a legolcsbbtl indulva kezdjk el felsorolni egszen a legdrgbbig.

31.8.1. ISDN krtyk


Ksztette: Hellmuth Michaelis. A FreeBSD-ben megtallhat ISDN implementci csak a DSS1/Q.931 (ms nven Euro-ISDN) szabvny szerint gyrtott passzv krtykat tmogatja. Ismer azonban egyes olyan aktv krtykat is, amelyeknl a rmware tovbbi ms jelkezelsi protokollokat is tmogat. Ilyen tbbek kzt az elsknt tmogatott Primary Rate (PRI) ISDN krtya. Az isdn4bsd szoftver segtsgvel kapcsoldni tudunk ms ISDN tvlasztkhoz IP-n keresztl a nyers HDLC felett, vagy szinkron PPP hasznlatval. Mindezeket a rendszermagban tallhat PPP-re vagy az isppp-re ptkezik. FreeBSD alatt egyre tbb PC-s ISDN krtyhoz kszl el a tmogats, s a visszajelzsek azt mutatjk, hogy Eurpban s a vilg minden rszn sikerrel hasznljk ezeket. A passzv ISDN krtyk kzl is leginkbb az Inneon (korbban Siemens) gyrtmny ISAC/HSCX/IPAC ISDN chipkszletek tmogatottak, de a Cologne chippel rendelkez (de csak ISA buszos) ISDN krtyk, a Winbond W6692 chipes PCI buszos krtyk, s a Tiger300/320/ISAC chipkszletek egyes vltozatai, valamint nhny gyrtfgg chipkszlettel rendelkez krtya, mint pldul az AVM Fritz!Card PCI V.1.0 s az AVM Fritz!Card PnP is remekl mkdik.

916

Fejezet 31. Egyb halad hlzati tmk Jelenleg a kvetkez aktv ISDN krtykat tmogatja a rendszer: AVM B1 (ISA s PCI) BRI krtyk s az AVM T1 PCI PRI krtyk. Az isdn4bsd dokumentcijt a rendszernkn bell a /usr/share/examples/isdn/ knyvtrban tallhatjuk meg, vagy kzvetlenl az isdn4bsd honlapjn (http://www.freebsd-support.de/i4b/), ahol tbb hivatkozst is tallunk tippekre, hibajegyzkekre s bsgesebb dokumentcira, pldul az isdn4bsd sajt kziknyvre (http://people.FreeBSD.org/~hm/). Ha szeretnnk egy msik ISDN protokoll tmogatsnak kifejlesztsben rsztvenni, vagy egy jelenleg mg nem tmogatott ISDN krtyt hasznlhatv tenni, esetleg valamilyen ms mdon segteni az isdn4bsd gyt, vegyk fel a kapcsolatot Hellmuth Michaelis <hm@FreeBSD.org> fejlesztvel. Az isdn4bsd teleptsvel, belltsval s hibaelhrtsval kapcsolatos krdseinket a freebsd-isdn (http://lists.FreeBSD.org/mailman/listinfo/freebsd-isdn) levelezsi listn tehetjk fel.

31.8.2. ISDN terminl adapterek


Az ISDN szmra olyanok a terminl adapterek, mint a hagyomnyos telefonvonalak szmra a modemek. A legtbb terminl adapter a Hayes-modemek szabvnyos AT parancskszlett hasznlja, s knnyen be lehet iktatni egy modem helyett. A terminl adapterek alapveten ugyangy mkdnek, mint a modemek, kivve, hogy egy tlagos modemnl jval nagyobb adattviteli sebessgre kpesek. Ezrt a PPP kapcsolatunkat pontosan ugyangy kell belltani, mint a modemek esetben. Ne felejtsk a soros pont sebessgt a maximlis rtkre lltani. A terminl adapterek hasznlatnak egyik legnagyobb elnye, hogy segtsgkkel dinamikus PPP-n keresztl tudunk az internet-szolgltatnkhoz kapcsoldni. Mivel az IP-cmtartomny egyre inkbb szksebb, a legtbb szolgltat nem szvesen oszt ki brkinek is statikus IP-cmet. A legtbb nll tvlaszt azonban nem kpes alkalmazkodni az IP-cmek dinamikus kiosztshoz. A terminl adapter az elrhet lehetsgeket s a kapcsolat stabilitst tekintve teljesen a PPP dmontl fgg. Emiatt egy FreeBSD-s gpet knny modemrl tlltani az ISDN hasznlatra, ha mr egyszer belltottuk a PPP dmont. Ezzel egytt azonban a PPP hasznlata sorn tapasztalt problmk ugyangy ismt felmerlnek. Ha a maximlis stabilitsra van szksgnk, akkor a rendszermag PPP belltst hasznljuk, s ne a felhasznli PPP megoldst. A FreeBSD hivatalosan az albbi terminl adaptereket ismeri:

Motorola BitSurfer s Bitsurfer Pro Adtran

Valsznleg a tbbi terminl adapterrel is kpes egyttmkdni, mivel a terminl adapterek gyrti ltalban igyekeznek a termkeiket a szabvnyos modemes AT parancskszletvel kompatibiliss tenni. Az igazi problma a kls terminl adapterekkel addik, mivel, akrcsak a modemek esetben, egy nagyon j soros krtyt ignyelnek. A soros eszkzk mkdsnek rszleteit valamint az aszinkron s szinkron soros portok kzti klnbsgeket a FreeBSD soros hardverekrl (http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/serial-uart/index.html) szl cikkben olvashatjuk.

917

Fejezet 31. Egyb halad hlzati tmk A terminl adaptereken keresztl elrhet sebessget a PC-kben tallhat szabvnyos (aszinkron) soros port 115,2 Kb/mp-re korltozza, mg 128 Kb/mp-es adattvitel kapcsolatok esetben is. Az ISDN ltal nyjtott 128 Kb/mp kihasznlshoz a terminl adaptert egy szinkron soros krtyval kell sszektnnk. Ne higyjk, hogy egy bels terminl adapter megvsrlsval megmeneklnk ettl a gondtl. A bels terminl adapterekbe egyszeren csak egy sima szabvnyos PC-s soros portot ptettek bele. Mindssze egy soros kbelt s egy konnektort takartunk meg velk. A terminl adapterhez csatlakoz szinkron krtyk legalbb olyan gyorsak, mint egy nll tvlaszt, s egy egyszer 386-osra pl FreeBSD rendszerrel taln mg rugalmasabban is kezelhetek. A terminl adapter plusz szinkron krtya kontra nll tvlaszt krdse mr hitkrdss fajult, amirl igen sokat vitatkoztak szerte a levelezsi listkon. A teljes okfejts elolvasshoz az archvum (http://www.FreeBSD.org/search/index.html) bngszst javasoljuk.

31.8.3. nll ISDN hlzati hidak s tvlasztk


Az ISDN hidak vagy tvlasztk nem egszen a FreeBSD vagy opercis rendszerek terlethez tartoznak. Az tvlaszts s a hlzatok hidak alapjainak a szmtgpes hlzatokrl szl szakirodalomban jrhatunk utna. Ebben a szakaszban a hlzati hd s az tvlaszt kifejezseket egyms szinonmjaknt fogjuk hasznlni. Ahogy az olcsbb ISDN tvlasztk s hidak rai egyre jobban cskkennek, ezrt egyre inkbb npszerbb vlnak. Az ISDN tvlaszt egy apr doboz, amelyet kzvetlenl a helyi Ethernet hlzatunkra tudunk csatlakoztatni, s a tbbi tvlaszthoz vagy hdhoz kapcsoldik. A benne tallhat szoftverrel kpes kommuniklni a PPP vagy ms egyb npszer protokollokon keresztl. Az tvlaszt egy szabvnyos terminl adapternl sokkal nagyobb adattvitelt tesz lehetv, mivel a teljes szinkron ISDN kapcsolatot kpes kihasznlni. Az ISDN tvlasztkkal s hidakkal kapcsolatban az egyik legnagyobb problmt a klnbz gyrtk kzti eltrsek jelenthetik. Ha egy szolgltathoz akarunk ezen a mdon csatlakozni, akkor rdemes elzetesen egyeztetni az ignyeinket velk. Ha kt helyi hlzati szegmenst akarunk sszekapcsolni, mint pldul az otthoni s az irodai hlzatot, akkor ez a megolds jr a legkevesebb karbantartsi kltsggel. Mivel ekkor mi magunk vsroljuk a kapcsolat mind a kt oldalra a felszerelst, biztosak lehetnk benne, hogy az gy ltrehozott sszektetts mkdni fog. Pldul, ha egy otthon vagy a vllalat egy kjnl lev gpet akarjuk sszektni az igazgatsg hlzatval, akkor a kvetkez felllst rdemes kvetnnk: Plda 31-4. Egy otthoni vagy egy kbeli hlzat A hlzat busz topolgij s 10 Base 2 Ethernetet hasznl (thinnet). Ha szksges, akkor az tvlasztt egy AUI/10BT ad-vevvel csatlakoztassuk a hlzati kbelre.

918

Fejezet 31. Egyb halad hlzati tmk

tvlaszt ISDN BRI vonal FreeBSD

Az internet

Windows 95

Sun munkalloms

Ha az otthoni vagy kbeli szmtgp az egyedli, akkor egy keresztkts sodrott rpr kbellel akr kzvetlenl is csatlakozhatunk az tvlaszthoz.

Plda 31-5. Az igazgatsgi iroda vagy egy msik helyi hlzat A hlzat csillag topolgij, s 10 Base T Ethernet kbelezs (sodrott rpr).

Eloszt

tvlaszt ISDN BRI vonal FreeBSD

Az internet
Sun munkalloms

Novell szerver

Windows 95

A legtbb tvlaszt/hd elnye, hogy egyszerre 2 egymstl fggetlen PPP kapcsolatot tudunk felpteni velk 2 egymstl fggetlen gppel. Ezt a legtbb terminl adapter nem tmogatja, kivve azok a (ltalban drga) tpusok, amelyek kt soros porttal rendelkeznek. Ezt ne tvesszk ssze a csatornk nyalbolsval, az MPP-vel s a tbbivel. Ez nagyon hasznos lehet pldul olyan esetekben, amikor van egy dediklt ISDN kapcsolatunk az irodban, amelyet ugyan szeretnnk megcsapolni, de nem szeretnnk a msik ISDN vonalat is elrabolni. Az irodban lev A tvlaszt kpes a dediklt B csatornj kapcsolaton (64 Kb/mp) keresztl elrni az internetet, mikzben a msik B csatornt

919

Fejezet 31. Egyb halad hlzati tmk ettl fggetlen adatkapcsolatra hasznlja. A msodik B csatorna gy hasznlhat betrcszsra, kitrcszsra vagy a msik B csatornval egytt dinamikus nyalbolsra (MPP stb.) a nagyobb svszlessg elrse rdekben. Az Ethernetes hd nem IP alap forgalmat is kpes tovbbtani, ezrt rajta keresztl akr IPX vagy SPX s ms egyb protokollokat is hasznlni tudunk.

31.9. Hlzati cmfordts


rta: Chern Lee.

31.9.1. ttekints
A FreeBSD hlzati cmfordtsrt felels dmonprogramja, a natd(8) (Network Address Translation daemon), a berkez nyers IP csomagokat dolgozza fel, s a helyi gpek forrscmt kicserlve visszailleszti ezeket a csomagokat a kimen folyamba. A natd(8) mindezt gy teszi a forrs IP-cmekkel s portokkal, hogy amikor az adat visszarkezik, akkor kpes lesz megmondani a csomag eredeti kldjt s visszakldeni neki a vlaszt. A hlzati cmfordtst ltalban az internet-kapcsolatok megosztsnl alkalmazzuk.

31.9.2. A hlzat felptse


Az IPv4 vilgban egyre jobban fogy IP-cmek s az egyre nvekv szm, nagysebessgre vgy, pldul kbeles vagy DSL-es fogyasztk miatt az igny is egyre nagyobb az internet-kapcsolatok megosztsra. Ha tbb szmtgppel szeretnnk egyetlen kapcsolaton s egy IP-cmen keresztl kapcsoldni az internetre, akkor ehhez a natd(8) tkletes vlaszts. Az esetek tbbsgben a felhasznlk egy kbeles vagy DSL vonalra csatlakoznak, melyhez egyetlen IP-cm tartozik, s ezen a gpen keresztl szeretnk elrni az internetet a helyi hlzaton lev tbbi gprl. Ezt gy tudjuk elrni, ha az internethez kapcsold FreeBSD-s gpet tjrnak lltjuk be. Ebben az tjrban legalbb kt hlzati felletnek kell lteznie az egyikkel az internetes tvlaszthoz, a msikkal pedig a helyi hlzathoz kapcsoldik. A bels hlzaton lev gpek egy hub vagy egy switch segtsgvel csatlakoznak egymshoz.
Megjegyzs: Tbb mdon is el tudjuk rni a bels hlzatrl az internetet egy FreeBSD-s tjrn keresztl. Ebben a pldban most csak olyan tjrkkal foglalkozunk, amelyekben legalbb kt hlzati krtya tallhat.

920

Fejezet 31. Egyb halad hlzati tmk

Eloszt

tvlaszt

A kliens

B kliens (FreeBSD tjr)

Az internet

Egy ehhez hasonl bellts igen gyakori a megosztott internet-kapcsolatok esetben. A helyi hlzat egyik gpe csatlakozik az internetre. A tbbi gp ezen az tjrn keresztl ri el az internetet.

31.9.3. A rendszerbetlt belltsa


A natd(8) mkdshez szksges cmfordtsi tmogatst a GENERIC tpus rendszermagok nem tartalmazzk, viszont a /boot/loader.conf megfelel paramterezsvel a rendszer betltse kzben ezt hozz tudjuk adni:
ipfw_load="YES" ipdivert_load="YES"

Valamint a net.inet.ip.fw.default_to_accept vltozt lltsuk az 1 rtkre.


net.inet.ip.fw.default_to_accept="1"

Megjegyzs: Ez utbbi belltst leginkbb a tzfal s a cmfordtst vgz tjr prblgatsakor rdemes alkalmazni. Ilyenkor ugyanis az ipfw(8) alaprtelmezett mdon az allow ip from any to any (minden forgalom engedlyezett) szablyt kveti, s nem pedig a kevsb bartsgos deny ip from any to any (minden forgalom tiltott) szablyt. A rendszer jraindtsakor gy valamivel nehezebb lesz kizrnunk magunkat a szablyok megadsa sorn.

31.9.4. A rendszermag belltsa


Amikor viszont nincs lehetsgnk modulok hasznlatra, vagy szeretnnk minden ignyelt funkcit bepteni a rendszermagba, akkor a rendszermag belltsait tartalmaz llomnyban a kvetkezket kell megadnunk:
options IPFIREWALL options IPDIVERT

A fentiek mellett mg ezeket a lehetsgeket tudjuk vlasztani:


options IPFIREWALL_DEFAULT_TO_ACCEPT options IPFIREWALL_VERBOSE

921

Fejezet 31. Egyb halad hlzati tmk

31.9.5. A rendszerindts belltsa


A tzfal s a hlzati cmfordts beindtshoz a kvetkezknek kell az /etc/rc.conf llomnyban lennie:
gateway_enable="YES" firewall_enable="YES" firewall_type="OPEN" natd_enable="YES" natd_interface="fxp0" natd_flags=""

A gpet tjrnak lltja be. Hatsa megegyezik a sysctl net.inet.ip.forwarding=1 parancs kiadsval. A rendszer indtsakor engedlyezi az /etc/rc.firewall llomnyban szerepl tzfalszablyok hasznlatt. Egy olyan elre denilt tzfalat ad meg, amely alapbl mindent beenged. Az /etc/rc.firewall llomnyban tallhatjuk a tbbi tpust. Megadja, hogy melyik felleten tovbbtsunk csomagokat az internet fel (ez a fellet csatlakozik az internetre). Itt szerepel minden tovbbi paramter, amelyet mg az indtskor t kell adnunk a natd(8) dmonnak.

Amikor megadjuk ezeket a belltsokat az /etc/rc.conf llomnyban, pontosan ugyanaz trtnik, mintha a natd -interface fxp0 parancsot adtunk volna ki a rendszer indtsakor. Ez teht manulisan is elindthat.
Megjegyzs: Ha tlsgosan sok paramtert akarunk egyszerre belltani natd(8) hasznlathoz, akkor akr egy kln kongurcis llomnyt is megadhatunk. Ebben az esetben a kongurcis llomnyt a kvetkez mdon kell megjellni az /etc/rc.conf llomnyban:
natd_flags="-f /etc/natd.conf"

Ekkor a /etc/natd.conf llomny fogja tartalmazni a belltsokat, soronknt egyet. Pldul a kvetkez szakaszban ez lesz a tartalma:
redirect_port tcp 192.168.0.2:6667 6667 redirect_port tcp 192.168.0.3:80 80

A kongurcis llomnyrl s az -f opci hasznlatval kapcsolatban olvassuk el a natd(8) man oldalt.

A helyi hlzaton mindegyik gpnek az RFC 1918 (ftp://ftp.isi.edu/in-notes/rfc1918.txt) ltal megadott privt IP-cmterekbl szrmaz cmet kell hasznlnia, s az alaprtelmezett tjrnak mindenhol a natd dmont futtat gp IP-cmt kell megadni. Pldul a bels hlzaton tallhat A s B kliensek IP-cmei rendre 192.168.0.2 s 192.168.0.3, mg a natd(8) dmont futtat gp bels cme 192.168.0.1. Az A s a B kliens alaprtelmezett tjrjt a natd gpre, vagyis a 192.168.0.1 cmre kell belltanunk. A natd gp kls, avagy internetes fellete semmilyen tovbbi mdostst nem ignyel a natd(8) mkdshez.

31.9.6. A portok tirnytsa


A natd(8) alkalmazsnak htrnya, hogy a bels hlzatra csatlakoz kliensek az internetrl nem rhetek el. Teht a helyi hlzat kliensei kpesek elrni a klvilgot, de az visszafel mr nem igaz. Ez akkor jelent igazbl

922

Fejezet 31. Egyb halad hlzati tmk problmt, ha az egyik bels kliensen szolgltatsokat akarunk futtatni. A problma egyik egyszer megoldsa, ha a natd hasznlatval az internet fell egyszeren tirnytunk bizonyos portokat a megfelel bels kliensre. Pldul tegyk fel, hogy az A kliens egy IRC szervert, mg a B kliens egy webszervert futtat. Ez akkor fog mkdni, ha a szolgltatsokhoz tartoz 6667 (IRC) s 80 (web) portokat tirnytjuk a hozzjuk tartoz gpek fel. Ehhez a natd(8) dmonnak a -redirect_port paramtert kell tadni. A pontos felrs gy nz ki:
-redirect_port protokoll clIP :clPORT [-clPORT ] [klsIP :]klsPORT [-klsPORT ] [tvoliIP [:tvoliPORT [-tvoliPORT ]]]

A fenti pldban teht ezt kell megadnunk:


-redirect_port tcp 192.168.0.2:6667 6667 -redirect_port tcp 192.168.0.3:80 80

gy az egyes kls tcp portokat tirnytjuk a bels hlzat gpei fel. A -redirect_port paramternek akr egsz porttartomnyokat is megadhatunk. Pldul a tcp 192.168.0.2:2000-3000 2000-3000 megadsval az sszes 2000-tl 3000-ig terjed port csatlakozst lekpezzk az A kliens 2000 s 3000 kzti portjaira. Ezek a belltsok a natd(8) kzvetlen futtatsakor adhatak meg, esetleg az /etc/rc.conf llomnyban az natd_flags="" opci keresztl, vagy egy kln kongurcis llomnyban. A tbbi belltsi lehetsget a natd(8) man oldaln ismerhetjk meg.

31.9.7. A cmek tirnytsa


A cmek tirnytsa abban az esetben hasznos, amikor tbb IP-cm ll rendelkezsnkre, de ezek egy gphez tartoznak. Ilyenkor az natd(8) kpes a bels hlzat egyes gpeihez sajt kls IP-cmet rendelni. A natd(8) a bels hlzat kliensei ltal kldtt csomagokban kicserli a cmket a megfelel kls IP-cmmel, illetve az ezekre a cmekre rkez forgalmat tovbbtja a megfelel bels kliens irnyba. Ezt a megoldst statikus hlzati cmfordtsnak is nevezzk. Pldul a 128.1.1.2 s a 128.1.1.3 IP-cmek a natd dmont futtat tjrhoz tartoznak. A 128.1.1.1 cm hasznlhat a natd alap tjr kls IP-cmeknt, mikzben a 128.1.1.2 s a 128.1.1.3 cmeket a bels hlzaton elrhet A s B kliensek fel kzvettjk. A -redirect_address felrsa teht a kvetkez:
-redirect_address helyiIP publikusIP

helyiIP publikusIP

A helyi hlzaton tallhat kliens sajt IP-cme. A klienshez tartoz megfelel kls IP-cm.

Az imnti pldban a pontos paramterek ezek lesznek:


-redirect_address 192.168.0.2 128.1.1.2 -redirect_address 192.168.0.3 128.1.1.3

A -redirect_port opcihoz hasonlan ez is megadhat az /etc/rc.conf llomnyban az natd_flags="" belltson keresztl vagy egy kln kongurcis llomnyban. A cmek tirnytsval nincs szksge a portok

923

Fejezet 31. Egyb halad hlzati tmk tirnytsra, mivel az adott IP-cmhez tartoz sszes forgalmat tirnytjuk. A natd dmont futtat gpen a kls IP-cmeket aktivlni kell s a kls fellethez kell rendelni. A rc.conf(5) man oldalon jrhatunk utna, hogy mindezt hogyan is tudjuk megcsinlni.

31.10. Prhuzamos vonali IP (PLIP)


A prhuzamos vonali IP (Parallel Line IP, PLIP) a TCP/IP protokoll hasznlatt valstja meg prhuzamos porton keresztl. Olyan gpek szmra lehet hasznos, amelyekben nincs hlzati krtya, vagy esetleg laptopoknl. Ebben a szakaszban a kvetkezket trgyaljuk:

Prhuzamos (laplink) kbel ksztse Kt szmtgp sszekapcsolsa a PLIP segtsgvel

31.10.1. Prhuzamos kbel ksztse


Prhuzamos kbelt a legtbb szmtstechnikai boltban tudunk vsrolni. Ha mgsem tudnnk sehol sem beszerezni, vagy egyszeren tudni szeretnnk, hogyan lehet ilyet kszteni, akkor az albbi tblzatban lthatjuk, hogy miknt tudunk egy htkznapi nyomtatkbelt talaktani a cljainkra. Tblzat 31-1. A prhuzamos kbel hlzati hasznlatra alkalmas bektse A-nv DATA0 -ERROR DATA1 +SLCT DATA2 +PE DATA3 -ACK DATA4 BUSY GND A-vg 2 15 3 13 4 12 5 10 6 11 18-25 B-vg 15 2 13 3 12 4 10 5 11 6 18-25 Lers Adat Adat Adat Vl. imp. Adat Fld Post/Bit 0/0x01 1/0x08 0/0x02 1/0x10 0/0x04 1/0x20 0/0x08 1/0x40 0/0x10 1/0x80 -

31.10.2. A PLIP belltsa


Elszr is szereznnk kell valahonnan egy laplink kbelt. Ha ez megvan, akkor mind a kt gpen ellenrizzk, hogy a rendszermag tartalmazza az lpt(4) meghajtt:
# grep lp /var/run/dmesg.boot

lpt0: <Printer> on ppbus0 lpt0: Interrupt-driven port

924

Fejezet 31. Egyb halad hlzati tmk A prhuzamos portnak megszaktssal vezreltnek kell lennie (interrupt driven), s az /boot/device.hints llomnyban szerepelnie kell nagyjbl a kvetkez soroknak:
hint.ppc.0.at="isa" hint.ppc.0.irq="7"

Ezutn nzzk meg, hogy a rendszermag belltsait tartalmaz llomnyban megjelenik-e a device plip sor, vagy a plip.ko modul betltdtt-e. Akrmelyik is trtnt, a prhuzamos hlzati fellet most mr a rendelkezsnkre ll, s az ifcong(8) paranccsal ezt meg is tudjuk nzni:
# ifconfig plip0

plip0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500

A laplink kbelt csatlakoztassuk mind a kt szmtgphez. Mind a kt a hlzati fellet paramtereit root felhasznlknt hangoljuk be. Pldul, ha az egyikgp nev gpet akarjuk a msikgp nev gphez csatlakoztatni:
egyikgp <-----> msikgp

IP-cm

10.0.0.1

10.0.0.2

Az egyikgp fellett gy lltsuk be:


# ifconfig plip0 10.0.0.1 10.0.0.2

A msikgp fellett gy lltsuk be:


# ifconfig plip0 10.0.0.2 10.0.0.1

Ezt kveten mr egy mkd kapcsolatnak kell felplnie. Az egyb rszletek kapcsn az lp(4) s az lpt(4) man oldalait nzzk t. Ezt a kt gpet vegyk fel az /etc/hosts llomnyba is:
127.0.0.1 10.0.0.1 10.0.0.2
localhost.sajt.tartomny localhost egyikgp.sajt.tartomny egyikgp msikgp.sajt.tartomny

A kapcsolat mkdkpessgrl gy tudunk meggyzdni, ha az egyik gprl megprbljuk pingelni a msikat. Pldul az egyikgp esetben:
# ifconfig plip0

plip0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet 10.0.0.1 --> 10.0.0.2 netmask 0xff000000
# netstat -r

Routing tables Internet: Destination

Gateway

Flags

msikgp egyikgp UH # ping -c 4 msikgp PING msikgp (10.0.0.2): 56 data bytes

Refs 0

Use 0

Netif Expire plip0

64 bytes from 10.0.0.2: icmp_seq=0 ttl=255 time=2.774 ms 64 bytes from 10.0.0.2: icmp_seq=1 ttl=255 time=2.530 ms

925

Fejezet 31. Egyb halad hlzati tmk


64 bytes from 10.0.0.2: icmp_seq=2 ttl=255 time=2.556 ms 64 bytes from 10.0.0.2: icmp_seq=3 ttl=255 time=2.714 ms --- msikgp ping statistics --4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max/stddev = 2.530/2.643/2.774/0.103 ms

31.11. Az IPv6
Eredetileg rta: Aaron Kaplan. tszervezte s kiegsztette: Tom Rhodes. Tovbb bvtette: Brad Davis. Az IPv6 (msik nven az IPng, vagy a az internet kvetkez genercis protokollja, IP next generation) a jl ismert IP protokoll (avagy az IPv4) j vltozata. Hasonlan a jelenleg mkd sszes tbbi BSD rendszerhez, a FreeBSD is tartalmazza a KAME IPv6 referencia implementcit. Ezrt ha ezzel szeretnnk ksrletezni, akkor ehhez a FreeBSD minden eszkz biztost szmunkra. Ez a szakasz az IPv6 belltst s hasznlatt mutatja be. Az 1990-es vek elejn az IPv4-es cmterek rohamos mrtk kimerlst gyeltk meg. Az internet jelenlegi bvlsi teme mellett kt nagyobb aggodalomnak adott okot:

A cmek elfogysa. Napjainkban efell egyre kevesebb a ktsg, mivel az RFC 1918 ltal megfogalmazott privt cmterek (10.0.0.0/8, 172.16.0.0/12, s 192.168.0.0/16), valamint a hlzati cmfordts (Network Address Translation, NAT) hasznlata igen elterjedt. Az tvlasztsi tblzatok mretnek nvekedse. Ez mg manapsg is aggaszt.

Az IPv6 ezeket s mg ms egyb problmkat a kvetkez mdon igyekszik megoldani:

A 128 bites cmtr hasznlata. Ms szval, elmletben sszesen 340 282 366 920 938 463 463 374 607 431 768 211 456 darab cmet kpes kiosztani. Ez azt jelenti, hogy bolygnk minden egyes ngyzetmterre megkzeltleg 6,67 * 10^27 IPv6 tpus cm jut. Az tvlasztk a sajt tblzataikban csak a hlzatok sszevont cmeit troljk el, ezltal egy tlagos tvlasztsi tblzatban tallhat bejegyzsek szma 8192 al cskken.

Az IPv6 emellett mg rengeteg ms elnys lehetsget is knl:


A cmek automatikus belltsa (lsd RFC 2462 (http://www.ietf.org/rfc/rfc2462.txt)) Anycast (brkiklds, vagyis egy a sokbl) Ktelez (mandatory) multicast IPsec (IP szint vdelem) Egyszerstett fejlc Mobil IP IPv6-IPv4 kzti tjrhatsg

Ha mindezekrl tbbet szeretnnk megtudni, akkor erre rdemes tovbblpnnk:

Az IPv6 ttekintse a playground.sun.com (http://playground.sun.com/pub/ipng/html/ipng-main.html) honlapon

926

Fejezet 31. Egyb halad hlzati tmk

KAME.net (http://www.kame.net)

31.11.1. Az IPv6 cmek httere


Az IPv6 cmeknek tbb tpusa ltezik: a unicast (egyesklds), az anycast (brkiklds) s a multicast (tbbesklds). A unicasthez hasznlt cmek jl ismert cmek. Az gy elkldtt csomag pontosan ahhoz a fellethez rkezik meg, amelyhez az adott cm tartozik. Az anycasthez hasznlt cmek felrsukban tkletesen megegyeznek a unicast esetvel, de valjban felletek egy csoportjt cmezik. Az anycastre belltott cmekre kldtt csomagok mindig a(z tvlaszt szerinti) legkzelebb lev fellethez rkeznek meg. Az anycastet az tvlasztk szmra talltk ki. A multicasthez hasznlt cmek felletek egy csoportjt nevezik meg. A multicast cmekre rkez csomagokat a csoport minden egyes tagja megkapja.
Megjegyzs: Az IPv4 esetben az zenetszrsra sznt (ltalban az xxx.xxx.xxx.255 formtum) cmeket az IPv6 esetben multicast cmekkel fejezzk ki.

Tblzat 31-2. Fenntartott IPv6 cmek IPv6 cm


:: ::1 ::00:xx:xx:xx:xx

Az eltag hossza (bitekben) 128 bit 128 bit 96 bit

Lers nem speciklt sajt cm IPv4 begyazsa

Megjegyzs V. a 0.0.0.0 cmmel az IPv4 esetben. V. a 127.0.0.1 cmmel az IPv4 esetben. Az als 32 bit egy IPv4 formtum cm. Ezt IPv4 kompatibilis IPv6 cmnek is nevezik.

::ff:xx:xx:xx:xx

96 bit

IPv4-re lekpzett IPv6 cmekAz als 32 bit egy IPv4 cmet jell. Olyan gpeknl hasznlatos, amelyek nem tmogatjk az IPv6 protokollt. helyi sszekttets helyi cm multicast globlis unicast Az sszes globlis unicast cmet ebbl a tartomnybl osztjuk ki. Az els 3 bit rtke001. V. az IPv4 loopback cmeivel.

fe80:: - feb:: fec0:: - fef:: ff:: 001 (2-es alap)

10 bit 10 bit 8 bit 3 bit

927

Fejezet 31. Egyb halad hlzati tmk

31.11.2. Az IPv6 cmek olvassa


Az IPv6 cmek kanonikus formja gy brzolhat: x:x:x:x:x:x:x:x, ahol mindegyik x egy 16 bites hexadecimlis rtk. Pldul: FEBC:A574:382B:23C1:AA49:4592:4EFE:9982. Gyakran a cmek hossz nullkbl ll sorozatokat tartalmaznak, ezrt mindegyik ilyen sorozatot rvidteni tudjuk a :: jellssel. Rajtuk kvl mg az egyes hexadecimlis csoportokban a bevezet nullk is elhagyhatak. Pldul az fe80::1 cm kanonikus formja: fe80:0000:0000:0000:0000:0000:0000:0001. A harmadik forma szerint az utols 32 bites rszt rjuk fel a megszokott (decimlis) IPv4 stlus pontozssal, ahol teht a . vlasztja el a tagokat. gy pldul a 2002::10.0.0.1 felrs a 2002:0000:0000:0000:0000:0000:0a00:0001 kanonikus (hexadecimlis) brzolsnak feleltethet meg, ami pedig egyszeren 2002::a00:1 alakban is megadhat. Mostanra mr minden bizonnyal a kedves olvas rteni fogja a kvetkezt:
# ifconfig

rl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500 inet 10.0.0.10 netmask 0xffffff00 broadcast 10.0.0.255 inet6 fe80::200:21ff:fe03:8e1%rl0 prefixlen 64 scopeid 0x1 ether 00:00:21:03:08:e1 media: Ethernet autoselect (100baseTX ) status: active

A fe80::200:21ff:fe03:8e1%rl0 cm az automatikusan belltott helyi sszekttets cme. Ez az automatikus bellts rszeknt a MAC-cmbl jtt ltre. Az IPv6 cmek szerkezetrl tovbbi rszleteket az RFC 3513 (http://www.ietf.org/rfc/rfc3513.txt)-ban tallunk.

31.11.3. Kapcsolds
Jelenleg ngy mdon tudunk ms IPv6-os gphez s hlzathoz csatlakozni:

Krjnk a hlzati elrsnkrt felels illetkesektl IPv6 alap hlzatot. A rszletek tekintetben vegyk fel a kapcsolatot az internet-szolgltatnkkal. A SixXS (http://www.sixxs.net) a vilg minden tjn knl vgpontokkal rendelkez tunneleket. Egy 6-bl-4 (RFC 3068 (http://www.ietf.org/rfc/rfc3068.txt)) tpus tunnellel. Ha betrcszs kapcsolatunk van, akkor hasznljuk a net/freenet6 portot.

31.11.4. A nevek feloldsa az IPv6 vilgban


IPv6 alatt rgebben kt tpusa volt a nevek feloldsrt felels rekordoknak. Az IETF az A6 rekordokat idkzben elavultnak nyilvntotta. Ezrt manapsg mr az AAAA rekordok tekinthetek szabvnyosnak. Az AAAA rekordok hasznlata magtl rtetdik. A hlzati nevkhz az albbi mdon tudunk IPv6 cmet rendelni az elsdleges znt ler llomnyban:
SAJTNV

AAAA

SAJTIPv6CM

928

Fejezet 31. Egyb halad hlzati tmk Ha nem rendelkeznk sajt nvfeloldsi znval, akkor erre krjk meg a nvfeloldst vgz szolgltatnkat. A bind jelenlegi vltozatai (8.3 s 9), valamint a dns/djbdns (IPv6 tmogatsra vonatkoz javtssal) tmogatjk az AAAA rekordokat.

31.11.5. Az /etc/rc.conf szksges mdostsai


31.11.5.1. Az IPv6 kliensek belltsai
Ezek a belltsok egy helyi hlzaton lev gpre vonatkoznak, nem pedig egy tvlasztra. Az rtsol(8) az albbi megadsval fogja automatikusan belltani a felleteinket a rendszer indtsakor:
ipv6_enable="YES"

Ha az fxp0 fellethez statikusan akarunk IP-cmet rendelni, pldul a 2001:471:1f11:251:290:27ff:fee0:2093 cmet, akkor ehhez a kvetkezt kell megadni:
ipv6_ifconfig_fxp0="2001:471:1f11:251:290:27ff:fee0:2093"

Az /etc/rc.conf llomnyban az alaprtelmezett tjrt a kvetkez mdon tudjuk a 2001:471:1f11:251::1 cmre belltani:
ipv6_defaultrouter="2001:471:1f11:251::1"

31.11.5.2. Az IPv6 tvlasztk s tjrk belltsa


Itt most a tunnelt biztost szolgltat ltal mutatott irnyt kvetjk, s olyan formra alaktjuk, amely megmarad az jraindts utn is. A rendszer indtsakor az /etc/rc.conf llomnyban valami ilyesmit kell megadni a jrat visszalltshoz: Soroljuk fel a belltand ltalnos tunnel alap felleteket, ilyen lehet pldul a gif0:
gif_interfaces="gif0"

A felletnek lltsunk be egy helyi vgpontot a SAJT_IPv4_CM megadsval, valamint egy tvoli vgpontot a
TVOLI_IPv4_CM megadsval: gifconfig_gif0="SAJT_IPv4_CM TVOLI_IPv4_CM "

Az IPv6 tunnelnk vgpontjhoz kapott cm aktivlshoz az albbit kell mg megadnunk:


ipv6_ifconfig_gif0="SAJT_KAPOTT_IPv6_TUNNEL_VGPONTJNAK_CME "

Ezutn mr csak az alaprtelmezett tvonalat kell belltani az IPv6 szmra. Ez az IPv6 jrat msik oldala:
ipv6_defaultrouter="SAJT_IPv6_TVOLI_TUNNEL_VGPONTJNAK_CME "

929

Fejezet 31. Egyb halad hlzati tmk

31.11.5.3. Az IPv6 tunnel belltsai


Amennyiben a szerver IPv6 alap forgalmat kzvett a hlzatunk s a vilg kztt, az /etc/rc.conf llomnyba a kvetkezt kell felvennnk:
ipv6_gateway_enable="YES"

31.11.6. Az tvlasztk kihirdetse s automatikus kongurcija


Ebben a szakaszban az rtadvd(8) belltsval fogjuk az alaprtelmezett IPv6 tvonalat kihirdetni. Az rtadvd(8) engedlyezshez az albbi sort kell betennnk az /etc/rc.conf llomnyba:
rtadvd_enable="YES"

Emellett mg fontos megadnunk azt a felletet, ahol az IPv6 tvlaszt krelmezst vgezzk. Ha erre a feladatra pldul az fxp0 felletet vlasztjuk, akkor errl az rtadvd(8) gy rtesthet:
rtadvd_interfaces="fxp0"

Most pedig ksztennk kell hozz egy kongurcit is, vagyis az /etc/rtadvd.conf llomnyt. me erre egy plda:
fxp0:\ :addrs#1:addr="2001:471:1f11:246::":prefixlen#64:tc=ether:

Az fxp0 felletet termszetesen cserljk ki a sajtunkkal. Ezutn a 2001:471:1f11:246:: cmre helyre rjuk be a sajt kiosztsunk eltagjt. Egy egsz /64 alhlzat esetn nem is kell tbbet megadni. Minden ms helyezetben az eltag hosszra prefixlen# vonatkoz rtket is be kell mg lltanunk.

31.12. Az Aszinkron adattviteli md (ATM)


Ksztette: Harti Brandt.

31.12.1. A klasszikus IP-cmek belltsa ATM felett (lland)


A klasszikus IP ATM felett (Classical IP over ATM, CLIP) a legegyszerbb mdszer az IP-cmek hasznlatra az Aszinkron adattviteli mddal (Asynchronous Transfer Mode, ATM) egytt. Kapcsolt s lland kapcsolatok (Switched Virtual Channel, SVC s Permanent Virtual Channel, PVC) esetn egyarnt megfelel. Ebben a szakaszban ez utbbival fogunk foglalkozni.

930

Fejezet 31. Egyb halad hlzati tmk

31.12.1.1. A teljesen hlszer kongurcik


A CLIP belltst lland csatornkon pldul gy tudjuk megoldani, ha az sszes gpet kln ezekre a clokra sznt lland csatornkkal sszekapcsoljuk egymssal. Ez az egyszer megolds azonban nagyobb szm gp esetben mr nem elgg hatkony. A kvetkez pldban csupn ngy gpet ktnk hlzatba, melyik mindegyike egy ATM krtyval csatlakozik az ATM hlzatra. Ehhez elsknt tervezzk meg az IP-cmek kiosztst s a gpek kzti ATM kapcsolatokat. A pldban ez az albbiak szerint alakul: Gp
A-gep B-gep C-gep D-gep

IP-cm
192.168.173.1 192.168.173.2 192.168.173.3 192.168.173.4

A teljes hlzat felptshez minden egyes pr kztt egy-egy ATM kapcsolatra lesz szksgnk: Gpek
A-gep - B-gep A-gep - C-gep A-gep - D-gep B-gep - C-gep B-gep - D-gep C-gep - D-gep

VPI.VCI pr 0.100 0.101 0.102 0.103 0.104 0.105

A kapcsolatok egyes vgein szerepl VPI s VCI rtkek termszetesen eltrhetnek, de ezeket mi most az egyszersg kedvrt egyenlnek tekintettk. A kvetkez lpsben minden gpen lltsuk be az ATM fellet:
A-gep# B-gep# C-gep# D-gep#
ifconfig ifconfig ifconfig ifconfig hatm0 hatm0 hatm0 hatm0 192.168.173.1 192.168.173.2 192.168.173.3 192.168.173.4 up up up up

Ha felttelezzk, hogy minden gpen a hatm0 az ATM fellet neve. Most pedig az A-gep-en lltsuk be az lland csatornkat. (Itt most feltesszk, hogy az ATM switch-eken mindezt mr elvgeztk. A switch kziknyvben errl rszletesebb lerst is tallhatunk.)
A-gep# atmconfig natm add 192.168.173.2 hatm0 0 100 llc/snap ubr A-gep# atmconfig natm add 192.168.173.3 hatm0 0 101 llc/snap ubr A-gep# atmconfig natm add 192.168.173.4 hatm0 0 102 llc/snap ubr B-gep# atmconfig natm add 192.168.173.1 hatm0 0 100 llc/snap ubr B-gep# atmconfig natm add 192.168.173.3 hatm0 0 103 llc/snap ubr B-gep# atmconfig natm add 192.168.173.4 hatm0 0 104 llc/snap ubr C-gep# atmconfig natm add 192.168.173.1 hatm0 0 101 llc/snap ubr C-gep# atmconfig natm add 192.168.173.2 hatm0 0 103 llc/snap ubr C-gep# atmconfig natm add 192.168.173.4 hatm0 0 105 llc/snap ubr D-gep# atmconfig natm add 192.168.173.1 hatm0 0 102 llc/snap ubr

931

Fejezet 31. Egyb halad hlzati tmk


D-gep# atmconfig natm add 192.168.173.2 hatm0 0 104 llc/snap ubr D-gep# atmconfig natm add 192.168.173.3 hatm0 0 105 llc/snap ubr

Termszetesen nem csak UBR hasznlhat, hanem minden ms olyan forgalmazsi bellts, amit az ATM krtyink ismernek. Itt most a forgalmi bellts nevt a hozztartoz konkrt paramterek kvetik. Az atmcong(8) segdprogram hasznlathoz gy krhetnk segtsget:
# atmconfig help natm add

Olvassuk el az atmcong(8) man oldalt. Ugyanez a bellts az /etc/rc.conf llomny hasznlatval is elvgezhet. Az A-gep esetben mindez gy nzne ki:
network_interfaces="lo0 hatm0" ifconfig_hatm0="inet 192.168.173.1 up" natm_static_routes="B-gep C-gep D-gep" route_B-gep="192.168.173.2 hatm0 0 100 llc/snap ubr" route_C-gep="192.168.173.3 hatm0 0 101 llc/snap ubr" route_D-gep="192.168.173.4 hatm0 0 102 llc/snap ubr"

A CLIP tvonalak pillanatnyi llapota gy krdezhet le:


A-gep# atmconfig natm show

31.13. A Kzs cm redundancia protokoll (CARP)


rta: Tom Rhodes. A Kzs cm redundancia protokoll (Common Address Redundancy Protocol, avagy CARP) segtsgvel tbb gp kpes egyazon IP-cmen osztozni. Bizonyos kongurcikban ez a terhels elosztsra (terhels-kiegyenltsre) vagy a rendelkezsre lls nvelsre (hibatrsre) alkalmazhat. A benne szerepl gpek akr eltr IP-cmmel is rendelkezhetnek, ahogy azt majd a pldban is lthatjuk. A CARP tmogatsnak engedlyezshez a FreeBSD rendszermagjt a kvetkez belltssal kell jrafordtanunk:
device carp

A CARP ltal biztostott lehetsgek ezutn mr elrhetek, s szmos sysctl vltozn keresztl llthatak: Vltoz
net.inet.carp.allow net.inet.carp.preempt

Lers A berkez CARP csomagok elfogadsa. Alaprtelmezs szerint engedlyezett. Ezzel a belltssal az adott gpen az sszes CARP fellet lell, ha kzlk brmelyik is mkdskptelenn vlik. Alaprtelmezs szerint tiltott.

932

Fejezet 31. Egyb halad hlzati tmk Vltoz


net.inet.carp.log

Lers A 0 rtkkel kikapcsoljuk a naplzst. Az 1 rtkkel a rossz CARP csomagok naplzst engedlyezzk. Az ettl nagyobb rtkek esetn pedig a CARP felletek vltozsait naplzzuk. Az alaprtelmezett rtke az 1. Az ARP protokoll segtsgvel prblja meg a helyi hlzati forgalmat mentesteni a terhelstl. Alaprtelmezs szerint tiltott. Ez a vltoz rsvdett, s a megszakts elnyomsnak llapott mutatja. A megszakts elnyomhat, ha a fellet egyik linkje nem mkdik. A 0 rtk arra utal, hogy a megszaktst nem nyomtk el. Minden problma nveli ennek a vltoznak az rtkt.

net.inet.carp.arpbalance

net.inet.carp.suppress_preempt

A CARP eszkzk maguk az ifconfig paranccsal kszthetek el:


# ifconfig carp0 create

Egy vals krnyezetben az ilyen felleteknek egy VHID nven ismert egyedi azonostval kell rendelkeznik. Ez a VHID vagy ms nven a virtulis gpazonost (azaz Virtual Host Identication) fogja a gpnket a hlzat tbbi elemtl megklnbztetni.

31.13.1. A CARP felhasznlsa a rendelkezsre lls javtsban


A CARP hasznlatnak egyik mdja, ahogy arra mr korbban is utaltunk, a szerverek rendelkezsre llsnak feljavtsa. Ebben a pldban hrom gppel fogunk hibatrst biztostani, melyik mindegyike egyedi IP-cmmel rendelkezik s ugyanazt a webes tartalmat szolgltatjk. A gpeket egy Round Robin rendszer (krbejr) nvfeloldssal egytt hasznljuk. A tartalk gpnknek lesz mg tovbbi kt CARP fellete, kln a szerver IP-cmeihez tartoz egyes webes tartalmakhoz. Amikor valami meghibsodik, a tartalk szerver tveszi a meghibsodott gp IP-cmt. Ilyenkor a hiba teljesen szrevtlen marad a felhasznlk szmra. A tartalk szerveren a tbbi szerverrel egyez tartalomnak s szolgltatsoknak kell megjelennie, hogy brmikor t tudja tlk venni a forgalmat. A hlzati neveiktl s a virtulis azonostiktl eltekintve a kt gpet ugyangy kell belltani. Ebben a pldban a gpeket most az a-gep.minta.org s b-gep.minta.org nevekkel lttuk el. Elszr is a CARP belltshoz el kell helyeznnk a megfelel hivatkozsokat az rc.conf llomnyban. Az a-gep.minta.org esetben az rc.conf llomny a kvetkez sorokat tartalmazza:
hostname="a-gep.minta.org" ifconfig_fxp0="inet 192.168.1.3 netmask 255.255.255.0" cloned_interfaces="carp0" ifconfig_carp0="vhid 1 pass testpass 192.168.1.50/24"

Mikzben a b-gep.minta.org az rc.conf llomnyban ezeket adjuk meg:


hostname="b-gep.minta.org" ifconfig_fxp0="inet 192.168.1.4 netmask 255.255.255.0" cloned_interfaces="carp0" ifconfig_carp0="vhid 2 pass testpass 192.168.1.51/24"

933

Fejezet 31. Egyb halad hlzati tmk


Megjegyzs: Nagyon fontos, hogy az ifconfig parancs pass paramtervel megadott jelszavak megegyezzenek. A carp eszkzk csak a megfelel jelszt birtokl gpeket fogadjk el. A virtulis gpazonostnak azonban minden esetben el kell trnie.

A harmadik, szolgaltato.minta.org cmmel rendelkez gpet fogjuk felkszteni az elbbi gpek meghibsodsra felkszteni. Ennek a gpnek kt carp eszkzre lesz szksge, melyek az egyes gpeket kezelik. Az ehhez illeszked sorok valahogy gy fognak kinzni az rc.conf llomnyban:
hostname="szolgaltato.minta.org" ifconfig_fxp0="inet 192.168.1.5 netmask 255.255.255.0" cloned_interfaces="carp0 carp1" ifconfig_carp0="vhid 1 advskew 100 pass testpass 192.168.1.50/24" ifconfig_carp1="vhid 2 advskew 100 pass testpass 192.168.1.51/24"

Kt carp eszkz hasznlatval a szolgaltato.minta.org kpes szlelni s tvenni brmelyik olyan gp IP-cmt, amely nem vlaszol.
Megjegyzs: Az alap FreeBSD rendszermag hasznlata esetn elfordulhat, hogy a megszakts (a preemption opci) engedlyezett. Amennyiben gy lenne, a szolgaltato.minta.org nem fogja minden esetben fogja rendesen visszaadni az IP-cmet az eredeti tulajdonosnak. Ilyenkor a rendszergazdnak kell ezt manulisan megtennie. Teht a kvetkez parancsot kell kiadnia a szolgaltato.minta.org gpen:
# ifconfig carp0 down && ifconfig carp0 up

Ezt az adott gphez tartoz carp fellettel kell megcsinlni.

Innentl a CARP mr teljesen engedlyezhet s kszen ll a tesztelsre. A tesztelshez vagy a hlzati rendszert kell jraindtani, vagy a gpeket. Tovbbi informcikat a carp(4) man oldaln tallhatunk.

934

V. Fggelk

Fggelk A. A FreeBSD beszerzse


A.1. CD s DVD kiadk
A.1.1. Kiskereskedelmi dobozos termkek
A FreeBSD beszerezhet szmos kiskereskedtl dobozos termk formjban is (FreeBSD CD-k, egyb szoftverek s nyomtatott dokumentci):

CompUSA WWW: http://www.compusa.com/ Frys Electronics WWW: http://www.frys.com/

A.1.2. CD- s DVD-kszletek


FreeBSD CD- s DVD-kszletek rengeteg helyrl rendelhetek:

FreeBSD Mall, Inc. 700 Harvest Park Ste F Brentwood, CA 94513 Egyeslt llamok Telefon: +1 925 240-6652 Fax: +1 925 674-0821 e-mail: <info@freebsdmall.com> WWW: http://www.freebsdmall.com/ Dr. Hinner EDV St. Augustinus-Str. 10 D-81825 Mnchen Nmetorszg Telefon: (089) 428 419 WWW: http://www.hinner.de/linux/freebsd.html Ikarios 22-24 rue Voltaire 92000 Nanterre Franciaorszg WWW: http://ikarios.com/form/#freebsd JMC Software rorszg Telefon: 353 1 6291282 WWW: http://www.thelinuxmall.com

936

Fggelk A. A FreeBSD beszerzse

The Linux Emporium Hilliard House, Lester Way Wallingford OX10 9TA Egyeslt Kirlysg Telefon: +44 1491 837010 Fax: +44 1491 837016 WWW: http://www.linuxemporium.co.uk/products/bsd/ Linux+ DVD Magazine Lewartowskiego 6 Warsaw 00-190 Lengyelorszg Telefon: +48 22 860 18 18 e-mail: <editors@lpmagazine.org> WWW: http://www.lpmagazine.org/ Linux System Labs Australia 21 Ray Drive Balwyn North VIC - 3104 Ausztrlia Telefon: +61 3 9857 5918 Fax: +61 3 9857 8974 WWW: http://www.lsl.com.au LinuxCenter.Ru Galernaya utca, 55 Szentptervr 190000 Oroszorszg Telefon: +7-812-3125208 e-mail: <info@linuxcenter.ru> WWW: http://linuxcenter.ru/shop/freebsd

A.1.3. Terjesztk
Ha viszonteladk vagyunk s szeretnnk CD-s FreeBSD termkeket forgalmazni, akkor az albbi terjesztk valamelyikvel vegyk fel a kapcsolatot:

Cylogistics 809B Cuesta Dr., #2149 Mountain View, CA 94040 Egyeslt llamok Telefon: +1 650 694-4949 Fax: +1 650 694-4953 e-mail: <sales@cylogistics.com>

937

Fggelk A. A FreeBSD beszerzse WWW: http://www.cylogistics.com/

Ingram Micro 1600 E. St. Andrew Place Santa Ana, CA 92705-4926 Egyeslt llamok Telefon: 1 (800) 456-8000 WWW: http://www.ingrammicro.com/ Kudzu, LLC 7375 Washington Ave. S. Edina, MN 55439 Egyeslt llamok Telefon: +1 952 947-0822 Fax: +1 952 947-0876 e-mail: <sales@kudzuenterprises.com> LinuxCenter.Kz Uszty-Kamenogorszk Kazahsztn Telefon: +7-705-501-6001 e-mail: <info@linuxcenter.kz> WWW: http://linuxcenter.kz/page.php?page=fr LinuxCenter.Ru Galernaya utca, 55 Szentptervr 190000 Oroszorszg Telefon: +7-812-3125208 e-mail: <info@linuxcenter.ru> WWW: http://linuxcenter.ru/freebsd Navarre Corp 7400 49th Ave South New Hope, MN 55428 Egyeslt llamok Telefon: +1 763 535-8333 Fax: +1 763 535-0341 WWW: http://www.navarre.com/

A.2. FTP oldalak


A FreeBSD hivatalos forrsai anonim FTP-n keresztl is elrhetek klnfle tkrzsekrl. Az ftp://ftp.FreeBSD.org/pub/FreeBSD/ oldal ugyan j minsg kapcsolattal rendelkezik s rengeteg felhasznlt is enged egyidejleg kapcsoldni, azonban valsznleg jobban jrunk, ha egy hozznk kzelebbi tkrzst vlasztunk (klnsen abban az esetben, amikor mi magunk is egy tkrzst akarunk kszteni).

938

Fggelk A. A FreeBSD beszerzse A FreeBSD tkrzsek adatbzis (http://mirrorlist.FreeBSD.org/)ban az itt megtallhatnl sokkal pontosabb leltrt kaphatunk az elrhet tkrzsekrl, mivel kzvetlenl a nvfelolds segtsgvel llaptja meg a szksges adatokat s nem egy rgztett listt trol. Emellett az albbi tkrzsekrl a FreeBSD elrhet anonim FTP-n keresztl is. Amennyiben az anonim FTP hasznlata mellett dntennk, igyekezznk a hozznk legkzelebb lev szervert hasznlni. Az Elsdleges tkrzsekknt feltntetett oldalak ltalban a teljes FreeBSD archvumot tartalmazzk (az sszes jelenleg elrhet vltozatot az sszes architektrra), de a krnyknkn vagy orszgunkban elhelyezked tkrszerverekrl tbbnyire gyorsabban tudunk majd letlteni. A regionlis oldalakon gyakorta csak a npszerbb architektrkon fut npszerbb vltozatokat talljuk meg, nem a teljes FreeBSD archvumot. Minden szerver elrhet anonim FTP-vel, de kzlk nhny mg tovbbi ms mdszereket is tmogat. Az egyes oldalak ltal ismert konkrt mdszereket a nevk utn zrjelben kzljk. Kzponti szerverek, Elsdleges tkrzsek, Amerikai Egyeslt llamok, Argentna, Ausztrlia, Ausztria, Brazlia, Bulgria, Cseh Kztrsasg, Dnia, Dl-Afrika, Egyeslt Kirlysg, sztorszg, Finnorszg, Franciaorszg, Grgorszg, Hollandia, Hongkong, Indonzia, rorszg, Izland, Izrael, Japn, Kanada, Kna, Korea, Lengyelorszg, Lettorszg, Litvnia, Magyarorszg, Nmetorszg, Norvgia, Olaszorszg, rmnyorszg, Oroszorszg, Portuglia, Romnia, Spanyolorszg, Svjc, Svdorszg, Szad-Arbia, Szingapr, Szlovk Kztrsasg, Szlovnia, Tajvan, Trkorszg, j-Zland, Ukrajna. (Dtum: 2010/06/17 12:49:57 UTC) Kzponti szerverek

ftp://ftp.FreeBSD.org/pub/FreeBSD/ (ftp / ftpv6 / http (http://ftp.FreeBSD.org/pub/FreeBSD/) / httpv6 (http://ftp.FreeBSD.org/pub/FreeBSD/))

Elsdleges tkrzsek Brmilyen gond esetn a kvetkez cmet kell rtesteni: <mirror-admin@FreeBSD.org>.

ftp://ftp1.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp2.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp3.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp4.FreeBSD.org/pub/FreeBSD/ (ftp / ftpv6 / http (http://ftp4.FreeBSD.org/pub/FreeBSD/) / httpv6 (http://ftp4.FreeBSD.org/pub/FreeBSD/)) ftp://ftp5.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp6.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp7.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp8.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp9.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp10.FreeBSD.org/pub/FreeBSD/ (ftp / ftpv6 / http (http://ftp10.FreeBSD.org/pub/FreeBSD/) / httpv6 (http://ftp10.FreeBSD.org/pub/FreeBSD/)) ftp://ftp11.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp12.FreeBSD.org/pub/FreeBSD/ (ftp)

939

Fggelk A. A FreeBSD beszerzse


ftp://ftp13.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp14.FreeBSD.org/pub/FreeBSD/ (ftp / http (http://ftp14.FreeBSD.org/pub/FreeBSD/))

Amerikai Egyeslt llamok Brmilyen gond esetn a kvetkez cmet kell rtesteni: <hostmaster@us.FreeBSD.org>.

ftp://ftp1.us.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp2.us.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp3.us.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp4.us.FreeBSD.org/pub/FreeBSD/ (ftp / ftpv6 / http (http://ftp4.us.FreeBSD.org/pub/FreeBSD/) / httpv6 (http://ftp4.us.FreeBSD.org/pub/FreeBSD/)) ftp://ftp5.us.FreeBSD.org/pub/FreeBSD/ (ftp / rsync) ftp://ftp6.us.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp7.us.FreeBSD.org/pub/FreeBSD/ (ftp / http (http://ftp7.us.FreeBSD.org/pub/FreeBSD/) / rsync) ftp://ftp8.us.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp9.us.FreeBSD.org/pub/FreeBSD/ (ftp / http (http://ftp9.us.FreeBSD.org/pub/os/FreeBSD/)) ftp://ftp10.us.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp11.us.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp12.us.FreeBSD.org/pub/FreeBSD/ (ftp / rsync) ftp://ftp13.us.FreeBSD.org/pub/FreeBSD/ (ftp / http (http://ftp13.us.FreeBSD.org/pub/FreeBSD/) / rsync) ftp://ftp14.us.FreeBSD.org/pub/FreeBSD/ (ftp / http (http://ftp14.us.FreeBSD.org/pub/FreeBSD/)) ftp://ftp15.us.FreeBSD.org/pub/FreeBSD/ (ftp)

Argentna Brmilyen gond esetn a kvetkez cmet kell rtesteni: <hostmaster@ar.FreeBSD.org>.

ftp://ftp.ar.FreeBSD.org/pub/FreeBSD/ (ftp)

Ausztrlia Brmilyen gond esetn a kvetkez cmet kell rtesteni: <hostmaster@au.FreeBSD.org>.


ftp://ftp.au.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp2.au.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp3.au.FreeBSD.org/pub/FreeBSD/ (ftp)

940

Fggelk A. A FreeBSD beszerzse Ausztria Brmilyen gond esetn a kvetkez cmet kell rtesteni: <hostmaster@at.FreeBSD.org>.

ftp://ftp.at.FreeBSD.org/pub/FreeBSD/ (ftp / ftpv6 / http (http://ftp.at.FreeBSD.org/pub/FreeBSD/) / httpv6 (http://ftp.at.FreeBSD.org/pub/FreeBSD/)) ftp://ftp2.at.FreeBSD.org/pub/FreeBSD/ (ftp / ftpv6 / http (http://ftp2.at.FreeBSD.org/pub/FreeBSD/) / httpv6 (http://ftp2.at.FreeBSD.org/pub/FreeBSD/) / rsync / rsyncv6)

Brazlia Brmilyen gond esetn a kvetkez cmet kell rtesteni: <hostmaster@br.FreeBSD.org>.


ftp://ftp.br.FreeBSD.org/pub/FreeBSD/ (ftp / http (http://ftp.br.FreeBSD.org/pub/FreeBSD/)) ftp://ftp2.br.FreeBSD.org/pub/FreeBSD/ (ftp / http (http://ftp2.br.FreeBSD.org/)) ftp://ftp3.br.FreeBSD.org/pub/FreeBSD/ (ftp / rsync) ftp://ftp4.br.FreeBSD.org/pub/FreeBSD/ (ftp) ftp5.br.FreeBSD.org ftp://ftp6.br.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp7.br.FreeBSD.org/pub/FreeBSD/ (ftp)

Bulgria Brmilyen gond esetn a kvetkez cmet kell rtesteni: <hostmaster@bg.FreeBSD.org>.


ftp://ftp.bg.FreeBSD.org/pub/FreeBSD/ (ftp / rsync) ftp://ftp2.bg.FreeBSD.org/pub/FreeBSD/ (ftp / rsync)

Cseh Kztrsasg Brmilyen gond esetn a kvetkez cmet kell rtesteni: <hostmaster@cz.FreeBSD.org>.

ftp://ftp.cz.FreeBSD.org/pub/FreeBSD/ (ftp / ftpv6 (ftp://ftp.cz.FreeBSD.org/pub/FreeBSD/) / http (http://ftp.cz.FreeBSD.org/pub/FreeBSD/) / httpv6 (http://ftp.cz.FreeBSD.org/pub/FreeBSD/) / rsync / rsyncv6) ftp://ftp2.cz.FreeBSD.org/pub/FreeBSD/ (ftp / http (http://ftp2.cz.FreeBSD.org/pub/FreeBSD/))

Dnia Brmilyen gond esetn a kvetkez cmet kell rtesteni: <hostmaster@dk.FreeBSD.org>.

ftp://ftp.dk.FreeBSD.org/pub/FreeBSD/ (ftp / ftpv6 / http (http://ftp.dk.FreeBSD.org/pub/FreeBSD/) / httpv6 (http://ftp.dk.FreeBSD.org/pub/FreeBSD/)) ftp://ftp2.dk.FreeBSD.org/pub/FreeBSD/ (ftp)

941

Fggelk A. A FreeBSD beszerzse Dl-Afrika Brmilyen gond esetn a kvetkez cmet kell rtesteni: <hostmaster@za.FreeBSD.org>.

ftp://ftp.za.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp2.za.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp3.za.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp4.za.FreeBSD.org/pub/FreeBSD/ (ftp)

Egyeslt Kirlysg Brmilyen gond esetn a kvetkez cmet kell rtesteni: <hostmaster@uk.FreeBSD.org>.

ftp://ftp.uk.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp2.uk.FreeBSD.org/pub/FreeBSD/ (ftp / http (http://ftp2.uk.FreeBSD.org/) / rsync) ftp://ftp3.uk.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp4.uk.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp5.uk.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp6.uk.FreeBSD.org/pub/FreeBSD/ (ftp)

sztorszg Brmilyen gond esetn a kvetkez cmet kell rtesteni: <hostmaster@ee.FreeBSD.org>.

ftp://ftp.ee.FreeBSD.org/pub/FreeBSD/ (ftp)

Finnorszg Brmilyen gond esetn a kvetkez cmet kell rtesteni: <hostmaster@fi.FreeBSD.org>.

ftp://ftp..FreeBSD.org/pub/FreeBSD/ (ftp)

Franciaorszg Brmilyen gond esetn a kvetkez cmet kell rtesteni: <hostmaster@fr.FreeBSD.org>.


ftp://ftp.fr.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp1.fr.FreeBSD.org/pub/FreeBSD/ (ftp / http (http://ftp1.fr.FreeBSD.org/pub/FreeBSD/)) ftp://ftp2.fr.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp3.fr.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp5.fr.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp6.fr.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp7.fr.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp8.fr.FreeBSD.org/pub/FreeBSD/ (ftp)

942

Fggelk A. A FreeBSD beszerzse

Grgorszg Brmilyen gond esetn a kvetkez cmet kell rtesteni: <hostmaster@gr.FreeBSD.org>.


ftp://ftp.gr.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp2.gr.FreeBSD.org/pub/FreeBSD/ (ftp)

Hollandia Brmilyen gond esetn a kvetkez cmet kell rtesteni: <hostmaster@nl.FreeBSD.org>.


ftp://ftp.nl.FreeBSD.org/pub/FreeBSD/ (ftp / http (http://ftp.nl.FreeBSD.org/os/FreeBSD/) / rsync) ftp://ftp2.nl.FreeBSD.org/pub/FreeBSD/ (ftp)

Hongkong

ftp://ftp.hk.FreeBSD.org/pub/FreeBSD/ (ftp)

Indonzia Brmilyen gond esetn a kvetkez cmet kell rtesteni: <hostmaster@id.FreeBSD.org>.

ftp://ftp.id.FreeBSD.org/pub/FreeBSD/ (ftp / http (http://ftp.id.FreeBSD.org/) / rsync)

rorszg Brmilyen gond esetn a kvetkez cmet kell rtesteni: <hostmaster@ie.FreeBSD.org>.


ftp://ftp.ie.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp2.ie.FreeBSD.org/pub/FreeBSD/ (ftp / http (http://ftp2.ie.FreeBSD.org/pub/FreeBSD/) / rsync) ftp://ftp3.ie.FreeBSD.org/pub/FreeBSD/ (ftp / http (http://ftp3.ie.FreeBSD.org/pub/FreeBSD/) / rsync)

Izland Brmilyen gond esetn a kvetkez cmet kell rtesteni: <hostmaster@is.FreeBSD.org>.

ftp://ftp.is.FreeBSD.org/pub/FreeBSD/ (ftp / rsync)

Izrael Brmilyen gond esetn a kvetkez cmet kell rtesteni: <hostmaster@il.FreeBSD.org>.

ftp://ftp.il.FreeBSD.org/pub/FreeBSD/ (ftp / ftpv6)

943

Fggelk A. A FreeBSD beszerzse Japn Brmilyen gond esetn a kvetkez cmet kell rtesteni: <hostmaster@jp.FreeBSD.org>.

ftp://ftp.jp.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp2.jp.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp3.jp.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp4.jp.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp5.jp.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp6.jp.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp7.jp.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp8.jp.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp9.jp.FreeBSD.org/pub/FreeBSD/ (ftp)

Kanada Brmilyen gond esetn a kvetkez cmet kell rtesteni: <hostmaster@ca.FreeBSD.org>.


ftp://ftp.ca.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp2.ca.FreeBSD.org/ (ftp) ftp://ftp3.ca.FreeBSD.org/pub/FreeBSD/ (ftp)

Kna Brmilyen gond esetn a kvetkez cmet kell rtesteni: <hostmaster@cn.FreeBSD.org>.


ftp://ftp.cn.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp2.cn.FreeBSD.org/pub/FreeBSD/ (ftp)

Korea Brmilyen gond esetn a kvetkez cmet kell rtesteni: <hostmaster@kr.FreeBSD.org>.


ftp://ftp.kr.FreeBSD.org/pub/FreeBSD/ (ftp / rsync) ftp://ftp2.kr.FreeBSD.org/pub/FreeBSD/ (ftp / http (http://ftp2.kr.FreeBSD.org/pub/FreeBSD/))

Lengyelorszg Brmilyen gond esetn a kvetkez cmet kell rtesteni: <hostmaster@pl.FreeBSD.org>.


ftp://ftp.pl.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp2.pl.FreeBSD.org/pub/FreeBSD/ (ftp / ftpv6 (ftp://ftp2.pl.FreeBSD.org/pub/FreeBSD/) / http (http://ftp2.pl.FreeBSD.org/pub/FreeBSD/) / httpv6 (http://ftp2.pl.FreeBSD.org/pub/FreeBSD/) / rsync / rsyncv6)

944

Fggelk A. A FreeBSD beszerzse

Lettorszg Brmilyen gond esetn a kvetkez cmet kell rtesteni: <hostmaster@lv.FreeBSD.org>.


ftp://ftp.lv.FreeBSD.org/pub/FreeBSD/ (ftp / http (http://ftp.lv.FreeBSD.org/pub/FreeBSD/)) ftp://ftp2.lv.FreeBSD.org/pub/FreeBSD/ (ftp)

Litvnia Brmilyen gond esetn a kvetkez cmet kell rtesteni: <hostmaster@lt.FreeBSD.org>.

ftp://ftp.lt.FreeBSD.org/pub/FreeBSD/ (ftp / http (http://ftp.lt.FreeBSD.org/pub/FreeBSD/))

Magyarorszg Brmilyen gond esetn a kvetkez cmet kell rtesteni: <hostmaster@hu.FreeBSD.org>.


ftp://ftp.hu.FreeBSD.org/pub/FreeBSD/ (ftp / http (http://ftp.hu.FreeBSD.org/pub/FreeBSD/) / rsync) ftp://ftp2.hu.FreeBSD.org/pub/FreeBSD/ (ftp)

Nmetorszg Brmilyen gond esetn a kvetkez cmet kell rtesteni: <de-bsd-hubs@de.FreeBSD.org>.


ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp1.de.FreeBSD.org/freebsd/ (ftp / http (http://www1.de.FreeBSD.org/freebsd/) / rsync (rsync://rsync3.de.FreeBSD.org/freebsd/)) ftp://ftp2.de.FreeBSD.org/pub/FreeBSD/ (ftp / http (http://ftp2.de.FreeBSD.org/pub/FreeBSD/) / rsync) ftp://ftp3.de.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp4.de.FreeBSD.org/FreeBSD/ (ftp / http (http://ftp4.de.FreeBSD.org/pub/FreeBSD/) / rsync) ftp://ftp5.de.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp6.de.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp7.de.FreeBSD.org/pub/FreeBSD/ (ftp / http (http://ftp7.de.FreeBSD.org/pub/FreeBSD/)) ftp://ftp8.de.FreeBSD.org/pub/FreeBSD/ (ftp)

Norvgia Brmilyen gond esetn a kvetkez cmet kell rtesteni: <hostmaster@no.FreeBSD.org>.


ftp://ftp.no.FreeBSD.org/pub/FreeBSD/ (ftp / rsync) ftp://ftp3.no.FreeBSD.org/pub/FreeBSD/ (ftp)

945

Fggelk A. A FreeBSD beszerzse Olaszorszg Brmilyen gond esetn a kvetkez cmet kell rtesteni: <hostmaster@it.FreeBSD.org>.

ftp://ftp.it.FreeBSD.org/pub/FreeBSD/ (ftp)

rmnyorszg Brmilyen gond esetn a kvetkez cmet kell rtesteni: <hostmaster@am.FreeBSD.org>.

ftp://ftp1.am.FreeBSD.org/pub/FreeBSD/ (ftp / http (http://ftp1.am.FreeBSD.org/pub/FreeBSD/) / rsync)

Oroszorszg Brmilyen gond esetn a kvetkez cmet kell rtesteni: <hostmaster@ru.FreeBSD.org>.


ftp://ftp.ru.FreeBSD.org/pub/FreeBSD/ (ftp / http (http://ftp.ru.FreeBSD.org/FreeBSD/) / rsync) ftp://ftp2.ru.FreeBSD.org/pub/FreeBSD/ (ftp / http (http://ftp2.ru.FreeBSD.org/pub/FreeBSD/) / rsync) ftp://ftp3.ru.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp4.ru.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp5.ru.FreeBSD.org/pub/FreeBSD/ (ftp / http (http://ftp5.ru.FreeBSD.org/pub/FreeBSD/) / rsync) ftp://ftp6.ru.FreeBSD.org/pub/FreeBSD/ (ftp)

Portuglia Brmilyen gond esetn a kvetkez cmet kell rtesteni: <hostmaster@pt.FreeBSD.org>.


ftp://ftp.pt.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp2.pt.FreeBSD.org/pub/freebsd/ (ftp) ftp://ftp4.pt.FreeBSD.org/pub/ISO/FreeBSD/ (ftp)

Romnia Brmilyen gond esetn a kvetkez cmet kell rtesteni: <hostmaster@ro.FreeBSD.org>.


ftp://ftp.ro.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp1.ro.FreeBSD.org/pub/FreeBSD/ (ftp / ftpv6 / http (http://ftp1.ro.FreeBSD.org/pub/FreeBSD/) / httpv6 (http://ftp1.ro.FreeBSD.org/pub/FreeBSD/))

Spanyolorszg Brmilyen gond esetn a kvetkez cmet kell rtesteni: <hostmaster@es.FreeBSD.org>.


ftp://ftp.es.FreeBSD.org/pub/FreeBSD/ (ftp / http (http://ftp.es.FreeBSD.org/pub/FreeBSD/)) ftp://ftp2.es.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp3.es.FreeBSD.org/pub/FreeBSD/ (ftp)

946

Fggelk A. A FreeBSD beszerzse

Svjc Brmilyen gond esetn a kvetkez cmet kell rtesteni: <hostmaster@ch.FreeBSD.org>.


ftp://ftp.ch.FreeBSD.org/pub/FreeBSD/ (ftp / http (http://ftp.ch.FreeBSD.org/pub/FreeBSD/)) ftp://ftp2.ch.FreeBSD.org/mirror/FreeBSD/ (ftp / ftpv6 (ftp://ftp2.ch.FreeBSD.org/mirror/FreeBSD/) / http (http://ftp2.ch.FreeBSD.org/ftp/mirror/FreeBSD/) / httpv6 (http://ftp2.ch.FreeBSD.org/ftp/mirror/FreeBSD/))

Svdorszg Brmilyen gond esetn a kvetkez cmet kell rtesteni: <hostmaster@se.FreeBSD.org>.


ftp://ftp.se.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp2.se.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp3.se.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp5.se.FreeBSD.org/pub/FreeBSD/ (ftp / http (http://ftp5.se.FreeBSD.org/) / rsync)

Szad-Arbia Brmilyen gond esetn a kvetkez cmet kell rtesteni: <ftpadmin@isu.net.sa>.

ftp://ftp.isu.net.sa/pub/ftp.freebsd.org/ (ftp)

Szingapr Brmilyen gond esetn a kvetkez cmet kell rtesteni: <hostmaster@sg.FreeBSD.org>.

ftp://ftp.sg.FreeBSD.org/pub/FreeBSD/ (ftp / http (http://ftp.sg.FreeBSD.org/pub/FreeBSD/) / rsync)

Szlovk Kztrsasg Brmilyen gond esetn a kvetkez cmet kell rtesteni: <hostmaster@sk.FreeBSD.org>.

ftp://ftp.sk.FreeBSD.org/pub/FreeBSD/ (ftp / ftpv6 (ftp://ftp.sk.FreeBSD.org/pub/FreeBSD/) / http (http://ftp.sk.FreeBSD.org/pub/FreeBSD/) / httpv6 (http://ftp.sk.FreeBSD.org/pub/FreeBSD/) / rsync / rsyncv6) ftp://ftp2.sk.FreeBSD.org/pub/FreeBSD/ (ftp / ftpv6 (ftp://ftp2.sk.FreeBSD.org/pub/FreeBSD/) / http (http://ftp2.sk.FreeBSD.org/pub/FreeBSD/) / httpv6 (http://ftp2.sk.FreeBSD.org/pub/FreeBSD/))

Szlovnia Brmilyen gond esetn a kvetkez cmet kell rtesteni: <hostmaster@si.FreeBSD.org>.


ftp://ftp.si.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp2.si.FreeBSD.org/pub/FreeBSD/ (ftp)

947

Fggelk A. A FreeBSD beszerzse

Tajvan Brmilyen gond esetn a kvetkez cmet kell rtesteni: <hostmaster@tw.FreeBSD.org>.

ftp://ftp.tw.FreeBSD.org/pub/FreeBSD/ (ftp / ftpv6 (ftp://ftp.tw.FreeBSD.org/pub/FreeBSD/) / rsync / rsyncv6) ftp://ftp2.tw.FreeBSD.org/pub/FreeBSD/ (ftp / ftpv6 (ftp://ftp2.tw.FreeBSD.org/pub/FreeBSD/) / http (http://ftp2.tw.FreeBSD.org/pub/FreeBSD/) / httpv6 (http://ftp2.tw.FreeBSD.org/pub/FreeBSD/) / rsync / rsyncv6) ftp://ftp3.tw.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp4.tw.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp5.tw.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp6.tw.FreeBSD.org/pub/FreeBSD/ (ftp / http (http://ftp6.tw.FreeBSD.org/) / rsync) ftp://ftp7.tw.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp8.tw.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp9.tw.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp10.tw.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp11.tw.FreeBSD.org/pub/FreeBSD/ (ftp / http (http://ftp11.tw.FreeBSD.org/FreeBSD/)) ftp://ftp12.tw.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp13.tw.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp14.tw.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp15.tw.FreeBSD.org/pub/FreeBSD/ (ftp)

Trkorszg

ftp://ftp.tr.FreeBSD.org/pub/FreeBSD/ (ftp / http (http://ftp.tr.FreeBSD.org/pub/FreeBSD/) / rsync) ftp://ftp2.tr.FreeBSD.org/pub/FreeBSD/ (ftp / rsync)

j-Zland

ftp://ftp.nz.FreeBSD.org/pub/FreeBSD/ (ftp)

Ukrajna

ftp://ftp.ua.FreeBSD.org/pub/FreeBSD/ (ftp / http (http://ftp.ua.FreeBSD.org/pub/FreeBSD/))

948

Fggelk A. A FreeBSD beszerzse


ftp://ftp2.ua.FreeBSD.org/pub/FreeBSD/ (ftp / http (http://ftp2.ua.FreeBSD.org/pub/FreeBSD/)) ftp://ftp7.ua.FreeBSD.org/pub/FreeBSD/ (ftp) ftp://ftp8.ua.FreeBSD.org/pub/FreeBSD/ (ftp / http (http://ftp8.ua.FreeBSD.org/FreeBSD/)) ftp://ftp11.ua.FreeBSD.org/pub/FreeBSD/ (ftp)

A.3. BitTorrent
Az egyes kiadsokhoz tartoz alap CD-kszletek BitTorrent segtsgvel is elrhetek. A lemezek kpeire hivatkoz torrent llomnyokat a http://torrents.freebsd.org:8080 cmrl tlthetjk le. A BitTorrent kliens telepthet a net-p2p/py-bittorrent portbl vagy csomagbl. Miutn sikeresen letltttk BitTorrenten keresztl a lemezkpeket, a 18.6.3 Szakasz nyjthat segtsget abban, hogy kell ezeket lemezre rni.

A.4. Anonim CVS


A.4.1. Bevezets
Az anonim CVS (vagy ms nven anoncvs) a FreeBSD-hez mellkelt CVS-es segdprogramok ltal nyjtott olyan lehetsg, amivel tvoli CVS repositorykkal tudunk szinkronizlni. Tbb ms dolog mellett lehetv teszi a FreeBSD felhasznli szmra, hogy kiemelt jogosultsgok nlkl kpesek legyenek olvasssal kapcsolatos CVS mveleteket vgrehajtani a FreeBSD Projekt hivatalos anoncvs szerverein. A hasznlathoz egyszeren csak a kivlasztott anoncvs szervert kell belltani a CVSROOT krnyezeti vltoz rtknek, ahol aztn a cvs login parancsnak a szerver ltal ismert anoncvs jelszt kell megadni. Ezutn a cvs(1) paranccsal a tbbi CVS szerverhez hasonlan lehetsgnk nylik hozzfrni.
Megjegyzs: A cvs login parancs a bejelentkezsekhez szksges jelszavakat a HOME knyvtrunkban lev .cvspass llomnyban trolja. Ha ez az llomny nem ltezik, akkor a cvs login els hasznlatakor hibt kapunk. Ilyenkor csak hozzunk ltre egy res .cvspass llomnyt, majd prblkozzunk jra.

Habr azt mondhatnnk, hogy a CVSup s az anoncvs lnyegben egyazon feladatot oldjk meg, mind a kt esetben lteznek olyan kompromisszumok, amelyek befolysolhatjk a felhasznl vlasztst a kt szinkronizcis mdszer kztt. Dihjban ezt gy tudnnk sszefoglalni, hogy a CVSup a hlzati erforrsokat hatkonyabban kihasznlja s kettejk kzl ez a fejlettebb, azonban ennek meg kell zetnnk az rt. A CVSup hasznlathoz elszr ugyanis teleptennk kell s be kell lltanunk egy specilis klienst, illetve az adatokat a CVSup ltal gyjtemnyeknek (collection) nevezett, viszonylag nagy mret egyesgekben rhetjk el. Ezzel szemben az anoncvs hasznlata sorn a megfelel CVS modul nevnek felhasznlsval tetszlegesen megvizsglhatunk nll llomnyokat vagy akr programokat (mint az ls vagy a grep). Termszetesen az anoncvs segtsgvel csupn az olvasst ignyl CVS mveleteket vgezhetjk el, ezrt ha a FreeBSD Projekt keretein bell fejleszteni is szeretnnk, akkor inkbb rdemes a CVSup alkalmazst vlasztani.

949

Fggelk A. A FreeBSD beszerzse

A.4.2. Az anonim CVS hasznlata


A cvs(1) parancsot nagyon knny belltani az anonim CVS repositoryk hasznlathoz, hiszen mindssze annyit kell tennnk, hogy a CVSROOT krnyezeti vltoz rtknek megadjuk a FreeBSD Projekt valamelyik anoncvs szervert. Ezen sorok rsnak pillanatban a kvetkez szerverek rhetek el:

Franciaorszg: :pserver:anoncvs@anoncvs.fr.FreeBSD.org:/home/ncvs (pserver mdban a jelsz anoncvs, az SSH pedig nincs jelsz) Tajvan: :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs (pserver mdban a cvs login hasznlatval tetszleges jelsz megadhat, az SSH esetn pedig nincs jelsz)

SSH2 HostKey: 1024 02:ed:1b:17:d6:97:2b:58:5e:5c:e2:da:3b:89:88:26 /etc/ssh/ssh_host_rsa_key.pub SSH2 HostKey: 1024 e8:3b:29:7b:ca:9f:ac:e9:45:cb:c8:17:ae:9b:eb:55 /etc/ssh/ssh_host_dsa_key.pub

Egyeslt llamok: anoncvs@anoncvs1.FreeBSD.org:/home/ncvs (csak SSH v2 nincs jelsz)

SSH2 HostKey: 2048 53:1f:15:a3:72:5c:43:f6:44:0e:6a:e9:bb:f8:01:62 /etc/ssh/ssh_host_dsa_key.pub

Mivel a CVS hasznlatval kikrhetjk (check out) tulajdonkppen a FreeBSD forrsainak akrmelyik eddigi (vagy majd ezutn keletkez) vltozatt, rdemes megismerkednnk a cvs(1) ltal alkalmazott revzi (revision) (az -r opcival llthat) fogalmval s a FreeBSD Projekt repositoryjain bell engedlyezett rtkeivel. Cmkket (tag) kt esetben hasznlhatunk: a revzik s az gak esetn. A revzis cmkk mindig egy adott revzira hivatkoznak, ami llandan ugyanazt jelenti. Ezzel szemben az gak cmki a fejleszts adott irny menetnek az adott pillanatban legfrissebb revzijt hivatkozzk. Mivel az gak cmki nem egy adott revzira vonatkoznak, ezrt elmondhatjuk rluk, hogy naponta vltozik a jelentsk. Az A.7 Szakasz tartalmazza a felhasznlk szmra fontos revzis cmkket. Ezek azonban nem igazak a Portgyjtemnyre, mivel a Portgyjtemnynek nincs egyszerre tbb fejlesztsi irnya. Egy g cmkjnek megadsval ltalban az adott irnyhoz tartoz llomnyok legfrissebb vltozatt kapjuk meg. Ha viszont az llomnyok egy korbbi vltozatra lenne szksgnk, akkor a -D dtum opci megadsval meg tudjuk adni annak idpontjt. Errl rszletesebben a cvs(1) man oldaln olvashatunk.

A.4.3. Pldk
Habr a tovbbhaladshoz mindenkppen javasoljuk a cvs(1) man oldalnak rszletes ttanulmnyozst, mutatunk nhny gyors pldt az anonim CVS hasznlatnak tmr illusztrlsra: Plda A-1. Valami (az ls(1)) kikrse a -CURRENT gbl
% setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs % cvs login

Jelszknt ezutn brmit megadhatunk.


% cvs co ls

Plda A-2. Az src/ fa kikrse SSH-n keresztl


% cvs -d freebsdanoncvs@anoncvs.FreeBSD.org:/home/ncvs co src

The authenticity of host anoncvs.freebsd.org (128.46.156.46) cant be established. DSA key fingerprint is 52:02:38:1a:2f:a8:71:d3:f5:83:93:8d:aa:00:6f:65.

950

Fggelk A. A FreeBSD beszerzse


Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added anoncvs.freebsd.org (DSA) to the list of known hosts.

Plda A-3. Az ls(1) 6-STABLE gban szerepl vltozatnak kikrse


% setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs % cvs login

Amikor kri,

jelszknt brmit megadhatunk.

% cvs co -rRELENG_6 ls

Plda A-4. Az ls(1) vltozsainak (Unied Diff formtum) listzsa


% setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs % cvs login

Itt jelszknt brmit megadhatunk.


% cvs rdiff -u -rRELENG_5_3_0_RELEASE -rRELENG_5_4_0_RELEASE ls

Plda A-5. A hasznlhat modulok nevnek kidertse


% setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs % cvs login

Ezutn

jelszknt brmit megadhatunk.

% cvs co modules % more modules/modules

A.4.4. Egyb helyek


A kvetkez helyeken tallhatunk mg hasznos informcikat a CVS hasznlatrl:

A CVS bemutatsa (http://users.csc.calpoly.edu/~gsher/classes/308/handouts/cvs-basics.html) (forrs: Kaliforna llami Mszaki Egyetem). A CVS honlapja (http://ximbiot.com/cvs/wiki/), a CVS fejlesztsvel s alkalmazsval foglalkoz kzssg oldala. A CVSweb (http://www.FreeBSD.org/cgi/cvsweb.cgi) a FreeBSD Projekt ltal hasznlt CVS rendszernek webes fellete.

A.5. A CTM hasznlata


A CTM hasznlatva a tvoli knyvtrakat tudunk egy kzponti vltozattal szinkronban tartani. Eredetileg a FreeBSD forrsaihoz fejlesztettk ki, de idvel msok ms clokra is alkalmasnak tallhatjk majd. Az eltrsek (deltk) feldolgozsval kapcsolatban kevske dokumentci ll rendelkezsre, ezrt a ctm-users

951

Fggelk A. A FreeBSD beszerzse (http://lists.FreeBSD.org/mailman/listinfo/ctm-users) levelezsi listt rdemes felkeresni, ha tbbet szeretnnk megtudni a CTM egyb cl alkalmazsairl.

A.5.1. Mirt hasznlnnk a CTM-et?


A CTM segtsgvel a FreeBSD forrsainak helyi msolatt hozhatjuk ltre. A forrsok tbb klnbz kivitelben is hozzfrhetek. A CTM minden esetben kpes eleget tenni az ignyeinknek, akr az egsz CVS ft, akr annak egy rszt kvnjuk csak gyelemmel kvetni. Ha netaln FreeBSD fejlesztk lennnk, s hjn vagyunk vagy ppen gyenge TCP/IP kapcsolattal rendelkeznk, esetleg egyszeren csak automatikusan rteslni szeretnnk a vltozsokrl, a CTM-et neknk talltk ki. A leggyorsabban fejld gakbl is naponta legfeljebb hrom deltt fogunk kapni, azonban rdemes megfontolni a vltozsok automatikus elkldst levlben. A szksges frisstsek mrett mindig igyeksznk minimalizlni. Ez egybknt ltalban alig 5 KB, de nha (tzbl egyszer) elfordul, hogy 10 s 50 KB kztt van, s idnknt 100 KB vagy afeletti mennyisg frissts is rkezhet. Amikor a fejlesztk ltal hasznlt forrsokat tltjk le, magunknak kell gondoskodnunk a menet kzben felmerl klnbz problmk megoldsrl. Ez kivltkpp igaz abban az esetben, amikor az aktulis, vagy hivatalos nevn CURRENT gat kvetjk. Mieltt azonban egy ilyenbe belevgnnk, rdemes fellapozni a FreeBSD legfrissebb vltozatnak hasznlatrl szl fejezetet.

A.5.2. Mire van szksgnk a CTM hasznlathoz?


A mkdshez kt komponens szksgeltetik: a CTM kliensprogramja s hozz a kezdeti deltk (amivel majd letltjk a CURRENT forrsait). A CTM program mr a 2.0 kiadstl kezdve a FreeBSD rsze, s a forrsok kztt a /usr/src/usr.sbin/ctm knyvtrban talljuk meg (amennyiben felraktuk). A CTM mkdshez kell deltkat kt mdon, FTP-n vagy e-mailen keresztl szerezhetjk be. Ha el tudunk rni interneten lev FTP oldalakat, akkor az albbi FTP helyeken tallunk a CTM-hez hasznlhat adatokat: ftp://ftp.FreeBSD.org/pub/FreeBSD/CTM/ valamint lsd a tkrzseket. FTP-n keresztl lpjnk be a knyvtrba, tltsk le a README nev llomnyt s kvessk a benne szerepl utastsokat. Ha viszont e-mailen keresztl akarjuk megszerezni a deltkat: Iratkozzunk fel a CTM terjesztsi listinak egyikre. A ctm-cvs-cur (http://lists.FreeBSD.org/mailman/listinfo/ctm-cvs-cur) lista az egsz CVS-ft, mg a ctm-src-cur (http://lists.FreeBSD.org/mailman/listinfo/ctm-src-cur) a f fejlesztsi gat teszi elrhetv. A ctm-src-4 (http://lists.FreeBSD.org/mailman/listinfo/ctm-src-4) a 4.X kiadsaihoz gakat tartalmazza, s gy tovbb. (Ha nem tudjuk, hogyan kell feliratkozni egy levelezsi listra, akkor kattintsunk a lista nevre vagy kvessk a http://lists.FreeBSD.org/mailman/listinfo linket, majd kattintsunk arra a listra, ahova fel akarunk iratkozni. Ezen az oldalon az sszes, a feliratkozshoz nlklzhetetlen informcinak szerepelnie kell.) Miutn elkezdenek megrkezni a CTM-frisstseket tartalmaz levelek, a tartalmukat a ctm_rmail programmal tudjuk kicsomagolni s felhasznlni. Az /etc/aliases llomnyba akr kzvetlenl is berhatjuk a ctm_rmail programot, s ezzel a nllstani tudjuk a levlben rkez frisstsek feldolgozst. A ctm_rmail man oldaln olvashatjuk ennek rszleteit.

952

Fggelk A. A FreeBSD beszerzse


Megjegyzs: Nem szmt, milyen mdon jutunk hozz a CTM ltal hasznlt deltkhoz, minden esetben fel kell iratkoznunk a ctm-announce (http://lists.FreeBSD.org/mailman/listinfo/ctm-announce) levelezsi listra. Az elkvetkezendkben ez lesz az egyetlen hely, ahov a CTM rendszer mkdtetsvel kapcsolatos bejelentsek bekldsre kerlnek. A feliratkozshoz kattinsunk a fenti lista nevre s kvessk a mellette szerepl utastsokat.

A.5.3. A CTM els hasznlata


Mieltt nekiltnnk a CTM-hez tartoz deltk hasznlatnak, elszr el kell jutnunk egy kiindulsi ponthoz, ahonnan majd ltre tudjuk hozni a rkvetkez deltkat. Ehhez elsknt vegyk szmba, pontosan mink is van. ltalban mindenki egy res knyvtrral kezd. Ilyenkor egy kezdeti Empty (mint res) elnevezs deltval tudjuk megkezdeni az CTM ltal ismert fa szinkronizlst. Erre a clra lesznek majd szintn alkalmasak a megkezdett deltk is, amelyek valamikor a CD-re fognak felkerlni. Mivel a fk maguk tbb tz megabyte-nyi mretek, ezrt rdemes inkbb valami kznl lev eszkzzel megkezdeni a folyamatot. Ha van -RELEASE verzij CD-nk, akkor msoljuk le rla s bontsuk ki a kiindulsknt hasznlt forrsokat. Ezzel jelents mennyisg adat tvitelt takarthatjuk meg. A kezd deltkat knnyen megismerjk a szm utn X karakterrel levlasztott nevkrl (pldul src-cur.3210XEmpty.gz). Az X utn szerepl megnevezs a kezdeti kiinduls (seed) foknak felel meg. Az Empty egy res knyvtrra utal. A szablyok szerint az Empty llapotbl 100 deltnknt jn ltre jabb (kiindulsra alkalmas) alapvltozat. Ezek azonban nagyon nagyok is lehetnek. A 70 vagy 80 megabyte-os gzippel csomagolt adatok gyakoriak az XEmpty deltk esetn. Miutn kivlasztottuk a szmunkra megfelel alapvltozatot, szksgnk lesz a tle nagyobb sorszm sszes deltra is.

A.5.4. A CTM hasznlata a htkznapokban


A deltk felhasznlshoz egyszeren csak ennyit kell tennnk:
# cd /ahol/trolni/akarjuk/az/adatokat # ctm -v -v /ahol/troljuk/a/deltkat/src-xxx.*

A CTM kpes rtelmezni a gzip ltal csomagolt adatokat, ezrt nincs szksg a deltk elzetes kitmrtsre, amivel trhelyet tudunk sprolni. Hacsak nem tekinti tkletesen biztonsgosnak az egsz folyamatot, akkor a CTM nem fog mdostani a fn. A deltkat a CTM -c kapcsoljval is ellenrizhetjk, aminek sorn egyltaln nem fog mdosulni a forrsfa. Ekkor egyszeren csak ellenrzi a deltk srtetlensgt s megnzi, hogy minden rendben zajlana-e az alkalmazsuk sorn. A CTM-nek vannak mg tovbbi kapcsoli is, melyekrl bvebben a man oldalakbl s a forrskdokbl tjkozdhatunk. Most mr minden megvan, ami kellhet. Amikor kapunk egy jabb deltt, a forrsaink frisstshez csak futtassuk t a CTM-en.

953

Fggelk A. A FreeBSD beszerzse Ne trljk le azokat a deltkat, melyeket nehezen tudtunk letlteni. Helyette rdemes inkbb megtartani ezeket arra az esetre, ha valami rossz trtnne. Mg ha csak oppylemezek is llnak rendelkezsnkre, mindenkppen msoljuk le ezeket az fdwrite paranccsal.

A.5.5. A sajt vltoztatsaink megtartsa


Fejlesztknt biztosan szeretnnk ksrletezni s llomnyokat megvltoztatni a forrsfban. A CTM a helyben elkvetett vltoztatsokat csak korltozottan tmogatja: az ize nev llomny megltnek vizsglata eltt az ize.ctm llomnyt fogja keresni. Ha ltezik, akkor a CTM az ize helyett ezen fog dolgozni. Ezzel a viselkedssel nyerjk a sajt vltoztatsaink megtartsnak egyszer mdjt: csak msoljuk le .ctm kiterjesztssel a mdostani tervezett llomnyokat. Ezutn mr szabadon mdosthatjuk a forrsokat, mikzben a CTM a .ctm kiterjeszts llomnyokat folyamatosan szinkronban tartja.

A.5.6. A CTM egyb rdekes belltsai


A.5.6.1. Dertsk ki pontosan miket is fog rinteni a frissts
A CTM ltal a forrsokon elvgzend vltoztatsok listjt az -l kapcsolval krdezhetjk le. Ez akkor esik kzre, ha szeretnnk feljegyezni a bekvetkez vltozsokat, vagy brmilyen mdon el- vagy utfeldolgozni a mdostott llomnyokat, esetleg szimpln elvigyzatosak akarunk lenni.

A.5.6.2. Biztonsgi msolat ksztse a frissts eltt


Nha egyszeren csak szeretnnk az sszes rintett llomnyrl biztonsgi msolatot kszteni a CTM ltal elvgzett frissts eltt. A -B ments-llomny bellts megadsval az adott CTM delta ltal mdostand sszes llomny trolsra kerl a ments-llomny nev llomnyba.

A.5.6.3. A frissthet llomnyok korltozsa


Egyes esetekben rdeknkben llhat leszkteni a CTM ltal eszkzlt frisstsek hatskrt, vagy egyszeren csak nhny llomny szinkronizlsra van szksgnk. A CTM szmra feldolgozhat llomnyok listjt regulris kifejezs formjban az -e s -x opcik mentn hatrozhatjuk meg. Pldul ha a lib/libc/Makefile llomny az sszegyjttt CTM deltk szerinti legfrissebb verzijhoz kvnunk hozzjutni, akkor futtassuk az albbi parancsot:
# cd /akarhova/ahova/ki/akarjuk/bontani/ # ctm -e ^lib/libc/Makefile ~ctm/src-xxx.*

A CTM deltkban megadott minden egyes llomny esetn az -e az -x opcik a parancssorban trtnt megadsuk sorrendjben kerlnek feldolgozsra. Egy llomnyt kizrlag csak akkor dolgoz fel a CTM, ha az az -e s -x opcik kirtkelse utn is indokolt.

954

Fggelk A. A FreeBSD beszerzse

A.5.7. Tovbbi tervek a CTM-mel kapcsolatban


Rengeteg van:

Valamifle hitelests bevezetse a CTM rendszerbe, amivel szlelhetek a meghamistott CTM-frisstsek. A CTM belltsainak letisztzsa, mivel elgg megtvesztek s nehzkesen hasznlhatak.

A.5.8. Egyebek
Lteznek deltk a portok gyjtemnyhez is, azonban mg nem mutatkozott tlzottan nagy rdeklds irntuk.

A.5.9. CTM tkrzsek


A CTM/FreeBSD anonim FTP-n keresztl elrhet az albbi tkroldalak valamelyikrl. Amennyiben ezen a mdon kvnjuk letlteni a CTM rendszerhez tartoz llomnyokat, elszr prblkozzunk a hozznk legkzelebb lev szerverrel. Ha brmilyen gond merlne fel, rtestsk a ctm-users (http://lists.FreeBSD.org/mailman/listinfo/ctm-users) levelezsi listt. Kalifornia, Bay Area (hivatalos forrs)

ftp://ftp.FreeBSD.org/pub/FreeBSD/development/CTM/

Dl-Afrika (a korbbi deltk biztonsgi msolatai)

ftp://ftp.za.FreeBSD.org/pub/FreeBSD/CTM/

Tajvan/R.O.C.

ftp://ctm.tw.FreeBSD.org/pub/FreeBSD/development/CTM/ ftp://ctm2.tw.FreeBSD.org/pub/FreeBSD/development/CTM/ ftp://ctm3.tw.FreeBSD.org/pub/FreeBSD/development/CTM/

Ha nem talltunk volna hozznk kzel es tkrzst, vagy ha tallt tkr nem elg friss, akkor prblkozzunk egy olyan keresmotor hasznlatval, mint pldul az alltheweb (http://www.alltheweb.com/).

955

Fggelk A. A FreeBSD beszerzse

A.6. A CVSup hasznlata


A.6.1. Bevezets
A CVSup tvoli szervereken tallhat kzponti repositorykban lev forrsfk terjesztsre s a rajtuk keresztli frisstsre alkalmas programcsomag. A FreeBSD forrsait egy CVS repositoryban tartjk karban Kaliforniban egy fejlesztseket trol kzponti szmtgpen. A CVSup segtsgvel a FreeBSD felhasznli knnyen szinkronban tudjk vele tartani a sajt forrsaikat. A CVSup az n. lehzssal frisst. Ilyenkor a kliensek csak akkor krnek a szervertl frisstseket, amikor szksgk van r, mikzben a szerver passzvan vrja a frisstsi krelmeket. Ennek megfelelen teht minden esetben a kliens kezdemnyezi a frisstst, a szerver pedig nmagtl sosem kld ilyeneket kretlenl. A felhasznlknak gy vagy maguknak kell meghvniuk a CVSup klienst, vagy a frisstsek rendszeres automatikus letltshez be kell lltaniuk a cron rendszerprogramot. A CVSup kifejezs ebben az rsmdban az egsz programcsomagra utal. F alkotrszei a a felhasznl gpn fut cvsup nev kliens, s a FreeBSD tkroldalain fut cvsupd nev szerver. A FreeBSD dokumentcijnak s levelezsi listinak frkszse sorn rengeteg hivatkozst tallhatunk egy sup nev alkalmazsra. A sup a CVSup eldje volt, s hasonl clokat szolglt. A CVSup hasznlat tekintetben nagyon hasonlt a sup-hoz, s ami azt illeti, a a sup kongurcis llomnyaival visszafele kompatibilis formtumot hasznl. Mivel a CVSup sokkal gyorsabb s rugalmasabb, a supot mr nem hasznlja a FreeBSD Projekt.
Megjegyzs: A csup a CVSup C nyelven jrart vltozata. Legnagyobb elnye, hogy gyorsabb s nincs szksge a Modula-3 nyelv futtat krnyezetre, ezrt azt nem kell a hasznlathoz telepteni. Radsul, ha a FreeBSD 6.2 vagy annl ksbbi vltozatt hasznljuk, akkor minden tovbbi nlkl a rendelkezsnkre ll, hiszen az alaprendszer rsze. A FreeBSD korbbi verziinak alaprendszerei ugyan nem tartalmazzk a csup(1) parancsot, viszont a net/csup port vagy csomag segtsgvel pillanatok alatt telepteni tudjuk. Amennyiben a csup mellett tennnk le a voksunkat, a szakasz fennmarad rszben egyszeren hagyjuk ki a CVSup teleptsrl szl lpseket s a CVSup hivatkozsait helyettestsk a csup programmal.

A.6.2. Telepts
A CVSup teleptsnek legegyszerbb mdja a FreeBSD csomaggyjtemnyben tallhat elrefordtott net/cvsup csomag hasznlata. Ha viszont inkbb forrsbl akarjuk telepteni a CVSupot, akkor helyette hasznljuk a net/cvsup portot. De legynk elvigyzatosak: a net/cvsup portnak szksge van a Modula-3 rendszerre, aminek letltse s lefordtsa pedig meglehetsen sok idt s trhelyet ignyel.
Megjegyzs: Ha olyan gpen akarjuk hasznlni a CVSupot, ahol nincs XFree86, Xorg vagy brmilyen ms ilyen szerver, akkor hasznljuk a net/cvsup-without-gui portot, ami nem tartalmazza a hozztartoz grakus felletet.

Ha a FreeBSD 6.1 vagy korbbi vltozatain szeretnnk telepteni a csupot, hasznljuk a FreeBSD csomaggyjtemnyben megtallhat net/csup csomagot. Ha viszont forrsbl kvnjuk telepteni a csup programot, akkor helyette hasznljuk a net/csup portot.

956

Fggelk A. A FreeBSD beszerzse

A.6.3. A CVSup belltsa


A CVSup mkdst a supfile elnevezs llomny vezrli. A /usr/share/examples/cvsup/ (/usr/share/examples/cvsup/) knyvrban tallhatunk nhny pldt a supfile llomnyokra. A supfile llomnyban szerepl informcik a CVSup hasznlatval kapcsolatban a kvetkez krdseket vlaszoljk meg:

Milyen llomnyokat akarunk letlteni? Milyen verziikra van szksgnk? Honnan akarjuk ezeket beszerezni? Hova akarjuk rakni a szmtgpnkn? Hova akarjuk rakni az llapotot trol llomnyokat?

Az imnt feltett krdsekre a kvetkez szakaszokban sszelltand supfile segtsgvel fogunk vlaszolni. Ehhez elszr bemutatjuk a supfile formtum llomnyok ltalnos szerkezett. A supfile llomnyok szveget tartalmaznak. A megjegyzsek # karakterrel kezddnek s a sor vgig tartanak. A kizrlag csak megjegyzseket tartalmaz vagy res sorok nem kerlnek feldolgozsra. Az sszes tbbi fennmarad sorban pedig azokat az llomnyokat rjuk le, amelyeket a felhasznl le akar tlteni. Az ilyen fajtj sorok egy gyjtemny (collection) nevvel kezddnek, ami llomnyok egy szerver ltal meghatrozott logikai csoportjra utal. A gyjtemny neve ennek megfelelen elrulja a szervernek, hogy pontosan milyen llomnyokra van szksgnk. Ezutn kvetkezik whitespace-szel elvlasztva nulla vagy tbb mez, amelyek a korbban feltett krdseinket vlaszoljk meg rendre. Ezeknek a mezknek kt tpusa ltezik: a belltsokat s a konkrt rtket trol mezk. A belltsokat trol mezk klnbz kulcsszavakat tartalmaznak, pldul a delete (trls) vagy compress (tmrts). Az rtket trol mezk is egy kulcsszval kezddnek, azonban utna kzvetlenl egy = (egyenlsgjel) jn, amelyet egy msodik sz kvet szorosan. gy pldul a release=cvs pontosan egy ilyen rtkmez lesz. Egy supfile ltalban egynl tbb gyjtemny letltst rja le. Ezrt az ilyen llomnyok felptsnek egyik mdja, ha az egyes gyjtemnyhez explicite megadjuk a hozztartoz mezket. Azonban gy a supfile llomnyok gyorsan megnvekednek s knyelmetlenn vlnak, mivel a legtbb gyjtemny esetn szinte ugyanazokat a mezket kellene megadnunk. A CVSup az ilyen tpus bonyodalmak elkerlsre egy alaprtelmezsi megoldst javasol. A *default nev lgyjtemnnyel kezdd sorok segtsgvel meg tudunk adni olyan belltsokat s rtkeket, amelyek az utna kvetkez gyjtemnyek szmra alaprtelmezsnek fognak szmtani a supfile llomnyban. Az itt megadott alaprtelmezsek termszetesen az egyes gyjtemnyekben tetszleges mdon fellbrlhatak, a mezk magn a gyjtemnyen belli megadsval. Az llomnyban az alaprtelmezsek is megvltoztathatak vagy bvthetek tovbbi *default sorok hozzadsval. Mindezek tudatban most mr megkezdhetjk a FreeBSD-CURRENT g tartalmnak letltsre s frissen tartsra alkalmas supfile llomny sszelltst.

Milyen llomnyokat akarunk letlteni? A CVSupon keresztl elrhet llomnyok gyjtemnyeknek hvott nevestett csoportokra bontva rhetek el. A hivatkozhat gyjtemnyek lerst a kvetkez szakaszban talljuk. Ebben a pldban most szeretnnk letlteni az egsz FreeBSD rendszer forrst. Ezt a src-all nev gyjtemnyre hivatkozva rhetjk el. A supfile llomnyunk ltrehozsnak els lpseknt soronknt egyet megadva felsoroljuk a letlteni kvnt gyjtemnyeket (jelen esetnkben csak egyetlen egyet):

957

Fggelk A. A FreeBSD beszerzse


src-all

Milyen verziikra van szksgnk? A CVSup hasznlatval tulajdonkppen a forrsok sszes valaha ltezett verzijhoz hozz tudunk frni. Ez annak ksznhet, hogy a cvsupd szerver kzvetlenl a CVS repositorybl dolgozik, ami pedig az sszes verzit tartalmazza. A tag= s date= rtkmezk segtsgvel adhatjuk meg az ignyelt verzikat.
FigyelemLegynk vatosak azonban a tag= mezk helyes megadsval. Egyes cmkk ugyanis csak bizonyos llomnygyjtemnyek esetn lnek. Ha hibs vagy elrt cmkt adunk meg, akkor a CVSup trlni fog olyan llomnyokat, amelyeket valsznleg nem kellene. A ports-* gyjtemnyek esetben pedig kifejezetten csak a tag=. mezk hasznlhatak!

A tag= mezk a trhzban tallhat szimbolikus cmkket nevezik meg. A cmkknek kt tpusa van: a revzikhoz s az gakhoz tartoz cmkk. A revzis cmkk mindig egy adott revzit hivatkoznak, jelentsk lland. Ezzel szemben az gak cmki egy adott fejlesztsi g adott idpontjban elrhet revzit cmkzi. Mivel az gak cmki nem egy konkrt revzira vonatkoznak, ezrt akr olyanra is utalhatnak, ami pillanatnyilag mg nem is ltezik. Az A.7 Szakaszban megtallhatjuk a fontosabb gak cmkit. A CVSup kongurcis llomnyban a cmkket a tag= eltaggal kell bevezetni (gy teht a RELENG_4 cmke hivatkozsa tag=RELENG_4 lesz). Ne felejtsk el, hogy a Portgyjtemny esetben csak tag=. mez megadsnak van rtelme.
FigyelemIgyekezznk pontosan lemsolni a cmkk neveit, mivel a CVSup nem kpes megklnbztetni az rvnyes s az rvnytelen cmkket. Ha vletlen elrjuk a cmkt, akkor a CVSup gy fog viselkedni, mintha olyan rvnyes cmkre hivatkozhatunk volna, amihez nem tartoznak llomnyok. Ennek kvetkeztben pedig egyszeren letrli a mr meglev forrsainkat.

Egy g cmkjnek megadsa sorn ltalban az adott fejlesztsi vonal legfrissebb verzijt kapjuk meg. Ha viszont az adott g valamelyik korbbi vltozatra lenne szksgnk, akkor a date= rtkmez felhasznlsval meg tudjuk adni a hozztartoz dtumot. Ennek mkdsrl a cvsup(1) man oldala rszletesebben rtekezik. A pldban mi most a FreeBSD-CURRENT verzit akarjuk letlteni. Ezrt a kvetkez sort tesszk a supfile llomnyunk elejre:
*default tag=.

Ha nem adunk meg sem tag=, sem pedig date= mezket, akkor egy fontos eset kvetkezik be. Ilyenkor ugyanis egy konkrt verzi helyett kzvetlenl a szerver CVS repositoryjbl kapjuk meg az llomnyokat, az sszes kiegszt informcijukkal egytt. A fejlesztk ltalban ezt a tpus megoldst kedvelik, mivel gy a sajt rendszerkn is knnyen karban tudnak tartani egy pldnyt, amiben tudnak keresni a revzik kztt s ki tudjk krni akr az llomnyok korbbi vltozatait is. Termszetesen ennek fggvnyben jval tbb trhelyre van szksgk.

Honnan akarjuk ezeket beszerezni? A host= mez belltsval kzljk a cvsup klienssel, honnan tltse le a frisstseket. A CVSup tkrzsek kzl brmelyik megfelel erre a clra, habr leginkbb azt rdemes vlasztani, ami a kibertrben a hozznk legkzelebb esik. A pldban most egy kitallt FreeBSD terjesztsi oldalt vlasztunk, a cvsup99.FreeBSD.org-ot:
*default host=cvsup99.FreeBSD.org

958

Fggelk A. A FreeBSD beszerzse A CVSup futtatsa eltt teht ne felejtsk el megvltoztatni ezt a ltez szmtgp hlzati nevre. A cvsup futtatsakor a -h hlzati nv opci megadsval lehetsgnk ennek fellbrlsra.

Hova akarjuk rakni a szmtgpnkn? A prefix= mez adja meg a cvsup szmra, hogy hova tegye a kapott llomnyokat. A pldban a forrsokat kzvetlenl a forrsokat trol kzponti knyvtrba, a /usr/src knyvtrba tettk. Mivel a src knyvtr neve mr hallgatlagosan benne foglaltatik a letltsre kivlasztott gyjtemny nevben, ezrt itt csak ennyit kell megadnunk:
*default prefix=/usr

Hova akarjuk rakni az llapotot trol llomnyokat? A CVSup kliens egy bzisnak (base) nevezett knyvtrban folyamatosan fenntart bizonyos llomnyokban llapotokat (status le). Ezek a mr letlttt llomnyok nyilvntartsval segtik a CVSup hatkony munkavgzst. Mi most a szabvnyos bzist, a /var/db knyvtrat fogjuk hasznlni:
*default base=/var/db

Amennyiben mg nem ltezne a bzisknt hasznlni kvnt knyvtr, ideje ltrehoznunk. A cvsup ugyanis egy nem ltez knyvtr esetn nem lesz hajland mkdni.

Tovbbi belltsok a supfile llomnyban: ltalban mg egy sor szokott szerepelni a supfile llomnyokban:
*default release=cvs delete use-rel-suffix compress

A release=cvs mez jelzi, hogy a szervernek a FreeBSD f CVS repositorybl kell kikeresnie az informcikat. Tulajdonkppen majdnem mindig errl van sz, s az itt megadhat tbbi lehetsg ismertetse most egybknt is meghaladn a szakasz hatrait. A delete hatsra a CVSup kpes lesz llomnyokat trlni. Mindig rdemes megadnunk, hiszen a CVSup csak gy tudja teljes mrtkben frissentartani a forrsokat. A CVSup termszetesen csak azokat az llomnyokat igyekszik letrlni, amelyek miatt valban felels. A kbor llomnyokat nem fogja bntani. A use-rel-suffix hatsa egy igazi... Rejtly. Ha tnyleg rdekel minket a mkdse, lapozzuk fel btran a cvsup(1) man oldalt. Nyugodtan adjuk meg s klnsebben ne trdjnk vele. A compress bellts segtsgvel a kommunikcis csatornn vndorl adatokat tudjuk gzip-szer mdon tmrteni. Ha a hlzati kapcsolatunk sebessge meghaladja a 1,5 Mbitet msodpercenknt (T1), akkor ezt mr nem rdemes hasznlni, viszont minden ms esetben lnyeges gyorsulst hozhat.

sszegezzk az eddigieket: me a pldaknt sszerakott supfile llomnyunk teljes tartalma:


*default *default *default *default *default src-all tag=. host=cvsup99.FreeBSD.org prefix=/usr base=/var/db release=cvs delete use-rel-suffix compress

959

Fggelk A. A FreeBSD beszerzse

A.6.3.1. A refuse llomny


Ahogy arrl mr korbban sz esett, a CVSup lehzssal frisst. Ez alapveten annyit jelent, hogy feltrcszunk egy CVSup szervert, aki a kvetkezt mondja neknk: A kvetkezket tudod tlem letlteni..., amire a kliensnk ezt vlaszolja: Rendben, akkor nekem kell ez, ez, ez meg ez. Alaprtelmezs szerint a CVSup kliense azokat az llomnyokat fogja letlteni, amelyeket a kongurcis llomnyban szerepl gyjtemnyek s cmkk ltal megneveztnk. Ez azonban nem mindig felel meg az ignyeinknek, klnsen akkor, amikor a doc, ports vagy www fkat akarjuk letlteni az emberek tbbsge ugyanis nem beszl ngy vagy t nyelven, ezrt nincs is szksgk a nyelvfgg llomnyok letltsre. A Portgyjtemny letltse sorn a ports-all helyett egyszeren egyenknt is felsorolhatjuk a szmunkra rdekes kategrikat (pldul ports-astrology, ports-biology stb). Azonban mivel a doc s a www fkhoz nincsenek nyelvfgg gyjtemnyek, ezrt el kell halsznunk a CVSup egyik remek funkcijt, a refuse llomnyt. A refuse llomnnyal lnyegben arra utastjuk a CVSup alkalmazst, hogy a gyjtemnyekbl ne tltse le az sszes llomnyt. gy is fogalmazhatnnk, hogy javaslatra a kliens visszautast (refuse) bizonyos szervertl rkez llomnyokat. Ezeket a visszautastsokat trol refuse llomnyt a bzis/sup/ knyvtrban tallhatjuk meg (illetve ha mg nincsenek, akkor ide kell rakunk ezeket). Itt a bzis a supfile llomnyban megadott base= mezre utal, ami a pldnkban a /var/db knyvtr volt. Ennek megfelelen teht a refuse llomny a /var/db/sup/refuse lesz. A refuse llomny felptse igen egyszer: a letlteni nem kvnt llomnyok s knyvtrak neveit tartalmazza. Pldul ha az angolul mellett esetleg mg beszlnk egy kevs nmetet is, de nincs szksgnk az angol dokumentci nmet fordtsra sem, akkor a kvetkezket rjuk a refuse llomnyba:
doc/bn_* doc/da_* doc/de_* doc/el_* doc/es_* doc/fr_* doc/hu_* doc/it_* doc/ja_* doc/mn_* doc/nl_* doc/no_* doc/pl_* doc/pt_* doc/ru_* doc/sr_* doc/tr_* doc/zh_*

s gy tovbb a tbbi nyelvre is (melyeket a FreeBSD CVS repository (http://www.FreeBSD.org/cgi/cvsweb.cgi/) bngszsvel derthetjk ki). Ezzel az alkalmas funkcival a lass vagy drga internetes kapcsolattal rendelkez felhasznlk nagyon jl tudnak gazdlkodni, mivel gy nem kell letltenik az egyltaln nem hasznlt llomnyokat. A refuse llomnyokrl s a CVSup ms hasonlan elegns funkciirl a sajt man oldalrl tudhatunk meg tbbet.

960

Fggelk A. A FreeBSD beszerzse

A.6.4. A CVSup futtatsa


Most mr kszen llunk egy prba frissts elvgzsre. A parancssorban nem sok mindent kell bernunk ehhez:
# cvsup supfile

ahol a supfile a frissen ltrehozott supfile llomnyunk neve lesz. Felttelezve, hogy a parancsot X11 alatt adtunk ki, az cvsup erre feldob egy grakus ablakot nhny gombbal. Nyomjuk meg a go felirat gombot s dljnk htra. Mivel a pldban a /usr/src knyvtrunk frisstst lltottuk be, az llomnyok aktualizlshoz szksges jogosultsgok biztostshoz a cvsup programot root felhasznlknt kell elindtanunk. Teljesen rthet, ha egy kicsit izgatottak vagyunk ezekben a pillanatokban, hiszen az elbb hoztunk ltre egy ltalunk eddig ismeretlen programhoz egy kongurcis llomnyt. Ezrt megemltennk, hogy ilyenkor elszr mindig prbljuk ki a kongurcikat, mieltt azok brmilyen mdostst vgeznnek a fontos llomnyainkon. Ehhez hozzunk ltre valahol egy res knyvtrat, majd adjuk meg a parancssorban ennek a nevt:
# mkdir /var/tmp/proba # cvsup supfile /var/tmp/proba

Az gy megadott knyvtrba kerlnek a frissts eredmnyekppen keletkez llomnyok. A CVSup elszr megvizsglja a /usr/src knyvtrban tallhat llomnyokat, viszont egyikket sem mdostja vagy trli. A frisstsek ehelyett a /var/tmp/proba/usr/src knyvtrba fognak kerlni. A CVSup emellett mg a bzisknyvtrban trolt llapotokat sem fogja megvltoztatni. A mdostott llomnyok j vltozatai a megadott knyvtrba jnnek ltre. Mivel a /usr/src knyvtrt ehhez csak olvasni fogjuk, a prba lefuttatshoz mg root felhasznlnak sem kell lennnk. Ha nem hasznlunk X11-et vagy egyszeren csak nincs szksgnk a grakus felletre, a parancssorban pr tovbbi opci megadsval gy is kiadhatjuk a cvsup parancsot:
# cvsup -g -L 2 supfile

A -g hatsra a CVSup nem hozza be a grakus fellett. Ha nem tall X11-et, akkor ez termszetesen automatikus, de ellenkez esetben ezt is meg kell adnunk. Az -L 2 megadsval a CVSup az sszes elvgzend frisstsrl rszletes rtestst ad. A rszletessgnek hrom foka van, -L 0-tl indulva egszen -L 2-ig. Itt az alaprtelmezett rtk a 0, amivel a hibazenetek kivtelvel egyetlen zenetet sem kapunk. Rengeteg egyb bellts adhat mg meg, ezeket a cvsup -H kiadsval krdezhetjk le. A belltsok pontosabb lerst a man oldalon talljuk meg. Miutn elgedetten tapasztaltuk, hogy a frissts remekl mkdik, a cron(8) segtsgvel prbljuk meg az egsz folyamatot nmkdv tenni a CVSup szablyos idkznknti futtatsval. Ekkor viszont magtl rtetdik, hogy a CVSup szmra ne engedjk hasznlni a grakus felletet.

A.6.5. A CVSup llomnygyjtemnyei


A CVSup rvn elrhet llomnygyjtemnyek egy hierarchikus rendszert alkotnak. Van nhny nagyobb llomnygyjtemny, amelyek kisebb al-llomnygyjtemnyekre bonthatak. A nagyobb gyjtemnyek letltse ezrt a kisebb algyjtemnyek letltsvel egyenl. A gyjtemnyek kzt fennll hierarchikus rendszer a lentebb szerepl lista behzsaiban rhet tetten.

961

Fggelk A. A FreeBSD beszerzse A leggyakrabban hasznlt gyjtemnyek a src-all s a ports-all neveket viselik. A tbbi gyjtemnyt ltalban csak kevesen s csak specilis clokra hasznljk, ezrt egyes tkrzseken nem felttlenl talljuk meg mindegyikket.
cvs-all release=cvs

A FreeBSD f CVS repositoryja, belertve a titkostshoz tartoz kdokat is.


distrib release=cvs

A FreeBSD terjesztshez s tkrzshez kapcsold llomnyok.


doc-all release=cvs

A FreeBSD kziknyvnek s a tbbi dokumentci forrsai. Nem tartalmazza a FreeBSD honlapjnak forrsait.
ports-all release=cvs

A FreeBSD portgyjtemnye.
Fontos: Ha nem akarjuk a ports-all egszt (vagyis a teljes portft) frissteni, csak a lentebb szerepl egyes algyjtemnyeket letlteni, akkor soha ne feledkezznk meg a ports-base megadsrl! Amikor valami vltozik a portok mkdsben, akkor a ports-base ltal kpviselt algyjtemnyben szerepl llomnyokat igen gyorsan elkezdik hasznlni a valdi portok. Ezrt ha csak a valdi portokat frisstjk, amelyek viszont ignyt tartanak nhny jabb funkcira is, akkor knnyen fordtsi hibra vagy klnbz rejtlyes hibazenetekbe futhatunk. Emiatt legeslegelszr mindig tegynk rla, hogy a ports-base algyjtemnynk a lehet legfrissebb legyen.

Fontos: Ha a ports/INDEX llomny egy sajt pldnyt kvnjuk ltrehozni, akkor ahhoz a ports-all gyjtemnyt (teht a teljes portft) le kell krnnk. A ports/INDEX llomnyt a portfa egy rsze alapjn nem kszthetjk el. Errl bvebben lsd a GYIK (http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/faq/applications.html#MAKE-INDEX)-ot.

ports-accessibility release=cvs

A fogyatkos felhasznlkat segt szoftverek.


ports-arabic release=cvs

Arab nyelvi tmogats.


ports-archivers release=cvs

Archivl eszkzk.
ports-astro release=cvs

Csillagszathoz tartoz portok.

962

Fggelk A. A FreeBSD beszerzse


ports-audio release=cvs

Hangtmogats.
ports-base release=cvs

A Portgyjtemny sajt infrastruktrja az Mk/, Tools/ s /usr/ports klnfle alknyvtraiban elhelyezked llomnyok.
Megjegyzs: Ne hagyjuk gyelmen kvl a fenti fontos gyelmeztetst sem: ezt az algyjtemnyt mindig a FreeBSD Portgyjtemnyvel egytt frisstsk!

ports-benchmarks release=cvs

Teljestmnytesztek.
ports-biology release=cvs

Biolgia.
ports-cad release=cvs

Szmtgpes tervezeszkzk (CAD).


ports-chinese release=cvs

Knai nyelvi tmogats.


ports-comms release=cvs

Kommunikcis szoftverek.
ports-converters release=cvs

Karakterkdolsok kzti talaktk.


ports-databases release=cvs

Adatbzisok.
ports-deskutils release=cvs

A szmtgp feltallsa eltt is mr ltez eszkzk.


ports-devel release=cvs

Fejleszteszkzk.
ports-dns release=cvs

Nvfeloldssal kapcsolatos szoftverek.


ports-editors release=cvs

Szvegszerkesztk.

963

Fggelk A. A FreeBSD beszerzse


ports-emulators release=cvs

Ms opercis rendszerek emultorai.


ports-finance release=cvs

Pnzgyi, gazdasgi s hasonl alkalmazsok.


ports-ftp release=cvs

FTP kliensek s szerverek.


ports-games release=cvs

Jtkok.
ports-german release=cvs

Nmet nyelvi tmogats.


ports-graphics release=cvs

Grakus segdeszkzk.
ports-hebrew release=cvs

Hber nyelvi tmogats.


ports-hungarian release=cvs

Magyar nyelvi tmogats.


ports-irc release=cvs

IRC-vel kapcsolatos programok.


ports-japanese release=cvs

Japn nyelvi tmogats.


ports-java release=cvs

Java segdeszkzk.
ports-korean release=cvs

Koreai nyelvi tmogats.


ports-lang release=cvs

Programozsi nyelvek.
ports-mail release=cvs

Levelez programok.
ports-math release=cvs

Numerikus szmtsokkal foglalkoz programok.

964

Fggelk A. A FreeBSD beszerzse


ports-mbone release=cvs

MBone alkalmazsok.
ports-misc release=cvs

Egyb segdprogramok.
ports-multimedia release=cvs

Multimedis szoftverek.
ports-net release=cvs

Hlzati szoftverek.
ports-net-im release=cvs

zenetkld (Instant Messaging, IM) szoftverek.


ports-net-mgmt release=cvs

Hlzati karbantart szoftverek.


ports-net-p2p release=cvs

Egyenrang (Peer to Peer, P2P) hlzatok.


ports-news release=cvs

USENET hrszoftverek.
ports-palm release=cvs

A Palm sorozat szoftveres tmogatsa.


ports-polish release=cvs

Lengyel nyelvi tmogats.


ports-ports-mgmt release=cvs

A portok s csomagok karbantartst vgz segdeszkzk.


ports-portuguese release=cvs

Portugl nyelvi tmogats.


ports-print release=cvs

Nyomdai programok.
ports-russian release=cvs

Orosz nyelvi tmogats.


ports-science release=cvs

Tudomnyos programok.

965

Fggelk A. A FreeBSD beszerzse


ports-security release=cvs

Biztonsgi segdprogramok.
ports-shells release=cvs

Parancsrtelmezk.
ports-sysutils release=cvs

Rendszerprogramok.
ports-textproc release=cvs

Szvegfeldolgozst segt eszkzk (kivve az asztali kiadvnyszerkesztst).


ports-ukrainian release=cvs

Ukrn nyelvi tmogats.


ports-vietnamese release=cvs

Vietnmi nyelvi tmogats.


ports-www release=cvs

A vilghlhoz tartoz szoftverek.


ports-x11 release=cvs

Az X Window System mkdst segt portok.


ports-x11-clocks release=cvs

X11 rk.
ports-x11-drivers release=cvs

X11 meghajtk.
ports-x11-fm release=cvs

X11 llomnykezelk.
ports-x11-fonts release=cvs

X11 bettpusok s a hozzjuk tartoz segdprogramok.


ports-x11-toolkits release=cvs

X11 eszkzrendszerek.
ports-x11-servers release=cvs

X11 szerverek.
ports-x11-themes release=cvs

X11 tmk.

966

Fggelk A. A FreeBSD beszerzse


ports-x11-wm release=cvs

X11 ablakkezelk.

projects-all release=cvs

A FreeBSD projektek forrsainak repositoryja.


src-all release=cvs

A FreeBSD fontosabb forrsai, a titkostshoz tartoz kdokkal egytt.


src-base release=cvs

A /usr/src knyvtrban lev egyb llomnyok.


src-bin release=cvs

Az egyfelhasznls mdban hasznlhat segdeszkzk (/usr/src/bin).


src-cddl release=cvs

A CDDL licenc szerint terjesztett segdprogramok s fggvnyknyvtrak (/usr/src/cddl).


src-contrib release=cvs

A FreeBSD Projekten kvl fejlesztett segdprogramok s fggvnyknyvtrak, viszonylag kevs mdostssal (/usr/src/contrib).
src-crypto release=cvs

A FreeBSD Projekten kvl fejlesztett, titkostssal kapcsolatos segdprogramok s fggvnyknyvtrak, viszonylag kevs mdostssal (/usr/src/crypto).
src-eBones release=cvs

Kerberos s DES (/usr/src/eBones). A FreeBSD jelenlegi vltozatai nem hasznljk.


src-etc release=cvs

A rendszer belltsait tartalmaz llomnyok (/usr/src/etc).


src-games release=cvs

Jtkok (/usr/src/games).
src-gnu release=cvs

A GPL licenc szerint terjesztett segdprogramok (/usr/src/gnu).


src-include release=cvs

(C nyelvi) Header llomnyok (/usr/src/include).


src-kerberos5 release=cvs

A Kerberos5 biztonsgi csomag (/usr/src/kerberos5).

967

Fggelk A. A FreeBSD beszerzse


src-kerberosIV release=cvs

A KerberosIV biztonsgi csomag (/usr/src/kerberosIV).


src-lib release=cvs

Fggvnyknyvtrak (/usr/src/lib).
src-libexec release=cvs

Ms programok ltal futtatott rendszerprogramok (/usr/src/libexec).


src-release release=cvs

A FreeBSD kiadsok elksztshez szksges llomnyok (/usr/src/release).


src-rescue release=cvs

Statikusan linkelt programok vszhelyzet esetre, lsd rescue(8) (/usr/src/rescue).


src-sbin release=cvs

Egyfelhasznls mdban hasznlhat rendszereszkzk (/usr/src/sbin).


src-secure release=cvs

Titkostssal foglalkoz fggvnyknyvtrak s parancsok (/usr/src/secure).


src-share release=cvs

Tbb rendszer kztt megoszthat llomnyok (/usr/src/share).


src-sys release=cvs

A rendszermag (/usr/src/sys).
src-sys-crypto release=cvs

A rendszermagban lev titkostssal foglalkoz kd (/usr/src/sys/crypto).


src-tools release=cvs

A FreeBSD karbantartsra val klnbz segdprogramok (/usr/src/tools).


src-usrbin release=cvs

Felhasznli segdprogramok (/usr/src/usr.bin).


src-usrsbin release=cvs

Rendszerszint segdprogramok (/usr/src/usr.sbin).

www release=cvs

A FreeBSD Projekt honlapjnak forrskdja.

968

Fggelk A. A FreeBSD beszerzse


distrib release=self

A CVSup szerver sajt kongurcis llomnyai. A CVSup tkrzsei hasznljk.


gnats release=current

A GNATS hibanyilvntart adatbzis.


mail-archive release=current

A FreeBSD levelezsi listinak archvuma.


www release=current

A FreeBSD Projekt honlapjnak generlt llomnyai (de nem a forrsai). A WWW tkrzsek hasznljk.

A.6.6. Bvebb informcik


A CVSup rszletesebb bemutatst s a hozztartoz GYIK-ot A CVSup honlapjn (http://www.cvsup.org) talljuk meg. A CVSup FreeBSD-re vonatkoz trgyalsa a FreeBSD technical discussions levelezsi lista (http://lists.FreeBSD.org/mailman/listinfo/freebsd-hackers)n trtnik. Itt s az FreeBSD announcements levelezsi lista (http://lists.FreeBSD.org/mailman/listinfo/freebsd-announce)n jelentik be a szoftver jabb vltozatait. A CVSup alkalmazssal kapcsolatos krdseket s hibajelentseket illeten a CVSup GYIK (http://www.cvsup.org/faq.html#bugreports)-ot rdemes megnznnk.

A.6.7. CVSup oldalak


A FreeBSD CVSup szerverei az albbi oldalakon rhetek el: Kzponti szerverek, Elsdleges tkrzsek, Amerikai Egyeslt llamok, Argentna, Ausztrlia, Ausztria, Brazlia, Bulgria, Costa Rica, Cseh Kztrsasg, Dnia, Dl-Afrika, Egyeslt Kirlysg, sztorszg, Finnorszg, Franciaorszg, Flp-szigetek, Grgorszg, Hollandia, Indonzia, rorszg, Izland, Izrael, Japn, Kanada, Kna, Kirgizisztn, Korea, Kuvait, Lengyelorszg, Lettorszg, Litvnia, Magyarorszg, Nmetorszg, Norvgia, Olaszorszg, rmnyorszg, Oroszorszg, Portuglia, Romnia, San Marino, Spanyolorszg, Svjc, Svdorszg, Szingapr, Szlovk Kztrsasg, Szlovnia, Tajvan, Thaifld, Trkorszg, j-Zland, Ukrajna. (Dtum: 2010/06/17 12:49:57 UTC) Kzponti szerverek

cvsup.FreeBSD.org

Elsdleges tkrzsek

cvsup1.FreeBSD.org

969

Fggelk A. A FreeBSD beszerzse


cvsup2.FreeBSD.org cvsup3.FreeBSD.org cvsup4.FreeBSD.org cvsup5.FreeBSD.org cvsup6.FreeBSD.org cvsup7.FreeBSD.org cvsup8.FreeBSD.org cvsup9.FreeBSD.org cvsup10.FreeBSD.org cvsup11.FreeBSD.org cvsup12.FreeBSD.org cvsup13.FreeBSD.org cvsup14.FreeBSD.org cvsup15.FreeBSD.org cvsup16.FreeBSD.org cvsup18.FreeBSD.org

Amerikai Egyeslt llamok

cvsup1.us.FreeBSD.org cvsup2.us.FreeBSD.org cvsup3.us.FreeBSD.org cvsup4.us.FreeBSD.org cvsup5.us.FreeBSD.org cvsup6.us.FreeBSD.org cvsup7.us.FreeBSD.org cvsup8.us.FreeBSD.org cvsup9.us.FreeBSD.org cvsup10.us.FreeBSD.org cvsup11.us.FreeBSD.org cvsup12.us.FreeBSD.org cvsup13.us.FreeBSD.org cvsup14.us.FreeBSD.org cvsup15.us.FreeBSD.org

970

Fggelk A. A FreeBSD beszerzse


cvsup16.us.FreeBSD.org cvsup18.us.FreeBSD.org

Argentna

cvsup.ar.FreeBSD.org

Ausztrlia

cvsup.au.FreeBSD.org

Ausztria

cvsup.at.FreeBSD.org cvsup2.at.FreeBSD.org

Brazlia

cvsup.br.FreeBSD.org cvsup2.br.FreeBSD.org cvsup3.br.FreeBSD.org cvsup4.br.FreeBSD.org cvsup5.br.FreeBSD.org

Bulgria

cvsup.bg.FreeBSD.org

Costa Rica

cvsup1.cr.FreeBSD.org

971

Fggelk A. A FreeBSD beszerzse Cseh Kztrsasg

cvsup.cz.FreeBSD.org

Dnia

cvsup.dk.FreeBSD.org cvsup2.dk.FreeBSD.org

Dl-Afrika

cvsup.za.FreeBSD.org cvsup2.za.FreeBSD.org

Egyeslt Kirlysg

cvsup.uk.FreeBSD.org cvsup2.uk.FreeBSD.org cvsup3.uk.FreeBSD.org cvsup4.uk.FreeBSD.org

sztorszg

cvsup.ee.FreeBSD.org

Finnorszg

cvsup..FreeBSD.org cvsup2..FreeBSD.org

Franciaorszg

cvsup.fr.FreeBSD.org

972

Fggelk A. A FreeBSD beszerzse


cvsup1.fr.FreeBSD.org cvsup2.fr.FreeBSD.org cvsup3.fr.FreeBSD.org cvsup4.fr.FreeBSD.org cvsup5.fr.FreeBSD.org cvsup8.fr.FreeBSD.org

Flp-szigetek

cvsup1.ph.FreeBSD.org

Grgorszg

cvsup.gr.FreeBSD.org cvsup2.gr.FreeBSD.org

Hollandia

cvsup.nl.FreeBSD.org cvsup2.nl.FreeBSD.org cvsup3.nl.FreeBSD.org

Indonzia

cvsup.id.FreeBSD.org

rorszg

cvsup.ie.FreeBSD.org cvsup2.ie.FreeBSD.org

973

Fggelk A. A FreeBSD beszerzse Izland

cvsup.is.FreeBSD.org

Izrael

cvsup.il.FreeBSD.org

Japn

cvsup.jp.FreeBSD.org cvsup2.jp.FreeBSD.org cvsup3.jp.FreeBSD.org cvsup4.jp.FreeBSD.org cvsup5.jp.FreeBSD.org cvsup6.jp.FreeBSD.org

Kanada

cvsup1.ca.FreeBSD.org

Kna

cvsup.cn.FreeBSD.org cvsup2.cn.FreeBSD.org cvsup3.cn.FreeBSD.org cvsup4.cn.FreeBSD.org cvsup5.cn.FreeBSD.org

Kirgizisztn

cvsup.kg.FreeBSD.org

974

Fggelk A. A FreeBSD beszerzse Korea

cvsup.kr.FreeBSD.org cvsup2.kr.FreeBSD.org cvsup3.kr.FreeBSD.org

Kuvait

cvsup1.kw.FreeBSD.org

Lengyelorszg

cvsup.pl.FreeBSD.org cvsup2.pl.FreeBSD.org cvsup3.pl.FreeBSD.org

Lettorszg

cvsup.lv.FreeBSD.org cvsup2.lv.FreeBSD.org

Litvnia

cvsup.lt.FreeBSD.org cvsup2.lt.FreeBSD.org cvsup3.lt.FreeBSD.org

Magyarorszg

cvsup.hu.FreeBSD.org

975

Fggelk A. A FreeBSD beszerzse Nmetorszg

cvsup.de.FreeBSD.org cvsup2.de.FreeBSD.org cvsup3.de.FreeBSD.org cvsup4.de.FreeBSD.org cvsup5.de.FreeBSD.org cvsup6.de.FreeBSD.org cvsup7.de.FreeBSD.org cvsup8.de.FreeBSD.org

Norvgia

cvsup.no.FreeBSD.org

Olaszorszg

cvsup.it.FreeBSD.org

rmnyorszg

cvsup1.am.FreeBSD.org

Oroszorszg

cvsup.ru.FreeBSD.org cvsup2.ru.FreeBSD.org cvsup3.ru.FreeBSD.org cvsup4.ru.FreeBSD.org cvsup5.ru.FreeBSD.org cvsup6.ru.FreeBSD.org cvsup7.ru.FreeBSD.org

976

Fggelk A. A FreeBSD beszerzse Portuglia

cvsup.pt.FreeBSD.org cvsup2.pt.FreeBSD.org cvsup3.pt.FreeBSD.org

Romnia

cvsup.ro.FreeBSD.org cvsup1.ro.FreeBSD.org cvsup2.ro.FreeBSD.org cvsup3.ro.FreeBSD.org

San Marino

cvsup.sm.FreeBSD.org

Spanyolorszg

cvsup.es.FreeBSD.org cvsup2.es.FreeBSD.org cvsup3.es.FreeBSD.org

Svjc

cvsup.ch.FreeBSD.org

Svdorszg

cvsup.se.FreeBSD.org cvsup2.se.FreeBSD.org

977

Fggelk A. A FreeBSD beszerzse Szingapr

cvsup.sg.FreeBSD.org

Szlovk Kztrsasg

cvsup.sk.FreeBSD.org

Szlovnia

cvsup.si.FreeBSD.org cvsup2.si.FreeBSD.org

Tajvan

cvsup.tw.FreeBSD.org cvsup3.tw.FreeBSD.org cvsup4.tw.FreeBSD.org cvsup5.tw.FreeBSD.org cvsup6.tw.FreeBSD.org cvsup7.tw.FreeBSD.org cvsup8.tw.FreeBSD.org cvsup9.tw.FreeBSD.org cvsup10.tw.FreeBSD.org cvsup11.tw.FreeBSD.org cvsup12.tw.FreeBSD.org cvsup13.tw.FreeBSD.org cvsup14.tw.FreeBSD.org

Thaifld

cvsup.th.FreeBSD.org

978

Fggelk A. A FreeBSD beszerzse Trkorszg

cvsup.tr.FreeBSD.org cvsup2.tr.FreeBSD.org

j-Zland

cvsup.nz.FreeBSD.org cvsup2.nz.FreeBSD.org

Ukrajna

cvsup2.ua.FreeBSD.org cvsup3.ua.FreeBSD.org cvsup5.ua.FreeBSD.org cvsup6.ua.FreeBSD.org cvsup7.ua.FreeBSD.org

A.7. CVS cmkk


Meg kell adnunk egy revzi cmkjt, amikor a cvs vagy CVSup hasznlatval letltjk vagy frisstjk a forrsokat. A revzis cmkk a FreeBSD egyik fejlesztsi irnyt vagy egy adott idpontbeli llapott hivatkozzk. Az elbbi egy g cmkje, mg az utbbi pedig egy kiads cmkje.

A.7.1. Az gak cmki


A HEAD kivtelvel (amely mindig egy rvnyes cmke) az sszes cmke csak a src/ fra vonatkozik. A ports/, doc/ s www/ fk nem tartalmaznak gakat. HEAD A f fejlesztsi g, avagy a FreeBSD-CURRENT szimbolikus neve. Ha nem adunk meg revzit, ez lesz az alaprtelmezs. A CVSup szmra ezt . cmke jelzi (itt most nem mondatvgi pontot jelli, hanem a . karaktert).

979

Fggelk A. A FreeBSD beszerzse


Megjegyzs: A CVS szmra ez lesz az alaprtelmezett rtk, ha nem adunk meg konkrt revzis cmkt. Tbbnyire nem tlzottan j tlet egy STABLE vltozatot hasznl gpen a CURRENT verzij forrsok kikrse, kivve hacsak nem ez a szndkunk.

RELENG_8 A FreeBSD-8.X fejlesztsi ga, ms nven a FreeBSD 8-STABLE RELENG_8_0 A FreeBSD-8.0 kiads ga, ahov csak a biztonsgi frisstsek s a kritikus hibajavtsok kerlnek. RELENG_7 A FreeBSD-7.X fejlesztsi ga, ms nven a FreeBSD 7-STABLE RELENG_7_3 A FreeBSD-7.3 kiads ga, ahov csak a biztonsgi frisstsek s a kritikus hibajavtsok kerlnek. RELENG_7_2 A FreeBSD-7.2 kiads ga, ahov csak a biztonsgi frisstsek s a kritikus hibajavtsok kerlnek. RELENG_7_1 A FreeBSD-7.1 kiads ga, ahov csak a biztonsgi frisstsek s a kritikus hibajavtsok kerlnek. RELENG_7_0 A FreeBSD-7.0 kiads ga, ahov csak a biztonsgi frisstsek s a kritikus hibajavtsok kerlnek. RELENG_6 A FreeBSD-6.X fejlesztsi ga, ms nven a FreeBSD 6-STABLE RELENG_6_4 A FreeBSD-6.4 kiads ga, ahov csak biztonsgi frisstsek s a kritikus hibajavtsok kerlnek. RELENG_6_3 A FreeBSD-6.3 kiads ga, ahov csak biztonsgi frisstsek s a kritikus hibajavtsok kerlnek. RELENG_6_2 A FreeBSD-6.2 kiads ga, ahov csak biztonsgi frisstsek s a kritikus hibajavtsok kerlnek. RELENG_6_1 A FreeBSD-6.1 kiads ga, ahov csak biztonsgi frisstsek s a kritikus hibajavtsok kerlnek. RELENG_6_0 A FreeBSD-6.0 kiads ga, ahov csak biztonsgi frisstsek s a kritikus hibajavtsok kerlnek.

980

Fggelk A. A FreeBSD beszerzse RELENG_5 A FreeBSD-5.X fejlesztsi g, ms nven a FreeBSD 5-STABLE. RELENG_5_5 A FreeBSD-5.5 kiads ga, ahov csak biztonsgi frisstsek s a kritikus hibajavtsok kerlnek. RELENG_5_4 A FreeBSD-5.4 kiads ga, ahov csak biztonsgi frisstsek s a kritikus hibajavtsok kerlnek. RELENG_5_3 A FreeBSD-5.3 kiads ga, ahov csak biztonsgi frisstsek s a kritikus hibajavtsok kerlnek. RELENG_5_2 A FreeBSD-5.2 s FreeBSD-5.2.1 kiadsok ga, ahov csak biztonsgi frisstsek s a kritikus hibajavtsok kerlnek. RELENG_5_1 A FreeBSD-5.1 kiads ga, ahov csak biztonsgi frisstsek s a kritikus hibajavtsok kerlnek. RELENG_5_0 A FreeBSD-5.0 kiads ga, ahov csak biztonsgi frisstsek s a kritikus hibajavtsok kerlnek. RELENG_4 A FreeBSD-4.X fejlesztsi ga, ms nven a FreeBSD 4-STABLE. RELENG_4_11 A FreeBSD-4.11 kiads ga, ahov csak biztonsgi frisstsek s a kritikus hibajavtsok kerlnek. RELENG_4_10 A FreeBSD-4.10 kiads ga, ahov csak biztonsgi frisstsek s a kritikus hibajavtsok kerlnek. RELENG_4_9 A FreeBSD-4.9 kiads ga, ahov csak biztonsgi frisstsek s a kritikus hibajavtsok kerlnek. RELENG_4_8 A FreeBSD-4.8 kiads ga, ahov csak biztonsgi frisstsek s a kritikus hibajavtsok kerlnek. RELENG_4_7 A FreeBSD-4.7 kiads ga, ahov csak biztonsgi frisstsek s a kritikus hibajavtsok kerlnek. RELENG_4_6 A FreeBSD-4.6 s FreeBSD-4.6.2 kiadsok ga, ahov csak biztonsgi frisstsek s a kritikus hibajavtsok kerlnek.

981

Fggelk A. A FreeBSD beszerzse RELENG_4_5 A FreeBSD-4.5 kiads ga, ahov csak biztonsgi frisstsek s a kritikus hibajavtsok kerlnek. RELENG_4_4 A FreeBSD-4.4 kiads ga, ahov csak biztonsgi frisstsek s a kritikus hibajavtsok kerlnek. RELENG_4_3 A FreeBSD-4.3 kiads ga, ahov csak biztonsgi frisstsek s a kritikus hibajavtsok kerlnek. RELENG_3 A FreeBSD-3.X fejlesztsi ga, ms nven a 3.X-STABLE. RELENG_2_2 A FreeBSD-2.2.X fejlesztsi ga, ms nven a 2.2-STABLE. Ez az g manapsg mr elavult.

A.7.2. A kiadsok cmki


Ezek a cmkk a FreeBSD egyes kiadsainak dtumra hivatkoznak. Egy kiads elksztsnek s terjesztsnek folyamatrl rszleteiben a kiadsokat sszefoglal laprl (http://www.FreeBSD.org/releng/) s a kiadsok ptsrl szl cikkbl (http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/releng/release-proc.html) tjkozdhatunk. Az src fban RELENG_ kezdet cmkket tallunk. A ports s doc fkban a cmkk nevei a RELEASE eltaggal kezddnek. Vgezetl a www fban nincsenek kiadsokhoz tartoz cmkk. RELENG_7_3_0_RELEASE FreeBSD 7.3 RELENG_7_2_0_RELEASE FreeBSD 7.2 RELENG_7_1_0_RELEASE FreeBSD 7.1 RELENG_7_0_0_RELEASE FreeBSD 7.0 RELENG_6_4_0_RELEASE FreeBSD 6.4 RELENG_6_3_0_RELEASE FreeBSD 6.3 RELENG_6_2_0_RELEASE FreeBSD 6.2

982

Fggelk A. A FreeBSD beszerzse RELENG_6_1_0_RELEASE FreeBSD 6.1 RELENG_6_0_0_RELEASE FreeBSD 6.0 RELENG_5_5_0_RELEASE FreeBSD 5.5 RELENG_5_4_0_RELEASE FreeBSD 5.4 RELENG_4_11_0_RELEASE FreeBSD 4.11 RELENG_5_3_0_RELEASE FreeBSD 5.3 RELENG_4_10_0_RELEASE FreeBSD 4.10 RELENG_5_2_1_RELEASE FreeBSD 5.2.1 RELENG_5_2_0_RELEASE FreeBSD 5.2 RELENG_4_9_0_RELEASE FreeBSD 4.9 RELENG_5_1_0_RELEASE FreeBSD 5.1 RELENG_4_8_0_RELEASE FreeBSD 4.8 RELENG_5_0_0_RELEASE FreeBSD 5.0 RELENG_4_7_0_RELEASE FreeBSD 4.7 RELENG_4_6_2_RELEASE FreeBSD 4.6.2

983

Fggelk A. A FreeBSD beszerzse RELENG_4_6_1_RELEASE FreeBSD 4.6.1 RELENG_4_6_0_RELEASE FreeBSD 4.6 RELENG_4_5_0_RELEASE FreeBSD 4.5 RELENG_4_4_0_RELEASE FreeBSD 4.4 RELENG_4_3_0_RELEASE FreeBSD 4.3 RELENG_4_2_0_RELEASE FreeBSD 4.2 RELENG_4_1_1_RELEASE FreeBSD 4.1.1 RELENG_4_1_0_RELEASE FreeBSD 4.1 RELENG_4_0_0_RELEASE FreeBSD 4.0 RELENG_3_5_0_RELEASE FreeBSD 3.5 RELENG_3_4_0_RELEASE FreeBSD 3.4 RELENG_3_3_0_RELEASE FreeBSD 3.3 RELENG_3_2_0_RELEASE FreeBSD 3.2 RELENG_3_1_0_RELEASE FreeBSD 3.1 RELENG_3_0_0_RELEASE FreeBSD 3.0

984

Fggelk A. A FreeBSD beszerzse RELENG_2_2_8_RELEASE FreeBSD 2.2.8 RELENG_2_2_7_RELEASE FreeBSD 2.2.7 RELENG_2_2_6_RELEASE FreeBSD 2.2.6 RELENG_2_2_5_RELEASE FreeBSD 2.2.5 RELENG_2_2_2_RELEASE FreeBSD 2.2.2 RELENG_2_2_1_RELEASE FreeBSD 2.2.1 RELENG_2_2_0_RELEASE FreeBSD 2.2.0

A.8. AFS oldalak


A FreeBSD a kvetkez szerverein rhet el AFS: Svdorszg Az llomnyok a kvetkez helyen rhetek el: /afs/stacken.kth.se/ftp/pub/FreeBSD/
stacken.kth.se 130.237.234.43 130.237.237.230 130.237.234.3 # Stacken Computer Club, KTH, Svdorszg #hot.stacken.kth.se #fishburger.stacken.kth.se #milko.stacken.kth.se

Karbantart: <ftp@stacken.kth.se>

A.9. Rsync oldalak


A most kvetkez oldalakon a FreeBSD-t rhetjk el az rsync protokollal. Az rsync segdprogram mkdsben leginkbb a rcp(1) parancshoz hasonlt, de sokkal tbb belltssal rendelkezik, s az rsync tvoli frisstseket kezel protokollja segtsgvel csak az llomnyok csoportjai kztt lev eltrseket kldi t, amivel a hlzaton keresztli szinkronizci rendkvl felgyorsthat. Ez olyankor jelent szmunkra a legtbbet, ha a FreeBSD FTP szervernek vagy CVS repositoryjnak egyik tkrzst tartjuk karban. Az rsync tbb opercis rendszerre is elrhet, s FreeBSD-n a net/rsync port vagy csomag tartalmazza.

985

Fggelk A. A FreeBSD beszerzse Cseh Kztrsasg rsync://ftp.cz.FreeBSD.org/ Elrhet gyjtemnyek:


ftp: a FreeBSD FTP szervernek rszleges tkrzse. FreeBSD: a FreeBSD FTP szervernek teljes tkrzse.

Hollandia rsync://ftp.nl.FreeBSD.org/ Elrhet gyjtemnyek:

FreeBSD: a FreeBSD FTP szervernek teljes tkrzse.

Oroszorszg rsync://ftp.mtu.ru Elrhet gyjtemnyek:


FreeBSD: A FreeBSD FTP szerver teljes tartalma. FreeBSD-gnats: A GNATS hibanyilvntart adatbzis. FreeBSD-Archive: A FreeBSD archvumait trol FTP szerver tkrzse.

Tajvan rsync://ftp.tw.FreeBSD.org/ rsync://ftp2.tw.FreeBSD.org/ rsync://ftp6.tw.FreeBSD.org/ Elrhet gyjtemnyek:

FreeBSD: a FreeBSD FTP szervernek teljes tkrzse.

Egyeslt Kirlysg rsync://rsync.mirrorservice.org/ Elrhet gyjtemnyek:

sites/ftp.freebsd.org: a FreeBSD FTP szervernek teljes tkrzse.

Amerikai Egyeslt llamok rsync://ftp-master.FreeBSD.org/ Ezt a szervert csak az elsdleges FreeBSD tkrzseknek szabad hasznlniuk.

986

Fggelk A. A FreeBSD beszerzse Elrhet gyjtemnyek:


FreeBSD: a FreeBSD FTP szervernek kzponti archvuma. acl: a FreeBSD kzponti ACL listja.

rsync://ftp13.FreeBSD.org/ Elrhet gyjtemnyek:

FreeBSD: a FreeBSD FTP szerver teljes tkrzse.

987

Fggelk B. Irodalomjegyzk
Mg a man oldalak a FreeBSD opercis rendszer egyes nll rszeit trgyaljk, ismert a tny, hogy arrl egyltaln nem szlnak, mikppen illeszkednek egymshoz ezek az alkotelemek, s ezltal hogyan mkdik maga az opercis rendszer. Erre a clra egyedl csak egy j UNIX-os rendszeradminisztrcis szakknyv s egy j felhasznli kziknyv alkalmas.

B.1. A FreeBSD-rl szl knyvek s folyiratok


Idegennyelv knyvek s folyiratok:

Using FreeBSD (http://jdli.tw.FreeBSD.org/publication/book/freebsd2/index.htm) (knai). Drmaster (http://www.drmaster.com.tw/), 1997. ISBN 9-578-39435-7. FreeBSD Unleashed (knai fordts). China Machine Press (http://www.hzbook.com/). ISBN 7-111-10201-0. FreeBSD From Scratch (1. kiads, knai). China Machine Press. ISBN 7-111-07482-3. FreeBSD From Scratch (2. kiads, knai). China Machine Press. ISBN 7-111-10286-X. FreeBSD Handbook (2. kiads, knai). Posts & Telecom Press (http://www.ptpress.com.cn/). ISBN 7-115-10541-3. FreeBSD 3.x Internet (knai). Tsinghua University Press (http://www.tup.tsinghua.edu.cn/). ISBN 7-900625-66-6. FreeBSD & Windows (knai). China Railway Publishing House (http://www.tdpress.com/). ISBN 7-113-03845-X FreeBSD Internet Services HOWTO (knai). China Railway Publishing House. ISBN 7-113-03423-3 FreeBSD for PC 98ers (japn). SHUWA System Co, LTD. ISBN 4-87966-468-5 C3055 P2900E. FreeBSD (japn). CUTT. ISBN 4-906391-22-2 C3055 P2400E. Complete Introduction to FreeBSD (http://www.shoeisha.com/book/Detail.asp?bid=650) (japn). Shoeisha Co., Ltd (http://www.shoeisha.co.jp/). ISBN 4-88135-473-6 P3600E. Personal UNIX Starter Kit FreeBSD (http://www.ascii.co.jp/pb/book1/shinkan/detail/1322785.html) (japn). ASCII (http://www.ascii.co.jp/). ISBN 4-7561-1733-3 P3000E. FreeBSD Handbook (japn fordts). ASCII (http://www.ascii.co.jp/). ISBN 4-7561-1580-2 P3800E. FreeBSD mit Methode (nmet). Computer und Literatur Verlag (http://www.cul.de)/Vertrieb Hanser, 1998. ISBN 3-932311-31-0. FreeBSD 4 - Installieren, Kongurieren, Administrieren (http://www.cul.de/freebsd.html) (nmet). Computer und Literatur Verlag (http://www.cul.de), 2001. ISBN 3-932311-88-4. FreeBSD 5 - Installieren, Kongurieren, Administrieren (http://www.cul.de/freebsd.html) (nmet). Computer und Literatur Verlag (http://www.cul.de), 2003. ISBN 3-936546-06-1. FreeBSD de Luxe (http://www.mitp.de/vmi/mitp/detail/pWert/1343/) (nmet). Verlag Modere Industrie (http://www.mitp.de), 2003. ISBN 3-8266-1343-0. FreeBSD Install and Utilization Manual (http://www.pc.mycom.co.jp/FreeBSD/install-manual.html) (japn). Mainichi Communications Inc. (http://www.pc.mycom.co.jp/), 1998. ISBN 4-8399-0112-0. Onno W Purbo, Dodi Maryanto, Syahrial Hubbany, Widjil Widodo Building Internet Server with FreeBSD (http://maxwell.itb.ac.id/) (indonz nyelven). Elex Media Komputindo (http://www.elexmedia.co.id/).

988

Fggelk B. Irodalomjegyzk

Absolute BSD: The Ultimate Guide to FreeBSD (knai fordts). GrandTech Press (http://www.grandtech.com.tw/), 2003. ISBN 986-7944-92-5. The FreeBSD 6.0 Book (http://www.twbsd.org/cht/book/) (knai). Drmaster, 2006. ISBN 9-575-27878-X.

Angol nyelv knyvek s folyiratok:

Absolute BSD, 2nd Edition: The Complete Guide to FreeBSD (http://www.AbsoluteBSD.com/). No Starch Press (http://www.nostarch.com/), 2007. ISBN: 978-1-59327-151-0 The Complete FreeBSD (http://www.freebsdmall.com/cgi-bin/fm/bsdcomp). OReilly (http://www.oreilly.com/), 2003. ISBN: 0596005164 The FreeBSD Corporate Networkers Guide (http://www.freebsd-corp-net-guide.com/). Addison-Wesley (http://www.awl.com/aw/), 2000. ISBN: 0201704811 FreeBSD: An Open-Source Operating System for Your Personal Computer (http://andrsn.stanford.edu/FreeBSD/introbook/). The Bit Tree Press, 2001. ISBN: 0971204500 Teach Yourself FreeBSD in 24 Hours. Sams (http://www.samspublishing.com/), 2002. ISBN: 0672324245 FreeBSD 6 Unleashed. Sams (http://www.samspublishing.com/), 2006. ISBN: 0672328755 FreeBSD: The Complete Reference. McGrawHill (http://books.mcgraw-hill.com), 2003. ISBN: 0072224096 BSD Magazine (http://www.bsdmag.org/), megjelenik a Software Press Sp., z o.o. SK gondozsban. ISSN 1898-9144

B.2. Felhasznli kziknyvek

Computer Systems Research Group, UC Berkeley. 4.4BSD Users Reference Manual. OReilly & Associates, Inc., 1994. ISBN 1-56592-075-9 Computer Systems Research Group, UC Berkeley. 4.4BSD Users Supplementary Documents. OReilly & Associates, Inc., 1994. ISBN 1-56592-076-7 UNIX in a Nutshell. OReilly & Associates, Inc., 1990. ISBN 093717520X Mui, Linda. What You Need To Know When You Cant Find Your UNIX System Administrator. OReilly & Associates, Inc., 1995. ISBN 1-56592-104-6 Ohio llami Egyetemnek (http://www.osu.edu/) van egy Alapoz UNIX kurzusa (http://8help.osu.edu/wks/unix_course/index.html), amely az Interneten keresztl is elrhet HTML s PostScript formtumokban. Ennek a dokumentumnak egy olasz fordtsa (http://www.FreeBSD.org/doc/it_IT.ISO8859-15/books/unix-introduction/index.html) is elrhet az Olasz FreeBSD Dokumentcis Projekt keretben.

Jpman Project, Japanese FreeBSD Users Group (http://www.jp.FreeBSD.org/). FreeBSD Users Reference Manual (http://www.pc.mycom.co.jp/FreeBSD/urm.html) (japn fordts). Mainichi Communications Inc. (http://www.pc.mycom.co.jp/), 1998. ISBN4-8399-0088-4 P3800E. Az Edinburghi Egyetemen (http://www.ed.ac.uk/) ksztettek az joncok szmra egy Internetes kziknyvet (http://unixhelp.ed.ac.uk/) a UNIX krnyezetekhez.

989

Fggelk B. Irodalomjegyzk

B.3. Rendszeradminisztrtori kziknyvek


Albitz, Paul and Liu, Cricket. DNS and BIND (4. kiads). OReilly & Associates, Inc., 2001. ISBN 1-59600-158-4 Computer Systems Research Group, UC Berkeley. 4.4BSD System Managers Manual. OReilly & Associates, Inc., 1994. ISBN 1-56592-080-5 Costales, Brian s msok. Sendmail (2. kiads). OReilly & Associates, Inc., 1997. ISBN 1-56592-222-0 Frisch, leen. Essential System Administration (2. kiads). OReilly & Associates, Inc., 1995. ISBN 1-56592-127-5 Hunt, Craig. TCP/IP Network Administration (2. kiads). OReilly & Associates, Inc., 1997. ISBN 1-56592-322-7 Nemeth, Evi. UNIX System Administration Handbook (3. kiads). Prentice Hall, 2000. ISBN 0-13-020601-6 Stern, Hal. Managing NFS and NIS. OReilly & Associates, Inc., 1991. ISBN 0-937175-75-7 Jpman Project, Japan FreeBSD Users Group (http://www.jp.FreeBSD.org/). FreeBSD System Administrators Manual (http://www.pc.mycom.co.jp/FreeBSD/sam.html) (japn fordts). Mainichi Communications Inc. (http://www.pc.mycom.co.jp/), 1998. ISBN4-8399-0109-0 P3300E. Dreyfus, Emmanuel. Cahiers de lAdmin: BSD (http://www.eyrolles.com/Informatique/Livre/9782212114638/) (2. kiads, franciul). Eyrolles, 2004. ISBN 2-212-11463-X

B.4. Programozi kziknyvek

Asente, Paul, Converse, Diana, and Swick, Ralph. X Window System Toolkit. Digital Press, 1998. ISBN 1-55558-178-1 Computer Systems Research Group, UC Berkeley. 4.4BSD Programmers Reference Manual. OReilly & Associates, Inc., 1994. ISBN 1-56592-078-3 Computer Systems Research Group, UC Berkeley. 4.4BSD Programmers Supplementary Documents. OReilly & Associates, Inc., 1994. ISBN 1-56592-079-1 Harbison, Samuel P. and Steele, Guy L. Jr. C: A Reference Manual (4. kiads). Prentice Hall, 1995. ISBN 0-13-326224-3 Kernighan, Brian and Dennis M. Ritchie. The C Programming Language (2. kiads). PTR Prentice Hall, 1988. ISBN 0-13-110362-8 Lehey, Greg. Porting UNIX Software. OReilly & Associates, Inc., 1995. ISBN 1-56592-126-7 Plauger, P. J. The Standard C Library. Prentice Hall, 1992. ISBN 0-13-131509-9 Spinellis, Diomidis. Code Reading: The Open Source Perspective (http://www.spinellis.gr/codereading/). Addison-Wesley, 2003. ISBN 0-201-79940-5 Spinellis, Diomidis. Code Quality: The Open Source Perspective (http://www.spinellis.gr/codequality/). Addison-Wesley, 2006. ISBN 0-321-16607-8 Stevens, W. Richard and Stephen A. Rago. Advanced Programming in the UNIX Environment (2. kiads). Reading, Mass. : Addison-Wesley, 2005. ISBN 0-201-43307-9

990

Fggelk B. Irodalomjegyzk

Stevens, W. Richard. UNIX Network Programming (2. kiads), PTR Prentice Hall, 1998. ISBN 0-13-490012-X Wells, Bill. Writing Serial Drivers for UNIX. Dr. Dobbs Journal. 19(15), 1994. december, 68-71. s 97-99. oldal.

B.5. Az opercis rendszerek bels mkdsrl


Andleigh, Prabhat K. UNIX System Architecture. Prentice-Hall, Inc., 1990. ISBN 0-13-949843-5 Jolitz, William. Porting UNIX to the 386. Dr. Dobbs Journal. 1991. janur - 1992. jlius. Lefer, Samuel J., Marshall Kirk McKusick, Michael J Karels s John Quarterman. The Design and Implementation of the 4.3BSD UNIX Operating System. Reading, Mass. : Addison-Wesley, 1989. ISBN 0-201-06196-1 Lefer, Samuel J., Marshall Kirk McKusick. The Design and Implementation of the 4.3BSD UNIX Operating System: Answer Book. Reading, Mass. : Addison-Wesley, 1991. ISBN 0-201-54629-9 McKusick, Marshall Kirk, Keith Bostic, Michael J Karels s John Quarterman. The Design and Implementation of the 4.4BSD Operating System. Reading, Mass. : Addison-Wesley, 1996. ISBN 0-201-54979-4 (A knyv 2. fejezete elrhet online (http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/design-44bsd/book.html) a FreeBSD Dokumentcis Projekt rszeknt, valamint itt (http://www.netapp.com/tech_library/nfsbook.html) a 9. fejezet.)

Marshall Kirk McKusick, George V. Neville-Neil. The Design and Implementation of the FreeBSD Operating System. Boston, Mass. : Addison-Wesley, 2004. ISBN 0-201-70245-2 Stevens, W. Richard. TCP/IP Illustrated, Vol 1: The Protocols. Reading, Mass. : Addison-Wesley, 1996. ISBN 0-201-63346-9 Schimmel, Curt. UNIX Systems for Modern Architectures. Reading, Mass. : Addison-Wesley, 1994. ISBN 0-201-63338-8 Stevens, W. Richard. TCP/IP Illustrated, Vol 3: TCP for Transactions, HTTP, NNTP and the UNIX Domain Protocols. Reading, Mass. : Addison-Wesley, 1996. ISBN 0-201-63495-3 Vahalia, Uresh. UNIX Internals The New Frontiers. Prentice Hall, 1996. ISBN 0-13-101908-2 Wright, Gary R. s W. Richard Stevens. TCP/IP Illustrated, Vol 2: The Implementation. Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-63354-X

B.6. Biztonsgrl szl rsok

Cheswick, William R. s Steven M. Bellovin. Firewalls and Internet Security: Repelling the Wily Hacker. Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-63357-4 Garnkel, Simson s Gene Spafford. Practical UNIX & Internet Security (2. kiads). OReilly & Associates, Inc., 1996. ISBN 1-56592-148-8 Garnkel, Simson. PGP Pretty Good Privacy. OReilly & Associates, Inc., 1995. ISBN 1-56592-098-8

991

Fggelk B. Irodalomjegyzk

B.7. Hardverrel foglalkoz rsok

Anderson, Don s Tom Shanley. Pentium Processor System Architecture (2. kiads). Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-40992-5 Ferraro, Richard F. Programmers Guide to the EGA, VGA, and Super VGA Cards (3. kiads). Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-62490-7 Az Intel ltal gyrtott processzorokrl s chipsetekrl, valamint az ltaluk kialaktott szabvnyokrl a sajt fejleszti oldalukon (http://developer.intel.com/), ltalban PDF llomnyok formjban kaphatunk informcikat. Shanley, Tom. 80486 System Architecture (3. kiads). Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-40994-1 Shanley, Tom. ISA System Architecture (3. kiads). Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-40996-8 Shanley, Tom. PCI System Architecture (4. kiads). Reading, Mass. : Addison-Wesley, 1999. ISBN 0-201-30974-2 Van Gilluwe, Frank. The Undocumented PC (2. kiads). Reading, Mass: Addison-Wesley Pub. Co., 1996. ISBN 0-201-47950-8 Messmer, Hans-Peter. The Indispensable PC Hardware Book (4. kiads). Reading, Mass: Addison-Wesley Pub. Co., 2002. ISBN 0-201-59616-4

B.8. UNIX trtnelem


Lion, John. Lions Commentary on UNIX (6. kiads, forrskddal). ITP Media Group, 1996. ISBN 1573980137 Raymond, Eric S. The New Hackers Dictionary (3. kiads). MIT Press, 1996. ISBN 0-262-68092-0. Vagy Zsargon fjlknt (http://www.catb.org/~esr/jargon/html/index.html) is ismert. Salus, Peter H. A quarter century of UNIX. Addison-Wesley Publishing Company, Inc., 1994. ISBN 0-201-54777-5 Simon Garnkel, Daniel Weise, Steven Strassmann. The UNIX-HATERS Handbook. IDG Books Worldwide, Inc., 1994. ISBN 1-56884-203-1. Kifogyott, de elrhet ezen (http://research.microsoft.com/~daniel/unix-haters.html) a linken. Don Libes, Sandy Ressler. Life with UNIX klnkiads. Prentice-Hall, Inc., 1989. ISBN 0-13-536657-7 The BSD family tree. http://www.FreeBSD.org/cgi/cvsweb.cgi/src/share/misc/bsd-family-tree vagy egy teleptett FreeBSD rendszeren a /usr/share/misc/bsd-family-tree llomny. Networked Computer Science Technical Reports Library. http://www.ncstrl.org/ Old BSD releases from the Computer Systems Research group (CSRG). http://www.mckusick.com/csrg/Ez a 4 CD-s kszlet tartalmazza az sszes BSD verzit a 1BSD-tl kezdve a 4.4BSD s 4.4BSD-Lite2-ig (de nem a 2.11BSD-t sajnos nem). Az utols lemezen megtallhatak a vgleges forrsok, illetve az SCCS llomnyok.

992

Fggelk B. Irodalomjegyzk

B.9. Magazinok s folyiratok


The C/C++ Users Journal. R&D Publications Inc. ISSN 1075-2838 Sys Admin The Journal for UNIX System Administrators. Miller Freeman, Inc. ISSN 1061-2688 freeX Das Magazin fr Linux - BSD - UNIX (nmet). Computer- und Literaturverlag GmbH. ISSN 1436-7033

993

Fggelk C. Forrsok az interneten


A FreeBSD gyors tem fejldse a nyomtatott mdit alkalmatlann teszi a legfrissebb fejlesztsek nyomonkvetsre. Ezzel szemben az elektronikus erforrsok a biztos, ha gyakran nem is csak az egyetlen, mdjai a legjabb elrelpsek gyelemmel kvetsnek. Mivel a FreeBSD-t tbbsgben nkntesek fejlesztik, az t krlvev felhasznli kzssg nmaga is egyfajta szakmai seglynyjt egyletknt funkcionl, amelyet leghatkonyabban elektronikus levlben, webes frumokon vagy USENET hrcsoportokon keresztl rhetnk el. A tovbbiakban a FreeBSD felhasznlk kzssgnek klnbz fajtj elrhetsgeit vzoljuk fel nagyvonalakban. Ha gy rezzk, hogy ebbl a felsorolsban kimaradt volna valami, akkor ne habozzunk rla rtestst kldeni a FreeBSD Dokumentcis Projekt levelezsi lista (http://lists.FreeBSD.org/mailman/listinfo/freebsd-doc) cmre (angolul), hogy felvehessk a tbbi kz.

C.1. Levelezsi listk


A FreeBSD kr csoportosulkat levelezsi listkon keresztl tudjuk kzvetlenl elrni, ezen a mdon tehetnk fel krdseket, vethetnk fel tmkat. Ezek kztt tbb klnbz terlettel foglalkoz listt tallhatunk. Ezrt clszer mindig a hozzszlsainkat a tmnkhoz legkzelebb ll listra kldeni, mert enlkl szinte biztos, hogy nem kapunk pontos vagy gyors vlaszt. A klnbz listk tmjnak rvid lersa a dokumentum aljn olvashat. Szeretnnk mindenkit megkrni, hogy mieltt feliratkozik vagy levelet kld valamelyik listra, gyelmesen olvassa el ezeket. Az egyes listk tagjai mr gy is naponta tbbszz FreeBSD-vel kapcsolatos zenetet kapnak, mikzben a listk tematikjnak s szablyainak lefektetsvel igyeksznk a jel-zaj arnyt minl kedvezbb szinten tartani. Ezek nlkl a levelezsi listk a Projekt szmra haszontalan kommunikcis eszkzkk vlnnak.
Megjegyzs: A freebsd-test (http://lists.FreeBSD.org/mailman/listinfo/freebsd-test) cmet hasznljuk, ha ki akarjuk prblni, hogy tudunk-e levelet kldeni a FreeBSD listira. A tbbi listra viszont lehetleg ne kldjnk teszt jelleg zeneteket.

Ha nem tudjuk eldnteni, hogy pontosan melyik listt is kellene megcmeznnk krdsnkkel, olvassuk el a Hogyan kapjunk rtkelhet vlaszt a FreeBSD-questions levelezsi listrl (http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/freebsd-questions) cm lerst (angolul). Mieltt akrmelyik listra is levelet kldennk, olvassuk el a Levelezsi listk Gyakran Ismtelt Krdseit (http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/mailing-list-faq) (angolul), amivel elkerlhetjk a gyakran feltett krdsek s tmk ismtelt felhozst. A levelezsi listk tartalma folyamatosan archivldik, s ezekben az archvumokban a FreeBSD honlapjn (http://www.FreeBSD.org/search/index.html) tudunk keresni. Az itt elrhet, kulcsszavak alapjn trtn keress remek mdjt nyjtja a gyakran felmerl krdsek egyszer s gyors megvlaszolsnak, ezrt ilyen esetekben elszr mindig ezt javasolt hasznlni. Ez egyben mellesleg azt is jelenti, hogy a FreeBSD levelezsi listira kldtt zenetek fennmaradnak az rkkvalsgig. Ha a bekldend zenet bizalmas informcikat tartalmaz, rdemes megfontolni egy eldobhat anonim e-mail cm hasznlatt s kizrlag csak a publikus rszet bekldeni.

994

Fggelk C. Forrsok az interneten

C.1.1. A listk sszefoglalsa


ltalnos listk: A kvetkez ltalnos cl listkhoz szabadon (s nyugodtan) csatlakozhatunk: Lista freebsd-advocacy (http://lists.FreeBSD.org/mailman/listinfo/freebsdadvocacy) freebsd-announce (http://lists.FreeBSD.org/mailman/listinfo/freebsdannounce) freebsd-arch (http://lists.FreeBSD.org/mailman/listinfo/freebsd-arch) freebsd-bugbusters (http://lists.FreeBSD.org/mailman/listinfo/freebsdbugbusters) Tartalom A FreeBSD igjnek terjesztse

Fontosabb esemnyek s elrelpsek a projektek letben

Architekturlis s tervezsi krdsek trgyalsa A FreeBSD hibabejelentseit trol adatbzis s a kapcsold eszkzk karbantartsra vonatkoz megbeszlsek

freebsd-bugs Hibajelentsek (http://lists.FreeBSD.org/mailman/listinfo/freebsd-bugs) freebsd-chat A FreeBSD kzssg nem szakmai jelleg dolgai (http://lists.FreeBSD.org/mailman/listinfo/freebsd-chat) freebsd-current (http://lists.FreeBSD.org/mailman/listinfo/freebsdcurrent) freebsd-isp (http://lists.FreeBSD.org/mailman/listinfo/freebsd-isp) freebsd-jobs (http://lists.FreeBSD.org/mailman/listinfo/freebsd-jobs) A FreeBSD-CURRENT hasznlatnak trgyalsa

A FreeBSD-t alkalmaz internet-szolgltatk fruma FreeBSD-s munkalehetsgek

freebsd-policy A FreeBSD fejldst irnyt csoport (Core Team) (http://lists.FreeBSD.org/mailman/listinfo/freebsd-policy) dntseirl tjkoztat lista. A forgalma kicsi, csak olvashat. freebsd-questions A felhasznlk krdsei s szakmai segtsgnyjts (http://lists.FreeBSD.org/mailman/listinfo/freebsdquestions) freebsd-security-notications (http://lists.FreeBSD.org/mailman/listinfo/freebsdsecurity-notications) Biztonsgi gyelmeztetsek

freebsd-stable A FreeBSD-STABLE hasznlatt illet krdsek (http://lists.FreeBSD.org/mailman/listinfo/freebsd-stable) Ide lehet kldeni a prbazeneteket freebsd-test (http://lists.FreeBSD.org/mailman/listinfo/freebsd-test)

995

Fggelk C. Forrsok az interneten Szakmai listk: A kvetkez listk szakmai jelleg tmkat kpviselnek. Mieltt brmelyikkre levelet kldennk vagy feliratkoznnk, gyelmesen olvassuk el a tartalmukat s cljaikat bemutat rvid lersukat. Lista freebsd-acpi (http://lists.FreeBSD.org/mailman/listinfo/freebsd-acpi) freebsd-afs (http://lists.FreeBSD.org/mailman/listinfo/freebsd-afs) freebsd-aic7xxx (http://lists.FreeBSD.org/mailman/listinfo/aic7xxx) Tartalom Az ACPI s energiagazdlkods tmogats fejlesztse Az AFS portolsa FreeBSD-re Az Adaptec AIC 7xxx sorozat meghajtinak fejlesztse

freebsd-alpha A FreeBSD Alpha portja (http://lists.FreeBSD.org/mailman/listinfo/freebsd-alpha) freebsd-amd64 A FreeBSD AMD64 portja (http://lists.FreeBSD.org/mailman/listinfo/freebsd-amd64) freebsd-apache (http://lists.FreeBSD.org/mailman/listinfo/freebsdapache) freebsd-arm (http://lists.FreeBSD.org/mailman/listinfo/freebsd-arm) freebsd-atm (http://lists.FreeBSD.org/mailman/listinfo/freebsd-atm) Az Apache s hozztartoz portok trgyalsa

A FreeBSD ARM portja FreeBSD hasznlata ATM hlzatokkal

freebsd-audit A forrskd ellenrzsrl szl projekt (http://lists.FreeBSD.org/mailman/listinfo/freebsd-audit) A binris frisstsekkel foglalkoz rendszer tervezse s freebsd-binup (http://lists.FreeBSD.org/mailman/listinfo/freebsd-binup) fejlesztse freebsd-bluetooth (http://lists.FreeBSD.org/mailman/listinfo/freebsdbluetooth) A Bluetooth technolgia hasznlata a FreeBSD-ben

A FreeBSD klaszteres krnyezetben freebsd-cluster (http://lists.FreeBSD.org/mailman/listinfo/freebsd-cluster) freebsd-cvsweb (http://lists.FreeBSD.org/mailman/listinfo/freebsdcvsweb) freebsd-database (http://lists.FreeBSD.org/mailman/listinfo/freebsddatabase) freebsd-doc (http://lists.FreeBSD.org/mailman/listinfo/freebsd-doc) A CVSweb karbantartsa

Adatbzisok hasznlata s fejlesztse FreeBSD alatt

FreeBSD-rl szl lersok ksztse

996

Fggelk C. Forrsok az interneten Lista Tartalom

freebsd-drivers Eszkzmeghajtk rsa FreeBSD-re (http://lists.FreeBSD.org/mailman/listinfo/freebsd-drivers) freebsd-eclipse (http://lists.FreeBSD.org/mailman/listinfo/freebsdeclipse) freebsd-embedded (http://lists.FreeBSD.org/mailman/listinfo/freebsdembedded) freebsd-eol (http://lists.FreeBSD.org/mailman/listinfo/freebsd-eol) freebsd-emulation (http://lists.FreeBSD.org/mailman/listinfo/freebsdemulation) freebsd-rewire (http://lists.FreeBSD.org/mailman/listinfo/freebsdrewire) Az Eclipse integrlt fejleszti krnyezet, eszkzeinek, gazdag kliens alkalmazsinak s portjainak FreeBSD alatti hasznlata A FreeBSD hasznlata begyazott alkalmazsokban

Olyan FreeBSD-s szoftverek fggetlen tovbbfejlesztse, amelyeket hivatalosan mr nem tmogatnak Linux/MS-DOS/Windows s hasonl rendszerek emulcija

A FreeBSD s a FireWire (iLink, IEEE 1394) kapcsolatnak technikai krdsei

llomnyrendszerek freebsd-fs (http://lists.FreeBSD.org/mailman/listinfo/freebsd-fs) A Gecko Rendering Engine alkalmazsval kapcsolatos freebsd-gecko (http://lists.FreeBSD.org/mailman/listinfo/freebsd-gecko) problmk A GEOM-hoz tartoz tmk s implementcik freebsd-geom (http://lists.FreeBSD.org/mailman/listinfo/freebsd-geom) A GNOME s GNOME-alkalmazsok portolsa freebsd-gnome (http://lists.FreeBSD.org/mailman/listinfo/freebsd-gnome) freebsd-hackers (http://lists.FreeBSD.org/mailman/listinfo/freebsdhackers) freebsd-hardware (http://lists.FreeBSD.org/mailman/listinfo/freebsdhardware) ltalnos szakmai tmk

A FreeBSD futtatsra szolgl hardverekkel foglalkoz tmk

freebsd-i18n A FreeBSD honostsa (http://lists.FreeBSD.org/mailman/listinfo/freebsd-i18n) A FreeBSD hasznlata az IA-32 (Intel x86) platformon freebsd-ia32 (http://lists.FreeBSD.org/mailman/listinfo/freebsd-ia32) freebsd-ia64 A FreeBSD portolsa az Intel kvetkez IA64 (http://lists.FreeBSD.org/mailman/listinfo/freebsd-ia64) rendszereire

997

Fggelk C. Forrsok az interneten Lista Tartalom

freebsd-ipfw Az IP tzfal kdjnak jratervezst rint szakmai (http://lists.FreeBSD.org/mailman/listinfo/freebsd-ipfw) megbeszlsek ISDN fejlesztk levelei freebsd-isdn (http://lists.FreeBSD.org/mailman/listinfo/freebsd-isdn) freebsd-jail (http://lists.FreeBSD.org/mailman/listinfo/freebsd-jail) freebsd-java (http://lists.FreeBSD.org/mailman/listinfo/freebsd-java) freebsd-kde (https://mail.kde.org/mailman/listinfo/kde-freebsd) freebsd-lfs (http://lists.FreeBSD.org/mailman/listinfo/freebsd-lfs) freebsd-libh (http://lists.FreeBSD.org/mailman/listinfo/freebsd-libh) A jail(8) segdprogram Java fejlesztk krdsei s a JDK-k tltetse FreeBSD-re A KDE s KDE-alkalmazsok portolsa Az LFS portolsa FreeBSD-re A msodik genercis telept- s csomagrendszer

freebsd-mips A FreeBSD portolsa MIPS-re (http://lists.FreeBSD.org/mailman/listinfo/freebsd-mips) freebsd-mobile A mobil szmtgpekkel kapcsolatos megbeszlsek (http://lists.FreeBSD.org/mailman/listinfo/freebsdmobile) freebsd-mono Mono s C# alkalmazsok FreeBSD alatt (http://lists.FreeBSD.org/mailman/listinfo/freebsd-mono) freebsd-mozilla A Mozilla tltetse FreeBSD-re (http://lists.FreeBSD.org/mailman/listinfo/freebsdmozilla) freebsd-multimedia (http://lists.FreeBSD.org/mailman/listinfo/freebsdmultimedia) freebsd-new-bus (http://lists.FreeBSD.org/mailman/listinfo/freebsd-newbus) freebsd-net (http://lists.FreeBSD.org/mailman/listinfo/freebsd-net) freebsd-openofce (http://lists.FreeBSD.org/mailman/listinfo/freebsdopenofce) freebsd-performance (http://lists.FreeBSD.org/mailman/listinfo/freebsdperformance) Multimdia alkalmazsok

A buszarchitektrval kapcsolatos szakmai megbeszlsek

A TCP/IP forrskdjval s hlzatkezelssel kapcsolatos krdsek A OpenOfce.org s StarOfce alkalmazsok portolsa FreeBSD-re

Nagy terhels s teljestmny rendszerek teljestmnyhangolsi krdsei

998

Fggelk C. Forrsok az interneten Lista freebsd-perl (http://lists.FreeBSD.org/mailman/listinfo/freebsd-perl) freebsd-pf (http://lists.FreeBSD.org/mailman/listinfo/freebsd-pf) freebsd-platforms (http://lists.FreeBSD.org/mailman/listinfo/freebsdplatforms) Tartalom A rengeteg Perl alap port karbantrsa A csomagszr mkdsvel kapcsolatos krdsek s megbeszlsek Portols nem Intel architektrj platformokra

freebsd-ports A Portgyjtemny mkdse (http://lists.FreeBSD.org/mailman/listinfo/freebsd-ports) freebsd-ports-bugs A portokhoz tartoz hibk s hibajelentsek megbeszlse (http://lists.FreeBSD.org/mailman/listinfo/freebsd-portsbugs) freebsd-ppc (http://lists.FreeBSD.org/mailman/listinfo/freebsd-ppc) freebsd-proliant (http://lists.FreeBSD.org/mailman/listinfo/freebsdproliant) freebsd-python (http://lists.FreeBSD.org/mailman/listinfo/freebsdpython) freebsd-qa (http://lists.FreeBSD.org/mailman/listinfo/freebsd-qa) freebsd-rc (http://lists.FreeBSD.org/mailman/listinfo/freebsd-rc) freebsd-realtime (http://lists.FreeBSD.org/mailman/listinfo/freebsdrealtime) A FreeBSD portolsa PowerPC-re HP ProLiant szerverek s a FreeBSD kapcsolata

A Python FreeBSD-n fut vltozatnak problmi

A minsgbiztosts megbeszlse, klnsen a kiadsok kzeledtvel Az rc.d rendszer s annak fejldse A FreeBSD valsidej kiterjesztseinek fejlesztse

freebsd-ruby A Ruby hasznlata FreeBSD rendszereken (http://lists.FreeBSD.org/mailman/listinfo/freebsd-ruby) freebsd-scsi A SCSI alrendszer (http://lists.FreeBSD.org/mailman/listinfo/freebsd-scsi) freebsd-security (http://lists.FreeBSD.org/mailman/listinfo/freebsdsecurity) A FreeBSD mkdst fenyeget biztonsgi problmk

999

Fggelk C. Forrsok az interneten Lista Tartalom

freebsd-small A FreeBSD hasznlata begyazott alkalmazsokban (http://lists.FreeBSD.org/mailman/listinfo/freebsd-small) (elavult; helyette a freebsd-embedded (http://lists.FreeBSD.org/mailman/listinfo/freebsdembedded) cmt hasznljuk) freebsd-smp (http://lists.FreeBSD.org/mailman/listinfo/freebsd-smp) freebsd-sparc64 (http://lists.FreeBSD.org/mailman/listinfo/freebsdsparc64) freebsd-standards (http://lists.FreeBSD.org/mailman/listinfo/freebsdstandards) Az [A]Szimmetrikus tbbszl feldolgozshoz ([A]Symmetric MultiProcessing) tartoz tervezsi megbeszlsek A FreeBSD portolsa SPARC alap rendszerekre

A FreeBSD megfelelse a C99 s POSIX szabvnyoknak

freebsd-sun4v A FreeBSD portolsa UltraSPARC T1 alap rendszerekre (http://lists.FreeBSD.org/mailman/listinfo/freebsd-sun4v) freebsd-sysinstall A sysinstall(8) fejlesztse (http://lists.FreeBSD.org/mailman/listinfo/freebsdsysinstall) freebsd-threads (http://lists.FreeBSD.org/mailman/listinfo/freebsdthreads) A FreeBSD szlkezelse

freebsd-testing A FreeBSD teljestmny- s megbzhatsgi tesztjei (http://lists.FreeBSD.org/mailman/listinfo/freebsd-testing) freebsd-tokenring (http://lists.FreeBSD.org/mailman/listinfo/freebsdtokenring) freebsd-usb (http://lists.FreeBSD.org/mailman/listinfo/freebsd-usb) freebsd-virtualization (http://lists.FreeBSD.org/mailman/listinfo/freebsdvirtualization) A Token Ring tmogatsa a FreeBSD-ben

USB tmogats a FreeBSD-ben A FreeBSD rszrl tmogatott klnbz virtualizcis technolgik trgyalsa

freebsd-vuxml A VuXML infrastruktra trgyalsa (http://lists.FreeBSD.org/mailman/listinfo/freebsd-vuxml) freebsd-x11 (http://lists.FreeBSD.org/mailman/listinfo/freebsd-x11) Az X11 karbantartsa s tmogata FreeBSD alatt

1000

Fggelk C. Forrsok az interneten Lista freebsd-xen (http://lists.FreeBSD.org/mailman/listinfo/freebsd-xen) Tartalom A Xen FreeBSD portjnak (implementcik, hasznlat) trgyalsa

Korltozott listk: (Limited lists) A kvetkez listk sokkal jobban specializldtt (s ignyesebb) kzssgnek szlnak, nem a nagykznsgnek. Ezrt mieltt egy ilyen listra feliratkoznnk, rdemes nmi tapasztalatot gyjtennk a szakmai tmj listkon, gy megismerjk az itt alkalmazott kommunikcis szablyokat. Lista Tartalom

freebsd-hubs A tkrzsek zemelteti szmra (infrastrukturlis (http://lists.FreeBSD.org/mailman/listinfo/freebsd-hubs) tmogats) freebsd-user-groups (http://lists.FreeBSD.org/mailman/listinfo/freebsd-usergroups) freebsd-vendors (http://lists.FreeBSD.org/mailman/listinfo/freebsdvendors) freebsd-wip-status (http://lists.FreeBSD.org/mailman/listinfo/freebsd-wipstatus) A felhasznli csoportok sszefogsa

A forgalmazk koordinlsa a kiadsok eltt

A FreeBSD-vel kapcsolatos folyamatban lev fejlesztsek helyzetjelentsei

A www.FreeBSD.org freebsd-www (http://lists.FreeBSD.org/mailman/listinfo/freebsd-www) (http://www.FreeBSD.org/index.html) karbantarti szmra Kivonatolt listk: (Digest lists) Az eddig emltett listk elrhetek kivonatolt formban is. Miutn feliratkoztunk egy listra, a hozzfrsnk belltsainl kivlaszthatjuk, hogy kivonatolt formtumban kvnjuk-e kapni a leveleket. CVS s SVN listk: (CVS & SVN lists) A kvetkez listk a forrsfa klnbz rszeinek vltoztatsrl s a hozzjuk tartoz zenetekrl adnak rtestst. Ezek a listk csak olvassra vannak, nem szabad rjuk levelet kldeni. Lista Forrskd terlete A terlet lersa (minek a forrsa) A fban vgzett akrmelyik mdosts (az sszes CVS lista egytt)

cvs-all /usr/(CVSROOT|doc|ports) (http://lists.FreeBSD.org/mailman/listinfo/cvsall) cvs-doc /usr/(doc|www) (http://lists.FreeBSD.org/mailman/listinfo/cvsdoc) cvs-ports /usr/ports (http://lists.FreeBSD.org/mailman/listinfo/cvsports)

A doc s www gak vltozsai

A portfa vltozsai

1001

Fggelk C. Forrsok az interneten Lista Forrskd terlete A terlet lersa (minek a forrsa) A projektek vltozsai

cvs-projects /usr/projects (http://lists.FreeBSD.org/mailman/listinfo/cvsprojects)


/usr/src cvs-src (http://lists.FreeBSD.org/mailman/listinfo/cvssrc) /usr/src svn-src-all (http://lists.FreeBSD.org/mailman/listinfo/svnsrc-all) /usr/src svn-src-head (http://lists.FreeBSD.org/mailman/listinfo/svnsrc-head) /usr/projects svn-src-projects (http://lists.FreeBSD.org/mailman/listinfo/svnsrc-projects) /usr/src svn-src-release (http://lists.FreeBSD.org/mailman/listinfo/svnsrc-release) /usr/src svn-src-releng (http://lists.FreeBSD.org/mailman/listinfo/svnsrc-releng) /usr/src svn-src-stable (http://lists.FreeBSD.org/mailman/listinfo/svnsrc-stable) /usr/src svn-src-stable-6 (http://lists.FreeBSD.org/mailman/listinfo/svnsrc-stable-6) /usr/src svn-src-stable-7 (http://lists.FreeBSD.org/mailman/listinfo/svnsrc-stable-7) /usr/src svn-src-stable-8 (http://lists.FreeBSD.org/mailman/listinfo/svnsrc-stable-8)

A rendszer forrsnak vltozsai (az svn s cvs kzti importer mkdse alapjn generldik) A Subversion repositoryk vltozsai (kivve a user s a projects)

A Subversion repository fgnak (a FreeBSD-CURRENT forrsainak) vltozsai A projects vltozsai a forrsokat trol Subversion repositoryn bell

A releases vltozsai a forrsokat trol Subversion repositoryn bell

A releng gak (biztonsgi frisstsek s kiadsok) vltozsai a forrsokat trol Subversion repositoryn bell A stabil verzikhoz tartoz gak vltozsai a forrsokat trol Subversion repositoryn belle A stable/6 g vltozsai a forrsokat trol Subversion repositoryn bell A stable/7 g vltozsai a forrsokat trol Subversion repositoryn bell A stable/8 g vltozsai a forrsokat trol Subversion repositoryn bell

1002

Fggelk C. Forrsok az interneten Lista Forrskd terlete A terlet lersa (minek a forrsa) A Subversion repositoryban tallhat korbbi stable gak vltozsai

svn-src-stable-other /usr/src (http://lists.FreeBSD.org/mailman/listinfo/svnsrc-stable-other) svn-src-svnadmin /usr/src (http://lists.FreeBSD.org/mailman/listinfo/svnsrc-svnadmin) svn-src-user /usr/src (http://lists.FreeBSD.org/mailman/listinfo/svnsrc-user) svn-src-vendor /usr/src (http://lists.FreeBSD.org/mailman/listinfo/svnsrc-vendor)

A forrsokat trol Subversion repositoryhoz tartoz szkriptek s egy kongurcis llomnyok vltozsai A user vltozsai a forrsokat trol Subversion repositoryn bell

A vendor vltozsai a forrsokat trol Subversion repositoryn bell

C.1.2. Hogyan iratkozzunk fel


Ha fel akarunk iratkozni valamelyik listra, kattintsunk a nevre, vagy menjnk a http://lists.FreeBSD.org/mailman/listinfo cmre s a vlasszuk ki onnan a keresett listt. A lista oldaln megtallunk minden feliratkozssal kapcsolatos utastst. Tnylegesen gy tudunk zenni egy listra, ha levelet kldnk az <listanv @FreeBSD.org> cmre, amely ezutn a lista tagjai kztt kzbestsre kerl a vilgban. A listrl gy tudunk leiratkozni, ha a rla kapott valamelyik levl aljn tallhat URL-re kattintunk. Msik megolds, ha magunk kldnk egy levelet a <listanv -unsubscribe@FreeBSD.org> cmre. Mg egyszer szeretnnk krni, hogy a szakmai tmj levelezsi listkon foly trsalgsokat igyekezznk az adott tmn bell tartani. Ha csupn a fontosabb bejelentsekre vagyunk kvncsiak, akkor a kisforgalm FreeBSD announcements levelezsi lista (http://lists.FreeBSD.org/mailman/listinfo/freebsd-announce) hasznlatt vlasszuk.

C.1.3. A listk tematikja


Minden FreeBSD-s levelezsi lista rendelkezik bizonyos alapszablyokkal, amelyek minden tagnak el kell fogadnia. Az ismeretett irnyelvek elleni vtkezs a FreeBSD postamesternek <postmaster@FreeBSD.org> kt (2, azaz kett) rsos gyelmeztetst vonja maga utn, amelyek gyelmen kvl hagysval, teht a harmadik szablysrts alkalmval, a kld eltvoltsra kerl a FreeBSD sszes levelezsi listjrl s a tovbbiakban szrni fogjk a leveleit. Sajnljuk, hogy ilyen szablyokat s szankcikat kellett bevezetnnk, de napjaink internetes technolgii igen elvadultak s ahogy az lthat is, sokan egyszeren nem fogjk fel, mennyire srlkenyek egyes rszei. Kzlekedsi szablyok:

1003

Fggelk C. Forrsok az interneten

Minden bekldtt levl tmjnak meg kell felelnie az adott lista tartalmnak, teht pldul a szakmai krdsekkel foglalkoz listkon csak szakmai tmj leveleknek szabad megjelennik. Az oda nem ill cseverszs s rtelmetlen vitzs csak a lista rtkt cskkenti, ezrt ezt senkitl sem trjk. A ktetlenebb, konkrt tma nlkli megbeszlseket inkbb a FreeBSD chat levelezsi lista (http://lists.FreeBSD.org/mailman/listinfo/freebsd-chat) cmn folytassuk. 2 listnl tbbre ne kldjk be ugyanazt a levelet, s 2 listra is csak akkor kldjk, ha az egyrtelmen s nyilvnvalan indokolt. A legtbb listnl gy is rengeteg az tfeds, kivve a legtitkosabb kombincikat (pldul -stable s -scsi), ezrt nem tl sok rtelme van egyszerre egynl tbb listt is rtesteni. Ha olyan zenetet kapunk, amelynek a Cc (msolat) mezjben tbb lista cme is szerepel, akkor tovbbklds vagy vlaszads sorn trljk ezeket. Az ltalunk kldtt levelekrt tovbbra is mi magunk vagyunk a felelsek, fggetlenl attl, hogy ki volt a levl eredeti feladja. Tilos (vita kzben) szemlyeskedni vagy kromkodni, belertve a felhasznlkat s a fejlesztket is. A netikett megszegst, pldul a privt levelezs elzetes engedly nlkli tovbbkldst vagy egyes rszleteinek kzlst, eltljk, de nyltan nem tiltjuk. Nagyon ritka esetekben azonban elfordulhat, hogy a srt tartalom nmagban ellenkezik a lista elveivel s gyelmeztetst (esetleg kitiltst) von maga utn. A FreeBSD-hez nem ktd termkek vagy szolgltatsok reklmozsa szigoran tilos, s ha bebizonyosodik, hogy a kld szndkosan kldte szt, akkor azonnali kitiltsban rszesl.

Az egyes listk tematikja: freebsd-acpi (http://lists.FreeBSD.org/mailman/listinfo/freebsd-acpi) Az ACPI s energiagazdlkods tmogatsnak fejlesztse freebsd-afs (http://lists.FreeBSD.org/mailman/listinfo/freebsd-afs) Andrew File System Ez a lista a CMU/Transarc AFS portolsrl szl freebsd-announce (http://lists.FreeBSD.org/mailman/listinfo/freebsd-announce) Fontosabb esemnyek / nagyobb lpsek Olyan emberek szmra ajnlott ez a levelezsi lista, akik csak a FreeBSD jelentsebb esemnyei bejelentsei irnt rdekldnek. Ide rtendk a klnbz idkzi s egyb kiadsok, a FreeBSD jtsainak bejelentsei. Idnknt nkntesek toborzsra stb. is hasznljk. A forgalma nagyon kicsi, tartalma szigoran ellenrztt. freebsd-arch (http://lists.FreeBSD.org/mailman/listinfo/freebsd-arch) Architekturlis s tervezsi krdsek Ez a lista a FreeBSD architektrjt rint megbeszlsek szntere. Az itt megjelen zenetek szigoran szakmai jellegek. Nhny idevg tma:

Hogyan alaktsuk gy t a fordtsi rendszert, hogy egyszerre tbb klnbz paramter fordts is kpes legyen futni. Mit kellene javtani a VFS-en a Heidemann-rtegek mkdshez. Hogyan tudnnk gy talaktani az eszkzmeghajtk fellett, hogy ugyanazok a meghajtk minden gond nlkl kpesek legyenek tbb buszon s architektrn is mkdni. Hogyan rjunk meghajtt hlzati eszkzkhz.

1004

Fggelk C. Forrsok az interneten

freebsd-audit (http://lists.FreeBSD.org/mailman/listinfo/freebsd-audit) A forrskd vizsglatt vgz projekt Ez a levelezsi lista a FreeBSD forrskdjnak vizsglatval foglalkozik. Habr eredetileg csak a biztonsgot rint vltoztatsok ellenrzsre jtt ltre, napjainkra mr a forrskd mindenfle vltozst fellvizsglja. Erre a listra rengeteg javts rkezik, amelyek valsznleg egy tlag FreeBSD felhasznl szmra nem tlzottan rdekesek. A kd vltozstl fggetlen biztonsgi krdsek megvitatsa a freebsd-security listn trtnik. Viszont az sszes fejlesztnek javasoljuk, hogy kldjk be fellvizsglatra a javtsaikat, klnsen abban az esetben, amikor a forrskd olyan rszhez nylnak, ahol az adott hiba javtsa a rendszer egsznek mkdsre kihatssal lehet. freebsd-binup (http://lists.FreeBSD.org/mailman/listinfo/freebsd-binup) A FreeBSD binris frisstsvel foglalkoz projekt Ez a lista ad otthont a binup vagy ms nven a binris frisstsi rendszer (binary update system) krl felmerl problmk trgyalsnak. Tervezsi krdsek, implementcis rszletek, javtsok, hiba- s llapotjelentsek, funkcik ignylse, a kd vltozsainak naplzsa s minden, ami a binuppal kapcsolatos. freebsd-bluetooth (http://lists.FreeBSD.org/mailman/listinfo/freebsd-bluetooth) Bluetooth a FreeBSD-ben Ez a Bluetooth-os FreeBSD felhasznlk gylekezhelye. Tervezsi s implementcis krdsek, javtsok, hiba- s llapotjelentsek, funkcik ignylse, minden, ami Bluetooth. freebsd-bugbusters (http://lists.FreeBSD.org/mailman/listinfo/freebsd-bugbusters) A hibajelentsek kezelsnek sszefogsa A lista clja a Bugmeister s az Bugbustereinek, valamint a hibajelentsek adatbzisai irnti kifejezetten rdekld szemlyek egyttmkdsnek s kapcsolattartsnak elsegtse. Ez a lista nem az egyes hibkrl, javtsokrl vagy azok jelentsrl szl. freebsd-bugs (http://lists.FreeBSD.org/mailman/listinfo/freebsd-bugs) Hibajelentsek Ezen a levelezsi listn lehet a FreeBSD hibit bejelenteni. Ha lehet, akkor a hibkat a send-pr(1) paranccsal vagy a webes felleten (http://www.FreeBSD.org/send-pr.html) keresztl kldjk be. freebsd-chat (http://lists.FreeBSD.org/mailman/listinfo/freebsd-chat) A FreeBSD kzssg nem szakmai jelleg dolgai Erre a listra kerl minden olyan nem szakmai jelleg, trsadalmi rintkezssel kapcsolatos informci, ami a tbbi listrl kimaradt: Jordan mennyire hasonlt a rajzlmeken lthat vadszgrnyre, kis- vagy nagybetvel rjuk-e, ki iszik sok kvt, hol fzik a legjobb srket, ki fz srt az alagsorban s gy tovbb. Elvtve felbukkannak olyan fontosabb esemnyek is (bulik, lakodalmak, gyermeklds, j munkahely stb), amelyek ugyan szakmai tmjak, de a folyomnyaik mr inkbb a -chat listra tartoznak. freebsd-core A FreeBSD irnytst vgz csapat

1005

Fggelk C. Forrsok az interneten Ezt a bels levelezsi listt a Core Team tagjai hasznljk. Akkor rdemes ide levelet kldeni, ha FreeBSD-vel kapcsolatos fontos gyekben lenne szksgnk dntsre vagy vlemnyre. freebsd-current (http://lists.FreeBSD.org/mailman/listinfo/freebsd-current) A FreeBSD-CURRENT hasznlatval kapcsolatos megbeszlsek A FreeBSD-CURRENT felhasznlinak levelezsi listja. Itt rteslhetnk a -CURRENT felhasznlkat rint friss jdonsgairl, s azokrl az utastsokrl, amelyek kvetsvel mkdkpesen tarthatjuk a -CURRENT rendszernket. Aki a -CURRENT verzit hasznlja, mindenkppen iratkozzon fel erre a listra. Ez is egy szakmai jelleg lista, ahov csak szigoran ilyen tmkat vrnak. freebsd-cvsweb (http://lists.FreeBSD.org/mailman/listinfo/freebsd-cvsweb) A FreeBSD CVSweb projekt A FreeBSD CVSweb szolgltatsnak hasznlatrl, fejlesztsrl s karbantartsrl szl megbeszlsek. freebsd-doc (http://lists.FreeBSD.org/mailman/listinfo/freebsd-doc) A dokumentcis projekt Ez a levelezsi lista a FreeBSD-rl szl klnbz dokumentumok ksztsvel kapcsolatos problmk s projektek trgyalsait leli fel. A levelezsi lista tagjait egyttesen a FreeBSD Dokumentcis Projekt-nek nevezik. Ez egy nylt lista, csatlakozzunk hozz btran! freebsd-drivers (http://lists.FreeBSD.org/mailman/listinfo/freebsd-drivers) Eszkzmeghajtk rsa FreeBSD-re A FreeBSD-hez kszl eszkzmeghajtkrl szl szakmai frum. Elssorban itt tehetik fel a meghajtk kszti a FreeBSD rendszermagjban megtalallhat API-kra vonatkoz krdseiket. freebsd-eclipse (http://lists.FreeBSD.org/mailman/listinfo/freebsd-eclipse) Az Eclipse integrlt fejleszti krnyezetnek, segprogramjainak, kliensalkalmazsainak s portjainak FreeBSD felhasznlk szmra meghirdetett fruma. A lista azzal a szndkkal jtt ltre, hogy klcsns tmogatst nyjtson az Eclipse fejleszti krnyezet, a hozztartoz segdeszkzk, kliensalkalmazsok FreeBSD vltozatnak megvlasztsban, teleptsben s hasznlatban. Emellett az Eclipse krnyezet s pluginjainak FreeBSD-re trtn portolsrl is sz esik. Valamint igyekszik minl tbbet protlni az Eclipse s a FreeBSD kr csoportosul kzssgek klcsns informcicserjbl. Habr a lista elsdlegesen az Eclipse felhasznlinek ignyeire koncentrl, azok szmra is tptalajt ad, akik az Eclipse keretrendszer segtsgvel FreeBSD specikus alkalmazsokat szeretnnek kifejleszteni. freebsd-embedded (http://lists.FreeBSD.org/mailman/listinfo/freebsd-embedded) A FreeBSD hasznlata begyazott alkalmazsokban Ez a lista a FreeBSD begyazott rendszerekben trtn hasznlatt igyekszik megvitatni. Ez egy szakmai jelleg lista, ezrt ide szigoran csak ilyen tmj leveleket vrunk. A listn trgyalt begyazott rendszereknek tekintnk minden olyan szmtsi eszkzt, amely az ltalnos szmtsi krnyezetekkel szemben egyetlen feladatot lt el. Nem felttlenl csak ilyenek, de pldul a klnfle telefonok, illetve hlzati eszkzk, mint pldul tvlasztk, switchek, PBX-ek, tvoli mreszkzk, PDA-k, eladsi rendszerek s gy tovbb.

1006

Fggelk C. Forrsok az interneten freebsd-emulation (http://lists.FreeBSD.org/mailman/listinfo/freebsd-emulation) A Linux/MS-DOS/Windows rendszerek emulcija Ezen a listn arrl rtekezhetnk s olvashatunk, hogy FreeBSD alatt miknt futtassunk ms opercis rendszerekre rt programokat. freebsd-eol (http://lists.FreeBSD.org/mailman/listinfo/freebsd-eol) sszefogs a FreeBSD Projekt ltal tovbb mr tmogatott, FreeBSD-hez tartoz szoftverekrt Ezen a listn kap vagy kaphat helyet a FreeBSD Projekt ltal hivatalosan tovbb mr nem fejlesztett szoftverek felhasznli sszefogson alapul tmogatsa (pldul biztonsgi gyelmeztetsek vagy javtsok formjban). freebsd-rewire (http://lists.FreeBSD.org/mailman/listinfo/freebsd-rewire) FireWire (iLink, IEEE 1394) Ez a levelezsi lista foglalkozik a FreeBSD FireWire (azaz IEEE 1394, avagy iLink) alrendszernek implementcijval. Az itt felmerl tmk tbbek kzt a szabvnyok, buszos eszkzk s a hozzjuk tartoz protokollok, vezrlkrtyk s chipkszletek, valamint a mkdtetskre sznt programok felptse s megvalstsa. freebsd-fs (http://lists.FreeBSD.org/mailman/listinfo/freebsd-fs) llomnyrendszerek A FreeBSD-ben megjelen llomnyrendszerek kiveszse. Mivel ez egy szakmai jelleg lista, ide hatrozottan csak ilyen jelleg leveleket vrunk. freebsd-gecko (http://lists.FreeBSD.org/mailman/listinfo/freebsd-gecko) Gecko Rendering Engine Ezen a levelezsi listn a Gecko FreeBSD rendszerekre portolt vltozatval kapcsolatos frumot talljuk. Az itt felmerl tmk tbbsgkben a Gecko alap alkalmazsokrl, teleptskrl, s a FreeBSD alatti fejlesztskrl, tmogatsukrl szlnak. freebsd-geom (http://lists.FreeBSD.org/mailman/listinfo/freebsd-geom) GEOM A GEOM s a vele kapcsolatos implementci megbeszlsei. Szakmai jelleg lista, ezrt erre tekintettel csak ilyen tmj leveleket postzzunk ide. freebsd-gnome (http://lists.FreeBSD.org/mailman/listinfo/freebsd-gnome) GNOME A GNOME asztalkrnyezet FreeBSD rendszereket rint hasznlatrl szl lista. Mszaki jelleg, ezrt szigoran csak ilyen tmkban trsgalodjunk itt. freebsd-ipfw (http://lists.FreeBSD.org/mailman/listinfo/freebsd-ipfw) IP tzfalak A FreeBSD-ben lev IP tzfal jratervezsvel foglalkoz elgondolsok s szakmai tmj megbeszlsek otthona. Ide szigoran csak ilyen tmj leveleket kldjnk!

1007

Fggelk C. Forrsok az interneten freebsd-ia64 (http://lists.FreeBSD.org/mailman/listinfo/freebsd-ia64) A FreeBSD portolsa I64-re Ez a levelezsi lista a FreeBSD az Intel IA-64 platformjra ksztett portjval foglalkoz egynek kommunikcis eszkze, ahol az ezzel kapcsolatos problmk s azok klnbz megoldsai kerlnek tertkre. A tma irnt rdekldket is szvesen ltjuk. freebsd-isdn (http://lists.FreeBSD.org/mailman/listinfo/freebsd-isdn) ISDN kommunikci Ez a levelezsi lista a FreeBSD ISDN tmogatsrl szl. freebsd-java (http://lists.FreeBSD.org/mailman/listinfo/freebsd-java) Java alap fejlesztsek A levelezsi listn a nagyobb Java alkalmazsok FreeBSD alap fejlesztst, valamint a JDK-k portolsrl s karbantartst beszlik meg. freebsd-jobs (http://lists.FreeBSD.org/mailman/listinfo/freebsd-jobs) Munkt keres/knl Erre a frumra tudjuk bekldeni a kifejezetten FreeBSD-hez kapcsold munkaajnlatokat s nletrajzokat, teht ez a megfelel hely, ha FreeBSD-s munkt keresnk, vagy ppen FreeBSD szakrtket. Ez azonban nem egy ltalnos cl llsbrze, mert arra megvannak a megfelel helyek. Szeretnnk hozztenni, hogy ez a lista, a tbbi FreeBSD.org levelezsi listhoz hasonlan, vilgmretekben mkdik. Ezrt ne felejtsk sosem pontosan megjellni a munkavgzs helyt, illetve hogy milyen kommunikcis s esetlegesen kltzsi lehetsgeket javaslunk. A leveleket csak nylt formtumban kldjk elssorban szveges formtumban, de az egyszerbb PDF, HTML vagy mg nhny ms hozzjuk hasonl formtumot is alkalmazhatunk. Az olyan zrt formtumok, mint pldul a Microsoft Word (.doc) azonban nem fognak tovbbtdni. freebsd-kde (https://mail.kde.org/mailman/listinfo/kde-freebsd) KDE A KDE s FreeBSD kapcsolatrl szl lista. Szigoran szakmai jelleg, ezrt csak ilyen tmj levelek kldse elfogadott. freebsd-hackers (http://lists.FreeBSD.org/mailman/listinfo/freebsd-hackers) Szakmai krdsek Ez a FreeBSD szakmai jelleg krdseivel foglalkoz frum. Ez az els szm szakmai levelezsi lista. A FreeBSD fejlesztsvel aktvan foglalkoz egynek szmra ajnljuk, hiszen itt vethetik fel problmikat, itt kereshetnek rjuk megoldsokat. Az ilyen tpus megbeszlseket gyelemmel kvet egyneket is szvesen fogadjuk. Mivel ez egy ersen szakmai jelleg lista, ezrt csak ilyen tmj leveleket vrunk ide. freebsd-hardware (http://lists.FreeBSD.org/mailman/listinfo/freebsd-hardware) A FreeBSD s a hardverek kapcsolatrl ltalban Ezen a listn kerl megvitatsra minden olyan hardver, amelyen a FreeBSD mkdik: milyen gondok addhatnak, milyen hardvereket rdemes beszereznnk vagy elkerlnnk.

1008

Fggelk C. Forrsok az interneten freebsd-hubs (http://lists.FreeBSD.org/mailman/listinfo/freebsd-hubs) Tkrzsek A FreeBSD tkrzseit karbantart egynek szmra fontos bejelentsek s megbeszlsek. freebsd-isp (http://lists.FreeBSD.org/mailman/listinfo/freebsd-isp) Az internet-szolgltatk fruma Ezen a levelezsi listn a FreeBSD-t hasznl internet-szolgltatk tehetik fel krdseiket. Szigoran csak szakmai jelleg krdsek engedlyezettek. freebsd-mono (http://lists.FreeBSD.org/mailman/listinfo/freebsd-mono) Mono s C# alkalmazsok FreeBSD alatt Ezen a levelezsi listn a Mono fejleszti keretrendszer FreeBSD alatt fut vltozatval kapcsolatos megbeszlsek folynak. Ez egy szakmai jelleg lista. Itt a Mono vagy ms C# alkalmazsok FreeBSD vltozatnak elksztsn dolgoz egynek tudnak problmkat felvetni vagy megvitatni a klnbz megoldsokat. Rajtuk kvl viszont szeretettel vrunk minden rdekldt a tma irnt. freebsd-openofce (http://lists.FreeBSD.org/mailman/listinfo/freebsd-openofce) OpenOfce.org Az OpenOfce.org s StarOfce portolsval s karbantartsval kapcsolatos megbeszlsek. freebsd-performance (http://lists.FreeBSD.org/mailman/listinfo/freebsd-performance) A FreeBSD hangolsnak s gyorstsnak trgyalsa Ezen a levelezsi listn van lehetsgk a hackereknek, rendszergazdknak s/vagy az rintett feleknek a FreeBSD teljestmnyvel kapcsolatos tmkban kifejteni a vlemnyket. Leginkbb nagy terhels alatt lev, vagy teljestmnybeli problmkkal kszkd, esetleg mg tbbet tud FreeBSD rendszerek trgyalsa a cl. Lehetleg az rintett gyrtkkal s szlltkkal egyttesen prbljuk kidolgozni a FreeBSD teljestmnynek nvelsre tett ksrleteinket, ezrt ket is szvesen ltjuk ezen a listn. Ez a kifejezetten szakmai jelleg lista tbbsgben a tapasztalt FreeBSD felhasznlk, hackerek vagy rendszergazdk szmra trja fel a gyors, megbzhat s sklzhat FreeBSD rendszerek lehetsgeit. Ez alapveten nem egy krdezgets lista, ahol a dokumentcik elolvasst tudjuk megsprolni, hanem egy olyan hely, ahol a teljestmnyt rint megvlaszolatlan krdsek s elremutat fejlesztsek nyernek teret. freebsd-pf (http://lists.FreeBSD.org/mailman/listinfo/freebsd-pf) A csomagszr tzfalrendszerrel kapcsolatos krdsek A FreeBSD csomagszrjhez (packet lter, pf) tartoz tzfalrendszer megbeszlseit sszefoglal lista. Szakmai jelleg fejtegetsek s felhasznli krdsek egyarnt jhetnek. Tovbb ezen a listn foglalkozunk az ALTQ rendszer mkdsvel is. freebsd-platforms (http://lists.FreeBSD.org/mailman/listinfo/freebsd-platforms) Portols nem Intel plaformokra A FreeBSD klnbz, nem az Intel architektrra ptkez portjainak indtvnyozsa s ltalnos jelleg megvitatsa. Ez egy kiemelten szakmai jelleg lista, ezrt ide csak ilyen tmj leveleket vrunk.

1009

Fggelk C. Forrsok az interneten freebsd-policy (http://lists.FreeBSD.org/mailman/listinfo/freebsd-policy) Az Core Team szablyozsai Alacsony forgalm, csak olvashat lista, ahol a FreeBSD fejlesztst irnyt csoport klnbz dntseirl olvashatunk. freebsd-ports (http://lists.FreeBSD.org/mailman/listinfo/freebsd-ports) A portok megbeszlse A FreeBSD portgyjtemnyvel (/usr/ports), a portok infrastruktrjval s a portok fejlesztsnek irnytsval kapcsolatos megbeszlsek. Ersen szakmai jelleg lista, ezrt ide csak ilyen tmban rjunk. freebsd-ports-bugs (http://lists.FreeBSD.org/mailman/listinfo/freebsd-ports-bugs) A portok hibinak trgyalsa A FreeBSD portgyjtemnynek (/usr/ports), a bejelentett portok s azok mdostshoz ktd hibajelentsekkel foglalkoz lista. Ez egy szakmai jelleg lista, ahol csak ilyen jelleg tmkra szmtunk. freebsd-proliant (http://lists.FreeBSD.org/mailman/listinfo/freebsd-proliant) A FreeBSD s a HP ProLiant szerverek kapcsolatt rint szakmai megbeszlsek Ezen a levelezsi listn a FreeBSD HP ProLiant szervereken trtn hasznlatt clozzuk meg, belertve a ProLianthoz tartoz eszkzmeghajtkat, karbantart s kongurcis szoftvereket s BIOS-frisstseket. Ennek megfelelen teht a hpasmd, hpasmcli s hpacucli modulok is elssorban itt kerlnek felboncolsra. freebsd-python (http://lists.FreeBSD.org/mailman/listinfo/freebsd-python) A FreeBSD s a Python A lista a FreeBSD Python tmogatsnak fejlesztsrl folytatott szakmai megbeszlseket foglalja ssze. Elssorban a Python portolsval foglalkoz egynek, valamint a kls fejlesztk ltal ksztett modulok s a Zope FreeBSD-s alkalmazsval foglalkozik. Az emltett tmk irnti rdekldket is szeretettel vrjuk. freebsd-questions (http://lists.FreeBSD.org/mailman/listinfo/freebsd-questions) Felhasznli krdsek Ez a levelezsi lista a FreeBSD-vel kapcsolatos krdsekrl szl. Lehetleg ne kldjnk hogyan tmj krdseket erre a szakmai listra, hacsak nem kifejezetten szakmai jellegnek sznjuk. freebsd-ruby (http://lists.FreeBSD.org/mailman/listinfo/freebsd-ruby) A Ruby hasznlata FreeBSD rendszereken Ezen a listn a FreeBSD Ruby tmogatsval foglalkozunk, tmjt tekintve teljesen szakmai jelleg. Elssorban a Ruby portokon, kls Ruby knyvtrakon s rendszereken dolgoz fejlesztk gyelmbe ajnljuk. Mindenkit szeretettel vrunk, aki ezekkel kapcsolatos szakmai trgy tmkat szeretne megvitatni. freebsd-scsi (http://lists.FreeBSD.org/mailman/listinfo/freebsd-scsi) A SCSI alrendszer Ezt a levelezsi listt a FreeBSD alatt a SCSI alrendszerrel foglalkozk szmra tarjuk fenn. Mivel ez egy ersen szakmai jelleg lista, ezrt rajta csak szakmai tmk megengedettek.

1010

Fggelk C. Forrsok az interneten freebsd-security (http://lists.FreeBSD.org/mailman/listinfo/freebsd-security) Biztonsgi problmk A FreeBSD biztonsgt illet krdsek (DES, Kerberos, biztonsgi rsek s javtsaik, stb.) Szakmai jelleg lista, ezrt ide csak a tmhoz szorosan kapcsold leveleket szabad bekldeni. Alapveten nem krdezz-felelek tpus a lista mkdse, habr a GYIK-hoz minden hozzjrulst (krdst S vlaszt EGYARNT) szvesen vesznk. freebsd-security-notications (http://lists.FreeBSD.org/mailman/listinfo/freebsd-security-notications) Biztonsgi gyelmeztetsek A FreeBSD-t rint biztonsgi problmkrl s javtsaikrl szl rtestsek. Megbeszlsekkel, vitkkal nem foglalkozik, mivel azok a FreeBSD-security listn folynak. freebsd-small (http://lists.FreeBSD.org/mailman/listinfo/freebsd-small) A FreeBSD hasznlata begyazott alkalmazsokban A szokatlanul kis mret vagy begyazott FreeBSD rendszerekhez kapcsold megbeszlsek sznhelye. Szakmai jelleg lista, ezrt szigoran csak a tmhoz tartoz leveleket fogad.
Megjegyzs: Ezt a listt idkzben felvltotta a freebsd-embedded (http://lists.FreeBSD.org/mailman/listinfo/freebsd-embedded) lista.

freebsd-stable (http://lists.FreeBSD.org/mailman/listinfo/freebsd-stable) A FreeBSD-STABLE hasznlatrl szl lista Ez a FreeBSD-STABLE hasznlinak levelezsi listja. Ide kerlnek bekldsre a -STABLE gat futtat felhasznlkat rint friss vltozsok, valamint hozzjuk ktden a -STABLE hasznlathoz szksges elvgzend lpsek. Aki a STABLE jelzs vltozatot hasznlja, mindenkppen iratkozzon fel r. Szigoran szakmai jelleg lista, ezrt csak szakmai tmj leveleket vr. freebsd-standards (http://lists.FreeBSD.org/mailman/listinfo/freebsd-standards) C99 s POSIX megfelels Ez a frum foglalkozik a FreeBSD s a C99, valamint a POSIX szabvnyok szerinti megfelelsvel. freebsd-usb (http://lists.FreeBSD.org/mailman/listinfo/freebsd-usb) A FreeBSD USB tmogatsa Ez a levelezsi lista fogja sszes a FreeBSD USB tmogatsval foglalkoz szakmai tmkat. freebsd-user-groups (http://lists.FreeBSD.org/mailman/listinfo/freebsd-user-groups) A felhasznli csoportokat irnyt lista Ez a levelezsi lista az egyes terleteken mkd felhasznli csoportok az irnytst vgz kzponti csoport tagjai ltali sszehangolshoz tartoz problmk megbeszlsre val. Ez a lista leginkbb a gylsek letisztzsra s a tbb csoporton tvel nagyobb projektek szervezshez hasznlatos.

1011

Fggelk C. Forrsok az interneten freebsd-vendors (http://lists.FreeBSD.org/mailman/listinfo/freebsd-vendors) Gyrtk A FreeBSD projekt s a hozz ktd hardver- s szoftvergyrtk egyttmkdst elsegt lista. freebsd-virtualization (http://lists.FreeBSD.org/mailman/listinfo/freebsd-virtualization) A FreeBSD rszrl tmogatott klnbz virtualizcis technolgik Ezen a levelezsi listn elssorban a FreeBSD ltal tmogatott virtualizcis megoldsokat vitatjuk meg. Ennek keretben egyrszt az ehhez kapcsold alapvet funkcik megvalstsa valamint tovbbi jtsok kerlnek a kzppontba, msrszt a felhasznlk szmra ezzel ltrehoztunk egy frumot a felmerl problmk megoldsra s az alkalmazsi lehetsgek megbeszelsre. freebsd-wip-status (http://lists.FreeBSD.org/mailman/listinfo/freebsd-wip-status) A FreeBSD-vel kapcsolatos folyamatban lev fejlesztsek helyzetjelentse Ezen a levelezsi listn kerlnek bejelentsre a FreeBSD tovbbfejlesztshez fzd klnbz munkk s azok haladsnak menete. Az ide befut zeneteket moderljk. Javasoljuk, hogy elsdlegesen az adott tmhoz tartoz tematikus FreeBSD listra kldjk a bejelentsnket s csak egy msolatot erre a listra. Ennek ksznheten a munknk az adott tmaspecikus listn rgtn meg is vitathat, mivel ezen a listn semmi ilyen nem engedlyezett. A lista archvumba tekintve tjkozdhatunk arrl, hogy pontosan milyen formai kvetelmnyek illene megfelelnie a beklden zenetnknek. A listra berkez zenetekbl egy szerkesztett vlogats jelenik meg nhny havonta a FreeBSD honlapjn a Projekt helyzetjelentsnek rszeknt 1. A korbban bekldtt jelentsek mellett itt mg tallhatunk tovbbi pldkat. freebsd-xen (http://lists.FreeBSD.org/mailman/listinfo/freebsd-xen) A Xen FreeBSD portjnak (implementci s hasznlat) megvitatsa A lista elssorban a Xen FreeBSD-re kszlt vltozatval foglalkozik. Elrelthatlag elg kevesen fognak rni erre a listra ahhoz, hogy helyet kapjanak rajta az implementcit s a kialaktst rint szakmai jelleg megbeszlsek s a teleptssel kapcsolatos krdsek egyarnt.

C.1.4. A levelezsi listk szrse


A kretlen reklmlevelek, vrusok s egyebek elleni vdekezs cljbl a FreeBSD levelezsi listinak forgalmt tbb mdon is szrik. Az ebben a szakaszban bemutatott szrsi megoldsok nem fedik le a levelezsi listk vdelme rdekben alkalmazott sszes lehetsget. A levelezsi listkra csak bizonyos tpus csatolt llomnyokat kldhetnk be. Az albbi listban nem tallhat MIME tpus csatolt objektumokat mg a listra rkezs eltt trlik.

application/octet-stream application/pdf application/pgp-signature application/x-pkcs7-signature

1012

Fggelk C. Forrsok az interneten


message/rfc822 multipart/alternative multipart/related multipart/signed text/html text/plain text/x-diff text/x-patch


Megjegyzs: Egyes levelezsi listk ugyan megengedhetnek tovbbi csatolt MIME objektumokat is, habr a legtbb lista esetben a fenti lista a mrvad.

Ha egy levlben a szveg HTML s nyers szveg formtumban is szerepel, a HTML vltozat automatikusan eltvoltsra kerl. Ha az e-mail csak HTML formban tartalmazza a szveget, akkor automatikusan nyers szvegre alaktdik t.

C.2. Usenet hrcsoportok


A kt FreeBSD-s hrcsoport mellett mg akadnak olyan tovbbi csoportok is, ahol FreeBSD tmj krdseket vitathatunk meg vagy hasznos lehet szmunkra. Az itt felsorolt hrcsoportok kulcsszavakkal kereshet archvuma (http://minnie.tuhs.org/BSD-info/bsdnews_search.html) Warren Toomey tulajdona (<wkt@cs.adfa.edu.au>).

C.2.1. BSD-s hrcsoportok


comp.unix.bsd.freebsd.announce (news:comp.unix.bsd.freebsd.announce) comp.unix.bsd.freebsd.misc (news:comp.unix.bsd.freebsd.misc) de.comp.os.unix.bsd (news:de.comp.os.unix.bsd) (nmet) fr.comp.os.bsd (news:fr.comp.os.bsd) (francia) it.comp.os.freebsd (news:it.comp.os.freebsd) (olasz) tw.bbs.comp.386bsd (news:tw.bbs.comp.386bsd) (hagyomnyos knai)

C.2.2. Egyb rdekes UNIX-os hrcsoportok


comp.unix (news:comp.unix) comp.unix.questions (news:comp.unix.questions)

1013

Fggelk C. Forrsok az interneten


comp.unix.admin (news:comp.unix.admin) comp.unix.programmer (news:comp.unix.programmer) comp.unix.shell (news:comp.unix.shell) comp.unix.user-friendly (news:comp.unix.user-friendly) comp.security.unix (news:comp.security.unix) comp.sources.unix (news:comp.sources.unix) comp.unix.advocacy (news:comp.unix.advocacy) comp.unix.misc (news:comp.unix.misc) comp.bugs.4bsd (news:comp.bugs.4bsd) comp.bugs.4bsd.ucb-xes (news:comp.bugs.4bsd.ucb-xes) comp.unix.bsd (news:comp.unix.bsd)

C.2.3. X Window System


comp.windows.x.i386unix (news:comp.windows.x.i386unix) comp.windows.x (news:comp.windows.x) comp.windows.x.apps (news:comp.windows.x.apps) comp.windows.x.announce (news:comp.windows.x.announce) comp.windows.x.intrinsics (news:comp.windows.x.intrinsics) comp.windows.x.motif (news:comp.windows.x.motif) comp.windows.x.pex (news:comp.windows.x.pex) comp.emulators.ms-windows.wine (news:comp.emulators.ms-windows.wine)

C.3. Vilghls szolgltatsok


C.3.1. Frumok, blogok s ismertsgi hlzatok

A FreeBSD frumok (http://forums.freebsd.org/) a FreeBSD kapcsn felmerl krdsek s szakmai tmk megvitatshoz egy webes felletet knlnak fel. A Planet FreeBSD (http://planet.freebsdish.org/) honlapjn fejlesztk ltal vezetett tucatnyi webes naplt s hozzjuk tartoz RSS feedeket tallhatunk. Sok fejleszt ezen a mdon kszt rvid feljegyzseket a jelenlegi munkjrl, az j javtsokrl s ms egyb terveirl.

1014

Fggelk C. Forrsok az interneten

A Youtube-on keresztl elrhet BSDConferences (http://www.youtube.com/bsdconferences) csatornn a vilg minden tjn tartott klnbz BSD tmj konferencik videoanyagait tallhatjuk meg. Segtsgvel megtekinthetjk a fontosabb fejlesztk ltal a sajt munkjukrl tartott klnbz eladsokat.

C.3.2. Hivatalos tkrzsek


Kzponti szerverek, Amerikai Egyeslt llamok, Argentna, Ausztrlia, Ausztria, Belgium, Brazlia, Bulgria, Costa Rica, Cseh Kztrsasg, Dnia, Dl-Afrika, Egyeslt Kirlysg, sztorszg, Finnorszg, Franciaorszg, Flp-szigetek, Grgorszg, Hollandia, Hongkong, Indonzia, Izland, Japn, Kanada, Kna, Kirgizisztn, Korea, Kuvait, Lettorszg, Litvnia, Magyarorszg, Nmetorszg, Norvgia, Olaszorszg, rmnyorszg, Oroszorszg, Portuglia, Romnia, San Marino, Spanyolorszg, Svjc, Svdorszg, Szingapr, Szlovk Kztrsasg, Szlovnia, Tajvan, Thaifld, Trkorszg, j-Zland, Ukrajna. (Dtum: 2010/06/17 12:49:57 UTC)

Kzponti szerverek

http://www.FreeBSD.org/

Amerikai Egyeslt llamok


http://www2.us.FreeBSD.org/ http://www4.us.FreeBSD.org/ (IPv6) http://www5.us.FreeBSD.org/ (IPv6)

Argentna

http://www.ar.FreeBSD.org/

Ausztrlia

http://www.au.FreeBSD.org/ http://www2.au.FreeBSD.org/

Ausztria

http://www.at.FreeBSD.org/ (IPv6) http://www2.at.FreeBSD.org/ (IPv6)

1015

Fggelk C. Forrsok az interneten

Belgium

http://freebsd.unixtech.be/

Brazlia

http://www.br.FreeBSD.org/ http://www2.br.FreeBSD.org/www.freebsd.org/ http://www3.br.FreeBSD.org/

Bulgria

http://www.bg.FreeBSD.org/ http://www2.bg.FreeBSD.org/

Costa Rica

http://www1.cr.FreeBSD.org/

Cseh Kztrsasg

http://www.cz.FreeBSD.org/ (IPv6)

Dnia

http://www.dk.FreeBSD.org/ (IPv6) http://www3.dk.FreeBSD.org/

Dl-Afrika

http://www.za.FreeBSD.org/ http://www2.za.FreeBSD.org/

1016

Fggelk C. Forrsok az interneten Egyeslt Kirlysg


http://www1.uk.FreeBSD.org/ http://www3.uk.FreeBSD.org/

sztorszg

http://www.ee.FreeBSD.org/

Finnorszg

http://www..FreeBSD.org/ http://www2..FreeBSD.org/

Franciaorszg

http://www.fr.FreeBSD.org/ http://www1.fr.FreeBSD.org/

Flp-szigetek

http://www.FreeBSD.org.ph/

Grgorszg

http://www.gr.FreeBSD.org/

Hollandia

http://www.nl.FreeBSD.org/ http://www2.nl.FreeBSD.org/

Hongkong

http://www.hk.FreeBSD.org/

1017

Fggelk C. Forrsok az interneten

Indonzia

http://www.id.FreeBSD.org/

Izland

http://www.is.FreeBSD.org/

Japn

http://www.jp.FreeBSD.org/www.FreeBSD.org/ (IPv6)

Kanada

http://www.ca.FreeBSD.org/ http://www2.ca.FreeBSD.org/

Kna

http://www.cn.FreeBSD.org/

Kirgizisztn

http://www.kg.FreeBSD.org/

Korea

http://www.kr.FreeBSD.org/ http://www2.kr.FreeBSD.org/

Kuvait

http://www.kw.FreeBSD.org/

1018

Fggelk C. Forrsok az interneten Lettorszg


http://www.lv.FreeBSD.org/ http://www2.lv.FreeBSD.org/

Litvnia

http://www.lt.FreeBSD.org/

Magyarorszg

http://www.hu.FreeBSD.org/ http://www2.hu.FreeBSD.org/

Nmetorszg

http://www.de.FreeBSD.org/

Norvgia

http://www.no.FreeBSD.org/

Olaszorszg

http://www.it.FreeBSD.org/ http://www.gu.org/mirrors/www.freebsd.org/data/

rmnyorszg

http://www1.am.FreeBSD.org/ (IPv6)

Oroszorszg

http://www.ru.FreeBSD.org/ http://www2.ru.FreeBSD.org/ http://www3.ru.FreeBSD.org/

1019

Fggelk C. Forrsok az interneten


http://www4.ru.FreeBSD.org/ http://www5.ru.FreeBSD.org/

Portuglia

http://www.pt.FreeBSD.org/ http://www1.pt.FreeBSD.org/ http://www4.pt.FreeBSD.org/ http://www5.pt.FreeBSD.org/

Romnia

http://www.ro.FreeBSD.org/ http://www1.ro.FreeBSD.org/ http://www2.ro.FreeBSD.org/ http://www3.ro.FreeBSD.org/

San Marino

http://www.sm.FreeBSD.org/

Spanyolorszg

http://www.es.FreeBSD.org/ http://www2.es.FreeBSD.org/ http://www3.es.FreeBSD.org/

Svjc

http://www.ch.FreeBSD.org/ http://www2.ch.FreeBSD.org/

Svdorszg

http://www.se.FreeBSD.org/

1020

Fggelk C. Forrsok az interneten

http://www2.se.FreeBSD.org/

Szingapr

http://www2.sg.FreeBSD.org/

Szlovk Kztrsasg

http://www.sk.FreeBSD.org/

Szlovnia

http://www.si.FreeBSD.org/ http://www2.si.FreeBSD.org/

Tajvan

http://www.tw.FreeBSD.org/ (IPv6) http://www2.tw.FreeBSD.org/ http://www3.tw.FreeBSD.org/ http://www4.tw.FreeBSD.org/ http://www5.tw.FreeBSD.org/ (IPv6) http://www6.tw.FreeBSD.org/ http://www7.tw.FreeBSD.org/

Thaifld

http://www.th.FreeBSD.org/

Trkorszg

http://www.tr.FreeBSD.org/ http://www2.tr.FreeBSD.org/ http://www3.tr.FreeBSD.org/ (IPv6)

1021

Fggelk C. Forrsok az interneten

j-Zland

http://www.nz.FreeBSD.org/

Ukrajna

http://www.ua.FreeBSD.org/ http://www2.ua.FreeBSD.org/ http://www5.ua.FreeBSD.org/ http://www4.ua.FreeBSD.org/

C.4. E-mail cmek


A kvetkez felhasznli csoportok nyjtanak FreeBSD-s e-mail cmeket tagjaiknak. A rendszergazdk brmilyen visszals esetn fenntartjk a visszavons jogt. Cmtartomny ukug.uk.FreeBSD.org Lehetsgek Csak tovbbts Felhasznli csoport Rendszergazda

<ukfreebsd@uk.FreeBSD.orgJohnston Lee > <lee@uk.FreeBSD.org>

Megjegyzsek
1. http://www.freebsd.org/news/status/

1022

Fggelk D. PGP-kulcsok
Arra az esetre, ha ellenriznnk kellene a tisztsgviselk vagy fejlesztk alrst, esetleg titkostott e-mailt szeretnnk kldeni nekik, ebben a fejezetben mellkeljk az ehhez szksges kulcsokat. A FreeBSD.org sszes felhasznljnak kulcsa letlthet a http://www.FreeBSD.org/doc/pgpkeyring.txt cmrl.

D.1. Tisztsgviselk
D.1.1. Security Ofcer Team <security-officer@FreeBSD.org>
pub sub 1024D/CA6CDFB2 2002-08-27 FreeBSD Security Officer <security-officer@FreeBSD.org> Key fingerprint = C374 0FC5 69A6 FBB1 4AED B131 15D6 8804 CA6C DFB2 2048g/A3071809 2002-08-27

D.1.2. Core Team Titkr <core-secretary@FreeBSD.org>


pub 1024R/FF8AE305 2002-01-08 core-secretary@FreeBSD.org Key fingerprint = CE EF 8A 48 70 00 B5 A9 55 69 DE 87 E3 9A E1 CD

D.1.3. Ports Management Team Titkr <portmgr-secretary@FreeBSD.org>


pub uid sub 1024D/7414629C 2005-11-30 Key fingerprint = D50C BA61 8DC6 C42E 4C05 BF9A 79F6 E071 7414 629C FreeBSD portmgr secretary <portmgr-secretary@FreeBSD.org> 2048g/80B696E6 2005-11-30

D.2. A Core Team tagjai


D.2.1. Wilko Bulte <wilko@FreeBSD.org>
pub uid sub 1024D/186B8DBD 2006-07-29 Key fingerprint = 07C2 6CB3 9C18 D290 6C5F 8879 CF83 EC86 186B 8DBD Wilko Bulte (wilko@FreeBSD.org) <wilko@FreeBSD.org> 2048g/1C4683F1 2006-07-29

1023

Fggelk D. PGP-kulcsok

D.2.2. Brooks Davis <brooks@FreeBSD.org>


pub uid uid uid sub sub 1024D/F2381AD4 2001-02-10 Brooks Davis (The Aerospace Corporation) <brooks@aero.org> Key fingerprint = 655D 519C 26A7 82E7 2529 9BF0 5D8E 8BE9 F238 1AD4 Brooks Davis <brooks@one-eyed-alien.net> Brooks Davis <brooks@FreeBSD.org> Brooks Davis <brooks@aero.org> 2048g/CFDACA7A 2003-01-25 [expires: 2008-01-24] 1024g/42921194 2001-02-10 [expires: 2009-02-08]

D.2.3. Giorgos Keramidas <keramida@FreeBSD.org>


pub uid uid uid uid sub 1024D/318603B6 2001-09-21 Key fingerprint = C1EB 0653 DB8B Giorgos Keramidas Giorgos Keramidas Giorgos Keramidas Giorgos Keramidas 1024g/50FDBAD1 2001-09-21 A557 3829 00F9 D60F 941A 3186 03B6 <keramida@FreeBSD.org> <keramida@ceid.upatras.gr> <keramida@hellug.gr> <keramida@linux.gr>

D.2.4. George V. Neville-Neil <gnn@FreeBSD.org>


pub uid uid sub 1024D/440A33D2 2002-09-17 Key fingerprint = AF66 410F CC8D 1FC9 17DB 6225 61D8 76C1 440A 33D2 George V. Neville-Neil <gnn@freebsd.org> George V. Neville-Neil <gnn@neville-neil.com> 2048g/95A74F6E 2002-09-17

D.2.5. Hiroki Sato <hrs@FreeBSD.org>


pub uid uid uid uid uid uid uid uid sub 1024D/2793CF2D 2001-06-12 Key fingerprint = BDB3 443F A5DD B3D0 A530 FFD7 4F2C D3D8 2793 CF2D Hiroki Sato <hrs@allbsd.org> Hiroki Sato <hrs@eos.ocn.ne.jp> Hiroki Sato <hrs@ring.gr.jp> Hiroki Sato <hrs@FreeBSD.org> Hiroki Sato <hrs@jp.FreeBSD.org> Hiroki Sato <hrs@vlsi.ee.noda.tus.ac.jp> Hiroki Sato <hrs@jp.NetBSD.org> Hiroki Sato <hrs@NetBSD.org> 1024g/8CD251FF 2001-06-12

1024

Fggelk D. PGP-kulcsok

D.2.6. Murray Stokely <murray@FreeBSD.org>


pub sub 1024D/0E451F7D 2001-02-12 Murray Stokely <murray@freebsd.org> Key fingerprint = E2CA 411D DD44 53FD BB4B 3CB5 B4D7 10A2 0E45 1F7D 1024g/965A770C 2001-02-12

D.2.7. Kris Kennaway <kris@FreeBSD.org>


pub uid uid sub 1024D/68E840A5 2000-01-14 Kris Kennaway <kris@citusc.usc.edu> Key fingerprint = E65D 0E7D 7E16 B212 1BD6 39EE 5ABC B405 68E8 40A5 Kris Kennaway <kris@FreeBSD.org> Kris Kennaway <kris@obsecurity.org> 2048g/03A41C45 2000-01-14 [expires: 2006-01-14]

D.3. Fejlesztk
D.3.1. Ariff Abdullah <ariff@FreeBSD.org>
pub uid uid uid sub 1024D/C5304CDA 2005-10-01 Key fingerprint = 5C7C 6BF4 8293 DE76 27D9 FD57 96BF 9D78 C530 4CDA Ariff Abdullah <skywizard@MyBSD.org.my> Ariff Abdullah <ariff@MyBSD.org.my> Ariff Abdullah <ariff@FreeBSD.org> 2048g/8958C1D3 2005-10-01

D.3.2. Thomas Abthorpe <tabthorpe@FreeBSD.org>


pub uid uid uid sub 2048R/A473C990 2010-05-28 Key fingerprint = D883 2D7C EB78 944A 69FC 36A6 D937 1097 A473 C990 Thomas Abthorpe (FreeBSD Committer) <tabthorpe@FreeBSD.org> Thomas Abthorpe <thomas@goodking.ca> Thomas Abthorpe <tabthorpe@goodking.org> 2048R/8CA60EE0 2010-05-28

D.3.3. Shaun Amott <shaun@FreeBSD.org>


pub uid uid sub sub 1024D/6B387A9A 2001-03-19 Key fingerprint = B506 E6C7 74A1 CC11 9A23 5C13 9268 5D08 6B38 7A9A Shaun Amott <shaun@inerd.com> Shaun Amott <shaun@FreeBSD.org> 2048g/26FA8703 2001-03-19 2048R/7FFF5151 2005-11-06

1025

Fggelk D. PGP-kulcsok
sub 2048R/27C54137 2005-11-06

D.3.4. Henrik Brix Andersen <brix@FreeBSD.org>


pub uid uid sub 1024D/54E278F8 2003-04-09 Key fingerprint = 7B63 EF32 7831 A704 220D 7E61 BFE4 387E 54E2 78F8 Henrik Brix Andersen <henrik@brixandersen.dk> Henrik Brix Andersen <brix@FreeBSD.org> 1024g/3B13C209 2003-04-09

D.3.5. Matthias Andree <mandree@FreeBSD.org>


pub uid uid sub 1024D/052E7D95 2003-08-28 Key fingerprint = FDD0 0C43 6E33 07E1 0758 C6A8 BE61 8339 052E 7D95 Matthias Andree <mandree@freebsd.org> Matthias Andree <matthias.andree@gmx.de> 1536g/E65A83DA 2003-08-28

D.3.6. Will Andrews <will@FreeBSD.org>


pub uid uid uid uid uid uid sub 1024D/F81672C5 2000-05-22 Will Andrews (Key for official matters) <will@FreeBSD.org> Key fingerprint = 661F BBF7 9F5D 3D02 C862 5F6C 178E E274 F816 72C5 Will Andrews <will@physics.purdue.edu> Will Andrews <will@puck.firepipe.net> Will Andrews <will@c-60.org> Will Andrews <will@csociety.org> Will Andrews <will@csociety.ecn.purdue.edu> Will Andrews <will@telperion.openpackages.org> 1024g/55472804 2000-05-22

D.3.7. Eric Anholt <anholt@FreeBSD.org>


pub uid uid sub 1024D/6CF0EAF7 2003-09-08 Key fingerprint = 76FE 2475 820B B75F DCA4 0F3E 1D47 6F60 6CF0 EAF7 Eric Anholt <eta@lclark.edu> Eric Anholt <anholt@FreeBSD.org> 1024g/80B404C1 2003-09-08

D.3.8. Marcus von Appen <mva@FreeBSD.org>


pub uid 1024D/B267A647 2009-02-14 Key fingerprint = C7CC 1853 D8C5 E580 7795 B654 8BAF 3F12 B267 A647 Marcus von Appen <freebsd@sysfault.org>

1026

Fggelk D. PGP-kulcsok
uid sub Marcus von Appen <mva@freebsd.org> 2048g/D34A3BAF 2009-02-14

D.3.9. Marcelo Araujo <araujo@FreeBSD.org>


pub uid sub 1024D/53E4CFA8 2007-04-27 Key fingerprint = 9D6A 2339 925C 4F61 ED88 ED8B A2FC 4977 53E4 CFA8 Marcelo Araujo (Ports Committer) <araujo@FreeBSD.org> 2048g/63CC012D 2007-04-27

D.3.10. Mathieu Arnold <mat@FreeBSD.org>


pub uid uid uid uid uid uid uid uid sub 1024D/FE6D850F 2005-04-25 Key fingerprint = 2771 11F4 0A7E 73F9 ADDD A542 26A4 7C6A FE6D 850F Mathieu Arnold <mat@FreeBSD.org> Mathieu Arnold <mat@mat.cc> Mathieu Arnold <mat@cpan.org> Mathieu Arnold <m@absolight.fr> Mathieu Arnold <m@absolight.net> Mathieu Arnold <mat@club-internet.fr> Mathieu Arnold <marnold@april.org> Mathieu Arnold <paypal@mat.cc> 2048g/EAD18BD9 2005-04-25

D.3.11. Satoshi Asami <asami@FreeBSD.org>


pub uid 1024R/1E08D889 1997-07-23 Satoshi Asami <asami@cs.berkeley.edu> Key fingerprint = EB 3C 68 9E FB 6C EB 3F DB 2E 0F 10 8F CE 79 CA Satoshi Asami <asami@FreeBSD.ORG>

D.3.12. Gavin Atkinson <gavin@FreeBSD.org>


pub uid uid uid uid sub 1024D/A093262B 2005-02-18 Key fingerprint = 313A A79F 697D 3A5C 216A EDF5 935D EF44 A093 262B Gavin Atkinson <gavin@16squared.co.uk> Gavin Atkinson (FreeBSD key) <gavin@FreeBSD.org> Gavin Atkinson (Work e-mail) <ga9@york.ac.uk> Gavin Atkinson <gavin.atkinson@ury.york.ac.uk> 2048g/58F40B3D 2005-02-18

1027

Fggelk D. PGP-kulcsok

D.3.13. Philippe Audeoud <jadawin@FreeBSD.org>


pub uid uid uid uid sub 1024D/C835D40E 2005-04-13 Key fingerprint = D090 8C96 3612 15C9 4E3E 7A4A E498 FC2B C835 D40E Philippe Audeoud <jadawin@tuxaco.net> Philippe Audeoud <philippe@tuxaco.net> Philippe Audeoud <philippe.audeoud@sitadelle.com> Philippe Audeoud <jadawin@freebsd.org> 2048g/EF8EA329 2005-04-13

D.3.14. Timur I. Bakeyev <timur@FreeBSD.org>


pub uid uid uid uid uid uid sub 1024D/60BA1F47 2002-04-27 Key fingerprint = 84BF EAD1 607D 362F 210E 69B3 0BF0 6412 60BA 1F47 Timur I. Bakeyev (BaT) <timur@bat.ru> Timur I. Bakeyev <timur@gnu.org> Timur I. Bakeyev (BaT) <bat@cpan.org> Timur I. Bakeyev (BaT) <timur@FreeBSD.org> Timur I. Bakeyev (BaT) <timur@gnome.org> Timur I. Bakeyev <timur@gnome.org> 2048g/8A5B0042 2002-04-27

D.3.15. John Baldwin <jhb@FreeBSD.org>


pub uid uid uid 1024R/C10A874D 1999-01-13 John Baldwin Key fingerprint = 43 33 1D 37 72 B1 EF John Baldwin John Baldwin John Baldwin <jbaldwin@weather.com> 5B 9B 5F 39 F8 BD C1 7C B5 <john@baldwin.cx> <jhb@FreeBSD.org> <jobaldwi@vt.edu>

D.3.16. Nick Barkas <snb@FreeBSD.org>


pub uid uid uid sub sub 1024D/7E7582A4 2006-02-10 Key fingerprint = 5DF1 3ABB 4F75 F76C E83F 322F C8B2 427A 7E75 82A4 S. Nicholas Barkas <snb@freebsd.org> S. Nicholas Barkas <snb@moduli.net> [jpeg image of size 13220] 2048g/AF72C3A3 2006-02-10 1024D/3F6C2D91 2009-04-21 [expires: 2010-04-21]

D.3.17. Simon Barner <barner@FreeBSD.org>


pub uid 1024D/EBADA82A 2000-11-10 Key fingerprint = 67D1 3562 9A2F 3177 E46A 35ED 0A49 FEFD EBAD A82A Simon Barner <barner@FreeBSD.org>

1028

Fggelk D. PGP-kulcsok
uid uid uid sub Simon Barner <barner@in.tum.de> Simon Barner <barner@informatik.tu-muenchen.de> Simon Barner <barner@gmx.de> 2048g/F63052DE 2000-11-10

D.3.18. Doug Barton <dougb@FreeBSD.org>


pub uid uid uid sub 2048R/1A1ABC84 2010-03-23 Key fingerprint = E352 0E14 9D05 3533 C33A 67DB 5CC6 86F1 1A1A BC84 Douglas Barton <dougb@dougbarton.us> Douglas Barton <dougb@FreeBSD.org> [jpeg image of size 6140] 3072R/498795B4 2010-03-23 Key fingerprint = C0BE C1E3 8DC8 D7F4 8E6C 732B 0C14 D9CF 4987 95B4

D.3.19. Konstantin Belousov <kib@FreeBSD.org>


pub uid uid uid uid sub 1024D/DD4C6F88 2004-07-29 Key fingerprint = 39DA E615 A45C 111D 777B 3AD0 0B7F 8C04 DD4C 6F88 Konstantin Belousov <kib@freebsd.org> Konstantin Belousov <konstantin.belousov@zoral.com.ua> Kostik Belousov <kostikbel@ukr.net> Kostik Belousov <kostikbel@gmail.com> 2048g/18488597 2004-07-29

D.3.20. Anton Berezin <tobez@FreeBSD.org>


pub uid uid sub 1024D/7A7BA3C0 2000-05-25 Anton Berezin <tobez@catpipe.net> Key fingerprint = CDD8 560C 174B D8E5 0323 83CE 22CA 584C 7A7B A3C0 Anton Berezin <tobez@tobez.org> Anton Berezin <tobez@FreeBSD.org> 1024g/ADC71E87 2000-05-25

D.3.21. Damien Bergamini <damien@FreeBSD.org>


pub uid uid sub 2048R/D129F093 2005-03-02 Key fingerprint = D3AB 28C3 1A4A E219 3145 54FE 220A 7486 D129 F093 Damien Bergamini <damien.bergamini@free.fr> Damien Bergamini <damien@FreeBSD.org> 2048R/9FBA73A4 2005-03-02

1029

Fggelk D. PGP-kulcsok

D.3.22. Tim Bishop <tdb@FreeBSD.org>


pub uid uid uid uid sub 1024D/5AE7D984 2000-10-07 Key fingerprint = 1453 086E 9376 1A50 ECF6 AE05 7DCE D659 5AE7 D984 Tim Bishop <tim@bishnet.net> Tim Bishop <T.D.Bishop@kent.ac.uk> Tim Bishop <tdb@i-scream.org> Tim Bishop <tdb@FreeBSD.org> 4096g/7F886031 2000-10-07

D.3.23. Martin Blapp <mbr@FreeBSD.org>


pub sub 1024D/D300551E 2001-12-20 Martin Blapp <mb@imp.ch> Key fingerprint = B434 53FC C87C FE7B 0A18 B84C 8686 EF22 D300 551E 1024g/998281C8 2001-12-20

D.3.24. Vitaly Bogdanov <bvs@FreeBSD.org>


pub uid sub 1024D/B32017F7 2005-10-02 Vitaly Bogdanov <gad@gad.glazov.net> Key fingerprint = 402E B8E4 53CB 22FF BE62 AE35 A0BF B077 B320 17F7 Vitaly Bogdanov <bvs@freebsd.org> 1024g/0E88C62E 2005-10-02

D.3.25. Roman Bogorodskiy <novel@FreeBSD.org>


pub uid uid uid uid 1024R/1DAACA46 2004-05-25 [expires: 2009-04-26] Key fingerprint = AC27 CF29 5E51 E53F 8C8D DB90 8074 5B38 1DAA CA46 Roman Bogorodskiy <novel@FreeBSD.org> Roman Bogorodskiy <bogorodskiy@gmail.com> Roman Bogorodskiy <bogorodskiy@inbox.ru> Roman Bogorodskiy <novel@clublife.ru>

D.3.26. Renato Botelho <garga@FreeBSD.org>


pub uid uid uid sub 1024D/2244EDA9 2003-12-16 [expires: 2011-12-31] Key fingerprint = 4006 C844 BC51 AD75 CE60 6E24 E824 5B89 2244 EDA9 Renato Botelho <garga@FreeBSD.org> Renato Botelho <rbgarga@gmail.com> Renato Botelho <garga@freebsdbrasil.com.br> 1024g/7B295760 2003-12-16

1030

Fggelk D. PGP-kulcsok

D.3.27. Alexander Botero-Lowry <alexbl@FreeBSD.org>


pub uid sub 1024D/12A95A7B 2006-09-13 Key fingerprint = D0C3 47F8 AE87 C829 0613 3586 24DF F52B 12A9 5A7B Alexander Botero-Lowry <alexbl@FreeBSD.org> 2048g/CA287923 2006-09-13

D.3.28. Hartmut Brandt <harti@FreeBSD.org>


pub uid sub 1024D/5920099F 2003-01-29 Hartmut Brandt <brandt@fokus.fraunhofer.de> Key fingerprint = F60D 09A0 76B7 31EE 794B BB91 082F 291D 5920 099F Hartmut Brandt <harti@freebsd.org> 1024g/21D30205 2003-01-29

D.3.29. Oliver Braun <obraun@FreeBSD.org>


pub uid uid uid sub 1024D/EF25B1BA 2001-05-06 Oliver Key fingerprint = 6A3B 042A 732E Oliver Oliver Oliver 1024g/09D28582 2001-05-06 Braun <obraun@unsane.org> 17E4 B6E7 3EAF C0B1 6B7D EF25 B1BA Braun <obraun@obraun.net> Braun <obraun@freebsd.org> Braun <obraun@haskell.org>

D.3.30. Max Brazhnikov <makc@FreeBSD.org>


pub uid uid sub 1024D/ACB3CD12 2008-08-18 Key fingerprint = 4BAA 200E 720A 0BD1 7BB0 9DFD FBD9 08C2 ACB3 CD12 Max Brazhnikov <makc@FreeBSD.org> Max Brazhnikov <makc@issp.ac.ru> 1024g/5FAA4088 2008-08-18

D.3.31. Jonathan M. Bresler <jmb@FreeBSD.org>


pub uid uid uid uid 1024R/97E638DD 1996-06-05 Jonathan M. Bresler Key fingerprint = 31 57 41 56 06 C1 40 13 C5 Jonathan M. Bresler Jonathan M. Bresler Jonathan M. Bresler Jonathan M. Bresler <jmb@Bresler.org> 1C E3 E5 DC 62 0E FB <jmb@FreeBSD.ORG> <Jonathan.Bresler@USi.net> <jmb@Frb.GOV>

1031

Fggelk D. PGP-kulcsok

D.3.32. Antoine Brodin <antoine@FreeBSD.org>


pub uid sub 1024D/50CC2671 2008-02-03 Key fingerprint = F3F7 72F0 9C4C 9E56 4BE9 44EA 1B80 31F3 50CC 2671 Antoine Brodin <antoine@FreeBSD.org> 2048g/6F4AFBE5 2008-02-03

D.3.33. Diane Bruce <db@FreeBSD.org>


pub uid uid sub 1024D/E08F5B15 2007-01-18 Key fingerprint = A5FB 296B 5771 C1CD 6183 0FAB 77FF DCBE E08F 5B15 Diane Bruce <db@db.net> Diane Bruce <db@FreeBSD.org> 2048g/73281702 2007-01-18

D.3.34. Christian Brffer <brueffer@FreeBSD.org>


pub uid uid sub 1024D/A0ED982D 2002-10-14 Christian Brueffer <chris@unixpages.org> Key fingerprint = A5C8 2099 19FF AACA F41B B29B 6C76 178C A0ED 982D Christian Brueffer <brueffer@hitnet.rwth-aachen.de> Christian Brueffer <brueffer@FreeBSD.org> 4096g/1DCC100F 2002-10-14

D.3.35. Markus Brffer <markus@FreeBSD.org>


pub uid uid uid uid sub 1024D/78F8A8D4 2002-10-21 Key fingerprint = 3F9B EBE8 F290 E5CC 1447 8760 D48D 1072 78F8 A8D4 Markus Brueffer <markus@brueffer.de> Markus Brueffer <buff@hitnet.rwth-aachen.de> Markus Brueffer <mbrueffer@mi.rwth-aachen.de> Markus Brueffer <markus@FreeBSD.org> 4096g/B7E5C7B6 2002-10-21

D.3.36. Oleg Bulyzhin <oleg@FreeBSD.org>


pub uid uid sub 1024D/78CE105F 2004-02-06 Key fingerprint = 98CC 3E66 26DE 50A8 DBC4 EB27 AF22 DCEF 78CE 105F Oleg Bulyzhin <oleg@FreeBSD.org> Oleg Bulyzhin <oleg@rinet.ru> 1024g/F747C159 2004-02-06

1032

Fggelk D. PGP-kulcsok

D.3.37. Michael Bushkov <bushman@FreeBSD.org>


pub uid uid sub 1024D/F694C6E4 2007-03-11 [expires: 2008-03-10] Key fingerprint = 4278 4392 BF6B 2864 C48E 0FA9 7216 C73C F694 C6E4 Michael Bushkov <bushman@rsu.ru> Michael Bushkov <bushman@freebsd.org> 2048g/5A783997 2007-03-11 [expires: 2008-03-10]

D.3.38. Jayachandran C. <jchandra@FreeBSD.org>


pub uid sub 1024D/3316E465 2010-05-19 Key fingerprint = 320B DB08 4FE3 BCFD 60AF E4DB F486 015F 3316 E465 Jayachandran C. <jchandra@freebsd.org> 2048g/1F7755F9 2010-05-19

D.3.39. Jesus R. Camou <jcamou@FreeBSD.org>


pub uid sub 1024D/C2161947 2005-03-01 Key fingerprint = 274C B265 48EC 42AE A2CA 47D9 7D98 588A C216 1947 Jesus R. Camou <jcamou@FreeBSD.org> 2048g/F8D2A8DF 2005-03-01

D.3.40. Jos Alonso Crdenas Mrquez <acm@FreeBSD.org>


pub uid sub 1024D/9B21BC19 2006-07-18 Key fingerprint = 4156 2EAC A11C 9651 713B 3FC1 195F D4A8 9B21 BC19 Jose Alonso Cardenas Marquez <acm@FreeBSD.org> 2048g/ADA16C52 2006-07-18

D.3.41. Pietro Cerutti <gahr@FreeBSD.org>


pub uid uid sub 1024D/9571F78E 2006-05-17 Key fingerprint = 1203 92B5 3919 AF84 9B97 28D6 C0C2 6A98 9571 F78E Pietro Cerutti <gahr@gahr.ch> Pietro Cerutti (The FreeBSD Project) <gahr@FreeBSD.org> 2048g/F24227D5 2006-05-17 [expires: 2011-05-16]

D.3.42. Dmitry Chagin <dchagin@FreeBSD.org>


pub uid uid 1024D/738EFCED 2009-02-27 Key fingerprint = 3F3F 8B87 CE09 9E10 3606 6ACA D2DD 936F 738E FCED Dmitry Chagin <dchagin@freebsd.org> Dmitry Chagin (dchagin key) <chagin.dmitry@gmail.com>

1033

Fggelk D. PGP-kulcsok
sub 2048g/6A3FDFF9 2009-02-27

D.3.43. Hye-Shik Chang <perky@FreeBSD.org>


pub uid sub 1024D/CFDB4BA4 1999-04-23 Hye-Shik Chang <perky@FreeBSD.org> Key fingerprint = 09D9 57D6 58BA 44DD CAEC 71CD 0D65 2C59 CFDB 4BA4 Hye-Shik Chang <hyeshik@gmail.com> 1024g/A94A8ED1 1999-04-23

D.3.44. Jonathan Chen <jon@FreeBSD.org>


pub uid uid uid uid sub 1024D/2539468B 1999-10-11 Jonathan Chen <jon@spock.org> Key fingerprint = EE31 CDA1 A105 C8C9 5365 3DB5 C2FC 86AA 2539 468B Jonathan Chen <jon@freebsd.org> Jonathan Chen <chenj@rpi.edu> Jonathan Chen <spock@acm.rpi.edu> Jonathan Chen <jon@cs.rpi.edu> 3072g/B81EF1DB 1999-10-11

D.3.45. Fukang Chen <loader@FreeBSD.org>


pub uid sub 1024D/40AB1752 2007-08-01 [expires: 2010-07-31] Key fingerprint = 98C4 6E6B 1C21 15E4 5042 01FC C7B7 E152 40AB 1752 loader <loader@FreeBSD.org> 4096g/9E53A5C7 2007-08-01 [expires: 2010-07-31]

D.3.46. Luoqi Chen <luoqi@FreeBSD.org>


pub uid uid sub 1024D/2926F3BE 2002-02-22 Luoqi Chen <luoqi@FreeBSD.org> Key fingerprint = B470 A815 5917 D9F4 37F3 CE2A 4D75 3BD1 2926 F3BE Luoqi Chen <luoqi@bricore.com> Luoqi Chen <lchen@onetta.com> 1024g/5446EB72 2002-02-22

D.3.47. Andrey A. Chernov <ache@FreeBSD.org>


pub uid uid sub 1024D/964474DD 2006-12-26 Key fingerprint = 0F63 1B61 D76D AA23 1591 EA09 560E 582B 9644 74DD Andrey Chernov <ache@freebsd.org> [jpeg image of size 4092] 2048g/08331894 2006-12-26

1034

Fggelk D. PGP-kulcsok

D.3.48. Sean Chittenden <seanc@FreeBSD.org>


pub sub 1024D/EE278A28 2004-02-08 Sean Chittenden <sean@chittenden.org> Key fingerprint = E41F F441 7E91 6CBA 1844 65CF B939 3C78 EE27 8A28 2048g/55321853 2004-02-08

D.3.49. Junho CHOI <cjh@FreeBSD.org>


pub uid uid sub 1024D/E60260F5 2002-10-14 CHOI Junho (Work) <cjh@wdb.co.kr> Key fingerprint = 1369 7374 A45F F41A F3C0 07E3 4A01 C020 E602 60F5 CHOI Junho (Personal) <cjh@kr.FreeBSD.org> CHOI Junho (FreeBSD) <cjh@FreeBSD.org> 1024g/04A4FDD8 2002-10-14

D.3.50. Crist J. Clark <cjc@FreeBSD.org>


pub uid uid sub 1024D/FE886AD3 2002-01-25 Crist J. Clark <cjclark@jhu.edu> Key fingerprint = F04E CCD7 3834 72C2 707F 0A8F 259F 8F4B FE88 6AD3 Crist J. Clark <cjclark@alum.mit.edu> Crist J. Clark <cjc@freebsd.org> 1024g/9B6BAB99 2002-01-25

D.3.51. Joe Marcus Clarke <marcus@FreeBSD.org>


pub uid sub 1024D/FE14CF87 2002-03-04 Joe Marcus Clarke (FreeBSD committer address) <marcus@FreeBSD.org> Key fingerprint = CC89 6407 73CC 0286 28E4 AFB9 6F68 8F8A FE14 CF87 Joe Marcus Clarke <marcus@marcuscom.com> 1024g/B9ACE4D2 2002-03-04

D.3.52. Nik Clayton <nik@FreeBSD.org>


pub uid uid uid uid sub 1024D/2C37E375 2000-11-09 Nik Clayton Key fingerprint = 15B8 3FFC DDB4 34B0 Nik Clayton Nik Clayton Nik Clayton Nik Clayton 1024g/769E298A 2000-11-09 <nik@freebsd.org> AA5F 94B7 93A8 0764 2C37 E375 <nik@slashdot.org> <nik@crf-consulting.co.uk> <nik@ngo.org.uk> <nik@bsdi.com>

1035

Fggelk D. PGP-kulcsok

D.3.53. Benjamin Close <benjsc@FreeBSD.org>


pub uid uid uid sub 1024D/4842B5B4 2002-04-10 Key fingerprint = F00D C83D 5F7E 5561 DF91 B74D E602 CAA3 4842 B5B4 Benjamin Simon Close <Benjamin.Close@clearchain.com> Benjamin Simon Close <benjsc@FreeBSD.org> Benjamin Simon Close <benjsc@clearchain.com> 2048g/3FA8A57E 2002-04-10

D.3.54. Bruce Cran <brucec@FreeBSD.org>


pub uid uid sub 2048R/6AF6F99E 2010-01-29 Key fingerprint = 9A3C AE57 2706 B0E3 4B8A 8374 5787 A72B 6AF6 F99E Bruce Cran <brucec@FreeBSD.org> Bruce Cran <bruce@cran.org.uk> 2048R/1D665CEE 2010-01-29

D.3.55. Aaron Dalton <aaron@FreeBSD.org>


pub uid sub 1024D/8811D2A4 2006-06-21 [expires: 2011-06-20] Key fingerprint = 8DE0 3CBB 3692 992F 53EF ACC7 BE56 0A4D 8811 D2A4 Aaron Dalton <aaron@freebsd.org> 2048g/304EE8E5 2006-06-21 [expires: 2011-06-20]

D.3.56. Ceri Davies <ceri@FreeBSD.org>


pub uid uid uid sub 1024D/34B7245F 2002-03-08 Key fingerprint = 9C88 EB05 A908 1058 A4AE 9959 A1C7 DCC1 34B7 245F Ceri Davies <ceri@submonkey.net> Ceri Davies <ceri@FreeBSD.org> Ceri Davies <ceri@opensolaris.org> 1024g/0C482CBC 2002-03-08

D.3.57. Brad Davis <brd@FreeBSD.org>


pub uid uid sub 1024D/ED0A754D 2005-05-14 [expires: 2014-02-21] Key fingerprint = 5DFD D1A6 BEEE A6D4 B3F5 4236 D362 3291 ED0A 754D Brad Davis <so14k@so14k.com> Brad Davis <brd@FreeBSD.org> 2048g/1F29D404 2005-05-14 [expires: 2014-02-21]

1036

Fggelk D. PGP-kulcsok

D.3.58. Pawel Jakub Dawidek <pjd@FreeBSD.org>


pub uid uid sub 1024D/B1293F34 2004-02-02 Pawel Jakub Dawidek <Pawel@Dawidek.net> Key fingerprint = A3A3 5B4D 9CF9 2312 0783 1B1D 168A EF5D B129 3F34 Pawel Jakub Dawidek <pjd@FreeBSD.org> Pawel Jakub Dawidek <pjd@FreeBSD.pl> 2048g/3EEC50A7 2004-02-02 [expires: 2006-02-01]

D.3.59. Brian S. Dean <bsd@FreeBSD.org>


pub sub 1024D/723BDEE9 2002-01-23 Brian S. Dean <bsd@FreeBSD.org> Key fingerprint = EF49 7ABE 47ED 91B3 FC3D 7EA5 4D90 2FF7 723B DEE9 1024g/4B02F876 2002-01-23

D.3.60. Vasil Dimov <vd@FreeBSD.org>


pub uid uid sub 1024D/F6C1A420 2004-12-08 Key fingerprint = B1D5 04C6 26CC 0D20 9525 14B8 170E 923F F6C1 A420 Vasil Dimov <vd@FreeBSD.org> Vasil Dimov <vd@datamax.bg> 4096g/A0148C94 2004-12-08

D.3.61. Roman Divacky <rdivacky@FreeBSD.org>


pub uid sub 1024D/3DC2044C 2006-11-15 Key fingerprint = 6B61 25CA 49BC AAC5 21A9 FA7A 2D51 23E8 3DC2 044C Roman Divacky <rdivacky@freebsd.org> 2048g/39BDCE16 2006-11-15

D.3.62. Alexey Dokuchaev <danfe@FreeBSD.org>


pub sub 1024D/3C060B44 2004-08-23 Alexey Dokuchaev <danfe@FreeBSD.org> Key fingerprint = D970 08A4 922C 8D63 0C19 8D27 F421 76EE 3C06 0B44 1024g/70BAE967 2004-08-23

D.3.63. Dima Dorfman <dd@FreeBSD.org>


pub uid uid uid sub 1024D/69FAE582 2001-09-04 Key fingerprint = B340 8338 7DA3 4D61 7632 098E 0730 055B 69FA E582 Dima Dorfman <dima@trit.org> Dima Dorfman <dima@unixfreak.org> Dima Dorfman <dd@freebsd.org> 2048g/65AF3B89 2003-08-19 [expires: 2005-08-18]

1037

Fggelk D. PGP-kulcsok
sub 2048g/8DB0CF2C 2005-05-29 [expires: 2007-05-29]

D.3.64. Bruno Ducrot <bruno@FreeBSD.org>


pub uid sub 1024D/7F463187 2000-12-29 Key fingerprint = 7B79 E1D6 F5A1 6614 792F D906 899B 4D28 7F46 3187 Ducrot Bruno (Poup Master) <ducrot@poupinou.org> 1024g/40282874 2000-12-29

D.3.65. Alex Dupre <ale@FreeBSD.org>


pub uid uid uid sub 1024D/CE5F554D 1999-06-27 Alex Dupre <sysadmin@alexdupre.com> Key fingerprint = DE23 02EA 5927 D5A9 D793 2BA2 8115 E9D8 CE5F 554D Alex Dupre <ale@FreeBSD.org> [jpeg image of size 5544] Alex Dupre <ICQ:5431856> 2048g/FD5E2D21 1999-06-27

D.3.66. Peter Edwards <peadar@FreeBSD.org>


pub uid 1024D/D80B4B3F 2004-03-01 Peter Edwards <peadar@FreeBSD.org> Key fingerprint = 7A8A 9756 903E BEF2 4D9E 3C94 EE52 52F7 D80B 4B3F Peter Edwards <pmedwards@eircom.net>

D.3.67. Josef El-Rayes <josef@FreeBSD.org>


pub uid 2048R/A79DB53C 2004-01-04 Josef El-Rayes <josef@FreeBSD.org> Key fingerprint = 58EB F5B7 2AB9 37FE 33C8 716B 59C5 22D9 A79D B53C Josef El-Rayes <josef@daemon.li>

D.3.68. Lars Engels <lme@FreeBSD.org>


pub uid sub 1024D/C0F769F8 2004-08-27 Key fingerprint = 17FC 08E1 5E09 BD21 489E 2050 29CE 75DA C0F7 69F8 Lars Engels <lars.engels@0x20.net> 1024g/8AD5BF9D 2004-08-27

1038

Fggelk D. PGP-kulcsok

D.3.69. Udo Erdelhoff <ue@FreeBSD.org>


pub uid uid uid uid 1024R/E74FA871 1994-07-19 Udo Key fingerprint = 8C B1 80 CA Udo Udo Udo Udo Erdelhoff <uer@de.uu.net> 2C 52 73 81 FB A7 B4 03 C5 32 C8 67 Erdelhoff <ue@nathan.ruhr.de> Erdelhoff <ue@freebsd.org> Erdelhoff <uerdelho@eu.uu.net> Erdelhoff <uerdelho@uu.net>

D.3.70. Ruslan Ermilov <ru@FreeBSD.org>


pub uid uid sub 1024D/996E145E 2004-06-02 Ruslan Ermilov (FreeBSD) <ru@FreeBSD.org> Key fingerprint = 274E D201 71ED 11F6 9CCB 0194 A917 E9CC 996E 145E Ruslan Ermilov (FreeBSD Ukraine) <ru@FreeBSD.org.ua> Ruslan Ermilov (IPNet) <ru@ip.net.ua> 1024g/557E3390 2004-06-02 [expires: 2007-06-02]

D.3.71. Lukas Ertl <le@FreeBSD.org>


pub uid uid uid sub 1024D/F10D06CB 2000-11-23 Lukas Ertl <le@FreeBSD.org> Key fingerprint = 20CD C5B3 3A1D 974E 065A B524 5588 79A9 F10D 06CB Lukas Ertl <a9404849@unet.univie.ac.at> Lukas Ertl <l.ertl@univie.ac.at> Lukas Ertl <le@univie.ac.at> 1024g/5960CE8E 2000-11-23

D.3.72. Brendan Fabeny <bf@FreeBSD.org>


pub uid sub 2048R/9806EBC1 2010-06-08 [expires: 2012-06-07] Key fingerprint = 2075 ADD3 7634 A4F9 5357 D934 08E7 06D9 9806 EBC1 b. f. <bf@freebsd.org> 2048R/1CD0AD79 2010-06-08 [expires: 2012-06-07]

D.3.73. Rong-En Fan <rafan@FreeBSD.org>


pub uid uid uid sub 1024D/86FD8C68 2004-06-04 Key fingerprint = DC9E 5B4D 2DDA D5C7 B6F8 6E69 D78E 1091 86FD 8C68 Rong-En Fan <rafan@infor.org> Rong-En Fan <rafan@csie.org> Rong-En Fan <rafan@FreeBSD.org> 2048g/42A8637E 2009-01-25 [expires: 2012-07-08]

1039

Fggelk D. PGP-kulcsok

D.3.74. Stefan Farfeleder <stefanf@FreeBSD.org>


pub uid uid uid sub 1024D/8BEFD15F 2004-03-14 Stefan Farfeleder <stefan@fafoe.narf.at> Key fingerprint = 4220 FE60 A4A1 A490 5213 27A6 319F 8B28 8BEF D15F Stefan Farfeleder <stefanf@complang.tuwien.ac.at> Stefan Farfeleder <stefanf@FreeBSD.org> Stefan Farfeleder <stefanf@ten15.org> 2048g/418753E9 2004-03-14 [expires: 2007-03-14]

D.3.75. Babak Farrokhi <farrokhi@FreeBSD.org>


pub uid uid sub 1024D/7C810476 2005-12-22 Key fingerprint = AABD 388F A207 58B4 2EE3 5DFD 4FC1 32C3 7C81 0476 Babak Farrokhi <farrokhi@FreeBSD.org> Babak Farrokhi <babak@farrokhi.net> 2048g/2A5F93C7 2005-12-22

D.3.76. Chris D. Faulhaber <jedgar@FreeBSD.org>


pub uid sub 1024D/FE817A50 2000-12-20 Chris D. Faulhaber <jedgar@FreeBSD.org> Key fingerprint = A47D A838 9216 F921 A456 54FF 39B6 86E0 FE81 7A50 Chris D. Faulhaber <jedgar@fxp.org> 2048g/93452698 2000-12-20

D.3.77. Brian F. Feldman <green@FreeBSD.org>


pub sub pub sub 1024D/41C13DE3 2000-01-11 Brian Fundakowski Feldman <green@FreeBSD.org> Key fingerprint = 6A32 733A 1BF6 E07B 5B8D AE14 CC9D DCA2 41C1 3DE3 1024g/A98B9FCC 2000-01-11 [expires: 2001-01-10] 1024D/773905D6 2000-09-02 Brian Fundakowski Feldman <green@FreeBSD.org> Key fingerprint = FE23 7481 91EA 5E58 45EA 6A01 B552 B043 7739 05D6 2048g/D2009B98 2000-09-02

D.3.78. Mrio Srgio Fujikawa Ferreira <lioux@FreeBSD.org>


pub uid uid sub 1024D/75A63712 2006-02-23 [expires: 2007-02-23] Key fingerprint = 42F2 2F74 8EF9 5296 898F C981 E9CF 463B 75A6 3712 Mario Sergio Fujikawa Ferreira (lioux) <lioux@FreeBSD.org> Mario Sergio Fujikawa Ferreira <lioux@uol.com.br> 4096g/BB7D80F2 2006-02-23 [expires: 2007-02-23]

1040

Fggelk D. PGP-kulcsok

D.3.79. Tony Finch <fanf@FreeBSD.org>


pub uid uid uid sub 1024D/84C71B6E 2002-05-03 Tony Finch <dot@dotat.at> Key fingerprint = 199C F25B 2679 6D04 63C5 2159 FFC0 F14C 84C7 1B6E Tony Finch <fanf@FreeBSD.org> Tony Finch <fanf@apache.org> Tony Finch <fanf2@cam.ac.uk> 2048g/FD101E8B 2002-05-03

D.3.80. Marc Fonvieille <blackend@FreeBSD.org>


pub uid uid sub 1024D/4F8E74E8 2004-12-25 Marc Fonvieille <blackend@FreeBSD.org> Key fingerprint = 55D3 4883 4A04 828A A139 A5CF CD0F 51C0 4F8E 74E8 Marc Fonvieille <marc@blackend.org> Marc Fonvieille <marc@freebsd-fr.org> 1024g/37AD4E7D 2004-12-25

D.3.81. Pete Fritchman <petef@FreeBSD.org>


pub uid uid sub 1024D/74B91CFD 2001-01-30 Pete Fritchman <petef@FreeBSD.org> Key fingerprint = 9A9F 8A13 DB0D 7777 8D8E 1CB2 C5C9 A08F 74B9 1CFD Pete Fritchman <petef@databits.net> Pete Fritchman <petef@csh.rit.edu> 1024g/0C02AF0C 2001-01-30

D.3.82. Bernhard Frhlich <decke@FreeBSD.org>


pub uid uid sub 1024D/CF5840D4 2008-01-07 [expires: 2015-05-05] Key fingerprint = 47F6 BDF1 DF9E 81E2 2C54 8A06 E796 7A5A CF58 40D4 Bernhard Frhlich <decke@FreeBSD.org> Bernhard Frhlich <decke@bluelife.at> 2048g/4E51CE79 2008-01-07

D.3.83. Bill Fumerola <billf@FreeBSD.org>


pub uid sub 1024D/7F868268 2000-12-07 Bill Fumerola (FreeBSD Developer) <billf@FreeBSD.org> Key fingerprint = 5B2D 908E 4C2B F253 DAEB FC01 8436 B70B 7F86 8268 Bill Fumerola (Security Yahoo) <fumerola@yahoo-inc.com> 1024g/43980DA9 2000-12-07

1041

Fggelk D. PGP-kulcsok

D.3.84. Andriy Gapon <avg@FreeBSD.org>


pub uid uid sub 2048R/A651FE2F 2009-02-16 Key fingerprint = F234 4D58 DEFF 5E3A 4E0F 13BC 74A5 2D27 A651 FE2F Andriy Gapon (FreeBSD) <avg@freebsd.org> Andriy Gapon (FreeBSD) <avg@icyb.net.ua> 4096R/F9A4D312 2009-02-16

D.3.85. Beat Gtzi <beat@FreeBSD.org>


pub uid sub 1024D/774249DB 2009-01-28 [expires: 2014-01-27] Key fingerprint = C410 3187 5B29 DD02 745F 0890 40C5 BCF7 7742 49DB Beat Gaetzi <beat@FreeBSD.org> 2048g/173CFFCA 2009-01-28 [expires: 2014-01-27]

D.3.86. Daniel Gero <danger@FreeBSD.org>


pub uid uid uid uid sub 1024D/DA913352 2007-08-30 [expires: 2008-08-29] Key fingerprint = 7372 3F15 F839 AFF5 4052 CAC7 1ADA C204 DA91 3352 Daniel Gerzo <gerzo@rulez.sk> Daniel Gerzo <danger@rulez.sk> Daniel Gerzo (The FreeBSD Project) <danger@FreeBSD.org> Daniel Gerzo (Micronet, a.s.) <gerzo@micronet.sk> 2048g/C5D57BDC 2007-08-30 [expires: 2008-08-29]

D.3.87. Sebastien Gioria <gioria@FreeBSD.org>


pub uid uid uid sub 1024D/7C8DA4F4 2002-02-09 Sebastien Gioria Key fingerprint = 41F4 4885 7C23 6ED3 CC24 Sebastien Gioria Sebastien Gioria Sebastien Gioria 4096g/F147E4D3 2002-02-09 <eagle@freebsd-fr.org> 97AA 6DDD B426 7C8D A4F4 <gioria@FreeBSD.ORG> <gioria@Francenet.fr> <gioria@fluxus.net>

D.3.88. Philip M. Gollucci <pgollucci@FreeBSD.org>


pub uid uid uid uid sub 1024D/DB9B8C1C 2008-04-15 Key fingerprint = B90B FBC3 A3A1 C71A 8E70 3F8C 75B8 8FFB DB9B 8C1C Philip M. Gollucci (FreeBSD Foundation) <pgollucci@freebsd.org> Philip M. Gollucci (Riderway Inc.) <pgollucci@riderway.com> Philip M. Gollucci <pgollucci@p6m7g8.com> Philip M. Gollucci (ASF) <pgollucci@apache.org> 2048g/73943732 2008-04-15

1042

Fggelk D. PGP-kulcsok

D.3.89. Daichi GOTO <daichi@FreeBSD.org>


pub sub 1024D/09EBADD6 2002-09-25 Daichi GOTO <daichi@freebsd.org> Key fingerprint = 620A 9A34 57FB 5E93 0828 28C7 C360 C6ED 09EB ADD6 1024g/F0B1F1CA 2002-09-25

D.3.90. Marcus Alves Grando <mnag@FreeBSD.org>


pub uid uid uid sub 1024D/CDCC273F 2005-09-15 [expires: 2010-09-14] Key fingerprint = 57F9 DEC1 5BBF 06DE 44A5 9A4A 8BEE 5F3A CDCC 273F Marcus Alves Grando <marcus@sbh.eng.br> Marcus Alves Grando <marcus@corp.grupos.com.br> Marcus Alves Grando <mnag@FreeBSD.org> 2048g/698AC00C 2005-09-15 [expires: 2010-09-14]

D.3.91. Peter Grehan <grehan@FreeBSD.org>


pub sub 1024D/EA45EA7D 2004-07-13 Peter Grehan <grehan@freebsd.org> Key fingerprint = 84AD 73DC 370E 15CA 7556 43C8 F5C8 4450 EA45 EA7D 2048g/0E122D70 2004-07-13

D.3.92. Jamie Gritton <jamie@FreeBSD.org>


pub uid sub 1024D/8832CB7F 2009-01-29 Key fingerprint = 34F8 1E62 C7A5 7CB9 A91F 7864 8C5A F85E 8832 CB7F James Gritton <jamie@FreeBSD.org> 2048g/94E3594D 2009-01-29

D.3.93. John-Mark Gurney <jmg@FreeBSD.org>


pub uid uid uid 1024R/3F9951F5 1997-02-11 John-Mark Key fingerprint = B7 EC EF F8 AE ED John-Mark John-Mark John-Mark Gurney A7 31 Gurney Gurney Gurney <johnmark@gladstone.uoregon.edu> 96 7A 22 B3 D8 56 36 F4 <gurney_j@efn.org> <jmg@cs.uoregon.edu> <gurney_j@resnet.uoregon.edu>

D.3.94. Daniel Harris <dannyboy@FreeBSD.org>


pub uid uid uid 1024D/84D0D7E7 2001-01-15 Daniel Key fingerprint = 3C61 B8A1 3F09 Daniel Daniel Daniel Harris <dannyboy@worksforfood.com> D194 3259 7173 6C63 DA04 84D0 D7E7 Harris <dannyboy@freebsd.org> Harris <dh@askdh.com> Harris <dh@wordassault.com>

1043

Fggelk D. PGP-kulcsok
sub 1024g/9DF0231A 2001-01-15

D.3.95. Daniel Hartmeier <dhartmei@FreeBSD.org>


pub 1024R/6A3A7409 1994-08-15 Daniel Hartmeier <dhartmei@freebsd.org> Key fingerprint = 13 7E 9A F3 36 82 09 FE FD 57 B8 5C 2B 81 7E 1F

D.3.96. Emanuel Haupt <ehaupt@FreeBSD.org>


pub uid uid sub 1024D/90215DB9 2007-02-06 [expires: 2008-02-06] Key fingerprint = 741B C70F 100B F360 0B52 E92D 5F01 7A86 9021 5DB9 Emanuel Haupt <ehaupt@FreeBSD.org> Emanuel Haupt <ehaupt@critical.ch> 2048g/6DD0929C 2007-02-06 [expires: 2008-02-06]

D.3.97. John Hay <jhay@FreeBSD.org>


pub uid uid uid uid 2048R/A9275B93 2000-05-10 John Hay <jhay@icomtek.csir.co.za> Key fingerprint = E7 95 F4 B9 D4 A7 49 6A 83 B9 77 49 28 9E 37 70 John Hay <jhay@mikom.csir.co.za> Thawte Freemail Member <jhay@mikom.csir.co.za> John Hay <jhay@csir.co.za> John Hay <jhay@FreeBSD.ORG>

D.3.98. Sheldon Hearn <sheldonh@FreeBSD.org>


pub sub 1024D/74A06ACD 2002-06-20 Sheldon Hearn <sheldonh@starjuice.net> Key fingerprint = 01A3 EF91 9C5A 3633 4E01 8085 A462 57F1 74A0 6ACD 1536g/C42F8AC8 2002-06-20

D.3.99. Mike Heffner <mikeh@FreeBSD.org>


pub uid uid uid uid sub 1024D/CDECBF99 2001-02-02 Michael Heffner <mheffner@novacoxmail.com> Key fingerprint = AFAB CCEB 68C7 573F 5110 9285 1689 1942 CDEC BF99 Michael Heffner <mheffner@vt.edu> Michael Heffner <mikeh@FreeBSD.org> Michael Heffner <spock@techfour.net> Michael Heffner (ACM sysadmin) <mheffner@acm.vt.edu> 1024g/3FE83FB5 2001-02-02

1044

Fggelk D. PGP-kulcsok

D.3.100. Martin Heinen <mheinen@FreeBSD.org>


pub uid sub 1024D/116C5C85 2002-06-17 Martin Heinen <mheinen@freebsd.org> Key fingerprint = C898 3FCD EEA0 17ED BEA9 564D E5A6 AFF2 116C 5C85 Martin Heinen <martin@sumuk.de> 1024g/EA67506B 2002-06-17

D.3.101. Niels Heinen <niels@FreeBSD.org>


pub uid uid uid sub 1024D/5FE39B80 2004-12-06 Niels Heinen <niels.heinen@ubizen.com> Key fingerprint = 75D8 4100 CF5B 3280 543F 930C 613E 71AA 5FE3 9B80 Niels Heinen <niels@defaced.be> Niels Heinen <niels@heinen.ws> Niels Heinen <niels@FreeBSD.org> 2048g/057F4DA7 2004-12-06

D.3.102. Jaakko Heinonen <jh@FreeBSD.org>


pub uid sub 1024D/53CCB781 2009-10-01 [expires: 2014-09-30] Key fingerprint = 3AED A2B6 B63D D771 1AFD 25FA DFDF 5B89 53CC B781 Jaakko Heinonen (FreeBSD) <jh@FreeBSD.org> 4096g/BB97397E 2009-10-01 [expires: 2014-09-30]

D.3.103. Guy Helmer <ghelmer@FreeBSD.org>


pub uid uid 1024R/35F4ED2D 1997-01-26 Guy Key fingerprint = A2 59 4B 92 Guy Guy G. 02 G. G. Helmer <ghelmer@freebsd.org> 5B 9E B1 B9 4E 2E 03 29 D5 DC 3A Helmer <ghelmer@cs.iastate.edu> Helmer <ghelmer@palisadesys.com>

D.3.104. Maxime Henrion <mux@FreeBSD.org>


pub sub 1024D/881D4806 2003-01-09 Maxime Henrion <mux@FreeBSD.org> Key fingerprint = 81F1 BE2D 12F1 184A 77E4 ACD0 5563 7614 881D 4806 2048g/D0B510C0 2003-01-09

D.3.105. Dennis Herrmann <dhn@FreeBSD.org>


pub uid sub 1024D/65181EA0 2008-09-07 [expires: 2009-03-06] Key fingerprint = D4DB A438 EB5E 1B26 C782 F969 820B 66B3 6518 1EA0 Dennis Herrmann (Vi veri universum vivus vici) <adox@mcx2.org> 4096g/C003C5DD 2008-09-07 [expires: 2009-03-06]

1045

Fggelk D. PGP-kulcsok

D.3.106. Peter Holm <pho@FreeBSD.org>


pub uid sub 1024D/CF244E81 2008-11-17 Key fingerprint = BE9B 32D8 89F1 F285 00E4 E4C5 EF3F B4B5 CF24 4E81 Peter Holm <pho@FreeBSD.org> 2048g/E20A409F 2008-11-17

D.3.107. Michael L. Hostbaek <mich@FreeBSD.org>


pub uid uid uid uid uid sub 1024D/0F55F6BE 2001-08-07 Michael L. Hostbaek <mich@freebsdcluster.org> Key fingerprint = 4D62 9396 B19F 38D3 5C99 1663 7B0A 5212 0F55 F6BE Michael L. Hostbaek <mich@freebsdcluster.dk> Michael L. Hostbaek <mich@icommerce-france.com> Micahel L. Hostbaek <mich@freebsd.dk> Michael L. Hostbaek <mich@the-lab.org> Michael L. Hostbaek <mich@freebsd.org> 1024g/8BE4E30F 2001-08-07

D.3.108. Li-Wen Hsu <lwhsu@FreeBSD.org>


pub uid uid uid uid uid uid uid uid uid sub 1024D/2897B228 2005-01-16 Key fingerprint = B6F7 170A 6DC6 5D1A BD4B D86A 416B 0E39 2897 B228 Li-wen Hsu <lwhsu@lwhsu.org> Li-wen Hsu <lwhsu@lwhsu.ckefgisc.org> Li-wen Hsu <lwhsu@lwhsu.csie.net> Li-wen Hsu <lwhsu@ckefgisc.org> Li-wen Hsu <lwhsu@csie.nctu.edu.tw> Li-wen Hsu <lwhsu@ccca.nctu.edu.tw> Li-wen Hsu <lwhsu@iis.sinica.edu.tw> Li-wen Hsu <lwhsu@cs.nctu.edu.tw> Li-Wen Hsu <lwhsu@FreeBSD.org> 2048g/16F82238 2005-01-16

D.3.109. Howard F. Hu <foxfair@FreeBSD.org>


pub uid uid sub 1024D/4E9BCA59 2003-09-01 Foxfair Hu <foxfair@FreeBSD.org> Key fingerprint = 280C A846 CA1B CAC9 DDCF F4CB D553 4BD5 4E9B CA59 Foxfair Hu <foxfair@drago.fomokka.net> Howard Hu <howardhu@yahoo-inc.com> 1024g/3356D8C1 2003-09-01

1046

Fggelk D. PGP-kulcsok

D.3.110. Chin-San Huang <chinsan@FreeBSD.org>


pub uid uid uid sub 1024D/350EECFA 2006-10-04 Key fingerprint = 1C4D 0C9E 0E68 DB74 0688 CE43 D2A5 3F82 350E ECFA Chin-San Huang (lab) <chinsan@chinsan2.twbbs.org> Chin-San Huang (FreeBSD committer) <chinsan@FreeBSD.org> Chin-San Huang (Gmail) <chinsan.tw@gmail.com> 2048g/35F75A30 2006-10-04

D.3.111. Jordan K. Hubbard <jkh@FreeBSD.org>


pub 1024R/8E542D5D 1996-04-04 Jordan K. Hubbard <jkh@FreeBSD.org> Key fingerprint = 3C F2 27 7E 4A 6C 09 0A 4B C9 47 CD 4F 4D 0B 20

D.3.112. Konrad Jankowski <versus@FreeBSD.org>


pub uid sub 1024D/A01C218A 2008-10-28 Key fingerprint = A805 21DC 859F E941 D2EA 9986 2264 8E5D A01C 218A Konrad Jankowski <versus@freebsd.org> 2048g/56AE1959 2008-10-28

D.3.113. Weongyo Jeong <weongyo@FreeBSD.org>


pub uid uid sub 1024D/22354D7A 2007-12-28 Key fingerprint = 138E 7115 A86F AA40 B509 5883 B387 DCE9 2235 4D7A Weongyo Jeong <weongyo.jeong@gmail.com> Weongyo Jeong <weongyo@freebsd.org> 2048g/9AE6DAEE 2007-12-28

D.3.114. Tatuya JINMEI <jinmei@FreeBSD.org>


pub uid uid uid sub 1024D/ABA82228 2002-08-15 Key fingerprint = BB70 3050 EE39 BE00 48BB A5F3 5892 F203 ABA8 2228 JINMEI Tatuya <jinmei@FreeBSD.org> JINMEI Tatuya <jinmei@jinmei.org> JINMEI Tatuya (the KAME project) <jinmei@isl.rdc.toshiba.co.jp> 1024g/8B43CF66 2002-08-15

D.3.115. Michael Johnson <ahze@FreeBSD.org>


pub uid 1024D/3C046FD6 2004-10-29 Michael Johnson (FreeBSD key) <ahze@FreeBSD.org> Key fingerprint = 363C 6ABA ED24 C23B 5F0C 3AB4 9F8B AA7D 3C04 6FD6 Michael Johnson (pgp key) <ahze@ahze.net>

1047

Fggelk D. PGP-kulcsok
sub 2048g/FA334AE3 2004-10-29

D.3.116. Trevor Johnson <trevor@FreeBSD.org>


pub sub 1024D/3A3EA137 2000-04-20 Trevor Johnson <trevor@jpj.net> Key fingerprint = 7ED1 5A92 76C1 FFCB E5E3 A998 F037 5A0B 3A3E A137 1024g/46C24F1E 2000-04-20

D.3.117. Poul-Henning Kamp <phk@FreeBSD.org>


pub 1024R/0358FCBD 1995-08-01 Poul-Henning Kamp <phk@FreeBSD.org> Key fingerprint = A3 F3 88 28 2F 9B 99 A2 49 F4 E2 FA 5A 78 8B 3E

D.3.118. Coleman Kane <cokane@FreeBSD.org>


pub uid uid sub 1024D/C5DAB797 2007-07-22 Key fingerprint = FC09 F326 4318 E714 DE45 6CB0 70C4 B141 C5DA B797 Coleman Kane (Personal PGP Key) <cokane@cokane.org> Coleman Kane (Personal PGP Key) <cokane@FreeBSD.org> 2048g/5C680129 2007-07-22

D.3.119. Josef Karthauser <joe@FreeBSD.org>


pub uid uid uid uid sub 1024D/E6B15016 2000-10-19 Josef Karthauser <joe@FreeBSD.org> Key fingerprint = 7266 8EAF 82C2 D439 5642 AC26 5D52 1C8C E6B1 5016 Josef Karthauser <joe@tao.org.uk> Josef Karthauser <joe@uk.FreeBSD.org> [revoked] Josef Karthauser <josef@bsdi.com> [revoked] Josef Karthauser <joe@pavilion.net> 2048g/1178B692 2000-10-19

D.3.120. Vinod Kashyap <vkashyap@FreeBSD.org>


pub 1024R/04FCCDD3 2004-02-19 Vinod Kashyap (gnupg key) <vkashyap@freebsd.org> Key fingerprint = 9B83 0B55 604F E491 B7D2 759D DF92 DAA0 04FC CDD3

D.3.121. Kris Kennaway <kris@FreeBSD.org>


pub 1024D/68E840A5 2000-01-14 Kris Kennaway <kris@citusc.usc.edu> Key fingerprint = E65D 0E7D 7E16 B212 1BD6 39EE 5ABC B405 68E8 40A5

1048

Fggelk D. PGP-kulcsok
uid uid sub Kris Kennaway <kris@FreeBSD.org> Kris Kennaway <kris@obsecurity.org> 2048g/03A41C45 2000-01-14 [expires: 2006-01-14]

D.3.122. Max Khon <fjoe@FreeBSD.org>


pub uid sub 1024D/414420F4 2003-04-29 Max Khon <fjoe@freebsd.org> Key fingerprint = CE1F 29CA A6BF 2F26 13E8 1B61 62AE 6B8F 4144 20F4 Max Khon <fjoe@iclub.nsu.ru> 1024g/6585039B 2003-04-29

D.3.123. Manolis Kiagias <manolis@FreeBSD.org>


pub uid uid uid sub

1024D/6E0FB494 2006-08-22 Key fingerprint = F820 5AAF 7112 2CDD 23D8 3BDF 67F3 311A 6E0F B494 Manolis Kiagias <manolis@FreeBSD.org> Manolis Kiagias <sonicy@otenet.gr> Manolis Kiagias (A.K.A. sonic, sonicy, sonic2000gr) <sonic@diktia.dyndns.org> 2048g/EB94B411 2006-08-22

D.3.124. Jung-uk Kim <jkim@FreeBSD.org>


pub uid uid sub 1024D/BF6A9D53 2004-04-07 Key fingerprint = F841 0339 93EF D27D 32AD 3261 9A56 B2D5 BF6A 9D53 Jung-uk Kim <jkim@FreeBSD.org> Jung-uk Kim <jkim@niksun.com> 4096g/B01CA5A0 2004-04-07

D.3.125. Andreas Klemm <andreas@FreeBSD.org>


pub uid uid uid sub 1024D/6C6F6CBA 2001-01-06 Andreas Klemm <andreas.klemm@eu.didata.com> Key fingerprint = F028 D51A 0D42 DD67 4109 19A3 777A 3E94 6C6F 6CBA Andreas Klemm <andreas@klemm.gtn.com> Andreas Klemm <andreas@FreeBSD.org> Andreas Klemm <andreas@apsfilter.org> 2048g/FE23F866 2001-01-06

D.3.126. Johann Kois <jkois@FreeBSD.org>


pub uid sub 1024D/DD61C2D8 2004-06-27 Johann Kois <J.Kois@web.de> Key fingerprint = 8B70 03DB 3C45 E71D 0ED4 4825 FEB0 EBEF DD61 C2D8 Johann Kois <jkois@freebsd.org> 1024g/568307CB 2004-06-27

1049

Fggelk D. PGP-kulcsok

D.3.127. Sergei Kolobov <sergei@FreeBSD.org>


pub uid sub 1024D/3BA53401 2003-10-10 Sergei Kolobov <sergei@FreeBSD.org> Key fingerprint = A2F4 5F34 0586 CC9C 493A 347C 14EC 6E69 3BA5 3401 Sergei Kolobov <sergei@kolobov.com> 2048g/F8243671 2003-10-10

D.3.128. Maxim Konovalov <maxim@FreeBSD.org>


pub uid sub 1024D/2C172083 2002-05-21 Maxim Konovalov <maxim@FreeBSD.org> Key fingerprint = 6550 6C02 EFC2 50F1 B7A3 D694 ECF0 E90B 2C17 2083 Maxim Konovalov <maxim@macomnet.ru> 1024g/F305DDCA 2002-05-21

D.3.129. Joseph Koshy <jkoshy@FreeBSD.org>


pub sub 1024D/D93798B6 2001-12-21 Joseph Koshy (FreeBSD) <jkoshy@freebsd.org> Key fingerprint = 0DE3 62F3 EF24 939F 62AA 2E3D ABB8 6ED3 D937 98B6 1024g/43FD68E9 2001-12-21

D.3.130. Wojciech A. Koszek <wkoszek@FreeBSD.org>


pub uid uid sub 1024D/C9F25145 2006-02-15 Key fingerprint = 6E56 C571 9D33 D23E 9A61 8E50 623C AD62 C9F2 5145 Wojciech A. Koszek <dunstan@FreeBSD.czest.pl> Wojciech A. Koszek <wkoszek@FreeBSD.org> 4096g/3BBD20A5 2006-02-15

D.3.131. Steven Kreuzer <skreuzer@FreeBSD.org>


pub uid uid sub 1024D/E0D6F907 2009-03-16 [expires: 2011-03-16] Key fingerprint = 8D8F 14D6 ED9F 6BD0 7756 7A46 66BA B4B6 E0D6 F907 Steven Kreuzer <skreuzer@freebsd.org> Steven Kreuzer <skreuzer@exit2shell.com> 4096g/76940A06 2009-03-16 [expires: 2011-03-16]

D.3.132. Gbor Kvesdn <gabor@FreeBSD.org>


pub uid sub 1024D/2373A6B1 2006-12-05 Key fingerprint = A42A 10D6 834B BEC0 26F0 29B1 902D D04F 2373 A6B1 Gabor Kovesdan <gabor@FreeBSD.org> 2048g/92B0A104 2006-12-05

1050

Fggelk D. PGP-kulcsok

D.3.133. Ana Kukec <anchie@FreeBSD.org>


pub uid sub 2048R/510D23BB 2010-04-18 Key fingerprint = 0A9B 0ABB 0E1C B5A4 3408 398F 778A C3B4 510D 23BB Ana Kukec <anchie@FreeBSD.org> 2048R/699E4DDA 2010-04-18

D.3.134. Roman Kurakin <rik@FreeBSD.org>


pub uid sub 1024D/C8550F4C 2005-12-16 [expires: 2008-12-15] Key fingerprint = 25BB 789A 6E07 E654 8E59 0FA9 42B1 937C C855 0F4C Roman Kurakin <rik@FreeBSD.org> 2048g/D15F2AB6 2005-12-16 [expires: 2008-12-15]

D.3.135. Hideyuki KURASHINA <rushani@FreeBSD.org>


pub uid uid sub 1024D/439ADC57 2002-03-22 Hideyuki KURASHINA <rushani@bl.mmtr.or.jp> Key fingerprint = A052 6F98 6146 6FE3 91E2 DA6B F2FA 2088 439A DC57 Hideyuki KURASHINA <rushani@FreeBSD.org> Hideyuki KURASHINA <rushani@jp.FreeBSD.org> 1024g/64764D16 2002-03-22

D.3.136. Jun Kuriyama <kuriyama@FreeBSD.org>


pub uid uid sub 1024D/FE3B59CD 1998-11-23 Jun Kuriyama <kuriyama@imgsrc.co.jp> Key fingerprint = 5219 55CE AC84 C296 3A3B B076 EE3C 4DBB FE3B 59CD Jun Kuriyama <kuriyama@FreeBSD.org> Jun Kuriyama <kuriyama@jp.FreeBSD.org> 2048g/1CF20D27 1998-11-23

D.3.137. Ren Ladan <rene@FreeBSD.org>


pub uid sub 1024D/E5642BFC 2008-11-03 Key fingerprint = ADBC ECCD EB5F A6B4 549F 600D 8C9E 647A E564 2BFC Rene Ladan <rene@freebsd.org> 2048g/C54EA560 2008-11-03

D.3.138. Clement Laforet <clement@FreeBSD.org>


pub uid uid 1024D/0723BA1D 2003-12-13 Clement Laforet (FreeBSD committer address) <clement@FreeBSD.org> Key fingerprint = 3638 4B14 8463 A67B DC7E 641C B118 5F8F 0723 BA1D Clement Laforet <sheepkiller@cultdeadsheep.org> Clement Laforet <clement.laforet@cotds.org>

1051

Fggelk D. PGP-kulcsok
sub 2048g/23D57658 2003-12-13

D.3.139. Max Laier <mlaier@FreeBSD.org>


pub uid uid uid uid sub 1024D/3EB6046D 2004-02-09 Key fingerprint = 917E 7F25 E90F 77A4 F746 2E8D 5F2C 84A1 3EB6 046D Max Laier <max@love2party.net> Max Laier <max.laier@ira.uka.de> Max Laier <mlaier@freebsd.org> Max Laier <max.laier@tm.uka.de> 4096g/EDD08B9B 2005-06-28

D.3.140. Erwin Lansing <erwin@FreeBSD.org>


pub uid uid uid uid uid sub 1024D/15256990 1998-07-03 Key fingerprint = FB58 9797 299A F18E 2D3E 73D6 AB2F 5A5B 1525 6990 Erwin Lansing <erwin@lansing.dk> Erwin Lansing <erwin@FreeBSD.org> Erwin Lansing <erwin@droso.dk> Erwin Lansing <erwin@droso.org> Erwin Lansing <erwin@aauug.dk> 2048g/7C64013D 1998-07-03

D.3.141. Greg Larkin <glarkin@FreeBSD.org>


pub uid uid uid sub 1024D/1C940290 2003-10-09 Key fingerprint = 8A4A 80AA F26C 8C2C D01B 94C6 D2C4 68B8 1C94 0290 Greg Larkin (The FreeBSD Project) <glarkin@FreeBSD.org> Gregory C. Larkin (SourceHosting.Net, LLC) <glarkin@sourcehosting.net> [jpeg image of size 6695] 2048g/47674316 2003-10-09

D.3.142. Frank J. Laszlo <laszlof@FreeBSD.org>


pub uid 4096R/012360EC 2006-11-06 [expires: 2011-11-05] Key fingerprint = 3D93 21DB B5CC 1339 E4B4 1BC4 AD50 C17C 0123 60EC Frank J. Laszlo <laszlof@FreeBSD.org>

D.3.143. Sam Lawrance <lawrance@FreeBSD.org>


pub uid 1024D/32708C59 2003-08-14 Key fingerprint = 1056 2A02 5247 64D4 538D 6975 8851 7134 3270 8C59 Sam Lawrance <lawrance@FreeBSD.org>

1052

Fggelk D. PGP-kulcsok
uid sub Sam Lawrance <boris@brooknet.com.au> 2048g/0F9CCF92 2003-08-14

D.3.144. Nate Lawson <njl@FreeBSD.org>


pub uid sub 1024D/60E5AC11 2007-02-07 Key fingerprint = 18E2 7E5A FD6A 199B B08B Nate Lawson <nate@root.org> 2048g/CDBC7E1B 2007-02-07 E9FB 73C8 DB67 60E5 AC11

D.3.145. Yen-Ming Lee <leeym@FreeBSD.org>


pub uid sub 1024D/93FA8BD6 2007-05-21 Key fingerprint = DEC4 6E7F 69C0 4AC3 21ED EE65 6C0E 9257 93FA 8BD6 Yen-Ming Lee <leeym@leeym.com> 2048g/899A3931 2007-05-21

D.3.146. Sam Lefer <sam@FreeBSD.org>


pub uid sub 1024D/BD147743 2005-03-28 Key fingerprint = F618 F2FC 176B D201 D91C 67C6 2E33 A957 BD14 7743 Samuel J. Leffler <sam@freebsd.org> 2048g/8BA91D05 2005-03-28

D.3.147. Jean-Yves Lefort <jylefort@FreeBSD.org>


pub uid uid sub 1024D/A3B8006A 2002-09-07 Key fingerprint = CC99 D1B0 8E44 293D 32F7 D92E CB30 FB51 A3B8 006A Jean-Yves Lefort <jylefort@FreeBSD.org> Jean-Yves Lefort <jylefort@brutele.be> 4096g/C9271AFC 2002-09-07

D.3.148. Alexander Leidinger <netchild@FreeBSD.org>


pub uid uid sub 1024D/72077137 2002-01-31 Key fingerprint = AA3A 8F69 B214 6BBD 5E73 C9A0 C604 3C56 7207 7137 Alexander Leidinger <netchild@FreeBSD.org> [jpeg image of size 19667] 2048g/8C9828D3 2002-01-31

1053

Fggelk D. PGP-kulcsok

D.3.149. Andrey V. Elsukov <ae@FreeBSD.org>


pub uid uid sub 2048R/10C8A17A 2010-05-29 Key fingerprint = E659 1E1B 41DA 1516 F0C9 BC00 01C5 EA04 10C8 A17A Andrey V. Elsukov <ae@freebsd.org> Andrey V. Elsukov <bu7cher@yandex.ru> 2048R/0F6D64C5 2010-05-29

D.3.150. Dejan Lesjak <lesi@FreeBSD.org>


pub uid sub 1024D/96C5221F 2004-08-18 Dejan Lesjak <lesi@FreeBSD.org> Key fingerprint = 2C5C 02EA 1060 1D6D 9982 38C0 1DA7 DBC4 96C5 221F Dejan Lesjak <dejan.lesjak@ijs.si> 1024g/E0A69278 2004-08-18

D.3.151. Chuck Lever <cel@FreeBSD.org>


pub uid sub 1024D/8FFC2B87 2006-02-13 Key fingerprint = 6872 923F 5012 F88B 394C 2F69 37B4 8171 8FFC 2B87 Charles E. Lever <cel@freebsd.org> 2048g/9BCE0459 2006-02-13

D.3.152. Greg Lewis <glewis@FreeBSD.org>


pub uid sub 1024D/1BB6D9E0 2002-03-05 Greg Lewis (FreeBSD) <glewis@FreeBSD.org> Key fingerprint = 2410 DA6D 5A3C D801 65FE C8DB DEEA 9923 1BB6 D9E0 Greg Lewis <glewis@eyesbeyond.com> 2048g/45E67D60 2002-03-05

D.3.153. Xin Li <delphij@FreeBSD.org>


pub uid uid uid uid pub uid uid uid pub 1024D/CAEEB8C0 2004-01-28 Key fingerprint = 43B8 B703 B8DD 0231 B333 DC28 39FB 93A0 CAEE B8C0 Xin LI <delphij@FreeBSD.org> Xin LI <delphij@frontfree.net> Xin LI <delphij@delphij.net> Xin LI <delphij@geekcn.org> 1024D/42EA8A4B 2006-01-27 [expired: 2008-01-01] Key fingerprint = F19C 2616 FA97 9C13 2581 C6F3 85C5 1CCE 42EA 8A4B Xin LI <delphij@geekcn.org> Xin LI <delphij@FreeBSD.org> Xin LI <delphij@delphij.net> 1024D/18EDEBA0 2008-01-02 [expired: 2010-01-02]

1054

Fggelk D. PGP-kulcsok
Key fingerprint = 79A6 CF42 F917 DDCA F1C2 C926 8BEB DB04 18ED EBA0 Xin LI <delphij@geekcn.org> Xin LI <delphij@FreeBSD.org> Xin LI <delphij@delphij.net> 2048R/3FCA37C1 2010-01-10 [expires: 2012-01-10] Key fingerprint = 27EA 5D6C 9398 BA7F B205 8F70 04CE F812 3FCA 37C1 Xin LI <delphij@geekcn.org> Xin LI <delphij@delphij.net> Xin LI <delphij@FreeBSD.org> 2048R/F956339F 2010-01-10 [expires: 2012-01-10]

uid uid uid pub uid uid uid sub

D.3.154. Tai-hwa Liang <avatar@FreeBSD.org>


pub uid 1024R/F4013AB1 1998-05-13 Tai-hwa Liang <avatar@FreeBSD.org> Key fingerprint = 5B 05 1D 37 7F 35 31 4E 5D 38 BD 07 10 32 B9 D0 Tai-hwa Liang <avatar@mmlab.cse.yzu.edu.tw>

D.3.155. Ying-Chieh Liao <ijliao@FreeBSD.org>


pub uid uid uid uid sub 1024D/11C02382 2001-01-09 Ying-Chieh Liao <ijliao@CCCA.NCTU.edu.tw> Key fingerprint = 4E98 55CC 2866 7A90 EFD7 9DA5 ACC6 0165 11C0 2382 Ying-Chieh Liao <ijliao@FreeBSD.org> Ying-Chieh Liao <ijliao@csie.nctu.edu.tw> Ying-Chieh Liao <ijliao@dragon2.net> Ying-Chieh Liao <ijliao@tw.FreeBSD.org> 4096g/C1E16E89 2001-01-09

D.3.156. Ulf Lilleengen <lulf@FreeBSD.org>


pub uid uid uid uid uid sub 1024D/ADE1B837 2009-08-19 [expires: 2014-08-18] Key fingerprint = 3822 B4E6 6D1C 6F71 4AA8 7A27 ADDF C400 ADE1 B837 Ulf Lilleengen <ulf.lilleengen@gmail.com> Ulf Lilleengen <lulf@pvv.ntnu.no> Ulf Lilleengen <lulf@stud.ntnu.no> Ulf Lilleengen <lulf@FreeBSD.org> Ulf Lilleengen <lulf@idi.ntnu.no> 2048g/B5409122 2009-08-19 [expires: 2014-08-18]

D.3.157. Clive Lin <clive@FreeBSD.org>


pub uid uid 1024D/A008C03E 2001-07-30 Clive Lin <clive@tongi.org> Key fingerprint = FA3F 20B6 A77A 6CEC 1856 09B0 7455 2805 A008 C03E Clive Lin <clive@CirX.ORG> Clive Lin <clive@FreeBSD.org>

1055

Fggelk D. PGP-kulcsok
sub 1024g/03C2DC87 2001-07-30 [expires: 2005-08-25]

D.3.158. Yi-Jheng Lin <yzlin@FreeBSD.org>


pub uid sub 2048R/A34C6A8A 2009-07-20 Key fingerprint = 7E3A E981 BB7C 5D73 9534 ED39 0222 04D3 A34C 6A8A Yi-Jheng Lin (FreeBSD) <yzlin@FreeBSD.org> 2048R/B4D776FE 2009-07-20

D.3.159. Mark Linimon <linimon@FreeBSD.org>


pub uid uid sub 1024D/84C83473 2003-10-09 Key fingerprint = 8D43 1B55 D127 0BFC 842E 1C96 803C 5A34 84C8 3473 Mark Linimon <linimon@FreeBSD.org> Mark Linimon <linimon@lonesome.com> 1024g/24BFF840 2003-10-09

D.3.160. Tilman Linneweh <arved@FreeBSD.org>


pub uid uid uid uid sub 1024D/807AC53A 2002-06-03 [expires: 2009-06-15] Key fingerprint = A92F 344F 31A8 B8DE DDFA 7FB4 7C22 C39F 807A C53A Tilman Linneweh <e0025974@student.tuwien.ac.at> Tilman Linneweh <arved@arved.at> Tilman Linneweh <arved@FreeBSD.org> Tilman Linneweh <arved@inso.tuwien.ac.at> 1024g/FA351986 2002-06-03 [expires: 2009-06-15]

D.3.161. Dryice Liu <dryice@FreeBSD.org>


pub uid uid uid uid uid sub 1024D/77B67874 2005-01-28 Key fingerprint = 8D7C F82D D28D 07E5 EF7F CD25 6B5B 78A8 77B6 7874 Dryice Dong Liu (Dryice) <dryice@FreeBSD.org> Dryice Dong Liu (Dryice) <dryice@liu.com.cn> Dryice Dong Liu (Dryice) <dryice@hotpop.com> Dryice Dong Liu (Dryice) <dryiceliu@gmail.com> Dryice Dong Liu (Dryice) <dryice@dryice.name> 2048g/ECFA49E4 2005-01-28

D.3.162. Tong Liu <nemoliu@FreeBSD.org>


pub uid 1024D/ECC7C907 2007-07-10 Key fingerprint = B62E 3109 896B B283 E2FA 60FE A1BA F92E ECC7 C907 Tong LIU <nemoliu@FreeBSD.org>

1056

Fggelk D. PGP-kulcsok
sub 4096g/B6D7B15D 2007-07-10

D.3.163. Zachary Loafman <zml@FreeBSD.org>


pub uid sub 1024D/4D65492D 2009-05-26 Key fingerprint = E513 4AE9 5D6D 8BF9 1CD3 4389 4860 D79B 4D65 492D Zachary Loafman <zml@FreeBSD.org> 2048g/1AD659F0 2009-05-26

D.3.164. Juergen Lock <nox@FreeBSD.org>


pub uid sub 1024D/1B6BFBFD 2006-12-22 Key fingerprint = 33A7 7FAE 51AF 00BC F0D3 ECCE FAFD 34C1 1B6B FBFD Juergen Lock <nox@FreeBSD.org> 2048g/251229D1 2006-12-22

D.3.165. Remko Lodder <remko@FreeBSD.org>


pub uid sub 2048R/6EB8C8C8 2010-05-28 [expires: 2012-05-27] Key fingerprint = D692 91F9 F4EF D363 7F3F 4D17 9C75 DF7B 6EB8 C8C8 Remko Lodder (Remko Lodders Key) <remko@FreeBSD.org> 2048R/011C6AA0 2010-05-28 [expires: 2012-05-27]

D.3.166. Alexander Logvinov <avl@FreeBSD.org>


pub uid uid uid uid uid sub 1024D/1C47D5C0 2009-05-28 Key fingerprint = 8B5F 880A 382B 075E E707 9DB2 E135 4176 1C47 D5C0 Alexander Logvinov <alexander@logvinov.com> Alexander Logvinov (FreeBSD Ports Committer) <avl@FreeBSD.org> Alexander Logvinov <ports@logvinov.com> Alexander Logvinov <logvinov@gmail.com> Alexander Logvinov <logvinov@yandex.ru> 2048g/60BDD4BB 2009-05-28

D.3.167. Scott Long <scottl@FreeBSD.org>


pub sub

1024D/017C5EBF 2003-01-18 Scott A. Long (This is my official FreeBSD key) <scottl@freebsd.org Key fingerprint = 34EA BD06 44F7 F8C3 22BC B52C 1D3A F6D1 017C 5EBF 1024g/F61C8F91 2003-01-18

1057

Fggelk D. PGP-kulcsok

D.3.168. Pav Lucistnik <pav@FreeBSD.org>


pub uid sub 1024D/C14EB282 2003-08-25 Pav Lucistnik <pav@FreeBSD.org> Key fingerprint = 2622 B7E3 7DA5 5C53 2079 855B 9ED7 583F C14E B282 Pav Lucistnik <pav@oook.cz> 1024g/7287A947 2003-08-25

D.3.169. Rick Macklem <rmacklem@FreeBSD.org>


pub uid sub 1024D/7FB9C5F1 2009-04-05 Key fingerprint = B9EA 767A F6F3 3786 E0C7 434A 05C6 70D6 7FB9 C5F1 Rick Macklem <rmacklem@freebsd.org> 1024g/D0B20E8A 2009-04-05

D.3.170. Bruce A. Mah <bmah@FreeBSD.org>


pub uid uid uid uid uid uid uid uid sub 1024D/5BA052C3 1997-12-08 Key fingerprint = F829 B805 Bruce A. Mah Bruce A. Mah Bruce A. Mah Bruce A. Mah Bruce A. Mah Bruce A. Mah Bruce A. Mah Bruce A. Mah 2048g/B4E60EA1 1997-12-08 207D 14C7 7197 7832 D8CA 3171 5BA0 52C3 <bmah@acm.org> <bmah@ca.sandia.gov> <bmah@ieee.org> <bmah@cisco.com> <bmah@employees.org> <bmah@freebsd.org> <bmah@packetdesign.com> <bmah@kitchenlab.org>

D.3.171. Mike Makonnen <mtm@FreeBSD.org>


pub uid uid uid sub 1024D/7CD41F55 2004-02-06 Michael Telahun Makonnen <mtm@FreeBSD.Org> Key fingerprint = AC7B 5672 2D11 F4D0 EBF8 5279 5359 2B82 7CD4 1F55 Michael Telahun Makonnen <mtm@tmsa-inc.com> Mike Makonnen <mtm@identd.net> Michael Telahun Makonnen <mtm@acs-et.com> 2048g/E7DC936B 2004-02-06

D.3.172. David Malone <dwmalone@FreeBSD.org>


pub 512/40378991 1994/04/21 David Malone <dwmalone@maths.tcd.ie> Key fingerprint = 86 A7 F4 86 39 2C 47 2C C1 C2 35 78 8E 2F B8 F5

1058

Fggelk D. PGP-kulcsok

D.3.173. Dmitry Marakasov <amdmi3@FreeBSD.org>


pub uid uid sub 1024D/F9D2F77D 2008-06-15 [expires: 2010-06-15] Key fingerprint = 55B5 0596 FF1E 8D84 5F56 9510 D35A 80DD F9D2 F77D Dmitry Marakasov <amdmi3@amdmi3.ru> Dmitry Marakasov <amdmi3@FreeBSD.org> 2048g/2042CDD8 2008-06-15

D.3.174. Koop Mast <kwm@FreeBSD.org>


pub uid sub 1024D/F95426DA 2004-09-10 Koop Mast <kwm@rainbow-runner.nl> Key fingerprint = C66F 1835 0548 3440 8576 0FFE 6879 B7CD F954 26DA Koop Mast <kwm@FreeBSD.org> 1024g/A782EEDD 2004-09-10

D.3.175. Makoto Matsushita <matusita@FreeBSD.org>


pub uid uid uid uid sub 1024D/20544576 1999-04-18 Key fingerprint = 71B6 13BF B262 Makoto Matsushita Makoto Matsushita Makoto Matsushita Makoto Matsushita 1024g/F1F3C94D 1999-04-18 2DD8 2B7C 6CD0 EB2D 4147 2054 4576 <matusita@matatabi.or.jp> <matusita@FreeBSD.org> <matusita@jp.FreeBSD.ORG> <matusita@ist.osaka-u.ac.jp>

D.3.176. Martin Matuska <mm@FreeBSD.org>


pub uid uid uid sub 1024D/4261B0D1 2007-02-05 Key fingerprint = 17C4 3F32 B3DE 3ED7 E84E 5592 A76B 8B03 4261 B0D1 Martin Matuska <martin@matuska.org> Martin Matuska <mm@FreeBSD.org> Martin Matuska <martin.matuska@wu-wien.ac.at> 2048g/3AC9A5A6 2007-02-05

D.3.177. Sergey Matveychuk <sem@FreeBSD.org>


pub uid uid uid sub 1024D/B71F605D 1999-10-13 Key fingerprint = 4704 F374 DB28 Sergey Matveychuk Sergey Matveychuk Sergey Matveychuk 2048g/DEAF9D91 1999-10-13 BEC6 51C8 1322 4DC9 4BD8 B71F 605D <sem@FreeBSD.org> <sem@ciam.ru> <sem@core.inec.ru>

1059

Fggelk D. PGP-kulcsok

D.3.178. Tom McLaughlin <tmclaugh@FreeBSD.org>


pub uid uid uid sub 1024D/E2F7B3D8 2005-05-24 Key fingerprint = 7692 B222 8D23 CF94 1993 0138 E339 E225 E2F7 B3D8 Tom McLaughlin (Personal email address) <tmclaugh@sdf.lonestar.org> Tom McLaughlin (Work email address) <tmclaughlin@meditech.com> Tom McLaughlin (FreeBSD email address) <tmclaugh@FreeBSD.org> 2048g/16838F62 2005-05-24

D.3.179. Jean Milanez Melo <jmelo@FreeBSD.org>


pub uid uid sub 1024D/AA5114BF 2006-03-03 Key fingerprint = 826D C2AA 6CF2 E29A EBE7 4776 D38A AB83 AA51 14BF Jean Milanez Melo <jmelo@FreeBSD.org> Jean Milanez Melo <jmelo@freebsdbrasil.com.br> 4096g/E9E1CBD9 2006-03-03

D.3.180. Kenneth D. Merry <ken@FreeBSD.org>


pub uid sub pub 1024D/54C745B5 2000-05-15 Kenneth D. Merry <ken@FreeBSD.org> Key fingerprint = D25E EBC5 F17A 9E52 84B4 BF14 9248 F0DA 54C7 45B5 Kenneth D. Merry <ken@kdm.org> 2048g/89D0F797 2000-05-15 1024R/2FA0A505 1995-10-30 Kenneth D. Merry <ken@plutotech.com> Key fingerprint = FD FA 85 85 95 C4 8E E8 98 1A CA 18 56 F0 00 1F

D.3.181. Dirk Meyer <dinoex@FreeBSD.org>


pub uid uid 1024R/331CDA5D 1995-06-04 Dirk Meyer <dinoex@FreeBSD.org> Key fingerprint = 44 16 EC 0A D3 3A 4F 28 8A 8A 47 93 F1 CF 2F 12 Dirk Meyer <dirk.meyer@dinoex.sub.org> Dirk Meyer <dirk.meyer@guug.de>

D.3.182. Yoshiro Sanpei MIHIRA <sanpei@FreeBSD.org>


pub uid uid uid uid uid uid 1024R/391C5D69 1996-11-21 sanpei@SEAPLE.ICC.NE.JP Key fingerprint = EC 04 30 24 B0 6C 1E 63 5F 5D 25 59 3E 83 64 51 MIHIRA Yoshiro <sanpei@sanpei.org> Yoshiro MIHIRA <sanpei@FreeBSD.org> MIHIRA Yoshiro <sanpei@yy.cs.keio.ac.jp> MIHIRA Yoshiro <sanpei@cc.keio.ac.jp> MIHIRA Yoshiro <sanpei@educ.cc.keio.ac.jp> MIHIRA Yoshiro <sanpei@st.keio.ac.jp>

1060

Fggelk D. PGP-kulcsok

D.3.183. Marcel Moolenaar <marcel@FreeBSD.org>


pub sub 1024D/61EE89F6 2002-02-09 Marcel Moolenaar <marcel@xcllnt.net> Key fingerprint = 68BB E2B7 49AA FF69 CA3A DF71 A605 A52D 61EE 89F6 1024g/6EAAB456 2002-02-09

D.3.184. Kris Moore <kmoore@FreeBSD.org>


pub uid sub 1024D/6294612C 2009-05-26 Key fingerprint = 8B70 9876 346F 1F97 5687 6950 4C92 D789 6294 612C Kris Moore <kmoore@freebsd.org> 2048g/A7FFE8FB 2009-05-26

D.3.185. Dmitry Morozovsky <marck@FreeBSD.org>


pub uid uid sub 1024D/6B691B03 2001-07-20 Key fingerprint = 39AC E336 F03D C0F8 5305 B725 85D4 5045 6B69 1B03 Dmitry Morozovsky <marck@rinet.ru> Dmitry Morozovsky <marck@FreeBSD.org> 2048g/44D656F8 2001-07-20

D.3.186. Alexander Motin <mav@FreeBSD.org>


pub uid uid uid sub 1024D/0577BACA 2007-04-20 [expires: 2012-04-18] Key fingerprint = 0E84 B263 E97D 3E48 161B 98A2 D240 A09E 0577 BACA Alexander Motin <mav@freebsd.org> Alexander Motin <mav@mavhome.dp.ua> Alexander Motin <mav@alkar.net> 2048g/4D59D1C2 2007-04-20 [expires: 2012-04-18]

D.3.187. Felippe de Meirelles Motta <lippe@FreeBSD.org>


pub uid sub 1024D/F2CF7DAE 2008-09-02 [expires: 2010-09-02] Key fingerprint = 0532 A900 286D DAFD 099D 394D 231B AF20 F2CF 7DAE Felippe de Meirelles Motta (FreeBSD Ports Committer) <lippe@FreeBSD.org> 2048g/38E8EEF3 2008-09-02 [expires: 2010-09-02]

D.3.188. Rich Murphey <rich@FreeBSD.org>


pub 1024R/583443A9 1995-03-31 Rich Murphey <rich@lamprey.utmb.edu> Key fingerprint = AF A0 60 C4 84 D6 0C 73 D1 EF C0 E9 9D 21 DB E4

1061

Fggelk D. PGP-kulcsok

D.3.189. Akinori MUSHA <knu@FreeBSD.org>


pub uid uid uid sub 1024D/9FD9E1EE 2000-03-21 Akinori MUSHA <knu@and.or.jp> Key fingerprint = 081D 099C 1705 861D 4B70 B04A 920B EFC7 9FD9 E1EE Akinori MUSHA <knu@FreeBSD.org> Akinori MUSHA <knu@idaemons.org> Akinori MUSHA <knu@ruby-lang.org> 1024g/71BA9D45 2000-03-21

D.3.190. Thomas Mstl <tmm@FreeBSD.org>


pub uid uid sub 1024D/419C776C 2000-11-28 Thomas Key fingerprint = 1C97 A604 2BD0 Thomas Thomas 2048g/ECE63CE6 2000-11-28 Moestl <tmm@FreeBSD.org> E492 51D0 9C0F 1FE6 4F1D 419C 776C Moestl <tmoestl@gmx.net> Moestl <t.moestl@tu-bs.de>

D.3.191. Masafumi NAKANE <max@FreeBSD.org>


pub uid uid uid sub 1024D/CE356B59 2000-02-19 Masafumi NAKANE <max@wide.ad.jp> Key fingerprint = EB40 BCAB 4CE5 0764 9942 378C 9596 159E CE35 6B59 Masafumi NAKANE <max@FreeBSD.org> Masafumi NAKANE <max@accessibility.org> Masafumi NAKANE <kd5pdi@qsl.net> 1024g/FA9BD48B 2000-02-19

D.3.192. Maho Nakata <maho@FreeBSD.org>


pub uid sub 1024D/F28B4069 2009-02-09 Key fingerprint = 3FE4 99A9 6F41 8161 4F5F 240C 8615 A60C F28B 4069 Maho NAKATA (NAKATAs FreeBSD.org alias) <maho@FreeBSD.org> 2048g/6B49098E 2009-02-09

D.3.193. Yoichi NAKAYAMA <yoichi@FreeBSD.org>


pub uid uid sub 1024D/E0788E46 2000-12-28 Yoichi Key fingerprint = 1550 2662 46B3 Yoichi Yoichi 1024g/B987A394 2000-12-28 NAKAYAMA <yoichi@assist.media.nagoya-u.ac.jp> 096C 0460 BC03 800D 0C8A E078 8E46 NAKAYAMA <yoichi@eken.phys.nagoya-u.ac.jp> NAKAYAMA <yoichi@FreeBSD.org>

1062

Fggelk D. PGP-kulcsok

D.3.194. Edward Tomasz Napierala <trasz@FreeBSD.org>


pub uid sub 1024D/8E53F00E 2007-04-13 Key fingerprint = DD8F 91B0 12D9 6237 42D9 DBE1 AFC8 CDE9 8E53 F00E Edward Tomasz Napierala <trasz@FreeBSD.org> 2048g/7C1F5D67 2007-04-13

D.3.195. Alexander Nedotsukov <bland@FreeBSD.org>


pub sub 1024D/D004116C 2003-08-14 Alexander Nedotsukov <bland@FreeBSD.org> Key fingerprint = 35E2 5020 55FC 2071 4ADD 1A4A 86B6 8A5D D004 116C 1024g/1CCA8D46 2003-08-14

D.3.196. Simon L. Nielsen <simon@FreeBSD.org>


pub uid uid sub 1024D/FF7490AB 2007-01-14 Key fingerprint = 4E92 BA8D E45E 85E2 0380 B264 049C 7480 FF74 90AB Simon L. Nielsen <simon@FreeBSD.org> Simon L. Nielsen <simon@nitro.dk> 2048g/E3F5A76E 2007-01-14

D.3.197. Robert Noland <rnoland@FreeBSD.org>


pub uid uid sub 1024D/8A9F44E3 2007-07-24 Key fingerprint = 107A 0C87 E9D0 E581 677B 2A28 3384 EB43 8A9F 44E3 Robert C. Noland III <rnoland@FreeBSD.org> Robert C. Noland III (Personal Key) <rnoland@2hip.net> 2048g/76C3CF00 2007-07-24

D.3.198. Anders Nordby <anders@FreeBSD.org>


pub uid sub 1024D/00835956 2000-08-13 Anders Nordby <anders@fix.no> Key fingerprint = 1E0F C53C D8DF 6A8F EAAD 19C5 D12A BC9F 0083 5956 Anders Nordby <anders@FreeBSD.org> 2048g/4B160901 2000-08-13

D.3.199. Michael Nottebrock <lofi@FreeBSD.org>


pub uid uid uid 1024D/6B2974B0 2002-06-06 Michael Nottebrock <michaelnottebrock@gmx.net> Key fingerprint = 1079 3C72 0726 F300 B8EC 60F9 5E17 3AF1 6B29 74B0 Michael Nottebrock <lofi@freebsd.org> Michael Nottebrock <lofi@tigress.com> Michael Nottebrock <lofi@lofi.dyndns.org>

1063

Fggelk D. PGP-kulcsok
uid uid sub Michael Nottebrock <michaelnottebrock@web.de> Michael Nottebrock <michaelnottebrock@meitner.wh.uni-dortmund.de> 1024g/EF652E04 2002-06-06 [expires: 2004-06-15]

D.3.200. David OBrien <obrien@FreeBSD.org>


pub uid uid uid uid uid uid uid uid uid pub uid uid sub 1024R/34F9F9D5 1995-04-23 David E. OBrien <defunct - obrien@Sea.Legent.com> Key fingerprint = B7 4D 3E E9 11 39 5F A3 90 76 5D 69 58 D9 98 7A David E. OBrien <obrien@NUXI.com> deobrien@ucdavis.edu David E. OBrien <whois Do38> David E. OBrien <obrien@FreeBSD.org> David E. OBrien <dobrien@seas.gwu.edu> David E. OBrien <obrien@cs.ucdavis.edu> David E. OBrien <defunct - obrien@media.sra.com> David E. OBrien <obrien@elsewhere.roanoke.va.us> David E. OBrien <obrien@Nuxi.com> 1024D/7F9A9BA2 1998-06-10 "David Key fingerprint = 02FD 495F D03C "David "David 3072g/BA32C20D 1998-06-10 E. OBrien" <obrien@cs.ucdavis.edu> 9AF2 5DB7 F496 6FC8 DABD 7F9A 9BA2 E. OBrien" <obrien@NUXI.com> E. OBrien" <obrien@FreeBSD.org>

D.3.201. Philip Paeps <philip@FreeBSD.org>


pub uid uid uid uid uid sub sub 4096R/C5D34D05 2006-10-22 Key fingerprint = 356B AE02 4763 F739 2FA2 E438 2649 E628 C5D3 4D05 Philip Paeps <philip@paeps.cx> Philip Paeps <philip@nixsys.be> Philip Paeps <philip@fosdem.org> Philip Paeps <philip@freebsd.org> Philip Paeps <philip@pub.telenet.be> 1024D/035EFC58 2006-10-22 [expires: 2010-10-13] 2048g/6E5FD7D6 2006-10-22 [expires: 2010-10-14]

D.3.202. Josh Paetzel <jpaetzel@FreeBSD.org>


pub uid uid uid uid sub 1024D/27AFAECB 2007-05-11 Key fingerprint = 8A48 EF36 Josh Paetzel Josh Paetzel Josh Paetzel Josh Paetzel 2048g/E0F5996B 2007-05-11 5E9F 4EDA 5A8C 11B4 26F9 01F1 27AF AECB (BSD UNIX) <josh@tcbug.org> <josh@rephunter.net> <josh@pcbsd.org> <jpaetzel@FreeBSD.org>

1064

Fggelk D. PGP-kulcsok

D.3.203. Gbor Pli <pgj@FreeBSD.org>


pub uid uid sub 1024D/9E3F9BE6 2008-04-17 [expires: 2013-04-16] Key fingerprint = DA0B 2143 0FC8 EE5F E211 D329 7D4B 6E18 9E3F 9BE6 Gabor PALI <pgj@FreeBSD.org> PLI Gbor Jnos <pali.gabor@gmail.com> 2048g/A780C60B 2008-04-17 [expires: 2013-04-16]

D.3.204. Hiten Pandya <hmp@FreeBSD.org>


pub uid sub 1024D/938CACA8 2004-02-13 Hiten Pandya (FreeBSD) <hmp@FreeBSD.org> Key fingerprint = 84EB C75E C75A 50ED 304E E446 D974 7842 938C ACA8 Hiten Pandya <hmp@backplane.com> 2048g/783874B5 2004-02-13

D.3.205. Dima Panov <fluffy@FreeBSD.org>


pub uid uid uid sub pub uid uid uid sub 1024D/93E3B018 2006-11-08 Key fingerprint = C73E 2B72 1FFD 61BD E206 1234 A626 76ED 93E3 B018 Dima Panov (FreeBSD.ORG Committer) <fluffy@FreeBSD.ORG> Dima Panov (at home) <Fluffy@Fluffy.Khv.RU> Dima Panov (at home) <fluffy.khv@gmail.com> 2048g/89047419 2006-11-08 4096R/D5398F29 2009-08-09 Key fingerprint = 2D30 2CCB 9984 130C 6F87 BAFC FB8B A09D D539 8F29 Dima Panov (FreeBSD.ORG Committer) <fluffy@FreeBSD.ORG> Dima Panov (at Home) <fluffy@Fluffy.Khv.RU> Dima Panov (at GMail) <fluffy.khv@gmail.com> 4096R/915A7785 2009-08-09

D.3.206. Andrew Pantyukhin <sat@FreeBSD.org>


pub uid uid uid uid sub 1024D/6F38A569 2006-05-06 Key fingerprint = 4E94 994A C2EF Andrew Pantyukhin Andrew Pantyukhin Andrew Pantyukhin Andrew Pantyukhin 2048g/5BD4D469 2006-05-06 CB86 C144 3B04 3381 67C0 6F38 A569 <infofarmer@gubkin.ru> <sat@FreeBSD.org> <infofarmer@gmail.com> <infofarmer@mail.ru>

1065

Fggelk D. PGP-kulcsok

D.3.207. Navdeep Parhar <np@FreeBSD.org>


pub uid sub 1024D/ACAB8812 2009-06-08 Key fingerprint = C897 7AFB AFC0 4DA9 7B76 D991 CAB2 2B93 ACAB 8812 Navdeep Parhar <np@FreeBSD.org> 2048g/AB61D2DC 2009-06-08

D.3.208. Rui Paulo <rpaulo@FreeBSD.org>


pub uid uid sub 4096R/39CB4153 2010-02-03 Key fingerprint = ABE8 8465 DE8F F04D E9C8 3FF6 AF89 B2E6 39CB 4153 Rui Paulo <rpaulo@FreeBSD.org> Rui Paulo <rpaulo@gmail.com> 4096R/F87D2F34 2010-02-03

D.3.209. Mark Peek <mp@FreeBSD.org>


pub sub 1024D/330D4D01 2002-01-27 Mark Peek <mp@FreeBSD.org> Key fingerprint = 510C 96EE B4FB 1B0A 2CF8 A0AF 74B0 0B0E 330D 4D01 1024g/9C6CAC09 2002-01-27

D.3.210. Peter Pentchev <roam@FreeBSD.org>


pub uid uid uid uid uid uid uid uid uid sub pub uid uid uid uid uid uid uid uid uid 1024D/16194553 2002-02-01 Key fingerprint = FDBA FD79 C26F 3C51 C95E DF9E ED18 B68D 1619 4553 Peter Pentchev <roam@ringlet.net> Peter Pentchev <roam@cnsys.bg> Peter Pentchev <roam@sbnd.net> Peter Pentchev <roam@online.bg> Peter Pentchev <roam@orbitel.bg> Peter Pentchev <roam@FreeBSD.org> Peter Pentchev <roam@techlab.office1.bg> Peter Pentchev <roam@hoster.bg> Peter Pentchev <roam@space.bg> 1024g/7074473C 2002-02-01 4096R/2527DF13 2009-10-16 Key fingerprint = 2EE7 A7A5 17FC 124C F115 C354 651E EFB0 2527 DF13 Peter Pentchev <roam@ringlet.net> Peter Pentchev <roamer@users.sourceforge.net> Peter Pentchev <roam@cpan.org> Peter Pentchev <roam@cnsys.bg> Peter Pentchev <roam@sbnd.net> Peter Pentchev <roam@online.bg> Peter Pentchev <roam@orbitel.bg> Peter Pentchev <roam@FreeBSD.org> Peter Pentchev <roam@techlab.office1.bg>

1066

Fggelk D. PGP-kulcsok
uid uid uid uid sub Peter Pentchev Peter Pentchev Peter Pentchev Peter Pentchev 4096R/D0B337AA 2009-10-16 <roam@hoster.bg> <roam@space.bg> <roam-guest@alioth.debian.org> <ppentchev@alumni.princeton.edu>

D.3.211. Denis Peplin <den@FreeBSD.org>


pub sub 1024D/485DDDF5 2003-09-11 Denis Peplin <den@FreeBSD.org> Key fingerprint = 495D 158C 8EC9 C2C1 80F5 EA96 6F72 7C1C 485D DDF5 1024g/E70BA158 2003-09-11

D.3.212. Colin Percival <cperciva@FreeBSD.org>


pub uid uid uid sub 1024D/0C6A6A6E 2009-01-12 Key fingerprint = EAF4 8BBA 7CC7 7A30 FEFC 0DA9 38CE CA69 0C6A 6A6E Colin Percival <cperciva@tarsnap.com> Colin Percival <cperciva@FreeBSD.org> Colin Percival <cperciva@alumni.sfu.ca> 2048g/DC606691 2009-01-12

D.3.213. Christian S.J. Peron <csjp@FreeBSD.org>


pub uid sub 1024D/033FA33C 2009-05-16 Key fingerprint = 74AA 6040 89A7 936E D970 DDC0 CC71 6954 033F A33C Christian S.J. Peron <csjp@FreeBSD.ORG> 2048g/856B194A 2009-05-16

D.3.214. Gerald Pfeifer <gerald@FreeBSD.org>


pub uid uid uid uid sub 1024D/745C015A 1999-11-09 Gerald Key fingerprint = B215 C163 3BCA Gerald Gerald Gerald Gerald 1536g/F0156927 1999-11-09 Pfeifer <gerald@pfeifer.com> 0477 615F 1B35 A5B3 A004 745C 015A Pfeifer <Gerald.Pfeifer@vibe.at> Pfeifer <pfeifer@dbai.tuwien.ac.at> Pfeifer <gerald@pfeifer.at> Pfeifer <gerald@FreeBSD.org>

D.3.215. Giuseppe Pilichi <jacula@FreeBSD.org>


pub uid 4096R/8B9F4B8B 2006-03-08 Key fingerprint = 31AD 73AE 0EC0 16E5 4108 8391 D942 5F20 8B9F 4B8B Giuseppe Pilichi (Jacula Modyun) <jacula@FreeBSD.org>

1067

Fggelk D. PGP-kulcsok
uid uid uid sub Giuseppe Pilichi (Jacula Modyun) <jaculamodyun@gmail.com> Giuseppe Pilichi (Jacula Modyun) <gpilch@gmail.com> Giuseppe Pilichi (Jacula Modyun) <jacula@gmail.com> 4096R/FB4D05A3 2006-03-08

D.3.216. John Polstra <jdp@FreeBSD.org>


pub 1024R/BFBCF449 1997-02-14 John D. Polstra <jdp@polstra.com> Key fingerprint = 54 3A 90 59 6B A4 9D 61 BF 1D 03 09 35 8D F6 0D

D.3.217. Kirill Ponomarew <krion@FreeBSD.org>


pub uid uid uid sub sub 1024D/AEB426E5 2002-04-07 Key fingerprint = 58E7 B953 57A2 D9DD 4960 2A2D 402D 46E9 AEB4 26E5 Kirill Ponomarew <krion@voodoo.bawue.com> Kirill Ponomarew <krion@guug.de> Kirill Ponomarew <krion@FreeBSD.org> 1024D/05AC7CA0 2006-01-30 [expires: 2008-01-30] 2048g/C3EE5537 2006-01-30 [expires: 2008-01-30]

D.3.218. Stephane E. Potvin <sepotvin@FreeBSD.org>


pub uid uid uid uid sub 1024D/3097FE7B 2002-08-06 Key fingerprint = 6B56 62FA ADE1 6F46 BB62 8B1C 99D3 97B5 3097 FE7B Stephane E. Potvin <sepotvin@videotron.ca> Stephane E. Potvin <stephane.potvin@telcobridges.com> Stephane E. Potvin <stephane_potvin@telcobridges.com> Stephane E. Potvin <sepotvin@FreeBSD.org> 2048g/0C427BC9 2002-08-06

D.3.219. Mark Pulford <markp@FreeBSD.org>


pub uid sub 1024D/182C368F 2000-05-10 Mark Pulford <markp@FreeBSD.org> Key fingerprint = 58C9 C9BF C758 D8D4 7022 8EF5 559F 7F7B 182C 368F Mark Pulford <mark@kyne.com.au> 2048g/380573E8 2000-05-10

D.3.220. Alejandro Pulver <alepulver@FreeBSD.org>


pub uid uid 1024D/945C3F61 2005-11-13 Key fingerprint = 085F E8A2 4896 4B19 42A4 4179 895D 3912 945C 3F61 Alejandro Pulver (Ales GPG key pair) <alepulver@FreeBSD.org> Alejandro Pulver (Ales GPG key pair) <alejandro@varnet.biz>

1068

Fggelk D. PGP-kulcsok
sub 2048g/6890C6CA 2005-11-13

D.3.221. Thomas Quinot <thomas@FreeBSD.org>


pub 1024D/393D2469 1999-09-23 Thomas Empreinte de la cl = 4737 A0AD E596 uid Thomas uid Thomas sub 1024g/8DE13BB2 1999-09-23 Quinot <thomas@cuivre.fr.eu.org> 6D30 4356 29B8 004D 54B8 393D 2469 Quinot <thomas@debian.org> Quinot <thomas@FreeBSD.org>

D.3.222. Herve Quiroz <hq@FreeBSD.org>


pub uid sub 1024D/85AC8A80 2004-07-22 Herve Quiroz <hq@FreeBSD.org> Key fingerprint = 14F5 BC56 D736 102D 41AF A07B 1D97 CE6C 85AC 8A80 Herve Quiroz <herve.quiroz@esil.univ-mrs.fr> 1024g/8ECCAFED 2004-07-22

D.3.223. Doug Rabson <dfr@FreeBSD.org>


pub uid sub 1024D/59F57821 2004-02-07 Key fingerprint = 9451 C4FE 1A7E 117B B95F 1F8F B123 456E 59F5 7821 Doug Rabson <dfr@nlsystems.com> 1024g/6207AA32 2004-02-07

D.3.224. Lars Balker Rasmussen <lbr@FreeBSD.org>


pub uid sub 1024D/9EF6F27F 2006-04-30 Key fingerprint = F251 28B7 897C 293E 04F8 71EE 4697 F477 9EF6 F27F Lars Balker Rasmussen <lbr@FreeBSD.org> 2048g/A8C1CFD4 2006-04-30

D.3.225. Jim Rees <rees@FreeBSD.org>


pub 512/B623C791 1995/02/21 Jim Rees <rees@umich.edu> Key fingerprint = 02 5F 1B 15 B4 6E F1 3E F1 C5 E0 1D EA CC 17 88

D.3.226. Benedict Reuschling <bcr@FreeBSD.org>


pub 1024D/4A819348 2009-05-24 Key fingerprint = 2D8C BDF9 30FA 75A5 A0DF D724 4D26 502E 4A81 9348

1069

Fggelk D. PGP-kulcsok
uid sub Benedict Reuschling <bcr@FreeBSD.org> 2048g/8DA16EDD 2009-05-24

D.3.227. Tom Rhodes <trhodes@FreeBSD.org>


pub uid sub 1024D/FB7D88E1 2008-05-07 Key fingerprint = 8279 3100 2DF2 F00E 7FDD AC2C 5776 23AB FB7D 88E1 Tom Rhodes (trhodes) <trhodes@FreeBSD.org> 4096g/7B0CD79F 2008-05-07

D.3.228. Benno Rice <benno@FreeBSD.org>


pub uid sub 1024D/87C59909 2002-01-16 Benno Rice <benno@FreeBSD.org> Key fingerprint = CE27 DADA 08E3 FAA3 88F1 5B31 5E34 705A 87C5 9909 Benno Rice <benno@jeamland.net> 1024g/4F7C2BAD 2002-01-16 [expires: 2007-01-15]

D.3.229. Beech Rintoul <beech@FreeBSD.org>


pub uid sub 1024D/790DB7C7 2009-01-23 Key fingerprint = 3AFC 32D4 093B 63F1 28A8 1A18 B378 28D2 790D B7C7 Beech Rintoul <beech@FreeBSD.org> 2048g/9F3B61BF 2009-01-23

D.3.230. Matteo Riondato <matteo@FreeBSD.org>


pub uid uid uid uid uid uid uid sub 1024D/1EC56BEC 2003-01-05 [expires: 2009-09-07] Key fingerprint = F0F3 1B43 035D 65B1 08E9 4D66 D8CA 78A5 1EC5 6BEC Matteo Riondato (Rionda) <matteo@FreeBSD.ORG> Matteo Riondato (Rionda) <rionda@riondabsd.net> Matteo Riondato (Rionda) <rionda@gufi.org> Matteo Riondato (Rionda) <matteo@riondato.com> Matteo Riondato (Rionda) <rionda@riondato.com> Matteo Riondato (Rionda) <rionda@FreeSBIE.ORG> Matteo Riondato (Rionda) <rionda@autistici.org> 2048g/87C44A55 2008-09-23 [expires: 2009-09-23]

D.3.231. Ollivier Robert <roberto@FreeBSD.org>


pub uid uid 1024D/7DCAE9D3 1997-08-21 Key fingerprint = 2945 61E7 D4E5 1D32 C100 DBEC A04F FB1B 7DCA E9D3 Ollivier Robert <roberto@keltia.freenix.fr> Ollivier Robert <roberto@FreeBSD.org>

1070

Fggelk D. PGP-kulcsok
sub 2048g/C267084D 1997-08-21

D.3.232. Craig Rodrigues <rodrigc@FreeBSD.org>


pub uid uid sub 1024D/3998479D 2005-05-20 Key fingerprint = F01F EBE6 F5C8 6DC2 954F 098F D20A 8A2A 3998 479D Craig Rodrigues <rodrigc@freebsd.org> Craig Rodrigues <rodrigc@crodrigues.org> 2048g/AA77E09B 2005-05-20

D.3.233. Guido van Rooij <guido@FreeBSD.org>


pub uid pub uid sub 1024R/599F323D 1996-05-18 Guido van Rooij <guido@gvr.org> Key fingerprint = 16 79 09 F3 C0 E4 28 A7 32 62 FA F6 60 31 C0 ED Guido van Rooij <guido@gvr.win.tue.nl> 1024D/A95102C1 2000-10-25 Guido van Rooij <guido@madison-gurkha.nl> Key fingerprint = 5B3E 51B7 0E7A D170 0574 1E51 2471 117F A951 02C1 Guido van Rooij <guido@madison-gurkha.com> 1024g/A5F20553 2000-10-25

D.3.234. Niklas Saers <niklas@FreeBSD.org>


pub sub 1024D/C822A476 2004-03-09 Niklas Saers <niklas@saers.com> Key fingerprint = C41E F734 AF0E 3D21 7499 9EB1 9A31 2E7E C822 A476 1024g/81E2FF36 2004-03-09

D.3.235. Boris Samorodov <bsam@FreeBSD.org>


pub uid sub 1024D/ADFD5C9A 2006-06-21 Key fingerprint = 81AA FED0 6050 208C 0303 4007 6C03 7263 ADFD 5C9A Boris Samorodov (FreeBSD) <bsam@freebsd.org> 2048g/7753A3F1 2006-06-21

D.3.236. Mark Santcroos <marks@FreeBSD.org>


pub uid uid uid sub 1024D/DBE7EB8E 2005-03-08 Key fingerprint = C0F0 44F3 3F15 520F 6E32 186B BE0A BA42 DBE7 EB8E Mark Santcroos <marks@ripe.net> Mark Santcroos <mark@santcroos.net> Mark Santcroos <marks@freebsd.org> 2048g/FFF80F85 2005-03-08

1071

Fggelk D. PGP-kulcsok

D.3.237. Bernhard Schmidt <bschmidt@FreeBSD.org>


pub uid uid sub 1024D/5F754FBC 2009-06-15 Key fingerprint = 6B87 C8A9 6BA5 6B18 11CF 8C38 A1B7 0731 5F75 4FBC Bernhard Schmidt <bschmidt@FreeBSD.org> Bernhard Schmidt <bschmidt@techwires.net> 1024g/1945DC1D 2009-06-15

D.3.238. Wolfram Schneider <wosch@FreeBSD.org>


Type Bits/KeyID Date User ID pub 1024/2B7181AD 1997/08/09 Wolfram Schneider <wosch@FreeBSD.org> Key fingerprint = CA 16 91 D9 75 33 F1 07 1B F0 B4 9F 3E 95 B6 09

D.3.239. Ed Schouten <ed@FreeBSD.org>


pub uid uid uid uid uid sub 1024D/0D9E0B05 2006-03-21 [expires: 2011-03-20] Key fingerprint = 9476 D3D6 52BD F249 08A0 ACD5 E764 8318 0D9E 0B05 Ed Schouten (FreeBSD) <ed@FreeBSD.org> Ed Schouten <ed@fxq.nl> Ed Schouten (Fontys Hogescholen Eindhoven) <e.schouten@student.fontys.nl> Ed Schouten (Dispuut Interlink) <ed@il.fontys.nl> Ed Schouten <ed@80386.nl> 4096g/80043EEA 2006-03-21 [expires: 2011-03-20]

D.3.240. David Schultz <das@FreeBSD.org>


pub uid uid sub 1024D/BE848B57 2001-07-19 David Schultz <das@FreeBSD.ORG> Key fingerprint = 0C12 797B A9CB 19D9 FDAF 2A39 2D76 A2DB BE84 8B57 David Schultz <dschultz@uclink.Berkeley.EDU> David Schultz <das@FreeBSD.ORG> 2048g/69206E8E 2001-07-19

D.3.241. Jens Schweikhardt <schweikh@FreeBSD.org>


pub uid sub 1024D/0FF231FD 2002-01-27 Jens Schweikhardt <schweikh@FreeBSD.org> Key fingerprint = 3F35 E705 F02F 35A1 A23E 330E 16FE EA33 0FF2 31FD Jens Schweikhardt <schweikh@schweikhardt.net> 1024g/6E93CACC 2002-01-27 [expires: 2005-01-26]

1072

Fggelk D. PGP-kulcsok

D.3.242. Stanislav Sedov <stas@FreeBSD.org>


pub uid uid uid uid uid uid uid sub 4096R/092FD9F0 2009-05-23 Key fingerprint = B83A B15D 929A 364A D8BC B3F9 BF25 A231 092F D9F0 Stanislav Sedov <stas@FreeBSD.org> Stanislav Sedov <stas@SpringDaemons.com> Stanislav Sedov (Corporate email) <stas@deglitch.com> Stanislav Sedov (Corporate email) <stas@ht-systems.ru> Stanislav Sedov (Corporate email) <ssedov@3playnet.com> Stanislav Sedov <ssedov@mbsd.msk.ru> Stanislav Sedov (Corporate email) <ssedov@swifttest.com> 4096R/6FD2025F 2009-05-23

D.3.243. Johan van Selst <johans@FreeBSD.org>


pub uid uid uid uid uid sub sub sub sub sub 4096R/D3AE8D3A 2009-09-01 Key fingerprint = 31C8 D089 DDB6 96C6 F3C1 29C0 A9C8 6C8D D3AE 8D3A Johan van Selst Johan van Selst <johans@gletsjer.net> Johan van Selst <johans@stack.nl> Johan van Selst <johans@FreeBSD.org> Johan van Selst (GSWoT:NL50) <johans@gswot.org> 2048R/B002E38C 2009-09-01 2048R/1EBCAECB 2009-09-01 2048R/639A1446 2009-09-01 3072D/6F2708F4 2009-09-01 4096g/D6F89E83 2009-09-01

D.3.244. Bakul Shah <bakul@FreeBSD.org>


pub uid sub 1024D/86AEE4CB 2006-04-20 Key fingerprint = 0389 26E8 381C 6980 AEC0 10A5 E540 A157 86AE E4CB Bakul Shah <bakul@freebsd.org> 2048g/5C3DCC24 2006-04-20

D.3.245. Gregory Neil Shapiro <gshapiro@FreeBSD.org>


pub uid pub uid sub pub 1024R/4FBE2ADD 2000-10-13 Gregory Neil Shapiro <gshapiro@gshapiro.net> Key fingerprint = 56 D5 FF A7 A6 54 A6 B5 59 10 00 B9 5F 5F 20 09 Gregory Neil Shapiro <gshapiro@FreeBSD.org> 1024D/F76A9BF5 2001-11-14 Gregory Neil Shapiro <gshapiro@FreeBSD.org> Key fingerprint = 3B5E DAF1 4B04 97BA EE20 F841 21F9 C5BC F76A 9BF5 Gregory Neil Shapiro <gshapiro@gshapiro.net> 2048g/935657DC 2001-11-14 1024D/FCE56561 2000-10-14 Gregory Neil Shapiro <gshapiro@FreeBSD.org>

1073

Fggelk D. PGP-kulcsok
Key fingerprint = 42C4 A87A FD85 C34F E77F 5EA1 88E1 7B1D FCE5 6561 Gregory Neil Shapiro <gshapiro@gshapiro.net> 1024g/285DC8A0 2000-10-14 [expires: 2001-10-14]

uid sub

D.3.246. Arun Sharma <arun@FreeBSD.org>


pub uid uid sub 1024D/7D112181 2003-03-06 Arun Sharma <arun@sharma-home.net> Key fingerprint = A074 41D6 8537 C7D5 070E 0F78 0247 1AE2 7D11 2181 Arun Sharma <arun@freebsd.org> Arun Sharma <arun.sharma@intel.com> 1024g/ACAD98DA 2003-03-06 [expires: 2005-03-05]

D.3.247. Wesley Shields <wxs@FreeBSD.org>


pub uid uid sub 1024D/17F0AA37 2007-12-27 Key fingerprint = 96D1 2E6B F61C 2F3D 83EF 8F0B BE54 310C 17F0 AA37 Wesley Shields <wxs@FreeBSD.org> Wesley Shields <wxs@atarininja.org> 2048g/2EDA1BB8 2007-12-27

D.3.248. Norikatsu Shigemura <nork@FreeBSD.org>


pub uid uid uid sub 1024D/7104EA4E 2005-02-14 Key fingerprint = 9580 60A3 B58A 0864 79CB 779A 6FAE 229B 7104 EA4E Norikatsu Shigemura <nork@cityfujisawa.ne.jp> Norikatsu Shigemura <nork@ninth-nine.com> Norikatsu Shigemura <nork@FreeBSD.org> 4096g/EF56997E 2005-02-14

D.3.249. Shteryana Shopova <syrinx@FreeBSD.org>


pub uid sub 1024D/1C139BC5 2006-10-07 Key fingerprint = B83D 2451 27AB B767 504F CB85 4FB1 C88B 1C13 9BC5 Shteryana Shopova (syrinx) <shteryana@FreeBSD.org> 2048g/6D2E9C98 2006-10-07

D.3.250. Vanilla I. Shu <vanilla@FreeBSD.org>


pub sub 1024D/ACE75853 2001-11-20 Vanilla I. Shu <vanilla@FreeBSD.org> Key fingerprint = 290F 9DB8 42A3 6257 5D9A 5585 B25A 909E ACE7 5853 1024g/CE695D0E 2001-11-20

1074

Fggelk D. PGP-kulcsok

D.3.251. Ashish SHUKLA <ashish@FreeBSD.org>


pub uid uid uid uid uid uid uid uid uid uid uid uid sub 4096R/E74FA4B0 2010-04-13 Key fingerprint = F682 CDCC 39DC 0FEA E116 20B6 C746 CFA9 E74F A4B0 Ashish SHUKLA <wahjava@gmail.com> Ashish SHUKLA <wahjava@googlemail.com> Ashish SHUKLA <wahjava.ml@gmail.com> Ashish SHUKLA <wahjava@members.fsf.org> Ashish SHUKLA <wahjava@perl.org.in> Ashish SHUKLA <wahjava@users.sourceforge.net> Ashish SHUKLA <wah.java@yahoo.com> Ashish SHUKLA <wah_java@hotmail.com> Ashish SHUKLA <ashish.shukla@airtelmail.in> Ashish SHUKLA <wahjava@member.fsf.org> [jpeg image of size 4655] Ashish SHUKLA (FreeBSD Committer Address) <ashish@FreeBSD.ORG> 4096R/F20D202D 2010-04-13

D.3.252. Bruce M. Simpson <bms@FreeBSD.org>


pub sub 1024D/860DB53B 2003-08-06 Bruce M Simpson <bms@freebsd.org> Key fingerprint = 0D5F 1571 44DF 51B7 8B12 041E B9E5 2901 860D B53B 2048g/A2A32D8B 2003-08-06 [expires: 2006-08-05]

D.3.253. Dmitry Sivachenko <demon@FreeBSD.org>


pub uid sub 1024D/13D5DF80 2002-03-18 Dmitry Sivachenko <mitya@cavia.pp.ru> Key fingerprint = 72A9 12C9 BB02 46D4 4B13 E5FE 1194 9963 13D5 DF80 Dmitry S. Sivachenko <demon@FreeBSD.org> 1024g/060F6DBD 2002-03-18

D.3.254. Jesper Skriver <jesper@FreeBSD.org>


pub uid uid sub 1024D/F9561C31 2001-03-09 Jesper Key fingerprint = 6B88 9CE8 66E9 Jesper Jesper 1024g/777C378C 2001-03-09 Skriver <jesper@FreeBSD.org> E631 C9C5 5EB4 22AB F0EC F956 1C31 Skriver <jesper@skriver.dk> Skriver <jesper@wheel.dk>

D.3.255. Ville Skytt <scop@FreeBSD.org>


pub uid uid 1024D/BCD241CB 2002-04-07 Ville Skytt <ville.skytta@iki.fi> Key fingerprint = 4E0D EBAB 3106 F1FA 3FA9 B875 D98C D635 BCD2 41CB Ville Skytt <ville.skytta@xemacs.org> Ville Skytt <scop@FreeBSD.org>

1075

Fggelk D. PGP-kulcsok
sub 2048g/9426F4D1 2002-04-07

D.3.256. Andrey Slusar <anray@FreeBSD.org>


pub uid uid uid sub 1024D/AE7B5418 2005-12-12 Key fingerprint = DE70 C24B 55A0 4A06 68A1 D425 3C59 9A9B AE7B 5418 Andrey Slusar <anray@ext.by> Andrey Slusar <anrays@gmail.com> Andrey Slusar <anray@FreeBSD.org> 2048g/7D0EB77D 2005-12-12

D.3.257. Gleb Smirnoff <glebius@FreeBSD.org>


pub uid uid uid uid uid uid sub 1024D/1949DC80 2003-08-25 Key fingerprint = 872C E14A 2F03 A3E8 D882 026E 5DE4 D7FE 1949 DC80 Gleb Smirnoff <glebius@FreeBSD.org> Gleb Smirnoff <glebius@cell.sick.ru> Gleb Smirnoff <glebius@bestcom.ru> Gleb Smirnoff <glebius@rambler-co.ru> Gleb Smirnoff <glebius@freebsd.org> Gleb Smirnoff <glebius@freebsd.int.ru> 1024g/A05118BD 2003-08-25

D.3.258. Ken Smith <kensmith@FreeBSD.org>


pub uid sub 1024D/29AEA7F6 2003-12-02 Ken Smith <kensmith@cse.buffalo.edu> Key fingerprint = 4AB7 D302 0753 8215 31E7 F1AD FC6D 7855 29AE A7F6 Ken Smith <kensmith@freebsd.org> 1024g/0D509C6C 2003-12-02

D.3.259. Ben Smithurst <ben@FreeBSD.org>


pub uid uid uid uid uid sub 1024D/2CEF442C 2001-07-11 Ben Smithurst <ben@LSRfm.com> Key fingerprint = 355D 0FFF B83A 90A9 D648 E409 6CFC C9FB 2CEF 442C Ben Smithurst <ben@vinosystems.com> Ben Smithurst <ben@smithurst.org> Ben Smithurst <ben@FreeBSD.org> Ben Smithurst <csxbcs@comp.leeds.ac.uk> Ben Smithurst <ben@scientia.demon.co.uk> 1024g/347071FF 2001-07-11

1076

Fggelk D. PGP-kulcsok

D.3.260. Dag-Erling C. Smrgrav <des@FreeBSD.org>


pub uid uid uid sub 1024D/64EBE220 2006-11-11 [expires: 2011-05-31] Key fingerprint = 3A1C 8E68 952C 3305 6984 6486 30D4 3A6E 64EB E220 Dag-Erling Smrgrav <des@des.no> Dag-Erling Smrgrav <des@freebsd.org> [jpeg image of size 3315] 2048g/920C3313 2006-11-11 [expires: 2011-05-31]

D.3.261. Maxim Sobolev <sobomax@FreeBSD.org>


pub uid uid uid pub uid uid uid pub uid uid uid sub 1024D/888205AF 2001-11-21 Maxim Sobolev <sobomax@FreeBSD.org> Key fingerprint = 85C9 DCB0 6828 087C C977 3034 A0DB B9B7 8882 05AF Maxim Sobolev <sobomax@mail.ru> Maxim Sobolev <sobomax@altavista.net> Maxim Sobolev <vegacap@i.com.ua> 1024D/468EE6D8 2003-03-21 Maxim Sobolev <sobomax@portaone.com> Key fingerprint = 711B D315 3360 A58F 9A0E 89DB 6D40 2558 468E E6D8 Maxim Sobolev <sobomax@FreeBSD.org> Maxim Sobolev <sobomax@mail.ru> Maxim Sobolev <vegacap@i.com.ua>

1024D/6BEC980A 2004-02-13 Maxim Sobolev <sobomax@portaone.com> Key fingerprint = 09D5 47B4 8D23 626F B643 76EB DFEE 3794 6BEC 980A Maxim Sobolev <sobomax@FreeBSD.org> Maksym Sobolyev (Its how they call me in official documents. Prett Maksym Sobolyev (Its how they call me in official documents. Prett 2048g/16D049AB 2004-02-13 [expires: 2005-02-12]

D.3.262. Brian Somers <brian@FreeBSD.org>


pub uid uid uid uid uid 1024R/666A7421 1997-04-30 Brian Somers Key fingerprint = 2D 91 BD C2 94 2C 46 Brian Somers Brian Somers Brian Somers Brian Somers Brian Somers <brian@freebsd-services.com> 8F 8F 09 C4 FC AD 12 3B 21 <brian@awfulhak.org> <brian@FreeBSD.org> <brian@OpenBSD.org> <brian@uk.FreeBSD.org> <brian@uk.OpenBSD.org>

D.3.263. Stacey Son <sson@FreeBSD.org>


pub uid uid uid 1024D/CE8319F3 2008-07-08 Key fingerprint = 64C7 8D92 C1DF B940 1171 5ED3 186A 758A CE83 19F3 Stacey Son <sson@FreeBSD.org> Stacey Son <stacey@son.org> Stacey Son <sson@byu.net>

1077

Fggelk D. PGP-kulcsok
uid uid sub Stacey Son <sson@secure.net> Stacey Son <sson@dev-random.com> 2048g/0F724E52 2008-07-08

D.3.264. Nicolas Souchu <nsouch@FreeBSD.org>


pub sub 1024D/C744F18B 2002-02-13 Nicholas Souchu <nsouch@freebsd.org> Key fingerprint = 992A 144F AC0F 40BA 55AE DE6D 752D 0A6C C744 F18B 1024g/90BD3231 2002-02-13

D.3.265. Suleiman Souhlal <ssouhlal@FreeBSD.org>


pub sub 1024D/2EA50469 2004-07-24 Suleiman Souhlal <ssouhlal@FreeBSD.org> Key fingerprint = DACF 89DB 54C7 DA1D 37AF 9A94 EB55 E272 2EA5 0469 2048g/0CDCC535 2004-07-24

D.3.266. Ulrich Sprlein <uqs@FreeBSD.org>


pub uid uid uid uid sub 2048R/4AAF82CE 2010-01-27 [expires: 2015-01-26] Key fingerprint = 08DF A6A0 B1EB 98A5 EDDA 9005 A3A6 9864 4AAF 82CE Ulrich Sprlein <uqs@spoerlein.net> Ulrich Spoerlein <uspoerlein@gmail.com> Ulrich Sprlein (The FreeBSD Project) <uqs@FreeBSD.org> Ulrich Sprlein <ulrich.spoerlein@web.de> 2048R/162E8BD2 2010-01-27 [expires: 2015-01-26]

D.3.267. Rink Springer <rink@FreeBSD.org>


pub uid uid uid sub 1024D/ECEDBFFF 2003-09-19 Key fingerprint = A8BE 9C82 9B81 4289 A905 418D 6F73 BAD2 ECED BFFF Rink Springer <rink@il.fontys.nl> Rink Springer (FreeBSD Project) <rink@FreeBSD.org> Rink Springer <rink@stack.nl> 2048g/3BC3E67E 2003-09-19

D.3.268. Vsevolod Stakhov <vsevolod@FreeBSD.org>


pub uid uid uid sub 1024D/213D0033 2005-03-14 [expires: 2008-03-13] Key fingerprint = B852 0010 761E 944A C76D D447 A25D C12C 213D 0033 Vsevolod Stakhov <vsevolod@FreeBSD.org> Vsevolod Stakhov <cebka@jet.msk.su> Vsevolod Stakhov <vsevolod@highsecure.ru> 2048g/786F2187 2005-03-14 [expires: 2008-03-13]

1078

Fggelk D. PGP-kulcsok

D.3.269. Randall R. Stewart <rrs@FreeBSD.org>


pub uid uid uid sub 1024D/0373B8B2 2006-09-01 Key fingerprint = 74A6 810E 6DEA Randall R Stewart Randall R Stewart Randall R Stewart 2048g/88027C0B 2006-09-01 D69B 6496 5FA9 8AEF 4166 0373 B8B2 <randall@lakerest.net> <rrs@cisco.com> <rrs@FreeBSD.org>

D.3.270. Volker Stolz <vs@FreeBSD.org>


pub uid uid 1024R/3FD1B6B5 1998-06-16 Volker Key fingerprint = 69 6F BD A0 2E Volker Volker Stolz FE 19 Stolz Stolz <vs@freebsd.org> 66 CF B9 68 6E 41 7D F9 B9 <stolz@i2.informatik.rwth-aachen.de> (LSK) <vs@foldr.org>

D.3.271. Ryan Stone <rstone@FreeBSD.org>


pub uid sub 1024D/3141B73A 2010-04-13 Key fingerprint = 4A6D DC04 DDC5 0822 2687 A086 FD3F 16CB 3141 B73A Ryan Stone (FreeBSD) <rstone@freebsd.org> 2048g/A8500B5F 2010-04-13

D.3.272. Sren Straarup <xride@FreeBSD.org>


pub uid uid uid sub 1024D/E683AD40 2006-09-28 Key fingerprint = 8A0E 7E57 144B BC25 24A9 EC1A 0DBC 3408 E683 AD40 Soeren Straarup <xride@xride.dk> Soeren Straarup <xride@FreeBSD.org> Soeren Straarup <xride@x12.dk> 2048g/2B18B3B8 2006-09-28

D.3.273. Marius Strobl <marius@FreeBSD.org>


pub uid uid sub 1024D/E0AC6F8D 2004-04-16 Key fingerprint = 3A6C 4FB1 8BB9 4F2E BDDC 4AB6 D035 799C E0AC 6F8D Marius Strobl <marius@FreeBSD.org> Marius Strobl <marius@alchemy.franken.de> 1024g/08BBD875 2004-04-16

1079

Fggelk D. PGP-kulcsok

D.3.274. Cheng-Lung Sung <clsung@FreeBSD.org>


pub uid uid uid uid uid uid uid sub

1024D/956E8BC1 2003-09-12 Cheng-Lung Sung <clsung@FreeBSD.org> Key fingerprint = E0BC 57F9 F44B 46C6 DB53 8462 F807 89F3 956E 8BC1 Cheng-Lung Sung (Software Engineer) <clsung@dragon2.net> Cheng-Lung Sung (Alumnus of CSIE, NCTU, Taiwan) <clsung@sungsung.cs Cheng-Lung Sung (AlanSung) <clsung@tiger2.net> Cheng-Lung Sung (FreeBSD@Taiwan) <clsung@freebsd.csie.nctu.edu.tw> Cheng-Lung Sung (Ph.D. Student of NTU.EECS) <d92921016@ntu.edu.tw> Cheng-Lung Sung (FreeBSD Freshman) <clsung@tw.freebsd.org> Cheng-Lung Sung (ports committer) <clsung@FreeBSD.org> 1024g/1FB800C2 2003-09-12

D.3.275. Gregory Sutter <gsutter@FreeBSD.org>


pub uid uid uid sub 1024D/845DFEDD 2000-10-10 Gregory S. Sutter Key fingerprint = D161 E4EA 4BFA 2427 F3F9 Gregory S. Sutter Gregory S. Sutter Gregory S. Sutter 2048g/0A37BBCE 2000-10-10 <gsutter@zer0.org> 5B1F 2015 31D5 845D FEDD <gsutter@freebsd.org> <gsutter@daemonnews.org> <gsutter@pobox.com>

D.3.276. Koichi Suzuki <metal@FreeBSD.org>


pub sub 1024D/AE562682 2004-05-23 SUZUKI Koichi <metal@FreeBSD.org> Key fingerprint = 92B9 A202 B5AB 8CB6 89FC 6DD1 5737 C702 AE56 2682 4096g/730E604B 2004-05-23

D.3.277. Ryusuke SUZUKI <ryusuke@FreeBSD.org>


pub uid uid sub 1024D/63D29724 2009-12-18 Key fingerprint = B108 7109 2E62 BECB 0F78 FE65 1B9A D1BE 63D2 9724 Ryusuke SUZUKI <ryusuke@FreeBSD.org> Ryusuke SUZUKI <ryusuke@jp.FreeBSD.org> 1024g/5E4DD044 2009-12-18

D.3.278. Gary W. Swearingen <garys@FreeBSD.org>


pub uid sub 1024D/FAA48AD5 2005-08-22 [expires: 2007-08-22] Key fingerprint = 8292 CC3E 81B5 E54F E3DD F987 FA52 E643 FAA4 8AD5 Gary W. Swearingen <garys@freebsd.org> 2048g/E34C3CA0 2005-08-22 [expires: 2007-08-22]

1080

Fggelk D. PGP-kulcsok

D.3.279. Yoshihiro Takahashi <nyan@FreeBSD.org>


pub uid uid sub 1024D/8394B81F 2001-10-15 Yoshihiro TAKAHASHI <nyan@jp.FreeBSD.org> Key fingerprint = D4FA D8CA 2AED FCF4 90A3 3569 8666 0500 8394 B81F Yoshihiro TAKAHASHI <nyan@furiru.org> Yoshihiro TAKAHASHI <nyan@FreeBSD.org> 1024g/B796F020 2001-10-15

D.3.280. Sahil Tandon <sahil@FreeBSD.org>


pub uid uid sub 2048R/C016D977 2010-04-08 Key fingerprint = 6AD2 BA99 8E3A 8DA6 DFC1 53CF DBD0 6001 C016 D977 Sahil Tandon <sahil@tandon.net> Sahil Tandon <sahil@FreeBSD.org> 2048R/F7776FBC 2010-04-08

D.3.281. TAKATSU Tomonari <tota@FreeBSD.org>


pub uid sub 1024D/67F58F29 2009-05-17 Key fingerprint = 6940 B575 FC4A FA26 C094 279A 4B9B 6326 67F5 8F29 TAKATSU Tomonari <tota@FreeBSD.org> 2048g/18B112CD 2009-05-17

D.3.282. Romain Tartire <romain@FreeBSD.org>


pub uid uid sub sub 3072R/5112336F 2010-04-09 Key fingerprint = 8234 9A78 E7C0 B807 0B59 80FF BA4D 1D95 5112 336F Romain Tartire <romain@blogreen.org> Romain Tartire (FreeBSD) <romain@FreeBSD.org> 3072R/C1B2B656 2010-04-09 3072R/8F8125F4 2010-04-09

D.3.283. Sylvio Cesar Teixeira <sylvio@FreeBSD.org>


pub uid sub 2048R/AA7395A1 2009-10-28 Key fingerprint = B319 6AAF 0016 4308 6D93 E652 3C5F 21A2 AA73 95A1 Sylvio Cesar Teixeira (My key) <sylvio@FreeBSD.org> 2048R/F758F556 2009-10-28

1081

Fggelk D. PGP-kulcsok

D.3.284. Ion-Mihai Tetcu <itetcu@FreeBSD.org>


pub uid sub 1024D/21FFA1E5 2008-05-08 [expires: 2010-05-08] Key fingerprint = A880 42DD BD71 BAA5 AED7 AEA2 27B1 88BA 21FF A1E5 Ion-Mihai "IOnut" Tetcu <itetcu@FreeBSD.org> 2048g/0B30E680 2008-05-08 [expires: 2010-05-08]

D.3.285. Mikhail Teterin <mi@FreeBSD.org>


pub 1024R/3FC71479 1995-09-08 Mikhail Teterin <mi@aldan.star89.galstar.com> Key fingerprint = 5F 15 EA 78 A5 40 6A 0F 14 D7 D9 EA 6E 2B DA A4

D.3.286. Gordon Tetlow <gordon@FreeBSD.org>


pub uid sub 1024D/357D65FB 2002-05-14 Gordon Tetlow <gordont@gnf.org> Key fingerprint = 34EF AD12 10AF 560E C3AE CE55 46ED ADF4 357D 65FB Gordon Tetlow <gordon@FreeBSD.org> 1024g/243694AB 2002-05-14

D.3.287. Lars Thegler <lth@FreeBSD.org>


pub uid sub 1024D/56B0CA08 2004-05-31 Lars Thegler <lth@FreeBSD.org> Key fingerprint = ABAE F98C EA78 1C8D 6FDD CB27 1CA9 5A63 56B0 CA08 Lars Thegler <lars@thegler.dk> 1024g/E8C58EF3 2004-05-31

D.3.288. David Thiel <lx@FreeBSD.org>


pub uid sub 1024D/A887A9B4 2006-11-30 [expires: 2011-11-29] Key fingerprint = F08F 6A12 738F C9DF 51AC 8C62 1E30 7CBE A887 A9B4 David Thiel <lx@FreeBSD.org> 2048g/B9BD92C5 2006-11-30 [expires: 2011-11-29]

D.3.289. Fabien Thomas <fabient@FreeBSD.org>


pub uid sub 1024D/07745930 2009-03-16 Key fingerprint = D8AC EFA2 2FBD 7788 9628 4E8D 3F35 3B88 0774 5930 Fabien Thomas <fabient@FreeBSD.org> 2048g/BC173395 2009-03-16

1082

Fggelk D. PGP-kulcsok

D.3.290. Thierry Thomas <thierry@FreeBSD.org>


pub uid uid uid sub sub 1024D/C71405A2 1997-10-11 Key fingerprint = 3BB8 F358 C2F1 776C 65C9 AE51 73DE 698C C714 05A2 Thierry Thomas <thierry@pompo.net> Thierry Thomas <tthomas@mail.dotcom.fr> Thierry Thomas (FreeBSD committer) <thierry@FreeBSD.org> 1024R/C5529925 2003-11-26 2048g/05CF3992 2008-02-05

D.3.291. Andrew Thompson <thompsa@FreeBSD.org>


pub uid uid sub 1024D/BC6B839B 2005-05-05 Key fingerprint = DE74 3F49 B97C A170 C8F1 8423 CAB6 9D57 BC6B 839B Andrew Thompson <thompsa@freebsd.org> Andrew Thompson <andy@fud.org.nz> 2048g/92E370FB 2005-05-05

D.3.292. Florent Thoumie <flz@FreeBSD.org>


pub uid uid uid uid sub 1024D/5147DCF4 2004-12-04 Key fingerprint = D203 AF5F F31A 63E2 BFD5 742B 3311 246D 5147 DCF4 Florent Thoumie (FreeBSD committer address) <flz@FreeBSD.org> Florent Thoumie (flz) <florent@thoumie.net> Florent Thoumie (flz) <flz@xbsd.org> [jpeg image of size 1796] 2048g/15D930B9 2004-12-04

D.3.293. Yar Tikhiy <yar@FreeBSD.org>


pub uid sub 1024D/EA04CF5A 2008-08-31 Key fingerprint = C063 6788 AFF2 A62F 06B7 516D 200F 06AF EA04 CF5A Yar Tikhiy <yar@freebsd.org> 2048g/20443F06 2008-08-31

D.3.294. Jilles Tjoelker <jilles@FreeBSD.org>


pub uid uid uid sub 1024D/A813D5EE 2001-02-18 Key fingerprint = 0C82 44F5 0A1B 84E4 A9DD 7032 5102 275F A813 D5EE Jilles Tjoelker <jilles@stack.nl> Jilles Tjoelker <tjoelker@zonnet.nl> Jilles Tjoelker (FreeBSD) <jilles@FreeBSD.org> 2048g/B94834AC 2001-02-18

1083

Fggelk D. PGP-kulcsok

D.3.295. Ganbold Tsagaankhuu <ganbold@FreeBSD.org>


pub uid sub 1024D/78F6425E 2008-02-26 [expires: 2013-02-24] Key fingerprint = 9B8E DC41 D3F4 F7FC D8EA 417C D4F7 2AEF 78F6 425E Ganbold <ganbold@freebsd.org> 2048g/716FCBF9 2008-02-26 [expires: 2013-02-24]

D.3.296. Michael Tuexen <tuexen@FreeBSD.org>


pub uid sub 1024D/04EEDABE 2009-06-08 Key fingerprint = 493A CCB8 60E6 5510 A01D 360E 8497 B854 04EE DABE Michael Tuexen <tuexen@FreeBSD.org> 2048g/F653AA03 2009-06-08

D.3.297. Hajimu UMEMOTO <ume@FreeBSD.org>


pub uid uid uid sub 1024D/BF9071FE 2005-03-17 Key fingerprint = 1F00 0B9E 2164 70FC 6DC5 BF5F 04E9 F086 BF90 71FE Hajimu UMEMOTO <ume@mahoroba.org> Hajimu UMEMOTO <ume@FreeBSD.org> Hajimu UMEMOTO <ume@jp.FreeBSD.org> 2048g/748DB3B0 2005-03-17

D.3.298. Stephan Uphoff <ups@FreeBSD.org>


pub uid sub 2048R/D684B04A 2004-10-06 Stephan Uphoff <ups@freebsd.org> Key fingerprint = B5D2 04AE CA8F 7055 7474 3C85 F908 7F55 D684 B04A Stephan Uphoff <ups@tree.com> 2048R/A15F921B 2004-10-06

D.3.299. Jacques Vidrine <nectar@FreeBSD.org>


pub uid uid uid uid uid pub uid uid uid 2048R/33C1627B 2001-07-05 Jacques A. Vidrine <nectar@celabo.org> Key fingerprint = CB CE 7D A0 6E 01 DC 61 E5 91 0A BE 79 17 D3 82 Jacques A. Vidrine <jvidrine@verio.net> Jacques A. Vidrine <n@nectar.com> Jacques A. Vidrine <jacques@vidrine.cc> Jacques A. Vidrine <nectar@FreeBSD.org> Jacques A. Vidrine <n@nectar.cc> 1024D/1606DB95 2001-07-05 Jacques A. Vidrine <nectar@celabo.org> Key fingerprint = 46BC EA5B F70A CC81 5332 0832 8C32 8CFF 1606 DB95 Jacques A. Vidrine <jvidrine@verio.net> Jacques A. Vidrine <n@nectar.com> Jacques A. Vidrine <jacques@vidrine.cc>

1084

Fggelk D. PGP-kulcsok
uid uid sub Jacques A. Vidrine <nectar@FreeBSD.org> Jacques A. Vidrine <n@nectar.cc> 2048g/57EDEA6F 2001-07-05

D.3.300. Alberto Villa <avilla@FreeBSD.org>


pub uid sub 1024R/44350A8B 2010-01-24 Key fingerprint = F740 CE4E EDDD DA9B 4A1B 1445 DF18 82EA 4435 0A8B Alberto Villa <avilla@FreeBSD.org> 1024R/F7C8254C 2010-01-24

D.3.301. Nicola Vitale <nivit@FreeBSD.org>


pub uid sub 1024D/F11699E5 2006-12-05 Key fingerprint = 2C17 C591 2C6D 82BD F3DB F1BF 8FC9 6763 F116 99E5 Nicola Vitale (Public key for nivit@FreeBSD.org) <nivit@FreeBSD.org> 2048g/4C90805D 2006-12-05

D.3.302. Ivan Voras <ivoras@FreeBSD.org>


pub uid uid uid uid uid uid uid uid uid sub 1024D/569C05C8 2000-05-24 Key fingerprint = AB9A A555 C47C B61D BF83 154C 95D9 C041 569C 05C8 Ivan Voras <ivoras@fer.hr> Ivan Voras <ivan.voras@fer.hr> Ivan Voras <ivoras@geri.cc.fer.hr> [jpeg image of size 4567] Ivan Voras <ivoras@sharanet.org> Ivan Voras <ivoras@gmail.com> Ivan Voras <ivoras@yahoo.com> Ivan Voras <ivoras@freebsd.org> Ivan Voras <ivan.voras@zg.t-com.hr> 1536g/149FDD60 2000-05-24

D.3.303. Stefan Walter <stefan@FreeBSD.org>


pub uid uid sub 3072R/12B9E0B3 2003-03-06 Key fingerprint = 85D8 6A49 22C7 6CD9 B011 5D6A 5691 111B 12B9 E0B3 Stefan Walter <stefan@freebsd.org> Stefan Walter <sw@gegenunendlich.de> 3072R/6D35457A 2003-03-06

1085

Fggelk D. PGP-kulcsok

D.3.304. Kai Wang <kaiw@FreeBSD.org>


pub uid uid uid uid sub 1024D/AEB910EB 2006-09-27 Key fingerprint = 3534 10A3 F143 B760 EF3E BEDF 8509 6A06 AEB9 10EB Kai Wang <kaiw@FreeBSD.org> Kai Wang <kaiw@student.chalmers.se> Kai Wang <kaiwang27@gmail.com> Kai Wang <kaiw27@gmail.com> 2048g/1D5AA4DD 2006-09-27

D.3.305. Adam Weinberger <adamw@FreeBSD.org>


pub sub 1024D/42C743FD 2002-10-12 Adam Weinberger <adam@vectors.cx> Key fingerprint = A980 3F2E 80A8 9619 9D1C 82E8 A3C2 8CD9 42C7 43FD 1024g/15D67628 2002-10-12

D.3.306. Peter Wemm <peter@FreeBSD.org>


pub uid sub pub uid uid 1024D/7277717F 2003-12-14 Peter Wemm <peter@wemm.org> Key fingerprint = 622B 2282 E92B 3BAB 57D1 A417 1512 AE52 7277 717F Peter Wemm <peter@FreeBSD.ORG> 1024g/8B40D9D1 2003-12-14 1024R/D89CE319 1995-04-02 Peter Wemm <peter@netplex.com.au> Key fingerprint = 47 05 04 CA 4C EE F8 93 F6 DB 02 92 6D F5 58 8A Peter Wemm <peter@perth.dialix.oz.au> Peter Wemm <peter@haywire.dialix.com>

D.3.307. Nathan Whitehorn <nwhitehorn@FreeBSD.org>


pub uid uid uid uid sub 1024D/FC118258 2008-07-03 Key fingerprint = A399 BEA0 8D2B 63B3 47B5 056D 8513 5B96 FC11 8258 Nathan Whitehorn <nwhitehorn@freebsd.org> Nathan Whitehorn <nwhitehorn@icecube.wisc.edu> Nathan Whitehorn <nwhitehorn@physics.wisc.edu> Nathan Whitehorn <whitehorn@wisc.edu> 2048g/EDB55363 2008-07-03

D.3.308. Martin Wilke <miwi@FreeBSD.org>


pub uid sub 1024D/B1E6FCE9 2009-01-31 Key fingerprint = C022 7D60 F598 8188 2635 0F6E 74B2 4884 B1E6 FCE9 Martin Wilke <miwi@FreeBSD.org> 4096g/096DA69D 2009-01-31

1086

Fggelk D. PGP-kulcsok

D.3.309. Nate Williams <nate@FreeBSD.org>


pub sub 1024D/C2AC6BA4 2002-01-28 Nate Williams (FreeBSD) <nate@FreeBSD.org> Key fingerprint = 8EE8 5E72 8A94 51FA EA68 E001 FFF9 8AA9 C2AC 6BA4 1024g/03EE46D2 2002-01-28

D.3.310. Thomas Wintergerst <twinterg@FreeBSD.org>


pub uid uid uid uid uid sub sub sub 1024D/C45CB978 2006-01-08 Key fingerprint = 04EE 8114 7C6D 22CE CDC8 D7F8 112D 01DB C45C B978 Thomas Wintergerst <twinterg@gmx.de> Thomas Wintergerst <twinterg@freebsd.org> Thomas Wintergerst Thomas Wintergerst <thomas.wintergerst@nord-com.net> Thomas Wintergerst <thomas.wintergerst@materna.de> 2048g/3BEBEF8A 2006-01-08 1024D/8F631374 2006-01-08 2048g/34F631DC 2006-01-08

D.3.311. Garrett Wollman <wollman@FreeBSD.org>


pub sub 1024D/0B92FAEA 2000-01-20 Garrett Wollman <wollman@FreeBSD.org> Key fingerprint = 4627 19AF 4649 31BF DE2E 3C66 3ECF 741B 0B92 FAEA 1024g/90D5EBC2 2000-01-20

D.3.312. Jrg Wunsch <joerg@FreeBSD.org>


pub pub uid uid uid sub 1024D/69A85873 2001-12-11 Joerg Wunsch <j@uriah.heep.sax.de> Key fingerprint = 5E84 F980 C3CA FD4B B584 1070 F48C A81B 69A8 5873 1024D/69A85873 2001-12-11 Joerg Wunsch <j@uriah.heep.sax.de> Joerg Wunsch <joerg_wunsch@interface-systems.de> Joerg Wunsch <joerg@FreeBSD.org> Joerg Wunsch <j@ida.interface-business.de> 1024g/21DC9924 2001-12-11

D.3.313. David Xu <davidxu@FreeBSD.org>


pub uid sub 1024D/48F2BDAB 2006-07-13 [expires: 2009-07-12] Key fingerprint = 7182 434F 8809 A4AF 9AE8 F1B5 12F6 3390 48F2 BDAB David Xu <davidxu@freebsd.org> 4096g/ED7DB38A 2006-07-13 [expires: 2009-07-12]

1087

Fggelk D. PGP-kulcsok

D.3.314. Maksim Yevmenkin <emax@FreeBSD.org>


pub 1024D/F050D2DD 2003-10-01 Maksim Yevmenkin <m_evmenkin@yahoo.com> Key fingerprint = 8F3F D359 E318 5641 8C81 34AD 791D 53F5 F050 D2DD

D.3.315. Bjoern A. Zeeb <bz@FreeBSD.org>


pub uid uid uid uid sub 1024D/3CCF1842 2007-02-20 Key fingerprint = 1400 3F19 8FEF A3E7 7207 EE8D 2B58 B8F8 3CCF 1842 Bjoern A. Zeeb <bz@zabbadoz.net> Bjoern A. Zeeb <bzeeb@zabbadoz.net> Bjoern A. Zeeb <bz@FreeBSD.org> Bjoern A. Zeeb <bzeeb-lists@lists.zabbadoz.net> 4096g/F36BDC5D 2007-02-20

D.3.316. Alexey Zelkin <phantom@FreeBSD.org>


pub sub 1024D/9196B7D9 2002-01-28 Alexey Zelkin <phantom@FreeBSD.org> Key fingerprint = 4465 F2A4 28C1 C2E4 BB95 1EA0 C70D 4964 9196 B7D9 1024g/E590ABA4 2002-01-28

D.3.317. Sepherosa Ziehau <sephe@FreeBSD.org>


pub uid uid sub 2048R/3E51FB42 2005-10-21 Key fingerprint = 5F47 3861 7ABA 8773 9E32 0474 5C33 841C 3E51 FB42 Sepherosa Ziehau (freebsd) <sephe@freebsd.org> Sepherosa Ziehau (sephe) <sepherosa@gmail.com> 2048R/7AA31321 2005-10-21

1088

A FreeBSD-s szakkifejezsek gyjtemnye


Ebben a szjegyzkben azok a fogalmak s rvidtsek szerepelnek, amelyekkel a FreeBSD-s kzssgen bell s a hozztartoz klnbz lersokban tallkozhatunk.

A
ACL Lsd: Access Control List ACPI Lsd: Advanced Conguration and Power Interface AMD Lsd: Automatic Mount Daemon AML Lsd: ACPI Machine Language API Lsd: Application Programming Interface APIC Lsd: Advanced Programmable Interrupt Controller APM Lsd: Advanced Power Management APOP Lsd: Authenticated Post Ofce Protocol ASL Lsd: ACPI Source Language ATA Lsd: Advanced Technology Attachment ATM Lsd: Asynchronous Transfer Mode ACPI Machine Language Olyan pszeudkd, amit egy ACPI szabvnnyal kompatibilis opercis rendszerben megtallhat virtulis gppel lehet rtelmezni. Feladata a rendelkezsre ll hardveren az opercis rendszer fel dokumentlt fellet kialaktsa.

1089

A FreeBSD-s szakkifejezsek gyjtemnye

ACPI Source Language Az a programozsi nyelv, amiben az AML-kdok rdnak.

Access Control List Egy objektumhoz, pldul egy llomnyhoz vagy hlzati eszkzhz tartoz engedlyeket tartalmaz felsorols.

Advanced Conguration and Power Interface Az a specikci, aminek ksznheten a hardver egy absztrakt felletet kpes nyjtani az opercis rendszer szmra. Ezen a felleten keresztl tudja az opercis rendszer elrni a rendelkezsre ll hardvert annak konkrt ismerete nlkl. Az ACPI a korbban az APM, PNPBIOS s a hozzjuk hasonl megoldsok ltal szolgltatott lehetsgeket igyekszik kiterjeszteni s fellmlni. Ennek keretben lehetsget ad tbbek kzt az energiafogyaszts szablyozsra, az energiatakars md aktivlsra, az eszkzk ki- s bekapcsolsra stb.

Application Programming Interface Eljrsok, protokollok s segdprogramok sszesge, melyek egy vagy tbb programrsz kztt rjk le az ltalnos sszefggseket: hogyan, mikor s mirt kell sszedolgozniuk, illetve milyen adatokat osszanak meg egyms kztt vagy milyen adatokkal dolgozzanak.

Advanced Power Management Egy olyan API, amely lehetv teszi az opercis rendszer szmra, hogy a BIOS-szal egytt energiagazdlkodst tudjon megvalstani. A legtbb esetben azonban mr az APM-et levltotta a sokkal ltalnosabb s kidolgozottabb ACPI specikci.

Advanced Programmable Interrupt Controller

Advanced Technology Attachment

Asynchronous Transfer Mode

Authenticated Post Ofce Protocol

1090

A FreeBSD-s szakkifejezsek gyjtemnye Automatic Mount Daemon Egy olyan dmon, ami nmkden csatlakoztatja az llomnyrendszereket, amikor azokon valamilyen llomnyt vagy knyvtrat el akarunk rni.

B
BAR Lsd: Base Address Register BIND Lsd: Berkeley Internet Name Domain BIOS Lsd: Basic Input/Output System BSD Lsd: Berkeley Software Distribution Base Address Register Egy PCI eszkz cmtartomnynak megadsrt felels regiszterek.

Basic Input/Output System A BIOS meghatrozsa nmileg a krnyezettl is fgg. Egyesek szerint BIOS az a ROM chip, ami a szoftver s hardver kzti kapcsolatot megteremt alapvet rutinokat tartalmazza. Msok szerint viszont azok a chipen trolt rutinok, amelyek a rendszer betltsrt felelsek. De akadnak olyanok is, akik ilyenkor arra a kpernyre gondolnak, amin a rendszer betltsnek folymatt tudjuk belltani. Noha a BIOS leginkbb a PC tpus rendszerekre jellemz, ms esetekben is tallkozhatunk hasonlval.

Berkeley Internet Name Domain A nvfeloldsrt felels DNS protokollok egyik implementcija.

Berkeley Software Distribution A Kaliforniai Egyetem (Berkeley) (http://www.berkeley.edu) szmtgpes rendszerekkel foglalkoz kutatcsoportja (CSRG) ebben foglalta ssze az AT&T 32V UNIX rendszern vgzett vltoztatsait s javtsait. Maga a FreeBSD is ennek az egyik leszrmazottja.

1091

A FreeBSD-s szakkifejezsek gyjtemnye Bikeshed Building A bikeshed building, vagyis a biciklitrol pts az a jelensg, amikor egy egyszerbb tmhoz mindenki hozz akar szlni, mikzben egy sokkal bonyolultabb tmval alig vagy egyltaln nem foglalkoznak. Ennek kialakulsrl rszletesebben a GYIK (http://www.FreeBSD.org/doc/hu_HU.ISO8859-2/books/faq/misc.html#BIKESHED-PAINTING)-ban lehet olvasni.

C
CD Lsd: Carrier Detect CHAP Lsd: Challenge Handshake Authentication Protocol CLIP Lsd: Classical IP over ATM COFF Lsd: Common Object File Format CPU Lsd: Central Processing Unit CTS Lsd: Clear To Send CVS Lsd: Concurrent Versions System Carrier Detect A kommunikcis csatorna ltrejttt jelz RS232C szabvny jel.

Central Processing Unit Msik nevn processzor. Lnyegben ez a szmtgp agya, ahol a klnfle szmtsok trtnnek. Rengeteg klnbz architektrja s utastskszlete lehet. Kzlk a legismertebbek az Intel x86 s annak leszrmazottai, valamint a Sun SPARC, PowerPC s Alpha.

1092

A FreeBSD-s szakkifejezsek gyjtemnye Challenge Handshake Authentication Protocol A felhasznlk hitelestsre hasznlt mdszer, amely a kliens s a szerver kzt megosztott titkos informcikon alapszik.

Classical IP over ATM

Clear To Send A tvoli rendszer szmra a kldst engedlyez RS232C szabvny jel. Lsd mg: Request To Send. Common Object File Format

Concurrent Versions System Egy verzikezel rendszer, aminek hasznlatval egyszerre tbb vltozatot tudunk nyilvntartani s hasznlni adott llomnyokbl. A CVS segtsgvel kpesek vagyunk egy vagy tbb vltoztatst kivonni, sszefslni s visszavonni, valamint nyomon kvethetjk, hogy melyikket ki, mikor s mirt hajtotta vgre.

D
DAC Lsd: Discretionary Access Control DDB Lsd: Debugger DES Lsd: Data Encryption Standard DHCP Lsd: Dynamic Host Conguration Protocol DNS Lsd: Domain Name System DSDT Lsd: Differentiated System Description Table

1093

A FreeBSD-s szakkifejezsek gyjtemnye DSR Lsd: Data Set Ready DTR Lsd: Data Terminal Ready DVMRP Lsd: Distance-Vector Multicast Routing Protocol Discretionary Access Control

Data Encryption Standard Az informci titkostsra sznt mdszer, amelyet ltalban a UNIX-os jelszavak s crypt(3) funkci hasznl.

Data Set Ready Ezt az RS232C szabvny jelet kldi egy modem a szmtgpnknek vagy a terminlunknak, amikor kszen ll az adatok fogadsra s kldsre. Lsd mg: Data Terminal Ready. Data Terminal Ready Ezt az RS232C szabvny jelet kldi szmtgpnk vagy a terminlunk a modemnek, amikor kszen ll az adatok fogadsra s kldsre.

Debugger A rendszermagban megtallhat interaktv nyomkvetsi lehetsg, amin keresztl meg tudjuk vizsglni rendszernk aktulis llapott. Leggyakrabban a rendszer sszeomlsrt felels krlmnyek elemzsben alkalmazzk.

Differentiated System Description Table Egy olyan ACPI tblzat, amely az alaprendszerrl nyjt alapvet kongurcis informcikat.

Distance-Vector Multicast Routing Protocol

Domain Name System Az internetes cmek (pl. levelezes.valami.net) emberek s gpek ltal is olvashat formja kzti lekpezsrt felels rendszer.

1094

A FreeBSD-s szakkifejezsek gyjtemnye

Dynamic Host Conguration Protocol A szmtgpek IP-cmeinek szerveren keresztli dinamikus kiosztsrt felels protokoll. Az gy keletkez cm alap hozzrendelst brletnek (lease) nevezzk.

E
ECOFF Lsd: Extended COFF ELF Lsd: Executable and Linking Format ESP Lsd: Encapsulated Security Payload Encapsulated Security Payload

Executable and Linking Format

Extended COFF

F
FADT Lsd: Fixed ACPI Description Table FAT Lsd: File Allocation Table FAT16 Lsd: File Allocation Table (16-bit)

1095

A FreeBSD-s szakkifejezsek gyjtemnye FTP Lsd: File Transfer Protocol File Allocation Table

File Allocation Table (16-bit)

File Transfer Protocol A TCP felett implementlt magasabb szint protokollok csaldjnak egyik tagja, aminek segtsgvel llomnyokat tudunk tmsolni egy TCP/IP-hlzaton keresztl.

Fixed ACPI Description Table

G
GUI Lsd: Graphical User Interface Giant Annak a klcsns kizrsrt felels megoldsnak (alv (sleep) mutex-nek) a neve, ami a rendszermag erforrsainak jelents rszt vdi. Amikor mg a szmtgpek csupn nhny programot futtattak egyetlen hlzati krtyval s ltalban egyetlen processzoron, akkor mg elegend volt egy egyszerbb zrolsi mechanizmus hasznlata, azonban napjainkban ez mr egy elfogadhatatlanul szk keresztmetszetet kpez. A FreeBSD fejleszti folyamatosan dolgoznak, hogy ezt olyan zrolsokkal vltsk fel, amelyek csak az egyes erforrsokat vdik. Ennek ksznheten sokkal nagyobb fok prhuzamosts rthet el mind az egyprocesszoros mind pedig a tbbprocesszoros rendszerekben egyarnt.

Graphical User Interface Olyan rendszer, ahol a felhasznl s a szmtgp grakus megoldsokon keresztl rintkezik.

1096

A FreeBSD-s szakkifejezsek gyjtemnye

H
HTML Lsd: HyperText Markup Language HUP Lsd: HangUp HangUp

HyperText Markup Language Honlapok ellltsra hasznlt jellnyelv.

I
I/O Lsd: Input/Output IASL Lsd: Intels ASL compiler IMAP Lsd: Internet Message Access Protocol IP Lsd: Internet Protocol IPFW Lsd: IP Firewall IPP Lsd: Internet Printing Protocol IPv4 Lsd: IP Version 4 IPv6 Lsd: IP Version 6 ISP Lsd: Internet Service Provider

1097

A FreeBSD-s szakkifejezsek gyjtemnye IP Firewall

IP Version 4 Az IP protokoll 4-es vltozata, ahol 32 biten adunk meg cmeket. Ez a vltozat mg napjainkban is szles krben alkalmazott, azonban lassanknt felvltja az IPv6. Lsd mg: IP Version 6. IP Version 6 Az j IP protokoll. Azrt alkottk meg, mert az IPv4 ltal felknlt cmtr mr tlsgosan kicsinek bizonyult. 128 bites cmekkel dolgozik.

Input/Output

Intels ASL compiler Az Intel ltal kifejlesztett fordtprogram, amivel ASL-programokat lehet AML-kdra fordtani.

Internet Message Access Protocol A levelez szervereken trolt elektronikus levelek elrsre hasznlt protokoll, aminek egyik fontos jellemzje, hogy az elolvasott leveleket a szerveren tartja s nem tlti le a levelez klienssel. Lsd mg: Post Ofce Protocol Version 3. Internet Printing Protocol

Internet Protocol Csomagok tkldst ler protokoll, amire egsz internet pl. Eredetileg az Egyeslt llamok Vdelmi Minisztriuma szmra kszlt, s a TCP/IP protokollkszlet egyik meghatroz eleme. Enlkl az internet nem nyerte volna el mai alakjt. Rszletesebb informcikrt ld. az RFC 791 (ftp://ftp.rfc-editor.org/in-notes/rfc791.txt).

Internet Service Provider Egy olyan cg, ami lehetsget knl az internet elrsre.

1098

A FreeBSD-s szakkifejezsek gyjtemnye

K
KAME A KAME japnul teknst jelent, de informatikai krkben ezt gyakran a KAME projekttel (http://www.kame.net/) azonostjk, amely az IPv6 implementcijn dolgozik.

KDC Lsd: Key Distribution Center KLD Lsd: Kernel ld(1) KSE Lsd: Kernel Scheduler Entities KVA Lsd: Kernel Virtual Address Kbps Lsd: Kilo Bits Per Second Kernel ld(1) Egy olyan mdszer, aminek segtsgvel a FreeBSD rendszermag funkcionalitst anlkl tudjuk dinamikusan bvteni, hogy a jra kellene indtanunk hozz a rendszernket.

Kernel Scheduler Entities A rendszermag ltal tmogatott szlkezelsi rendszer. Ennek pontosabb rszleteit ld. a hozztartoz projekt honlapjn (http://www.FreeBSD.org/kse).

Kernel Virtual Address

Key Distribution Center

Kilo Bits Per Second A svszlessg (vagyis egy adott id alatt mennyi adatot vagyunk kpesek tkldeni) meghatrozsra hasznlt mrtk. Itt a Kilo helyett mg szerepelhet a Mega, Giga, Tera s gy tovbb.

1099

A FreeBSD-s szakkifejezsek gyjtemnye

L
LAN Lsd: Local Area Network LOR Lsd: Lock Order Reversal LPD Lsd: Line Printer Daemon Line Printer Daemon

Local Area Network Egy viszonylag kis krnyezetben, pldul irodban, otthon stb. hasznlt hlzat.

Lock Order Reversal A FreeBSD rendszermagja az erforrsok megfelel zrolsval igyekszik megosztani azokat. A zrolsi hibk keletkez holtpontok feldertsre a FreeBSD-CURRENT rendszermagokban tallhat (de a kiadsokbl mr eltvoltott) egy zrolsokat ellenrz futs idej rendszer, aminek a neve witness(4). (A witness(4) jelen pillanatban kiss mg szigor, ezrt elfordulhat, hogy vakriasztst ad.) A tle szrmaz vals jelentsekben olvashatjuk, hogy ha prul jrtunk volna, akkor most itt lett volna egy holtpont. Az ilyen hibkat ltalban gyorsan kijavtjk, ezrt mieltt egy ilyen hibt bekldennk, nzznk szt a http://lists.FreeBSD.org/mailman/listinfo/freebsd-current cmen s az szlelt LOR-ok (http://sources.zabbadoz.net/freebsd/lor.html) honlapjn.

M
MAC Lsd: Mandatory Access Control MADT Lsd: Multiple APIC Description Table MFC Lsd: Merge From Current MFP4 Lsd: Merge From Perforce

1100

A FreeBSD-s szakkifejezsek gyjtemnye MFS Lsd: Merge From Stable MIT Lsd: Massachusetts Institute of Technology MLS Lsd: Multi-Level Security MOTD Lsd: Message Of The Day MTA Lsd: Mail Transfer Agent MUA Lsd: Mail User Agent Mail Transfer Agent A levelek tovbbtsra hasznlt alkalmazs, melyek a BSD alaprendszerekben mr rgta megtallhatak. Kzlk manapsg a Sendmail szerepel itt, de rajta kvl mg tbb ms MTA is ltezik, mint pldul a postx, qmail s az Exim.

Mail User Agent Az elektronikus levelek megjelentsre s rsra alkalmas alkalmazs.

Mandatory Access Control

Massachusetts Institute of Technology

Merge From Current A -CURRENT gbl szrmaz valamelyik funkcionalits vagy mdosts beolvasztsa egy msik gba, ami a legtbb esetben a -STABLE.

Merge From Perforce A Perforce repository-bl szrmaz funkcionalits vagy mdosts beolvasztsa a -CURRENT gba. Lsd mg: Perforce.

1101

A FreeBSD-s szakkifejezsek gyjtemnye Merge From Stable A FreeBSD fejlesztsnek megszokott menete szerint egy vltoztats elszr a -CURRENT gba kerl be tesztelsre, majd csak ezt kveten a -STABLE gba. Esetenknt azonban elfordul, hogy egy vltoztats elszr a -STABLE gba kerl, majd csak ezutn a -CURRENT gba. Ezt a kifejezst hasznljuk abban az esetben is, amikor egy mdostst a -STABLE gbl olvasztunk be a biztonsgi javtsokat tartalmaz gba. Lsd mg: Merge From Current. Message Of The Day ltalban a bejelentkezskor megjelen zenet, amiben valamilyen informcit tovbbtunk a rendszer felhasznli szmra.

Multi-Level Security

Multiple APIC Description Table

N
NAT Lsd: Network Address Translation NDISulator Lsd: Project Evil NFS Lsd: Network File System NTFS Lsd: New Technology File System NTP Lsd: Network Time Protocol Network Address Translation Egy olyan technikai megolds, amelynek hasznlata sorn az tjrn keresztl halad IP-csomagok informcit mdostjk, s ezltal lehetv teszik az tjr mgtt lev gpek szmra, hogy hatkonyan osztozzanak egyetlen IP-cmen.

1102

A FreeBSD-s szakkifejezsek gyjtemnye Network File System

New Technology File System A Microsoft ltal kidolgozott llomnyrendszer, ami ltaluk fejlesztett j technolgij opercis rendszerekben rhet el, teht pldul a Windows 2000, Windows NT s Windows XP rendszerekben.

Network Time Protocol A szmtgpek rinak hlzaton keresztli egyeztetsnek egyik mdszere.

O
OBE Lsd: Overtaken By Events ODMR Lsd: On-Demand Mail Relay OS Lsd: Operating System On-Demand Mail Relay

Operating System Programok, fggvnyknyvtrak s segdprogramok sszesge, amelyeken keresztl hozz tudunk frni a szmtgpben tallhat hardverek ltal felknlt erforrsokhoz. Napjaink opercis rendszerei egszen az egy idben egyetlen programot futtatni s egyetlen eszkzt elrni kpes rendszerektl a tbbfelhasznls, tbbfeladatos s egyszerre tbb programot is futtatni tud, tbbezer, egyenknt klnbz alkalmazsokat futtat felhasznlt kiszolgl rendszerekig terjedhet.

Overtaken By Events Olyan javasolt vltoztatsra (hibajelentsre vagy egy j funkci ignylsre) utal, ami a legfrissebb vltoztatsok, pldul a FreeBSD hlzati szabvnyainak megvltozsa, az adott hardver elavulsa stb. kvetkeztben mr nem lnyeges vagy nem rvnyes.

1103

A FreeBSD-s szakkifejezsek gyjtemnye

P
p4 Lsd: Perforce PAE Lsd: Physical Address Extensions PAM Lsd: Pluggable Authentication Modules PAP Lsd: Password Authentication Protocol PC Lsd: Personal Computer PCNSFD Lsd: Personal Computer Network File System Daemon PDF Lsd: Portable Document Format PID Lsd: Process ID POLA Lsd: Principle Of Least Astonishment POP Lsd: Post Ofce Protocol POP3 Lsd: Post Ofce Protocol Version 3 PPD Lsd: PostScript Printer Description PPP Lsd: Point-to-Point Protocol PPPoA Lsd: PPP over ATM PPPoE Lsd: PPP over Ethernet

1104

A FreeBSD-s szakkifejezsek gyjtemnye PPP over ATM

PPP over Ethernet

PR Lsd: Problem Report PXE Lsd: Preboot eXecution Environment Password Authentication Protocol

Perforce A Perforce Software (http://www.perforce.com/) ltal fejlesztett forrskdkezel termk, ami a CVS-nl jval tbb lehetsget knl. Annak ellenre, hogy nem nylt forrskd, hasznlata ingyenes olyan nylt forrskd projektek szmra, mint amilyen a FreeBSD. Egyes FreeBSD fejlesztk a Perforce repository-ban dolgoznak olyan kdokkal, amelyek hasznlata a -CURRENT gban tlsgosan kockzatos lenne.

Personal Computer

Personal Computer Network File System Daemon

Physical Address Extensions Egy olyan mdszer, aminek segtsgvel egszen 64 GB-nyi kzponti memrit tudunk elrni azokon a rendszereken, amelyek zikailag csak 32 bites cmtrrel rendelkeznek (s ezltal a PAE nlkl csak 4 GB memrit kpesek hasznlni).

Pluggable Authentication Modules

Point-to-Point Protocol

1105

A FreeBSD-s szakkifejezsek gyjtemnye Pointy Hat Egy misztikus eredet fejreval, ami leginkbb a szamrfles sapkhoz hasonlthat, s minden olyan FreeBSD committer jutalma, aki miatt nem fordul a rendszer, visszafele halad a verzik szmozsa, vagy brmilyen egyb puszttst vgez a forrsok kztt. Az gyetlenebb committerek szp szmmal be tudnak ilyeneket gyjteni. Tbbnyire (csak?) humoros rtelemben hasznljk.

Portable Document Format

Post Ofce Protocol Lsd mg: Post Ofce Protocol Version 3. Post Ofce Protocol Version 3 A levelez szerverken trolt elektronikus levelek elrsre hasznlatos protokoll, aminek egyik fontos jellemzje, hogy az elolvasand leveleket a levelez kliens letlti, nem pedig a szerveren hagyja. Lsd mg: Internet Message Access Protocol. PostScript Printer Description

Preboot eXecution Environment

Principle Of Least Astonishment A FreeBSD fejldse sorn igyekezni kell elkerlni a felhasznlk el trt hirtelen vltoztatsokat. Pldul az /etc/defaults/rc.conf llomnyban tallhat, rendszerindtsrt felels vltozk trendezse srti a legkisebb meglepets elvt (POLA). A fejlesztknek teht gyelembe kell vennik ezt az elvet, amikor a felhasznlk szmra is szlelhet vltoztatsokat hoznak ltre.

Problem Report A FreeBSD forrsban vagy dokumentcijban tallt hiba lersa. Errl bvebben ld. a FreeBSD hibajelentsek rsa (http://www.FreeBSD.org/doc/hu_HU.ISO8859-2/articles/problem-reports/index.html) cm cikket (angolul).

Process ID A rendszerben egy adott fut programot egyrtelmen azonost szm, amivel hivatkozni tudunk r s mveleteket vgrehajtani vele.

1106

A FreeBSD-s szakkifejezsek gyjtemnye Project Evil A Bill Paul ltal ksztett NDISulator munkacme, amivel a szerz elssorban arra szeretett volna (lozai szemszgbl) utalni, hogy milyen szrnysget kellett mvelnie. Az NDISulator egy olyan specilis kompatibilitsi modul, aminek rvn a FreeBSD/i386 vltozatban kpesek vagyunk a Microsoft Windows;trade; NDIS miniport hlzati meghajtit. ltalban csak ez az egyetlen mdja a zrt forrskd meghajtkkal rendelkez krtyk hasznlatnak. Ld. src/sys/compat/ndis/subr_ndis.c.

R
RA Lsd: Router Advertisement RAID Lsd: Redundant Array of Inexpensive Disks RAM Lsd: Random Access Memory RD Lsd: Received Data RFC Lsd: Request For Comments RISC Lsd: Reduced Instruction Set Computer RPC Lsd: Remote Procedure Call RS232C Lsd: Recommended Standard 232C RTS Lsd: Request To Send Random Access Memory

Revision Control System A Revision Control System (RCS) azon egyik legrgebbi szoftverek egyike, amelyek egyszer llomnyok esetn megvalstanak valamilyen verzikvetst. Segtsgvel llomnyok klnbz vltozatait tudjuk

1107

A FreeBSD-s szakkifejezsek gyjtemnye trolni, visszatlteni, archivlni, naplzni, azonostani s sszefslni. Az RCS tbb egymssal egyttmkd apr segdprogram sszesge. Tudsa tbb tekintetben is alulmarad a mai modern verzikvet rendszerekhez, mint pldul a CVS-hez vagy a Subversionhz kpest, azonban kevs llomny esetn nagyon egyszeren telepthet, kongurlhat s hasznlhat. Az RCS valamilyen vltozata minden fontosabb UNIX-szer opercis rendszerben megtallhat.

Received Data Az az RS232C szabvny t vagy vezetk, amin keresztl az adat rkezik. Lsd mg: Transmitted Data. Recommended Standard 232C A soros vonali eszkzk kzti kommunikcit ler szabvny.

Reduced Instruction Set Computer Olyan megkzelts a processzorok tervezsben, ahol a hardver ltal vgezhet mveletek ugyan leegyszerstettek, de a lehet legjobban ltalnostottak. Ezzel cskkenthet az energiafogyaszts, kevesebb tranzisztorra van szksg s egyes esetekben akr nagyobb teljestmnyt s megnvekedett kdsrsget is eredmnyezhet. RISC processzorok pldul az Alpha, SPARC, ARM s PowerPC.

Redundant Array of Inexpensive Disks

Remote Procedure Call

repocopy Lsd: Repository Copy Repository Copy llomnyok kzvetlen msolsa a CVS repository-n bell. Repocopy nlkl a committer csak gy tudn a repository egyik rszbl a msikra thelyezni az llomnyokat, ha elszr a cvs add paranccsal felvenn ezeket az j helyre, majd a cvs rm paranccsal trln a rgi helyrl. Ennek a megoldsnak egyik htrnya, hogy az llomnyokhoz tartoz elzmnyek (teht a CVS naplkban szerep bejegyzsek) ilyenkor nem msoldnak t az j helyre. Mivel a FreeBSD projekt ezeket viszont nagyon fontosnak tartja, ezrt ehelyett gyakran a repository copy mdszert alkalmazzk. Ennek folyamn a repository-k karbantartsrt felels tagok (repository meisterek) fogjk a cvs(1) hasznlata helyett tmsolni az llomnyokat, kzvetlenl a repository-n bell.

1108

A FreeBSD-s szakkifejezsek gyjtemnye Request For Comments Az internet mkdshez kapcsold szabvnyok, protokollok s egyebek lerst tartalmaz dokumentumok. Ld. www.rfc-editor.org (http://www.rfc-editor.org/). Gyakran viszont abban az rtelemben is hasznljk, amikor valaki szeretn kikrni a vlemnyt egy ltala javasolt mdostsrl.

Request To Send Egy RS232C szabvny jel, amivel megkrjk a tvoli rendszert az adatok tkldsnek megkezdsre. Lsd mg: Clear To Send. Router Advertisement

S
SCI Lsd: System Control Interrupt SCSI Lsd: Small Computer System Interface SG Lsd: Signal Ground SMB Lsd: Server Message Block SMP Lsd: Symmetric MultiProcessor SMTP Lsd: Simple Mail Transfer Protocol SMTP AUTH Lsd: SMTP Authentication SSH Lsd: Secure Shell STR Lsd: Suspend To RAM

1109

A FreeBSD-s szakkifejezsek gyjtemnye SVN Lsd: Subversion SMTP Authentication

Server Message Block

Signal Ground Egy RS232 szabvny t vagy vezetk, ami a jelek szmra a referencia fldet adja.

Simple Mail Transfer Protocol

Secure Shell

Small Computer System Interface

Subversion A Subversion egy CVS-hez hasonl verzikezel rendszer, nmileg bvebb tudssal. Lsd mg: Concurrent Versions System. Suspend To RAM

Symmetric MultiProcessor

System Control Interrupt

1110

A FreeBSD-s szakkifejezsek gyjtemnye

T
TCP Lsd: Transmission Control Protocol TCP/IP Lsd: Transmission Control Protocol/Internet Protocol TD Lsd: Transmitted Data TFTP Lsd: Trivial FTP TGT Lsd: Ticket-Granting Ticket TSC Lsd: Time Stamp Counter Ticket-Granting Ticket

Time Stamp Counter A modern Pentium processzorokban megtallhat precz bels szmll, amely a mag frekvencijval rkez rajeleket szmolja.

Transmission Control Protocol (Pldul) Az IP protokoll felett l protokoll, amely garantlja, hogy a csomagok megbzhat, sorbarendezett mdon jutnak el a cljukba.

Transmission Control Protocol/Internet Protocol Az IP protokoll s felette fut TCP protokoll kombincijra utal fogalom. Az internet legnagyobb rsze a TCP/IP protokollon keresztl mkdik.

Transmitted Data Egy RS232C szabvny t vagy vezetk, amin keresztl az adat tkldsre kerl. Lsd mg: Received Data.

1111

A FreeBSD-s szakkifejezsek gyjtemnye Trivial FTP

U
UDP Lsd: User Datagram Protocol UFS1 Lsd: Unix File System Version 1 UFS2 Lsd: Unix File System Version 2 UID Lsd: User ID URL Lsd: Uniform Resource Locator USB Lsd: Universal Serial Bus Uniform Resource Locator Az interneten tallhat erforrsok, pldul dokumentumok helynek meghatrozsra s azonostsra alkalmas mdszer.

Unix File System Version 1 Az eredeti UNIX llomnyrendszer, amelyet gyakran Berkeley Fast File Systemnek neveznek.

Unix File System Version 2 Az UFS1 FreeBSD 5-CURRENT vltozatban megjelent kiegsztse. Az UFS2 klnbz kiegsztseket, s 64 bites blokkmutatkat tartalmaz (gy lehetv teszi az 1 TB-os hatr tlpst), valamint kibvtett llomnytrolst tesz lehetv.

Universal Serial Bus Klnfle szmtgpes perifrikat egy univerzlis interfszen keresztl sszekapcsol hardveres szabvny.

1112

A FreeBSD-s szakkifejezsek gyjtemnye User ID A szmtgp minden egyes felhasznlja szmra kiosztott egyedi azonostszm, aminek segtsgvel a az erforrsok s engedlyek egyrtelmen hozzjuk kapcsolhatak.

User Datagram Protocol TCP/IP hlzatokban adatkommunikcira hasznlhat egyszer, nem megbzhat, datagram alap protokoll. Az UDP nem tartalmaz a TCP-hez hasonl hibarzkelst s -javtst.

V
VPN Lsd: Virtual Private Network Virtual Private Network Helyi, pldul egy vllalati hlzat, valamilyen publikus hrkzlsi eszkzn, pldul interneten keresztli tvoli elrsre alkalmas mdszer.

1113

Trgymutat
Symbols
-CURRENT, 634 fordtsa, 637 frissts CVSuppal, 636 frissts CTM-mel, 636 hasznlata, 636 -STABLE, 634, 637 fordtsa, 638 frissts CVSuppal, 638 frissts CTM-mel, 638 hasznlata, 638 .k5login, 407 .k5users, 407 .rhosts, 505 /boot/kernel.old, 204 /etc, 316 /etc/gettytab, 675 /etc/groups, 375 /etc/login.conf, 372 /etc/mail/access, 733 /etc/mail/aliases, 733 /etc/mail/local-host-names, 733 /etc/mail/mailer.conf, 733 /etc/mail/mailertable, 733 /etc/mail/sendmail.cf, 733 /etc/mail/virtusertable, 733 /etc/remote, 682 /etc/ttys, 677 /usr, 316 /usr/bin/login, 675 /usr/local/etc, 318 /usr/share/skel, 368 /var, 316 10 Base 2, 918 10 Base T, 919 386BSD, 4, 8 386BSD Patchkit, 4 4.3BSD-Lite, 5 4.4BSD-Lite, 1, 2 802.11 (Lsd vezetk nlkli hlzatok) llomnyok engedlyei, 98 llomnyrendszerek, 538

csatlakoztats, 113 csatlakoztats az fstab llomnnyal, 112 HFS, 487 ISO 9660, 487, 487 Joliet, 487 levlaszts, 114 pillanatkpek, 514 llomnyszerver UNIX kliensek, 763 windowszos kliensek, 810 tjr, 864 lsimtott betk, 154 tvonalterjeds, 870 tvlaszts, 864 tvlaszt, 867, 899

A
a Biba srtetlensgi MAC-hzirend, 459 a csatolfelletek elfojtsa MAC-hzirend, 454 a FreeBSD biztonsgi gyelmeztetsei, 428 a fut programok felosztst megvalst MAC-hzirend, 456 a fut programok nyilvntartsa, 431 A GEOM lemezrendszer (Lsd GEOM) a lapozllomny mrete, 317 a lapozllomny partcija, 317 a LOMAC MAC-hzirend, 460 a MAC belltsainak kiprblsa, 464 a Nagios elzrsa a MAC rendszerrel, 461 a rendszer belltsa, 316 a rendszer nomhangolsa, 316 a rendszermag belltsai SCSI_DELAY, 338 a rendszermag belltsai device pf, 822 device pog, 822 device pfsync, 822 IPDIVERT, 846 IPFILTER, 826 IPFILTER_DEFAULT_BLOCK, 826 IPFILTER_LOG, 826 IPFIREWALL, 845 IPFIREWALL_DEFAULT_TO_ACCEPT, 846 IPFIREWALL_VERBOSE, 845 IPFIREWALL_VERBOSE_LIMIT, 845

1114

IPSEC, 414 IPSEC_DEBUG, 414 MROUTING, 870 a rendszermag nomhangolsa, 300 a rendszermag hangolsa, 289 a rendszermag belltsai COMPAT_LINUX, 278 cpu, 205 ident, 205 machine, 205 MSDOSFS, 206 NFS, 206 NFS_ROOT, 206 SMP, 208 a rendszertlt kongurcija, 357 A TCP svszlessg-ksleltets szorzatnak korltozsa net.inet.tcp.inight.enable, 343 a tbbszint biztonsgi MAC-hzirend, 457 Abacus, 175 AbiWord, 170 ACL, 425 ACPI, 345, 347 ASL, 350, 351 hibazenetek, 351 nyomkvets, 352 problmk, 346, 348, 352 Acrobat Reader, 172 adduser, 368, 614 AIX, 769 Alapvet be- s kimeneti rendszer (Lsd BIOS) alaprtelmezett tvonal, 865, 866 alhlzat, 864, 865 alkalmazsok Maple, 283 Mathematica, 281 MATLAB, 285 Oracle, 288 SAP R/3, 292 Alpha, 11, 14, 21, 82 Alpha BIOS, 11 Amanda, 507 amd, 766 Apache, 4, 803 indtsa s lelltsa, 804 kongurcis llomnyok, 803 modulok, 805 APIC

kikapcsolsa, 349 APM, 212, 345 Apple, 3 apslter, 245 ARC, 11 ASCII, 273, 611 AT&T, 5 AUDIT, 468 automatikus csatlakoztat dmon, 766 AutoPPP, 701 az alaprendszer jrafordtsa idigny, 647 az alaprendszer jrafordtsa, 639 Az X11 nomhangolsa, 149

B
bejelentkezsi osztly, 614 bejelentkezsi nv, 694 bejelentkezsi osztly, 612 Berkeley, 2, 5, 8 betrcszs szolgltats, 673 betrcszs szolgltatsok hasznlata, 681 betk, 283 LCD kperny, 156 trkz, 155 lsimtott, 154 betkioszts, 615 bettpusok TrueType, 153 BGP, 868 billentykioszts, 615 BIND, 738, 790 elindts, 792 gyorsttraz nvszerver, 802 kongurcis llomnyok, 793 zna llomnyok, 799 binris kompatibilits BSD/OS, 2 Linux, 2, 277 NetBSD, 2 SCO, 2 SVR4, 2 Binris Linux kompatibilits, 277 BIOS, 30, 354 bit per msodperc, 663 bit-per-msodperc, 227

1115

BitTorrent, 949 biztonsg, 377 a FreeBSD vdelme, 379 a hozzfrsek megszerzse, 378 crypt, 387 DoS tmads (Lsd Denial of Service (DoS)) egyszeri jelszavak, 388 kiskapuk, 378 OpenSSH, 420 OpenSSL, 411 tzfalak, 820 biztonsgi oppyk, 502 Biztonsgi esemnyek vizsglata (Lsd MAC) biztonsgi mentst vgz szoftverek Amanda, 507 cpio, 506 ments / helyrellts, 505 pax, 507 tar, 506 Blowsh, 387 Bluetooth, 890 Boot Loader, 355 Boot Manager, 355, 355 boot-loader, 357 BOOTP lemez nlkli mkds, 912 Bourne-fle parancsrtelmezk, 119 BSD partcik, 478 BSD licenc, 6 bsdlabel, 508, 511 bngszk vilghl, 165

(Lsd prhuzamos nyomtat) CHAP, 694, 697, 702 chpass, 370 Cisco, 3, 706 Coda, 512 committerek, 7 comsat, 381 Concurrent Versions System (Lsd CVS) Core Team, 7 coredumpsize, 373 cpio, 506 cputime, 373 cron, 636, 638 belltsa, 321 crypt, 387 csomagok, 125 kezels, 130 teleptse, 128 trls, 130 csoportok, 375 CTM, 639, 951 cu, 88 cuad, 667 CUPS, 272 CVS anonim, 639, 949 repository, 7 cvsup, 636, 638 cmfordts s az IPFW, 857 cmtirnyts, 923

D C
CARP, 932 CD-k ltrehozsa, 486 rendszerindtshoz, 487 rsa, 488, 488 CD-r ATAPI, 487 CD-rk ATAPI/CAM meghajt, 491 centronics DCE, 663 default route, 722 Denial of Service (DoS), 378, 385 DES, 387 device.hints, 362 DGA, 185 DHCP dhcpd.conf, 788 kongurcis llomnyok, 790 kongurcis llomnyok, 787 kvetelmnyek, 787 lemez nlkli mkds, 911

1116

szerver, 787 telepts, 788 Dinamikus llomskongurcis protokoll (Lsd DHCP) Django, 806 DNS, 332, 702, 730, 742 DNS szerver, 3 dokumentci (Lsd frissts s frissen tarts) (Lsd frissts s frissen tarts) DOS, 18, 30, 617 DoS tmads (Lsd Denial of Service (DoS)) DSL, 899 DSP, 180 DTE, 663 DTrace, 657 DTrace tmogats (Lsd DTrace) dump, 505 DVD DVD+RW, 495 DVD-RAM, 497 DVD-RW, 496 DVD-Video, 495 rsa, 493

eszkzler, 180 Etherboot, 913 Ethernet, 727 MAC-cm, 282, 728, 865

F
failover, 905 fdisk, 477 fec, 905 fejlclapok, 228, 246 felhasznlk FreeBSD-t hasznl nagy oldalak, 3 felhasznlk korltozsa coredumpsize, 373 cputime, 373 lesize, 373 maxproc, 373 memorylocked, 374 memoryuse, 374 openles, 374 sbsize, 374 stacksize, 374 felhasznlk korltozsa kvtk, 372 felhasznlk korltozsa, 372 fetchmail, 755 lesize, 373 nger, 381 nomhangols a rendszermag korltai, 340 a sysctl hasznlatval, 335 Firefox, 166 Fizikai cmkiterjeszts (PAE) sok memria, 217 Flash, 167 oppy lemezek, 502 fordtprogramok C, 2 C++, 2 FORTRAN, 2 forgalomirnytsi protokoll, 223 forgalomirnyt, 3 forrskd, 2 FORTRAN, 241 FreeBSD Projekt clok, 6

E
e-mail, 3, 730 a levltovbbt megvltoztatsa, 735 bellts, 741 hibaelhrts, 738 ee, 120 egyfelhasznls md, 359 egyfelhasznls md, 363, 644, 648 egyszeri jelszavak, 388 elektronikus levelezs (Lsd e-mail) elektronikus levl fogadsa, 732 ELF, 313 megblyegzs, 313 emacs, 120 engedlyek, 98 szimbolikus, 99 ers korlt, 517

1117

fejlesztsi modell, 6 trtnet, 4 freebsd-update (Lsd frissts s frissen tarts) FreshMeat, 127 FreshPorts, 127 frissts s frissen tarts, 632 frissts s frissen tarts, 629 frissts s frissen tarts, 621, 628 FTP anonim, 55, 77, 809, 809 HTTP proxyn keresztl, 47 passzv md, 47 FTP szerverek, 3, 808 fggleges frisstsi frekvencia, 147

honosts, 610 grg, 620 hagyomnyos knai, 620 japn, 620 koreai, 620 nmet, 620 orosz, 618 hosts, 332 hozzfrsek adminisztrtor (root), 367 csoportok, 375 daemon, 367 eltvolts, 369 felhasznl, 367

G
GEOM, 528, 528, 530, 534, 536 getty, 674 Ghostscript, 238 GNOME, 159 GNU eszkztr, 280 GNU Compiler Collection, 3 GNU General Public License (GPL), 6 GNU Lesser General Public License (LGPL), 6 GnuCash, 174 Gnumeric, 174 GQview, 173 Greenman, David, 4 Grimes, Rod, 4 gv, 172 gyenge korlt, 517 gykr partci, 511 gykr-llomnyrendszer, 111 gykrzna, 791 gzip, 503

hozzads, 368 jelszvltoztats, 371 korltozs, 372 mdosts, 368 nobody, 367 operator, 367 rendszer, 367 HP-UX, 769 HPLIP, 272 Hubbard, Jordan, 4 hw.ata.wc, 338 hlzati krtyk tesztelse, 329 hlzati csoportok, 780 hlzati cmfordts (Lsd NAT) hlzati nyomtats, 253 hlzati csoportok, 779 hlzati hd, 899 hlzati nyomtats, 253

H
hagyomnyos knai BIG-5 kdols, 613 hangkrtya, 178 HCI, 891 helyrellt lemezek, 508

hlzati nv, 332 hlzati krtyk belltsa, 325, 327 hibaelhrtsa, 330 meghajt, 325

1118

I
I/O port, 180 idegennyelvsg (Lsd honosts) idkorlt, 697 IEEE, 507 IMAP, 730, 732 init, 355, 363 Intel i810 grakus chipkszlet, 151 internet-kapcsolat megosztsa, 920 internet-szolgltat, 694, 697 internetes rendszerkonzorcium (ISC), 786 inverz DNS, 791 IP maszkols (Lsd NAT) IP-alhlzat, 899 IP-lnevek, 330 IPCP, 698 ipf, 826 IPFILTER a rendszermag belltsai, 826 a szablyok felptse, 832 a szablyok feldolgozsnak sorrendje, 831 engedlyezs, 825 naplzs, 828 statisztika, 827 llapottart szrs, 835 ipfstat, 827 ipfw, 847 a rendszermag belltsai, 845 a szablyok felptse, 849 a szablyok feldolgozsnak sorrendje, 848 engedlyezse, 845 naplzs, 851 llapottart szrs, 851 ipmon, 828 ipnat, 840 IPsec, 414 AH, 414 ESP, 414 IPX/SPX, 920 irodai programcsomag KOfce, 169 OpenOfce.org, 171 IRQ, 180 ISA, 178 ISDN, 899, 916

krtyk, 916 nll hlzati hidak s tvlasztk, 918 ISO 9660, 487

J
jail, 432 jelsz, 694, 703 jelvltsi sebessg, 223 Jolitz, Bill, 4 Juniper, 3 jrkk, 381

K
KDE, 160 bejelentkeztet kperny, 162 Kerberos5 hibaelhrts, 407 hinyossgok s korltozsok, 409 kliensek belltsa, 407 kulcseloszt kzpont, 403 kls forrsok, 410 szolgltatsok kerberizlsa, 405 trtnete, 403 KerberosIV, 380, 386 kezdeti indtsa, 397 telepts, 395 Kermit, 706 kern.cam.scsi_delay, 338 kern.ipc.somaxconn, 341 kern.maxles, 340 kernel.old, 359 ketts hlzat gpek, 867 KLD (a rendszermag betlthet objektuma), 326 KLD (betlthet rendszermag objektum), 277 KMyMoney, 175 KOfce, 169 Konqueror, 169 konzol, 94, 363 kvtk, 372 kdolsok, 611 knyvtrak, 98 knyvtrhierarchia, 102 krnyezeti vltozk, 118

1119

ktelez hozzfrs-vezrls (Lsd MAC) Kzs cm redundancia protokoll, 932

L
L2CAP, 893 lacp, 905 lagg, 905 lapolvask, 194 lapozterlet titkostsa, 525 LCD kperny, 156 LCP, 701 LDAP, 811 lemez nlkli mkds rsvdett /usr, 915 lemez nlkli mkds a rendszermag belltsai, 914 lemez nlkli munkalloms, 909 lemez nlkli mkds, 909 Lemezcskozs, 528, 548 Lemezcmkk, 534 lemezek egy memrialemez levlasztsa, 514 hozzads, 477 memria, 512 memria llomnyrendszer, 513 titkostsa, 519 virtulis, 512 llomny alap, 512 lemezek sszefzse, 547 lemezkvtk, 372, 516 ellenrzse, 516, 518 korltok, 517 lemezparits, 549 lemeztkrzs, 530, 549 levelezsi lista, 640 levelez kliensek, 749 levelez szerver, 733 levlkld dmon exim, 731 postx, 731 qmail, 731 sendmail, 731 lellts, 364 Linux, 769

ELF binrisok, 280 linuxos knyvtrak teleptse, 278 LISA, 507 loadbalance, 905 loopback eszkz, 865 LPD nyomtatsi rendszer, 220 LPRng, 272 ls, 98 Lssak msokatMAC-hzirend, 452

M
MAC, 443 llomnyrendszeri tzfal MAC-hzirend, 453 MAC hibaelhrts, 465 MacOS, 390 make, 646 make.conf, 643 man oldalak, 123 Master Boot Record (MBR), 355, 355 maxproc, 373 MD5, 387 megszakts-viharok, 349 memorylocked, 374 memoryuse, 374 memriavdelem, 1 mencoder, 190 mergemaster, 649 mgetty, 701 Microsoft Windows, 30, 326, 810 eszkzmeghajtk, 326 MIME, 612, 614 MIT, 395 modem, 673, 706, 724, 917 mod_perl Perl, 807 mod_php PHP, 807 mount, 87, 511 mountd, 763 moused, 615 MPlayer fordtsa, 188 hasznlata, 189 MS-DOS, 273, 390 multicast tvlaszts, 870 munkalapok

1120

(Lsd fejlclapok) MX record, 739 MX rekord, 731, 738, 741, 801 MySQL, 617

NTP, 813 a szerverek kivlasztsa, 813 belltsa, 813 ntp.conf, 814 ntpd, 813 ntpdate, 813 null-modem kbel, 87 null-modem kbel, 664, 685 null-modem kbel, 223 nyelvi bellts, 614 nyelvi bellts, 299 nyelvi belltsok, 612 nyelvi belltsok, 611 nyelvi kdok, 611 nyilvntarts lemezterlet, 516 nyomtat, 246, 260 nyomtatsi munkk, 237 nyomtats, 220, 265 fejlclapok, 229 szrk, 232, 234, 236 apslter, 245 nyomtatsi munkk, 230 nyomtatsi rendszer, 230 nyomtatsi munkk, 258 nyomtatsi munkk, 221, 265 nyomtatsi munkk szablyozsa, 258 nyomtat a hozzfrs korltozsa, 256 hasznlat, 264 hlzati, 253, 253 prhuzamos, 222, 226 soros, 222, 227, 231, 237 tulajdonsgai, 228 USB, 222 nyomtatk, 618 nyomtatszerver windowszos kliensek, 810 nvfelolds, 790 rekordok, 800 nvfelold, 791 nvszerver, 694, 722

N
naplzs, 536 naplllomnyok, 333 FTP, 809 NAT, 3, 840, 899, 920 IPFILTER, 840 natd, 920 NDIS, 326 NDISulator, 326 net.inet.ip.portrange.*, 342 Net/2, 5 NetApp, 4 NetBIOS, 702, 811 NetBSD, 8, 769 Netcraft, 4 NetEase, 4 newfs, 511 newsyslog.conf, 334 NFS, 512, 518, 763 bellts, 763 csatlakoztats, 765 hasznlata, 766 lemez nlkli mkds, 913 pldk exportlsra, 764 szerver, 763 tbb gp teleptse, 655 nfsd, 763 NIS, 769 a kliensek belltsa, 776 alrendelt szerver, 770, 774 jelszavak formtuma, 785 kliens, 770 kzponti szerver, 770 szerver belltsa, 772 tartomnynv, 771 tartomnyok, 769 tblzatok, 773 NIS+, 811 NOTES, 204 Novell, 5 ntalk, 381

1121

O
OBEX, 897 oldalak nyilvntartsa, 246 OpenBSD, 8, 769 openles, 374 OpenOfce.org, 171 OpenSSH, 420 belltsok, 421 biztonsgos msols, 421 engedlyezs, 420 kliens, 420 tunnelezs, 423 OpenSSL tanstvnyok ellltsa, 411 Opera, 168 orszgkdok, 611 OS/2, 273, 479 OSPF, 868 osztott knyvtrak, 279

portmanager, 138 portmap, 769 portmaster, 139 portok, 125 eltvolts, 137 frissts, 137 telepts, 133 trigny, 140 Portsnap (Lsd frissts s frissen tarts) portupgrade, 138 POSIX, 507, 612 PostScript, 223, 226 emulci, 238 megjelent, 172 PPP, 693, 738, 917 bejv hvsok fogadsa, 698 belltsa, 694, 704 dinamikus IP-cmmel, 698 Ethernet felett, 693

P
Pair Networks, 4 PAP, 694, 697, 702 parancssor, 118 parancsrtelmezk, 118 parits, 223, 227 partcik, 109, 477 partcikioszts, 316 passwd, 371 pax, 507 PCI, 178 PCL, 226, 274 PDF megjelent, 172, 172, 173 PGP-kulcsok, 1023 pillanatkp, 635 pkg_add, 128 pkg_delete, 130 pkg_info, 130 pkg_version, 130 PLIP, 924 POP, 730, 732 Port hozzfrs-vezrlsi lista MAC-hzirend, 454 Portaudit, 427 Portgyjtemny, 278

felhasznli PPP, 693, 696 hibaelhrts, 713 kliens, 706 Microsoft kiterjesztsek, 702 NAT, 703 over ATM, 718 over Ethernet, 716 rendszer PPP, 693, 706 statikus IP-cmmel, 695 szerver, 706 PPP kapcsolat, 694 PPP shellek, 699, 700 PPPoA (Lsd PPP, over ATM) PPPoE (Lsd PPP, over Ethernet) preemptv temezs, 1 procmail, 756 pw, 372, 614 Python, 806 prhuzamos vonali IP (Lsd PLIP) prosts, 894

1122

R
RAID, 548 CCD, 479 hardveres, 482 szoftver, 546 szoftveres, 479, 482 Vinum, 482 RAID-1, 549 RAID-5, 549 Rambler, 4 rc llomnyok rc.conf, 318 rc.serial, 668, 678 rc-llomnyok, 364 rendszerbetlt belltsa, 921 rendszerindts, 354 rendszerindt llomnyrendszer lemez nlkli mkds, 915 rendszerindt szkriptek, 95 rendszermag, 355 bellts, 178 belltsa, 725, 921 kapcsolat a rendszerindtssal, 361 kongurcis llomny, 204 ksztse, teleptse, 202 meghajtk, modulok, alrendszerek, 201 NOTES, 204 rendszerindtsi paramter, 361 sajt rendszermag ksztse, 199 rendszermagot fordtsa, 647 rendszertlt, 354, 357 resolv.conf, 332 restore, 505 RFCOMM, 894 RIP, 868 rlogind, 381 rmuser, 369 roundrobin, 905 routed, 704 rpcbind, 763, 769 RPM, 296 RS-232C kbel, 663, 665 rshd, 381 Ruby on Rails, 807 rsztvevk, 8

S
Samba szerver, 810 sbsize, 374 scp, 421 SCSI, 30 SDL, 185 SDP, 895 sendmail, 381, 704, 733 signal 11, 652 Sina, 4 slice-ok, 109, 477 SLIP, 693, 721, 725, 726 kapcsolds, 723 kliens, 721 szerver, 724 tvlaszts, 729 SMTP, 705, 741 Soft Updates, 338 rszletei, 339 Solaris, 313, 769 Sony Japan, 4 soros kommunikci, 663 soros konzol, 87, 685 soros port, 227 SQL adatbzis, 811 SRM, 11 ssh, 386 sshd, 55 sshd, 381 SSL, 805 stacksize, 374 statikus IP-cm, 694 statikus tvonalak, 729 su, 379, 477 Subversion (Lsd SVN) SunOS, 203, 771 SVN repository>, 7 sysctl, 335, 335, 382 sysctl.conf, 335 sysinstall, 615, 786 lemezek hozzadsa, 477 syslog, 809 syslog.conf, 333 sysutils/cdrtools, 487 Szabad Szoftver Alaptvny, 5, 8, 124

1123

szalagos adathordoz, 500 szalagos adathordoz (4 mm-es) DDS-szalagok, 500 (8 mm-es) Exabyte szalagok, 500 AIT, 501 DLT, 501 QIC-150, 501 QIC-szalagok, 500 szerkesztk, 120 ee, 120 emacs, 120 vi, 120 szimbolikus linkek, 279 szolgltatsok, 319 Szmtgpes rendszerek kutatcsoport (CSRG), 2 Szmtgpes rendszerek kutatcsoport (CSRG), 8 sznek kontraszt, 86 szvegszerkesztk, 120 srga oldalak (Lsd NIS)

TFTP lemez nlkli mkds, 913 The GIMP, 170 titkosts, 805 traceroute, 870 troff, 235 Tru64 UNIX, 773 TrueType bettpusok, 153 ttyd, 667 tunefs, 338 TV krtyk, 192 tblzatkezel Abacus, 175 Gnumeric, 174 KMyMoney, 175 tmogatott llomnyrendszerek (Lsd llomnyrendszerek) tbbfelhasznls rendszer, 1 tbbfelhasznls md, 364, 644

T
tar, 503, 506 tartomnynv, 722 TCP burkolk, 391 TCP wrapperek, 778 TCP/IP hlzatok, 724, 726 TCP/IP protokoll, 1 TELEHOUSE America, 4 telepts, 10 fej nlkli (soros konzol), 87 oppy, 90 hibakeress, 83 hlzat Ethernet, 92 FTP, 47, 89 NFS, 93 prhuzamos (PLIP), 92 soros (SLIP vagy PPP), 92 MS-DOS partcirl, 91 QIC/SCSI-szalagrl, 91 telnetd, 381 terminlok, 94, 668 TeX, 221, 267 DVI llomnyok nyomtatsa, 240

tbbprocesszoros (SMP) rendszerek tmogatsa, 2 tmrts, 503 tzfal, 3, 899 tzfalak, 820, 901 IPFILTER, 825 IPFW, 845 PF, 821 szablyrendszerei, 820 trelmi id, 518

U
UDP, 786 Unicode, 617 UNIX, 98, 694 USB lemezek, 484 USENET, 3 UUCP, 739

1124

V
veszlyesen dediklt, 109 vezetk nlkli hlzatok, 871 vfs.hirunningspace, 337 vfs.vmiodirenable, 336 vfs.write_behind, 337 vi, 120 videocsomagok, 187 videoportok, 187 Vinum, 546 cskozs, 548 parits, 549 tkrzs, 549 sszefzs, 547 vipw, 614 virtulis magnhlzat (Lsd VPN) virtulis memria, 2 virtulis cmek, 330 virtulis konzolok, 94 virtulis lemezek, 512 vm.swap_idle_enabled, 337 VPN, 414 ltrehozsa, 415 vzknyvtr, 368 vgrehajtsi osztly betlt, 312 vzszintes frisstsi frekvencia, 147

X
X Display Manager, 156 X Window System, 2 (Lsd mg XFree86) Accelerated-X, 3 XFree86, 3 X11, 147 X11 Input Method (XIM), 617 X11 True Type bettpus szerver, 616 XML, 154 Xorg, 147 xorg.conf, 150 Xpdf, 173 XVideo, 185

Y
Yahoo!, 4 Yandex, 4

Z
zip meghajt, 213 znk pldk, 791

W
Walnut Creek, 4 Weathernews, 4 webszerverek, 3 belltsa, 803 biztonsg, 805 dinamikus, 806 wheel, 380 widescreen at panel belltsa, 151 Williams, Nate, 4 Windows, 390 Windows meghajtk, 326 Windows NT, 769

1125

Vgsz
Ez a knyv A FreeBSD Dokumentcis Projekt tbb szz rsztvevjnek egyttes munkjval jtt ltre. A forrsa SGML-ben kszl a DocBook DTD alapjn, s ebbl szmos klnbz formtumba kerl talaktsra a Jade, a nylt forrskd DSSSL engine segtsgvel. Egy tovbbi rteg hozzadsval Norm Walsh DSSSL stluslapjait hasznltuk fel a Jade vezrlsre. A dokumentum nyomtatott vltozata nem jhetett volna ltre Donald Knuth TEX A betszed rendszere, illetve Leslie Lamport LTEX, valamint Sebastian Rahtz JadeTeX makrcsomagja nlkl.

1126

You might also like