Professional Documents
Culture Documents
FreeBSD Handbook HUN
FreeBSD Handbook HUN
FreeBSD Handbook HUN
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
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.
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.
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.
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:
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.
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.
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.
Fejezet 1. Bemutatkozs
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.
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/).
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!
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
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 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
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
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.
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.
14
TOSHIBA CD-ROM XM-57 RZ1BB-BS SEAGATE ST34501W 00-00-F8-75-6D-01 SCSI Bus ID 7 PCI EIDE PCI EIDE
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.
15
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.
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
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!
A szveg fordtsa:
Utols esly: BIZTOSAN folytatni kvnja a teleptst?
18
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.
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
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
Vrjunk tz msodpercet vagy egyszeren nyomjuk le az Enter billentyt. Ezzel elindul a rendszermag belltsait tartalmaz men.
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.
22
23
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
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.
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
26
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.
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
28
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.
29
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.
31
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 ]
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
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.
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
Az F1 billenty lenyomsn keresztl elrhet sgkpernyn olvashatunk az egy merevlemezen tbb opercis rendszer hasznlatval kapcsolatos problmkrl.
36
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.
37
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
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
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
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
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
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
44
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.
46
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
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
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.
49
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
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.
52
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.
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
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
Miutn felvettk az sszes hasznlni kvnt szolgltatst, az Esc billenty lenyomsval elhozhatjuk azt a ment, ahol elmenthetjk a mdostsainkat s kilphetnk.
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.
Fordts:
Felhasznli megersts szksges Hozzfrhet legyen ez a szmtgp anonim FTP hasznlatn keresztl? Igen [ Nem ]
55
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
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.
58
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.
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.
Fordts:
Felhasznli megersts szksges Testreszabja a rendszerkonzol belltsait? [ Igen ] Nem
60
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
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.
62
Fordts:
Felhasznli megersts szksges Belltja most a szmtgp idznjt? [ Igen ] Nem
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
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.
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.
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
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
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
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
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
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.
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
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.
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 :
Fordts:
Felhasznli megersts szksges
74
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
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.
80
81
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.
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:
>>> >>> >>> >>>
A rendszer indtsakor megjelen zenetek hasonl (de nem teljesen azonosak) lesznek az i386 architektrn indul FreeBSD esethez.
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.
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.
Megjegyzs: A mvelet vgrehajtshoz a /dos knyvtrnak mr lteznie kell. Az /etc/fstab pontos formtumval kapcsolatban a fstab(5) man oldalt olvassuk el.
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.
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.
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.
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.
88
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).
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.
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.
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.
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.
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.
92
93
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.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
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.
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.
Az llomnyban tallhat oszlopok kimert magyarzatt, illetve a virtulis konzolok belltshoz hasznlhat kapcsolkat a ttys(5) man oldalon olvashatjuk.
96
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.
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
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
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.
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
Amennyiben egy llomnnyal kapcsolatban tbb vltoztatst is el kvnunk vgezni, ssze tudjuk ezeket fzni egy vesszkkel elhatrolt felsorolsban:
% chmod go-w,a+x LLOMNY
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
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.
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
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
trhodes root
5232 5211
0.0 0.0
0.2 0.2
3420 3620
1608 1724
0 2
R+ I+
2:10AM 2:09AM
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
drwxrwxrwt
10 root
wheel
102
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.
103
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.
/var/yp
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
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
Gykr /
A1/
A2/
B1/
B2/
C1/
C2/
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.
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
108
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
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)
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.
eszkz
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
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
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.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
TT p0 p0
STAT Ss S
114
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.
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
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
118
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
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.
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
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.
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.
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.
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
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 *
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
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.
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 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
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.
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
127
Vagy egy egyszer echo(1) paranccsal is megkereshetjk a portfban a portokat. Mint pldul:
# echo /usr/ports/*/*lsof*
/usr/ports/sysutils/lsof
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
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.
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.
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/
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.
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
= =
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.
* !
130
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\*
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.
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.
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
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
===>
#
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
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
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.
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.
137
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.
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
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
139
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
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
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
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.
141
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
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).
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
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.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.
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
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.
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
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
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
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
149
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.
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>
Miutn vgrehajtottuk ezeket az egyszer belltsi lpseket, az X most mr valsznleg el fog indulni az j szlesvszn monitorunkon.
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/"
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.
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.
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
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.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
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.
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.
158
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.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.
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
% 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
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.
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.
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
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
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
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.
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 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
A Firefox 3.5 teleptshez az imnti parancsban cserljk ki a firefox rszt a firefox35 knyvtrra.
166
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/
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.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.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
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
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
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.
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.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
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
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
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
174
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
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.
177
Fejezet 7. Multimdia
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.
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
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.
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.
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.
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.
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.
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
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.
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.
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 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.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
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.
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.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
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/)
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.
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
A bktr(4) man oldaln s a /usr/src/sys/conf/NOTES llomnyban megtallhatjuk a tbbi bellts rszletes lerst is.
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.
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.
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
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.
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
of of of of
0 1 2 3
<IBM DDRS-34560 S97B> <IBM DDRS-34560 S97B> <AGFA SNAPSCAN 600 1.10> <PHILIPS CDD3610 CD-R/RW 1.00>
at at at at
5 6 2 0
0 0 0 0
195
Fejezet 7. Multimdia
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
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
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
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.
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
198
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.
199
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.
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
A hardvereszkzeink listjval felvrtezve most mr egy sajt rendszermag ltrehozsa sem lesz annyira ijeszt.
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
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
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
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
203
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.
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
205
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
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
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. 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
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
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
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 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 RAID-meghajtk kezelshez erre a sorra van szksg a device ata mellett.
device atapicd # ATAPI CD-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
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
# 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
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
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
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
# cardbus (yenta) bridge # PC Card (16 bites) busz # CardBus (32 bites) busz
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
device
plip
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)
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
# 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
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
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
216
# 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.
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.
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
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.
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.
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.
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
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.
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.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
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.
sorba a megfelel IRQ szmt. A rendszermag belltsait tartalmaz llomnynak tartalmaznia kell a ppc(4) meghajtt is:
device ppc
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.
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.
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
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.
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.
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:
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.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.
235
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
az /etc/printcap llomnyban denilt pw (page width, avagy oldalszlessg) tulajdonsg rtke, ami alapbellts szerint 132
hossz
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.
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.
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
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
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
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.
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.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.
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
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
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
248
Fejezet 9. Nyomtats
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.
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.
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
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.
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:
# # # #
# # 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).
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
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!
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.
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.
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).
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.
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
$ $ $ $ $ $ $ $
Az kirtkelend nyomtat neve. Ez a paramter csak akkor hasznlhat, ha az /etc/printcap llomnyban az af tulajdonsgnak teljes elrsi utat adtunk meg.
-c
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
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.
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.
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
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.
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 ...
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
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
% lprm -P rattan 13
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
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
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
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.
-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
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
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.
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
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 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
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.
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
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.
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.
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.
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
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
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.
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.
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.
280
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.
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
282
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.
283
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.
Szerencss esetben innentl kezdve mr minden mkdik. s ne felejtsnk el rni a Maplesoftnak, hogy szeretnnk egy natv FreeBSD verzit a termkkbl!
284
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).
285
2.
3.
4.
Futtassuk le a teleptst.
Ezzel befejezdtt a MATLAB hagyomnyos teleptse. Innentl mr csak a FreeBSD rendszer hozztapasztsn fogunk dolgozni.
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
A fenti szkriptben cserljk ki a felhasznl nevt a rendszernkben lev egyik felhasznl nevre (ami persze nem a root).
3.
2.
287
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.
3.
Tegyk vgrehajthatv:
# chmod +x $MATLAB/bin/finish.sh
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.
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
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.3. Krnyezet
A megszokott Oracle krnyezeti vltozk, mint pldul a ORACLE_HOME s ORACLE_SID mellett mg denilnunk kell a kvetkezket is:
289
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
290
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.
291
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:
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.
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.
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.
294
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.
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.
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.
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
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
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
A dba s oper csoportok hasznlata sorn ne felejtsk el megadni az oper csoportot sem.
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
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
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.
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
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.
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
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.
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.
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
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.
305
Ha a saplicense paramter nlkl meghvsra vlaszul opcikat listz ki. A licenckulcsot megrkezse utn gy tudjuk lesteni:
# /sapmnt/IDS/exe/saplicense -install
306
Fejezet 10. Binris Linux kompatibilits Az imnti s az sszes tbbi telepts utni lpsek lersa teljes egszben megtallhat az SAP teleptsi tmutatiban.
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
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)
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
309
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.
Msklnben ORA-12546 hibt kapunk, mivel a hlzati portokhoz tartoz socketek nem rendelkeznek a megfelel engedlyekkel. Lsd 0072984 SAP fzet.
310
/compat/linux/usr/sap
# ls -l
3 5 1 2 11
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.
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.
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.
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 UNIX s a FreeBSD alapjainak megrtse (3 fejezet); a rendszermag belltshoz s fordtshoz ktd alapok ismerete (8 fejezet).
316
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!
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.
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.
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.
319
. /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.
320
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.
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.
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
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
A kvetkez kulcsszavak az egyes indtllomnyok elejn szerepelhetnek. Nem kell felttlenl hasznlnunk ezeket, de velk az rcorder(8) munkjt segthetjk:
REQUIRE: felsoroljuk azokat a
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
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
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"
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.
327
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.
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
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
329
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"
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
/var/db
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.
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
Teht pldul:
10.0.0.1 azEnValodiNevem.aHalozaton.hu azEnValodiNevem izemize1 izemize2
333
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
334
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
335
Fejezet 11. Bellts s nomhangols gy krhetjk egy konkrt vltoz, pldul a kern.maxproc rtkt:
% sysctl kern.maxproc
kern.maxproc: 1044
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.
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.
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
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.
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
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.
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
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
vfs.numvnodes: 91349
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.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"
344
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.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.
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.
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.
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!
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.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.
349
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
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"
351
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
Megjegyzsek
1. Az nszablyoz algoritmus a maxusers rtkt a rendszerben tallhat memrinak megfelelen legalbb 32-re, legfeljebb 384-re lltja.
353
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.
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.
355
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.
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:
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!
357
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.
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
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
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.
361
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 "
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.
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.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
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.
364
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.
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.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.
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.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
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.
370
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.
Changing local password for jantyik. Old password: New password: Retype new password: passwd: updating the database... passwd: done
371
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.
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
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
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
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 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.
A most kvetkez szakaszok a FreeBSD vdelmnek azon mdszereit ismertetik, amelyekrl a fejezet elz szakaszban mr rtunk.
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
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.
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
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!
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.
384
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.
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.
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.
388
[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.
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
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.
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
390
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.
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.
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.
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.
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.
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
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:
Az zenet fordtsa:
A Kerberos mesterkulcsnak jelenlegi vltozata: 1. VIGYZAT, megadtk a mesterkulcsot!
396
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
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] ?
397
Edit O.K.
Principal name:
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
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
<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:
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!
Ezutn a kinit parancs hasznlatval prbljunk meg az elbb ltrehozott janos azonostnak krni egy jegyet:
% kinit janos
399
A klist paranccsal most prbljuk meg kilistzni a tokeneket s gy ellenrizni, hogy valban rendelkeznk velk:
% klist
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.
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
New Password:
Edit O.K.
Principal name:
Ezt kveten gy tudunk megbizonyosodni a mkdsrl, hogy megprblunk neki tokeneket szerezni:
# kinit janos.root
janos.root@EXAMPLE.COM
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
janos.root@EXAMPLE.COM
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
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
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:
403
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
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
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
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
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
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.
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
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.
Erre azrt van szksg, mert a Kerberos MIT vltozata a /usr/local knyvtron bellre telepti fel a hozztartoz alkalmazsokat.
409
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
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.
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
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
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
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
413
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
414
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.
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
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
416
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
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
418
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.
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
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.
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
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:
*******
Az zenetek fordtsa:
420
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.
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
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.
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.
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
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
423
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.
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.
424
Ezzel pedig csupn nevnek megadsval engedlyezzk az admin felhasznl bejelentkezst (brhonnan):
AllowUsers 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
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
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.
#owner:1001 #group:1001
426
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.
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
A Portgyjtemnybl teleptett kls alkalmazsok megbzhatsgnak ellenrzst az albbi parancs kiadsval brmikor elvgezhetjk:
# portaudit -a
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.
428
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
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
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(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.
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
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.
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
435
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.
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
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.
437
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.
438
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.
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.
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.
439
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.
3.
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
A jailek most mr futnak. Az elindulsuk ellenrzshez hasznljuk a jls(8) parancsot. Valami ilyesmit lthatunk a kiadsa utn:
# jls
JID 3 2 1
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
2.
3.
441
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
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 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
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
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.
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
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.
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
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.
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
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.
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.
Adott egy FreeBSD webszerver, ahol a MAC rendszert tbb biztonsgi hzirenddel alkalmazzuk.
450
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 /
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.
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
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.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.
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.
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.
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
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.
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:
457
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 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
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.
458
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).
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.
459
460
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.
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
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;
462
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.
463
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
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.
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 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.
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.
2. 3.
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
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.
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
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.
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
A vizsglatot innentl tnylegesen egy ismtelt jraindtssal vagy pedig az elbb emltett dmon manulis elindtsval aktivlhatjuk:
/etc/rc.d/auditd start
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 -
- administrive (adminisztrcis) - olyan adminisztrcis tevkenysgek, amelyek egyben az egsz rendszeren vgrehajtdnak. - application (alkalmazs) - az alkalmazsok ltal meghatrozott tevkenysg.
ap
470
- 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
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.
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
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.
Ezzel ki tudjuk szrni a trhodes nev felhasznlhoz tartoz sszes vizsglati rekordot az AUDITFILE llomnybl.
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
474
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.
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
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.
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).
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.
478
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
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
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
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
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
1.
A lemez biztonsgos eltvoltshoz elszr vlasszuk le (detach) a meghibsodott lemezhez tartoz csatornt:
# atacontrol detach ata3
2. 3.
Master: Slave:
4.
5.
6.
[a kimenet tbbi rsze] ad6: removed from configuration ad6: deleted from ar0 disk1
483
7.
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.
484
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
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
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.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
jaz 1GB J.86 Removable Disk CD-ROM DRIVE:466 1.26 Removable CD-ROM
CRW4260 AM12S
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.
2.
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
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
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"
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.
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.
491
Ezeknek mr eleve ott kell szerepelnie. Ezutn fordtsuk jra s teleptsk a rendszermagot, majd indtsuk jra a szmtgpet.
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
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.
492
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.
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
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.
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
495
Ha valamilyen okbl mgis ress szeretnnk tenni a lemez, akkor r jrhatunk el:
# growisofs -Z /dev/cd0=/dev/zero
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
496
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.
497
A DVD eszkz nevt, vagyis az acd0 eszkzt a sajt rendszernknek megfelelen kell mdostani.
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.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
499
500
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.
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.
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.
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.
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!
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
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
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.
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).
508
509
a következõkhöz kell: _tcp _icmpstat _ip _udpstat _tcpstat _udb Berkeley Fast File System kövér kurzor a syscons vagy pccons eset&eacu legyünk pesszimisták a SCSI eszközö 1 virtuális konzol a -c XXX segítségé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
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
# # Egy minimális állományrendszeri táblázat létrehoz&aacu # cat > /mnt/etc/fstab <<EOM /dev/fd0a / ufs rw 1 1 EOM # # Egy miniális jelszó állomány létrehozá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álasztása és errõl a felhasználó értes # /sbin/umount /mnt echo "A lemezt leválasztottam és most már kész."
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.
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
/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
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
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.
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
Mounted on /mnt
Mounted on /mnt
A belltott md(4) eszkzkkel kapcsolatos tbbi informcit az mdconfig -l paranccsal tudjuk lekrdezni.
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
Az llomnyrendszeren (pldul /var) a pillanatkpeket tartalmaz llomnyokat a nd(1) paranccsal kereshetjk meg:
# find /var -flags snapshot
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
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.
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
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.
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
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
/dev/ad4s1 /dev/ad4s1c
2.
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.
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*
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
7.
Ellenrizzk a titkostott llomnyrendszer mkdkpessgt A titkostott llomnyrendszert most mr ltja a df(1) program s kszen ll a hasznlatra.
% df -H
521
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 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.
522
Tovbb megjegyezzk azt is, hogy a vinum(4) nem hasznlja a geom(4) alrendszert, ezrt a gbde alkalmazsa sorn nem hasznlhatunk Vinum-kteteket.
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
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
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.
Enter passphrase:
/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
Avail Capacity 139M 38% 0B 100% 4.9G 32% 909M 0% 2.3G 35% 138G 0%
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
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.
525
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
A FreeBSD 6.0-RELEASE eltti kiadsok esetben a kvetkez sort is hozz kell tennnk az /etc/rc.conf llomnyhoz:
gbde_swap_enable="YES"
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 tbbi belltshoz a geli(8) man oldaln a onetime parancs lerst rdemes ttanulmnyozni.
526
Used 0
Used 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
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.
megrteni, hogyan kezeli a FreeBSD a lemezes eszkzket (18 fejezet); ismerni, hogyan kongurljunk s teleptsnk egy j FreeBSD rendszermagot (8 fejezet).
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
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
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
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
Megjegyzs: A parancs sikeres lefutsa utn a /dev/mirror knyvtrban ltrehoz egy gm0 eszkzlert.
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
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
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%
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
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
532
Innen a gmirror status parancsval ksrhetjk gyelemmel a tkrzs jraszervezsnek menett. Csupn ennyi az egsz.
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
Amikor az eszkzre mr nincs tovbb szksgnk, biztonsgosan le tudjuk vlasztani az umount(8) paranccsal, hasonlan brmelyik ms lemezes eszkzhz.
533
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
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
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
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,
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
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.
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
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 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).
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.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.
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.
539
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.
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%
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
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%
Tegyk ismt elrhetv s csatlakoztassuk jra az llomnyrendszert, majd nzzk meg az eredmnyt a df paranccsal:
# zfs mount minta/tomoritett # df
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%
/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
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%
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.
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%
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
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
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
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
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
21.1. ttekints
Nem szmt, milyen lemezeink is vannak, ugyanis mindig addnak velk kapcsolatban gondjaink:
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.
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
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
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
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.
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.3. Teljestmny
A Vinum az sszefzst s a cskozst is egyarnt megvalstja az erek szintjn:
550
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.
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
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.
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
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.
553
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
554
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.
555
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
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
0 MB striped.p0.s0
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.
a b c d e
557
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
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.
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.
559
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
13 13 13 13
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.
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
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
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.
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.
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.
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.
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
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
564
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
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.
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.
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
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.
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).
567
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
569
570
571
572
573
574
575
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
Ahogy megtettk az imnt emltett sszerendelst, indtsuk is jra a FreeBSD-s virtulis gpnket a megszokott mdon, az jraindts ikonjra kattintva.
577
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
A telepts befejezst kveten indtsuk jra a frissen teleptett FreeBSD-s virtulis gpnket.
579
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.
581
582
Majd vlasszuk az Operating system (Opercis rendszer) belltsnl az Other (Egyb) opcit.
583
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
585
586
Vlasszuk ki a FreeBSD-s virtulis gpnket, majd kattintsunk a Settings (Belltsok) menre s lltsuk be hlzati csatol s hlzatkezels tpust.
587
588
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
590
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
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
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
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.
595
Ekkor bejn az j gp sszelltst segt New Virtual Machine Assistant, ahol a tovbblpshez kattintsunk a Continue gombra:
596
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
598
599
Mondjuk meg, hogy milyen mdon szeretnnk telepteni a virtulis gpre, ISO formtum lemezkprl vagy CD-rl:
600
601
602
603
604
A CD-meghajt llapott. ltalban lehetsgnk van a virtulis gpet levlasztani a CD-meghajtrl vagy ISO lemezkprl, ha mr nem hasznljuk.
605
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
Miutn befejeztk a belltsok nomhangolst, indtsuk is el a frissen teleptett FreeBSD-s virtulis gpnket.
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.
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
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.
609
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.
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
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.
A LANG vltozt a POSIX setlocale(3) csaldjnak A MM_CHARSET vltozt az alkalmazs MIME karakterkszlethez
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
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:
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.
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
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
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
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
616
617
Valamint lsd a fejezet korbbi rszeiben emltett pldkat a nyelvi belltsok megadsra.
A /etc/ttys llomnyban szerepl mindegyik ttyv* bejegyzsnl adjuk meg terminltpusnak a cons25r-t.
618
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.
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
Az X11 alkalmazsok honostshoz tovbbi tmutatsokat a KOI8-R X Window-ra (http://koi8.pp.ru/xwin.html) cm lersban tallhatunk.
620
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 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.
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.
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.
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.
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.
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.
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
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.
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
...
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
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
A CVSup teleptsvel kapcsolatban pedig rszletesebb informcikat a CVSup hasznlatval foglalkoz szakaszban olvashatunk.
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
630
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
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.
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
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
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.
632
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
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
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.
634
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.
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.
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!
637
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.
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.
639
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.
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
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!
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
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.
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
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.
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
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.
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.
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.
648
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.
649
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
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.
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
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
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.
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
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.
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
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
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
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 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.
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.
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
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.
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
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%
Sampling... Hit Ctrl-C to end. ^C MODULE 0xc107882e 0xc10e6aa4 0xc1076983 0xc109708a 0xc1075a5d 0xc1077325 0xc108a245 0xc107730d 0xc1097063 0xc108a253 kernel 0xc10981a5
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
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
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.
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.
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).
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.
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
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.)
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.
668
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
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.
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.
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.
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.
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.
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
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.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
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
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.
679
26.4.6. Hibaelhrts
Ebben a szakaszban bemutatunk nhny lpst, amelyeken keresztl ellenrizhetjk a rendszernkhz csatlakoztatott modemet.
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.
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.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.
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.
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:
682
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.
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.
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
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
~t tvoli-llomny [helyi-llomny]
Ilyenkor nincs hibaellenrzs, ezrt inkbb egy msik protokollt, pldul zmodemet rdemes hasznlnunk.
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.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.
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.
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
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
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.
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
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
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"
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
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.
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.
691
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.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
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.
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.
693
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).
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.
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
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
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
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
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
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.
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
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.
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
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
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 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
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
709
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
710
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
: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
: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
Ellenorizzuk a telefonvonalat!\7
local variables: mode: csh comment-start: "; " comment-start-skip: "; " end:
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.
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
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
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
Figyeljk meg, hogy az els p nagybetss vlt. Ezzel jelzi a program, hogy sikeresen csatlakoztunk a szolgltatnkhoz.
PPp ON pelda>
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
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
716
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
Nutzung von T-DSL und T-Online mit FreeBSD (http://www.ruhr.de/home/nathan/FreeBSD/tdsl-freebsd.html), rta: Udo Erdelhoff (nmetl).
Sajnos, mivel ez egy rendszerszint bellts, ezrt a 3Com HomeConnect ADSL Modem s ms normlis PPPoE kliens vagy szerver egyszerre nem hasznlhat.
Az usbd, vagyis az USB dmon engedlyezshez az /etc/rc.conf llomnyba tegyk bele az albbit:
718
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.
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
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
ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> mtu 1500 inet 216.136.204.117 --> 204.152.186.171 netmask 0xffffffff
720
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.
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.
Mivel ez ltalban a GENERIC rendszermagban megtallhat, gy ez nem okoz semmilyen gondot, kivve, hogy ha korbban mr kitrltk.
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"
4.
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
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.
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
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
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
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)
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.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).
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.)
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
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
sl-helmerg
0xfffffc00
a fejlceket nem tmrtjk a fejlcek tmrtse ha a tvoli vgpont engedi, akkor tmrtsk a fejlceket
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.
# # 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
# # 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
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).
729
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.
az internet-csatlakozsunk megfelel belltsa (31 fejezet); a nvfelolds belltsa (29 fejezet); a kls fejleszts alkalmazsok teleptsnek ismerete (4 fejezet).
730
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.
mx1.FreeBSD.org
731
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:
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.
732
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
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.
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.
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"
736
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
737
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
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
# 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
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.
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
enyem.FreeBSD.org
# host enyem.FreeBSD.org
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
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.
742
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.
743
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
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
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
input: ize @ pelda . com returns: $# uucp-dom $@ sajat.uucp.relay $: ize < @ pelda . com . >
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
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.
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!
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"
747
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
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
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
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
A pine alkalmazs a fmenbl elrhet SETUP menpont meghvsval szabhat testre. A tovbbi rszleteket a http://www.washington.edu/pine oldalon tallhatjuk (angolul).
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
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 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
756
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
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.
az /etc/rc szkriptek alapjainak ismerete; az alapvet hlzati fogalmak ismerete; a kls szoftverek teleptsnek ismerete (4 fejezet).
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.
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.
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
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
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.
762
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.
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.
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
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
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
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
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"
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.
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.
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
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.
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
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
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.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.
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
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
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.
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
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
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
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
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
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
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.
2.
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
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.
Miutn elvgeztk ezeket a lpseket, kpesek lesznk futtatni az ypcat passwd parancsot, s ltni a NIS szerver jelszavakat tartalmaz tblzatt.
# 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
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
Lers az IT tanszk htkznapi dolgozi az IT tanszk jdonslt dolgozi tlagos dolgozk sztndjasok
Gpek nevei
haboru, halal, ehseg, szennyezes
buszkeseg, kapzsisag, irigyseg, harag, bujasag, Kevsb fontos szerverek. Az IT tankszk sszes tagja el tudja rni ezeket a gpeket. lustasag egy, ketto, harom, negy, ...
779
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
Ugyanez a folyamat javasolt olyan esetekben is, ahol 225 felhasznlnl tbbre lenne szksg egyetlen hlzati csoporton bell.
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
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
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
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
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!
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"
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
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.
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.
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
A DHCP kliens az rvnyes brleteket tartja nyilvn ezekben az llomnyban s naplknt hasznlja. A dhclient.leases(5) man oldal ezt valamivel bvebben kifejti.
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.
788
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.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.
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
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.
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.
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.
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
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
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
795
796
// 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
}; }; }; };
cmek (RFC 3879) { type master; file { type master; file { type master; file { type master; file
}; }; }; };
// 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
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.
799
A A A A A
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.
800
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
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.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
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.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
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.
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"
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.
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
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
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
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.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
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.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.
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
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.
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
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.
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
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.
813
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.
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
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.
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.
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
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.
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
A logger(1) hasznlatval prbljuk ki a kliensrl a aplzenetek hlzaton keresztli kldst, s kldjnk valamit a syslogd dmonnak:
817
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"
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
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)).
819
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).
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.
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).
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.
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 mkdsnek naplzst a pflog.ko teszi lehetv, amelyet az albbi sor hozzadsval engedlyezhetnk az /etc/rc.conf llomnyban:
pflog_enable="YES"
Ha a PF tbbi funkcijt is hasznlni szeretnnk, akkor ehhez egy j rendszermagot kell fordtanunk PF tmogatssal.
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.
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
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
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
# # # # # #
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.
825
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.
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.
828
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.
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.
830
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
831
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
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
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.
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
838
##### 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
# 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
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
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 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.
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.
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
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
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
843
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.
844
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.
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
845
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
A FreeBSD-hez mellkelt alaprtelmezett tzfaltpusok kzl az /etc/rc.firewall llomny tolvassval tudunk vlasztani, s megadni az albbi helyett:
firewall_type="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
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.
847
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 szmllk nullzsa:
# ipfw zero
848
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.1. PARANCS Minden j szably elttt az add (mint hozzads) parancsnak kell szerepelni, amellyel a bels tblzatba tudjuk felvenni.
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.
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
Az sszes csomagokkal kapcsolatos naplzs alaprtelmezs szerint a /var/log/security llomnyba kerl, amelyet az /etc/syslog.conf llomny denil.
852
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
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.
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.
854
855
# 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
# 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 #####################
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
$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
# 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
# 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
# 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
863
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.
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.1. Plda
Az tvlaszts klnbz terleteit a kvetkez netstat parancs alapjn fogjuk bemutatni:
864
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
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
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
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) man oldalon olvashatunk arrl bvebben, hogy a hlzati tvlasztsi tblzatokat kzzel hogyan tudjuk mdostani.
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.
internet (10.0.0.1/24) alaprtelmezett tjr az internet fel xl0 fellet, 10.0.0.10/24 A-utvalaszto FreeBSD tjr
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
Flags UGS UH UC UC
Refs 0 0 0 0
Use 49378 6 0 0
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
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
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.
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
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.
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
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
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
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
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
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"
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"
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
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
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.
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
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.
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.
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
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
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
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
885
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
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"
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
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
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.
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.
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.
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
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.
889
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
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.
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
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
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
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.
0 0 0 0
ms ms ms ms
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
PSM 3
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
State OPEN
893
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"
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
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
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"
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
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.
896
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
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.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
898
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.
899
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
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
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
901
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.
902
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.
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
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
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
BEGEMOT-BRIDGE-MIB::begemotBridgeDefaultBridgeIf.0 s bridge2
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.
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
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>
Flags SA SA
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
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
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"
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:
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.
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
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.
911
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.
912
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.
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
# 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
Miutn vgzett, mr csak a DESTDIR knyvtrban tallhat /etc/rc.conf s /etc/fstab llomnyokat kell az ignyeinkhez igaztani.
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.
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.
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.
918
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
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.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.
920
Eloszt
tvlaszt
A kliens
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.
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.
921
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 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.
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 ]]]
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.
helyiIP publikusIP
A helyi hlzaton tallhat kliens sajt IP-cme. A klienshez tartoz megfelel kls IP-cm.
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.
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
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
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
Gateway
Flags
Refs 0
Use 0
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
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.
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.
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
926
KAME.net (http://www.kame.net)
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.
927
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.
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.
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"
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 "
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
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.
930
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
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
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 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
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
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.
933
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
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
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
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
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/
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
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
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)
ftp://ftp.ar.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)
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)
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/))
941
Fggelk A. A FreeBSD beszerzse Dl-Afrika Brmilyen gond esetn a kvetkez cmet kell rtesteni: <hostmaster@za.FreeBSD.org>.
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)
ftp://ftp.ee.FreeBSD.org/pub/FreeBSD/ (ftp)
ftp://ftp..FreeBSD.org/pub/FreeBSD/ (ftp)
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
Hongkong
ftp://ftp.hk.FreeBSD.org/pub/FreeBSD/ (ftp)
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)
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)
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
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)
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)
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)
946
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/))
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)
ftp://ftp.isu.net.sa/pub/ftp.freebsd.org/ (ftp)
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/))
947
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
j-Zland
ftp://ftp.nz.FreeBSD.org/pub/FreeBSD/ (ftp)
Ukrajna
948
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.
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
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
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
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
Amikor kri,
% cvs co -rRELENG_6 ls
Ezutn
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.
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.
952
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 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
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.
ftp://ftp.FreeBSD.org/pub/FreeBSD/development/CTM/
ftp://ftp.za.FreeBSD.org/pub/FreeBSD/CTM/
Tajvan/R.O.C.
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
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
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
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.
959
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
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.
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 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
Archivl eszkzk.
ports-astro release=cvs
962
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
Kommunikcis szoftverek.
ports-converters release=cvs
Adatbzisok.
ports-deskutils release=cvs
Fejleszteszkzk.
ports-dns release=cvs
Szvegszerkesztk.
963
Jtkok.
ports-german release=cvs
Grakus segdeszkzk.
ports-hebrew release=cvs
Java segdeszkzk.
ports-korean release=cvs
Programozsi nyelvek.
ports-mail release=cvs
Levelez programok.
ports-math release=cvs
964
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
USENET hrszoftverek.
ports-palm release=cvs
Nyomdai programok.
ports-russian release=cvs
Tudomnyos programok.
965
Biztonsgi segdprogramok.
ports-shells release=cvs
Parancsrtelmezk.
ports-sysutils release=cvs
Rendszerprogramok.
ports-textproc release=cvs
X11 rk.
ports-x11-drivers release=cvs
X11 meghajtk.
ports-x11-fm release=cvs
X11 llomnykezelk.
ports-x11-fonts release=cvs
X11 eszkzrendszerek.
ports-x11-servers release=cvs
X11 szerverek.
ports-x11-themes release=cvs
X11 tmk.
966
X11 ablakkezelk.
projects-all 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
Jtkok (/usr/src/games).
src-gnu release=cvs
967
Fggvnyknyvtrak (/usr/src/lib).
src-libexec release=cvs
A rendszermag (/usr/src/sys).
src-sys-crypto release=cvs
www release=cvs
968
A FreeBSD Projekt honlapjnak generlt llomnyai (de nem a forrsai). A WWW tkrzsek hasznljk.
cvsup.FreeBSD.org
Elsdleges tkrzsek
cvsup1.FreeBSD.org
969
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
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
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
Bulgria
cvsup.bg.FreeBSD.org
Costa Rica
cvsup1.cr.FreeBSD.org
971
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
sztorszg
cvsup.ee.FreeBSD.org
Finnorszg
cvsup..FreeBSD.org cvsup2..FreeBSD.org
Franciaorszg
cvsup.fr.FreeBSD.org
972
Flp-szigetek
cvsup1.ph.FreeBSD.org
Grgorszg
cvsup.gr.FreeBSD.org cvsup2.gr.FreeBSD.org
Hollandia
Indonzia
cvsup.id.FreeBSD.org
rorszg
cvsup.ie.FreeBSD.org cvsup2.ie.FreeBSD.org
973
cvsup.is.FreeBSD.org
Izrael
cvsup.il.FreeBSD.org
Japn
Kanada
cvsup1.ca.FreeBSD.org
Kna
Kirgizisztn
cvsup.kg.FreeBSD.org
974
Kuvait
cvsup1.kw.FreeBSD.org
Lengyelorszg
Lettorszg
cvsup.lv.FreeBSD.org cvsup2.lv.FreeBSD.org
Litvnia
Magyarorszg
cvsup.hu.FreeBSD.org
975
Norvgia
cvsup.no.FreeBSD.org
Olaszorszg
cvsup.it.FreeBSD.org
rmnyorszg
cvsup1.am.FreeBSD.org
Oroszorszg
976
Romnia
San Marino
cvsup.sm.FreeBSD.org
Spanyolorszg
Svjc
cvsup.ch.FreeBSD.org
Svdorszg
cvsup.se.FreeBSD.org cvsup2.se.FreeBSD.org
977
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
cvsup.tr.FreeBSD.org cvsup2.tr.FreeBSD.org
j-Zland
cvsup.nz.FreeBSD.org cvsup2.nz.FreeBSD.org
Ukrajna
979
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.
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
Karbantart: <ftp@stacken.kth.se>
985
ftp: a FreeBSD FTP szervernek rszleges tkrzse. FreeBSD: a FreeBSD FTP szervernek teljes tkrzse.
FreeBSD: A FreeBSD FTP szerver teljes tartalma. FreeBSD-gnats: A GNATS hibanyilvntart adatbzis. FreeBSD-Archive: A FreeBSD archvumait trol FTP szerver tkrzse.
Amerikai Egyeslt llamok rsync://ftp-master.FreeBSD.org/ Ezt a szervert csak az elsdleges FreeBSD tkrzseknek szabad hasznlniuk.
986
FreeBSD: a FreeBSD FTP szervernek kzponti archvuma. acl: a FreeBSD kzponti ACL listja.
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.
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.
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
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
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
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.
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
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
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
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
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
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
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
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
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
996
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
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
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
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 TCP/IP forrskdjval s hlzatkezelssel kapcsolatos krdsek A OpenOfce.org s StarOfce alkalmazsok portolsa FreeBSD-re
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 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
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
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 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)
A portfa vltozsai
1001
Fggelk C. Forrsok az interneten Lista Forrskd terlete A terlet lersa (minek a forrsa) A projektek vltozsai
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 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
1003
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
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.
1012
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.
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)
1013
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)
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)
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
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.
Kzponti szerverek
http://www.FreeBSD.org/
Argentna
http://www.ar.FreeBSD.org/
Ausztrlia
http://www.au.FreeBSD.org/ http://www2.au.FreeBSD.org/
Ausztria
1015
Belgium
http://freebsd.unixtech.be/
Brazlia
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
Dl-Afrika
http://www.za.FreeBSD.org/ http://www2.za.FreeBSD.org/
1016
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
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
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
1019
http://www4.ru.FreeBSD.org/ http://www5.ru.FreeBSD.org/
Portuglia
Romnia
San Marino
http://www.sm.FreeBSD.org/
Spanyolorszg
Svjc
http://www.ch.FreeBSD.org/ http://www2.ch.FreeBSD.org/
Svdorszg
http://www.se.FreeBSD.org/
1020
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
Thaifld
http://www.th.FreeBSD.org/
Trkorszg
1021
j-Zland
http://www.nz.FreeBSD.org/
Ukrajna
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
1023
Fggelk D. PGP-kulcsok
1024
Fggelk D. PGP-kulcsok
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
1025
Fggelk D. PGP-kulcsok
sub 2048R/27C54137 2005-11-06
1026
Fggelk D. PGP-kulcsok
uid sub Marcus von Appen <mva@freebsd.org> 2048g/D34A3BAF 2009-02-14
1027
Fggelk D. PGP-kulcsok
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
1029
Fggelk D. PGP-kulcsok
1030
Fggelk D. PGP-kulcsok
1031
Fggelk D. PGP-kulcsok
1032
Fggelk D. PGP-kulcsok
1033
Fggelk D. PGP-kulcsok
sub 2048g/6A3FDFF9 2009-02-27
1034
Fggelk D. PGP-kulcsok
1035
Fggelk D. PGP-kulcsok
1036
Fggelk D. PGP-kulcsok
1037
Fggelk D. PGP-kulcsok
sub 2048g/8DB0CF2C 2005-05-29 [expires: 2007-05-29]
1038
Fggelk D. PGP-kulcsok
1039
Fggelk D. PGP-kulcsok
1040
Fggelk D. PGP-kulcsok
1041
Fggelk D. PGP-kulcsok
1042
Fggelk D. PGP-kulcsok
1043
Fggelk D. PGP-kulcsok
sub 1024g/9DF0231A 2001-01-15
1044
Fggelk D. PGP-kulcsok
1045
Fggelk D. PGP-kulcsok
1046
Fggelk D. PGP-kulcsok
1047
Fggelk D. PGP-kulcsok
sub 2048g/FA334AE3 2004-10-29
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]
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
1049
Fggelk D. PGP-kulcsok
1050
Fggelk D. PGP-kulcsok
1051
Fggelk D. PGP-kulcsok
sub 2048g/23D57658 2003-12-13
1052
Fggelk D. PGP-kulcsok
uid sub Sam Lawrance <boris@brooknet.com.au> 2048g/0F9CCF92 2003-08-14
1053
Fggelk D. PGP-kulcsok
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]
1055
Fggelk D. PGP-kulcsok
sub 1024g/03C2DC87 2001-07-30 [expires: 2005-08-25]
1056
Fggelk D. PGP-kulcsok
sub 4096g/B6D7B15D 2007-07-10
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
1058
Fggelk D. PGP-kulcsok
1059
Fggelk D. PGP-kulcsok
1060
Fggelk D. PGP-kulcsok
1061
Fggelk D. PGP-kulcsok
1062
Fggelk D. PGP-kulcsok
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]
1064
Fggelk D. PGP-kulcsok
1065
Fggelk D. PGP-kulcsok
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>
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
1068
Fggelk D. PGP-kulcsok
sub 2048g/6890C6CA 2005-11-13
1069
Fggelk D. PGP-kulcsok
uid sub Benedict Reuschling <bcr@FreeBSD.org> 2048g/8DA16EDD 2009-05-24
1070
Fggelk D. PGP-kulcsok
sub 2048g/C267084D 1997-08-21
1071
Fggelk D. PGP-kulcsok
1072
Fggelk D. PGP-kulcsok
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
1074
Fggelk D. PGP-kulcsok
1075
Fggelk D. PGP-kulcsok
sub 2048g/9426F4D1 2002-04-07
1076
Fggelk D. PGP-kulcsok
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]
1077
Fggelk D. PGP-kulcsok
uid uid sub Stacey Son <sson@secure.net> Stacey Son <sson@dev-random.com> 2048g/0F724E52 2008-07-08
1078
Fggelk D. PGP-kulcsok
1079
Fggelk D. PGP-kulcsok
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
1080
Fggelk D. PGP-kulcsok
1081
Fggelk D. PGP-kulcsok
1082
Fggelk D. PGP-kulcsok
1083
Fggelk D. PGP-kulcsok
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
1085
Fggelk D. PGP-kulcsok
1086
Fggelk D. PGP-kulcsok
1087
Fggelk D. PGP-kulcsok
1088
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
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.
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.
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.
Domain Name System Az internetes cmek (pl. levelezes.valami.net) emberek s gpek ltal is olvashat formja kzti lekpezsrt felels rendszer.
1094
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
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 Transfer Protocol A TCP felett implementlt magasabb szint protokollok csaldjnak egyik tagja, aminek segtsgvel llomnyokat tudunk tmsolni egy TCP/IP-hlzaton keresztl.
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
H
HTML Lsd: HyperText Markup Language HUP Lsd: HangUp HangUp
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
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
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).
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
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.
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
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
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
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
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
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).
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.
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
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.
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
Signal Ground Egy RS232 szabvny t vagy vezetk, ami a jelek szmra a referencia fldet adja.
Secure Shell
Subversion A Subversion egy CVS-hez hasonl verzikezel rendszer, nmileg bvebb tudssal. Lsd mg: Concurrent Versions System. Suspend To RAM
Symmetric MultiProcessor
1110
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
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
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