diff options
105 files changed, 131650 insertions, 0 deletions
diff --git a/hu_HU.ISO8859-2/Makefile b/hu_HU.ISO8859-2/Makefile index be111d3a5d..cd7573dc91 100644 --- a/hu_HU.ISO8859-2/Makefile +++ b/hu_HU.ISO8859-2/Makefile @@ -1,6 +1,7 @@ # $FreeBSD$ SUBDIR = articles +SUBDIR+= books COMPAT_SYMLINK = hu diff --git a/hu_HU.ISO8859-2/books/Makefile b/hu_HU.ISO8859-2/books/Makefile new file mode 100644 index 0000000000..a3f33818a9 --- /dev/null +++ b/hu_HU.ISO8859-2/books/Makefile @@ -0,0 +1,15 @@ +# +# The FreeBSD Documentation Project +# The FreeBSD Hungarian Documentation Project +# +# $FreeBSD$ +# Original Revision: 1.4 +# + +SUBDIR = handbook + +ROOT_SYMLINKS= handbook + +DOC_PREFIX?= ${.CURDIR}/../.. +.include "${DOC_PREFIX}/share/mk/doc.project.mk" + diff --git a/hu_HU.ISO8859-2/books/Makefile.inc b/hu_HU.ISO8859-2/books/Makefile.inc new file mode 100644 index 0000000000..e267fc0804 --- /dev/null +++ b/hu_HU.ISO8859-2/books/Makefile.inc @@ -0,0 +1,10 @@ +# +# The FreeBSD Documentation Project +# The FreeBSD Hungarian Documentation Project +# +# $FreeBSD$ +# Original Revision: 1.2 +# + +DESTDIR?= ${DOCDIR}/hu_HU.ISO8859-2/books/${.CURDIR:T} + diff --git a/hu_HU.ISO8859-2/books/handbook/Makefile b/hu_HU.ISO8859-2/books/handbook/Makefile new file mode 100644 index 0000000000..51f40350f4 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/Makefile @@ -0,0 +1,309 @@ +# +# The FreeBSD Documentation Project +# The FreeBSD Hungarian Documentation Project + +# $FreeBSD$ +# Original Revision: 1.109 +# +# Build the FreeBSD Handbook. +# + +# ------------------------------------------------------------------------ +# +# Handbook-specific variables +# +# WITH_PGPKEYS The print version of the handbook only prints PGP +# fingerprints by default. If you would like for the +# entire key to be displayed, then set this variable. +# This option has no affect on the HTML formats. +# +# Handbook-specific targets +# +# pgpkeyring This target will read the contents of +# pgpkeys/chapter.sgml and will extract all of +# the pgpkeys to standard out. This output can then +# be redirected into a file and distributed as a +# public keyring of FreeBSD developers that can +# easily be imported into PGP/GPG. +# +# ------------------------------------------------------------------------ + +.PATH: ${.CURDIR}/../../share/sgml/glossary + +# +# Tidy messes up iso-8859-2 characters +# + +NO_TIDY= yes + +MAINTAINER= pgj@FreeBSD.org + +DOC?= book + +FORMATS?= html-split + +HAS_INDEX= true +USE_PS2PDF= yes + +INSTALL_COMPRESSED?= gz +INSTALL_ONLY_COMPRESSED?= + +IMAGES = advanced-networking/isdn-bus.eps +IMAGES+= advanced-networking/isdn-twisted-pair.eps +IMAGES+= advanced-networking/natd.eps +IMAGES+= advanced-networking/net-routing.pic +IMAGES+= advanced-networking/static-routes.pic +IMAGES+= geom/striping.pic +IMAGES_EN+= install/adduser1.scr +IMAGES_EN+= install/adduser2.scr +IMAGES_EN+= install/adduser3.scr +IMAGES_EN+= install/boot-loader-menu.scr +IMAGES_EN+= install/boot-mgr.scr +IMAGES_EN+= install/config-country.scr +IMAGES_EN+= install/console-saver1.scr +IMAGES_EN+= install/console-saver2.scr +IMAGES_EN+= install/console-saver3.scr +IMAGES_EN+= install/console-saver4.scr +IMAGES_EN+= install/disklabel-auto.scr +IMAGES_EN+= install/disklabel-ed1.scr +IMAGES_EN+= install/disklabel-ed2.scr +IMAGES_EN+= install/disklabel-fs.scr +IMAGES_EN+= install/disklabel-root1.scr +IMAGES_EN+= install/disklabel-root2.scr +IMAGES_EN+= install/disklabel-root3.scr +IMAGES+= install/disk-layout.eps +IMAGES_EN+= install/dist-set.scr +IMAGES_EN+= install/dist-set2.scr +IMAGES_EN+= install/docmenu1.scr +IMAGES_EN+= install/ed0-conf.scr +IMAGES_EN+= install/ed0-conf2.scr +IMAGES_EN+= install/edit-inetd-conf.scr +IMAGES_EN+= install/fdisk-drive1.scr +IMAGES_EN+= install/fdisk-drive2.scr +IMAGES_EN+= install/fdisk-edit1.scr +IMAGES_EN+= install/fdisk-edit2.scr +IMAGES_EN+= install/ftp-anon1.scr +IMAGES_EN+= install/ftp-anon2.scr +IMAGES_EN+= install/hdwrconf.scr +IMAGES_EN+= install/keymap.scr +IMAGES_EN+= install/main1.scr +IMAGES_EN+= install/mainexit.scr +IMAGES_EN+= install/main-std.scr +IMAGES_EN+= install/main-options.scr +IMAGES_EN+= install/main-doc.scr +IMAGES_EN+= install/main-keymap.scr +IMAGES_EN+= install/media.scr +IMAGES_EN+= install/mouse1.scr +IMAGES_EN+= install/mouse2.scr +IMAGES_EN+= install/mouse3.scr +IMAGES_EN+= install/mouse4.scr +IMAGES_EN+= install/mouse5.scr +IMAGES_EN+= install/mouse6.scr +IMAGES_EN+= install/mta-main.scr +IMAGES_EN+= install/net-config-menu1.scr +IMAGES_EN+= install/net-config-menu2.scr +IMAGES_EN+= install/nfs-server-edit.scr +IMAGES_EN+= install/ntp-config.scr +IMAGES_EN+= install/options.scr +IMAGES_EN+= install/pkg-cat.scr +IMAGES_EN+= install/pkg-confirm.scr +IMAGES_EN+= install/pkg-install.scr +IMAGES_EN+= install/pkg-sel.scr +IMAGES_EN+= install/probstart.scr +IMAGES_EN+= install/routed.scr +IMAGES_EN+= install/security.scr +IMAGES_EN+= install/sysinstall-exit.scr +IMAGES_EN+= install/timezone1.scr +IMAGES_EN+= install/timezone2.scr +IMAGES_EN+= install/timezone3.scr +IMAGES_EN+= install/userconfig.scr +IMAGES_EN+= install/userconfig2.scr +IMAGES+= mail/mutt1.scr +IMAGES+= mail/mutt2.scr +IMAGES+= mail/mutt3.scr +IMAGES_EN+= mail/pine1.scr +IMAGES_EN+= mail/pine2.scr +IMAGES+= mail/pine3.scr +IMAGES+= mail/pine4.scr +IMAGES+= mail/pine5.scr + +IMAGES+= install/example-dir1.eps +IMAGES+= install/example-dir2.eps +IMAGES+= install/example-dir3.eps +IMAGES+= install/example-dir4.eps +IMAGES+= install/example-dir5.eps +IMAGES+= security/ipsec-network.pic +IMAGES+= security/ipsec-crypt-pkt.pic +IMAGES+= security/ipsec-encap-pkt.pic +IMAGES+= security/ipsec-out-pkt.pic +IMAGES+= vinum/vinum-concat.pic +IMAGES+= vinum/vinum-mirrored-vol.pic +IMAGES+= vinum/vinum-raid10-vol.pic +IMAGES+= vinum/vinum-raid5-org.pic +IMAGES+= vinum/vinum-simple-vol.pic +IMAGES+= vinum/vinum-striped-vol.pic +IMAGES+= vinum/vinum-striped.pic +IMAGES_EN+= virtualization/parallels-freebsd1.png +IMAGES_EN+= virtualization/parallels-freebsd2.png +IMAGES_EN+= virtualization/parallels-freebsd3.png +IMAGES_EN+= virtualization/parallels-freebsd4.png +IMAGES_EN+= virtualization/parallels-freebsd5.png +IMAGES_EN+= virtualization/parallels-freebsd6.png +IMAGES_EN+= virtualization/parallels-freebsd7.png +IMAGES_EN+= virtualization/parallels-freebsd8.png +IMAGES_EN+= virtualization/parallels-freebsd9.png +IMAGES_EN+= virtualization/parallels-freebsd10.png +IMAGES_EN+= virtualization/parallels-freebsd11.png +IMAGES_EN+= virtualization/parallels-freebsd12.png +IMAGES_EN+= virtualization/parallels-freebsd13.png +IMAGES_EN+= virtualization/virtualpc-freebsd1.png +IMAGES_EN+= virtualization/virtualpc-freebsd2.png +IMAGES_EN+= virtualization/virtualpc-freebsd3.png +IMAGES_EN+= virtualization/virtualpc-freebsd4.png +IMAGES_EN+= virtualization/virtualpc-freebsd5.png +IMAGES_EN+= virtualization/virtualpc-freebsd6.png +IMAGES_EN+= virtualization/virtualpc-freebsd7.png +IMAGES_EN+= virtualization/virtualpc-freebsd8.png +IMAGES_EN+= virtualization/virtualpc-freebsd9.png +IMAGES_EN+= virtualization/virtualpc-freebsd10.png +IMAGES_EN+= virtualization/virtualpc-freebsd11.png +IMAGES_EN+= virtualization/virtualpc-freebsd12.png +IMAGES_EN+= virtualization/virtualpc-freebsd13.png +IMAGES_EN+= virtualization/vmware-freebsd01.png +IMAGES_EN+= virtualization/vmware-freebsd02.png +IMAGES_EN+= virtualization/vmware-freebsd03.png +IMAGES_EN+= virtualization/vmware-freebsd04.png +IMAGES_EN+= virtualization/vmware-freebsd05.png +IMAGES_EN+= virtualization/vmware-freebsd06.png +IMAGES_EN+= virtualization/vmware-freebsd07.png +IMAGES_EN+= virtualization/vmware-freebsd08.png +IMAGES_EN+= virtualization/vmware-freebsd09.png +IMAGES_EN+= virtualization/vmware-freebsd10.png +IMAGES_EN+= virtualization/vmware-freebsd11.png +IMAGES_EN+= virtualization/vmware-freebsd12.png + +# Images from the cross-document image library +IMAGES_LIB= callouts/1.png +IMAGES_LIB+= callouts/2.png +IMAGES_LIB+= callouts/3.png +IMAGES_LIB+= callouts/4.png +IMAGES_LIB+= callouts/5.png +IMAGES_LIB+= callouts/6.png +IMAGES_LIB+= callouts/7.png +IMAGES_LIB+= callouts/8.png +IMAGES_LIB+= callouts/9.png +IMAGES_LIB+= callouts/10.png +IMAGES_LIB+= callouts/11.png +IMAGES_LIB+= callouts/12.png +IMAGES_LIB+= callouts/13.png +IMAGES_LIB+= callouts/14.png +IMAGES_LIB+= callouts/15.png + +# +# SRCS lists the individual SGML files that make up the document. Changes +# to any of these files will force a rebuild +# + +# SGML content +SRCS+= audit/chapter.sgml +SRCS+= book.sgml +SRCS+= colophon.sgml +SRCS+= freebsd-glossary.sgml +SRCS+= advanced-networking/chapter.sgml +SRCS+= basics/chapter.sgml +SRCS+= bibliography/chapter.sgml +SRCS+= boot/chapter.sgml +SRCS+= config/chapter.sgml +SRCS+= cutting-edge/chapter.sgml +SRCS+= desktop/chapter.sgml +SRCS+= disks/chapter.sgml +SRCS+= eresources/chapter.sgml +SRCS+= firewalls/chapter.sgml +SRCS+= geom/chapter.sgml +SRCS+= install/chapter.sgml +SRCS+= introduction/chapter.sgml +SRCS+= jails/chapter.sgml +SRCS+= kernelconfig/chapter.sgml +SRCS+= l10n/chapter.sgml +SRCS+= linuxemu/chapter.sgml +SRCS+= mac/chapter.sgml +SRCS+= mail/chapter.sgml +SRCS+= mirrors/chapter.sgml +SRCS+= multimedia/chapter.sgml +SRCS+= network-servers/chapter.sgml +SRCS+= pgpkeys/chapter.sgml +SRCS+= ports/chapter.sgml +SRCS+= ppp-and-slip/chapter.sgml +SRCS+= preface/preface.sgml +SRCS+= printing/chapter.sgml +SRCS+= security/chapter.sgml +SRCS+= serialcomms/chapter.sgml +SRCS+= users/chapter.sgml +SRCS+= vinum/chapter.sgml +SRCS+= virtualization/chapter.sgml +SRCS+= x11/chapter.sgml + +# Entities +SRCS+= chapters.ent + +SYMLINKS= ${DESTDIR} index.html handbook.html + +# Turn on all the chapters. +CHAPTERS?= ${SRCS:M*chapter.sgml} + +SGMLFLAGS+= ${CHAPTERS:S/\/chapter.sgml//:S/^/-i chap./} +SGMLFLAGS+= -i chap.freebsd-glossary + +pgpkeyring: pgpkeys/chapter.sgml + @${JADE} -V nochunks ${OTHERFLAGS} ${JADEOPTS} -d ${DSLPGP} -t sgml ${MASTERDOC} + +# +# Handbook-specific variables +# +.if defined(WITH_PGPKEYS) +JADEFLAGS+= -V withpgpkeys +.endif + +URL_RELPREFIX?= ../../../.. +DOC_PREFIX?= ${.CURDIR}/../../.. + +# +# rules generating lists of mirror site from XML database. +# +XMLDOCS= mirrors-ftp:::mirrors.sgml.ftp.inc.tmp \ + mirrors-cvsup:::mirrors.sgml.cvsup.inc.tmp \ + eresources:::eresources.sgml.www.inc.tmp +DEPENDSET.DEFAULT= transtable mirror +XSLT.DEFAULT= ${XSL_MIRRORS} +XML.DEFAULT= ${XML_MIRRORS} +NO_TIDY.DEFAULT= yes + +PARAMS.mirrors-ftp+= --param 'type' "'ftp'" \ + --param 'proto' "'ftp'" \ + --param 'target' "'handbook/mirrors/chapter.sgml'" +PARAMS.mirrors-cvsup+= --param 'type' "'cvsup'" \ + --param 'proto' "'cvsup'" \ + --param 'target' "'handbook/mirrors/chapter.sgml'" +PARAMS.eresources+= --param 'type' "'www'" \ + --param 'proto' "'http'" \ + --param 'target' "'handbook/eresources/chapter.sgml'" + +SRCS+= mirrors.sgml.ftp.inc \ + mirrors.sgml.cvsup.inc \ + eresources.sgml.www.inc + +CLEANFILES+= mirrors.sgml.ftp.inc mirrors.sgml.ftp.inc.tmp \ + mirrors.sgml.cvsup.inc mirrors.sgml.cvsup.inc.tmp \ + eresources.sgml.www.inc eresources.sgml.www.inc.tmp + +.include "${DOC_PREFIX}/share/mk/doc.project.mk" + +.for p in ftp cvsup +mirrors.sgml.${p}.inc: mirrors.sgml.${p}.inc.tmp + ${SED} -e 's,<\([^ >]*\)\([^>]*\)/>,<\1\2></\1>,;s,</anchor>,,'\ + < $@.tmp > $@ || (${RM} -f $@ && false) +.endfor + +eresources.sgml.www.inc: eresources.sgml.www.inc.tmp + ${SED} -e 's,<\([^ >]*\)\([^>]*\)/>,<\1\2></\1>,;s,</anchor>,,'\ + < $@.tmp > $@ || (${RM} -f $@ && false) diff --git a/hu_HU.ISO8859-2/books/handbook/advanced-networking/Makefile b/hu_HU.ISO8859-2/books/handbook/advanced-networking/Makefile new file mode 100644 index 0000000000..eb62e4335c --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/advanced-networking/Makefile @@ -0,0 +1,15 @@ +# +# Build the Handbook with just the content from this chapter. +# +# $FreeBSD$ +# + +CHAPTERS= advanced-networking/chapter.sgml + +VPATH= .. + +MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX} + +DOC_PREFIX?= ${.CURDIR}/../../../.. + +.include "../Makefile" diff --git a/hu_HU.ISO8859-2/books/handbook/advanced-networking/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/advanced-networking/chapter.sgml new file mode 100644 index 0000000000..af9670ecca --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/advanced-networking/chapter.sgml @@ -0,0 +1,7818 @@ +<!-- + The FreeBSD Documentation Project + + $FreeBSD$ +--> + +<!-- The FreeBSD Hungarian Documentation Project + Translated by: PALI, Gabor <pgj@FreeBSD.org> + Original Revision: 1.406 --> + +<chapter id="advanced-networking" lang="hu"> + <title>Egyéb haladó hálózati + témák</title> + + <sect1 id="advanced-networking-synopsis"> + <title>Áttekintés</title> + + <para>Ebben a fejezetben számos komolyabb + hálózati témát fogunk + tárgyalni.</para> + + <para>A fejezet elolvasása során + megismerjük:</para> + + <itemizedlist> + <listitem> + <para>az átjárók és az + útválasztás alapjait;</para> + </listitem> + + <listitem> + <para>hogyan állítsunk be IEEE 802.11 és + &bluetooth; eszközöket;</para> + </listitem> + + <listitem> + <para>a &os; segítségével hogyan tudunk + két hálózatot összekötni + hálózati hidakon keresztül;</para> + </listitem> + + <listitem> + <para>hogyan indítsuk hálózatról egy + lemez nélküli gépet;</para> + </listitem> + + <listitem> + <para>hogyan állítsunk be hálózati + címfordítást;</para> + </listitem> + + <listitem> + <para>hogyan kapcsoljunk össze két + számítógépet PLIP + használatával;</para> + </listitem> + + <listitem> + <para>hogyan állítsuk be az IPv6 + használatát egy &os;-s gépen</para> + </listitem> + + <listitem> + <para>hogyan állítsuk be az ATM + használatát;</para> + </listitem> + + <listitem> + <para>hogyan engedélyezzük és + használjuk a Közös címredundancia + protokollt &os;-ben.</para> + </listitem> + </itemizedlist> + + <para>A fejezet elolvasásához ajánlott:</para> + + <itemizedlist> + <listitem> + <para>az <filename>/etc/rc</filename> könyvtárban + található szkriptek + mûködésének ismerete;</para> + </listitem> + + <listitem> + <para>az alapvetõ hálózati fogalmak + ismerete;</para> + </listitem> + + <listitem> + <para>egy új &os; rendszermag + beállításának és + telepítésének ismerete (<xref + linkend="kernelconfig">);</para> + </listitem> + + <listitem> + <para>a külsõ szoftverek + telepítésének ismerete (<xref + linkend="ports">).</para> + </listitem> + + </itemizedlist> + </sect1> + + <sect1 id="network-routing"> + <sect1info> + <authorgroup> + <author> + <firstname>Coranth</firstname> + <surname>Gryphon</surname> + <contrib>Készítette: </contrib> + </author> + </authorgroup> + </sect1info> + + <title>Átjárók és az + útválasztás</title> + + <indexterm><primary>útválasztás</primary></indexterm> + <indexterm><primary>átjáró</primary></indexterm> + <indexterm><primary>alhálózat</primary></indexterm> + + <para>Egy gép egy másikat úgy tud + megtalálni a hálózaton, ha erre + létezik egy olyan mechanizmus, amely leírja, hogyan + tudunk eljutni az egyiktõl a másikig. Ezt + hívjuk + <firstterm>útválasztásnak</firstterm> + (routing). Az <quote>útvonal</quote> (route) címek + egy párjaként adható meg, egy + <quote>céllal</quote> (destination) és egy + <quote>átjáróval</quote> (gateway). Ez a + páros mondja meg, hogy ha el akarjuk érni ezt a + <emphasis>célt</emphasis>, akkor ezen az + <emphasis>átjárón</emphasis> keresztül + kell továbbhaladnunk. A céloknak három + típusa lehet: egyéni gépek, + alhálózatok és az + <quote>alapértelmezett</quote>. Az + <quote>alapértelmezett útvonalat</quote> (default + route) abban az esetben alkalmazzuk, ha semelyik más + útvonal nem megfelelõ. Az alapértelmezett + útvonalakról a késõbbiekben még + beszélni fogunk. Három típusa van az + átjáróknak: egyéni gépek, + felületek (avagy <quote>linkek</quote>) és a hardveres + Ethernet címek (MAC-címek).</para> + + <sect2> + <title>Példa</title> + + <para>Az útválasztás + különbözõ területeit a + következõ <command>netstat</command> parancs + alapján fogjuk bemutatni:</para> + + <screen>&prompt.user; <userinput>netstat -r</userinput> +Routing tables + +Destination Gateway Flags Refs Use Netif Expire + +default outside-gw UGSc 37 418 ppp0 +localhost localhost UH 0 181 lo0 +test0 0:e0:b5:36:cf:4f UHLW 5 63288 ed0 77 +10.20.30.255 link#1 UHLW 1 2421 +example.com link#1 UC 0 0 +host1 0:e0:a8:37:8:1e UHLW 3 4601 lo0 +host2 0:e0:a8:37:8:1e UHLW 0 5 lo0 => +host2.example.com link#1 UC 0 0 +224 link#1 UC 0 0</screen> + + <indexterm><primary>alapértelmezett + útvonal</primary></indexterm> + + <para>Az elsõ két sorban az alapértelmezett + útvonalat (melyrõl részleteiben majd a <link + linkend="network-routing-default">következõ + szakaszban</link> fogunk szólni) és a + <hostid>localhost</hostid> útvonalát + láthatjuk.</para> + + <indexterm><primary>loopback eszköz</primary></indexterm> + + <para>A <hostid>localhost</hostid> címhez az + útválasztási táblázatban a + <devicename>lo0</devicename> eszköz tartozik (a + <literal>Netif</literal> oszlopban), amelyet loopback + eszköznek is neveznek. Ez arra utasítja a + rendszert, hogy az ide küldött csomagokat ne a helyi + hálózaton küldje keresztül, hanem csak + ezen a belsõ felületen, mivel úgyis oda + jutnának vissza, ahonnan indultak.</para> + + <indexterm> + <primary>Ethernet</primary> + <secondary>MAC-cím</secondary> + </indexterm> + + <para>A táblázatban a következõ sor egy + <hostid role="mac">0:e0</hostid> kezdetû címet + tartalmaz. Ez egy hardveres Ethernet cím, más + néven MAC-cím. A &os; magától + képes beazonosítani tetszõleges gépet + (ebben a példában a <hostid>test0</hostid> + gépet) a helyi Ethernetes hálózaton + és felvenni hozzá egy útvonalat, + közvetlenül az <devicename>ed0</devicename> Ethernetes + csatolófelületen keresztül. Ehhez a + típusú útvonalhoz tartozik még egy + lejárati idõ is (a <literal>Expire</literal> + oszlop), amely akkor kap szerepet, ha ennyi idõ + elteltével nem kapunk semmilyen hírt a + géprõl. Amikor ilyen történik, az + géphez eddig nyilvántartott útvonal + automatikusan törlõdik. Ezek a gépek a RIP + (útvonal-információs protokoll, Routing + Information Protocol) nevû mechanizmuson keresztül + azonosítódnak, mely a legrövidebb út + kiszámítása alapján határozza + meg a helyi gépekhez vezetõ útvonalat.</para> + + <indexterm><primary>alhálózat</primary></indexterm> + + <para>A &os; a helyi alhálózat (<hostid + role="ipaddr">10.20.30.255</hostid> és <hostid + role="domainname">example.com</hostid>, az + alhálózathoz tartozó név) + esetében is felvesz útvonalakat. A + <literal>link#1</literal> megnevezés a gépben + található elsõ Ethernet-kártyát + jelöli. Megfigyelhetjük, hogy rajta kívül + nincs is több felülete.</para> + + <para>Mindegyik csoport (a helyi hálózati + gépek és a helyi alhálózatokatok) + útvonalait a <application>routed</application> nevû + démon tartja automatikusan karban. Ha ez nem fut, akkor + csak a statikusan definiált (vagyis az elõre + megadott) útvonalak fognak létezni.</para> + + <para>A <literal>host1</literal> sor a saját + gépünkre vonatkozik, amelyet az Ethernet címe + szerint ismerünk. Mivel mi vagyunk küldõ + gép, a &os; tudni fogja, hogy ilyenkor az Ethernetes + felület helyett a loopback eszközt + (<devicename>lo0</devicename>) kell használnia.</para> + + <para>A két <literal>host2</literal> sor arra mutat + példát, amikor az &man.ifconfig.8; paranccsal + álneveket hozunk létre (ennek konkrét okait + lásd az Ethernetrõl szóló + részben). A <devicename>lo0</devicename> felület + neve után szereplõ <literal>=></literal> + szimbólum azt jelzi, hogy ez nem csak egy loopback + felület (mivel a címe szintén a helyi + gépre mutat), hanem a felület egy másik neve. + Ilyen útvonalak csak az álneveket ismerõ + gépeknél jelennek meg. A helyi + hálózaton minden más gépnél + egyszerûen csak a <literal>link#1</literal> jelenik meg az + ilyen útvonalak esetében.</para> + + <para>Az utolsó sor (a <hostid role="ipaddr">224</hostid> + céllal rendelkezõ alhálózat) a + többesküldésre (multicasting) szolgál, + amellyel majd egy másik szakaszban foglalkozunk.</para> + + <para>Végezetül az útvonalakhoz tartozó + különféle tulajdonságok a + <literal>Flags</literal> oszlopban láthatóak. Az + alábbi rövid táblázatban + összefoglaltunk közülük + néhányat:</para> + + <informaltable frame="none" pgwide="1"> + <tgroup cols="2"> + <colspec colwidth="1*"> + <colspec colwidth="4*"> + + <tbody> + <row> + <entry>U</entry> + <entry>Up: az útvonal aktív</entry> + </row> + + <row> + <entry>H</entry> + <entry>Host: az útvonal egyetlen gépre + mutat</entry> + </row> + + <row> + <entry>G</entry> + <entry>Gateway: az adott cél felé ezen a + gépen keresztül küldjünk, amely + majd kitalálja, hogy merre küldje + tovább</entry> + </row> + + <row> + <entry>S</entry> + <entry>Static: ez az útvonal statikus, nem a + rendszer hozta létre automatikusan</entry> + </row> + + <row> + <entry>C</entry> + <entry>Clone: ebbõl az útvonalból + származtatunk új útvonalat azokhoz + a gépekhez, amelyekhez csatlakozunk. Ilyen + útvonalakat általában a helyi + hálózatokban találhatunk</entry> + </row> + + <row> + <entry>W</entry> + <entry>WasCloned: azt jelzi, hogy ezt az útvonalat + egy helyi hálózatra mutató + (klón, avagy Clone típusú) + útvonal alapján hoztuk létre + automatikusan</entry> + </row> + + <row> + <entry>L</entry> + <entry>Link: az útvonal Ethernetes hardverhez + kapcsolódik</entry> + </row> + </tbody> + </tgroup> + </informaltable> + + </sect2> + + <sect2 id="network-routing-default"> + <title>Alapértelmezett útvonalak</title> + + <indexterm><primary>alapértelmezett + útvonal</primary></indexterm> + + <para>Amikor a helyi rendszernek fel kell vennie a kapcsolatot egy + távoli géppel, ellenõrzi az + útválasztási táblázatban, + hogy létezik-e már hozzá valamilyen + útvonal. Ha a távoli gép egy olyan + alhálózatba esik, amelyet már el tudunk + érni (klónozott útvonalak), akkor a + rendszer megnézi, hogy a hozzátartozó + felületen képes-e kapcsolatot + létesíteni.</para> + + <para>Ha minden ismert útvonal csõdöt mond, akkor + a rendszerünknek marad még egy utolsó + esélye: az <quote>alapértelmezett</quote> + útvonal használata. Ez az útvonal egy + speciális átjáró útvonal + (ebbõl általában csak egyetlen egy + létezik a rendszerben) és tulajdonságai + között mindig szerepel a <literal>c</literal>. A + helyi hálózat gépei közül ez az + átjáró az legyen, amelyik + közvetlenül kapcsolódik a külsõ + világhoz (PPP összeköttetéssel, DSL, + kábelmodem, T1 vagy bármilyen más + hálózati felületen keresztül).</para> + + <para>Amikor pedig magát a külsõ világ + felé átjáróként + szolgáló gépet állítjuk be, + az alapértelmezett útvonal az + internet-szolgáltatónk által megadott + gép címe lesz.</para> + + <para>Vegyünk egy példát az + alapértelmezett útvonalakra. Egy tipikus + konfiguráció:</para> + + <mediaobject> + <imageobject> + <imagedata fileref="advanced-networking/net-routing"> + </imageobject> + + <textobject> + <literallayout class="monospaced"> +[Helyi2] <--ether--> [Helyi1] <--PPP--> [ Szolg. ] <--ether--> [T1-ÁJ] + </literallayout> + </textobject> + </mediaobject> + + <para>A <hostid>Helyi1</hostid> és <hostid>Helyi2</hostid> + gépek a hálózatunk tagjai. A + <hostid>Helyi1</hostid> az internet-szolgáltatót + éri el egy betárcsázós PPP + kapcsolaton keresztül. A PPP szerver a külsõ + felületén keresztül a helyi + hálózaton pedig egy másik + átjáróhoz csatlakozik.</para> + + <para>Az egyes gépek alapértelmezett + útvonalai így alakulnak:</para> + + <informaltable frame="none" pgwide="1"> + <tgroup cols="3"> + <thead> + <row> + <entry>Gép</entry> + <entry>Alapértelmezett + átjáró</entry> + <entry>Felület</entry> + </row> + </thead> + + <tbody> + <row> + <entry>Helyi2</entry> + <entry>Helyi1</entry> + <entry>Ethernet</entry> + </row> + + <row> + <entry>Helyi1</entry> + <entry>T1-ÁJ</entry> + <entry>PPP</entry> + </row> + </tbody> + </tgroup> + </informaltable> + + <para>Gyakran felmerül a kérdés, hogy + <quote>Miért (és hogy-hogy) a + <hostid>T1-ÁJ</hostid> a <hostid>Helyi1</hostid> + gép számára az alapértelmezett + átjáró és nem a + szolgáltató azon szervere, amelyhez + csatlakozott?</quote></para> + + <para>Ne felejtsük el, hogy a PPP felület a + szolgáltató helyi hálózatában + a mi részünkre kap címet, és a itt az + összes többi géphez tartozó + útvonal automatikusan létrejön. Emiatt + már eleve el tudjuk érni a + <hostid>T1-ÁJ</hostid> gépet, ezért amikor + a szolgáltatón keresztül küldünk, + nincs szükségünk egy további + lépcsõre.</para> + + <para>Általában a <hostid + role="ipaddr">X.X.X.1</hostid> címet szokták a + helyi hálózat + átjárójának kiosztani. Ezért + (az elõbbi példát + újrahasznosítva) ha a helyi + hálózatunkon a C osztályú <hostid + role="ipaddr">10.20.30</hostid> címtartományt + használjuk, és a szolgáltatónkhoz a + <hostid role="ipaddr">10.9.9</hostid> címtartomány + tartozik, akkor az alapértelmezett útvonalak a + következõk lesznek:</para> + + <informaltable frame="none" pgwide="1"> + <tgroup cols="2"> + <thead> + <row> + <entry>Gép</entry> + <entry>Alapértelmezett útvonal</entry> + </row> + </thead> + <tbody> + <row> + <entry>Helyi2 (10.20.30.2)</entry> + <entry>Helyi1 (10.20.30.1)</entry> + </row> + <row> + <entry>Helyi1 (10.20.30.1, 10.9.9.30)</entry> + <entry>T1-ÁJ (10.9.9.1)</entry> + </row> + </tbody> + </tgroup> + </informaltable> + + <para>Az <filename>/etc/rc.conf</filename> + állományon keresztül könnyen meg tudjuk + adni az alapértelmezett útvonalat. A + példánkban a <hostid>Helyi2</hostid> gép + <filename>/etc/rc.conf</filename> + állományába kell felvennünk a + következõ sort:</para> + + <programlisting>defaultrouter="10.20.30.1"</programlisting> + + <para>A &man.route.8; parancs használatával viszont + akár közvetlenül is megtehetjük + mindezt:</para> + + <screen>&prompt.root; <userinput>route add default 10.20.30.1</userinput></screen> + + <para>A &man.route.8; man oldalon olvashatunk arról + bõvebben, hogy a hálózati + útválasztási táblázatokat + kézzel hogyan tudjuk módosítani.</para> + + </sect2> + + <sect2> + <title>Kettõs hálózatú + gépek</title> + + <indexterm><primary>kettõs hálózatú + gépek</primary></indexterm> + + <para>Egy másik típusú + konfigurációról is szót kell + ejtenünk, ahol a gép egyszerre két + hálózatnak is tagja. Gyakorlatilag az + átjáróként üzemelõ + számítógépek (mint + például az, amelyik a fenti példában + PPP kapcsolattal csatlakozott) ilyen kettõs + hálózatú gépnek tekinthetõek. + Ez a kifejezés azonban igazából csak azokra + az esetekre illik, ahol a gép egyszerre két helyi + hálózatban is megjelenik.</para> + + <para>Az egyik esetben a gépben két Ethernet + kártya található, melyek mindegyike + birtokol egy-egy hálózati címet az egyes + alhálózatokon. De elõfordulhat az is, hogy a + gépünkben csupán egyetlen Ethernet + kártya van és az &man.ifconfig.8; + segítségével álneveket hoztunk + létre hozzá. Az elõbbi + általában két fizikailag + elkülönölõ Ethernet alapú + hálózat esetében történik, + míg az utóbbinál csak egyetlen fizikai + hálózati szegmensrõl van szó, amely + viszont logikailag két külön + alhálózatot tartalmaz.</para> + + <para>Akármelyiket is vesszük, az + útválasztási táblázatok + úgy jönnek létre, hogy bennük a + gép a másik alhálózat felé + átjáróként (bejövõ + útvonalként) lesz nyilvántartva. Ebben a + konfigurációban a gép a két + alhálózat között + útválasztóként fog + tevékenykedni, és gyakran valamelyik vagy + éppen mind a két irányba be kell + állítanunk valamilyen csomagszûrést + vagy tûzfalazást.</para> + + <para>Ha azt szeretnénk, hogy ez a gép a két + felület között továbbítson + csomagokat, akkor a &os;-ben külön engedélyezni + kell ezt a lehetõséget. A következõ + szakaszban ennek részleteit tárjuk fel.</para> + + </sect2> + + <sect2 id="network-dedicated-router"> + <title>Az útválasztók + beállítása</title> + + <indexterm><primary>útválasztó</primary></indexterm> + + <para>A hálózati útválasztó nem + csinál mást, csak továbbküldi az egyik + felületén beérkezõ csomagokat egy + másik felületére. Az internetes + szabványok és a sokéves mérnöki + tapasztalat azonban nem engedik, hogy a &os; Projekt + alapértelmezés szerint is + elérhetõvé tegye ezt a &os; rendszerekben. + Ezt a lehetõséget az alábbi + változó <literal>YES</literal> + értékûre + állításával lehet + engedélyezni az &man.rc.conf.5; + állományban:</para> + + <programlisting>gateway_enable=YES # Ez legyen YES, ha átjáróként akarunk üzemelni</programlisting> + + <para>Ezzel lényegében a + <varname>net.inet.ip.forwarding</varname> &man.sysctl.8; + változó értékét + állítjuk <literal>1</literal>-re. Ha + valamiért egy idõre szüneteltetni akarjuk a + csomagok továbbküldését, akkor + állítsuk a változó + értékét <literal>0</literal>-ra.</para> + + <para>Az új útválasztónak nem + árt arról sem tudnia, hogy merre + továbbítsa a forgalmat. Ha elég + egyszerû a hálózatunk, akkor akár + statikus útvonalakat is használhatunk. A &os; + alapból tartalmazza a BSD-k esetén + szabványos &man.routed.8; útválasztó + démont, amely a RIP (v1 és v2) valamint az IRDP + megoldásokat ismeri. A BGP v4, OSPF v2 és a + többi fejlettebb útválasztási + protokoll a <filename role="package">net/zebra</filename> + csomagban érhetõ el. Az ettõl bonyolultabb + hálózati útválasztási + feladatokhoz olyan kereskedelmi termékek is + elérhetõek, mint például a + <application>&gated;</application>.</para> + + <indexterm><primary>BGP</primary></indexterm> + <indexterm><primary>RIP</primary></indexterm> + <indexterm><primary>OSPF</primary></indexterm> + + </sect2> + + <sect2> + <sect2info> + <authorgroup> + <author> + <firstname>Al</firstname> + <surname>Hoang</surname> + <contrib>Írta: </contrib> + </author> + </authorgroup> + </sect2info> + + <title>Statikus útvonalak + beállítása</title> + + <sect3> + <title>Manuális konfiguráció</title> + + <para>Tegyük fel, hogy hálózatunk a + következõ:</para> + + <mediaobject> + <imageobject> + <imagedata fileref="advanced-networking/static-routes"> + </imageobject> + + <textobject> + <literallayout class="monospaced"> + INTERNET + | (10.0.0.1/24) alapértelmezett átjáró internet felé + | + |az xl0 felület + |10.0.0.10/24 + +------+ + | | A-utvalaszto + | | (FreeBSD átjáró) + +------+ + | az xl1 felület + | 192.168.1.1/24 + | + +--------------------------------+ + 1. belsõ hálózat | 192.168.1.2/24 + | + +------+ + | | B-utvalaszto + | | + +------+ + | 192.168.2.1/24 + | + 2. belsõ hálózat + </literallayout> + </textobject> + </mediaobject> + + <para>Ebben a forgatókönyvben az + <hostid>A-utvalaszto</hostid> a mi &os;-s gépünk, + amely az internet felé vezetõ + útválasztó szerepét + játssza. Számára az + alapértelmezett útvonal a <hostid + role="ipaddr">10.0.0.1</hostid>, amelyen keresztül a + külsõ világot tudja elérni. + Feltételezzük, hogy a + <hostid>B-utvalaszto</hostid> nevû gépet + már eleve jól állítottuk be, + ezért tudja merre kell mennie. (A kép + alapján egyszerû: csak vegyünk fel egy + alapértelmezett útvonalat a + <hostid>B-utvalaszto</hostid> géphez, ahol így a + <hostid role="ipaddr">192.168.1.1</hostid> lesz az + átjáró.)</para> + + <para>Ha megnézzük most az + <hostid>A-utvalaszto</hostid> + útválasztási + táblázatát, akkor nagyjából + a következõket fogjuk látni:</para> + + <screen>&prompt.user; <userinput>netstat -nr</userinput> +Routing tables + +Internet: +Destination Gateway Flags Refs Use Netif Expire +default 10.0.0.1 UGS 0 49378 xl0 +127.0.0.1 127.0.0.1 UH 0 6 lo0 +10.0.0/24 link#1 UC 0 0 xl0 +192.168.1/24 link#2 UC 0 0 xl1</screen> + + <para>Az <hostid>A-utvalaszto</hostid> + útválasztási táblázata + alapján jelen helyzetben nem lehet elérni a 2. + belsõ hálózatot. Nincs ugyanis olyan + útvonal, amely a <hostid + role="ipaddr">192.168.2.0/24</hostid> alhálózat + felé vezetne. Ezt például úgy + tudjuk megoldani, ha manuálisan felvesszük ezt az + útvonalat. Az alábbi paranccsal + hozzáadjuk a 2. belsõ hálózat + elérését az <hostid>A-utvalaszto</hostid> + útválasztási + táblázatához, ahol a <hostid + role="ipaddr">192.168.1.2</hostid> lesz a következõ + ugrási pont (next hop):</para> + + <screen>&prompt.root; <userinput>route add -net 192.168.2.0/24 192.168.1.2</userinput></screen> + + <para>Most már az <hostid>A-utvalaszto</hostid> + bármelyik gépet képes elérni a + <hostid role="ipaddr">192.168.2.0/24</hostid> + hálózaton.</para> + + </sect3> + + <sect3> + <title>Rögzített konfiguráció</title> + + <para>A fenti példa tökéletesen + szemlélti a statikus útvonalak + felvételét egy mûködõ rendszeren. + Azonban ezzel az a gond, hogy az így megadott + útválasztási információ nem + marad meg a gép újraindítása + után. Ezért az elõbbihez hasonló + statikus útvonalakat inkább az + <filename>/etc/rc.conf</filename> állományban + rögzítsük:</para> + + <programlisting># A 2. belsõ hálózat elérését felvesszük statikus útvonalként +static_routes="belsohalo2" +route_belsohalo2="-net 192.168.2.0/24 192.168.1.2"</programlisting> + + <para>A <literal>static_routes</literal> + konfigurációs változó + karakterláncok szóközzel tagolt + felsorolását tartalmazza. Mindegyik + karakterlánc egy útvonal neve. Az iménti + példában csak egyetlen ilyen név + szerepelt a <literal>static_routes</literal> + értékében, amely a + <replaceable>belsohalo2</replaceable> volt. Utána + beírtunk még egy konfigurációs + változót is, amelynek a neve + <literal>route_<replaceable>belsohalo2</replaceable></literal>. + Ide helyeztük a &man.route.8; parancsnak + átadandó beállítás + összes paraméterét. Ez pontosan olyan, + mintha a következõ parancsot adtuk volna ki:</para> + + <screen>&prompt.root; <userinput>route add -net 192.168.2.0/24 192.168.1.2</userinput></screen> + + <para>Ezért kellett a <literal>"-net 192.168.2.0/24 + 192.168.1.2"</literal>.</para> + + <para>Ahogy már korábban is + említettük, a <literal>static_routes</literal> + értékében több karakterláncot + is megadhatunk, aminek segítségével + egyszerre több statikus útvonalat is + létrehozhatunk. A következõ sorok arra + mutatnak példát, hogy a <hostid + role="ipaddr">192.168.0.0/24</hostid> és <hostid + role="ipaddr">192.168.1.0/24</hostid> hálózatok + számára miként állítsunk be + statikus útvonalakat a képzeletbeli + útválasztónkon:</para> + + <programlisting>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"</programlisting> + + </sect3> + </sect2> + + <sect2> + <title>Az útvonalak terjedése</title> + + <indexterm><primary>útvonalterjedés</primary></indexterm> + + <para>Azt már tudjuk, hogyan adjuk meg a + külvilág felé vezetõ útvonalakat, + azonban arról még nem beszéltünk, hogy + kívülrõl miként találnak meg + bennünket.</para> + + <para>Annyit már megismertünk, hogy az + útválasztási táblázatokban + megadhatjuk a hálózaton azt a gépet, + amelyen keresztül az adott címtartomány (a + példában egy C osztályú + alhálózat) felé küldhetünk, amely + pedig továbbküldi a hozzá érkezõ + csomagokat.</para> + + <para>Amikor a csatlakozunk az + internet-szolgáltatónkhoz, a nála levõ + útválasztási táblázatok + úgy állítódnak be, hogy az + alhálózatunk felé igyekvõ adatok a + korábban létrejött PPP + összeköttetésen keresztül jutnak el + hozzánk. A világ többi részén + levõ rendszerek viszont honnan fogják tudni, hogy a + mi internet-szolgáltatónknak + küldjenek?</para> + + <para>Van egy rendszer (ez leginkább a névszerverek + elosztott információs adatbázisához + hasonlít), ami nyilvántartja a pillanatnyilag + kiosztott címtartományokat és megadja a + csatlakozási pontjukat az internet + gerinchálózatán. Ez a + <quote>gerinc</quote> tulajdonképpen olyan + fõvonalakból áll, amelyen keresztül a + világban az országok között mozog az + internet forgalma. A gerinchálózat mindegyik + gépe tárolja a központi + útválasztási táblázatok egy + másolatát, ami a forgalmat egy adott + hálózatról a megadott gerincbeli + hordozóra irányítja át, végig + az internet-szolgáltatók láncán + egészen addig, amíg az el nem éri a + hálózatunkat.</para> + + <para>A szolgáltatónk feladata, hogy a + gépünk felé leágazásként + (és így a felénk vezetõ + útként) beregisztálja magát a + gerinchálózat gépein. Ezt nevezik az + útvonal terjedésének.</para> + + </sect2> + + <sect2> + <title>Hibaelhárítás</title> + + <indexterm><primary><command>traceroute</command></primary></indexterm> + + <para>Néha gondok lehetnek az útvonal + terjedésével, és egyes gépek nem + képesek elérni minket. A &man.traceroute.8; + parancs mind közül talán az egyik leghasznosabb + ilyen helyzetekben, mivel ezzel fel tudjuk deríteni, hogy + az útválasztás hol akad meg. Ugyanilyen + jól hasznosítható azokban az esetekben, + amikor látszólag nem tudunk elérni egy + távoli gépet (tehát a &man.ping.8; + csõdöt mond).</para> + + <para>A &man.traceroute.8; parancsnak annak a távoli + gépnek a nevét kell megadnunk, amelyhez + csatlakozni akarunk. Futása közben + megjeleníti azokat az átjárókat, + amelyeken keresztül csatlakozni próbál, + akár sikerült elérni a + célgépet, akár a kapcsolat hiánya + miatt kudarcot vall.</para> + + <para>A parancs használatáról és + mûködésérõl részletesebb + információkat a &man.traceroute.8; man + oldalán találunk.</para> + + </sect2> + + <sect2> + <title>Útválasztás + többesküldés esetén</title> + + <indexterm> + <primary>útválasztás + többesküldésnél</primary> + </indexterm> + + <indexterm> + <primary>a rendszermag + beállításai</primary> + <secondary>MROUTING</secondary> + </indexterm> + + <para>A &os; alapból támogatja mind a + többesküldést használó + alkalmazásokat, mind pedig a + többesküldéshez tartozó + útválasztást. + Többesküldés esetében semmilyen + speciális beállítás nem + szükségeltetik, az ilyen alkalmazások + egybõl el tudják érni ezt a + lehetõséget. A többesküldés + útválasztásához azonban be kell + építenünk némi + támogatást a rendszermagba:</para> + + <programlisting>options MROUTING</programlisting> + + <para>Emellett még el kell indítanunk az + &man.mrouted.8; démont is, amelyhez az + <filename>/etc/mrouted.conf</filename> állományban + még be kell állítanunk tunneleket és + a <acronym>DVMRP</acronym> használatát. A + többesküldéshez tartozó további + beállításokat az &man.mrouted.8; man + oldalán találhatjuk.</para> + + </sect2> + </sect1> + + <sect1 id="network-wireless"> + <sect1info> + <authorgroup> + <author> + <othername>Loader</othername> + </author> + + <author> + <firstname>Marc</firstname> + <surname>Fonvieille</surname> + </author> + + <author> + <firstname>Murray</firstname> + <surname>Stokely</surname> + </author> + </authorgroup> + </sect1info> + + <title>Vezeték nélküli + hálózatok</title> + + <indexterm><primary>vezeték nélküli + hálózatok</primary></indexterm> + + <indexterm> + <primary>802.11</primary> + <see>vezeték nélküli + hálózatok</see> + </indexterm> + + <sect2> + <title>A vezeték nélküli + hálózatok alapjai</title> + + <para>A legtöbb vezeték nélküli + hálózat az IEEE 802.11 szabványon nyugszik. + Az alapvetõ vezeték nélküli + hálózatokban több olyan + állomást találhatunk, amelyek + egymással rádiójelek + szórásával kommunikálnak a + 2,4 GHz vagy 5 GHz frekvenciatartományban (noha + ez a helyi viszonyoknak megfelelõen változhat, + és a 2,3 GHz, illetve a 4,9 GHz + tartományokban is lehetséges a + kommunikáció).</para> + + <para>A 802.11 szabványú hálózatok + kétféleképpen szervezõdnek. + Elõször is + <emphasis>infrastrukturálisan</emphasis>, + (infrastructural mode) ahol az egyik állomást + kinevezzük a központnak és a többi pedig + ehhez fog tartozni. Az ilyen hálózatokat BSS-nek + nevezzük és az imént említett + központ neve hozzáférési pont (Access + Point, AP) lesz. A BSS-ben az összes + kommunikáció a hozzáférési + pontokon keresztül halad még abban az esetben is, + amikor az egyik állomás egy másik + vezeték nélküli állomással + akarja felvenni a kapcsolatot. Az ilyen jellegû + hálózatok másik típusú + szervezõdési módjában nincsenek + kijelölt központok és a + kommunikáció az állomások + között közvetlenül zajlik. A + hálózat ezen formáját IBBS-nek + nevezzük, vagy ismeretebb nevén <emphasis>ad-hoc + hálózatnak</emphasis> (ad-hoc network).</para> + + <para>A 802.11 alapú hálózatok + elsõként a 2,4 GHz-es sávot + hódították meg, és az IEEE 802.11 + valamint 802.11b szabványokban rögzített + protokollokat használták. Ezekben a + specifikációkban megtalálhatjuk a + mûködési frekvenciát, a + közeghozzáférési réteg + jellemzõinek leírását, + beleértve a keretezést és az + átviteli sebességeket (a + kommunikáció ugyanis eltérõ + sebességekkel is történhet). A + késõbb kiadott 802.11a szabvány azt + specifikálja, hogy az 5 GHz-es tartományban + miként mûködjenek, ahol többek közt + megtalálhatjuk a különféle + jelkezelési mechanizmusokat és a nagyobb + átviteli sebességek használatát. + Ezt még a 802.11g szabvány követte, ami a + 802.11b hálózatokkal kompatibilis módon + lehetõvé tette a 802.11a + jelkezelésének és átviteli + módszereinek használatát a 2,4 GHz-es + sávban.</para> + + <para>A 802.11 alapú hálózatok + mindenféle átviteli technikáitól + eltekintve többféle biztonsági + megoldással találkozhatunk. Az korai 802.11 + dokumentumok egy nagyon egyszerû biztonsági + protokollt, a WEP-et említenek. Ez a protokoll a + hálózaton mozgó adatokat egy + rögzített és ismert osztott kulccsal + kódolja le az RC4 titkosítással. A + kommunikációhoz az összes + állomásnak elõre meg kell egyeznie ebben a + kulcsban. Errõl a sémáról + idõközben kiderült, hogy könnyen + feltörhetõ és manapság már csak + nagyon ritkán alkalmazzák, kivéve + talán csak a kóbor felhasználók + elijesztésére. A jelenleg érvényes + biztonsági elõírásokat az IEEE 802.11i + specifikáció adja meg, amely új + kriptográfiai titkosításokat + definiál valamint egy további protokollt az + állomások azonosítására + és a kulcsok cseréjére. Emellett a + titkosításhoz használt kulcsok + idõszakosan frissülnek és külön + eszközök állnak rendelkezésre a + betörési kísérletek + észlelésére (és azok + elhárítására). A vezeték + nélküli hálózatok esetében + másik elterjedt titkosítási protokoll a + WPA. Ez igazából 802.11i elõdjének + tekinthetõ, amelyet egy ipari csoport definiált, + amíg a 802.11i minõsítés alatt + állt. A WPA ennek megfelelõen teljesíti a + 802.11i szabvány elvárásainak egy + részét és kifejezetten a régi + hardverek számára készült. A WPA + mûködéséhez egyedül a TKIP + titkosításra van szükségünk, + amely az eredeti WEP titkosításból + származik. A 802.11i engedi a TKIP + használatát, de az adatok + kódolására egy erõsebb + titkosítás, az AES-CCM ismeretét is + igényli. (Az AES a WPA esetében nem kell, mivel a + régi eszközök esetében + túlságosan költségesnek + ítélték meg a + használatát.)</para> + + <para>A fenti szabványokon kívül a 802.11e a + másik fontos szabvány, amire tekintettel kell + lennünk. Ez írja le a 802.11 + hálózatokon a multimédiás + alkalmazások közvetítéséhez, + mint például a videók valós + idejû lejátszásához vagy a VoIP (voice + over IP) megvalósításához + tartozó protokollokat. A 802.11i szabványhoz + hasonlóan a 802.11e is magában foglal egy + elõzetes specifikációt, amelyet WME + (késõbb pedig már WMM)-nek neveznek. Ezt + szintén egy ipari csoport definiálta a 802.11e + részeként, amivel a 802.11e végsõ + elfogadásáig tudják a + multimédiás igényeket kiszolgálni. + Amit a 802.11e és WME/WMM megoldásaival + kapcsolatban érdemes tudnunk: a QoS (Quality of Service) + protokoll és más egyéb fejlett + közeghozzáférési protokollok + segítségével a vezeték + nélküli hálózatokban + lehetõvé teszik a forgalom prioritás szerinti + ütemezését. Ezen protokollok megfelelõ + implementációjának + segítségével tehát a fontosabb + adatok nagy sebességû küldését + és áramoltatását vagyunk + képesek elérni.</para> + + <para>A &os; a 6.0 verzió óta ismeri a 802.11a, + 802.11b és 802.11g szabványokon alapján + mûködõ hálózatokat. A WPA + és 802.11i biztonsági protokollok (a 11a, 11b + és 11g szabványok bármelyike esetén) + hasonlóképpen támogatottak, valamint a + WME/WMM protokollok mûködéséhez + szükséges QoS csak bizonyos vezeték + nélküli eszközök esetében.</para> + + </sect2> + + <sect2 id="network-wireless-basic"> + <title>Kezdeti beállítások</title> + + <sect3> + <title>A rendszermag beállítása</title> + + <para>A vezeték nélküli + hálózatok használatához egy + vezeték nélküli hálózati + kártyára lesz szükségünk, + valamint a rendszermagban is be kell állítani + ehhez a megfelelõ támogatást. Ez + utóbbit több különbözõ modulra + szedték szét, és ezek közül + csak azokat kell beállítani, amelyeket + tényleg használni is fogunk.</para> + + <para>Elõször is tehát kell egy vezeték + nélküli eszköz. Az elterjedtebb + típusaik általában az Atheos által + gyártott alkatrészeket tartalmazzák. Az + ilyen fajtájú eszközöket az + &man.ath.4; meghajtó kezeli, melyet úgy tudunk a + rendszer indításakor betölteni, ha a + <filename>/boot/loader.conf</filename> + állományba felvesszük a következõ + sort:</para> + + <programlisting>if_ath_load="YES"</programlisting> + + <para>Az Atheos meghajtója három + különálló részre oszlik: maga a + meghajtó (&man.ath.4;), a hardveres réteg, ami a + chipfüggõ funkciókat kezeli (&man.ath.hal.4;) + és a keretek küldésével kapcsolatban + az átviteli sebesség + megválasztását lehetõvé + tevõ algoritmus (ez itt most az ath_rate_sample). Amikor + ezt a támogatást modulként + töltjük be, ezek a függõségek + automatikusan feloldódnak. Ha az Atheos + eszközök helyett valamelyik másikhoz + tartozó modult szeretnénk használni, + akkor például az Intersil Prism esetében + a &man.wi.4; meghajtót kell megadnunk:</para> + + <programlisting>if_wi_load="YES"</programlisting> + + <note> + <para>A leírás további részeiben + az &man.ath.4; eszközt fogjuk használni, minden + más esetben ennek a nevét kell csak + lecserélünk a példákban. A + rendszerben elérhetõ vezeték + nélküli meghajtók a &man.wlan.4; man + oldal elején találhatóak. Ha a + vezeték nélküli + eszközünkhöz nem létezik natív + &os;-s meghajtó, akkor az <link + linkend="config-network-ndis">NDIS</link> meghajtó + segítségével akár + közvetlenül a &windows;-os + meghajtóját is használhatjuk.</para> + </note> + + <para>Az eszközmeghajtó + beállításával együtt a 802.11 + hálózatok támogatását is be + kell töltenünk a rendszermagba. Ez az &man.ath.4; + meghajtó esetében a legalább a + &man.wlan.4; modul betöltését jelenti. Ez + a modul automatikusan betöltõdik a vezeték + nélküli eszközmeghajtóval együtt. + Emellett még azokra a modulokra is + szükségünk van, amelyek a használni + kívánt biztonsági protokollokhoz + nyújtanak kriptográfiai + támogatást. Ezek hivatalosan a &man.wlan.4; + modul kérésére automatikusan + betöltõdnek, azonban itt most manuálisan + állítjuk be. Erre a célra a + következõ modulokat találjuk: + &man.wlan.wep.4;, &man.wlan.ccmp.4; és + &man.wlan.tkip.4;. A &man.wlan.ccmp.4; és + &man.wlan.tkip.4; meghajtók csak akkor fognak kelleni, + ha a WPA és/vagy a 802.11i biztonsági + protokollokat használjuk. Amennyiben a + hálózatunk teljesen nyitott (azaz nincs + titkosítás), akkor még a &man.wlan.wep.4; + támogatás sem kell. Ezeket a modulok úgy + lehet betölteni a + rendszerindításnál, ha felvesszük a + következõ sorokat a + <filename>/boot/loader.conf</filename> + állományba:</para> + + <programlisting>wlan_wep_load="YES" +wlan_ccmp_load="YES" +wlan_tkip_load="YES"</programlisting> + + <para>Miután ezt megcsináltuk, egyszerûen + csak indítsuk újra a gépünket. Ha + még nem akarjuk újraindítani a + gépet, akkor a &man.kldload.8; parancs + segítségével akár kézzel is + betölthetjük az elõbb felsorolt + modulokat.</para> + + <note> + <para>Ha nem akarunk modulokat használni, a + mûködéshez szükséges + meghajtókat a rendszermagba is be tudjuk + építeni a következõ sorok + megadásával a rendszermag + beállításait tartalmazó + állományban:</para> + + <programlisting>device ath # Atheros IEEE 802.11 vezeték nélküli hálózati meghajtó +device ath_hal # az Atheros meghajtó hardveres rétege +device ath_rate_sample # John Bicket "SampleRate" vezérlési algoritmusa +device wlan # a 802.11 támogatása (kell!) +device wlan_wep # WEP titkosítás támogatása a 802.11 eszközök számára +device wlan_ccmp # AES-CCMP titkosítás támogatása a 802.11 eszközök számára +device wlan_tkip # TKIP és Michael titkosítás támogatása a 802.11 eszközök számára</programlisting> + + <para>A fentiek megadásával fordítsuk + újra és telepítsük a + rendszermagot, majd indítsuk újra a + számítógépünket.</para> + </note> + + <para>Miután a rendszerünk újra elindult, a + rendszer indítás során generált + üzenetei között találnunk kell + valamennyi információt a felismert + vezeték nélküli eszközökrõl. + Például:</para> + + <screen>ath0: <Atheros 5212> mem 0xff9f0000-0xff9fffff irq 17 at device 2.0 on pci2 +ath0: Ethernet address: 00:11:95:d5:43:62 +ath0: mac 7.9 phy 4.5 radio 5.6</screen> + + </sect3> + </sect2> + + <sect2> + <title>Az infrastrukturális mûködési + mód</title> + + <para>Általában az infrastrukturális avagy a + BBS mód használata a gyakori. Ebben a + mûködési módban adott + számú vezeték nélküli + hozzáférési pont csatlakozik a + hagyományos hálózatra. Mindegyik + vezeték nélküli hálózatnak + saját neve van, amit a hálózat + SSID-jének hívunk. A vezeték + nélküli kliensek ezekhez a vezeték + nélküli hozzáférési pontokhoz + kapcsolódnak.</para> + + <sect3> + <title>A &os;-s kliensek használata</title> + + <sect4> + <title>Hogyan keressünk hozzáférési + pontokat</title> + + <para>A hálózatok kereséséhez az + <command>ifconfig</command> paranccsal tudunk nekifogni. + Egy ilyen kérés kiszolgálása + eltarthat néhány pillanatig, mivel ekkor a + rendszernek végig kell bóklásznia az + összes elérhetõ frekvenciát + és azokon hozzáférési pontok + után kutatni. Egyedül a + rendszeradminisztrátor kezdeményezheti ezeket + a kereséseket:</para> + + <screen>&prompt.root; <userinput>ifconfig <replaceable>ath0</replaceable> up scan</userinput> +SSID BSSID CHAN RATE S:N INT CAPS +dlinkap 00:13:46:49:41:76 6 54M 29:3 100 EPS WPA WME +freebsdap 00:11:95:c3:0d:ac 1 54M 22:1 100 EPS WPA</screen> + + <note> + <para>Csak <option>up</option> jelzésû + felületen tudunk hálózatokat keresni. + További keresésekre már nincs + szükség a felület <option>up</option> + állapotban tartásához.</para> + </note> + + <para>A keresés során keletkezõ + listában láthatjuk megtalált BBS vagy + IBBS fajtájú hálózatokat. A + hálózatok neve és + <literal>SSID</literal>-ja mellett még megjelenik egy + <literal>BSSID</literal> oszlop is, ahol a + hozzáférési pontok MAC-címe + szerepel. A <literal>CAPS</literal> oszlop az egyes + állomások tulajdonságait adja + meg:</para> + + <variablelist> + <varlistentry> + <term><literal>E</literal></term> + + <listitem> + <para>Extended Service Set (ESS): az + állomás egy infrastrukturális + vagyis BBS hálózat része.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><literal>I</literal></term> + + <listitem> + <para>IBSS/ad-hoc hálózat: az + állomás egy ad-hoc hálózat + része.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><literal>P</literal></term> + + <listitem> + <para>Privacy: a BBS-en belül minden keretet + titkosítani kell. Tehát a BSS arra + kötelezi az állomást, hogy WEP, + TKIP vagy AES-CCMP titkosítás + használatával kódolja a + hálózat tagjai között + közlekedõ kereteket.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><literal>S</literal></term> + + <listitem> + <para>Short Preamble: a hálózatban + rövid bevezetõjeleket használnak (a + 802.11b High Rate/DSSS PHY + elõírásai szerint), ahol a + szokványos 128 bites + szinkronizációs mezõ hossza csak + 56 bit.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><literal>s</literal></term> + + <listitem> + <para>Short Slot Time: a 802.11g hálózat + rövid slotidõt használ, mivel nem + találhatóak benne régi (802.11b + szabványú) + állomások.</para> + </listitem> + </varlistentry> + </variablelist> + + <para>A jelenleg ismert hálózatok + listáját így tudjuk + lekérdezni:</para> + + <screen>&prompt.root; <userinput>ifconfig <replaceable>ath0</replaceable> list scan</userinput></screen> + + <para>Ezt az információt maga az adapter + automatikusan, vagy a felhasználó tudja + frissíteni a <option>scan</option> + kérés kiadásával. Az elavult + adatok maguktól törlõdnek a + gyorsítótárból, így + idõvel a lista zsugorodni fog, hacsak nem keresünk + folyamatosan hálózatokat.</para> + + </sect4> + + <sect4> + <title>Alapvetõ beállítások</title> + + <para>Ebben a szakaszban arra mutatunk példákat, + hogy miként tudunk &os; alatt + titkosítás nélkül használni + egy vezeték nélküli + hálózati kártyát. Miután + elsajátítottuk az itt szereplõ + ismereteket, határozattan javasoljuk, hogy a + vezeték nélküli + hálózatunkat <link + linkend="network-wireless-wpa">WPA</link> + használatával állítsuk + be.</para> + + <para>A vezeték nélküli + hálózatok beállítása + három elemi lépésbõl + épül fel: a hozzáférési + pont kiválasztása, az állomásunk + hitelesítése és az IP-cím + beállítása. A következõkben + ezeket a lépéseket vitatjuk meg.</para> + + <sect5> + <title>A hozzáférési pont + kiválasztása</title> + + <para>A legtöbb esetben hagyjuk, hogy a rendszer + válassza ki magának a + különbözõ heurisztikák + alapján a leginkább megfelelõ + hozzáférési pontot. Ez az + alapértelmezett tevékenység, amikor + aktiváljuk a felületet vagy valamilyen + más módon, például + az<filename>/etc/rc.conf</filename> + állományból hivatkozunk + rá:</para> + + <programlisting>ifconfig_ath0="DHCP"</programlisting> + + <para>Ha viszont több hozzáférési + pont közül mi magunk akarunk kiválasztani + egyet, akkor ezt az SSID megadásával + tehetjük meg:</para> + + <programlisting>ifconfig_ath0="ssid <replaceable>saját_ssid</replaceable> DHCP"</programlisting> + + <para>Amikor olyan környezetben vagyunk, ahol több + hozzáférési pontnak is megegyezik az + SSID-ja (gyakran így próbálják + egyszerûsíteni azt, hogy automatikusan + váltani lehessen köztük), akkor + szükségünk lehet ezt egy adott + eszközhöz hozzárendelni. Ebben az + esetben a hozzáférési pont + BSSID-ját is definiálni kell (és az + SSID-t akár el is hagyhatjuk):</para> + + <programlisting>ifconfig_ath0="ssid <replaceable>saját_ssid</replaceable> bssid <replaceable>xx:xx:xx:xx:xx:xx</replaceable> DHCP"</programlisting> + + <para>Más módokon is képesek vagyunk + szabályozni a hozzáférési + pontok megválasztását, + például a rendszerünk által + vizsgált frekvenciasávok + megadásával. Ez olyankor tud hasznos lenni, + ha többsávos vezeték + nélküli kártyánk van, és + az összes tartomány + végigpásztázása + túlságosan sok idõt venne el. Ezt a + mûvelet a <option>mode</option> paraméter + megadásával lehet egy konkrét + sávra leszûkíteni, + például a</para> + + <programlisting>ifconfig_ath0="mode <replaceable>11g</replaceable> ssid <replaceable>saját_ssid</replaceable> DHCP"</programlisting> + + <para>beállítás hatására + a kártya 802.11g módban fog üzemelni, + ami kizárólag csak 2,4 GHz-es + frekvenciákon használható, így + az 5 GHz-es csatornákat egyszerûen + figyelmen kívül hagyjuk. Ugyanezt a + <option>channel</option> paraméterrel is meg tudjuk + oldani, mivel így a mûködést egy + adott frekvenciára korlátozzuk, valamint a + <option>chanlist</option> paraméterrel, ahol a + pásztázandó csatornákat + sorolhatjuk fel. Ezekrõl a + paraméterekrõl részletesebb + leírást az &man.ifconfig.8; man oldalon + találhatunk.</para> + + </sect5> + + <sect5> + <title>Hitelesítés</title> + + <para>Miután sikeresen kiválasztottuk a + számunkra megfelelõ + hozzáférési pontot, az adatok + küldéséhez az + állomásunknak valamilyen módon + hitelesítenie kell magát. A + hitelesítés több módon + történhet. Erre a leggyakrabban alkalmazott + sémát nyílt + hitelesítésnek (open authentication) + nevezik, ahol a hálózathoz tetszõleges + állomás csatlakozhat és + kommunikálhat vele. Ezt a típusú + hitelesítést akkor érdemes + használni, amikor a vezeték + nélküli hálózatunkat + teszteljük. Más sémákban az + adatfolyam megindításához egy + titkosítási kézfogás + szükséges, vagy elõre megosztott kulcsok + esetleg jelszavak segítségével, vagy + bonyolultabb sémák esetében itt + még olyan különbözõ + háttérszolgáltatások is + megjelennek, mint például a RADIUS. A + legtöbb felhasználó a nyílt + hitelesítést használja, ami egyben az + alapértelmezés is. A másik + legelterjedtebb beállítás a WPA-PSK, + avagy WPA Personal, amelyrõl <link + linkend="network-wireless-wpa-wpa-psk">lentebb</link> + még szólni fogunk.</para> + + <note> + <para>Ha &apple; &airport; Extreme Base Station + típusú hozzáférési + pontunk van, akkor az osztott kulcsú + hitelesítés mellett egy WEP kulcsot is be + állítanunk. Ezt az + <filename>/etc/rc.conf</filename> + állományban vagy a &man.wpa.supplicant.8; + programban tehetjük meg. Ha egyetlen &airport; + bázisállomásunk van, akkor az + elérést valahogy így tudjuk + beállítani:</para> + + <programlisting>ifconfig_ath0="authmode shared wepmode on weptxkey <replaceable>1</replaceable> wepkey <replaceable>01234567</replaceable> DHCP"</programlisting> + + <para>Általánosságban véve + elmondhatjuk, hogy az osztott kulcsú + hitelesítést inkább + kerüljük el, mivel WEP kulcsok + használatára alapszik és + ráadásul olyan módon, hogy nagyon + könnyû feltörni. Ha már + mindenképpen a WEP mellett kell + döntenünk (például a + régebbi eszközökkel így tudunk + csak kompatibilisek maradni), akkor jobban + járunk, ha a <literal>nyílt</literal> + hitelesítéshez alkalmazzuk. A WEP + használatát érintõ + további információkat a <xref + linkend="network-wireless-wep">ban + találjuk.</para> + </note> + </sect5> + + <sect5> + <title>IP-cím szerzése DHCP + használatával</title> + + <para>Miután kiválasztottunk egy + hozzáférési pontot és + beállítottuk a hitelesítés + paramétereit, egy IP-cím is kelleni fog a + kommunikációhoz. Az esetek + túlnyomó részében DHCP-n + keresztül kapunk IP-címet a vezeték + nélküli kapcsolatunkhoz. Ezt úgy + érhetjük el, ha egyszerûen megnyitjuk az + <filename>/etc/rc.conf</filename> állományt + és az alábbihoz hasonló módon + felvesszük a <literal>DHCP</literal> + paramétert az eszközünk + beállításaihoz:</para> + + <programlisting>ifconfig_ath0="DHCP"</programlisting> + + <para>Így már készen is állunk a + vezeték nélküli felület + használatára:</para> + + <screen>&prompt.root; <userinput>/etc/rc.d/netif start</userinput></screen> + + <para>Ahogy a felület + mûködõképessé válik, + az <command>ifconfig</command> parancs + segítségével ellenõrizni is + tudjuk az <devicename>ath0</devicename> felület + állapotát:</para> + + <screen>&prompt.root; <userinput>ifconfig <replaceable>ath0</replaceable></userinput> +ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 + inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1 + inet 192.168.1.100 netmask 0xffffff00 broadcast 192.168.1.255 + ether 00:11:95:d5:43:62 + media: IEEE 802.11 Wireless Ethernet autoselect (OFDM/54Mbps) + status: associated + ssid dlinkap channel 6 bssid 00:13:46:49:41:76 + authmode OPEN privacy OFF txpowmax 36 protmode CTS bintval 100</screen> + + <para>A <literal>status: associated</literal> azt jelenti, + hogy sikeresen csatlakoztunk egy vezeték + nélküli hálózathoz (jelen + esetben ez a <literal>dlinkap</literal>). A + <literal>bssid 00:13:46:49:41:76</literal> rész a + hozzáférési pont + MAC-címét tartalmazza. Az + <literal>authmode</literal> pedig arról + számol be, hogy a kommunikáció nem + titkosított (<literal>OPEN</literal>).</para> + + </sect5> + + <sect5> + <title>Statikus IP-cím</title> + + <para>Ha valami okból nem tudjuk az + IP-címünket DHCP szerveren keresztül + lekérni, beállíthatunk + rögzített IP-címet is. Ehhez nem kell + mást tennünk, mint a korábban + bemutatott <literal>DHCP</literal> kulcsszót + kicserélni egy konkrét címmel. A + hozzáférési ponthoz megadott + többi paramétert azonban + feltétlenül hagyjuk meg:</para> + + <programlisting>ifconfig_ath0="ssid <replaceable>saját_ssid</replaceable> inet <replaceable>192.168.1.100</replaceable> netmask <replaceable>255.255.255.0</replaceable>"</programlisting> + + </sect5> + + <sect4 id="network-wireless-wpa"> + <title>WPA</title> + + <para>A WPA (Wi-Fi Protected Access, vagyis védett + wi-fi hozzáférés) a 802.11 + szabványokban használatos biztonsági + protokoll, amelyet a <link + linkend="network-wireless-wep">WEP</link> + gyengeségeinek és megfelelõ + hitelesítésének + ellensúlyozására dolgoztak ki. A WPA a + 802.1X hitelesítési protokolljait + erõsíti és az adat + sértetlenségének + megõrzésére a WEP helyett több + titkosítási algoritmust is felhasznál. + A WPA által igényelt egyetlen + titkosítás a TKIP (Temporary Key Integrity + Protocol, vagyis az ideiglenes kulcs integritási + protokoll), amely a WEP által az integritás + ellenõrzésére és a + bejutások észlelésére és + azok reagálására szánt alap RC4 + titkosítást bõvíti ki. A TKIP a + régebbi hardvereken csupán szoftveres + módosítással + mûködõképessé tehetõ. Ez + a kompromisszum a védelmet ugyan növeli, de + még mindig kevés a támadások + megfelelõ elhárításához. A + WPA a TKIP mellett tartalmazza még az AES-CCMP + titkosítást is, és ennek a + használata javasolt. Ezt a + specifikációt gyakran WPA2 (vagy RSN) + néven emlegetik.</para> + + <para>A WPA definiál hitelesítési + és titkosítási protokollokat. A + hitelesítés általában a + következõ két technika egyike + alapján történik: vagy 802.1X és + egy háttérszolgáltatás, + például a RADIUS + segítségével, vagy egy elõre + megosztott kulcsot alkalmazó minimális + kézfogással az állomás és + a hozzáférési pont között. + Az elõbbit gyakran WPA Enterprise-nak, míg az + utóbbit WPA Personalnak hívják. Mivel + a legtöbben nem állítanak be egy komplett + RADIUS alapú szervert a vezeték + nélküli hálózatukhoz, ezért + a WPA-PSK a WPA leginkább elterjedten használt + változata.</para> + + <para>A vezeték nélküli kapcsolat és + a hitelesítés (kulcs alapján vagy + szerverrel) vezérlését a + &man.wpa.supplicant.8; segédprogram végzi. + Ennek a programnak mûködéséhez egy + konfigurációs állományra van + szüksége, amely az + <filename>/etc/wpa_supplicant.conf</filename> néven + érhetõ el. Errõl az + állományról bõvebb + információt a &man.wpa.supplicant.conf.5; man + oldalán lelhetünk.</para> + + <sect5 id="network-wireless-wpa-wpa-psk"> + <title>WPA-PSK</title> + + <para>A WPA-PSK, más néven WPA-Personal, egy + adott jelszó alapján generált + elõre megosztott kulcssal (pre-shared key, PSK) + mûködik, amit a vezeték + nélküli hálózatokban + mesterkulcsént használnak. Ez azt jelenti, + hogy minden egyes vezeték nélküli + felhasználó ugyanazon a kulcson osztozik. A + WPA-PSK olyan kis méretû + hálózatok esetében megfelelõ, + ahol a hitelesítést elvégzõ + szerver használata nem lehetséges vagy nem + oldható meg.</para> + + <warning> + <para>Mindig igyekezzünk erõs jelszavakat + használni, melyek kellõen hosszúak + és sokféle karaktert tartalmaznak, + és így nehezebben fejthetõek meg vagy + törhetõek fel.</para> + </warning> + + <para>Elõször az + <filename>/etc/wpa_supplicant.conf</filename> + állományban állítsuk be az + SSID-t és a hálózatunkhoz + tartozó elõre megosztott kulcsot:</para> + + <programlisting>network={ + ssid="freebsdap" + psk="freebsdmall" +}</programlisting> + + <para>Ezután az <filename>/etc/rc.conf</filename> + állományban jelezzük, hogy a + vezeték nélküli eszközt a WPA + segítségével állítjuk + be és az IP-címet a DHCP szervertõl + kérjük el:</para> + + <programlisting>ifconfig_ath0="WPA DHCP"</programlisting> + + <para>Innentõl már fel is tudjuk + éleszteni a felületet:</para> + + <screen>&prompt.root; <userinput><filename>/etc/rc.d/netif</filename> start</userinput> +Starting wpa_supplicant. +DHCPDISCOVER on ath0 to 255.255.255.255 port 67 interval 5 +DHCPDISCOVER on ath0 to 255.255.255.255 port 67 interval 6 +DHCPOFFER from 192.168.0.1 +DHCPREQUEST on ath0 to 255.255.255.255 port 67 +DHCPACK from 192.168.0.1 +bound to 192.168.0.254 -- renewal in 300 seconds. +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.254 netmask 0xffffff00 broadcast 192.168.0.255 + ether 00:11:95:d5:43:62 + media: IEEE 802.11 Wireless Ethernet autoselect (OFDM/36Mbps) + status: associated + ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac + authmode WPA privacy ON deftxkey UNDEF TKIP 2:128-bit txpowmax 36 + protmode CTS roaming MANUAL bintval 100</screen> + + <para>Kézzel is megpróbálhatjuk + elindítani az <link + linkend="network-wireless-wpa-wpa-psk">elõbb</link> + elkészített + <filename>/etc/wpa_supplicant.conf</filename> + állomány használatával:</para> + + <screen>&prompt.root; <userinput>wpa_supplicant -i <replaceable>ath0</replaceable> -c /etc/wpa_supplicant.conf</userinput> +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=TKIP GTK=TKIP]</screen> + + <para>A következõ parancs a + <command>dhclient</command> indítása legyen, + amivel megszerezzük a DHCP szervertõl az + IP-címünket:</para> + + <screen>&prompt.root; <userinput>dhclient <replaceable>ath0</replaceable></userinput> +DHCPREQUEST on ath0 to 255.255.255.255 port 67 +DHCPACK from 192.168.0.1 +bound to 192.168.0.254 -- renewal in 300 seconds. +&prompt.root; <userinput>ifconfig <replaceable>ath0</replaceable></userinput> +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.254 netmask 0xffffff00 broadcast 192.168.0.255 + ether 00:11:95:d5:43:62 + media: IEEE 802.11 Wireless Ethernet autoselect (OFDM/48Mbps) + status: associated + ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac + authmode WPA privacy ON deftxkey UNDEF TKIP 2:128-bit txpowmax 36 + protmode CTS roaming MANUAL bintval 100</screen> + + <note> + <para>Ha az <filename>/etc/rc.conf</filename> + állományban szerepel a + <literal>ifconfig_ath0="DHCP"</literal> sor, akkor + egyáltalán nem szükséges a + <command>dhclient</command> parancs manuális + kiadása, mivel a <command>dhclient</command> + magától el fog indulni, miután a + <command>wpa_supplicant</command> egyeztette a + kulcsokat.</para> + </note> + + <para>Amikor a DHCP nem használható, + megadhatunk a statikus IP-címet is, miután a + <command>wpa_supplicant</command> sikeresen + lebonyolította a hitelesítést:</para> + + <screen>&prompt.root; <userinput>ifconfig <replaceable>ath0</replaceable> inet <replaceable>192.168.0.100</replaceable> netmask <replaceable>255.255.255.0</replaceable></userinput> +&prompt.root; <userinput>ifconfig <replaceable>ath0</replaceable></userinput> +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.100 netmask 0xffffff00 broadcast 192.168.0.255 + ether 00:11:95:d5:43:62 + media: IEEE 802.11 Wireless Ethernet autoselect (OFDM/36Mbps) + status: associated + ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac + authmode WPA privacy ON deftxkey UNDEF TKIP 2:128-bit txpowmax 36 + protmode CTS roaming MANUAL bintval 100</screen> + + <para>Ha egyáltalán nem használunk DHCP + szervert, akkor nekünk kell beállítani + az alapértelmezett átjárót + és a névszervert is:</para> + + <screen>&prompt.root; <userinput>route add default <replaceable>alapértelmezett_átjáró</replaceable></userinput> +&prompt.root; <userinput>echo "nameserver <replaceable>névszerver</replaceable>" >> /etc/resolv.conf</userinput></screen> + + </sect5> + + <sect5 id="network-wireless-wpa-eap-tls"> + <title>WPA és EAP-TLS</title> + + <para>A másik mód, ahogy a WPA + használható, az a 802.1X + hitelesítési szerveren keresztül + történik, és ebben az esetben a WPA + neve WPA-Enterprise. Ez sokkal biztonságosabb a + WPA-Personal elõre kiosztott kulcsaival szemben. A + WPA-Enterprise az EAP (Extensible Authentication Protocol, + azaz Bõvíthetõ hitelesítési + protokoll) használatán alapszik.</para> + + <para>Az EAP önmaga nem végez + titkosítást, mivel úgy + alakították ki, hogy magát az EAP + protokollt kell egy titkosított járaton + keresztül bújtatni. Az EAP + hitelesítési módszereinek több + típusát is kidolgozták, melyek + közül a legismertebbek az EAP-TLS, EAP-TTLS + valamint a EAP-PEAP.</para> + + <para>Az EAP-TLS (EAP szállítási + rétegbeli védelemmel) a vezeték + nélküli világban egy nagyon jól + támogatott hitelesítési protokoll, + mivel ez volt az elsõ EAP módszer, amit a + <ulink url="http://www.wi-fi.org/">Wi-fi + szövetség</ulink> jóváhagyott. + Az EAP-TLS mûködéséhez + három tanúsítvány kell: egy + hitelesítõ hatóságtól + (Certificate Authority, CA), egy a + hitelesítést végzõ + szervertõl és egy a klienstõl. Ezzel az + EAP módszerrel mind a hitelesítõ + szerver, mind a vezeték nélküli kliens + külön képviselik a saját + tanúsítványaikat, és ezeket a + szervezetünket hitelesítõ + hatóság aláírása + alapján ellenõrzik.</para> + + <para>A korábbiaknak megfelelõen a + beállításokat szintén az + <filename>/etc/wpa_supplicant.conf</filename> + állományon keresztül + végezzük el:</para> + + <programlisting>network={ + ssid="freebsdap" <co id="co-tls-ssid"> + proto=RSN <co id="co-tls-proto"> + key_mgmt=WPA-EAP <co id="co-tls-kmgmt"> + eap=TLS <co id="co-tls-eap"> + identity="loader" <co id="co-tls-id"> + ca_cert="/etc/certs/cacert.pem" <co id="co-tls-cacert"> + client_cert="/etc/certs/clientcert.pem" <co id="co-tls-clientcert"> + private_key="/etc/certs/clientkey.pem" <co id="co-tls-pkey"> + private_key_passwd="freebsdmallclient" <co id="co-tls-pwd"> +}</programlisting> + + <calloutlist> + <callout arearefs="co-tls-ssid"> + <para>Ez a mezõ adja meg a hálózat + nevét (SSID).</para> + </callout> + + <callout arearefs="co-tls-proto"> + <para>Itt az RSN (IEEE 802.11i), vagyis a WPA2 + protokollt használjuk.</para> + </callout> + + <callout arearefs="co-tls-kmgmt"> + <para>A <literal>key_mgmt</literal> sor a + kulcskezelési protokollt adja meg. A mi + esetünkben ez a WPA lesz, EAP + hitelesítéssel: + <literal>WPA-EAP</literal>.</para> + </callout> + + <callout arearefs="co-tls-eap"> + <para>Ebben a mezõben az EAP módszert + nevezzük meg a kapcsolathoz.</para> + </callout> + + <callout arearefs="co-tls-id"> + <para>Az <literal>identity</literal> mezõ az EAP + esetén használt azonosítót + tartalmazza.</para> + </callout> + + <callout arearefs="co-tls-cacert"> + <para>A <literal>ca_cert</literal> mezõ a + hitelesítõ hatóság + tanúsítványát + tároló állomány + elérési útvonalát adja + meg. Ezt a szerver + tanúsítványának + hitelesítéséhez + használjuk.</para> + </callout> + + <callout arearefs="co-tls-clientcert"> + <para>A <literal>client_cert</literal> sor a kliens + tanúsítványát + tartalmazó állomány + elérési útvonalát adja + meg. Ennek a vezeték nélküli + hálózat minden egyes kliense + esetében egyedinek kell lennie.</para> + </callout> + + <callout arearefs="co-tls-pkey"> + <para>A <literal>private_key</literal> mezõ a + kliens tanúsítvánáynak + privát kulcsát tároló + állomány elérési + útját adja meg.</para> + </callout> + + <callout arearefs="co-tls-pwd"> + <para>A <literal>private_key_passwd</literal> mezõ + a privát kulcshoz tartozó jelmondatot + rögzíti.</para> + </callout> + </calloutlist> + + <para>Az <filename>/etc/rc.conf</filename> + állományba vegyük fel a + következõ sort:</para> + + <programlisting>ifconfig_ath0="WPA DHCP"</programlisting> + + <para>A következõ lépés a + felület felébresztése lesz az + <filename>rc.d</filename> eszköz + segítségével:</para> + + <screen>&prompt.root; <userinput>/etc/rc.d/netif start</userinput> +Starting wpa_supplicant. +DHCPREQUEST on ath0 to 255.255.255.255 port 67 +DHCPREQUEST on ath0 to 255.255.255.255 port 67 +DHCPACK from 192.168.0.20 +bound to 192.168.0.254 -- renewal in 300 seconds. +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.254 netmask 0xffffff00 broadcast 192.168.0.255 + ether 00:11:95:d5:43:62 + media: IEEE 802.11 Wireless Ethernet autoselect (DS/11Mbps) + status: associated + ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac + authmode WPA2/802.11i privacy ON deftxkey UNDEF TKIP 2:128-bit + txpowmax 36 protmode CTS roaming MANUAL bintval 100</screen> + + <para>Természetesen, ahogy azt már az + elõbbiekben is megmutattuk, mindezt manuálisan + is el tudjuk végezni a + <command>wpa_supplicant</command> és az + <command>ifconfig</command> parancsok + segítségével.</para> + + </sect5> + + <sect5 id="network-wireless-wpa-eap-ttls"> + <title>WPA és EAP-TTLS</title> + + <para>Az EAP-TLS használatakor mind a + hitelesítést végzõ szervernek + és kliensnek is kell + tanúsítvány, azonban az EAP-TTLS ( + szállítási rétegbeli + védelem EAP tunnelen keresztül) + esetében a kliensnél ez elhagyható. + Ez a módszer nagyjából olyan, mint + amit a webes oldalak csinálnak, ahol a webszerverek + egy védett SSL tunnelt képeznek még + akkor is, amikor a látogatók nem + rendelkeznek kliens oldali + tanúsítvánnyal. Az EAP-TTLS egy + titkosított TLS tunnelen keresztül védi + le a hitelesítési adatok + forgalmát.</para> + + <para>Ezt ismét az + <filename>/etc/wpa_supplicant.conf</filename> + állományon keresztül tudjuk + beállítani:</para> + + <programlisting>network={ + ssid="freebsdap" + proto=RSN + key_mgmt=WPA-EAP + eap=TTLS <co id="co-ttls-eap"> + identity="test" <co id="co-ttls-id"> + password="test" <co id="co-ttls-passwd"> + ca_cert="/etc/certs/cacert.pem" <co id="co-ttls-cacert"> + phase2="auth=MD5" <co id="co-ttls-pha2"> +}</programlisting> + + <calloutlist> + <callout arearefs="co-ttls-eap"> + <para>Ebben a mezõben az EAP módszert + állítjuk be a kapcsolathoz.</para> + </callout> + + <callout arearefs="co-ttls-id"> + <para>Az <literal>identity</literal> mezõ a + titkosított TLS tunnelen keresztül az EAP + hitelesítésnél felhasznált + azonosítót adja meg.</para> + </callout> + + <callout arearefs="co-ttls-passwd"> + <para>A <literal>password</literal> tartalmazza az EAP + hitelesítésnél használt + jelmondatot.</para> + </callout> + + <callout arearefs="co-ttls-cacert"> + <para>A <literal>ca_cert</literal> mezõ hivatkozik + a hitelesítõ hatóság + tanúsítványát + tartalmazó állományra. Ez az + állomány kell a szerver + tanúsítványának + ellenõrzéséhez.</para> + </callout> + + <callout arearefs="co-ttls-pha2"> + <para>Ebben a mezõben a titkosított TLS + tunnelben használt hitelesítési + módszer nevezzük meg. Jelen + esetünkben ez az EAP MD5-Challenge + használatával. A <quote>belsõ + hitelesítés</quote> + fázisát gyakran csak + <quote>phase2</quote>-nak (2. fázisnak) + hívják.</para> + </callout> + </calloutlist> + + <para>Mindezek mellett még a következõ sort + is vegyük fel az <filename>/etc/rc.conf</filename> + állományba:</para> + + <programlisting>ifconfig_ath0="WPA DHCP"</programlisting> + + <para>Ezután hozzuk mûködésbe a + felületet:</para> + + <screen>&prompt.root; <userinput>/etc/rc.d/netif start</userinput> +Starting wpa_supplicant. +DHCPREQUEST on ath0 to 255.255.255.255 port 67 +DHCPREQUEST on ath0 to 255.255.255.255 port 67 +DHCPREQUEST on ath0 to 255.255.255.255 port 67 +DHCPACK from 192.168.0.20 +bound to 192.168.0.254 -- renewal in 300 seconds. +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.254 netmask 0xffffff00 broadcast 192.168.0.255 + ether 00:11:95:d5:43:62 + media: IEEE 802.11 Wireless Ethernet autoselect (DS/11Mbps) + status: associated + ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac + authmode WPA2/802.11i privacy ON deftxkey UNDEF TKIP 2:128-bit + txpowmax 36 protmode CTS roaming MANUAL bintval 100</screen> + + </sect5> + + <sect5 id="network-wireless-wpa-eap-peap"> + <title>WPA és EAP-PEAP</title> + + <para>A PEAP (Védett EAP) az EAP-TTLS egyik + alternatívájaként jött + létre. A PEAP módszernek két + változata van, melyek közül a + leggyakoribb a PEAPv0/EAP-MSCHAPv2. A + leírás további részében + a PEAP elnevezéssel erre az EAP módszerre + fogunk hivatkozni. A PEAP az EAP-TLS után a + leginkább alkalmazott szabvány, más + szóval, ha a hálózatunkban + többféle operációs rendszer is + megtalálható, akkor az EAP-TLS után + valószínûleg a PEAP lesz a + másik, amit mindegyik ismerni fog.</para> + + <para>A PEAP hasonló az EAP-TTLS-hez: szerver oldali + tanúsítványokkal hitelesíti a + klienseket és titkosított TLS tunnelt hoz + létre a kliens és a + hitelesítést végzõ szerver + között, amivel segíti megóvni a + hitelesítési információkat. + Biztonság szempontjából az EAP-TTLS + és a PEAP között az a + különbség, hogy a PEAP + hitelesítés a felhasználói + nevet titkosítatlanul küldi és csak a + jelszó megy át a titkosított TLS + tunnelen. Az EAP-TTLS egyaránt a TLS tunnelt + használja mind a felhasználói + név, mind a jelszó esetében.</para> + + <para>Az EAP-PEAP beállításait az + <filename>/etc/wpa_supplicant.conf</filename> + állományba kell felvenni:</para> + + <programlisting>network={ + ssid="freebsdap" + proto=RSN + key_mgmt=WPA-EAP + eap=PEAP <co id="co-peap-eap"> + identity="test" <co id="co-peap-id"> + password="test" <co id="co-peap-passwd"> + ca_cert="/etc/certs/cacert.pem" <co id="co-peap-cacert"> + phase1="peaplabel=0" <co id="co-peap-pha1"> + phase2="auth=MSCHAPV2" <co id="co-peap-pha2"> +}</programlisting> + + <calloutlist> + <callout arearefs="co-peap-eap"> + <para>Ebben a mezõben megadjuk, az EAP + módszert használjuk a + kapcsolathoz.</para> + </callout> + + <callout arearefs="co-peap-id"> + <para>Az <literal>identity</literal> mezõ az EAP + hitelesítés során a + titkosított TLS tunnelben + átküldött azonosítót + tartalmazza.</para> + </callout> + + <callout arearefs="co-peap-passwd"> + <para>A <literal>password</literal> mezõ az EAP + hitelesítés során használt + jelmondatot definiálja.</para> + </callout> + + <callout arearefs="co-peap-cacert"> + <para>A <literal>ca_cert</literal> mezõ a + hitelesítõ hatóság + tanúsítványát + tartalmazó állomány + elérési útját adja meg. + Ez az állomány kell a szerver + tanúsítványának + ellenõrzéséhez.</para> + </callout> + + <callout arearefs="co-peap-pha1"> + <para>Ez a mezõ a hitelesítés + elsõ fázisának (vagyis a TLS + tunnel) paramétereit tartalmazza. A + hitelesítést végzõ + szervertõl függõen a + hitelesítéshez meg kell adnunk bizonyos + címkéket. A legtöbb esetben a + címke a <quote>kliens oldali EAP + titkosítás</quote> lesz, amit a + <literal>peaplabel=0</literal> + használatával állítunk be. + A részleteket a &man.wpa.supplicant.conf.5; man + oldalon olvashatjuk.</para> + </callout> + + <callout arearefs="co-peap-pha2"> + <para>Ebben a mezõben a titkosított TLS + tunnelben alkalmazott hitelesítést + protokollt nevezzük meg. A PEAP esetében + ez az <literal>auth=MSCHAPV2</literal> lesz.</para> + </callout> + </calloutlist> + + <para>A következõket kell még + hozzátennünk az + <filename>/etc/rc.conf</filename> + állományhoz:</para> + + <programlisting>ifconfig_ath0="WPA DHCP"</programlisting> + + <para>Ezután már mûködésbe is + hozhatjuk a felületet:</para> + + <screen>&prompt.root; <userinput>/etc/rc.d/netif start</userinput> +Starting wpa_supplicant. +DHCPREQUEST on ath0 to 255.255.255.255 port 67 +DHCPREQUEST on ath0 to 255.255.255.255 port 67 +DHCPREQUEST on ath0 to 255.255.255.255 port 67 +DHCPACK from 192.168.0.20 +bound to 192.168.0.254 -- renewal in 300 seconds. +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.254 netmask 0xffffff00 broadcast 192.168.0.255 + ether 00:11:95:d5:43:62 + media: IEEE 802.11 Wireless Ethernet autoselect (DS/11Mbps) + status: associated + ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac + authmode WPA2/802.11i privacy ON deftxkey UNDEF TKIP 2:128-bit + txpowmax 36 protmode CTS roaming MANUAL bintval 100</screen> + + </sect5> + </sect4> + + <sect4 id="network-wireless-wep"> + <title>WEP</title> + + <para>A WEP (Wired Equivalent Privacy, azaz kábellel + egyenértékû titkosság) az eredeti + 802.11 szabvány része. Nincs külön + hitelesítési mechanizmusa, csupán a + hozzáférés-vezérlés egy + gyenge formájával találkozhatunk benne, + amit azonban könnyen fel lehet törni.</para> + + <para>A WEP <command>ifconfig</command> parancs + használatán keresztül + állítható be:</para> + + <screen>&prompt.root; <userinput>ifconfig <replaceable>ath0</replaceable> ssid <replaceable>saját_hálózat</replaceable> wepmode on weptxkey 3 wepkey 3:0x3456789012 \ + inet <replaceable>192.168.1.100</replaceable> netmask <replaceable>255.255.255.0</replaceable></userinput></screen> + + <itemizedlist> + <listitem> + <para>A <literal>weptxkey</literal> utal arra, hogy a + küldés során WEP kulcsot + használunk. Itt most egy harmadik kulcsot + használtunk, amelynek egyeznie kell a + hozzáférési pont + beállításaival.</para> + </listitem> + + <listitem> + <para>A <literal>wepkey</literal> után + következik a kiválasztott WEP kulcs. + <replaceable>index:kulcs</replaceable> alakban kell + megadni, és ha itt nem adunk meg indexet, akkor + azzal az <literal>1</literal> indexû kulcsot + állítjuk be. Úgyis + fogalmazhatnánk, hogy az indexet csak olyankor + kell megadni, amikor nem az elsõ kulcsot akarjuk + használni.</para> + + <note> + <para>A <literal>0x3456789012</literal> + értéket a + hozzáférési pontnál + beállított kulcsra kell + beállítani.</para> + </note> + </listitem> + </itemizedlist> + + <para>Ha érdekelnek minket a további + részletek, akkor bátran lapozzuk fel az + &man.ifconfig.8; parancs man oldalát.</para> + + <para>A <command>wpa_supplicant</command> + segédprogramot is bevonhatjuk a vezeték + nélküli felületek WEP alapú + használatába. A fenti példát a + következõ módon tudjuk leírni az + <filename>/etc/wpa_supplicant.conf</filename> + állományban:</para> + + <programlisting>network={ + ssid="sajat_halozat" + key_mgmt=NONE + wep_key3=3456789012 + wep_tx_keyidx=3 +}</programlisting> + + <para>Majd:</para> + + <screen>&prompt.root; <userinput>wpa_supplicant -i <replaceable>ath0</replaceable> -c /etc/wpa_supplicant.conf</userinput> +Trying to associate with 00:13:46:49:41:76 (SSID='dlinkap' freq=2437 MHz) +Associated with 00:13:46:49:41:76</screen> + + </sect4> + </sect3> + </sect2> + + <sect2> + <title>Az ad-hoc mûködési mód</title> + + <para>Az IBSS vagy más néven ad-hoc módot + pont-pont típusú kapcsolatok + kialakítására tervezték. + Például, ha az <hostid>A</hostid> és a + <hostid>B</hostid> gépek között egy ad-hoc + típusú hálózatot akarunk + létesíteni, akkor egyszerûen csak ki kell + választanunk két IP-címet és egy + SSID-t.</para> + + <para>Így állítjuk be az <hostid>A</hostid> + gépet:</para> + + <screen>&prompt.root; <userinput>ifconfig <replaceable>ath0</replaceable> ssid <replaceable>freebsdap</replaceable> mediaopt adhoc inet <replaceable>192.168.0.1</replaceable> netmask <replaceable>255.255.255.0</replaceable></userinput> +&prompt.root; <userinput>ifconfig <replaceable>ath0</replaceable></userinput> + 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 <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</screen> + + <para>Az <literal>adhoc</literal> paraméterrel utalunk + arra, hogy a felület most IBSS módban + mûködik.</para> + + <para>A <hostid>B</hostid> gépen ezután már + képesek vagyunk észlelni az <hostid>A</hostid> + gépet:</para> + + <screen>&prompt.root; <userinput>ifconfig <replaceable>ath0</replaceable> up scan</userinput> + SSID BSSID CHAN RATE S:N INT CAPS + freebsdap 02:11:95:c3:0d:ac 2 54M 19:3 100 IS</screen> + + <para>A kimenetben szereplõ <literal>I</literal> is + megerõsíti, hogy az <hostid>A</hostid> gépet + ad-hoc módban érjük el. Így + már csak a <hostid>B</hostid> gépet kell + beállítanunk egy másik + IP-címmel:</para> + + <screen>&prompt.root; <userinput>ifconfig <replaceable>ath0</replaceable> ssid <replaceable>freebsdap</replaceable> mediaopt adhoc inet <replaceable>192.168.0.2</replaceable> netmask <replaceable>255.255.255.0</replaceable></userinput> +&prompt.root; <userinput>ifconfig <replaceable>ath0</replaceable></userinput> + 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 <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</screen> + + <para>Most már mind az <hostid>A</hostid> és + mind a <hostid>B</hostid> készen áll az adatok + cseréjére.</para> + + </sect2> + + <sect2 id="network-wireless-ap"> + <title>&os; alapú hozzáférési + pontok</title> + + <para>A &os; képes hozzáférési + pontként (Access Point, AP) is üzemelni, így + nem kell külön hardveres + hozzáférési pontot + vásárolnunk vagy ad-hoc hálózatot + használnunk. Ez különösen akkor hasznos, + amikor a &os; gépet egy másik + hálózat (például az internet) + felé állítottuk be + átjárónak.</para> + + <sect3 id="network-wireless-ap-basic"> + <title>Alapvetõ beállítások</title> + + <para>Mielõtt nekiállnánk a &os;-s + gépünket hozzáférési pontnak + beállítani, egy olyan rendszermagra lesz + szükségünk, amely tartalmazza a + megfelelõ vezeték nélküli + támogatást a kártyánkhoz. + Emellett az alkalmazni kívánt biztonsági + protokollok támogatását is bele kell + építenünk. Ennek részleteit + lásd a <xref + linkend="network-wireless-basic">ban.</para> + + <note> + <para>Jelenleg az NDIS meghajtón keresztül + használt &windows;-os meghajtók nem teszik + lehetõvé hozzáférési pontok + kialakítását. Egyedül a + vezeték nélküli eszközök + natív &os;-s meghajtói ismerik a + hozzáférési pont módot.</para> + </note> + + <para>Ahogy betöltöttük a vezeték + nélküli hálózatok + támogatását, egybõl ellenõrizni + is tudjuk, hogy a vezeték nélküli + eszközünk használható-e + hozzáférési pontként (avagy + <quote>hostap</quote> módban):</para> + + <screen>&prompt.root; <userinput>ifconfig <replaceable>ath0</replaceable> list caps</userinput> +ath0=783ed0f<WEP,TKIP,AES,AES_CCM,IBSS,HOSTAP,AHDEMO,TXPMGT,SHSLOT,SHPREAMBLE,MONITOR,TKIPMIC,WPA1,WPA2,BURST,WME></screen> + + <para>A fenti kimenetben láthatjuk a + kártyánk tulajdonságait. A + <literal>HOSTAP</literal> szó arról + tanúskodik, hogy a vezeték nélküli + kártyánk képes + hozzáférési pontként viselkedni. + Mellette még a különféle + támogatott titkosítási módszerek + is láthatóak: WEP, TKIP, WPA2 stb. Ezekbõl + az információkból tudjuk + kideríteni, hogy a hozzáférési + pontunkon milyen titkosítási protokollokat + tudunk használni.</para> + + <para>A vezeték nélküli eszközünket + most már átállíthatjuk + hozzáférési pontnak, amihez megadunk + még egy SSID-t és egy IP-címet:</para> + + <screen>&prompt.root; <userinput>ifconfig <replaceable>ath0</replaceable> ssid <replaceable>freebsdap</replaceable> mode 11g mediaopt hostap</userinput> inet <replaceable>192.168.0.1</replaceable> netmask <replaceable>255.255.255.0</replaceable></screen> + + <para>Az <command>ifconfig</command> parancs ismételt + használatával le is tudjuk kérdezni az + <devicename>ath0</devicename> felület + állapotát:</para> + + <screen>&prompt.root; <userinput>ifconfig <replaceable>ath0</replaceable></userinput> + 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</screen> + + <para>A <literal>hostap</literal> paraméterbõl + kiderül, hogy a felület + hozzáférési pont módban + van.</para> + + <para>Ha az <filename>/etc/rc.conf</filename> + állományban megadjuk a következõ sort, + akkor a felület beállítása a + rendszer indításakor magától + megtörténik:</para> + + <programlisting>ifconfig_ath0="ssid <replaceable>freebsdap</replaceable> mode 11g mediaopt hostap inet <replaceable>192.168.0.1</replaceable> netmask <replaceable>255.255.255.0</replaceable>"</programlisting> + + </sect3> + + <sect3> + <title>Hitelesítés vagy titkosítás + nélküli hozzáférési + pontok</title> + + <para>Habár a hozzáférési pontok + mûködtetése nem javasolt + hitelesítés vagy titkosítás + nélkül, ebben a módban könnyen meg + tudunk gyõzõdni a hozzáférési + pontunk használhatóságáról. + Ez a típusú konfiguráció + ezenkívül még fontos szerepet + játszik a klienseken felbukkanó hibák + kiszûrésében is.</para> + + <para>Miután sikerült az elõbbiekben + bemutatottak alapján beállítani a + hozzáférési pontunkat, egy másik + vezeték nélküli géprõl + rögtön meg is kezdhetjük a + keresését:</para> + + <screen>&prompt.root; <userinput>ifconfig <replaceable>ath0</replaceable> up scan</userinput> +SSID BSSID CHAN RATE S:N INT CAPS +freebsdap 00:11:95:c3:0d:ac 1 54M 22:1 100 ES</screen> + + <para>Láthatjuk, hogy a kliens megtalálta a + hozzáférési pontot és tudunk is + rá kapcsolódni:</para> + + <screen>&prompt.root; <userinput>ifconfig <replaceable>ath0</replaceable> ssid <replaceable>freebsdap</replaceable> inet <replaceable>192.168.0.2</replaceable> netmask <replaceable>255.255.255.0</replaceable></userinput> +&prompt.root; <userinput>ifconfig <replaceable>ath0</replaceable></userinput> + 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</screen> + + </sect3> + + <sect3> + <title>WPA titkosítást használó + hozzáférési pontok</title> + + <para>Ebben a szakaszban a &os;-s + hozzáférési pontunkat WPA + titkosítással állítjuk be. A WPA + és a WPA alapú kliensek + beállításának részleteit a + <xref linkend="network-wireless-wpa">ban + találjuk.</para> + + <para>A WPA titkosítást használó + hozzáférési pontokon a + <application>hostapd</application> démon foglalkozik a + kliensek hitelesítésével és a + kulcsok kezelésével.</para> + + <para>A továbbiakban az összes + beállítást egy olyan &os;-s gépen + végezzük el, amely + hozzáférési pontként + mûködik. Ahogy sikerült + beállítanunk a hozzáférési + pont módot, az <filename>/etc/rc.conf</filename> + állományban a következõ sor + segítségével könnyen meg tudjuk + oldani, hogy az <application>hostapd</application> + démon a rendszerrel együtt magától + elinduljon:</para> + + <programlisting>hostapd_enable="YES"</programlisting> + + <para>Mielõtt megpróbálnánk + beállítani a <application>hostapd</application> + démont, ne felejtsük el elvégezni a <xref + linkend="network-wireless-ap-basic">ban említett + alapvetõ beállításokat sem.</para> + + <sect4> + <title>WPA-PSK</title> + + <para>A WPA-PSK használatát olyan kis + méretû hálózatok + számára szánják, ahol egy + külön hitelesítõ szervert + alkalmazása nem lehetséges vagy nem + kívánatos.</para> + + <para>A konfiguráció az + <filename>/etc/hostapd.conf</filename> + állományon keresztül + történik:</para> + + <programlisting>interface=ath0 <co id="co-ap-wpapsk-iface"> +debug=1 <co id="co-ap-wpapsk-dbug"> +ctrl_interface=/var/run/hostapd <co id="co-ap-wpapsk-ciface"> +ctrl_interface_group=wheel <co id="co-ap-wpapsk-cifacegrp"> +ssid=freebsdap <co id="co-ap-wpapsk-ssid"> +wpa=1 <co id="co-ap-wpapsk-wpa"> +wpa_passphrase=freebsdmall <co id="co-ap-wpapsk-pass"> +wpa_key_mgmt=WPA-PSK <co id="co-ap-wpapsk-kmgmt"> +wpa_pairwise=CCMP TKIP <co id="co-ap-wpapsk-pwise"></programlisting> + + <calloutlist> + <callout arearefs="co-ap-wpapsk-iface"> + <para>Ebben a mezõben jelöljük ki a + hozzáférési pontként + használt vezeték nélküli + felületet.</para> + </callout> + + <callout arearefs="co-ap-wpapsk-dbug"> + <para>Ebben a mezõben adjuk meg a + <application>hostapd</application> futtatása + során keletkezõ üzenetek + részletességét. A + példában szereplõ + <literal>1</literal> érték ennek a + legkisebb szintjét jelöli.</para> + </callout> + + <callout arearefs="co-ap-wpapsk-ciface"> + <para>A <literal>ctrl_interface</literal> mezõ + megadja a <application>hostapd</application> + által használt könyvtár + elérési útvonalát, amiben + azokat a tartományokhoz tartozó socketeket + tároljuk, amelyeken keresztül olyan + programokkal tudunk kommunikálni, mint + például a &man.hostapd.cli.8;. Itt az + alapértelmezett értéket + írtuk be.</para> + </callout> + + <callout arearefs="co-ap-wpapsk-cifacegrp"> + <para>A <literal>ctrl_interface_group</literal> sor + beállítja azt a csoportot (ez jelen + esetben a <groupname>wheel</groupname>), amin + keresztül a vezérlõfelület + (control interface) állományaihoz + hozzá tudunk férni.</para> + </callout> + + <callout arearefs="co-ap-wpapsk-ssid"> + <para>Ebben a mezõben a hálózat + nevét állítjuk be.</para> + </callout> + + <callout arearefs="co-ap-wpapsk-wpa"> + <para>A <literal>wpa</literal> mezõvel + engedélyezzük a WPA + használatát és megadjuk, hogy + melyik WPA hitelesítési protokollt + alkalmazzuk. Az itt szereplõ <literal>1</literal> + érték a WPA-PSK hitelesítés + állítja be a + hozzáférési pont + számára.</para> + </callout> + + <callout arearefs="co-ap-wpapsk-pass"> + <para>A <literal>wpa_passphrase</literal> mezõ a WPA + hitelesítéshez szükséges ASCII + jelmondatot tartalmazza.</para> + + <warning> + <para>Lehetõleg mindig erõs jelszavakat + használjunk, amelyek kellõen + hosszúak és sokféle karaktert + tartalmaznak, így nehezebben fejthetõek + meg vagy törhetõek fel.</para> + </warning> + </callout> + + <callout arearefs="co-ap-wpapsk-kmgmt"> + <para>A <literal>wpa_key_mgmt</literal> sor a kulcsok + kezelésére használt protokollt + definiálja. Ez a mi esetünk most a + WPA-PSK.</para> + </callout> + + <callout arearefs="co-ap-wpapsk-pwise"> + <para>A <literal>wpa_pairwise</literal> mezõ a + hozzáférési pont által + elfogadott titkosítási algoritmusokat + határozza meg. A példában a TKIP + (WPA) és CCMP (WPA2) titkosítást is + támogatjuk. A CCMP titkosítás a + TKIP egyik alternatívája, és + lehetõség szerint használjuk ezt. A + TKIP csak olyan állomások esetében + javasolt, amelyek nem támogatják a CCMP + használatát.</para> + </callout> + </calloutlist> + + <para>A következõ lépés a + <application>hostapd</application> + elindítása:</para> + + <screen>&prompt.root <userinput>/etc/rc.d/hostapd forcestart</userinput></screen> + + <screen>&prompt.root; <userinput>ifconfig <replaceable>ath0</replaceable></userinput> + 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 dtimperiod 1 bintval 100</screen> + + <para>A hozzáférési pont mostantól + mûködik, innentõl a kliensek már + képesek csatlakozni hozzá, bõvebben + lásd a <xref linkend="network-wireless-wpa">ban. A + hozzáférési ponthoz tartozó + állomásokat az <command>ifconfig + <replaceable>ath0</replaceable> list sta</command> paranccsal + tudjuk listázni.</para> + + </sect4> + </sect3> + + <sect3> + <title>WEP titkosítást használó + hozzáférési pontok</title> + + <para>A WEP titkosítást nem javasoljuk a + hozzáférési pontok esetében, mivel + nem tartalmaz semmilyen hitelesítési + mechanizmust és könnyen feltörhetõ. + Egyes régebbi vezeték nélküli + kártyák azonban csak a WEP által + nyújtott védelmet ismerik, ezért az + ilyenek csak olyan hozzáférési pontokhoz + tudnak csatlakozni, amelyek vagy nem használnank + hitelesítést és + titkosítást, vagy erre a WEP protokollt + használják.</para> + + <para>A vezeték nélküli eszközt + tegyük hozzáférési pont módba + és állítsuk be neki a megfelelõ + SSID-t és IP-címet:</para> + + <screen>&prompt.root; <userinput>ifconfig <replaceable>ath0</replaceable> ssid <replaceable>freebsdap</replaceable> wepmode on weptxkey 3 wepkey 3:0x3456789012 mode 11g mediaopt hostap \ + inet <replaceable>192.168.0.1</replaceable> netmask <replaceable>255.255.255.0</replaceable></userinput></screen> + + <itemizedlist> + <listitem> + <para>A <literal>weptxkey</literal> + beállítás után adjuk meg a + küldéshez használt WEP kulcsot. Itt a + harmadik kulcsot adtuk meg (vegyük észre, hogy + a kulcsok számozása az <literal>1</literal> + értékkel kezdõdik). Ez a + paramétert az adatok tényleges + titkosításához kell megadni.</para> + </listitem> + + <listitem> + <para>A <literal>wepkey</literal> a kiválasztott WEP + kulcs beállítását jelöli, + aminek a formátuma + <replaceable>index:kulcs</replaceable>. Ha itt nem adunk + meg indexet, akkor automatikusan az elsõ kulcsot + állítjuk be. Ezért talán + mondanunk sem kell, hogy az indexet csak akkor kell + megadni, ha nem az elsõ kulcsot akarjuk + használni.</para> + </listitem> + </itemizedlist> + + <para>A <devicename>ath0</devicename> felület + állapotának megtekintéséhez adjuk + ki megint az <command>ifconfig</command> parancsot:</para> + + <screen>&prompt.root; <userinput>ifconfig <replaceable>ath0</replaceable></userinput> + 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 bintval 100</screen> + + <para>Egy másik vezeték nélküli + géprõl most már + megpróbálhatjuk megkeresni a + hozzáférési pontot:</para> + + <screen>&prompt.root; <userinput>ifconfig <replaceable>ath0</replaceable> up scan</userinput> +SSID BSSID CHAN RATE S:N INT CAPS +freebsdap 00:11:95:c3:0d:ac 1 54M 22:1 100 EPS</screen> + + <para>Láthatjuk, hogy a kliens megtalálta a + hozzáférési pontot, és a + megfelelõ paraméterekkel (kulcs stb.) képes + kapcsolódni hozzá a <xref + linkend="network-wireless-wep">ban leírtak + szerint.</para> + + </sect3> + </sect2> + + <sect2> + <title>Hibaelhárítás</title> + + <para>Ha valamilyen gondunk lenne a vezeték + nélküli hálózatok + használatával, akad néhány + lépés, amivel esetleg fel tudjuk deríteni a + hiba okát.</para> + + <itemizedlist> + <listitem> + <para>Ha nem látjuk a hozzáférési + pontot a pásztázás után, + ellenõrizzük, hogy a vezeték + nélküli eszközt véletlenül nem + korlátoztuk-e le bizonyos csatornákra.</para> + </listitem> + + <listitem> + <para>Ha nem tudunk csatlakozni a + hozzáférési ponthoz, akkor + egyeztessük vele az állomás egyes + paramétereit, beleértve a + hitelesítési sémát és a + biztonsági protokollokat. Minél jobban + egyszerûsítsük le a + konfigurációkat. Ha WPA vagy WEP + titkosítást használunk, akkor a + hozzáférési ponton + állítsunk be nyílt + hitelesítést és kapcsoljuk ki a + titkosítást, majd nézzük meg, hogy + így eljut-e hozzánk valamilyen + forgalom.</para> + </listitem> + + <listitem> + <para>Ahogy sikerült csatlakozunk a + hozzáférési ponthoz, a + biztonsági beállításokat olyan + egyszerû eszközökkel próbáljuk + meg diagnosztizálni, mint például a + &man.ping.8;.</para> + + <para>A <command>wpa_supplicant</command> + segédprogrammal tudunk nyomkövetést + végezni. A <option>-dd</option> opció + megadásával indítsuk el + manuálisan és ellenõrizzük a + rendszernaplókat.</para> + </listitem> + + <listitem> + <para>Vannak alacsonyabb szintû nyomkövetési + lehetõségek is. A 802.11 protokollt + támogató rétegben is tudunk + engedélyezni nyomkövetési üzeneteket + a <filename>/usr/src/tools/tools/net80211</filename> + könyvtárban található + <command>wlandebug</command> program + segítségével. Például + a</para> + + <screen>&prompt.root; <userinput>wlandebug -i <replaceable>ath0</replaceable> +scan+auth+debug+assoc</userinput> + net.wlan.0.debug: 0 => 0xc80000<assoc,auth,scan></screen> + + <para>paranccsal a hozzáférési pontok + kereséséhez és a 802.11 protokollon + belül a kapcsolat megszervezéséhez + szükséges kézfogásokhoz + kapcsolódó konzolüzeneteket tudjuk + engedélyezni.</para> + + <para>A 802.11 rétegben rengeteg hasznos + statisztikát találhatunk. Mindezeket a + <command>wlanstats</command> eszközzel tudjuk + kiíratni. Ezeknek a statisztikáknak a 802.11 + réteg összes hibáját be kell + tudniuk azonosítaniuk. Vigyázzunk azonban, + mert az eszközmeghajtókban a 802.11 réteg + alatt rejlõ bizonyos hibák ilyenkor nem jelennek + meg. Az eszközfüggõ problémák + felderítésével kapcsolatban a + megfelelõ meghajtó + dokumentációját olvassuk + át.</para> + </listitem> + + </itemizedlist> + + <para>Amennyiben a fenti tanácsok mentén sem + sikerül orvosolnunk a hibát okát, + küldjünk egy hibajelentést és + mellékeljük hozzá a fentebb tárgyalt + eszközök által gyártott + kimeneteket.</para> + + </sect2> + </sect1> + + <sect1 id="network-bluetooth"> + <sect1info> + <authorgroup> + <author> + <firstname>Pav</firstname> + <surname>Lucistnik</surname> + <contrib>Írta: </contrib> + <affiliation> + <address><email>pav@FreeBSD.org</email></address> + </affiliation> + </author> + </authorgroup> + </sect1info> + + <title>Bluetooth</title> + + <indexterm><primary>Bluetooth</primary></indexterm> + + <sect2> + <title>Bevezetés</title> + + <para>A Bluetooth egy olyan vezeték nélküli + technológia, amellyel a 2,4 GHz-es + frekvenciatartományban tudunk személyi + hálózatokat létrehozni 10 méteren + belül. Az ilyen típusú + hálózatok általában alkalmi + jelleggel keletkeznek különféle + hordozható eszközök, mint például + mobiltelefonok, kézi + számítógépek és laptopok + között. Eltérõen más + népszerû vezeték nélküli + technológiáktól, például a + wi-fitõl, a Bluetooth magasabb szintû + szolgáltási profilokat is felajánl: + FTP-szerû állományszervereket, az + állományok áttolását, hang + átküldését, soros vonali + emulációt és még sok minden + mást.</para> + + <para>A &os;-ben megvalósított Bluetooth + protokollkészlet a Netgraph rendszerre + építkezik (lásd &man.netgraph.4;). A + Bluetooth alapú USB-s hardverzárak széles + körét támogatja az &man.ng.ubt.4; + meghajtó. A Broadcom BCM2033 chipre + épített Bluetooth eszközöket az + &man.ubtbcmfw.4; és az &man.ng.ubt.4; meghajtók + támogatják. A 3Com Bluetooth PC Card 3CRWB60-A + eszközt az &man.ng.bt3c.4; meghajtó + támogatja. A soros és UART alapú Bluetooth + eszközöket a &man.sio.4;, &man.ng.h4.4; és + &man.hcseriald.8; ismeri. Ebben a szakaszban a Bluetooth + alapú USB-s hardverzárak használatát + mutatjuk be.</para> + + </sect2> + + <sect2> + <title>Az eszköz csatlakoztatása</title> + + <para>Alapértelmezés szerint a Bluetooth + eszközmeghajtók modulként + érhetõek el. Az eszköz csatlakoztatása + elõtt a megfelelõ meghajtót be kell + töltenünk a rendszermagba:</para> + + <screen>&prompt.root; <userinput>kldload ng_ubt</userinput></screen> + + <para>Ha a Bluetooth eszköz már a rendszer + indításakor is jelen van, akkor a modult az + <filename>/boot/loader.conf</filename> állományon + keresztül is betölthetjük:</para> + + <programlisting>ng_ubt_load="YES"</programlisting> + + <para>Dugjuk be az USB-s hardverzárunkat. Az + alábbihoz hasonló kimenet fog keletkezni a + konzolon (vagy a rendszernaplóban):</para> + + <screen>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</screen> + + <note> + <para>A &os; 6.0 valamint a &os; 5.X ágon + belül az 5.5 elõtti változatokban a Bluetooth + protokollkészletet kézzel kell beüzemelni. + A &os; 5.5, illetve 6.1 és attól + újabb változatokban ezt már a + &man.devd.8; magától elvégzi.</para> + + <para>Másoljuk az + <filename>/usr/share/examples/netgraph/bluetooth/rc.bluetooth</filename> + állományt valamilyen alkalmas helyre, + például az <filename>/etc/rc.bluetooth</filename> + könyvtárba. Ez a szkript fogja végezni a + Bluetooth használatához szükséges + protokollkészlet elindítását + és leállítását. Jó + ötlet leállítani az eszköz + eltávolítása elõtt, de ha elhagyjuk, + (általában) nem okoz végzetes hibát. + Az indításkor a következõ kimenetet + kapjuk:</para> + + <screen>&prompt.root; <userinput>/etc/rc.bluetooth start ubt0</userinput> +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</screen> + </note> + + </sect2> + + <indexterm><primary>HCI</primary></indexterm> + + <sect2> + <title>Host Controller Interface (HCI)</title> + + <para>A Host Controller Interface (HCI) egy parancsfelületet + nyújt a mûködési sáv + vezérlõjéhez (baseband controller) és + az összeköttetések kezelõjéhez + (link manager), valamint hozzáférést a + hardverállapot és -vezérlõ + regiszterekhez. Ez a felület egy egységes + módszert szolgáltat a Bluetooth + mûködési sávjához tartozó + tulajdonságok eléréséhez. Az + eszközön üzemelõ HCI réteg a + Bluetooth hardverben található HCI firmware-rel + vált adatokat és parancsokat. A Host Controller + Transport Layer (vagyis a fizikai busz) meghajtója mind a + két HCI réteget és a kettejük + közti információcserét is + elérhetõvé teszi.</para> + + <para>Az egyes Bluetooth eszközökhöz + létrejön egy-egy <emphasis>hci</emphasis> + típusú Netgraph-beli csomópont. Ez a HCI + csomópont általában a Bluetooth + eszközmeghajtó csomópontjához + (lefelé) és az L2CAP csomóponthoz + (felfelé) csatlakozik. Az összes HCI mûveletet + a HCI csomóponton kell elvégezni és nem az + eszközmeghajtóhoz tartozón. A HCI + csomópont alapértelmezett neve a + <quote>devicehci</quote>. Ezekrõl többet az + &man.ng.hci.4; man oldalán tudhatunk meg.</para> + + <para>Az egyik legáltalánosabb feladat a Bluetooth + eszközök esetében a közelben levõ + további eszközök felderítése. + Ezt a mûveletet + <emphasis>tudakozódásnak</emphasis> + (<quote>inquiry</quote>) nevezik. A tudakozódást + és az összes többi HCI-hez + kapcsolódó mûveletet a &man.hccontrol.8; + segédprogrammal tudjuk elvégezni. A lentebb + látható példa azt mutatja meg, hogyan + tudunk Bluetooth eszközöket keresni egy adott + távolságon belül. Az elérhetõ + eszközök listáját néhány + másodpercen alatt megkapjuk. A távoli azonban + eszközök csak akkor fognak válaszolni, ha + <emphasis>felderíthetõ</emphasis> + (<quote>discoverable</quote>) módban vannak.</para> + + <screen>&prompt.user; <userinput>hccontrol -n ubt0hci inquiry</userinput> +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]</screen> + + <para>A <literal>BD_ADDR</literal> a Bluetooth eszköz egyedi + címe, hasonló a hálózati + kártyák MAC-címéhez. Erre a + címre lesz szükség ahhoz, hogy a + továbbiakban kommunikálni tudjunk az + eszközzel. Emberek számára + értelmezhetõ nevet is hozzá tudunk rendelni a + BD_ADDR címhez. Az + <filename>/etc/bluetooth/hosts</filename> állomány + tartalmazza a Bluetooth eszközökre vonatkozó + információkat. A következõ + példában azt láthatjuk, hogyan tudunk + beszédesebb nevet adni egy távoli + eszköznek:</para> + + <screen>&prompt.user; <userinput>hccontrol -n ubt0hci remote_name_request 00:80:37:29:19:a4</userinput> +BD_ADDR: 00:80:37:29:19:a4 +Name: Pav T39-ese</screen> + + <para>Amikor tudakozódni kezdünk a távoli + Bluetooth eszközök jelenléte felõl, a + gépünket <quote>sajat.gep.nev (ubt0)</quote> + néven fogják látni. Ez a helyi + eszközhöz rendelt név bármikor + megváltoztatható.</para> + + <para>A Bluetooth rendszer lehetõség ad pont-pont + (természetesen csak két Bluetooth egység + között) vagy pont-multipont típusú + kapcsolatok kiépítésére. A + pont-multipont kapcsolat esetén a kapcsolaton több + Bluetooth eszköz osztozik. A most következõ + példában megláthatjuk, hogyan kell az + aktív mûködési sávban + lekérdezni a helyi eszköz létrejött + kapcsolatait:</para> + + <screen>&prompt.user; <userinput>hccontrol -n ubt0hci read_connection_list</userinput> +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</screen> + + <para>A <emphasis>kapcsolat azonosítója</emphasis> + (connection handle) akkor hasznos, amikor egy sávbeli + kapcsolatot akarunk lezárni. Ezt általában + nem kell kézzel megcsinálni. A rendszer + magától lezárja az inaktív + sávbeli kapcsolatokat.</para> + + <screen>&prompt.root; <userinput>hccontrol -n ubt0hci disconnect 41</userinput> +Connection handle: 41 +Reason: Connection terminated by local host [0x16]</screen> + + <para>A <command>hccontrol help</command> paranccsal tudjuk + lekérdezni az elérhetõ HCI parancsokat. A + legtöbb HCI parancs végrehajtásához + nem kellenek rendszeradminisztrátori + jogosultságok.</para> + + </sect2> + + <indexterm><primary>L2CAP</primary></indexterm> + + <sect2> + <title>Logical Link Control and Adaptation Protocol + (L2CAP)</title> + + <para>A Logical Link Control and Adaptation Protocol (L2CAP) a + kapcsolat-orientált és a kapcsolat + nélküli adatszolgáltatásokért + felelõs a felsõbb rétegek felé, valamit + támogatja a protokollok + többszörözését, a darabolást + és az összerakást. Az L2CAP a magasabb + szintû protokollok és az alkalmazások + számára egészen 64 kilobyte + méretig lehetõvé teszi az adatcsomagok + küldését és + fogadását.</para> + + <para>A L2CAP a <emphasis>csatorna</emphasis> (channel) + fogalmára építkezik. A csatorna egy + logikai kapcsolatot képvisel a mûködési + sávon belüli kapcsolat felett. Mindegyik + csatornához egyetlen protokoll kötõdik, egy a + többhöz alapon. Több csatorna is tarthozhat + ugyanahhoz a protokollhoz, de egy csatornán nem + használhatunk több protokollt. A csatornákon + keresztül érkezõ L2CAP csomagok ezután a + megfelelõ felsõbb rétegbeli protokollokhoz + kerülnek. Több csatorna osztozhat ugyanazon a + sávbeli kapcsolaton.</para> + + <para>Minden Bluetooth eszközhöz létrejön + egy <emphasis>l2cap</emphasis> típusú + Netgraph-csomópont. Az L2CAP csomópont + általában egy Bluetooth HCI csomóponthoz + (lefelé) és egy Bluetooth sockethez + (felfelé) kapcsolódik. Az L2CAP csomópont + alapértelmezett neve <quote>devicel2cap</quote>. + Errõl részletesebben az &man.ng.l2cap.4; man oldal + világosít fel minket.</para> + + <para>Ezen a szinten hasznos parancsnak bizonyulhat az + &man.l2ping.8;, amivel más eszközöket tudunk + pingelni. Elõfordulhat, hogy egyes Bluetooth + implementációk nem válaszolnak semmilyen + feléjük küldött adatra, így az + alábbi példában is szereplõ <literal>0 + bytes</literal> teljesen normális.</para> + + <screen>&prompt.root; <userinput>l2ping -a 00:80:37:29:19:a4</userinput> +0 bytes from 0:80:37:29:19:a4 seq_no=0 time=48.633 ms result=0 +0 bytes from 0:80:37:29:19:a4 seq_no=1 time=37.551 ms result=0 +0 bytes from 0:80:37:29:19:a4 seq_no=2 time=28.324 ms result=0 +0 bytes from 0:80:37:29:19:a4 seq_no=3 time=46.150 ms result=0</screen> + + <para>Az &man.l2control.8; segédprogram + használható az L2CAP csomópontok + különbözõ mûveleteinek + kivitelezésére. Ebben a példában a + helyi eszközhöz tartozó logikai kapcsolatokat + (csatornák) és sávokat + kérdezzük le:</para> + + <screen>&prompt.user; <userinput>l2control -a 00:02:72:00:d4:1a read_channel_list</userinput> +L2CAP channels: +Remote BD_ADDR SCID/ DCID PSM IMTU/ OMTU State +00:07:e0:00:0b:ca 66/ 64 3 132/ 672 OPEN +&prompt.user; <userinput>l2control -a 00:02:72:00:d4:1a read_connection_list</userinput> +L2CAP connections: +Remote BD_ADDR Handle Flags Pending State +00:07:e0:00:0b:ca 41 O 0 OPEN</screen> + + <para>Másik ugyanilyen diagnosztikai eszköz a + &man.btsockstat.1;. Ha a viselkedését + tekintjük, akkor leginkább a &man.netstat.1; + programra hasonlít, de a Bluetooth + hálózatban megjelenõ adatszerkezetekkel + dolgozik. Az alábbi példa az iménti + &man.l2control.8; parancs kimenetében szereplõ + logikai kapcsolatokat mutatja:</para> + + <screen>&prompt.user; <userinput>btsockstat</userinput> +Active L2CAP sockets +PCB Recv-Q Send-Q Local address/PSM Foreign address CID State +c2afe900 0 0 00:02:72:00:d4:1a/3 00:07:e0:00:0b:ca 66 OPEN +Active RFCOMM sessions +L2PCB PCB Flag MTU Out-Q DLCs State +c2afe900 c2b53380 1 127 0 Yes OPEN +Active RFCOMM sockets +PCB Recv-Q Send-Q Local address Foreign address Chan DLCI State +c2e8bc80 0 250 00:02:72:00:d4:1a 00:07:e0:00:0b:ca 3 6 OPEN</screen> + + </sect2> + + <indexterm><primary>RFCOMM</primary></indexterm> + + <sect2> + <title>Az RFCOMM protokoll</title> + + <para>Az RFCOMM protokoll a soros portok + emulációját valósítja meg az + L2CAP protokollon keresztül. A protokoll az ETSI TS 07.10. + RFCOMM szabványán alapszik, és egy + egyszerû átviteli protokoll, amelyet a 9 tûs + RS-232 (EIATIA-232-E) soros portok + emulációjára készítettek fel. + Az RFCOMM protokoll legfeljebb 60 kapcsolat (RFCOMM csatorna) + párhuzamos használatát támogatja + két Bluetooth eszköz között.</para> + + <para>Az RFCOMM számára a teljes + kommunikációs útvonal két + különbözõ eszközön futó + alkalmazást (kommunikációs + végpontot) és köztük levõ + kommunikációs szegments foglalja magában. + Az RFCOMM az adott eszközön a soros portot + használó alkalmazások részére + készült. A kommunikációs szegmens az + egyik eszköztõl a másikig vezetõ Bluetooth + alapú összeköttetés (közvetlen + kapcsolat).</para> + + <para>Közvetlen kapcsolat esetén az RFCOMM csak az + eszközök közti kapcsolattal foglalkozik, valamint + hálózati kapcsolat esetén az eszköz + és a modem közti kapcsolattal. Az RFCOMM más + konfigurációkat is támogat, + például olyan modulokat, amelyek az egyik oldalon + a Bluetooth vezeték nélküli + technológián keresztül kommunikálnak, + míg a másik oldalon egy vonalas felületet + nyújtanak.</para> + + <para>A &os;-ben az RFCOMM protokollt Bluetooth foglalatok + rétegében valósították + meg.</para> + + </sect2> + + <indexterm><primary>párosítás</primary></indexterm> + + <sect2> + <title>Az eszközök + párosítása</title> + + <para>Alapértelmezés szerint a Bluetooth + kommunikáció nem hitelesítõdik + és bármelyik eszköz képes + bármelyik másikkal felvenni a kapcsolatot. Egy + Bluetooth eszköz (például egy mobiltelefon) + egy adott szolgáltatáshoz igényelhet + hitelesítést (például + betárcsázáshoz). A Bluetooth alapú + hitelesítés többnyire <emphasis>PIN + kódokkal</emphasis> történik. A PIN + kód egy legfeljebb 16 karakterbõl álló + ASCII karakterlánc. A felhasználóknak mind + a két eszközön ugyanazt a PIN kódot kell + megadniuk. Miután megadtuk a PIN kódot, az + eszközök létrehoznak hozzájuk egy + <emphasis>összekötettésbeli kulcsot</emphasis> + (link key). Ezután ezt a kulcsot vagy az + eszközökön tároljuk vagy pedig valamilyen + tartós tárolón. A következõ + alkalommal mind a két eszközt ezt a korábban + elkészített kulcsot fogja használni. Ezt + az eljárást nevezik + <emphasis>párosításnak</emphasis> + (pairing). Ha valamelyik eszköz elveszti az + össszeköttetés kulcsát, akkor a + párosítást meg kell + ismételni.</para> + + <para>A &man.hcsecd.8; démon felelõs az összes + Bluetooth alapú hitelesítési + kérés lekezeléséért. Az + alapértelmezett konfigurációs + állománya az + <filename>/etc/bluetooth/hcsecd.conf</filename>. + Például így tudjuk benne egy + mobiltelefonhoz megadni az <quote>1234</quote> PIN + kódot:</para> + + <programlisting>device { + bdaddr 00:80:37:29:19:a4; + name "Pav T39-ese"; + key nokey; + pin "1234"; + }</programlisting> + + <para>Semmilyen korlátozás nincs a PIN + kódokra (a méretüktõl eltekintve). + Egyes eszközökbe (például a Bluetooth + fejhallgatók) elõre rögzített PIN + kódot építettek bele. A + <option>-d</option> kapcsoló hatására a + &man.hcsecd.8; démont az elõtérben lehet + futtatni, így könnyebben láthatjuk mi + történik. A távoli eszközt + állítsuk be a párosítás + elfogadására és kezdeményezzünk + felé egy Bluetooth kapcsolatot. A távoli + eszköznek erre azt kell válaszolnia, hogy elfogadta + a párosítást, majd kérni fogja a PIN + kódot. Adjuk meg ugyanazt a PIN kódot, mint amit + a <filename>hcsecd.conf</filename> állományba is + beírtunk. Most már a gépünk és + a távoli eszköz párban vannak. A + párosítást a távoli + eszközrõl is kezdeményezhetjük.</para> + + <para>A &os; 5.5, 6.1 és újabb + változataiban az <filename>/etc/rc.conf</filename> + állományba a következõ sort kell + felvenni a <application>hcsecd</application> automatikus + indításához:</para> + + <programlisting>hcsecd_enable="YES"</programlisting> + + <para>Ez pedig a <application>hcsecd</application> démon + által generált kimenetre példa:</para> + +<programlisting>hcsecd[16484]: Got Link_Key_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4 +hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', link key doesn't exist +hcsecd[16484]: Sending Link_Key_Negative_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4 +hcsecd[16484]: Got PIN_Code_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4 +hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', PIN code exists +hcsecd[16484]: Sending PIN_Code_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4</programlisting> + + </sect2> + + <indexterm><primary>SDP</primary></indexterm> + + <sect2> + <title>Service Discovery Protocol (SDP)</title> + + <para>A Service Discovery Protocol (SDP) + segítségével a kliens alkalmazások + képes felderíteni, hogy a szerver + alkalmazások részérõl milyen + szolgáltatások érhetõek el, valamint + ezek a szolgáltatások milyen + tulajdonságokkal rendelkeznek. A + szolgáltatások tulajdonsági + közé soroljuk többek között a + felajánlott szolgáltatás + típusát vagy osztályát, illetve a + szolgáltatás kihasználásához + szükséges mechanizmusra vagy protokollra + vonatkozó információkat.</para> + + <para>Az SDP az SDP szerver és az SDP kliens közti + kommunikációt foglalja magában. A szerver + karbantart egy listát azokról a + szolgáltatási rekordokról, amelyek a + szerverhez tartozó szolgáltatások + jellemzõit írják le. Mindegyik ilyen + szolgáltatási rekord egyetlen + szolgáltatás adatait tartalmazza. A kliensek egy + SDP kéréssel ezeket a szolgáltatási + rekordokat kérhetik el az SDP szervertõl. + Amennyiben a kliens, vagy a hozzátartozó + alkalmazás a szolgáltatás használata + mellett dönt, akkor a szolgáltatás + használatához a megfelelõ + szolgáltató felé nyitnia kell egy + külön kapcsolatot. Az SDP csak a + szolgáltatások és azok + tulajdonságainak felderítéséhez ad + segítséget, de semmilyen eszközt nem + tartalmaz a felhasználásukra.</para> + + <para>Általában az SDP kliensek + általában valamilyen számunkra kellõ + tulajdonság alapján keresnek + szolgáltatásokat. Ráadásul + adódhatnak olyan alkalmak is, amikor a + szolgáltatások elõzetes ismerete + nélkül szeretnénk felderíteni a + rendelkezésre álló + szolgáltatások típusait. A + felajánlott szolgáltatások ilyen + típusú feldolgozását nevezzük + <emphasis>böngészésnek</emphasis> + (browsing).</para> + + <para>Az &man.sdpd.8; Bluetooth SDP szerver és a + parancssoros &man.sdpcontrol.8; kliens az alap &os; + telepítés része. Az alábbi + példában egy SDP böngészési + kérést adunk ki:</para> + + <screen>&prompt.user; <userinput>sdpcontrol -a 00:01:03:fc:6e:ec browse</userinput> +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 + +Record Handle: 0x00000001 +Service Class ID List: + Browse Group Descriptor (0x1001) + +Record Handle: 0x00000002 +Service Class ID List: + LAN Access Using PPP (0x1102) +Protocol Descriptor List: + L2CAP (0x0100) + RFCOMM (0x0003) + Protocol specific parameter #1: u/int8/bool 1 +Bluetooth Profile Descriptor List: + LAN Access Using PPP (0x1102) ver. 1.0 +</screen> + + <para>és így tovább. Mindegyik + szolgáltatáshoz hozzátartozik a + tulajdonságok egy listája (például + RFCOMM csatorna). Lehetséges, hogy + szolgáltatástól függõen bizonyos + tulajdonságokat kell figyelnünk. Egyes Bluetooth + implementációk nem támogatják a + szolgáltatások + böngészését és ezért egy + üres listát adnak vissza. Ebben az esetben egy + konkrét szolgáltatásra tudunk + rákeresni. A következõ példában + az OBEX Object Push (OPUSH) szolgáltatást + keressük:</para> + + <screen>&prompt.user; <userinput>sdpcontrol -a 00:01:03:fc:6e:ec search OPUSH</userinput></screen> + + <para>&os; alatt az &man.sdpd.8; szerverrel tudunk + szolgáltatásokat felajánlani a Bluetooth + klienseknek. A &os; 5.5, 6.1 vagy késõbbi + változataiban ehhez a következõ sort kell + megadnunk az <filename>/etc/rc.conf</filename> + állományban:</para> + + <programlisting>sdpd_enable="YES"</programlisting> + + <para>Ezután az <application>sdpd</application> + démon így indítható el:</para> + + <screen>&prompt.root; <userinput>/etc/rc.d/sdpd start</userinput></screen> + + <para>A &os; 6.0, és a &os; 5.X + ágában az 5.5 elõtti verzióiban az + <application>sdpd</application> nem szerepel még a + rendszer indítószkriptjei között. + Ezért így kell manuálisan + beindítanunk:</para> + + <screen>&prompt.root; <userinput>sdpd</userinput></screen> + + <para>A távoli kliensek részére Bluetooth + szolgáltatásokat felajánlani + kívánó helyi szerver alkalmazásoknak + regisztrálniuk kell magukat a helyi SDP + démonnál. Például az egyik ilyen + alkalmazás az &man.rfcomm.pppd.8;, és + elindítása után regisztrálni fogja a + Bluetooth LAN szolgáltatást a helyi SDP + démonnál.</para> + + <para>A helyi SDP szerveren regisztrált + szolgáltatásokat a helyi vezérlési + csatornán keresztül egy <literal>browse</literal> + kéréssel tudjuk lekérdezni:</para> + + <screen>&prompt.root; <userinput>sdpcontrol -l browse</userinput></screen> + + </sect2> + + <sect2> + <title>A betárcsázós hálózati + és a PPP hálózati + hozzáférési (LAN) profilok</title> + + <para>A betárcsázós hálózati + (Dial-Up Networking, DUN) profil leggyakrabban a modemek + és mobiltelefonok között tûnik fel. Ez a + profil a következõ forgatókönyveket + dolgozza fel:</para> + + <itemizedlist> + <listitem> + <para>A számítógépünkkel egy + mobiltelefont vagy modemet vezeték + nélküli modemként használunk, + amivel az internethez vagy más + hálózatokhoz csatlakozunk + betárcsázással.</para> + </listitem> + + <listitem> + <para>A számítógépünkkel egy + mobiltelefonon vagy modemen keresztül fogadunk + adathívásokat.</para> + </listitem> + </itemizedlist> + + <para>A PPP hálózati + hozzáférési (LAN) profil a + következõ helyezetekben alkalmazható:</para> + + <itemizedlist> + <listitem> + <para>LAN hozzáférés egyetlen Bluetooth + eszközhöz</para> + </listitem> + + <listitem> + <para>LAN hozzáférés több Bluetooth + eszközhöz</para> + </listitem> + + <listitem> + <para>Két gép összekötése (a + soros vonali kapcsolat emulációval PPP-n + keresztül)</para> + </listitem> + </itemizedlist> + + <para>&os; alatt mind a két profilt a &man.ppp.8; és + az &man.rfcomm.pppd.8; valósítja meg — egy + olyan wrapper eszköz, amely az RFCOMM Bluetooth + kapcsolatokat a PPP számára is + értelmessé alakítja át. + Mielõtt még bármelyik profilt + elkezdenénk használni, egy új PPP + címkét kell létrehozni az + <filename>/etc/ppp/ppp.conf</filename> + állományban. Erre példát az + &man.rfcomm.pppd.8; man oldalon találhatunk.</para> + + <para>A következõ példában az + &man.rfcomm.pppd.8; programot fogjuk használni arra, hogy + egy RFCOMM típusú kapcsolatot nyissunk a + 00:80:37:29:19:a4 címmel rendelkezõ távoli + Bluetooth eszköz felé. A tényleges RFCOMM + csatorna számát SDP-n keresztül a + távoli eszköztõl kapjuk. Az RFCOMM csatorna + kézzel is megadható, és ilyen esetekben az + &man.rfcomm.pppd.8; nem fog SDP kérést + küldeni. A &man.sdpcontrol.8; használatával + tudjuk lekérdezni a távoli eszközön + létrejött RFCOMM csatornát.</para> + + <screen>&prompt.root; <userinput>rfcomm_pppd -a 00:80:37:29:19:a4 -c -C dun -l rfcomm-dialup</userinput></screen> + + <para>A PPP hálózati elérés (LAN) + szolgáltatás beindításához + futni kell a &man.sdpd.8; szervernek. A helyi + hálózaton keresztül csatlakozó + kliensekhez létre kell hozni egy új + bejegyzést az <filename>/etc/ppp/ppp.conf</filename> + állományban. Az &man.rfcomm.pppd.8; man oldalon + találhatunk erre példákat. + Végezetül indítsuk el az RFCOMM PPP szervert + egy érvényes RFCOMM csatornaszámmal. Az + RFCOMM PPP szerver ekkor automatikusan regisztrálja a + Bluetooth LAN szolgáltatást a helyi SDP + démonnál. A következõ + példában megmutatjuk, hogyan lehet + elindítani egy RFCOMM PPP szervert:</para> + + <screen>&prompt.root; <userinput>rfcomm_pppd -s -C 7 -l rfcomm-server</userinput></screen> + + </sect2> + + <indexterm><primary>OBEX</primary></indexterm> + + <sect2> + <title>Az OBEX Object Push (OPUSH) profil</title> + + <para>Az OBEX egy széles körben alkalmazott protokoll + a mobileszközök közti egyszerû + állományvitelre. Legfõképpen az + infravörös kommunikációban + alkalmazzák, ahol a laptopok vagy PDA-k közti + általános állományátvitelre + használják, illetve + névjegykártyák vagy + naptárbejegyzések + átküldésére mobiltelefonok + között és egyéb PIM alkalmazást + futtató eszközök esetében.</para> + + <para>Az OBEX szervert és klienst egy külsõ + csomag, az <application>obexapp</application> + valósítja meg, amelyet az <filename + role="package">comms/obexapp</filename> portból + érhetünk el.</para> + + <para>Az OBEX kliens használható objektumok + áttolására vagy + lehúzására az OBEX szerverhez. Ez az + objektum lehet például egy + névjegykártya vagy egy megbeszélt + találkozó. Az OBEX kliens SDP-n keresztül + tud magának RFCOMM csatornaszámot szerezni. Ezt + úgy tehetjük meg, ha a szolgáltatás + neve helyett egy RFCOMM csatorna számát adjuk meg. + A támogatott szolgáltatások: IrMC, FTRN + és OPUSH. Számként RFCOMM csatorna is + megadható. Az alábbi példában egy + OBEX munkamenetet láthatunk, ahol az eszköz + információs objektumát húzzuk le a + mobiltelefonról és egy új objektumot (egy + névjegykártyát) tolunk fel a telefon + könyvtárába.</para> + + <screen>&prompt.user; <userinput>obexapp -a 00:80:37:29:19:a4 -C IrMC</userinput> +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)</screen> + + <para>Az OBEX objektumok tologatásának + támogatásához az &man.sdpd.8; szervernek + kell futnia. Továbbá a beérkezõ + objektumok tárolásához létre kell + hoznunk még egy könyvtárat is. Ez az + könyvtár alapértelmezés szerint a + <filename>/var/spool/obex</filename>. Végül + indítsuk el az OBEX szervert egy érvényes + RFCOMM csatorna számának + megadásával. Az OBEX szerver ezután + automatikusan regisztrálja az <quote>OBEX Object + Push</quote> nevû szolgáltatást a helyi SDP + démonnál. Ebben a példában + láthatjuk az OBEX szerver + indítását:</para> + + <screen>&prompt.root; <userinput>obexapp -s -C 10</userinput></screen> + + </sect2> + + <sect2> + <title>Soros vonali profil (SPP)</title> + + <para>A soros vonali profil (Serial Port Profile, SPP) + használatával RS232 (vagy ahhoz hasonló) + vonali adatátvitelt tudunk emulálni. Ez a profil + a régebben fejlesztett alkalmazásokkal + birkózik meg, és a Bluetooth + technológiával valódi kábel helyett + egy virtuális soros portot képez le.</para> + + <para>Az &man.rfcomm.sppd.1; segédprogram ezt a soros + vonali profilt valósítja meg. Így egy + pszeudo terminált tudunk virtuális soros + portként használni. Ha nem adunk meg RFCOMM + csatornát, akkor az &man.rfcomm.sppd.1; képes + SDP-n keresztül kérni egyet magának a + távoli eszköztõl. Ha ezt felül + kívánjuk bírálni, akkor a + parancssorban megadhatunk akár egy konkrét RFCOMM + csatornát is.</para> + + <screen>&prompt.root; <userinput>rfcomm_sppd -a 00:07:E0:00:0B:CA -t /dev/ttyp6</userinput> +rfcomm_sppd[94692]: Starting on /dev/ttyp6...</screen> + + <para>Miután csatlakoztunk, a pszeudo terminált + tudjuk soros portként használni:</para> + + <screen>&prompt.root; <userinput>cu -l ttyp6</userinput></screen> + + </sect2> + + <sect2> + <title>Hibaelhárítás</title> + + <sect3> + <title>Nem tudunk csatlakozni a távoli + eszközzel</title> + + <para>Egyes Bluetooth eszközök nem + támogatják a szerepek cseréjét + (role switch). Alapértelmezés szerint amikor a + &os; elfogad egy új kapcsolatot, + megpróbál rajta szerepet cserélni + és mesterré válni. Azok az + eszközök, amelyek ezt nem támogatják, + nem lesznek képesek emiatt csatlakozni. Ez a + szerepváltás az új kapcsolatok + felépítése során zajlik le, + ezért egy távoli eszköztõl nem lehet + megtudni, hogy ismeri-e ezt a lehetõséget. A + helyi oldalon a következõ HCI opcióval lehet + kikapcsolni a szerepcserét:</para> + + <screen>&prompt.root; <userinput>hccontrol -n ubt0hci write_node_role_switch 0</userinput></screen> + + </sect3> + + <sect3> + <title>Valami nem megy. Lehet látni valahogy, pontosan + mi is történik?</title> + + <para>Persze, igen. Egy külsõ csomag, a + <application>hcidump</application> + segítségével, amely a <filename + role="package">comms/hcidump</filename> portból + érhetõ el. A <application>hcidump</application> + segédprogram a &man.tcpdump.1; programhoz + hasonlítható. Ezzel lehet a Bluetooth csomagok + tartalmát megnézni a terminálon vagy + elmenteni ezeket egy állományba.</para> + + </sect3> + </sect2> + </sect1> + + <sect1 id="network-bridging"> + <sect1info> + <authorgroup> + <author> + <firstname>Andrew</firstname> + <surname>Thompson</surname> + <contrib>Írta: </contrib> + </author> + </authorgroup> + </sect1info> + + <title>Hálózati hidak</title> + + <sect2> + <title>Bevezetés</title> + + <indexterm><primary>IP-alhálózat</primary></indexterm> + <indexterm><primary>hálózati + híd</primary></indexterm> + + <para>Gyakran hasznos lehet anélkül felosztani egy + fizikai hálózatot (például egy + Ethernet szegmenst) két külön + hálózati szegmensre, hogy külön + IP-alhálózatot kellene létrehozunk + és összekötnünk ezeket egy + útválasztóval. A két ilyen + módon kialakított hálózatot + összekötõ eszközt nevezzük + <quote>hálózati hídnak</quote> (bridge). A + legalább két hálózati + felülettel rendelkezõ &os; rendszerek képesek + hálózati híd szerepét + betölteni.</para> + + <para>A hálózati híd az eszközök + adatkapcsolati rétegben a hozzátartozó + felületein megjelenõ (vagyis Ethernet) + címének megtanulásával + mûködik. A két hálózat + között csak akkor közvetít forgalmat, + amikor a forrás és cél nem ugyanabban a + hálózatban található.</para> + + <para>A hálózati hidak bizonyos szempontból + lényegében nagyon kevés porttal + rendelkezõ Ethernet switch-ek.</para> + + </sect2> + + <sect2> + <title>A hálózati hidak tipikus + alkalmazásai</title> + + <para>Napjainkban akad néhány igen jellemzõ + szituáció, ahol szükség van a + hálózati hidak alkalmazására.</para> + + <sect3> + <title>Hálózatok + összekötése</title> + + <para>A hálózati hidak alapvetõ feladata + két vagy több hálózati szegmens + összekötése. Az egyszerû + hálózati környezet + felállítása helyett több + okból is felmerülhet a hidak + létrehozása: kábelezési + megszorítások, tûzfalazás vagy + pszeudo hálózatok, például + virtuális gépek felületének + csatlakoztatása miatt. Egy híd + használatával ráadásul össze + tudunk kötni egy vezeték nélküli + hozzáférési pontként + üzemelõ felületet egy vezetékes + hálózattal.</para> + + </sect3> + + <sect3> + <title>Szûrés vagy forgalomkorlátozás + tûzfallal</title> + + <indexterm><primary>tûzfal</primary></indexterm> + <indexterm><primary>NAT</primary></indexterm> + + <para>Sokszor elõfordulhat, hogy + útválasztás vagy hálózati + címfordítás (NAT) nélkül + szeretnénk tûzfalat használni.</para> + + <para>Példaként képzeljünk el egy + olyan kis méretû céget, amely egy DSL vagy + ISDN vonalon kapcsolódik az + internet-szolgáltatójához. A + szolgáltatótól 13, mindenki által + használható IP-címet kaptak és a + hálózatukban 10 gép van. Ebben a + helyzetben egy útválasztást + végzõ tûzfal mûködtetése + nehézkessé válna az + alhálózatok problémái + miatt.</para> + + <indexterm><primary>útválasztó</primary></indexterm> + <indexterm><primary>DSL</primary></indexterm> + <indexterm><primary>ISDN</primary></indexterm> + + <para>Egy hídként viselkedõ tûzfallal + azonban minden IP számozási probléma + nélkül egyszerûen be tudjuk dobni a + gépeket a DSL/ISDN útválasztó + mögé.</para> + + </sect3> + + <sect3> + <title>A hálózat megcsapolása</title> + + <para>Egy hálózati híddal úgy + kapcsolunk össze két hálózati + szegmenst, hogy közben meg tudjuk vizsgálni a + kettejük között mozgó Ethernet + kereteket. Ezt a híd felületen a &man.bpf.4; + valamint a &man.tcpdump.1; segítségével + tudjuk megoldani, vagy úgy, ha egy másik + felületen elküldjük az összes keret + másolatát (span, vagyis feszítõ + port).</para> + + </sect3> + + <sect3> + <title>VPN az adatkapcsolati rétegben</title> + + <para>A két Ethernet hálózatot egy IP + alapú összeköttetésen keresztül + is össze tudunk kötni, ha a + hálózatokat egy EtherIP járaton + keresztül kötjük össze híddal, vagy + egy OpenVPN-hez hasonló &man.tap.4; alapú + megoldással.</para> + + </sect3> + + <sect3> + <title>Redundancia az adatkapcsolati rétegben</title> + + <para>A hálózatokat több linken + keresztül kötjük össze és a + redundáns útvonalakat a feszítõfa + protokollal (Spanning Tree Protocol, STP). Az Ethernetes + hálózatok esetében a megfelelõ + mûködéshez a két eszköz + között csak egyetlen aktív útvonal + létezhet, így a feszítõfa protokoll + észleli a hurkokat és a redundáns + összeköttetéseket blokkolt állapotba + teszi. Amikor azonban az aktív linkek egyike + meghibásodik, akkor a protokoll + újraszámolja a fát és a + hálózati pontjai közti + konnektivitást megpróbálja + helyreállítani az addig blokkolt linkek + ismételt engedélyezésével.</para> + + </sect3> + </sect2> + + <sect2> + <title>A rendszermag beállításai</title> + + <para>Ebben a szakaszban az &man.if.bridge.4; + hálózati híd implementációval + foglalkozunk, de a Netgraph segítségével is + tudunk hidakat építeni. Ez + utóbbiról az &man.ng.bridge.4; man oldalon + olvashatunk.</para> + + <para>Amikor létrehozunk egy hálózati hidat, + az &man.ifconfig.8; automatikusan betölti a + hozzátartozó meghajtót. Ha viszont a + rendszermag beállításait tartalmazó + állományba felvesszük a <literal>device + if_bridge</literal> sort, akkor akár be is + építhetjük a rendszermagba.</para> + + <para>A csomagszûrés minden olyan tûzfallal + használható, amely a &man.pfil.9; rendszerre + kapcsolódik. Maga a tûzfal is betölthetõ + modulként, vagy belefordítható a + rendszermagba.</para> + + <para>A hálózati híddal forgalmat is tudunk + szabályozni az &man.altq.4; vagy a &man.dummynet.4; + segítségével.</para> + + </sect2> + + <sect2> + <title>A hálózati híd + engedélyezése</title> + + <para>Hálózati hidak felületek + klónozásával hozhatóak létre. + A híd létrehozásához + használjuk az &man.ifconfig.8; programot, és a + megfelelõ meghajtó automatikusan + betöltõdik, ha nem lenne még + elérhetõ a rendszermagban.</para> + + <screen>&prompt.root; <userinput>ifconfig bridge create</userinput> +bridge0 +&prompt.root; <userinput>ifconfig bridge0</userinput> +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</screen> + + <para>Ekkor létrejön a hálózati + hídhoz tartozó felület és + véletlenszerûen generálódik + hozzá egy Ethernetes cím. A + <literal>maxaddr</literal> és a + <literal>timeout</literal> paraméterek vezérlik, + hogy a híd mennyi MAC-címet tartson meg a keretek + továbbításáért felelõs + táblázatban és mennyi másodperc + után töröljön automatikusan egy + bejegyzést a legutolsó használat + után. A többi paraméter a + feszítõfa mûködését + irányítja.</para> + + <para>Vegyük fel a hídhoz tartozó + hálózati tagfelületeket. A híd csak + akkor fog a tagfelületek között csomagokat + továbbküldeni, amikor a híd és a tagok + is <literal>up</literal> állapotban vannak:</para> + + <screen>&prompt.root; <userinput>ifconfig bridge0 addm fxp0 addm fxp1 up</userinput> +&prompt.root; <userinput>ifconfig fxp0 up</userinput> +&prompt.root; <userinput>ifconfig fxp1 up</userinput></screen> + + <para>A híd most már átküldi az Ethernet + kereteket a <devicename>fxp0</devicename> és + <devicename>fxp1</devicename> felületek között. + Az iméntiekkel megegyezõ konfigurációt + az <filename>/etc/rc.conf</filename> állományban + így alakíthatjuk ki:</para> + + <programlisting>cloned_interfaces="bridge0" +ifconfig_bridge0="addm fxp0 addm fxp1 up" +ifconfig_fxp0="up" +ifconfig_fxp1="up"</programlisting> + + <para>Ha a hídhoz IP-címet is rendelni akarunk, + akkor inkább magánál a hídnál + adjuk meg, ne a tagoknál. Ezt statikusan vagy DHCP + használatával is megtehetjük:</para> + + <screen>&prompt.root; <userinput>ifconfig bridge0 inet 192.168.0.1/24</userinput></screen> + + <para>A hídhoz IPv6 címet is hozzá tudunk + rendelni.</para> + + </sect2> + + <sect2> + <title>Tûzfalazás</title> + + <indexterm><primary>tûzfalak</primary></indexterm> + + <para>Ha engedélyezzük a csomagszûrést, a + hídon áthaladó csomagok elõször a + küldõ felület érkezési + oldalára kerülnek, majd a hídra, + végül a megfelelõ irányban levõ + felület küldési oldalára. + Bármelyik fázis letiltható. Amikor a + csomagok áramlásának iránya fontos + számunkra, akkor jobban járunk, ha nem + magára a hídra, hanem csak a tagfelületekre + állítjuk be a tûzfalat.</para> + + <para>A híd számos módosítható + beállítással rendelkezik a nem-IP és + ARP csomagok átküldésére, valamint + arra, hogy az IPFW tûzfal adatkapcsolati réteg + szintjén mûködhessen. Az &man.if.bridge.4; man + oldal ennek részleteit tárja fel.</para> + + </sect2> + + <sect2> + <title>Feszítõfák</title> + + <para>A híd meghajtója a gyors feszítõfa + protokollt (Rapid Spanning Tree Protocol, RSTP avagy 802.1w) + valósítja meg, ami visszafelé kompatibilis + a korábban említett feszítõfa + protokollal. A feszítõfákat a + hálózati topológiában + felbukkanó hurkok észlelésére + és eltávolítására + alkalmazzák. Az RSTP azonban a hagyományos + STP-nél valamivel gyorsabb konvergenciát + ígér, mivel itt a szomszédos switch-ek + kicserélik egymás között az adataikat, + és így újabb hurkok + létrehozása nélkül képesek + viszonylag gyorsan egyik állapotból + átváltani a másikba.</para> + + <para>Az alábbi táblázat a támogatott + mûködési módokat + láthatjuk:</para> + + <informaltable frame="none" pgwide="1"> + <tgroup cols="3"> + <thead> + <row> + <entry>Operációs rendszer</entry> + <entry>STP módok</entry> + <entry>Alapértelmezés</entry> + </row> + </thead> + + <tbody> + <row> + <entry>&os; 5.4—&os; 6.2</entry> + <entry>STP</entry> + <entry>STP</entry> + </row> + + <row> + <entry>&os; 6.3+</entry> + <entry>RSTP vagy STP</entry> + <entry>STP</entry> + </row> + + <row> + <entry>&os; 7.0+</entry> + <entry>RSTP vagy STP</entry> + <entry>RSTP</entry> + </row> + </tbody> + </tgroup> + </informaltable> + + <para>A tagfelületeken az <literal>stp</literal> paranccsal + tudjuk engedélyezni a feszítõfák + használatát. Az <devicename>fxp0</devicename> + és <devicename>fxp1</devicename> felületeket + összekötõ hídfelület esetében + tehát így:</para> + + <screen>&prompt.root; <userinput>ifconfig bridge0 stp fxp0 stp fxp1</userinput> +bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 + ether d6:cf:d5:a0:94:6d + id 00:01:02:4b:d4:50 priority 32768 hellotime 2 fwddelay 15 + maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200 + root id 00:01:02:4b:d4:50 priority 32768 ifcost 0 port 0 + member: fxp0 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP> + port 3 priority 128 path cost 200000 proto rstp + role designated state forwarding + member: fxp1 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP> + port 4 priority 128 path cost 200000 proto rstp + role designated state forwarding</screen> + + <para>Láthatjuk, hogy a híd a + feszítõfában megkapta a + <literal>00:01:02:4b:d4:50</literal>-es azonosítót + és a <literal>32768</literal>-as prioritást. + Mivel <literal>root id</literal> értéke is + ugyanez, elmondhatjuk, hogy ez a fa gyökereként + funkcionáló híd.</para> + + <para>Ha a hálózaton már valahol + létezik egy másik híd:</para> + + <screen>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</screen> + + <para>A <literal>root id 00:01:02:4b:d4:50 priority 32768 ifcost + 400000 port 4</literal> sor mutatja, hogy a fa + gyökerét képezõ híd most a + <literal>00:01:02:4b:d4:50</literal> azonosítóval + rendelkezik, és ezt a hidat <literal>400000</literal>-res + költséggel éri el a <literal>port 4</literal> + (a 4. porton) keresztül, amely jelen esetben az + <devicename>fxp0</devicename> felület.</para> + + </sect2> + + <sect2> + <title>Komolyabb hidak építése</title> + + <sect3> + <title>A forgalom áramlásának + átszerkesztése</title> + + <para>A hidak támogatják az ún. + megfigyelési módot, ahol a csomagokat a + &man.bpf.4; feldolgozásuk után eldobja, + így nem folytatódik a feldolgozásuk vagy + nem haladnak tovább. Ennek + kihasználásával a két vagy + több felületen érkezõ adatokat egyetlen + &man.bpf.4; folyammá tudjuk alakítani. Ez olyan + hálózati csapok forgalmának + átszerkesztésében hasznos, ahol a + két különbözõ felületen + keresztül küldjük ki az RX/TX + (fogadás/küldés) jeleket.</para> + + <para>Az alábbi paranccsal tudjuk megoldani, hogy + négy felületrõl érkezõ adatot + legyünk képesek egyetlen folyamként + olvasni:</para> + + <screen>&prompt.root; <userinput>ifconfig bridge0 addm fxp0 addm fxp1 addm fxp2 addm fxp3 monitor up</userinput> +&prompt.root; <userinput>tcpdump -i bridge0</userinput></screen> + + </sect3> + + <sect3> + <title>Feszítõ portok</title> + + <para>A hídhoz befutó Ethernet keretek + mindegyikérõl készül egy + másolat, ami egy megadott feszítõ porton + keresztül megy tovább. Hidanként + végtelen számú ilyen feszítõ + port létezhet, és ha egy felületet + feszítõ portnak adtunk meg, akkor + hagyományos portként már nem + használhatjuk. Ez leginkább akkor hasznos, + amikor passzívan akarjuk megfigyelni a híddal + rendelkezõ hálózatot a híd + valamelyik feszítõ portjára + csatlakozó géprõl.</para> + + <para>Küldessük az összes keretrõl egy + másolatot az <devicename>fxp4</devicename> + felületre:</para> + + <screen>&prompt.root; <userinput>ifconfig bridge0 span fxp4</userinput></screen> + + </sect3> + + <sect3> + <title>Privát felületek</title> + + <para>A privát felületek (private interface) csak + más privát felületek felé + küldenek tovább adatot. Így + feltétel nélkül tudjuk korlátozni a + forgalmat, és sem Ethernet keretek, sem pedig ARP nem + megy keresztül rajtuk. Ha viszont szelektíven + akarjuk korlátozni a forgalmat, akkor helyette + használjunk tûzfalat.</para> + + </sect3> + + <sect3> + <title>Tapadós felületek</title> + + <para>Ha a híd egyik tagfelületét + tapadósnak (sticky) adjuk meg, akkor a dinamikusan + megtanult címek bejegyzései a + gyorsítótárba kerülésük + után állandósulnak. A tapadós + bejegyzések soha nem évülnek el vagy + cserélõdnek le, még abban az esetben sem, + ha utána az adott címet egy másik + felületrõl látjuk. Így a + továbbításra vonatkozó + táblázatot nem kell elõre + feltöltenünk, és a híd egyik + oldalán meglátott kliensek nem képesek + átvándorolni egy másik + hálózati szegmensbe.</para> + + <para>Másik ilyen példa a tapadós + címek használatára az lehetne, amikor a + hidat VLAN-nal kombináljuk, és így egy + olyan útválasztót hozunk létre, + ahol az ügyfeleink az IP-címtartomány + pocséklása nélkül + zárhatóak el egymástól. + Tegyük fel, hogy az <hostid + role="hostname">A-ugyfel</hostid> a + <literal>vlan100</literal>, és a <hostid + role="hostname">B-ugyfel</hostid> a <literal>vlan101</literal> + felületen csatlakozik. A híd IP-címe + <hostid role="ipaddr">192.168.0.1</hostid>, amely maga is egy + internet felé mutató + útválasztó.</para> + + <screen>&prompt.root; <userinput>ifconfig bridge0 addm vlan100 sticky vlan100 addm vlan101 sticky vlan101</userinput> +&prompt.root; <userinput>ifconfig bridge0 inet 192.168.0.1/24</userinput></screen> + + <para>Mind a két kliens a <hostid + role="ipaddr">192.168.0.1</hostid> címet látja + alapértelmezett átjáróként, + és mivel a híd gyorsítótára + tapadós bejegyzéseket tartalmaz, a + MAC-címeik meghamisításával nem + tudják elcsípni a másikuk + forgalmát.</para> + + <para>A VLAN-ok közti bárminemû + kommunikációt privát felületek + létrehozásával akadályozzuk meg + (vagy egy tûzfallal):</para> + + <screen>&prompt.root; <userinput>ifconfig bridge0 private vlan100 private vlan101</userinput></screen> + + <para>Ezzel a megoldással az ügyfeleinket teljesen + elszigeteljük egymástól úgy, hogy + közben az egész <hostid + role="netmask">/24</hostid> címtartomány + külön alhálózatok + kialakítása nélkül + kiosztható.</para> + + </sect3> + + <sect3> + <title>Címek korlátozása</title> + + <para>Le tudjuk korlátozni az egy felület + mögül küldeni képes egyedi + MAC-címeket. Amikor ezen a határon felül + érkeznek ismeretlen feladótól csomagok, + egészen addig eldobjuk ezeket, amíg egy + korábban már regisztrált + bejegyzést a rendszer ki nem töröl vagy ki + nem veszünk a + gyorsítótárból.</para> + + <para>A következõ példában az + <literal>vlan100</literal> felületen csatlakozó + <hostid role="hostname">A-ugyfel</hostid> + számára korlátozzuk le 10-re az Ethernet + eszközök számát:</para> + + <screen>&prompt.root; <userinput>ifconfig bridge0 ifmaxaddr vlan100 10</userinput></screen> + + </sect3> + + <sect3> + <title>SNMP felügyelet</title> + + <para>A hidak és az STP paraméterei az alap &os; + rendszerben megtalálható SNMP démonnal + felügyelhetõek. A hídhoz exportált + felügyeleti információk (Management + Information Base, MIB) megfelelnek az IETF által + elõírt szabványoknak, így + akár tetszõleges SNMP kliens vagy bármilyen + más felügyeleti szoftver alkalmas az + olvasásukra.</para> + + <para>A hidat mûködtetõ gépen az + <filename>/etc/snmp.config</filename> + állományban engedélyezzük a + <literal>begemotSnmpdModulePath."bridge" = + "/usr/lib/snmp_bridge.so"</literal> sort és + indítsuk el a <application>bsnmpd</application> + démont. Itt még szükség lehet + más beállítások, + például a közösségek + nevének (community name) vagy a + hozzáférési listák (access list) + módosítására is. Ezzel + kapcsolatban a &man.bsnmpd.1; és az &man.snmp.bridge.3; + man oldalakat lapozzuk fel.</para> + + <para>A következõ példában a + <application>Net-SNMP</application> nevû szoftver + (<filename role="package">net-mgmt/net-snmp</filename>) fogjuk + használni a híd elérésére, + de ugyanerre a <filename + role="package">net-mgmt/bsnmptools</filename> port is + alkalmas. Az SNMP klienst használó gépen + egészítsük ki az + <filename>$HOME/.snmp/snmp.conf</filename> + állományt a híd felügyeleti + információinak + importálásával az + <application>Net-SNMP</application> rendszerébe:</para> + + <programlisting>mibdirs +/usr/share/snmp/mibs +mibs +BRIDGE-MIB:RSTP-MIB:BEGEMOT-MIB:BEGEMOT-BRIDGE-MIB</programlisting> + + <para>Az IETF BRIDGE-MIB (RFC 4188) + használatán keresztül így tudjuk + elindítani egy híd + felügyeletét:</para> + + <screen>&prompt.user; <userinput>snmpwalk -v 2c -c public bridge1.example.com mib-2.dot1dBridge</userinput> +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)</screen> + + <para>A példában látszik, hogy a + <literal>dot1dStpTopChanges.0</literal> értéke + kettõ, ami arra utal, hogy az STP híd + topológiája kétszer változott. A + topológia változása pedig azt jelenti, + hogy a hálózaton belül egy vagy több + link állapota megváltozott vagy egyszerûen + meghibásodott és ezért egy új + fát kellett számolni. A + <literal>dot1dStpTimeSinceTopologyChange.0</literal> + érték adja meg, hogy ez pontosan mikor is + történt.</para> + + <para>Több híd felületének + felügyeletéhez a belsõ BEGEMOT-BRIDGE-MIB + parancsot is használhatjuk:</para> + + <screen>&prompt.user; <userinput>snmpwalk -v 2c -c public bridge1.example.com</userinput> +enterprises.fokus.begemot.begemotBridge +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:29.27 centi-seconds +BEGEMOT-BRIDGE-MIB::begemotBridgeStpTimeSinceTopologyChange."bridge2" = Timeticks: (82773) 0:13:47.73 centi-seconds +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</screen> + + <para>Így tudjuk megadni, hogy a hidat + <literal>mib-2.dot1dBridge</literal> részfán + keresztül akarjuk megfigyelni:</para> + + <screen>&prompt.user; <userinput>snmpset -v 2c -c private bridge1.example.com</userinput> +BEGEMOT-BRIDGE-MIB::begemotBridgeDefaultBridgeIf.0 s bridge2</screen> + + </sect3> + </sect2> + </sect1> + + <sect1 id="network-aggregation"> + <sect1info> + <authorgroup> + <author> + <firstname>Andrew</firstname> + <surname>Thompson</surname> + <contrib>Írta: </contrib> + </author> + </authorgroup> + </sect1info> + + <title>Linkek összefûzése és + hibatûrése</title> + + <indexterm><primary>lagg</primary></indexterm> + <indexterm><primary>failover</primary></indexterm> + <indexterm><primary>fec</primary></indexterm> + <indexterm><primary>lacp</primary></indexterm> + <indexterm><primary>loadbalance</primary></indexterm> + <indexterm><primary>roundrobin</primary></indexterm> + + <sect2> + <title>Bevezetés</title> + + <para>A &man.lagg.4; felület lehetõvé teszi, hogy + több hálózati felületet egyetlen + virtuális felületként fûzzünk + össze, és ezzel egy hibatûrõ és + nagysebességû összeköttetést + alakítsunk ki.</para> + + </sect2> + + <sect2> + <title>Mûködési módok</title> + + <variablelist> + <varlistentry><term>failover</term> + <listitem> + <para>Csak az elsõdlegesként kijelölt porton + keresztül fogad és küld adatokat. Amikor + ez az elsõdleges port elérhetetlenné + válik, a következõ aktív portot + fogja használni. Az elsõként felvett + felület válik automatikusan az elsõdleges + porttá, és az utána felvett összes + többit pedig csak hiba esetén + használjuk.</para> + </listitem> + </varlistentry> + + <varlistentry><term>fec</term> + <listitem> + <para>A Cisco EtherChannel technológia + támogatása. Ez egy statikus + beállítás, és nem egyezteti az + összefûzést a többiekkel vagy a linkek + felügyeletéhez nem vált kereteket. Ha a + switch támogatja az LACP használatát, + akkor inkább azt válasszuk.</para> + + <para>A kimenõ forgalmat a fejlécekben + szereplõ protokollok alapján számolt + hasítókóddal próbálja + szétosztani az aktív portok között, + és tetszõleges aktív porton fogad + beérkezõ adatokat. Az említett + hasítókódban egy Ethernetes + forrás- és célcím szerepel, + valamint ha elérhetõ, akkor egy VLAN + címke, illetve az IPv4/IPv6 forrás- és + célcím.</para> + </listitem> + </varlistentry> + + <varlistentry><term>lacp</term> + <listitem> + <para>Az IEEE 802.3ad Link Aggregation Control Protocol (LACP) + és a Marker Protcol támogatása. Az + LACP megpróbálja egyeztetni a többi + géppel az összefûzhetõ linkeket egy + vagy több csoportban (Link Aggregated Group, LAG). + Mindegyik ilyen csoportban ugyanolyan sebességû + portokat találunk, full-duplex + mûködési módban. A forgalmat + így a legnagyobb összsebességgel + rendelkezõ csoportban megtalálható portok + között osztja el, ami a legtöbb esetben az + összes portot magában foglaló csoport. A + fizikai konnektivitás megváltozása + esetén a linkek összefûzõdése + igen gyorsan alkalmazkodik az új + konfigurációhoz.</para> + + <para>A kimenõ forgalmat az aktív portok + között osztja szét fejlécekben + szereplõ protokollok alapján számolt + hasítókóddal, és + bármelyik aktív portról fogad + bejövõ forgalmat. A + hasítókódban megtalálható + az Ethernetes forrás- és célcím, + valamint ha elérhetõ, akkor a VLAN címke, + illetve az IPv4/IPv6 forrás- és + célcímek.</para> + </listitem> + </varlistentry> + + <varlistentry><term>loadbalance</term> + <listitem> + <para>Ez a <emphasis>fec</emphasis> mód másik + neve.</para> + </listitem> + </varlistentry> + + <varlistentry><term>roundrobin</term> + + <listitem> + <para>A kimenõ forgalmat egy körkörös + (Round Robin) elvû ütemezõvel osztja + szét az aktív portok között + és tetszõleges aktív portról fogad + bejövõ forgalmat. Ez a mûködési + mód megsérti az Ethernet keretek + rendezését és csak nagy + körültekintés mellett alkalmazzuk.</para> + </listitem> + </varlistentry> + </variablelist> + + </sect2> + + <sect2> + <title>Példák</title> + + <example id="networking-lacp-aggregation-cisco"> + <title>LACP alapú összefûzés egy Cisco + switch-csel</title> + + <para>Ebben a példában egy &os;-s gép + két felületét kapcsoljuk össze + switch-csel egy egyszerû + terhelés-kiegyenlítéssel és + hibatûréssel beállított linken + keresztül. Mivel az Ethernet keretek sorrendje + döntõ fontosságú, ezért a + két állomás között egyazon + fizikai linken zajló forgalom maximális + sebességét az adott felület + kapacitása korlátozza. A küldési + algoritmus a lehetõ legtöbb információ + alapján próbálja egymástól + megkülönböztetni a forgalmakat és + elosztani ezeket a rendelkezésre álló + felületek között.</para> + + <para>A Cisco switch-en vegyünk fel ezeket a + felületeket egy csoportba (channel group):</para> + + <screen>interface FastEthernet0/1 + channel-group 1 mode active + channel-protocol lacp +! +interface FastEthernet0/2 + channel-group 1 mode active + channel-protocol lacp +!</screen> + + <para>A &os;-s gépen pedig hozzunk létre a + <devicename>lagg</devicename> felületet:</para> + + <screen>&prompt.root; <userinput>ifconfig lagg0 create</userinput> +&prompt.root; <userinput>ifconfig lagg0 up laggproto lacp laggport fxp0 laggport fxp1</userinput></screen> + + <para>Ellenõrizzük a felület + állapotát az <command>ifconfig</command> parancs + meghívásával. Az + <emphasis>ACTIVE</emphasis>, vagyis aktív + állapotú portok az + összefûzéshez kialakított csoport azon + tagjai, amelyeknél felépült a kapcsolat a + távoli switch felé és készen + állnak a küldésre és + fogadásra. Ha az &man.ifconfig.8; programtól + részletesebb kimenetet kérünk, akkor + láthatjuk a csoportok azonosítóit + is:</para> + + <screen>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></screen> + + <para>A switch-en is látni fogjuk, hogy mely portjai + aktívak. Pontosabb részleteket a + <userinput>show lacp neighbor detail</userinput> paranccsal + kapunk.</para> + + <screen>switch# show lacp neighbor +Flags: S - Device is requesting Slow LACPDUs + F - Device is requesting Fast LACPDUs + A - Device is in Active mode P - Device is in Passive mode + +Channel group 1 neighbors + +Partner's information: + + LACP port Oper Port Port +Port Flags Priority Dev ID Age Key Number State +Fa0/1 SA 32768 0005.5d71.8db8 29s 0x146 0x3 0x3D +Fa0/2 SA 32768 0005.5d71.8db8 29s 0x146 0x4 0x3D</screen> + + </example> + + <example id="networking-lagg-failover"> + <title>A hibatûrés + beállítása</title> + + <para>A hibatûrési mód arra alkalmas, hogy + amikor az elsõdleges porton elvesztjük a + kapcsolatot, helyette egy másik felület + használatára tudunk + áttérni.</para> + + <screen>&prompt.root; <userinput>ifconfig lagg0 create</userinput> +&prompt.root; <userinput>ifconfig lagg0 up laggproto failover laggport fxp0 laggport fxp1</userinput></screen> + + <screen>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></screen> + + <para>A forgalom kezdetben az <devicename>fxp0</devicename> + felületen keresztül érkezik és + távozik. Ha az <devicename>fxp0</devicename> + felületen valamiért megszakadna a kapcsolat, + helyette az <devicename>fxp1</devicename> lesz az aktív + link. Ha késõbb helyreáll a kapcsolat az + elsõdleges felületen, akkor újra az lesz + aktív link.</para> + + </example> + + </sect2> + </sect1> + + <sect1 id="network-diskless"> + <sect1info> + <authorgroup> + <author> + <firstname>Jean-François</firstname> + <surname>Dockès</surname> + <contrib>Frissítette: </contrib> + </author> + </authorgroup> + <authorgroup> + <author> + <firstname>Alex</firstname> + <surname>Dupre</surname> + <contrib>Átdolgozta és javította: + </contrib> + </author> + </authorgroup> + </sect1info> + + <title>Lemez nélküli mûködés</title> + + <indexterm><primary>lemez nélküli + munkaállomás</primary></indexterm> + <indexterm><primary>lemez nélküli + mûködés</primary></indexterm> + + <para>A &os; képes hálózaton keresztül + elindulni és helyi lemez nélkül egy + <acronym>NFS</acronym> szerver által megosztott + állományrendszer csatlakoztatásával + mûködni. Ehhez a szabványos + konfigurációs állományok + módosításán kívül semmi + másra nincs szükségünk. Egy ilyen + rendszert viszonylag könnyû beállítani, + mivel az összes hozzávaló szinte készen + elérhetõ:</para> + + <itemizedlist> + <listitem> + <para>Rögtön adott legalább két + módszer, ha a rendszermagot hálózaton + keresztül akarjuk betölteni:</para> + + <itemizedlist> + <listitem> + <para><acronym>PXE</acronym>: az &intel; által + fejlesztett Preboot eXecution Environment + (<quote>indítás elõtti + végrehajtási környezet</quote>) + nevû rendszer a hálózati + kártyákba vagy alaplapokba + épített ROM + segítségével teszi + lehetõvé az intelligens + rendszerindítást. A &man.pxeboot.8; man + oldalán olvashatunk errõl + részletesebben.</para> + </listitem> + <listitem> + <para>Az <application>Etherboot</application> port + (<filename role="package">net/etherboot</filename>) olyan + ROM-ba programozható kódot + készít, amellyel rendszermagokat tudunk + hálózaton keresztül betölteni. Ez + a kód egyaránt felhasználható + egy hálózati rendszerindító + PROM beégetéséhez, vagy + betölthetõ a helyi floppy (esetleg + merev)lemezrõl, illetve &ms-dos; rendszer + alól. Elég sok hálózati + kártya támogatja ezt a módot.</para> + </listitem> + </itemizedlist> + </listitem> + + <listitem> + <para>Egy mintaszkript + (<filename>/usr/share/examples/diskless/clone_root</filename>) + is próbálja megkönnyíteni a + szerveren a munkaállomás + rendszerindító + állományrendszerének + létrehozását és + karbantartását. Ezt a szkriptet + valószínûleg némileg + módosítani kell, de így is sokat + segít az elindulásban.</para> + </listitem> + + <listitem> + <para>Az <filename>/etc</filename> könyvtárban + található szabványos + rendszerindításhoz használt + állományok, amelyekkel a lemez + nélküli indulást lehet detektálni + és segíteni.</para> + </listitem> + + <listitem> + <para>A lapozás, amennyiben szükséges, + <acronym>NFS</acronym> vagy helyi lemez + segítségével oldható meg.</para> + </listitem> + </itemizedlist> + + <para>Számos módon állíthatunk be egy + lemez nélküli munkaállomást. Rengeteg + részbõl tevõdik össze, és ezek + legtöbbje remekül testreszabható az + igényeinknek. A továbbiakban egy teljes rendszer + összeállításának + lehetséges variációit ismertetjük, + különös hangsúlyt fektetünk arra, hogy + egyszerûek és a hagyományos &os; + indítószkriptekkel kompatibilisek maradjanak. A + bemutatandó rendszer a következõ + jellemzõkkel bír:</para> + + <itemizedlist> + <listitem> + <para>A lemez nélküli munkaállomások + megosztott <filename>/</filename> és + <filename>/usr</filename> állományrendszereket + használnak.</para> + + <para>A rendszer indításához + használt gyökér + állományrendszer a szabvány &os;-s + gyökér (ez általában a + szerveré), ahol néhány + állományt felülírtunk a lemez + nélküli mûködéshez vagy + azért, mert egyszerûen az adott + munkaállomáshoz tartozik.</para> + + <para>A gyökér azon részeit, amelyeket + írhatóvá kívánunk tenni, + &man.md.4; alapú állományrendszerekkel + lapoljuk felül. Ilyenkor azonban bármilyen rajtuk + ejtett változtatás a rendszer + újraindításával elveszik.</para> + </listitem> + + <listitem> + <para>A rendszermagot vagy az + <application>Etherboot</application> vagy a + <acronym>PXE</acronym> használatával + küldessük át és töltsük be, + mivel egyes helyzetekben ezekre szükség + lesz.</para> + </listitem> + </itemizedlist> + + <caution> + <para>A bemutatott rendszer nem biztonságos. + Helyezzük a hálózatunk egy jól + védett részére, és a többi + gép ne tekintse megbízhatónak.</para> + </caution> + + <para>A szakaszban szereplõ összes + információt a &os; 5.2.1-RELEASE + változatával teszteltük.</para> + + <sect2> + <title>Háttérinformációk</title> + + <para>A lemez nélküli munkaállomások + beállítása egyszerre adja magát + és könnyen is elvéthetõ. Az + elkövetett hibákat olykor számos okból + kifolyólag nehéz felismerni. + Például:</para> + + <itemizedlist> + <listitem> + <para>A fordítási idõben megadott + beállítások mást + eredményeznek futási idõben.</para> + </listitem> + + <listitem> + <para>A hibaüzenetek gyakran titokzatosak vagy esetleg + teljesen el is maradnak.</para> + </listitem> + </itemizedlist> + + <para>Ezért ha valamennyire tisztában vagyunk a + háttérben zajló folyamatokkal, akkor sokkal + több eséllyel leszünk képesek megoldani + a menet közben felmerülõ + problémákat.</para> + + <para>A rendszernek a sikeres felkapaszkodáshoz több + mûveletet is végre kell hajtania:</para> + + <itemizedlist> + <listitem> + <para>A gépnek szüksége van olyan + induló paraméterekhez, mint + például az IP-cím, a + végrehajtható állomány neve, a + szerver neve, a gyökér elérési + útja. Ezeket a <acronym>DHCP</acronym> vagy a BOOTP + protokollok használatával adhatjuk meg. A + <acronym>DHCP</acronym> a BOOTP kompatibilis + kiterjesztése, ezért ugyanazokat a portokat + és alapvetõ csomagformátumot + alkalmazza.</para> + + <para>A rendszerüket kizárólag BOOTP + használatával is beállíthatjuk. + A &man.bootpd.8; szerver az alap &os; rendszer + része.</para> + + <para>A <acronym>DHCP</acronym> azonban rengeteg elõnnyel + rendelkezik a BOOTP protokollal szemben + (áttekinthetõbb konfigurációs + állományok, a <acronym>PXE</acronym> + használatának lehetõsége, illetve + sok minden más, ami nem csak a lemez + nélküli mûködéshez kellhet), + ezért itt alapvetõen egy DHCP alapú + konfigurációt mutatunk be, de ahol + megoldható, megemlítjük a &man.bootpd.8; + esetén alkalmas példákat is. A + mintaként szolgáló + konfiguráció az <application>ISC + DHCP</application> szoftvercsomagot használja (a + tesztszerverre ennek a 3.0.1.r12 verzióját + telepítetük fel).</para> + </listitem> + + <listitem> + <para>A gépnek egy vagy több programot kell a + saját memóriájába + áttöltenie. Erre vagy a <acronym>TFTP</acronym> + vagy pedig az <acronym>NFS</acronym> alkalmas. A + <acronym>TFTP</acronym> és az <acronym>NFS</acronym> + között sok helyen fordítási + idõben tudunk választani. Gyakori + hibaforrás a protokollhoz rosszul megadott + állománynevek használata: a + <acronym>TFTP</acronym> általában az + összes állományt a szerverrõl + egyetlen könyvtárból tölti + át, ezért arra számít, hogy a + neveiket ehhez viszonyítva adjuk meg. Az + <acronym>NFS</acronym> használata során + azonban abszolút elérési utakat kell + megadnunk.</para> + </listitem> + + <listitem> + <para>A rendszer indítását + lehetõvé tevõ közbensõ + programokat és a rendszermagot valahogy + inicializálni kell és elindítani. Ezen + a területen több fontos változat kapott + helyet:</para> + + <itemizedlist> + <listitem> + <para>A <acronym>PXE</acronym> a &man.pxeboot.8; + kódját fogja betölteni, ez + lényegében a &os; betöltõ + harmadik fokozatának egy módosított + változata. A &man.loader.8; a + mûködéséhez + szükséges paramétereket a rendszer + indításakor kapja meg, majd a + vezérlés átadása elõtt + ezeket a rendszermag környezetében hagyja. + Ebben az esetben akár a + <filename>GENERIC</filename> rendszermag is + használható.</para> + </listitem> + + <listitem> + <para>Az <application>Etherboot</application> kevesebb + elõkészítéssel + közvetlenül magát a rendszermagot + tölti be. Ehhez azonban egy saját + rendszermagot kell építeni, + külön + beállításokkal.</para> + </listitem> + </itemizedlist> + + <para>A <acronym>PXE</acronym> és az + <application>Etherboot</application> egyaránt + jól használható. Mivel azonban a + rendszermagok általában a &man.loader.8; + kódjára hagyják a munka legnagyobb + részét, ezért ahol lehetséges, a + <acronym>PXE</acronym> megoldását + érdemes alkalmazni.</para> + + <para>Tehát ha az alaplapi <acronym>BIOS</acronym> + és a hálózati kártya is + támogatja a <acronym>PXE</acronym> + használatát, akkor válasszunk + inkább azt.</para> + </listitem> + + <listitem> + <para>Végezetül a gépnek valamilyen + módon hozzá kell tudnia férnie az + állományrendszerekhez. Erre többnyire az + <acronym>NFS</acronym> jöhet szóba.</para> + </listitem> + </itemizedlist> + + <para>A további részleket lásd a + &man.diskless.8; man oldalon.</para> + + </sect2> + + <sect2> + <title>Beállítási + útmutató</title> + + <sect3> + <title>Beállítás a <application>ISC + DHCP</application> használatával</title> + + <indexterm> + <primary>DHCP</primary> + <secondary>lemez nélküli + mûködés</secondary> + </indexterm> + + <para>Az <application>ISC DHCP</application> szervere + képes a BOOTP és <acronym>DHCP</acronym> + kéréseket is megválaszolni.</para> + + <para>Az <application>ISC DHCP 3.0</application> nem az + alaprendszer része, ezért a + használatához elõször + telepítenünk kell a <filename + role="package">net/isc-dhcp3-server</filename> portot vagy a + neki megfelelõ csomagot.</para> + + <para>Ahogy feltelepítettük, le kell futtatnunk az + <application>ISC DHCP</application> + konfigurációs állományát + (ezt általában + <filename>/usr/local/etc/dhcpd.conf</filename> néven + találjuk meg). A most következõ, + megjegyzésekkel kiegészített + példában egy <hostid>margaux</hostid> + nevû gép az + <application>Etherboot</application>, valamint egy + <hostid>corbieres</hostid> nevû gép + <acronym>PXE</acronym> használatával akar + kapcsolódni:</para> + + <programlisting> +default-lease-time 600; +max-lease-time 7200; +authoritative; + +option domain-name "minta.com"; +option domain-name-servers 192.168.4.1; +option routers 192.168.4.1; + +subnet 192.168.4.0 netmask 255.255.255.0 { + use-host-decl-names on; <co id="co-dhcp-host-name"> + option subnet-mask 255.255.255.0; + option broadcast-address 192.168.4.255; + + host margaux { + hardware ethernet 01:23:45:67:89:ab; + fixed-address margaux.minta.com; + next-server 192.168.4.4; <co id="co-dhcp-next-server"> + filename "/data/misc/kernel.diskless"; <co id="co-dhcp-filename"> + option root-path "192.168.4.4:/data/misc/diskless"; <co id="co-dhcp-root-path"> + } + host corbieres { + hardware ethernet 00:02:b3:27:62:df; + fixed-address corbieres.minta.com; + next-server 192.168.4.4; + filename "pxeboot"; + option root-path "192.168.4.4:/data/misc/diskless"; + } +} +</programlisting> + + <calloutlist> + <callout arearefs="co-dhcp-host-name"> + <para>Ez a beállítás arra + utasítja a <application>dhcpd</application> + démont, hogy a lemez nélküli + gép hálózati neveként a + <literal>host</literal> deklarációban + megadott értéket küldje el. Ezt + úgyis meg lehet csinálni, hogy + felvesszünk egy <literal>option host-name + <replaceable>margaux</replaceable> </literal> + részt a <literal>host</literal> + deklarációk közé.</para> + </callout> + + <callout arearefs="co-dhcp-next-server"> + <para>A <literal>next-server</literal> direktíva a + betöltõ vagy a rendszermag + betöltéséért felelõs + <acronym>TFTP</acronym> vagy <acronym>NFS</acronym> + szervert jelöli ki (alapértelmezés + szerint ez megegyezik a <acronym>DHCP</acronym> + szerverrel).</para> + </callout> + + <callout arearefs="co-dhcp-filename"> + <para>A <literal>filename</literal> direktíva azt + az állományt adja meg, amelyet az + <application>Etherboot</application> vagy a + <acronym>PXE</acronym> a következõ + végrehajtási lépésben + betölt. Ezt a kiválasztott átviteli + módnak megfelelõen kell megadni. Az + <application>Etherboot</application> + lefordítható az <acronym>NFS</acronym> + vagy a <acronym>TFTP</acronym> + használatával is. A &os; port + alapból az <acronym>NFS</acronym> + támogatását tartalmazza. A + <acronym>PXE</acronym> a <acronym>TFTP</acronym> + protokollt használja, ezért itt + relatív állományneveket adunk meg + (ez persze a <acronym>TFTP</acronym> szerver + beállításaitól függ, de + általában ez a jellemzõ). Sõt, + a <acronym>PXE</acronym> a <filename>pxeboot</filename> + állományt tölti be, nem is a + rendszermagot. Léteznek további + érdekes lehetõségek is, mint + például a <filename>pxeboot</filename> + állomány betöltése a &os; + CD-jén található <filename + role="directory">/boot</filename> + könyvtárból (mivel a &man.pxeboot.8; + a <filename>GENERIC</filename> rendszermagot + képes betölteni, ezért a + <acronym>PXE</acronym> használatával + akár egy távoli + CD-meghajtóról is indíthatjuk a + rendszert).</para> + </callout> + + <callout arearefs="co-dhcp-root-path"> + <para>A <literal>root-path</literal> opció a + rendszer indításához + használt gyökér + állományrendszert nevezi meg, amelyet + többnyire az <acronym>NFS</acronym> + jelölési módszere szerint kell + megadni. A <acronym>PXE</acronym> használata + során el lehet hagyni a gép + IP-címét egészen addig, amíg + nem engedélyezzük a rendszermagban a BOOTP + beállítást. Az + <acronym>NFS</acronym> szerver ekkor megegyzik a + <acronym>TFTP</acronym> szerverrel.</para> + </callout> + </calloutlist> + + </sect3> + + <sect3> + <title>Beállítás a BOOTP + használatával</title> + + <indexterm> + <primary>BOOTP</primary> + <secondary>lemez nélküli + mûködés</secondary> + </indexterm> + + <para>Itt a <application>bootpd</application> (egyetlen + kliensre korlátozott) + beállítását láthatjuk. + Ezt az <filename>/etc/bootptab</filename> + állományba tegyük.</para> + + <para>Ne feledjük, hogy a BOOTP + használatához az + <application>Etherboot</application> portot a + <literal>NO_DHCP_SUPPORT</literal> + beállítással kell fordítanunk, + miközben a <acronym>PXE</acronym> esetében kell + a <acronym>DHCP</acronym>. Egyébként a + <application>bootpd</application> egyedüli + nyilvánvaló elõnye csupán annyi, + hogy az alaprendszer része.</para> + + <programlisting> +.def100:\ + :hn:ht=1:sa=192.168.4.4:vm=rfc1048:\ + :sm=255.255.255.0:\ + :ds=192.168.4.1:\ + :gw=192.168.4.1:\ + :hd="/tftpboot":\ + :bf="/kernel.diskless":\ + :rp="192.168.4.4:/data/misc/diskless": + +margaux:ha=0123456789ab:tc=.def100 +</programlisting> + + </sect3> + + <sect3> + <title>A rendszer elõkészítése az + <application>Etherboot</application> + számára</title> + + <indexterm><primary>Etherboot</primary></indexterm> + + <para>Az <ulink url="http://etherboot.sourceforge.net">Etherboot + honlapján </ulink> találhatunk egy <ulink + url="http://etherboot.sourceforge.net/doc/html/userman/t1.html"> + minden részletre kiterjedõ + dokumentációt (angolul)</ulink>, amely + elsõsorban ugyan a Linux típusú rendszerek + számára íródott, de ettõl + függetlenül még hasznos + információkat tartalmaz. A továbbiakban + csak annyit szeretnénk körvonalazni, hogy az + <application>Etherboot</application> miként + bírható mûködésre &os; + rendszerekkel.</para> + + <para>Elõször telepítenünk kell a + <filename role="package">net/etherboot</filename> csomagot + vagy portot.</para> + + <para>Az <application>Etherboot</application> + beállítását (vagyis a + <acronym>TFTP</acronym> használatának + megadását az <acronym>NFS</acronym> helyett) az + <application>Etherboot</application> forrását + tartalmazó könyvtárban + található <filename>Config</filename> + állomány megfelelõ + átírásával tudjuk megtenni.</para> + + <para>Itt most floppyról fogjuk indítani a + rendszert. A többi módszerrel (PROM vagy &ms-dos; + program) kapcsolatban olvassuk el az + <application>Etherboot</application> + dokumentációját.</para> + + <para>A rendszerindító lemez + elkészítéséhez tegyünk egy + lemezt annak a gépnek a meghajtójába, + ahová az <application>Etherboot</application> + felkerült. Váltsunk az + <application>Etherboot</application> + könyvtárán belül az + <filename>src</filename> alkönyvtárba és + gépeljük be:</para> + + <screen> +&prompt.root; <userinput>gmake bin32/<replaceable>eszköztípus</replaceable>.fd0</userinput> +</screen> + + <para>Az <replaceable>eszköztípus</replaceable> a + lemez nélküli munkaállomás Ethernet + kártyájától függ. Az + ugyanebben a könyvtárban található + <filename>NIC</filename> állományból + tudjuk kiolvasni, hogy az adott kártyához melyik + <replaceable>eszköztípus</replaceable> + tartozik.</para> + + </sect3> + + <sect3> + <title>A rendszer indítása <acronym>PXE</acronym> + használatával</title> + + <para>Alapértelmezés szerint a &man.pxeboot.8; + betöltõ a rendszermagot <acronym>NFS</acronym>-en + keresztül tölti be. Ha az + <filename>/etc/make.conf</filename> állományban + a <literal>LOADER_TFTP_SUPPORT</literal> + beállítást adjuk meg, akkor + <acronym>TFTP</acronym> támogatással is + lefordítható. Ezzel kapcsolatban a + <filename>/usr/share/examples/etc/make.conf</filename> + állományban található + megjegyzéseket érdemes elolvasnunk.</para> + + <para>A <filename>make.conf</filename> állományban + még további két másik hasznos + opciót is találhatunk a soros vonali konzollal + üzemelõ lemez nélküli gépek + számára: az egyik a + <literal>BOOT_PXELDR_PROBE_KEYBOARD</literal>, a másik + pedig a <literal>BOOT_PXELDR_ALWAYS_SERIAL</literal>.</para> + + <para>A gép indításakor úgy tudjuk + beüzemelni a <acronym>PXE</acronym> + használatát, ha a BIOS + beállításai között a + <literal>Boot from network</literal> opciót + választjuk ki, vagy a gép bekapcsolása + után lenyomjuk hozzá a megfelelõ + funkcióbillentyût.</para> + + </sect3> + + <sect3> + <title>A <acronym>TFTP</acronym> és + <acronym>NFS</acronym> szerverek + beállítása</title> + + <indexterm> + <primary>TFTP</primary> + <secondary>lemez nélküli + mûködés</secondary> + </indexterm> + <indexterm> + <primary>NFS</primary> + <secondary>lemez nélküli + mûködés</secondary> + </indexterm> + + <para>Ha a <acronym>PXE</acronym> vagy az + <application>Etherboot</application> a <acronym>TFTP</acronym> + protokollt használja, akkor az + állományszerveren a + <application>tftpd</application> démont kell + elindítani:</para> + + <procedure> + <step> + <para>Készítsünk egy + könyvtárat, ahonnan majd a + <application>tftpd</application> küldi az + állományokat, például legyen + ez a <filename>/tftpboot</filename>.</para> + </step> + + <step> + <para>Vegyük fel a következõ sort az + <filename>/etc/inetd.conf</filename> + állományunkba:</para> + + <programlisting>tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /tftpboot</programlisting> + + <note> + <para>A tapasztalat szerint egyes <acronym>PXE</acronym> + verziók a <acronym>TFTP</acronym> + <acronym>TCP</acronym> alapú + változatát használják. + Ebben az esetben vegyünk fel még egy + második sort is, ahol a <literal>dgram + udp</literal> részt <literal>stream + tcp</literal>-re cseréljük.</para> + </note> + </step> + + <step> + <para>Mondjuk meg az <application>inetd</application> + démonnak, hogy olvassa újra a + konfigurációs + állományát. Az alábbi parancs + megfelelõ mûködéséhez Az + <option>inetd_enable="YES"</option> sornak szerepelnie + kell az <filename>/etc/rc.conf</filename> + állományban:</para> + + <screen>&prompt.root; <userinput>/etc/rc.d/inetd restart</userinput></screen> + </step> + </procedure> + + <para>A <filename>tftpboot</filename> könyvtárat + bárhova rakhatjuk a szerveren. Viszont az + <filename>inetd.conf</filename> és + <filename>dhcpd.conf</filename> állományokban + ezt ne felejtsük fel megadni.</para> + + <para>Minden esetben engedélyeznünk kell az + <acronym>NFS</acronym> használatát és + vele együtt exportálni az <acronym>NFS</acronym> + szerverrõl elérni kívánt + állományrendszereket.</para> + + <procedure> + <step> + <para>Az <filename>/etc/rc.conf</filename> + állományba tegyük bele a + következõt:</para> + + <programlisting>nfs_server_enable="YES"</programlisting> + </step> + + <step> + <para>Az <filename>/etc/exports</filename> + állományban a lemez nélküli + rendszereknek szánt + gyökérkönyvtárat tegyük + elérhetõvé (a példában + írjuk át a kötet csatlakozási + pontját és a <replaceable>margaux + corbieres</replaceable> helyére + állítsuk be a saját lemez + nélküli munkaállomásaink + neveit:</para> + + <programlisting><replaceable>/data/misc</replaceable> -alldirs -ro <replaceable>margaux corbieres</replaceable></programlisting> + </step> + + <step> + <para>Kérjük meg a + <application>mountd</application> démont, hogy + olvassa újra a konfigurációs + állományát. Elõfordulhat + azonban, hogy ehhez elõször az + <acronym>NFS</acronym> szolgáltatást kell + engedélyezni az <filename>/etc/rc.conf</filename> + állományból és + újraindítani a gépet.</para> + + <screen>&prompt.root; <userinput>/etc/rc.d/mountd restart</userinput></screen> + </step> + </procedure> + + </sect3> + + <sect3> + <title>Lemez nélküli rendszermag + fordítása</title> + + <indexterm> + <primary>lemez nélküli + mûködés</primary> + <secondary>a rendszermag + beállításai</secondary> + </indexterm> + + <para>Ha az <application>Etherboot</application> + használata mellett döntünk, akkor a lemez + nélküli kliensek számára a + rendszermagot a következõ + beállítások használatával + kell újrafordítani (a megszokottak + mellett):</para> + + <programlisting> +options BOOTP # BOOTP-n keresztül kérünk IP-címet és hálózati nevet +options BOOTP_NFSROOT # a BOOTP-tõl kapott információk alapján csatoljuk a gyökeret NFS-en keresztül +</programlisting> + + <para>Ezek mellett valószínûleg + szükségünk lesz a + <literal>BOOTP_NFSV3</literal>, <literal>BOOT_COMPAT</literal> + és <literal>BOOTP_WIRED_TO</literal> + beállítások megadására is + (lásd a <filename>NOTES</filename> + állományt).</para> + + <para>A beállítások nevei + régrõl származnak és némileg + félrevezetõek lehetnek, mivel + valójában semmit sem változtatnak a + rendszermagban levõ <acronym>DHCP</acronym> vagy a BOOTP + rutinok használatában (egyébként + meg lehet adni vagy az egyik vagy a másik protokoll + kizárólágos használatát + is).</para> + + <para>Fordítsuk le a rendszermagot (lásd <xref + linkend="kernelconfig">), és másoljuk a + <filename>dhcpd.conf</filename> állományban + megadott helyre.</para> + + <note> + <para>Amikor a <acronym>PXE</acronym> protokollt + használjuk, a rendszermagot nem fontos az + imént felsorolt paraméterekkel + fordítanunk (habár ajánlatos). Az + engedélyezésükkel több + <acronym>DHCP</acronym> kérés keletkezik a + rendszermag elindulása közben, ezért + kisebb a kockázata annak, hogy a &man.pxeboot.8; + által bizonyos esetekben megszerzett és az + új értékek között valamilyen + ellentmondás jön létre. A + használatuk egyik elõnye, hogy így + mellékhatásként a + hálózati nevünket is megkapjuk. + Ellenkezõ esetben erre is találnunk kellene + valamilyen módot, például fenntartani + egy-egy <filename>rc.conf</filename> állományt + minden kliensen.</para> + </note> + + <note> + <para>Az <application>Etherboot</application> csak akkor lesz + képes betölteni a rendszermagot, ha device + hinteket is beépítünk. Ezt a + következõ beállítással tudjuk + megoldani (errõl bõvebben lásd a + <filename>NOTES</filename> állomány + megjegyzéseit):</para> + + <programlisting>hints "GENERIC.hints"</programlisting> + </note> + + </sect3> + + <sect3> + <title>A rendszerindító + állományrendszer + elõkészítése</title> + + <indexterm> + <primary>rendszerindító + állományrendszer</primary> + <secondary>lemez nélküli + mûködés</secondary> + </indexterm> + + <para>A <filename>dhcpd.conf</filename> állomány + <literal>root-path</literal> + beállításának megfelelõen + hozzunk létre a rendszer + indítására alkalmas gyökér + állományrendszert.</para> + + <sect4> + <title>Az állományrendszer + feltöltése a <command>make world</command> + paranccsal</title> + + <para>Ezzel a módszerrel a <envar>DESTDIR</envar> + könyvtárba pillanatok alatt telepíteni + tudunk egy teljes szûz rendszert (és nem csak a + rendszerindító + állományrendszert). Ehhez mindössze csak + annyit kell tenni, hogy lefuttatjuk a következõ + szkriptet:</para> + + <programlisting>#!/bin/sh +export DESTDIR=/data/misc/diskless +mkdir -p ${DESTDIR} +cd /usr/src; make buildworld && make buildkernel +cd /usr/src/etc; make distribution</programlisting> + + <para>Miután végzett, már csak a + <envar>DESTDIR</envar> könyvtárban + található <filename>/etc/rc.conf</filename> + és <filename>/etc/fstab</filename> + állományokat kell az igényeinkhez + igazítani.</para> + + </sect4> + </sect3> + + <sect3> + <title>A lapozóterület + beállítása</title> + + <para>Amennyiben szükséges, a szerveren + található lapozóállományt + <acronym>NFS</acronym>-en keresztül el tudjuk + érni.</para> + + <sect4> + <title>Lapozás <acronym>NFS</acronym>-sel</title> + + <para>A rendszermag maga nem támogatja az + <acronym>NFS</acronym> alapú lapozás + engedélyezését a rendszer + indításakor. A + lapozóállományt ezért a + rendszerindító szkripteken keresztül + aktiváljuk, amelyekben csatlakoztatunk egy + írható állományrendszert, ahol + létrehozzuk és engedélyezzük a + lapozóállományt. Tetszõleges + méretû lapozóállományt + például így tudunk + készíteni:</para> + + <screen>&prompt.root; <userinput>dd if=/dev/zero of=<replaceable>/a/lapozóállomány/helye</replaceable> bs=1k count=1 oseek=<replaceable>100000</replaceable></userinput></screen> + + <para>Az engedélyezéséhez pedig a + következõ sort kell felvenni az + <filename>rc.conf</filename> + állományba:</para> + + <programlisting>swapfile=<replaceable>/a/lapozóállomány/helye</replaceable></programlisting> + + </sect4> + </sect3> + + <sect3> + <title>Egyéb problémák</title> + + <sect4> + <title>Írásvédett + <filename>/usr</filename> használata</title> + + <indexterm> + <primary>lemez nélküli + mûködés</primary> + <secondary>írásvédett /usr</secondary> + </indexterm> + + <para>Ha a lemez nélküli + munkaállomáson X szervert akarunk futtatni, + akkor az <application>XDM</application> + konfigurációs állományait + kicsit módosítanunk kell, mert + alapértelmezés szerint a + <filename>/usr</filename> könyvtárban hozza + létre a naplókat.</para> + + </sect4> + + <sect4> + <title>Nem &os;-s szerver használata</title> + + <para>Amikor a rendszer indításához + használt állományrendszert nem egy &os; + alapú számítógépen + tároljuk, akkor elõször ezt egy &os;-s + gépen kell elkészíteni, majd a + <command>tar</command> vagy <command>cpio</command> + segítségével átmásolni a + megfelelõ helyre.</para> + + <para>Ilyen helyzetekben gyakran gondok adódhatnak + olyan speciális állományokkal, mint + például amelyek a <filename>/dev</filename> + könyvtárban találhatóak, mivel a + fõ- és aleszközazonosítók + tárolására szánt méret + különbözhet. Ezt úgy oldhatjuk meg, + ha exportálunk egy könyvtárat a nem &os; + alapú szerveren, ezt csatlakoztatjuk a &os;-s + gépen, majd a &man.devfs.5; + segítségével a + eszközleírókat a + felhasználó számára + észrevétlen módon foglaljuk le.</para> + + </sect4> + </sect3> + </sect2> + </sect1> + + <sect1 id="network-isdn"> + <title>ISDN</title> + + <indexterm><primary>ISDN</primary></indexterm> + + <para>Az ISDN technológiai és hardveres + hátterérõl sokat megtudhatunk <ulink + url="http://www.alumni.caltech.edu/~dank/isdn/">Dan Kegel + ISDN-rõl szóló oldalán + (angolul)</ulink>.</para> + + <para>Az ISDN használatát röviden így + foglalhatnánk össze:</para> + + <itemizedlist> + <listitem> + <para>Ha Európában élünk, akkor minden + bizonnyal az ISDN kártyákkal foglalkozó + szakaszt érdemes elolvasnunk.</para> + </listitem> + + <listitem> + <para>Ha elsõsorban betárcsázós + ISDN-nel szeretnénk csatlakozni az internetre egy + internet-szolgáltatón keresztül, akkor a + terminál adaptereket tárgyaló szakaszt + nézzük meg. A szolgáltatók + váltásakor ezzel jár a legtöbb + rugalmasság és a legkevesebb + probléma.</para> + </listitem> + + <listitem> + <para>Ha két helyi hálózat + összekötésére használjuk, vagy + az internethez egy bérelt ISDN vonalon keresztül + kapcsolódunk, akkor egy önálló + útválasztó vagy hálózati + híd beállításában + érdemes gondolkodnunk.</para> + </listitem> + </itemizedlist> + + <para>A költség fontos szerepet játszik az + elfogadható megoldás + kiválasztásában. A most következõ + lehetõségeket a legolcsóbbtól indulva + kezdjük el felsorolni egészen a + legdrágábbig.</para> + + <sect2 id="network-isdn-cards"> + <sect2info> + <authorgroup> + <author> + <firstname>Hellmuth</firstname> + <surname>Michaelis</surname> + <contrib>Készítette: </contrib> + </author> + </authorgroup> + </sect2info> + + <title>ISDN kártyák</title> + + <indexterm> + <primary>ISDN</primary> + <secondary>kártyák</secondary> + </indexterm> + + <para>A &os;-ben megtalálható ISDN + implementáció csak a DSS1/Q.931 (más + néven Euro-ISDN) szabvány szerint gyártott + passzív kártyákat támogatja. Ismer + azonban egyes olyan aktív kártyákat is, + amelyeknél a firmware további más + jelkezelési protokollokat is támogat. Ilyen + többek közt az elsõként támogatott + Primary Rate (PRI) ISDN kártya.</para> + + <para>Az <application>isdn4bsd</application> szoftver + segítségével kapcsolódni tudunk + más ISDN útválasztókhoz IP-n + keresztül a nyers HDLC felett, vagy szinkron PPP + használatával. Mindezeket a rendszermagban + található PPP-re vagy az + <literal>isppp</literal>-re építkezik.</para> + + <para>&os; alatt egyre több PC-s ISDN kártyához + készül el a támogatás, és a + visszajelzések azt mutatják, hogy + Európában és a világ minden + részén sikerrel használják + ezeket.</para> + + <para>A passzív ISDN kártyák közül + is leginkább az Infineon (korábban Siemens) + gyártmányú ISAC/HSCX/IPAC ISDN + chipkészletek támogatottak, de a Cologne chippel + rendelkezõ (de csak ISA buszos) ISDN kártyák, + a Winbond W6692 chipes PCI buszos kártyák, + és a Tiger300/320/ISAC chipkészletek egyes + változatai, valamint néhány + gyártófüggõ chipkészlettel + rendelkezõ kártya, mint például az AVM + Fritz!Card PCI V.1.0 és az AVM Fritz!Card PnP is + remekül mûködik.</para> + + <para>Jelenleg a következõ aktív ISDN + kártyákat támogatja a rendszer: AVM B1 (ISA + és PCI) BRI kártyák és az AVM T1 PCI + PRI kártyák.</para> + + <para>Az <application>isdn4bsd</application> + dokumentációját a rendszerünkön + belül a <filename>/usr/share/examples/isdn/</filename> + könyvtárban találhatjuk meg, vagy + közvetlenül <ulink + url="http://www.freebsd-support.de/i4b/">az isdn4bsd + honlapján</ulink>, ahol több hivatkozást is + találunk tippekre, hibajegyzékekre és + bõségesebb dokumentációra, + például <ulink + url="http://people.FreeBSD.org/~hm/">az isdn4bsd saját + kézikönyvére</ulink>.</para> + + <para>Ha szeretnénk egy másik ISDN protokoll + támogatásának + kifejlesztésében résztvenni, vagy egy + jelenleg még nem támogatott ISDN + kártyát használhatóvá tenni, + esetleg valamilyen más módon segíteni az + <application>isdn4bsd</application> ügyét, + vegyük fel a kapcsolatot &a.hm; fejlesztõvel.</para> + + <para>Az <application>isdn4bsd</application> + telepítésével, + beállításával és + hibaelhárításával kapcsolatos + kérdéseinket a &a.isdn.name; levelezési + listán tehetjük fel.</para> + + </sect2> + + <sect2> + <title>ISDN terminál adapterek</title> + + <para>Az ISDN számára olyanok a terminál + adapterek, mint a hagyományos telefonvonalak + számára a modemek.</para> + + <indexterm><primary>modem</primary></indexterm> + + <para>A legtöbb terminál adapter a Hayes-modemek + szabványos AT parancskészletét + használja, és könnyen be lehet iktatni egy + modem helyett.</para> + + <para>A terminál adapterek alapvetõen ugyanúgy + mûködnek, mint a modemek, kivéve, hogy egy + átlagos modemnél jóval nagyobb + adatátviteli sebességre képesek. + Ezért a <link linkend="ppp">PPP</link> kapcsolatunkat + pontosan ugyanúgy kell beállítani, mint a + modemek esetében. Ne felejtsük a soros pont + sebességét a maximális + értékre állítani.</para> + + <indexterm><primary>PPP</primary></indexterm> + + <para>A terminál adapterek használatának + egyik legnagyobb elõnye, hogy + segítségükkel dinamikus PPP-n keresztül + tudunk az internet-szolgáltatónkhoz + kapcsolódni. Mivel az IP-címtartomány + egyre inkább szûkösebb, a legtöbb + szolgáltató nem szívesen oszt ki + bárkinek is statikus IP-címet. A legtöbb + önálló útválasztó + azonban nem képes alkalmazkodni az IP-címek + dinamikus kiosztásához.</para> + + <para>A terminál adapter az elérhetõ + lehetõségeket és a kapcsolat + stabilitását tekintve teljesen a PPP + démontól függ. Emiatt egy &os;-s + gépet könnyû modemrõl + átállítani az ISDN + használatára, ha már egyszer + beállítottuk a PPP démont. Ezzel + együtt azonban a PPP használata során + tapasztalt problémák ugyanúgy ismét + felmerülnek.</para> + + <para>Ha a maximális stabilitásra van + szükségünk, akkor a rendszermag <link + linkend="ppp">PPP</link> beállítását + használjuk, és ne a <link + linkend="userppp">felhasználói PPP + megoldást</link>.</para> + + <para>A &os; hivatalosan az alábbi terminál + adaptereket ismeri:</para> + + <itemizedlist> + <listitem> + <para>Motorola BitSurfer és + Bitsurfer Pro</para> + </listitem> + + <listitem> + <para>Adtran</para> + </listitem> + </itemizedlist> + + <para>Valószínûleg a többi terminál + adapterrel is képes együttmûködni, mivel a + terminál adapterek gyártói + általában igyekeznek a termékeiket a + szabványos modemes AT parancskészletével + kompatibilissá tenni.</para> + + <para>Az igazi probléma a külsõ terminál + adapterekkel adódik, mivel, akárcsak a modemek + esetében, egy nagyon jó soros + kártyát igényelnek.</para> + + <para>A soros eszközök + mûködésének részleteit valamint + az aszinkron és szinkron soros portok közti + különbségeket a <ulink + url="&url.articles.serial-uart;/index.html">&os; soros + hardverekrõl</ulink> szóló cikkében + olvashatjuk.</para> + + <para>A terminál adaptereken keresztül + elérhetõ sebességet a PC-kben + található szabványos (aszinkron) soros port + 115,2 Kb/mp-re korlátozza, még + 128 Kb/mp-es adatátvitelû kapcsolatok + esetében is. Az ISDN által nyújtott + 128 Kb/mp kihasználásához a + terminál adaptert egy szinkron soros + kártyával kell összekötnünk.</para> + + <para>Ne higyjük, hogy egy belsõ terminál adapter + megvásárlásával + megmenekülünk ettõl a gondtól. A + belsõ terminál adapterekbe egyszerûen csak egy + sima szabványos PC-s soros portot építettek + bele. Mindössze egy soros kábelt és egy + konnektort takarítunk meg velük.</para> + + <para>A terminál adapterhez csatlakozó szinkron + kártyák legalább olyan gyorsak, mint egy + önálló útválasztó, + és egy egyszerû 386-osra épülõ &os; + rendszerrel talán még rugalmasabban is + kezelhetõek.</para> + + <para>A terminál adapter plusz szinkron kártya + kontra önálló útválasztó + kérdése már + hitkérdéssé fajult, amirõl igen sokat + vitatkoztak szerte a levelezési listákon. A + teljes okfejtés elolvasásához az <ulink + url="&url.base;/search/index.html">archívum</ulink> + böngészését javasoljuk.</para> + + </sect2> + + <sect2> + <title>Önálló ISDN hálózati hidak + és útválasztók</title> + + <indexterm> + <primary>ISDN</primary> + <secondary>önálló hálózati + hidak és útválasztók</secondary> + </indexterm> + + <para>Az ISDN hidak vagy útválasztók nem + egészen a &os; vagy operációs rendszerek + területéhez tartoznak. Az + útválasztás és a + hálózatok hidak alapjainak a + számítógépes + hálózatokról szóló + szakirodalomban járhatunk utána.</para> + + <para>Ebben a szakaszban a hálózati híd + és az útválasztó + kifejezéseket egymás + szinonímájaként fogjuk + használni.</para> + + <para>Ahogy az olcsóbb ISDN + útválasztók és hidak árai + egyre jobban csökkennek, ezért egyre inkább + népszerûbbé válnak. Az ISDN + útválasztó egy apró doboz, amelyet + közvetlenül a helyi Ethernet + hálózatunkra tudunk csatlakoztatni, és a + többi útválasztóhoz vagy hídhoz + kapcsolódik. A benne található szoftverrel + képes kommunikálni a PPP vagy más + egyéb népszerû protokollokon + keresztül.</para> + + <para>Az útválasztó egy szabványos + terminál adapternél sokkal nagyobb + adatátvitelt tesz lehetõvé, mivel a teljes + szinkron ISDN kapcsolatot képes + kihasználni.</para> + + <para>Az ISDN útválasztókkal és + hidakkal kapcsolatban az egyik legnagyobb + problémát a különbözõ + gyártók közti eltérések + jelenthetik. Ha egy szolgáltatóhoz akarunk ezen a + módon csatlakozni, akkor érdemes elõzetesen + egyeztetni az igényeinket velük.</para> + + <para>Ha két helyi hálózati szegmenst akarunk + összekapcsolni, mint például az otthoni + és az irodai hálózatot, akkor ez a + megoldás jár a legkevesebb karbantartási + költséggel. Mivel ekkor mi magunk + vásároljuk a kapcsolat mind a két + oldalára a felszerelést, biztosak lehetünk + benne, hogy az így létrehozott + összekötettés mûködni fog.</para> + + <para>Például, ha egy otthon vagy a vállalat + egy fiókjánál levõ gépet + akarjuk összekötni az igazgatóság + hálózatával, akkor a következõ + felállást érdemes + követnünk:</para> + + <example> + <title>Egy otthoni vagy egy fiókbeli + hálózat</title> + + <indexterm><primary>10 Base 2</primary></indexterm> + + <para>A hálózat busz + topológiájú és 10 Base 2 + Ethernetet használ (<quote>thinnet</quote>). Ha + szükséges, akkor az + útválasztót egy AUI/10BT + adó-vevõvel csatlakoztassuk a + hálózati kábelre.</para> + + <mediaobject> + <imageobject> + <imagedata fileref="advanced-networking/isdn-bus"> + </imageobject> + + <textobject> + <literallayout class="monospaced">---Sun munkaállomás +| +---&os; +| +---Windows 95 +| +az önálló útválasztó + | +ISDN BRI vonal</literallayout> + </textobject> + + <textobject> + <phrase>10 Base 2 Ethernet</phrase> + </textobject> + </mediaobject> + + <para>Ha az otthoni vagy fiókbeli + számítógép az egyedüli, akkor + egy keresztkötésû sodrott érpár + kábellel akár közvetlenül is + csatlakozhatunk az útválasztóhoz.</para> + </example> + + <example> + <title>Az igazgatósági iroda vagy egy másik + helyi hálózat</title> + + <indexterm><primary>10 Base T</primary></indexterm> + + <para>A hálózat csillag + topológiájú, és 10 Base T Ethernet + kábelezésû (<quote>sodrott + érpár</quote>).</para> + + <mediaobject> + <imageobject> + <imagedata fileref="advanced-networking/isdn-twisted-pair"> + </imageobject> + + <textobject> + <literallayout class="monospaced"> -------Novell szerver + | H | + | ---Sun + | | + | U ---&os; + | | + | ---Windows 95 + | B | + |___---az önálló útválasztó + | + ISDN BRI vonal</literallayout> + </textobject> + + <textobject> + <phrase>Az ISDN hálózat + felépítése</phrase> + </textobject> + </mediaobject> + </example> + + <para>A legtöbb útválasztó/híd + elõnye, hogy <emphasis>egyszerre</emphasis> 2 + <emphasis>egymástól független</emphasis> PPP + kapcsolatot tudunk felépíteni velük 2 + egymástól független géppel. Ezt a + legtöbb terminál adapter nem támogatja, + kivéve azok a (általában drága) + típusok, amelyek két soros porttal rendelkeznek. + Ezt ne tévesszük össze a csatornák + nyalábolásával, az MPP-vel és a + többivel.</para> + + <para>Ez nagyon hasznos lehet például olyan + esetekben, amikor van egy dedikált ISDN kapcsolatunk az + irodában, amelyet ugyan szeretnénk megcsapolni, de + nem szeretnénk a másik ISDN vonalat is elrabolni. + Az irodában levõ A útválasztó + képes a dedikált B csatornájú + kapcsolaton (64 Kb/mp) keresztül elérni az + internetet, miközben a másik B csatornát + ettõl független adatkapcsolatra használja. A + második B csatorna így használható + betárcsázásra, + kitárcsázásra vagy a másik B + csatornával együtt dinamikus + nyalábolásra (MPP stb.) a nagyobb + sávszélesség elérése + érdekében.</para> + + <indexterm><primary>IPX/SPX</primary></indexterm> + + <para>Az Ethernetes híd nem IP alapú forgalmat is + képes továbbítani, ezért rajta + keresztül akár IPX vagy SPX és más + egyéb protokollokat is használni tudunk.</para> + + </sect2> + </sect1> + + <sect1 id="network-natd"> + <sect1info> + <authorgroup> + <author> + <firstname>Chern</firstname> + <surname>Lee</surname> + <contrib>Írta: </contrib> + </author> + </authorgroup> + </sect1info> + + <title>Hálózati + címfordítás</title> + + <sect2 id="network-natoverview"> + <title>Áttekintés</title> + + <indexterm><primary><application>natd</application></primary></indexterm> + + <para>A &os; hálózati + címfordításért felelõs + démonprogramja, a &man.natd.8; (Network Address + Translation daemon), a beérkezõ nyers IP csomagokat + dolgozza fel, és a helyi gépek + forráscímét kicserélve + visszailleszti ezeket a csomagokat a kimenõ folyamba. A + &man.natd.8; mindezt úgy teszi a forrás + IP-címekkel és portokkal, hogy amikor az adat + visszaérkezik, akkor képes lesz megmondani a + csomag eredeti küldõjét és + visszaküldeni neki a választ.</para> + + <indexterm><primary>internet-kapcsolat + megosztása</primary></indexterm> + <indexterm><primary>NAT</primary></indexterm> + + <para>A hálózati címfordítást + általában az internet-kapcsolatok + megosztásánál alkalmazzuk.</para> + + </sect2> + + <sect2 id="network-natsetup"> + <title>A hálózat + felépítése</title> + + <para>Az IPv4 világában egyre jobban fogyó + IP-címek és az egyre növekvõ + számú, nagysebességre vágyó, + például kábeles vagy DSL-es + fogyasztók miatt az igény is egyre nagyobb az + internet-kapcsolatok megosztására. Ha több + számítógéppel szeretnénk + egyetlen kapcsolaton és egy IP-címen + keresztül kapcsolódni az internetre, akkor ehhez a + &man.natd.8; tökéletes + választás.</para> + + <para>Az esetek többségében a + felhasználók egy kábeles vagy DSL vonalra + csatlakoznak, melyhez egyetlen IP-cím tartozik, és + ezen a gépen keresztül szeretnék + elérni az internetet a helyi hálózaton + levõ többi géprõl.</para> + + <para>Ezt úgy tudjuk elérni, ha az internethez + kapcsolódó &os;-s gépet + átjárónak állítjuk be. Ebben + az átjáróban legalább két + hálózati felületnek kell léteznie + — az egyikkel az internetes + útválasztóhoz, a másikkal pedig a + helyi hálózathoz kapcsolódik. A belsõ + hálózaton levõ gépek egy hub vagy egy + switch segítségével csatlakoznak + egymáshoz.</para> + + <note> + <para>Több módon is el tudjuk érni a + belsõ hálózatról az internetet egy + &os;-s átjárón keresztül. Ebben a + példában most csak olyan + átjárókkal foglalkozunk, amelyekben + legalább két hálózati + kártya található.</para> + </note> + + <mediaobject> + <imageobject> + <imagedata fileref="advanced-networking/natd"> + </imageobject> + + <textobject> + <literallayout class="monospaced"> _______ __________ ________ + | | | | | | + | Hub |-----| B kliens |-----| Útvál. |----- Internet + |_______| |__________| |________| + | + ____|_____ +| | +| A kliens | +|__________|</literallayout> + </textobject> + + <textobject> + <phrase>A hálózat felosztása</phrase> + </textobject> + </mediaobject> + + <para>Egy ehhez hasonló beállítás igen + gyakori a megosztott internet-kapcsolatok esetében. A + helyi hálózat egyik gépe csatlakozik az + internetre. A többi gép ezen az + <quote>átjárón</quote> keresztül + éri el az internetet.</para> + + </sect2> + + <sect2 id="network-natdkernconfiguration"> + + <indexterm> + <primary>rendszermag</primary> + <secondary>beállítása</secondary> + </indexterm> + + <title>Beállítás</title> + + <para>A rendszermag beállításait + tartalmazó állományban a + következõ beállításokat kell + megadnunk:</para> + + <programlisting>options IPFIREWALL +options IPDIVERT</programlisting> + + <para>A fentiek mellett még ezeket a + lehetõségeket tudjuk választani:</para> + + <programlisting>options IPFIREWALL_DEFAULT_TO_ACCEPT +options IPFIREWALL_VERBOSE</programlisting> + + <para>A következõnek kell az + <filename>/etc/rc.conf</filename> állományban + lennie:</para> + + <programlisting>gateway_enable="YES" <co id="co-natd-gateway-enable"> +firewall_enable="YES" <co id="co-natd-firewall-enable"> +firewall_type="OPEN" <co id="co-natd-firewall-type"> +natd_enable="YES" +natd_interface="<replaceable>fxp0</replaceable>" <co id="co-natd-natd-interface"> +natd_flags="" <co id="co-natd-natd-flags"></programlisting> + + <calloutlist> + <callout arearefs="co-natd-gateway-enable"> + <para>A gépet átjárónak + állítja be. Hatása megegyezik a + <command>sysctl net.inet.ip.forwarding=1</command> parancs + kiadásával.</para> + </callout> + + <callout arearefs="co-natd-firewall-enable"> + <para>A rendszer indításakor engedélyezi + az <filename>/etc/rc.firewall</filename> + állományban szereplõ + tûzfalszabályok + használatát.</para> + </callout> + + <callout arearefs="co-natd-firewall-type"> + <para>Egy olyan elõre definiált tûzfalat ad + meg, amely alapból mindent beenged. Az + <filename>/etc/rc.firewall</filename> + állományban találhatjuk a többi + típust.</para> + </callout> + + <callout arearefs="co-natd-natd-interface"> + <para>Megadja, hogy melyik felületen + továbbítsunk csomagokat az internet + felé (ez a felület csatlakozik az + internetre).</para> + </callout> + + <callout arearefs="co-natd-natd-flags"> + <para>Itt szerepel minden további paraméter, + amelyet még az indításkor át + kell adnunk a &man.natd.8; démonnak.</para> + </callout> + </calloutlist> + + <para>Amikor megadjuk ezeket a beállításokat + az <filename>/etc/rc.conf</filename> állományban, + pontosan ugyanaz történik, mintha a <command>natd + -interface fxp0</command> parancsot adtunk volna ki a rendszer + indításakor. Ez tehát manuálisan is + elindítható.</para> + + <note> + <para>Ha túlságosan sok paramétert akarunk + egyszerre beállítani &man.natd.8; + használatához, akkor akár egy + külön konfigurációs + állományt is megadhatunk. Ebben az esetben a + konfigurációs állományt a + következõ módon kell megjelölni az + <filename>/etc/rc.conf</filename> + állományban:</para> + + <programlisting>natd_flags="-f /etc/natd.conf"</programlisting> + + <para>Ekkor a <filename>/etc/natd.conf</filename> + állomány fogja tartalmazni a + beállításokat, soronként egyet. + Például a következõ szakaszban ez lesz + a tartalma:</para> + + <programlisting>redirect_port tcp 192.168.0.2:6667 6667 +redirect_port tcp 192.168.0.3:80 80</programlisting> + + <para>A konfigurációs + állományról és az + <option>-f</option> opció használatával + kapcsolatban olvassuk el a &man.natd.8; man + oldalát.</para> + </note> + + <para>A helyi hálózaton mindegyik gépnek az + <ulink + url="ftp://ftp.isi.edu/in-notes/rfc1918.txt">RFC 1918</ulink> + által megadott privát IP-címterekbõl + származó címet kell használnia, + és az alapértelmezett + átjárónak mindenhol a + <application>natd</application> démont futtató + gép IP-címét kell megadni.</para> + + <para>Például a belsõ hálózaton + található <hostid>A</hostid> és + <hostid>B</hostid> kliensek IP-címei rendre <hostid + role="ipaddr">192.168.0.2</hostid> és <hostid + role="ipaddr">192.168.0.3</hostid>, míg a &man.natd.8; + démont futtató gép belsõ címe + <hostid role="ipaddr">192.168.0.1</hostid>. Az + <hostid>A</hostid> és a <hostid>B</hostid> kliens + alapértelmezett átjáróját a + <application>natd</application> gépre, vagyis a <hostid + role="ipaddr">192.168.0.1</hostid> címre kell + beállítanunk. A <application>natd</application> + gép külsõ, avagy internetes felülete + semmilyen további módosítást nem + igényel a &man.natd.8; + mûködéséhez.</para> + + </sect2> + + <sect2 id="network-natdport-redirection"> + <title>A portok átirányítása</title> + + <para>A &man.natd.8; alkalmazásának + hátránya, hogy a belsõ + hálózatra csatlakozó kliensek az + internetrõl nem érhetõek el. Tehát a + helyi hálózat kliensei képesek + elérni a külvilágot, de az visszafelé + már nem igaz. Ez akkor jelent igazából + problémát, ha az egyik belsõ kliensen + szolgáltatásokat akarunk futtatni. A + probléma egyik egyszerû megoldása, ha a + <application>natd</application> használatával az + internet felõl egyszerûen + átirányítunk bizonyos portokat a + megfelelõ belsõ kliensre.</para> + + <para>Például tegyük fel, hogy az + <hostid>A</hostid> kliens egy IRC szervert, míg a + <hostid>B</hostid> kliens egy webszervert futtat. Ez akkor fog + mûködni, ha a szolgáltatásokhoz + tartozó 6667 (IRC) és 80 (web) portokat + átirányítjuk a hozzájuk + tartozó gépek felé.</para> + + <para>Ehhez a &man.natd.8; démonnak a + <option>-redirect_port</option> paramétert kell + átadni. A pontos felírás így + néz ki:</para> + + <programlisting> -redirect_port <replaceable>protokoll</replaceable> <replaceable>célIP</replaceable>:<replaceable>célPORT</replaceable>[-<replaceable>célPORT</replaceable>] + [<replaceable>külsõIP</replaceable>:]<replaceable>külsõPORT</replaceable>[-<replaceable>külsõPORT</replaceable>] + [<replaceable>távoliIP</replaceable>[:<replaceable>távoliPORT</replaceable>[-<replaceable>távoliPORT</replaceable>]]]</programlisting> + + <para>A fenti példában tehát ezt kell + megadnunk:</para> + + <programlisting> -redirect_port tcp 192.168.0.2:6667 6667 + -redirect_port tcp 192.168.0.3:80 80</programlisting> + + <para>Így az egyes külsõ <emphasis>tcp</emphasis> + portokat átirányítjuk a belsõ + hálózat gépei felé.</para> + + <para>A <option>-redirect_port</option> paraméternek + akár egész porttartományokat is + megadhatunk. Például a <replaceable>tcp + 192.168.0.2:2000-3000 2000-3000</replaceable> + megadásával az összes 2000-tõl 3000-ig + terjedõ port csatlakozását + leképezzük az <hostid>A</hostid> kliens 2000 + és 3000 közti portjaira.</para> + + <para>Ezek a beállítások a &man.natd.8; + közvetlen futtatásakor adhatóak meg, esetleg + az <filename>/etc/rc.conf</filename> állományban + az <literal>natd_flags=""</literal> opció keresztül, + vagy egy külön konfigurációs + állományban.</para> + + <para>A többi beállítási + lehetõséget a &man.natd.8; man oldalán + ismerhetjük meg.</para> + + </sect2> + + <sect2 id="network-natdaddress-redirection"> + <title>A címek + átirányítása</title> + + <indexterm><primary>címátirányítás</primary></indexterm> + + <para>A címek átirányítása + abban az esetben hasznos, amikor több IP-cím + áll rendelkezésünkre, de ezek egy + géphez tartoznak. Ilyenkor az &man.natd.8; képes + a belsõ hálózat egyes gépeihez + saját külsõ IP-címet rendelni. A + &man.natd.8; a belsõ hálózat kliensei + által küldött csomagokban kicseréli a + címüket a megfelelõ külsõ + IP-címmel, illetve az ezekre a címekre + érkezõ forgalmat továbbítja a + megfelelõ belsõ kliens irányába. Ezt a + megoldást statikus hálózati + címfordításnak is nevezzük. + Például a <hostid role="ipaddr">128.1.1.2</hostid> + és a <hostid role="ipaddr">128.1.1.3</hostid> + IP-címek a <application>natd</application> démont + futtató átjáróhoz tartoznak. A + <hostid role="ipaddr">128.1.1.1</hostid> cím + használható a <application>natd</application> + alapú átjáró külsõ + IP-címeként, miközben a <hostid + role="ipaddr">128.1.1.2</hostid> és a <hostid + role="ipaddr">128.1.1.3</hostid> címeket a belsõ + hálózaton elérhetõ <hostid>A</hostid> + és <hostid>B</hostid> kliensek felé + közvetítjük.</para> + + <para>A <option>-redirect_address</option> felírása + tehát a következõ:</para> + + <programlisting>-redirect_address <replaceable>helyiIP</replaceable> <replaceable>publikusIP</replaceable></programlisting> + + <informaltable frame="none" pgwide="1"> + <tgroup cols="2"> + <tbody> + <row> + <entry><replaceable>helyiIP</replaceable></entry> + <entry>A helyi hálózaton + található kliens saját + IP-címe.</entry> + </row> + <row> + <entry><replaceable>publikusIP</replaceable></entry> + <entry>A klienshez tartozó megfelelõ + külsõ IP-cím.</entry> + </row> + </tbody> + </tgroup> + </informaltable> + + <para>Az iménti példában a pontos + paraméterek ezek lesznek:</para> + + <programlisting>-redirect_address 192.168.0.2 128.1.1.2 +-redirect_address 192.168.0.3 128.1.1.3</programlisting> + + <para>A <option>-redirect_port</option> opcióhoz + hasonlóan ez is megadható az + <filename>/etc/rc.conf</filename> állományban az + <literal>natd_flags=""</literal> + beállításon keresztül vagy egy + külön konfigurációs + állományban. A címek + átirányításával nincs + szüksége a portok + átirányítására, mivel az + adott IP-címhez tartozó összes forgalmat + átirányítjuk.</para> + + <para>A <application>natd</application> démont + futtató gépen a külsõ IP-címeket + aktiválni kell és a külsõ + felületéhez kell rendelni. A &man.rc.conf.5; man + oldalon járhatunk utána, hogy mindezt hogyan is + tudjuk megcsinálni.</para> + + </sect2> + </sect1> + + <sect1 id="network-plip"> + <title>Párhuzamos vonali IP (PLIP)</title> + + <indexterm><primary>PLIP</primary></indexterm> + <indexterm> + <primary>párhuzamos vonali IP</primary> + <see>PLIP</see> + </indexterm> + + <para>A párhuzamos vonali IP (Parallel Line IP, PLIP) a + TCP/IP protokoll használatát valósítja + meg párhuzamos porton keresztül. Olyan gépek + számára lehet hasznos, amelyekben nincs + hálózati kártya, vagy esetleg + laptopoknál. Ebben a szakaszban a következõket + tárgyaljuk:</para> + + <itemizedlist> + <listitem> + <para>Párhuzamos (laplink) kábel + készítése</para> + </listitem> + + <listitem> + <para>Két számítógép + összekapcsolása a PLIP + segítségével</para> + </listitem> + </itemizedlist> + + <sect2 id="network-create-parallel-cable"> + <title>Párhuzamos kábel + készítése</title> + + <para>Párhuzamos kábelt a legtöbb + számítástechnikai boltban tudunk + vásárolni. Ha mégsem tudnánk sehol + sem beszerezni, vagy egyszerûen tudni szeretnénk, + hogyan lehet ilyet készíteni, akkor az + alábbi táblázatban láthatjuk, hogy + miként tudunk egy hétköznapi + nyomtatókábelt átalakítani a + céljainkra.</para> + + <table frame="none"> + <title>A párhuzamos kábel hálózati + használatra alkalmas bekötése</title> + + <tgroup cols="5"> + <thead> + <row> + <entry>A-név</entry> + <entry>A-vég</entry> + <entry>B-vég</entry> + <entry>Leírás</entry> + <entry>Post/Bit</entry> + </row> + </thead> + + <tbody> + <row> + <entry><literallayout>DATA0 +-ERROR</literallayout></entry> + <entry><literallayout>2 +15</literallayout></entry> + <entry><literallayout>15 +2</literallayout></entry> + <entry>Adat</entry> + <entry><literallayout>0/0x01 +1/0x08</literallayout></entry> + </row> + + <row> + <entry><literallayout>DATA1 ++SLCT</literallayout></entry> + <entry><literallayout>3 +13</literallayout></entry> + <entry><literallayout>13 +3</literallayout></entry> + <entry>Adat</entry> + <entry><literallayout>0/0x02 +1/0x10</literallayout></entry> + </row> + + <row> + <entry><literallayout>DATA2 ++PE</literallayout></entry> + <entry><literallayout>4 +12</literallayout></entry> + <entry><literallayout>12 +4</literallayout></entry> + <entry>Adat</entry> + <entry><literallayout>0/0x04 +1/0x20</literallayout></entry> + </row> + + <row> + <entry><literallayout>DATA3 +-ACK</literallayout></entry> + <entry><literallayout>5 +10</literallayout></entry> + <entry><literallayout>10 +5</literallayout></entry> + <entry>Vál. imp.</entry> + <entry><literallayout>0/0x08 +1/0x40</literallayout></entry> + </row> + + <row> + <entry><literallayout>DATA4 +BUSY</literallayout></entry> + <entry><literallayout>6 +11</literallayout></entry> + <entry><literallayout>11 +6</literallayout></entry> + <entry>Adat</entry> + <entry><literallayout>0/0x10 +1/0x80</literallayout></entry> + </row> + + <row> + <entry>GND</entry> + <entry>18-25</entry> + <entry>18-25</entry> + <entry>Föld</entry> + <entry>-</entry> + </row> + </tbody> + </tgroup> + </table> + </sect2> + + <sect2 id="network-plip-setup"> + <title>A PLIP beállítása</title> + + <para>Elõször is szereznünk kell valahonnan egy + laplink kábelt. Ha ez megvan, akkor mind a két + gépen ellenõrizzük, hogy a rendszermag + tartalmazza az &man.lpt.4; meghajtót:</para> + + <screen>&prompt.root; <userinput>grep lp /var/run/dmesg.boot</userinput> +lpt0: <Printer> on ppbus0 +lpt0: Interrupt-driven port</screen> + + <para>A párhuzamos portnak megszakítással + vezéreltnek kell lennie (<quote>interrupt driven</quote>), + és az <filename>/boot/device.hints</filename> + állományban szerepelnie kell + nagyjából a következõ soroknak:</para> + + <programlisting>hint.ppc.0.at="isa" +hint.ppc.0.irq="7"</programlisting> + + <para>Ezután nézzük meg, hogy a rendszermag + beállításait tartalmazó + állományban megjelenik-e a <literal>device + plip</literal> sor, vagy a <filename>plip.ko</filename> modul + betöltõdött-e. Akármelyik is + történt, a párhuzamos hálózati + felület most már a rendelkezésünkre + áll, és az &man.ifconfig.8; paranccsal ezt meg is + tudjuk nézni:</para> + + <screen>&prompt.root; <userinput>ifconfig plip0</userinput> +plip0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500</screen> + + <para>A laplink kábelt csatlakoztassuk mind a két + számítógéphez.</para> + + <para>Mind a két a hálózati felület + paramétereit <username>root</username> + felhasználóként hangoljuk be. + Például, ha az + <hostid><replaceable>egyikgép</replaceable></hostid> + nevû gépet akarjuk a + <hostid><replaceable>másikgép</replaceable></hostid> + nevû géphez csatlakoztatni:</para> + + <programlisting> <replaceable>egyikgép</replaceable> <-----> <replaceable>másikgép</replaceable> +IP-cím 10.0.0.1 10.0.0.2</programlisting> + + <para>Az + <hostid><replaceable>egyikgép</replaceable></hostid> + felületét így állítsuk be:</para> + + <screen>&prompt.root; <userinput>ifconfig plip0 10.0.0.1 10.0.0.2</userinput></screen> + + <para>A + <hostid><replaceable>másikgép</replaceable></hostid> + felületét így állítsuk be:</para> + + <screen>&prompt.root; <userinput>ifconfig plip0 10.0.0.2 10.0.0.1</userinput></screen> + + <para>Ezt követõen már egy mûködõ + kapcsolatnak kell felépülnie. Az egyéb + részletek kapcsán az &man.lp.4; és az + &man.lpt.4; man oldalait nézzük át.</para> + + <para>Ezt a két gépet vegyük fel az + <filename>/etc/hosts</filename> állományba + is:</para> + + <programlisting>127.0.0.1 <replaceable>localhost.saját.tartomány</replaceable> localhost +10.0.0.1 <replaceable>egyikgép.saját.tartomány egyikgép</replaceable> +10.0.0.2 <replaceable>másikgép.saját.tartomány</replaceable></programlisting> + + <para>A kapcsolat + mûködõképességérõl + úgy tudunk meggyõzõdni, ha az egyik + géprõl megpróbáljuk pingelni a + másikat. Például az + <hostid><replaceable>egyikgép</replaceable></hostid> + esetében:</para> + + <screen>&prompt.root; <userinput>ifconfig plip0</userinput> +plip0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1500 + inet 10.0.0.1 --> 10.0.0.2 netmask 0xff000000 +&prompt.root; <userinput>netstat -r</userinput> +Routing tables + +Internet: +Destination Gateway Flags Refs Use Netif Expire +<replaceable>másikgép</replaceable> <replaceable>egyikgép</replaceable> UH 0 0 plip0 +&prompt.root; <userinput>ping -c 4 <replaceable>másikgép</replaceable></userinput> +PING <replaceable>másikgép</replaceable> (10.0.0.2): 56 data bytes +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 +64 bytes from 10.0.0.2: icmp_seq=2 ttl=255 time=2.556 ms +64 bytes from 10.0.0.2: icmp_seq=3 ttl=255 time=2.714 ms + +--- <replaceable>másikgép</replaceable> ping statistics --- +4 packets transmitted, 4 packets received, 0% packet loss +round-trip min/avg/max/stddev = 2.530/2.643/2.774/0.103 ms</screen> + + </sect2> + </sect1> + + <sect1 id="network-ipv6"> + <sect1info> + <authorgroup> + <author> + <firstname>Aaron</firstname> + <surname>Kaplan</surname> + <contrib>Eredetileg írta: </contrib> + </author> + </authorgroup> + <authorgroup> + <author> + <firstname>Tom</firstname> + <surname>Rhodes</surname> + <contrib>Átszervezte és + kiegészítette: </contrib> + </author> + </authorgroup> + <authorgroup> + <author> + <firstname>Brad</firstname> + <surname>Davis</surname> + <contrib>Tovább bõvítette: </contrib> + </author> + </authorgroup> + + </sect1info> + + <title>Az IPv6</title> + + <para>Az IPv6 (másik néven az IPng, vagy a <quote>az + internet következõ generációs + protokollja</quote>, <quote>IP next generation</quote>) a + jól ismert IP protokoll (avagy az <acronym>IPv4</acronym>) + új változata. Hasonlóan a jelenleg + mûködõ összes többi BSD rendszerhez, a + &os; is tartalmazza a KAME IPv6 referencia + implementációt. Ezért ha ezzel + szeretnénk kísérletezni, akkor ehhez a &os; + minden eszköz biztosít számunkra. Ez a szakasz + az IPv6 beállítását és + használatát mutatja be.</para> + + <para>Az 1990-es évek elején az IPv4-es + címterek rohamos mértékû + kimerülését figyelték meg. Az internet + jelenlegi bõvülési üteme mellett két + nagyobb aggodalomnak adott okot:</para> + + <itemizedlist> + <listitem> + <para>A címek elfogyása. Napjainkban efelõl + egyre kevesebb a kétség, mivel az RFC 1918 + által megfogalmazott privát címterek + (<hostid role="ipaddr">10.0.0.0/8</hostid>, <hostid + role="ipaddr">172.16.0.0/12</hostid>, és <hostid + role="ipaddr">192.168.0.0/16</hostid>), valamint a + hálózati címfordítás + (Network Address Translation, <acronym>NAT</acronym>) + használata igen elterjedt.</para> + </listitem> + + <listitem> + <para>Az útválasztási + táblázatok méretének + növekedése. Ez még manapság is + aggasztó.</para> + </listitem> + </itemizedlist> + + <para>Az IPv6 ezeket és még más egyéb + problémákat a következõ módon + igyekszik megoldani:</para> + + <itemizedlist> + <listitem> + <para>A 128 bites címtér használata. + Más szóval, elméletben összesen + 340 282 366 920 938 463 463 374 607 431 768 211 456 + darab címet képes kiosztani. Ez azt jelenti, + hogy bolygónk minden egyes + négyzetméterére + megközelítõleg 6,67 * 10^27 IPv6 + típusú cím jut.</para> + </listitem> + + <listitem> + <para>Az útválasztók a saját + táblázataikban csak a hálózatok + összevont címeit tárolják el, + ezáltal egy átlagos + útválasztási táblázatban + található bejegyzések száma 8192 + alá csökken.</para> + </listitem> + </itemizedlist> + + <para>Az IPv6 emellett még rengeteg más + elõnyös lehetõséget is + kínál:</para> + + <itemizedlist> + <listitem> + <para>A címek automatikus beállítása + (lásd <ulink + url="http://www.ietf.org/rfc/rfc2462.txt">RFC 2462</ulink>)</para> + </listitem> + + <listitem> + <para>Bárkiküldés (anycast, vagyis <quote>egy + a sokból</quote>)</para> + </listitem> + + <listitem> + <para>Kötelezõ többesküldés + (mandatory multicast)</para> + </listitem> + + <listitem> + <para>IPsec (IP szintû védelem)</para> + </listitem> + + <listitem> + <para>Egyszerûsített fejléc</para> + </listitem> + + <listitem> + <para>Mobil <acronym>IP</acronym></para> + </listitem> + + <listitem> + <para>IPv6-IPv4 közti + átjárhatóság</para> + </listitem> + </itemizedlist> + + <para>Ha mindezekrõl többet szeretnénk megtudni, + akkor erre érdemes továbblépnünk:</para> + + <itemizedlist> + <listitem> + <para>Az IPv6 áttekintése a <ulink + url="http://playground.sun.com/pub/ipng/html/ipng-main.html">playground.sun.com</ulink> + honlapon</para> + </listitem> + + <listitem> + <para><ulink url="http://www.kame.net">KAME.net</ulink></para> + </listitem> + </itemizedlist> + + <sect2> + <title>Az IPv6 címek háttere</title> + + <para>Az IPv6 címeknek több típusa + létezik: az egyesküldés (unicast), a + bárkiküldés (anycast) és a + többesküldés (multicast).</para> + + <para>Az egyesküldéshez használt címek + jól ismert címek. Az így + elküldött csomag pontosan ahhoz a felülethez + érkezik meg, amelyhez az adott cím + tartozik.</para> + + <para>A bárkiküldéshez használt + címek felírásukban tökéletesen + megegyeznek az egyesküldés esetével, de + valójában felületek egy csoportját + címezik. A bárkiküldésre + beállított címekre küldött + csomagok mindig a(z útválasztó szerinti) + legközelebb levõ felülethez érkeznek meg. + A bárkiküldést az + útválasztók számára + találták ki.</para> + + <para>A többesküldéshez használt + címek felületek egy csoportját nevezik meg. + A többküldésre beállított + címekre érkezõ csomagokat a csoport minden + egyes tagja megkapja.</para> + + <note> + <para>Az IPv4 esetében az + üzenetszórásra szánt + (általában az <hostid + role="ipaddr">xxx.xxx.xxx.255</hostid> + formátumú) címeket az IPv6 + esetében többküldést + megvalósító címekkel + fejezzük ki.</para> + </note> + + <table frame="none"> + <title>Fenntartott IPv6 címek</title> + + <tgroup cols="4"> + <thead> + <row> + <entry>IPv6 cím</entry> + <entry>Az elõtag hossza (bitekben)</entry> + <entry>Leírás</entry> + <entry>Megjegyzés</entry> + </row> + </thead> + + <tbody> + <row> + <entry><hostid role="ip6addr">::</hostid></entry> + <entry>128 bit</entry> + <entry>nem specifikált</entry> + <entry>Vö. a <hostid role="ipaddr">0.0.0.0</hostid> + címmel az IPv4 esetében.</entry> + </row> + + <row> + <entry><hostid role="ip6addr">::1</hostid></entry> + <entry>128 bit</entry> + <entry>saját cím</entry> + <entry>Vö. a <hostid + role="ipaddr">127.0.0.1</hostid> címmel az IPv4 + esetében.</entry> + </row> + + <row> + <entry><hostid + role="ip6addr">::00:xx:xx:xx:xx</hostid></entry> + <entry>96 bit</entry> + <entry>IPv4 beágyazása</entry> + <entry>Az alsó 32 bit egy IPv4 + formátumú cím. Ezt <quote>IPv4 + kompatibilis IPv6 címnek</quote> is + nevezik.</entry> + </row> + + <row> + <entry><hostid + role="ip6addr">::ff:xx:xx:xx:xx</hostid></entry> + <entry>96 bit</entry> + <entry>IPv4-re leképzett IPv6 címek</entry> + <entry>Az alsó 32 bit egy IPv4 címet + jelöl. Olyan gépeknél + használatos, amelyek nem támogatják + az IPv6 protokollt.</entry> + </row> + + <row> + <entry><hostid role="ip6addr">fe80::</hostid> - <hostid + role="ip6addr">feb::</hostid></entry> + <entry>10 bit</entry> + <entry>helyi összeköttetés</entry> + <entry>Vö. az IPv4 loopback címeivel.</entry> + </row> + + <row> + <entry><hostid role="ip6addr">fec0::</hostid> - <hostid + role="ip6addr">fef::</hostid></entry> + <entry>10 bit</entry> + <entry>helyi cím</entry> + <entry> </entry> + </row> + + <row> + <entry><hostid role="ip6addr">ff::</hostid></entry> + <entry>8 bit</entry> + <entry>többesküldés</entry> + <entry> </entry> + </row> + + <row> + <entry><hostid role="ip6addr">001</hostid> (2-es alapú)</entry> + <entry>3 bit</entry> + <entry>globális egyesküldés</entry> + <entry>Az összes globális + egyesküldéshez tartozó címet + ebbõl a tartományból osztjuk ki. Az + elsõ 3 bit + értéke<quote>001</quote>.</entry> + </row> + </tbody> + </tgroup> + </table> + </sect2> + + <sect2> + <title>Az IPv6 címek olvasása</title> + + <para>Az IPv6 címek kanonikus formája így + ábrázolható: <hostid + role="ip6addr">x:x:x:x:x:x:x:x</hostid>, ahol mindegyik + <quote>x</quote> egy 16 bites hexadecimális + érték. Például: <hostid + role="ip6addr">FEBC:A574:382B:23C1:AA49:4592:4EFE:9982</hostid>.</para> + + <para>Gyakran a címek hosszú nullákból + álló sorozatokat tartalmaznak, ezért + mindegyik ilyen sorozatot rövidíteni tudjuk a + <quote>::</quote> jelöléssel. Rajtuk + kívül még az egyes hexadecimális + csoportokban a bevezetõ nullák is + elhagyhatóak. Például az <hostid + role="ip6addr">fe80::1</hostid> cím kanonikus + formája: <hostid + role="ip6addr">fe80:0000:0000:0000:0000:0000:0000:0001</hostid>.</para> + + <para>A harmadik forma szerint az utolsó 32 bites + részt írjuk fel a megszokott (decimális) + IPv4 stílusú pontozással, ahol tehát + a <quote>.</quote> választja el a tagokat. Így + például a <hostid + role="ip6addr">2002::10.0.0.1</hostid> felírás a + <hostid + role="ip6addr">2002:0000:0000:0000:0000:0000:0a00:0001</hostid> + kanonikus (hexadecimális) + ábrázolásnak feleltethetõ meg, ami + pedig egyszerûen <hostid + role="ip6addr">2002::a00:1</hostid> alakban is + megadható.</para> + + <para>Mostanra már minden bizonnyal a kedves olvasó + érteni fogja a következõt:</para> + + <screen>&prompt.root; <userinput>ifconfig</userinput></screen> + + <programlisting>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</programlisting> + + <para>A <hostid + role="ip6addr">fe80::200:21ff:fe03:8e1%rl0</hostid> cím + az automatikusan beállított helyi + összeköttetés címe. Ez az automatikus + beállítás részeként a + MAC-címbõl jött létre.</para> + + <para>Az IPv6 címek szerkezetérõl + további részleteket az <ulink + url="http://www.ietf.org/rfc/rfc3513.txt">RFC 3513</ulink>-ban + találunk.</para> + + </sect2> + + <sect2> + <title>Kapcsolódás</title> + + <para>Jelenleg négy módon tudunk más IPv6-os + géphez és hálózathoz + csatlakozni:</para> + + <itemizedlist> + <listitem> + <para>Kérjünk a hálózati + elérésünkért felelõs + illetékesektõl IPv6 alapú + hálózatot. A részletek + tekintetében vegyük fel a kapcsolatot az + internet-szolgáltatónkkal.</para> + </listitem> + + <listitem> + <para>A <ulink url="http://www.sixxs.net">SixXS</ulink> a + világ minden táján kínál + végpontokkal rendelkezõ tunneleket.</para> + </listitem> + + <listitem> + <para>Egy 6-ból-4 (<ulink + url="http://www.ietf.org/rfc/rfc3068.txt">RFC 3068</ulink>) + típusú tunnellel.</para> + </listitem> + + <listitem> + <para>Ha betárcsázós kapcsolatunk van, + akkor használjuk a <filename + role="package">net/freenet6</filename> portot.</para> + </listitem> + </itemizedlist> + + </sect2> + + <sect2> + <title>A nevek feloldása az IPv6 + világában</title> + + <para>IPv6 alatt régebben két típusa volt a + nevek feloldásáért felelõs + rekordoknak. Az IETF az A6 rekordokat idõközben + elavultnak nyilvánította. Ezért + manapság már az AAAA rekordok tekinthetõek + szabványosnak.</para> + + <para>Az AAAA rekordok használata magától + értetõdik. A hálózati + nevükhöz az alábbi módon tudunk IPv6 + címet rendelni az elsõdleges zónát + leíró állományban:</para> + + <programlisting><replaceable>SAJÁTNÉV</replaceable> AAAA <replaceable>SAJÁTIPv6CÍM</replaceable></programlisting> + + <para>Ha nem rendelkezünk saját + névfeloldási zónával, akkor erre + kérjük meg a névfeloldást + végzõ szolgáltatónkat. A + <application>bind</application> jelenlegi változatai (8.3 + és 9), valamint a <filename + role="package">dns/djbdns</filename> (IPv6 + támogatására vonatkozó + javítással) támogatják az AAAA + rekordokat.</para> + + </sect2> + + <sect2> + <title>Az <filename>/etc/rc.conf</filename> szükséges + módosításai</title> + + <sect3> + <title>Az IPv6 kliensek beállításai</title> + + <para>Ezek a beállítások egy helyi + hálózaton levõ gépre vonatkoznak, + nem pedig egy útválasztóra. Az + &man.rtsol.8; az alábbi megadásával fogja + automatikusan beállítani a felületeinket a + rendszer indításakor:</para> + + <programlisting>ipv6_enable="YES"</programlisting> + + <para>Ha az <devicename>fxp0</devicename> felülethez + statikusan akarunk IP-címet rendelni, + például a <hostid role="ip6addr"> + 2001:471:1f11:251:290:27ff:fee0:2093</hostid> címet, + akkor ehhez a következõt kell megadni:</para> + + <programlisting>ipv6_ifconfig_fxp0="2001:471:1f11:251:290:27ff:fee0:2093"</programlisting> + + <para>Az <filename>/etc/rc.conf</filename> + állományban az alapértelmezett + átjárót a következõ + módon tudjuk a <hostid + role="ip6addr">2001:471:1f11:251::1</hostid> címre + beállítani:</para> + + <programlisting>ipv6_defaultrouter="2001:471:1f11:251::1"</programlisting> + + </sect3> + + <sect3> + <title>Az IPv6 útválasztók és + átjárók + beállítása</title> + + <para>Itt most a tunnelt biztosító + szolgáltató által mutatott irányt + követjük, és olyan formára + alakítjuk, amely megmarad az + újraindítás után is. A rendszer + indításakor az <filename>/etc/rc.conf</filename> + állományban valami ilyesmit kell megadni a + járat + visszaállításához:</para> + + <para>Soroljuk fel a beállítandó + általános tunnel alapú felületeket, + ilyen lehet például a + <devicename>gif0</devicename>:</para> + + <programlisting>gif_interfaces="gif0"</programlisting> + + <para>A felületnek állítsunk be egy helyi + végpontot a + <replaceable>SAJÁT_IPv4_CÍM</replaceable> + megadásával, valamint egy távoli + végpontot a + <replaceable>TÁVOLI_IPv4_CÍM</replaceable> + megadásával:</para> + + <programlisting>gifconfig_gif0="<replaceable>SAJÁT_IPv4_CÍM TÁVOLI_IPv4_CÍM</replaceable>"</programlisting> + + <para>Az IPv6 tunnelünk végpontjához kapott + cím aktiválásához az + alábbit kell még megadnunk:</para> + + <programlisting>ipv6_ifconfig_gif0="<replaceable>SAJÁT_KAPOTT_IPv6_TUNNEL_VÉGPONTJÁNAK_CÍME</replaceable>"</programlisting> + + <para>Ezután már csak az alapértelmezett + útvonalat kell beállítani az IPv6 + számára. Ez az IPv6 járat másik + oldala:</para> + + <programlisting>ipv6_defaultrouter="<replaceable>SAJÁT_IPv6_TÁVOLI_TUNNEL_VÉGPONTJÁNAK_CÍME</replaceable>"</programlisting> + + </sect3> + + <sect3> + <title>Az IPv6 tunnel beállításai</title> + + <para>Amennyiben a szerver IPv6 alapú forgalmat + közvetít a hálózatunk és a + világ között, az + <filename>/etc/rc.conf</filename> állományba a + következõt kell felvennünk:</para> + + <programlisting>ipv6_gateway_enable="YES"</programlisting> + + </sect3> + </sect2> + + <sect2> + <title>Az útválasztók kihirdetése + és automatikus konfigurációja</title> + + <para>Ebben a szakaszban az &man.rtadvd.8; + beállításával fogjuk az + alapértelmezett IPv6 útvonalat kihirdetni.</para> + + <para>Az &man.rtadvd.8; engedélyezéséhez az + alábbi sort kell betennünk az + <filename>/etc/rc.conf</filename> + állományba:</para> + + <programlisting>rtadvd_enable="YES"</programlisting> + + <para>Emellett még fontos megadnunk azt a felületet, + ahol az IPv6 útválasztó + kérelmezését végezzük. Ha erre + a feladatra például az + <devicename>fxp0</devicename> felületet választjuk, + akkor errõl az &man.rtadvd.8; így + értesíthetõ:</para> + + <programlisting>rtadvd_interfaces="fxp0"</programlisting> + + <para>Most pedig készítenünk kell hozzá + egy konfigurációt is, vagyis az + <filename>/etc/rtadvd.conf</filename> állományt. + Íme erre egy példa:</para> + + <programlisting>fxp0:\ + :addrs#1:addr="2001:471:1f11:246::":prefixlen#64:tc=ether:</programlisting> + + <para>Az <devicename>fxp0</devicename> felületet + természetesen cseréljük ki a + sajátunkkal.</para> + + <para>Ezután a <hostid + role="ip6addr">2001:471:1f11:246::</hostid> címre + helyére írjuk be a saját kiosztásunk + elõtagját.</para> + + <para>Egy egész <hostid role="netmask">/64</hostid> + alhálózat esetén nem is kell többet + megadni. Minden más helyezetben az elõtag + hosszára <literal>prefixlen#</literal> vonatkozó + értéket is be kell még + állítanunk.</para> + + </sect2> + </sect1> + + <sect1 id="network-atm"> + <sect1info> + <authorgroup> + <author> + <firstname>Harti</firstname> + <surname>Brandt</surname> + <contrib>Készítette: </contrib> + </author> + </authorgroup> + </sect1info> + + <title>Az Aszinkron adatátviteli mód (ATM)</title> + + <sect2> + <title>A klasszikus IP-címek + beállítása ATM felett + (állandó)</title> + + <para>A klasszikus IP ATM felett (Classical IP over ATM, + <acronym>CLIP</acronym>) a legegyszerûbb módszer az + IP-címek használatára az Aszinkron + adatátviteli móddal (Asynchronous Transfer Mode, + ATM) együtt. Kapcsolt és állandó + kapcsolatok (Switched Virtual Channel, SVC és Permanent + Virtual Channel, PVC) esetén egyaránt + megfelelõ. Ebben a szakaszban ez utóbbival fogunk + foglalkozni.</para> + + <sect3> + <title>A teljesen hálószerû + konfigurációk</title> + + <para>A <acronym>CLIP</acronym> + beállítását állandó + csatornákon például úgy tudjuk + megoldani, ha az összes gépet külön + ezekre a célokra szánt állandó + csatornákkal összekapcsoljuk egymással. Ez + az egyszerû megoldás azonban nagyobb + számú gép esetében már nem + eléggé hatékony. A következõ + példában csupán négy gépet + kötünk hálózatba, melyik mindegyike + egy <acronym role="Asynchronous Transfer Mode">ATM</acronym> + kártyával csatlakozik az <acronym + role="Asynchronous Transfer Mode">ATM</acronym> + hálózatra. Ehhez elsõként + tervezzük meg az IP-címek kiosztását + és a gépek közti <acronym + role="Asynchronous Transfer Mode">ATM</acronym> kapcsolatokat. + A példában ez az alábbiak szerint + alakul:</para> + + <informaltable frame="none" pgwide="1"> + <tgroup cols="2"> + <colspec colwidth="1*"> + <colspec colwidth="1*"> + <thead> + <row> + <entry>Gép</entry> + <entry>IP-cím</entry> + </row> + </thead> + + <tbody> + <row> + <entry><hostid>A-gep</hostid></entry> + <entry><hostid + role="ipaddr">192.168.173.1</hostid></entry> + </row> + + <row> + <entry><hostid>B-gep</hostid></entry> + <entry><hostid + role="ipaddr">192.168.173.2</hostid></entry> + </row> + + <row> + <entry><hostid>C-gep</hostid></entry> + <entry><hostid + role="ipaddr">192.168.173.3</hostid></entry> + </row> + + <row> + <entry><hostid>D-gep</hostid></entry> + <entry><hostid + role="ipaddr">192.168.173.4</hostid></entry> + </row> + </tbody> + </tgroup> + </informaltable> + + <para>A teljes hálózat + felépítéséhez minden egyes + pár között egy-egy ATM kapcsolatra lesz + szükségünk:</para> + + <informaltable frame="none" pgwide="1"> + <tgroup cols="2"> + <colspec colwidth="1*"> + <colspec colwidth="1*"> + <thead> + <row> + <entry>Gépek</entry> + <entry>VPI.VCI pár</entry> + </row> + </thead> + + <tbody> + <row> + <entry><hostid>A-gep</hostid> - + <hostid>B-gep</hostid></entry> + <entry>0.100</entry> + </row> + + <row> + <entry><hostid>A-gep</hostid> - + <hostid>C-gep</hostid></entry> + <entry>0.101</entry> + </row> + + <row> + <entry><hostid>A-gep</hostid> - + <hostid>D-gep</hostid></entry> + <entry>0.102</entry> + </row> + + <row> + <entry><hostid>B-gep</hostid> - + <hostid>C-gep</hostid></entry> + <entry>0.103</entry> + </row> + + <row> + <entry><hostid>B-gep</hostid> - + <hostid>D-gep</hostid></entry> + <entry>0.104</entry> + </row> + + <row> + <entry><hostid>C-gep</hostid> - + <hostid>D-gep</hostid></entry> + <entry>0.105</entry> + </row> + </tbody> + </tgroup> + </informaltable> + + <para>A kapcsolatok egyes végein szereplõ VPI + és VCI értékek természetesen + eltérhetnek, de ezeket mi most az + egyszerûség kedvéért egyenlõnek + tekintettük. A következõ + lépésben minden gépen + állítsuk be az ATM felület:</para> + + <screen>A-gep&prompt.root; <userinput>ifconfig hatm0 192.168.173.1 up</userinput> +B-gep&prompt.root; <userinput>ifconfig hatm0 192.168.173.2 up</userinput> +C-gep&prompt.root; <userinput>ifconfig hatm0 192.168.173.3 up</userinput> +D-gep&prompt.root; <userinput>ifconfig hatm0 192.168.173.4 up</userinput></screen> + + <para>Ha feltételezzük, hogy minden gépen a + <devicename>hatm0</devicename> az ATM felület neve. Most + pedig az <hostid>A-gep</hostid>-en állítsuk be + az állandó csatornákat. (Itt most + feltesszük, hogy az ATM switch-eken mindezt már + elvégeztük. A switch + kézikönyvében errõl + részletesebb leírást is + találhatunk.)</para> + + <screen>A-gep&prompt.root; <userinput>atmconfig natm add 192.168.173.2 hatm0 0 100 llc/snap ubr</userinput> +A-gep&prompt.root; <userinput>atmconfig natm add 192.168.173.3 hatm0 0 101 llc/snap ubr</userinput> +A-gep&prompt.root; <userinput>atmconfig natm add 192.168.173.4 hatm0 0 102 llc/snap ubr</userinput> + +B-gep&prompt.root; <userinput>atmconfig natm add 192.168.173.1 hatm0 0 100 llc/snap ubr</userinput> +B-gep&prompt.root; <userinput>atmconfig natm add 192.168.173.3 hatm0 0 103 llc/snap ubr</userinput> +B-gep&prompt.root; <userinput>atmconfig natm add 192.168.173.4 hatm0 0 104 llc/snap ubr</userinput> + +C-gep&prompt.root; <userinput>atmconfig natm add 192.168.173.1 hatm0 0 101 llc/snap ubr</userinput> +C-gep&prompt.root; <userinput>atmconfig natm add 192.168.173.2 hatm0 0 103 llc/snap ubr</userinput> +C-gep&prompt.root; <userinput>atmconfig natm add 192.168.173.4 hatm0 0 105 llc/snap ubr</userinput> + +D-gep&prompt.root; <userinput>atmconfig natm add 192.168.173.1 hatm0 0 102 llc/snap ubr</userinput> +D-gep&prompt.root; <userinput>atmconfig natm add 192.168.173.2 hatm0 0 104 llc/snap ubr</userinput> +D-gep&prompt.root; <userinput>atmconfig natm add 192.168.173.3 hatm0 0 105 llc/snap ubr</userinput></screen> + + <para>Természetesen nem csak UBR + használható, hanem minden más olyan + forgalmazási beállítás, amit az + ATM kártyáink ismernek. Itt most a forgalmi + beállítás nevét a + hozzátartozó konkrét paraméterek + követik. Az &man.atmconfig.8; segédprogram + használatához így kérhetünk + segítséget:</para> + + <screen>&prompt.root; <userinput>atmconfig help natm add</userinput></screen> + + <para>Olvassuk el az &man.atmconfig.8; man + oldalát.</para> + + <para>Ugyanez a beállítás az + <filename>/etc/rc.conf</filename> állomány + használatával is elvégezhetõ. Az + <hostid>A-gep</hostid> esetében mindez így + nézne ki:</para> + + <programlisting>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"</programlisting> + + <para>A <acronym>CLIP</acronym> útvonalak pillanatnyi + állapota így kérdezhetõ le:</para> + + <screen>A-gep&prompt.root; <userinput>atmconfig natm show</userinput></screen> + + </sect3> + </sect2> + </sect1> + + <sect1 id="carp"> + <sect1info> + <authorgroup> + <author> + <firstname>Tom</firstname> + <surname>Rhodes</surname> + <contrib>Írta: </contrib> + </author> + </authorgroup> + </sect1info> + + <title>A Közös cím redundancia protokoll + (CARP)</title> + + <indexterm><primary>CARP</primary></indexterm> + <indexterm><primary>Közös cím redundancia + protokoll</primary></indexterm> + + <para>A Közös cím redundancia protokoll (Common + Access Redundancy Protocol, avagy <acronym>CARP</acronym>) + segítségével több gép + képes egyazon <acronym>IP</acronym>-címen osztozni. + Bizonyos konfigurációkban ez a terhelés + elosztására + (terhelés-kiegyenlítésre) vagy a + rendelkezésre állás + növelésére (hibatûrésre) + alkalmazható. A benne szereplõ gépek + akár eltérõ <acronym>IP</acronym>-címmel + is rendelkezhetnek, ahogy azt majd a példában is + láthatjuk.</para> + + <para>A <acronym>CARP</acronym> támogatásának + engedélyezéséhez a &os; rendszermagját + a következõ beállítással kell + újrafordítanunk:</para> + + <programlisting>device carp</programlisting> + + <para>A <acronym>CARP</acronym> által biztosított + lehetõségek ezután már + elérhetõek, és számos + <command>sysctl</command> változón keresztül + állíthatóak:</para> + + <informaltable frame="none" pgwide="1"> + <tgroup cols="2"> + <thead> + <row> + <entry>Változó</entry> + <entry>Leírás</entry> + </row> + </thead> + + <tbody> + <row> + <entry><varname>net.inet.carp.allow</varname></entry> + <entry>A beérkezõ <acronym>CARP</acronym> + csomagok elfogadása. Alapértelmezés + szerint engedélyezett.</entry> + </row> + + <row> + <entry><varname>net.inet.carp.preempt</varname></entry> + <entry>Ezzel a beállítással az adott + gépen az összes <acronym>CARP</acronym> + felület leáll, ha közülük + bármelyik is + mûködésképtelenné + válik. Alapértelmezés szerint + tiltott.</entry> + </row> + + <row> + <entry><varname>net.inet.carp.log</varname></entry> + <entry>A <literal>0</literal> értékkel + kikapcsoljuk a naplózást. Az + <literal>1</literal> értékkel a rossz + <acronym>CARP</acronym> csomagok + naplózását engedélyezzük. + Az ettõl nagyobb értékek esetén + pedig a <acronym>CARP</acronym> felületek + változásait naplózzuk. Az + alapértelmezett értéke az + <literal>1</literal>.</entry> + </row> + + <row> + <entry><varname>net.inet.carp.arpbalance</varname></entry> + <entry>Az <acronym>ARP</acronym> protokoll + segítségével próbálja + meg a helyi hálózati forgalmat + mentesíteni a terheléstõl. + Alapértelmezés szerint tiltott.</entry> + </row> + + <row> + <entry><varname>net.inet.carp.suppress_preempt</varname></entry> + <entry>Ez a változó + írásvédett, és a + megszakítás elnyomásának + állapotát mutatja. A + megszakítás elnyomható, ha a + felület egyik linkje nem mûködik. A + <literal>0</literal> érték arra utal, hogy a + megszakítást nem nyomták el. Minden + probléma növeli ennek a + változónak az + értékét.</entry> + </row> + </tbody> + </tgroup> + </informaltable> + + <para>A <acronym>CARP</acronym> eszközök maguk az + <command>ifconfig</command> paranccsal + készíthetõek el:</para> + + <screen>&prompt.root; <userinput>ifconfig carp0 create</userinput></screen> + + <para>Egy valós környezetben az ilyen felületeknek + egy <acronym>VHID</acronym> néven ismert egyedi + azonosítóval kell rendelkezniük. Ez a + <acronym>VHID</acronym> vagy más néven a + virtuális gépazonosító (azaz Virtual + Host Identification) fogja a gépünket a + hálózat többi elemétõl + megkülönböztetni.</para> + + <sect2> + <title>A CARP felhasználása a rendelkezésre + állás javításában</title> + + <para>A <acronym>CARP</acronym> használatának egyik + módja, ahogy arra már korábban is utaltunk, + a szerverek rendelkezésre állásának + feljavítása. Ebben a példában + három géppel fogunk hibatûrést + biztosítani, melyik mindegyike egyedi + <acronym>IP</acronym>-címmel rendelkezik és + ugyanazt a webes tartalmat szolgáltatják. A + gépeket egy Round Robin rendszerû + (körbejáró) névfeloldással + együtt használjuk. A tartalék + gépünknek lesz még további két + <acronym>CARP</acronym> felülete, külön a szerver + <acronym>IP</acronym>-címeihez tartozó egyes webes + tartalmakhoz. Amikor valami meghibásodik, a + tartalék szerver átveszi a meghibásodott + gép <acronym>IP</acronym>-címét. Ilyenkor + a hiba teljesen észrevétlen marad a + felhasználók számára. A + tartalék szerveren a többi szerverrel egyezõ + tartalomnak és szolgáltatásoknak kell + megjelennie, hogy bármikor át tudja + tõlük venni a forgalmat.</para> + + <para>A hálózati neveiktõl és a + virtuális azonosítóiktól eltekintve + a két gépet ugyanúgy kell + beállítani. Ebben a példában a + gépeket most az <hostid>a-gep.minta.org</hostid> + és <hostid>b-gep.minta.org</hostid> nevekkel + láttuk el. Elõször is a + <acronym>CARP</acronym> + beállításához el kell + helyeznünk a megfelelõ hivatkozásokat az + <filename>rc.conf</filename> állományban. Az + <hostid>a-gep.minta.org</hostid> esetében az + <filename>rc.conf</filename> állomány a + következõ sorokat tartalmazza:</para> + + <programlisting>hostname="a-gep.minta.org" +ifconfig_fxp0="inet 192.168.1.3 netmask 255.255.255.0" +cloned_interfaces="carp0" +ifconfig_carp0="vhid 1 pass testpass 192.168.1.50/24"</programlisting> + + <para>Miközben a <hostid>b-gep.minta.org</hostid> az + <filename>rc.conf</filename> állományában + ezeket adjuk meg:</para> + + <programlisting>hostname="b-gep.minta.org" +ifconfig_fxp0="inet 192.168.1.4 netmask 255.255.255.0" +cloned_interfaces="carp0" +ifconfig_carp0="vhid 2 pass testpass 192.168.1.51/24"</programlisting> + + <note> + <para>Nagyon fontos, hogy az <command>ifconfig</command> parancs + <literal>pass</literal> paraméterével megadott + jelszavak megegyezzenek. A <devicename>carp</devicename> + eszközök csak a megfelelõ jelszót + birtokló gépeket fogadják el. A + virtuális gépazonosítónak azonban + minden esetben el kell térnie.</para> + </note> + + <para>A harmadik, <hostid>szolgaltato.minta.org</hostid> + címmel rendelkezõ gépet fogjuk + felkészíteni az elõbbi gépek + meghibásodására felkészíteni. + Ennek a gépnek két <devicename>carp</devicename> + eszközre lesz szüksége, melyek az egyes + gépeket kezelik. Az ehhez illeszkedõ sorok valahogy + így fognak kinézni az <filename>rc.conf</filename> + állományban:</para> + + <programlisting>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"</programlisting> + + <para>Két <devicename>carp</devicename> eszköz + használatával a + <hostid>szolgaltato.minta.org</hostid> képes + észlelni és átvenni bármelyik olyan + gép <acronym>IP</acronym>-címét, amely nem + válaszol.</para> + + <note> + <para>Az alap &os; rendszermag használata esetén + <emphasis>elõfordulhat</emphasis>, hogy a + megszakítás (a <quote>preemption</quote> + opció) engedélyezett. Amennyiben így + lenne, a <hostid>szolgaltato.minta.org</hostid> nem fogja + minden esetben fogja rendesen visszaadni az + <acronym>IP</acronym>-címet az eredeti + tulajdonosának. Ilyenkor a rendszergazdának + kell ezt manuálisan megtennie. Tehát a + következõ parancsot kell kiadnia a + <hostid>szolgaltato.minta.org</hostid> gépen:</para> + + <screen>&prompt.root; <userinput>ifconfig carp0 down && ifconfig carp0 up</userinput></screen> + + <para>Ezt az adott géphez tartozó + <devicename>carp</devicename> felülettel kell + megcsinálni.</para> + </note> + + <para>Innentõl a <acronym>CARP</acronym> már teljesen + engedélyezhetõ és készen áll a + tesztelésre. A teszteléshez vagy a + hálózati rendszert kell + újraindítani, vagy a gépeket.</para> + + <para>További információkat a &man.carp.4; + man oldalán találhatunk.</para> + + </sect2> + </sect1> +</chapter> + +<!-- + Local Variables: + mode: sgml + sgml-declaration: "../chapter.decl" + sgml-indent-data: t + sgml-omittag: nil + sgml-always-quote-attributes: t + sgml-parent-document: ("../book.sgml" "part" "chapter") + End: +--> +<!-- LocalWords: config mnt www --> diff --git a/hu_HU.ISO8859-2/books/handbook/advanced-networking/isdn-bus.eps b/hu_HU.ISO8859-2/books/handbook/advanced-networking/isdn-bus.eps new file mode 100644 index 0000000000..35b8554b15 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/advanced-networking/isdn-bus.eps @@ -0,0 +1,199 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%BoundingBox: 99 -130 355 100 +%%Creator: G. Adam Stanislav +% The FreeBSD Hungarian Documentation Project +% Translated by: PALI, Gabor <pgj@FreeBSD.org> +% Original Revision: 1.1 +%%EndComments +%%BeginProlog + +%%BeginResource: encoding ISOLatin2Encoding +/ISOLatin2Encoding [ +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright +/parenleft /parenright /asterisk /plus /comma /minus /period /slash +/zero /one /two /three /four /five /six /seven +/eight /nine /colon /semicolon /less /equal /greater /question +% 100 +/at /A /B /C /D /E /F /G +/H /I /J /K /L /M /N /O +/P /Q /R /S /T /U /V /W +/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore +/quoteleft /a /b /c /d /e /f /g +/h /i /j /k /l /m /n /o +/p /q /r /s /t /u /v /w +/x /y /z /braceleft /bar /braceright /asciitilde /.notdef +% 200 +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/space /Aogonek /breve /Lslash /currency /Lcaron /Sacute /section +/dieresis /Scaron /Scedilla /Tcaron /Zacute /hyphen /Zcaron /Zdotaccent +/degree /aogonek /ogonek /lslash /acute /lcaron /sacute /caron +/cedilla /scaron /scedilla /tcaron /zacute /hungarumlaut /zcaron /zdotaccent +% 300 +/Racute /Aacute /Acircumflex /Abreve /Adieresis /Lacute /Cacute /Ccedilla +/Ccaron /Eacute /Eogonek /Edieresis /Ecaron /Iacute /Icircumflex /Dcaron +/Dbar /Nacute /Ncaron /Oacute /Ocircumflex /Ohungarumlaut /Odieresis /multiply +/Rcaron /Uring /Uacute /Uhungarumlaut /Udieresis /Yacute /Tcedilla /germandbls +/racute /aacute /acircumflex /abreve /adieresis /lacute /cacute /ccedilla +/ccaron /eacute /eogonek /edieresis /ecaron /iacute /icircumflex /dcaron +/dbar /nacute /ncaron /oacute /ocircumflex /ohungarumlaut /odieresis /divide +/rcaron /uring /uacute /uhungarumlaut /udieresis /yacute /tcedilla /dotaccent +] def +%%EndResource + +%%EndProlog + +%%BeginSetup +/t { + rlineto + -5 0 rlineto + 0 -7 rlineto + -6 0 rlineto + 0 20 rlineto + 6 0 rlineto + 0 -7 rlineto + 5 0 rlineto +} bind def + +/ldent { + 0 5 rlineto + -7 0 rlineto + 0 -5 rlineto +} bind def + +/rdent { + 0 5 rlineto + 11 0 rlineto + 0 -5 rlineto +} bind def + +/router { + moveto + 0 12 t + 0 12 rlineto + 70 0 rlineto + 0 -30 rlineto + -52.5 0 rlineto + ldent + closepath + 2 28 rmoveto + 0 -26 rlineto + 6.5 0 rlineto + rdent + 48.5 0 rlineto + 0 26 rlineto + closepath + fill +} bind def + +/box { + moveto + 0 17 t + 0 17 rlineto + 100 0 rlineto + 0 -40 rlineto + closepath + 2 38 rmoveto + 0 -36 rlineto + 96 0 rlineto + 0 36 rlineto + closepath + fill +} bind def + +/plug { + moveto + 0 7 rlineto + 6 0 rlineto + 0 -7 rlineto + closepath + fill +} bind def + +/internet { + moveto + 0 210 rlineto + 110 0 rlineto + 0 -210 rlineto + closepath + gsave + 5 7 div setcolor + fill + grestore + stroke +} bind def +%%EndSetup + +% draw the coax cable +3 7 div setcolor +114 -94 moveto +-4 0 rlineto +0 164 rlineto +4 0 rlineto +closepath +fill + +% draw some terminating resistors +newpath +112 -110 2 0 360 arc fill +newpath +112 85 2 0 360 arc fill +0 setcolor + +120 60 router +131 57.5 plug + +120 0 box +120 -60 box +120 -120 box + +gsave +[5 3] 0 setdash +235 -120 internet +grestore + +% Connect router to the Internet +232 40.5 plug +133 58 moveto +0 -15 rlineto +102 0 rlineto +0 2 rlineto +-100 0 rlineto +0 13 rlineto +closepath +fill + +/Helvetica-Bold findfont +dup length dict begin + { 1 index /FID ne {def} {pop pop} ifelse } forall + /Encoding ISOLatin2Encoding def + currentdict +end +/Helvetica-Bold-Latin2 exch definefont pop + +/Helvetica-Bold-Latin2 findfont dup 10 scalefont setfont + +130 74 moveto (Útválasztó) show +140 -42 moveto (Windows 95) show +125 -102 moveto (Sun munkaállomás) show +150 18 moveto (FreeBSD) show +155 47.5 moveto (ISDN BRI vonal) show + +25 scalefont setfont + +270 51 moveto (Az) show +245 27 moveto (internet) show +1 setcolor +269 53 moveto (Az) show +244 29 moveto (internet) show + +%%Trailer +showpage +%%EOF + diff --git a/hu_HU.ISO8859-2/books/handbook/advanced-networking/isdn-twisted-pair.eps b/hu_HU.ISO8859-2/books/handbook/advanced-networking/isdn-twisted-pair.eps new file mode 100644 index 0000000000..61919f4923 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/advanced-networking/isdn-twisted-pair.eps @@ -0,0 +1,294 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%BoundingBox: -10 -70 355 100 +%%Creator: G. Adam Stanislav +% The FreeBSD Hungarian Documentation Project +% Translated by: PALI, Gabor <pgj@FreeBSD.org> +% Original Revision: 1.1 +%%EndComments +%%BeginProlog + +%%BeginResource: encoding ISOLatin2Encoding +/ISOLatin2Encoding [ +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright +/parenleft /parenright /asterisk /plus /comma /minus /period /slash +/zero /one /two /three /four /five /six /seven +/eight /nine /colon /semicolon /less /equal /greater /question +% 100 +/at /A /B /C /D /E /F /G +/H /I /J /K /L /M /N /O +/P /Q /R /S /T /U /V /W +/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore +/quoteleft /a /b /c /d /e /f /g +/h /i /j /k /l /m /n /o +/p /q /r /s /t /u /v /w +/x /y /z /braceleft /bar /braceright /asciitilde /.notdef +% 200 +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/space /Aogonek /breve /Lslash /currency /Lcaron /Sacute /section +/dieresis /Scaron /Scedilla /Tcaron /Zacute /hyphen /Zcaron /Zdotaccent +/degree /aogonek /ogonek /lslash /acute /lcaron /sacute /caron +/cedilla /scaron /scedilla /tcaron /zacute /hungarumlaut /zcaron /zdotaccent +% 300 +/Racute /Aacute /Acircumflex /Abreve /Adieresis /Lacute /Cacute /Ccedilla +/Ccaron /Eacute /Eogonek /Edieresis /Ecaron /Iacute /Icircumflex /Dcaron +/Dbar /Nacute /Ncaron /Oacute /Ocircumflex /Ohungarumlaut /Odieresis /multiply +/Rcaron /Uring /Uacute /Uhungarumlaut /Udieresis /Yacute /Tcedilla /germandbls +/racute /aacute /acircumflex /abreve /adieresis /lacute /cacute /ccedilla +/ccaron /eacute /eogonek /edieresis /ecaron /iacute /icircumflex /dcaron +/dbar /nacute /ncaron /oacute /ocircumflex /ohungarumlaut /odieresis /divide +/rcaron /uring /uacute /uhungarumlaut /udieresis /yacute /tcedilla /dotaccent +] def +%%EndResource + +%%EndProlog + +%%BeginSetup +/ldent { + 0 5 rlineto + -7 0 rlineto + 0 -5 rlineto +} bind def + +/uldent { + 0 -5 rlineto + 7 0 rlineto + 0 5 rlineto +} bind def + +/rdent { + 0 5 rlineto + 11 0 rlineto + 0 -5 rlineto +} bind def + +/urdent { + 0 -5 rlineto + -11 0 rlineto + 0 5 rlineto +} bind def + +/hub { + moveto + 0 30 rlineto + 84 0 rlineto + 0 -30 rlineto + -10.5 0 rlineto + ldent + -7 0 rlineto + ldent + -7 0 rlineto + ldent + -7 0 rlineto + ldent + -7 0 rlineto + ldent + closepath + 2 28 rmoveto + 0 -26 rlineto + 6.5 0 rlineto + rdent + 3 0 rlineto + rdent + 3 0 rlineto + rdent + 3 0 rlineto + rdent + 3 0 rlineto + rdent + 6.5 0 rlineto + 0 26 rlineto + closepath + fill +} bind def + +/router { + moveto + 0 30 rlineto + 70 0 rlineto + 0 -30 rlineto + -10.5 0 rlineto + ldent + -35 0 rlineto + ldent + closepath + 2 28 rmoveto + 0 -26 rlineto + 6.5 0 rlineto + rdent + 31 0 rlineto + rdent + 6.5 0 rlineto + 0 26 rlineto + closepath + fill +} bind def + +/box { + moveto + 0 40 rlineto + 10.5 0 rlineto + uldent + 82.5 0 rlineto + 0 -40 rlineto + closepath + 2 38 rmoveto + 0 -36 rlineto + 96 0 rlineto + 0 36 rlineto + -78.5 0 rlineto + urdent + closepath + fill +} bind def + +/plug { + moveto + 0 7 rlineto + 6 0 rlineto + 0 -7 rlineto + closepath + fill +} bind def + +/internet { + moveto + 0 90 rlineto + 110 0 rlineto + 0 -90 rlineto + closepath + gsave + 5 7 div setcolor + fill + grestore + stroke +} bind def +%%EndSetup + +0 60 hub +11 57.5 plug +25 57.5 plug +39 57.5 plug +53 57.5 plug +67 57.5 plug + +100 60 router +111 57.5 plug +153 57.5 plug + +0 -60 box +11 -24.5 plug +% Connect box 1 with hub +13 -20 moveto +0 78 rlineto +2 0 rlineto +0 -78 rlineto +closepath +fill + +120 0 box +% Connect box 2 with hub +131 35.5 plug +133 40 moveto +0 6 rlineto +-78 0 rlineto +0 12 rlineto +2 0 rlineto +0 -10 rlineto +78 0 rlineto +0 -8 rlineto +closepath +fill + +120 -60 box +131 -24.5 plug +% Connect with hub +133 -20 moveto +0 6 rlineto +-106 0 rlineto +0 72 rlineto +2 0 rlineto +0 -70 rlineto +106 0 rlineto +0 -8 rlineto +closepath +fill + +240 -60 box +251 -24.5 plug +% Connect with hub +253 -20 moveto +0 14 rlineto +-212 0 rlineto +0 68 rlineto +2 0 rlineto +0 -66 rlineto +212 0 rlineto +0 -16 rlineto +closepath +fill + +% Connect hub with router +69 58 moveto +0 -6 rlineto +46 0 rlineto +0 6 rlineto +-2 0 rlineto +0 -4 rlineto +-42 0 rlineto +0 4 rlineto +closepath +fill + +gsave +[5 3] 0 setdash +235 0 internet +grestore + +% Connect router to the Internet +232 40.5 plug +155 58 moveto +0 -15 rlineto +80 0 rlineto +0 2 rlineto +-78 0 rlineto +0 13 rlineto +closepath +fill + +/Helvetica-Bold findfont +dup length dict begin + { 1 index /FID ne {def} {pop pop} ifelse } forall + /Encoding ISOLatin2Encoding def + currentdict +end +/Helvetica-Bold-Latin2 exch definefont pop + +/Helvetica-Bold-Latin2 findfont dup 10 scalefont setfont + +26 74 moveto (Elosztó) show +110 74 moveto (Útválasztó) show +17 -42 moveto (Novell szerver) show +140 -42 moveto (Windows 95) show +246 -42 moveto (Sun munkaállomás) show +145 18 moveto (FreeBSD) show +158 47.5 moveto (ISDN BRI vonal) show + +25 scalefont setfont + +270 51 moveto (Az) show +245 27 moveto (internet) show +1 setcolor +269 53 moveto (Az) show +244 29 moveto (internet) show + +%%Trailer +showpage +%%EOF + diff --git a/hu_HU.ISO8859-2/books/handbook/advanced-networking/natd.eps b/hu_HU.ISO8859-2/books/handbook/advanced-networking/natd.eps new file mode 100644 index 0000000000..646a4c6312 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/advanced-networking/natd.eps @@ -0,0 +1,281 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%BoundingBox: -10 -10 355 100 +%%Creator: G. Adam Stanislav +% The FreeBSD Hungarian Documentation Project +% Translated by: PALI, Gabor <pgj@FreeBSD.org> +% Original Revision: 1.1 +%%EndComments + +%%BeginProlog + +%%BeginResource: encoding ISOLatin2Encoding +/ISOLatin2Encoding [ +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright +/parenleft /parenright /asterisk /plus /comma /minus /period /slash +/zero /one /two /three /four /five /six /seven +/eight /nine /colon /semicolon /less /equal /greater /question +% 100 +/at /A /B /C /D /E /F /G +/H /I /J /K /L /M /N /O +/P /Q /R /S /T /U /V /W +/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore +/quoteleft /a /b /c /d /e /f /g +/h /i /j /k /l /m /n /o +/p /q /r /s /t /u /v /w +/x /y /z /braceleft /bar /braceright /asciitilde /.notdef +% 200 +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/space /Aogonek /breve /Lslash /currency /Lcaron /Sacute /section +/dieresis /Scaron /Scedilla /Tcaron /Zacute /hyphen /Zcaron /Zdotaccent +/degree /aogonek /ogonek /lslash /acute /lcaron /sacute /caron +/cedilla /scaron /scedilla /tcaron /zacute /hungarumlaut /zcaron /zdotaccent +% 300 +/Racute /Aacute /Acircumflex /Abreve /Adieresis /Lacute /Cacute /Ccedilla +/Ccaron /Eacute /Eogonek /Edieresis /Ecaron /Iacute /Icircumflex /Dcaron +/Dbar /Nacute /Ncaron /Oacute /Ocircumflex /Ohungarumlaut /Odieresis /multiply +/Rcaron /Uring /Uacute /Uhungarumlaut /Udieresis /Yacute /Tcedilla /germandbls +/racute /aacute /acircumflex /abreve /adieresis /lacute /cacute /ccedilla +/ccaron /eacute /eogonek /edieresis /ecaron /iacute /icircumflex /dcaron +/dbar /nacute /ncaron /oacute /ocircumflex /ohungarumlaut /odieresis /divide +/rcaron /uring /uacute /uhungarumlaut /udieresis /yacute /tcedilla /dotaccent +] def +%%EndResource + +%%EndProlog + +%%BeginSetup +/ldent { + 0 5 rlineto + -7 0 rlineto + 0 -5 rlineto +} bind def + +/uldent { + 0 -5 rlineto + 7 0 rlineto + 0 5 rlineto +} bind def + +/rdent { + 0 5 rlineto + 11 0 rlineto + 0 -5 rlineto +} bind def + +/urdent { + 0 -5 rlineto + -11 0 rlineto + 0 5 rlineto +} bind def + +/hub { + moveto + 0 30 rlineto + 70 0 rlineto + 0 -30 rlineto + -10.5 0 rlineto + ldent + -7 0 rlineto + ldent + -7 0 rlineto + ldent + -7 0 rlineto + ldent + closepath + 2 28 rmoveto + 0 -26 rlineto + 6.5 0 rlineto + rdent + 3 0 rlineto + rdent + 3 0 rlineto + rdent + 3 0 rlineto + rdent + 6.5 0 rlineto + 0 26 rlineto + closepath + fill +} bind def + +/router { + moveto + 0 30 rlineto + 70 0 rlineto + 0 -30 rlineto + -10.5 0 rlineto + ldent + -35 0 rlineto + ldent + closepath + 2 28 rmoveto + 0 -26 rlineto + 6.5 0 rlineto + rdent + 31 0 rlineto + rdent + 6.5 0 rlineto + 0 26 rlineto + closepath + fill +} bind def + +/box1 { + moveto + 0 40 rlineto + 10.5 0 rlineto + uldent + 82.5 0 rlineto + 0 -40 rlineto + closepath + 2 38 rmoveto + 0 -36 rlineto + 96 0 rlineto + 0 36 rlineto + -78.5 0 rlineto + urdent + closepath + fill +} bind def + +/box2 { + moveto + 0 40 rlineto + 10.5 0 rlineto + uldent + 65 0 rlineto + uldent + 10.5 0 rlineto + 0 -40 rlineto + closepath + 2 38 rmoveto + 0 -36 rlineto + 96 0 rlineto + 0 36 rlineto + -6.5 0 rlineto + urdent + -61 0 rlineto + urdent + closepath + fill +} bind def + +/plug { + moveto + 0 7 rlineto + 6 0 rlineto + 0 -7 rlineto + closepath + fill +} bind def + +/internet { + moveto + 0 90 rlineto + 110 0 rlineto + 0 -90 rlineto + closepath + gsave + 5 7 div setcolor + fill + grestore + stroke +} bind def +%%EndSetup + +0 60 hub +11 57.5 plug +25 57.5 plug + +135 60 router +146 57.5 plug +188 57.5 plug + +0 0 box1 +11 35.5 plug + +13 40 moveto +0 18 rlineto +2 0 rlineto +0 -18 rlineto +closepath +fill + +120 0 box2 +% Connect box2 with hub +131 35.5 plug +133 40 moveto +0 8 rlineto +-106 0 rlineto +0 10 rlineto +2 0 rlineto +0 -8 rlineto +106 0 rlineto +0 -10 rlineto +closepath +fill + +% Connect box2 with router +203 35.5 plug +205 40 moveto +0 8 rlineto +-57 0 rlineto +0 10 rlineto +2 0 rlineto +0 -8 rlineto +57 0 rlineto +0 -10 rlineto +closepath +fill + +gsave +[5 3] 0 setdash +235 0 internet +grestore + +% Connect router to the Internet +232 49.5 plug +190 58 moveto +0 -6 rlineto +45 0 rlineto +0 2 rlineto +-43 0 rlineto +0 4 rlineto +closepath +fill + +/Helvetica-Bold findfont +dup length dict begin + { 1 index /FID ne {def} {pop pop} ifelse } forall + /Encoding ISOLatin2Encoding def + currentdict +end +/Helvetica-Bold-Latin2 exch definefont pop + +/Helvetica-Bold-Latin2 findfont dup 10 scalefont setfont + +18 74 moveto (Elosztó) show +145 74 moveto (Útválasztó) show +28 18 moveto (A kliens) show +149 23 moveto (B kliens) show +128 10 moveto ((FreeBSD átjáró)) show + +25 scalefont setfont + +270 51 moveto (Az) show +245 27 moveto (internet) show +1 setcolor +269 53 moveto (Az) show +244 29 moveto (internet) show + +%%Trailer +showpage +%%EOF + diff --git a/hu_HU.ISO8859-2/books/handbook/advanced-networking/net-routing.pic b/hu_HU.ISO8859-2/books/handbook/advanced-networking/net-routing.pic new file mode 100644 index 0000000000..9d1e7ff92c --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/advanced-networking/net-routing.pic @@ -0,0 +1,21 @@ +.\" $FreeBSD$ +.\" The FreeBSD Hungarian Documentation Project +.\" Translated by: PALI, Gabor <pgj@FreeBSD.org> +.\" Original Revision: 1.2 +.PS + +A: box "Helyi2"; + +B: line 0.7 <-> "Ethernet" above dashed; + +C: box "Helyi1"; + +D: line 0.8 <-> "PPP" above dashed; + +E: box "Szolgáltató"; + +F: line 0.7 <-> "Ethernet" above dashed; + +G: box "T1-ÁJ"; + +.PE diff --git a/hu_HU.ISO8859-2/books/handbook/advanced-networking/static-routes.pic b/hu_HU.ISO8859-2/books/handbook/advanced-networking/static-routes.pic new file mode 100644 index 0000000000..f6fec8b26d --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/advanced-networking/static-routes.pic @@ -0,0 +1,37 @@ +.\" $FreeBSD$ +.\" The FreeBSD Hungarian Documentation Project +.\" Translated by: PALI, Gabor <pgj@FreeBSD.org> +.\" Original Revision: 1.1 +.PS + +I: box rad 0.10 wid 1 ht 0.55 "internet" dashed; + " (10.0.0.1/24) alapértelmezett átjáró az internet felé" at I.s below ljust; + circle rad 0.02 fill 1 at I.s; + line down at I.s; + +A: box "A-utvalaszto"; + " xl0 felület, 10.0.0.10/24" at A.n above ljust; + " xl1 felület, 192.168.1.1/24" at A.s below ljust; + " FreeBSD átjáró" at A.e+(0.15,0) ljust; + circle rad 0.02 fill 1 at A.n; + circle rad 0.02 fill 1 at A.s; + line down at A.s; + +N1: box ht .04 wid 2.8 fill with .nw at last line.end - (.4,0); + line at N1.se - (.4,0); + + +B: box "B-utvalaszto"; + " 192.168.1.2/24" at B.n above ljust; + " 192.168.2.1/24" at B.s below ljust; + circle rad 0.02 fill 1 at B.n; + circle rad 0.02 fill 1 at B.s; + line; + +N2: box ht .04 wid 1.8 fill with .nw at last line.end - (.4,0); + +N2a: "2. belsõ hálózat" at N2.s + (0,-.15); + +N1a: "1. belsõ hálózat" at N1.sw + (.4,-.15); + +.PE diff --git a/hu_HU.ISO8859-2/books/handbook/appendix.decl b/hu_HU.ISO8859-2/books/handbook/appendix.decl new file mode 100644 index 0000000000..1aa6a283f0 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/appendix.decl @@ -0,0 +1,9 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD Hungarian Documentation Project + + $FreeBSD$ + Original Revision: n/a +--> + +<!DOCTYPE appendix PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN"> diff --git a/hu_HU.ISO8859-2/books/handbook/audit/Makefile b/hu_HU.ISO8859-2/books/handbook/audit/Makefile new file mode 100644 index 0000000000..84cb9b04ee --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/audit/Makefile @@ -0,0 +1,15 @@ +# +# Build the Handbook with just the content from this chapter. +# +# $FreeBSD$ +# + +CHAPTERS= audit/chapter.sgml + +VPATH= .. + +MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX} + +DOC_PREFIX?= ${.CURDIR}/../../../.. + +.include "../Makefile" diff --git a/hu_HU.ISO8859-2/books/handbook/audit/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/audit/chapter.sgml new file mode 100644 index 0000000000..e47e1cf2ea --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/audit/chapter.sgml @@ -0,0 +1,1100 @@ +<!-- + The FreeBSD Documentation Project + $FreeBSD$ +--> + +<!-- The FreeBSD Hungarian Documentation Project + Translated by: PALI, Gabor <pgj@FreeBSD.org> + Original Revision: 1.33 --> + +<chapter id="audit" lang="hu"> + <chapterinfo> + <authorgroup> + <author> + <firstname>Tom</firstname> + <surname>Rhodes</surname> + <contrib>Írta: </contrib> + </author> + <author> + <firstname>Robert</firstname> + <surname>Watson</surname> + </author> + </authorgroup> + </chapterinfo> + + <title>Biztonsági események vizsgálata</title> + + <sect1 id="audit-synopsis"> + <title>Áttekintés</title> + + <indexterm><primary>AUDIT</primary></indexterm> + <indexterm> + <primary>Biztonsági események + vizsgálata</primary> + <see>MAC</see> + </indexterm> + + <para>A &os; 6.2-RELEASE és az azóta megjelent + verziók támogatják a biztonsági + események aprólékos + vizsgálatát. Ezzel egy megbízható, + részletes és jól konfigurálható + naplózási rendszert nyújtanak a rendszerben + található biztonságot igénylõ + események széles köréhez, + beleértve a bejelentkezéseket, a + konfigurációs állományokban + bekövetkezõ változásokat, + állomány- és hálózati + hozzáféréseket. Az így + létrehozott naplóbejegyzések + felbecsülhetetlen értékûnek bizonyulhatnak + egy élõ rendszer felügyelete során, vagy + egy hálózati támadás + észleléséhez, esetleg egy + összeomlás okainak kielemezéséhez. A + &os; ehhez a &sun; által kifejlesztett + <acronym>BSM</acronym> technológia API-ját és + állományformátumát + valósítja meg, és így képes + együttmûködni a &sun; &solaris; valamint az &apple; + &macos; X bizonsági rendszereivel egyaránt.</para> + + <para>Ebben a fejezetben a biztonsági események + vizsgálatának telepítéséhez + és beállításához + szükséges ismeretek tekintjük át. Ennek + keretében szó esik a vizsgálati + házirendekrõl, valamint mutatunk egy + példát a vizsgálatok + beállítására.</para> + + <para>A fejezet elolvasása során + megismerjük:</para> + + <itemizedlist> + <listitem> + <para>mit jelent az események vizsgálata és + hogyan mûködik;</para> + </listitem> + + <listitem> + <para>hogyan kell beállítani az események + vizsgálatát &os;-n a + különbözõ felhasználók + és programok esetén;</para> + </listitem> + + <listitem> + <para>hogyan értelmezzük a vizsgálati + nyomokat a vizsgálatot szûkítõ + és -elemzõ segédprogramok + segítségével.</para> + </listitem> + </itemizedlist> + + <para>A fejezet elolvasásához ajánlott:</para> + + <itemizedlist> + <listitem> + <para>alapvetõ &unix;-os és &os;-s ismeretek (<xref + linkend="basics">);</para> + </listitem> + + <listitem> + <para>a rendszermag konfigurálásával + és fordításával kapcsolatos + tudnivalók alapszintû ismerete (<xref + linkend="kernelconfig">);</para> + </listitem> + + <listitem> + <para>az informatikai biztonság alapfogalmainak és + annak a &os;-re vonatkozó részleteinek + minimális ismerete (<xref linkend="security">).</para> + </listitem> + </itemizedlist> + + <warning> + <para>A &os; 6.<replaceable>X</replaceable> + verziójaiban jelenlevõ biztonsági + vizsgálat még csak kísérleti + jelleggel szerepel, éles környezetben + kizárólag csak az ebbõl eredõ + kockázatok tudatában és + elfogadásával javasolt használni. Ismert + korlátozások: nem mindegyik biztonságot + érintõ esemény vizsgálható, + mint például az egyes bejelentkezési + típusok, mivel azok nem megfelelõen + hitelesítik a belépõ + felhasználókat. Ilyenek például az + X11-alapú felületek és az egyéb, erre + a célra alkalmas, más által fejlesztett + démonok.</para> + </warning> + + <warning> + <para>A biztonsági események vizsgálata + során a rendszer képes nagyon részletes + naplókat készíteni az érintett + tevékenységekrõl. Így egy + kellõen forgalmas rendszeren az + állománymozgások alapos + nyomonkövetése bizonyos + konfigurációkon akár gigabyte-okat is + kitehet hetente. A rendszergazdáknak ezért mindig + javasolt számolniuk a nagy forgalmú + események biztonsági vizsgálatának + tárigényével. Például, + emiatt érdemes lehet egy egész + állományrendszert szánni erre a feladatra a + <filename>/var/audit</filename> könyvtárban, + és így a többi állományrendszer + nem látja kárát, ha véletlenül + betelne ez a terület.</para> + </warning> + </sect1> + + <sect1 id="audit-inline-glossary"> + <title>A fejezet fontosabb fogalmai</title> + + <para>A fejezet elolvasása elõtt meg kell ismernünk + néhány fontos alapfogalmat:</para> + + <itemizedlist> + <listitem> + <para><emphasis>esemény:</emphasis> + Vizsgálható eseménynek azt az + eseményt nevezzük, amely egy vizsgálati + alrendszerben naplózható. Biztonsági + események lehetnek például: egy + állomány létrehozása, egy + hálózati kapcsolat + felépítése, vagy egy + felhasználó bejelentkezése. Egy + esemény <quote>jellegzetes</quote>, ha + visszakövethetõ valamelyik hitelesített + felhasználóhoz, vagy <quote>nem + jellegzetes</quote>, ha ez nem lehetséges. Nem + jellegzetes esemény lehet minden olyan esemény, + amely egy bejelentkezési folyamat + hitelesítési lépése elõtt + történik, például egy + belépési kísérlet hibás + jelszóval.</para> + </listitem> + + <listitem> + <para><emphasis>osztály:</emphasis> + Eseményosztálynak az összefüggõ + események névvel ellátott halmazát + tekintjük, és szûrési + feltételekben használjuk ezeket. + Általában alkalmazott osztályok: + <quote>file creation</quote> (fc, + állománylétrehozás), + <quote>exec</quote> (ex, programindítás), + és <quote>login_logout</quote> (lo, ki- és + bejelentkezés).</para> + </listitem> + + <listitem> + <para><emphasis>rekord:</emphasis> Rekordnak nevezzük a + biztonsági eseményeket leíró + biztonsági naplóbejegyzéseket. A + rekordok tartalmazhatják a feljegyzett esemény + típusát, az eseményt + kiváltó tevékenységet + (felhasználót), a dátumot és az + idõt, tetszõleges objektum vagy paraméter + értékét, feltételek + teljesülését vagy + meghiúsulását.</para> + </listitem> + + <listitem> + <para><emphasis>nyom:</emphasis> Vizsgálati nyomnak vagy + naplóállománynak nevezzük a + különféle biztonsági + eseményeket leíró vizsgálati + rekordok sorozatát. A nyomok többnyire + nagyjából az események + bekövetkezése szerinti idõrendben + következnek. Csak és kizárólag az + erre felhatalmazott programok hozhatnak létre + rekordokat a vizsgálati nyomban.</para> + </listitem> + + <listitem> + <para><emphasis>szûrési feltétel:</emphasis> + Szûrési feltételnek nevezünk egy olyan + karakterláncot, amelyet események + szûrésére használunk, és + módosítókat valamint + eseményosztályok neveit tartalmazza.</para> + </listitem> + + <listitem> + <para><emphasis>elõválogatás:</emphasis> + Elõválogatásnak nevezzük a folyamatot, + amelynek során a rendszer beazonosítja azokat az + eseményeket, amelyek a rendszergazda + számára fontosak. Ezáltal + elkerülhetjük olyan vizsgálati rekordok + generálását, amelyek számunkra + érdektelen eseményekrõl számolnak + be. Az elõválogatás szûrési + feltételek sorát használja az adott + felhasználókhoz tartozó adott + biztonsági események vizsgálatának + beállításához, akárcsak a + hitelesített és a nem hitelesített + programokat értintõ globális + beállítások + meghatározásához.</para> + </listitem> + + <listitem> + <para><emphasis>leszûkítés:</emphasis> + Leszûkítésnek nevezzük a folyamatot, + amelynek során a már meglevõ + biztonsági rekordokból válogatunk le + tárolásra, nyomtatásra vagy + elemzésre. Hasonlóan ez a folyamat, ahol a + szükségtelen rekordokat eltávolítjuk + a vizsgálatai nyomból. A + leszûkítés + segítségével a rendszergazdák a + vizsgálati adatok eltárolására + alakíthatnak ki házirendet. + Például a részletesebb vizsgálati + nyomokat érdemes egy hónapig megtartani, ennek + lejártával viszont már inkább + ajánlott leszûkíteni ezeket és + archiválásra csak a bejelentkezési + információkat megtartani.</para> + </listitem> + </itemizedlist> + </sect1> + + <sect1 id="audit-install"> + <title>A vizsgálat támogatásának + telepítése</title> + + <para>A eseményvizsgálathoz szükséges + felhasználói programok a &os; alaprendszer + részét képezik. A &os; 7.0 és + késõbbi verzióiban az + eseményvizsgálat támogatása + alapértelmezés szerint megtalálható a + rendszermagban, azonban a &os; 6.<replaceable>X</replaceable> + változataiban be kell kapcsolnunk a megfelelõ + támogatást, mégpedig a rendszermag + konfigurációs állományában az + alábbi sor hozzáadásával:</para> + + <programlisting>options AUDIT</programlisting> + + <para>Fordítsuk és telepítsük újra + a rendszermagot az <xref linkend="kernelconfig">ben ismertetett + folyamat szerint.</para> + + <para>Ahogy a rendszermagot a bekapcsolt + eseményvizsgálati támogatással + sikerült lefordítanunk és + telepítenünk, valamint a rendszerünk is + újraindult, indítsuk el a vizsgáló + démont a következõ sor + hozzáadásával az &man.rc.conf.5; + állományban:</para> + + <programlisting>auditd_enable="YES"</programlisting> + + <para>A vizsgálatot innentõl ténylegesen egy + ismételt újraindítással vagy pedig az + elõbb említett démon manuális + elindításával aktiválhatjuk:</para> + + <programlisting>/etc/rc.d/auditd start</programlisting> + + </sect1> + + <sect1 id="audit-config"> + <title>A vizsgálat beállítása</title> + + <para>A vizsgálatok beállításához + szükséges összes konfigurációs + állomány a <filename + class="directory">/etc/security</filename> könyvtárban + található. A következõ + állományok vannak itt a démon + indítása elõtt:</para> + + <itemizedlist> + <listitem> + <para><filename>audit_class</filename> - a vizsgálati + osztályok definícióit tartalmazza.</para> + </listitem> + + <listitem> + <para><filename>audit_control</filename> - a vizsgálati + alrendszer különbözõ területeit + vezérli, többek közt az + alapértelmezett vizsgálati osztályokat, + az vizsgálati adatok tárhelyén + fenntartandó minimális lemezterületet, a + vizsgálati nyom maximális méretét, + stb.</para> + </listitem> + + <listitem> + <para><filename>audit_event</filename> - a rendszerben + jelenlevõ vizsgálati események + szöveges megnevezése és + leírása, valamint a lista, hogy melyikük + mely osztályban található.</para> + </listitem> + + <listitem> + <para><filename>audit_user</filename> - + felhasználónként változó + vizsgálati elvárások, kombinálva a + bejelentkezéskor érvényes + globálisan alapértelmezett + beállításokkal.</para> + </listitem> + + <listitem> + <para><filename>audit_warn</filename> - az + <application>auditd</application> által használt + testreszabható shell szkript, aminek + segítségével a + szélsõséges helyzetekben figyelmeztetõ + üzeneteket tudunk generálni, mint + például amikor a rekordok számára + fenntartott hely hamarosan elfogy, vagy amikor a nyomokat + tartalmazó állományt + archiváltuk.</para> + </listitem> + </itemizedlist> + + <warning> + <para>Az eseményvizsgálat + konfigurációs állományait alapos + körültekintés mellett szabad szerkeszteni + és karbantartani, mivel a bennük keletkezõ + hibák az események helytelen + naplózását eredményezhetik.</para> + </warning> + + <sect2> + <title>Eseményszûrési feltételek</title> + + <para>Az eseményvizsgálati + beállítások során számtalan + helyen felbukkanak a vizsgálni kívánt + eseményeket meghatározó szûrési + feltételek. Ezen feltételek + eseményosztályok felsorolását + tartalmazzák, mindegyiküket egy + módosító vezeti be, ezzel jelezve, hogy az + adott eseményosztályba tartozó rekordokat + tartsuk meg vagy vessük el. Esetleg utalhatnak arra is, + hogy vagy csak a sikerességet jelzõ rekordokat, vagy + csak a sikertelenséget jelzõ rekordokat + szûrjük ki. A szûrési feltételek + balról jobbra értékelõdnek ki, + és két kifejezés + összefûzéssel + kombinálható.</para> + + <para>A most következõ lista tartalmazza a + <filename>audit_class</filename> állományban + található alapértelmezett + eseményvizsgálati osztályokat:</para> + + <itemizedlist> + <listitem> + <para><literal>all</literal> - <emphasis>all (mind)</emphasis> + - Minden eseményosztályra vonatkozik.</para> + </listitem> + + <listitem> + <para><literal>ad</literal> - <emphasis>administrive + (adminisztrációs)</emphasis> - olyan + adminisztrációs tevékenységek, + amelyek egyben az egész rendszeren + végrehajtódnak.</para> + </listitem> + + <listitem> + <para><literal>ap</literal> - <emphasis>application + (alkalmazás)</emphasis> - az alkalmazások + által meghatározott + tevékenység.</para> + </listitem> + + <listitem> + <para><literal>cl</literal> - <emphasis>file close + (állomány lezárása)</emphasis> - + a <function>close</function> rendszerhívás + meghívásának vizsgálata.</para> + </listitem> + + <listitem> + <para><literal>ex</literal> - <emphasis>exec + (programindítás)</emphasis> - egy program + indításának vizsgálata. A + parancssorban átadott paraméterek és a + környezeti változók + vizsgálatát az &man.audit.control.5; + vezérli a <literal>policy</literal> + beállításhoz tartozó + <literal>argv</literal> és <literal>envv</literal> + paraméterek segítségével.</para> + </listitem> + + <listitem> + <para><literal>fa</literal> - <emphasis>file attribute access + (állományjellemzõk + hozzáférése)</emphasis> - a + rendszerbeli objektumok jellemzõinek + hozzáférésnek vizsgálata, mint + például a &man.stat.1;, &man.pathconf.2; + és ehhez hasonló események.</para> + </listitem> + + <listitem> + <para><literal>fc</literal> - <emphasis>file create + (állomány + létrehozása)</emphasis> - + állományt eredményezõ + események vizsgálata.</para> + </listitem> + + <listitem> + <para><literal>fd</literal> - <emphasis>file delete + (állomány törlése)</emphasis> - + állományt törlõ események + vizsgálata.</para> + </listitem> + + <listitem> + <para><literal>fm</literal> - <emphasis>file attribute modify + (állományjellemzõk + módosítása)</emphasis> - + állományok jellemzõit + megváltoztató események + vizsgálata, mint például a + &man.chown.8;, &man.chflags.1;, &man.flock.2;, stb.</para> + </listitem> + + <listitem> + <para><literal>fr</literal> - <emphasis>file read + (állományolvasás)</emphasis> - + állományok megnyitásával + olvasásra, olvasásával, stb. + kapcsolatos események vizsgálata.</para> + </listitem> + + <listitem> + <para><literal>fw</literal> - <emphasis>file write + (állományírás)</emphasis> - + állományok megnyitásával + írásra, írásával, + módosításával, stb. kapcsolatos + események vizsgálata.</para> + </listitem> + + <listitem> + <para><literal>io</literal> - <emphasis>ioctl</emphasis> - az + &man.ioctl.2; rendszerhívást + használó események + vizsgálata.</para> + </listitem> + + <listitem> + <para><literal>ip</literal> - <emphasis>ipc</emphasis> - a + folyamatok közti kommunikáció + különféle formáinak, + beleértve a POSIX csövek és System V + <acronym>IPC</acronym> mûveleteinek + vizsgálata.</para> + </listitem> + + <listitem> + <para><literal>lo</literal> - <emphasis>login_logout (ki- + és bejelentkezés)</emphasis> - a rendszerben + megjelenõ &man.login.1; és &man.logout.1; + események vizsgálata.</para> + </listitem> + + <listitem> + <para><literal>na</literal> - <emphasis>non attributable (nem + jellegzetes)</emphasis> - a nem jellegzetes események + vizsgálata.</para> + </listitem> + + <listitem> + <para><literal>no</literal> - <emphasis>invalid class + (érvénytelen osztály)</emphasis> - + egyetlen biztonsági eseményt sem + tartalmaz.</para> + </listitem> + + <listitem> + <para><literal>nt</literal> - <emphasis>network + (hálózat)</emphasis> - a + hálózathoz tartozó események + vizsgálata, mint például a + &man.connect.2; és az &man.accept.2;.</para> + </listitem> + + <listitem> + <para><literal>ot</literal> - <emphasis>other + (egyéb)</emphasis> - más egyéb + események vizsgálata.</para> + </listitem> + + <listitem> + <para><literal>pc</literal> - <emphasis>process + (folyamat)</emphasis> - a folyamatokkal kapcsolatos + mûveletek, mint például az &man.exec.3; + és az &man.exit.3; vizsgálata.</para> + </listitem> + </itemizedlist> + + <para>Az imént felsorolt eseményosztályok az + <filename>audit_class</filename> és az + <filename>audit_event</filename> állományok + módosításával igény szerint + testreszabhatóak.</para> + + <para>A listában szereplõ minden egyes + eseményosztályhoz tartozik még egy + módosító is, amely jelzi, hogy a sikeres + vagy a sikertelen mûveleteket kell-e szûrnünk, + valamint hogy a bejegyzés az adott típust vagy + osztályt hozzáadja vagy elveszi az adott + szûrésbõl.</para> + + <itemizedlist> + <listitem> + <para>(üres) az adott típusból mind a + sikereseket és mind a sikerteleneket + feljegyzi.</para> + </listitem> + + <listitem> + <para><literal>+</literal> az eseményosztályba + tartozó sikeres eseményeket vizsgálja + csak.</para> + </listitem> + + <listitem> + <para><literal>-</literal> az eseményosztályba + tartozó sikertelen eseményeket + vizsgálja csak.</para> + </listitem> + + <listitem> + <para><literal>^</literal> az + eseményosztályból sem a sikereseket, + sem pedig a sikerteleneket nem vizsgálja.</para> + </listitem> + + <listitem> + <para><literal>^+</literal> az + eseményosztályból nem vizsgálja + a sikeres eseményeket.</para> + </listitem> + + <listitem> + <para><literal>^-</literal> az + eseményosztályból nem vizsgálja + a sikertelen eseményeket.</para> + </listitem> + </itemizedlist> + + <para>Az alábbi példa egy olyan szûrési + feltételt mutat be, amely a ki- és + bejelentkezések közül megadja a sikereset + és a sikerteleneket, viszont a + programindítások közül csak a + sikereseket:</para> + + <programlisting>lo,+ex</programlisting> + + </sect2> + + <sect2> + <title>A konfigurációs + állományok</title> + + <para>A vizsgálati rendszer + beállításához az esetek + túlnyomó részében a + rendszergazdáknak csupán két + állományt kell módosítaniuk: ezek az + <filename>audit_control</filename> és az + <filename>audit_user</filename>. Az elõbbi felelõs a + rendszerszintû vizsgálati jellemzõkért + és házirendekért, míg az + utóbbi az igények + felhasználókénti + finomhangolásához + használható.</para> + + <sect3 id="audit-auditcontrol"> + <title>Az <filename>audit_control</filename> + állomány</title> + + <para>Az <filename>audit_control</filename> + állomány határozza meg a + vizsgálati alrendszer alapértelmezéseit. + Ezt az állományt megnyitva a + következõket láthatjuk:</para> + + <programlisting>dir:/var/audit +flags:lo +minfree:20 +naflags:lo +policy:cnt +filesz:0</programlisting> + + <para>A <option>dir</option> opciót használjuk a + vizsgálati naplók + tárolására szolgáló egy + vagy több könyvtár megadására. + Ha egynél több könyvtárra + vonatkozó bejegyzés található az + állományban, akkor azok a megadás + sorrendjében kerülnek feltöltésre. + Nagyon gyakori az a beállítás, ahol a + vizsgálati naplókat egy erre a célra + külön kialakított + állományrendszeren tárolják, + megelõzve ezzel az állományrendszer + betelésekor keletkezõ problémákat a + többi alrendszerben.</para> + + <para>A <option>flags</option> mezõ egy rendszerszintû + alapértelmezett elõválogatási + maszkot határoz meg a jellegzetes események + számára. A fenti példában a + sikeres és sikertelen ki- és + bejelentkezéseket mindegyik felhasználó + esetén vizsgáljuk.</para> + + <para>A <option>minfree</option> opció megszabja a + vizsgálati nyom tárolására + szánt állományrendszeren a + minimális szabad helyet, a teljes kapacitás + százalékában. Amint ezt a + küszöböt túllépjük, egy + figyelmeztetés fog generálódni. A fenti + példa a minimálisan szükséges + rendelkezésre álló helyet húsz + százalékra állítja.</para> + + <para>A <option>naflags</option> opció megadja azokat az + eseményosztályokat, amelyeket vizsgálni + kell a nem jellegzetes események, mind + például a bejelentkezési folyamatok vagy + rendszerdémonok esetén.</para> + + <para>A <option>policy</option> opció a vizsgálat + különbözõ szempontjait + irányító házirendbeli + beállítások vesszõvel + elválasztott listáját tartalmazza. Az + alapértelmezett <literal>cnt</literal> + beállítás azt adja meg, hogy a rendszer a + felmerülõ vizsgálati hibák + ellenére is folytassa tovább a + mûködését (erõsen javasolt a + használata). A másik gyakorta alkalmazott + beállítás az <literal>argv</literal>, + amellyel a rendszer a parancsvégrehajtás + részeként az &man.execve.2; + rendszerhívás parancssori paramétereit is + megvizsgálja.</para> + + <para>A <option>filesz</option> opció határozza + meg a vizsgálati nyom automatikus + szétvágása és + archiválása elõtti maximális + méretét, byte-ban. Az alapértelmezett + értéke a 0, amely kikapcsolja ezt az + archiválást. Ha az itt megadott + állományméret nem nulla és a + minimálisan elvárt 512 KB alatt van, akkor + a rendszer figyelmen kívül hagyja és + errõl egy figyelmeztetést ad.</para> + + </sect3> + + <sect3 id="audit-audituser"> + <title>Az <filename>audit_user</filename> + állomány</title> + + <para>Az <filename>audit_user</filename> állomány + lehetõvé teszi a rendszergazda + számára, hogy az egyes + felhasználók számára + további vizsgálati szigorításokat + határozzon meg. Minden sor egy-egy + felhasználó vizsgálatának + pontosítását adja meg két + mezõ segítségével: az elsõ + közülük az <literal>alwaysaudit</literal> + mezõ, mely felsorolja azokat az eseményeket, + amelyeket minden esetben vizsgáni kell az adott + felhasználó esetén, valamint a + második a <literal>neveraudit</literal> mezõ, mely + az adott felhasználó esetén a nem + vizsgálandó eseményeket adja meg.</para> + + <para>A most következõ <filename>audit_user</filename> + példában vizsgáljuk a + <username>root</username> felhasználó ki- + és bejelentkezéseit és sikeres + programindításait, valamint a + <username>www</username> felhasználó + állománylétrehozásait és + sikeres programindításait. Ha a korábban + bemutatott <filename>audit_control</filename> + példával együtt használjuk, akkor + észrevehetjük, hogy a <literal>lo</literal> + bejegyzés a <username>root</username> + felhasználó esetén redundáns, + illetve ilyenkor a ki/bejelentkezést a + <username>www</username> felhasználó + esetén is vizsgáljuk.</para> + + <programlisting>root:lo,+ex:no +www:fc,+ex:no</programlisting> + + </sect3> + </sect2> + </sect1> + + <sect1 id="audit-administration"> + <title>A vizsgálati alrendszer használata</title> + + <sect2> + <title>A vizsgálati nyomok megtekintése</title> + + <para>A vizsgálati nyomok a BSM bináris + formátumban tárolódnak, ezért a + tartalmának konvertálásához + és módosításához + külön segédprogramokra van szükség. + A &man.praudit.1; parancs a nyomállományokat + egyszerû szöveges formátumra alakítja, + az &man.auditreduce.1; parancs pedig a nyomok + elemzéséhez, archiválásához + vagy nyomtatásához szükséges + leszûkítéséket végzi el. Az + <command>auditreduce</command> a szûrési + feltételek paramétereinek széles + skáláját kezeli, beleértve az + eseménytípusokat, -osztályokat, + felhasználókat, események + dátumát vagy idõpontját, + állományok elérési + útvonalát vagy az általuk érintett + objektumokat.</para> + + <para>Például a <command>praudit</command> + segédprogram képes kilistázni + szövegesen egy adott vizsgálati napló teljes + tartalmát:</para> + + <screen>&prompt.root; <userinput>praudit /var/audit/<replaceable>AUDITFILE</replaceable></userinput></screen> + + <para>ahol az + <filename><replaceable>AUDITFILE</replaceable></filename> a + kiírandó vizsgálati napló.</para> + + <para>A vizsgálati nyomok tokenekbõl + összeállított vizsgálati rekordok, + amelyeket a <command>praudit</command> egymás után + soronként megjelenít. Minden token adott + típusú, például a + <literal>header</literal> egy vizsgálati rekord + fejlécét tartalmazza, vagy a + <literal>path</literal>, amely a + névfeloldásból származó + elérési utat tartalmaz. A következõ + példa egy <literal>execve</literal> eseményt mutat + be:</para> + + <programlisting>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</programlisting> + + <para>Ez a vizsgálat egy sikeres <literal>execve</literal> + hívást rögzít, ahol a <literal>finger + doug</literal> parancs futott le. A paramétereket + tartalmazó token magában foglalja a shell + által a rendszermag felé jelzett parancsot + és annak paraméterét egyaránt. A + <literal>path</literal> token tárolja a + végrehajtott állomány rendszermag + által feloldott elérési + útját. A <literal>attribute</literal> token + errõl a binárisról ad további + információkat, különösen az + állomány módjáról, amely + segít megállapítani, hogy az adott + alkalmazásnál be volt-e állítva a + setuid bit. A <literal>subject</literal> token leírja az + érintett folyamatot és rendre megjegyzi a + vizsgált felhasználó + azonosítóját, az aktuálisan + érvényben levõ felhasználó + és csoport azonosítóját, a + valós felhasználói és csoport + azonosítót, a folyamat + azonosítóját, a munkamenet + azonosítóját, a port + azonosítóját és a + bejelentkezéshez használt hálózati + címet. Vegyük észre, hogy a vizsgált + felhasználó azonosítója és a + valódi azonosítója eltér + egymástól: a <username>robert</username> nevû + felhasználó a <username>root</username> + accountjára váltott a parancs futattása + elõtt, de az eredetileg hitelesített + felhasználójaként lett vizsgálva. + Végezetül a <literal>return</literal> token jelzi a + sikeres végrehajtást, és a + <literal>trailer</literal> pedig zárja a rekordot.</para> + + </sect2> + + <sect2> + <title>A vizsgálati nyomok + leszûkítése</title> + + <para>Mivel a vizsgálatokhoz tartozó naplók + akár egészen nagyok is lehetnek, ezért a + rendszergazdának minden bizonnyal szüksége + lehet a számára fontos, például egy + adott felhasználóhoz tartozó rekordok + kiválogatására:</para> + + <screen>&prompt.root; <userinput>auditreduce -u trhodes <replaceable>/var/audit/AUDITFILE</replaceable> | praudit</userinput></screen> + + <para>Ezzel ki tudjuk szûrni a <username>trhodes</username> + nevû felhasználóhoz tartozó + összes vizsgálati rekordot az + <filename><replaceable>AUDITFILE</replaceable></filename> + állományból.</para> + + </sect2> + + <sect2> + <title>A naplók megtekintéséhez + szükséges jogok továbbadása</title> + + <para>Az <groupname>audit</groupname> csoport tagjai + olvashatják a <filename>/var/audit</filename> + könyvtárban található + vizsgálati nyomokat. Alapértelmezés + szerint ez a csoport üres, ezért csak a + <username>root</username> képes ekkor vizsgálni a + nyomokat. A többi felhasználó + számára úgy tudunk olvasási jogot + biztosítani, ha felvesszük õket az + <groupname>audit</groupname> csoportba. Mivel a + vizsgálati naplók tartalmának + figyelése jelentõs rálátást + adhat a rendszerben jelenlevõ felhasználók + és folyamatok viselkedésére, + ajánlott körültekintõen kiosztani az + olvasási jogokat.</para> + + </sect2> + + <sect2> + <title>Élõ rendszerfelügyelet a vizsgálati + csövekkel</title> + + <para>A vizsgálati csövek az eszközök + állományabsztrakcióit + klónozzák le, és ezzel teszik + lehetõvé az alkalmazások + számára, hogy menet közben + megcsapolhassák a megfigyelt eszközök adatait. + Ez az elsõdleges célja a + különbözõ betörésfigyelõ + és rendszerfelügyeleti eszközök + készítõinek. A rendszergazda + számára azonban a vizsgálati csövek + megkönnyítik az élõ megfigyelést, + mert itt nem merülnek fel a nyomok + jogosultságaiból vagy az archiválás + miatt megszakadó eseményfolyamokból + adódó problémák. Az élõ + eseményfolyamra az alábbi parancs + kiadásával lehet rácsatlakozni:</para> + + <screen>&prompt.root; <userinput>praudit /dev/auditpipe</userinput></screen> + + <para>Alapértelmezés szerint a vizsgálati + csõhöz tartozó csomópontok + kizárólag csak a <username>root</username> + felhasználó részére + érhetõek el. Az <groupname>audit</groupname> + csoport tagjai úgy tudnak majd hozzáférni, + ha felvesszük a következõ + <literal>devfs</literal> szabályt a + <filename>devfs.rules</filename> + állományba:</para> + + <programlisting>add path 'auditpipe*' mode 0440 group audit</programlisting> + + <para>A devfs állományrendszer + beállításárõl bõvebben + lásd a &man.devfs.rules.5; oldalt.</para> + + <warning> + <para>Könnyen gerjedést lehet elõidézni + a vizsgált események + megfigyelésével, amikor is az egyes + események megtekintése újabb + vizsgálandó események sorozatát + indítják el. Például, ha az + összes hálózati forgalmat egyszerre + vizsgáljuk és a &man.praudit.1; egy + SSH-munkameneten keresztül fut, akkor a vizsgálati + események töméntelen áradata indul + meg, mivel minden kiírandó esemény egy + újabb eseményt indukál. Ennek + elkerülése érdekében ajánlott + a <command>praudit</command> parancsot részletes + forgalmat nem figyelõ vizsgálati csõvel + ellátott munkameneten keresztül + elindítani.</para> + </warning> + + </sect2> + + <sect2> + <title>A vizsgálati nyomok + archiválása</title> + + <para>A vizsgálati nyomokat egyedül a rendszermag + képes írni, illetve csak a vizsgálati + démon, az <application>auditd</application> képes + felügyelni. A rendszergazdáknak ebben az esetben + tehát nem szabad használniuk a + &man.newsyslog.conf.5; vagy a hozzá hasonló + eszközök használatát a vizsgálati + naplók archiválásához. + Helyettük a <command>audit</command> segédprogramot + javasolt használni a vizsgálatok + leállítására, a vizsgálati + rendszer újrakonfigurálására vagy a + napló archiválásának + elvégzésére. Az alábbi parancs + utasítja a vizsgálati démont, hogy hozzon + létre egy új vizsgálati naplót + és jelzi a rendszermagnak, hogy váltson erre az + új naplóra. Az eddig használt + naplót lezárja és átnevezi, ami + ezután a rendszergazda által tetszõlegesen + feldolgozható.</para> + + <screen>&prompt.root; <userinput>audit -n</userinput></screen> + + <warning> + <para>Ha az <application>auditd</application> démon a + parancs kiadásánák pillanatában + nem futna, akkor hiba történik és + errõl hibaüzenetet kapunk.</para> + </warning> + + <para>A &man.cron.8; segítségével + tizenként óránként + kikényszeríthetjük a naplók + váltását, ha felvesszük a + <filename>/etc/crontab</filename> állományba az + alábbi sort:</para> + + <programlisting>0 */12 * * * root /usr/sbin/audit -n</programlisting> + + <para>Ez a változtatás akkor fog + érvénybe lépni, ha elmentjük az + új <filename>/etc/crontab</filename> + állományt.</para> + + <para>A vizsgálati nyomok mérete szerinti + automatikus váltás is + megvalósítható az &man.audit.control.5; + állományban szereplõ <option>filesz</option> + opció beállításával, amit meg + is találhatunk ebben a fejezetben, a + konfigurációs állományok + beállításánál.</para> + + </sect2> + + <sect2> + <title>A vizsgálati nyomok + tömörítése</title> + + <para>Mivel a vizsgálati nyomok óriásira is + megnõhetnek, sokszor felmerül az igény, hogy + lehessen õket tömöríteni vagy más + egyéb módon archiválni a vizsgálati + démon által lezárt nyomokat. Az + <filename>audit_warn</filename> szkript + használható a különbözõ + vizsgálatokhoz kapcsolódó események + esetén elvégzendõ mûveletek + megadásához, beleértve ebbe a + vizsgálati nyomok váltásakor + elvégzett szabályos + lezárását. Például a + következõket kell beleírnunk az + <filename>audit_warn</filename> szkriptbe a nyomok + lezárását követõ + tömörítéséhez:</para> + + <programlisting># +# Lezáráskor tömöríti a vizsgálati nyomot. +# +if [ "$1" = closefile ]; then + gzip -9 $2 +fi</programlisting> + + <para>Egyéb archiválási + tevékenységek lehetnek még: a nyomok + felmásolása egy központi szerverre, a + régebbi nyomok törlése, vagy a meglevõ + nyomok leszûkítése csak a fontos + információkra. A szkript csak akkor fog lefutni, + ha a vizsgálati nyomot sikerült szabályosan + lezárni, így tehát a szabálytalan + leálláskor megmaradó nyomok esetén + nem.</para> + + <para>A &os; 6.3 és késõbbi + verzióiban, a <command>praudit</command> XML kimeneti + formátumot is támogat, amely az + <option>-x</option> kapcsolóval érhetõ + el.</para> + + </sect2> + </sect1> +</chapter> + diff --git a/hu_HU.ISO8859-2/books/handbook/basics/Makefile b/hu_HU.ISO8859-2/books/handbook/basics/Makefile new file mode 100644 index 0000000000..fea6942368 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/basics/Makefile @@ -0,0 +1,15 @@ +# +# Build the Handbook with just the content from this chapter. +# +# $FreeBSD$ +# + +CHAPTERS= basics/chapter.sgml + +VPATH= .. + +MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX} + +DOC_PREFIX?= ${.CURDIR}/../../../.. + +.include "../Makefile" diff --git a/hu_HU.ISO8859-2/books/handbook/basics/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/basics/chapter.sgml new file mode 100644 index 0000000000..6c5b53c2bd --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/basics/chapter.sgml @@ -0,0 +1,3561 @@ +<!-- + The FreeBSD Documentation Project + + $FreeBSD$ +--> + +<!-- The FreeBSD Hungarian Documentation Project + Translated by: PALI, Gabor <pgj@FreeBSD.org> + Original Revision: 1.153 --> + +<chapter id="basics" lang="hu"> + <chapterinfo> + <authorgroup> + <author> + <firstname>Chris</firstname> + <surname>Shumway</surname> + <contrib>Átdolgozta: </contrib> + </author> + </authorgroup> + </chapterinfo> + + <title>A UNIX alapjai</title> + + <sect1 id="basics-synopsis"> + <title>Áttekintés</title> + + <para>Ez a fejezet a &os; operációs rendszer + alapvetõ funkcióit és parancsait mutatja be. + Az itt tárgyalásra kerülõ anyag nagy + része érvényes bármelyik más + &unix;-szerû operációs rendszer esetén + is. Ezért, ha már ismerjük az + említésre kerülõ ismereteket, minden + további gond nélkül átugorhatjuk ezt a + fejezetet. Azonban ha még teljesen ismeretlen + számunkra a &os;, minden bizonnyal ez lesz az, amit + alaposan át kell majd olvasnunk.</para> + + <para>A fejezet elolvasása során + megismerjük:</para> + + <itemizedlist> + <listitem> + <para>az ún. <quote>virtuális konzolok</quote> + használatát &os; alatt;</para> + </listitem> + <listitem> + <para>hogyan mûködnek együtt a &unix; + állományokra vonatkozó engedélyei + a &os; saját + kiegészítéseivel;</para> + </listitem> + <listitem> + <para>egy &os; állományrendszer + alapértelmezett + kialakítását;</para> + </listitem> + <listitem> + <para>a &os; lemezszervezését;</para> + </listitem> + <listitem> + <para>hogyan csatlakoztassunk és válasszunk le + állományrendszereket;</para> + </listitem> + <listitem> + <para>mik azok a folyamatok, démonok és + jelzések;</para> + </listitem> + <listitem> + <para>mik azok a parancsértelmezõk, és + miként tudjuk megváltoztatni az + alapértelmezett bejelentkezési + környezetünket;</para> + </listitem> + <listitem> + <para>hogyan használjuk az alapvetõ + szövegszerkesztõket;</para> + </listitem> + <listitem> + <para>mik az eszközök és az + eszközleírók;</para> + </listitem> + <listitem> + <para>&os; alatt milyen bináris formátumokat + használhatunk;</para> + </listitem> + <listitem> + <para>szükség esetén hogyan olvassuk el a + megfelelõ man oldalakat.</para> + </listitem> + </itemizedlist> + + </sect1> + + <sect1 id="consoles"> + <title>Virtuális konzolok és terminálok</title> + + <indexterm><primary>virtuális konzolok</primary></indexterm> + <indexterm><primary>terminálok</primary></indexterm> + + <para>A &os; számos módon használható. + Ezek közül az egyik az, ha parancsokat + gépelünk be a szöveges terminálon. + Így érhetõ el egyszerûen a &unix; + operációs rendszer rugalmasságának + és erejének jelentõs része. Ebben a + szakaszban megtudhatjuk, mik azok a + <quote>terminálok</quote> és <quote>konzolok</quote> + és miként tudjuk ezeket &os; alatt + használni.</para> + + <sect2 id="consoles-intro"> + <title>A konzol</title> + + <indexterm><primary>konzol</primary></indexterm> + + <para>Ha nem állítottuk volna be, hogy a &os; + indulása során automatikusan induljon el a + grafikus felület is, akkor a rendszer egy bejelentkezõ + képernyõt fog mutatni közvetlenül a + rendszerindítás befejezõdése + után. Ekkor valami ilyesmit kell majd + látnunk:</para> + + <screen>Additional ABI support:. +Local package initialization:. +Additional TCP options:. + +Fri Sep 20 13:01:06 EEST 2002 + +FreeBSD/i386 (pc3.example.org) (ttyv0) + +login:</screen> + + <para>Egyes rendszereken ugyan némileg eltérhetnek + az üzenetek, de hasonlót kell látnunk. + Minket most az utolsó két sor érdekel. Az + utolsó elõtti sorban ez olvasható:</para> + + <programlisting>FreeBSD/i386 (pc3.example.org) (ttyv0)</programlisting> + + <para>Ez a sor arról értesít minket, hogy a + rendszerünk éppen most indult el: egy + <quote>&os;</quote> konzolt látunk, amely egy &intel; x86 + architektúrájú processzoron fut + <footnote> + <para>Erre utal pontosan az <literal>i386</literal> + jelzés. Még abban az esetben is a + <literal>i386</literal> kiírást fogjuk + látni, hogy ha a &os;-t konkrétan nem is az + &intel; 386-os processzorán futtatjuk. Itt ugyanis + nem a processzorunk típusát, hanem annak + <quote>architektúráját</quote> + láthatjuk.</para> + </footnote>. A gépünk neve (mivel minden &unix;-os + gép rendelkezik egy névvel) + <hostid>pc3.example.org</hostid>, és ennek a + rendszerkonzolját látjuk most éppen + — a <devicename>ttyv0</devicename> + terminált.</para> + + <para>Végezetül az utolsó sor mindig:</para> + + <programlisting>login:</programlisting> + + <para>Ez az a rész, ahova a &os;-be + történõ bejelentkezéshez meg kell adnunk + a <quote>felhasználói nevünket</quote> (user + name). A következõ szakaszban errõl + olvashatunk.</para> + + </sect2> + + <sect2 id="consoles-login"> + <title>Bejelentkezés a &os;-be</title> + + <para>A &os; egy többfelhasználós, + többfeladatos rendszer. Így hívják + hivatalosan azokat a rendszereket, amelyeket többen tudnak + használni és egyetlen + számítógépen egyszerre rengeteg + programot képesek futtatni.</para> + + <para>Minden többfelhasználós rendszernek + valamilyen módon meg kell tudnia + különböztetnie egy + <quote>felhasználóját</quote> a + többitõl. A &os;-ben (és minden más + &unix;-szerû operációs rendszerben) ezt + úgy érik el, hogy a programok futtatása + elõtt minden felhasználónak <quote>be kell + jelentkeznie</quote> a rendszerbe. Minden + felhasználó rendelkezik egy egyedi névvel + (ez a <quote>felhasználói név</quote>) + és ehhez egy titkos kulcssal (ez a + <quote>jelszó</quote>). A &os; a programok + futtatásához ezt a kettõt fogja + elkérni a felhasználótól.</para> + + <indexterm><primary>rendszerindító szkriptek</primary></indexterm> + + <para>Egybõl miután a &os; elindult és + befejezte a rendszerindításhoz használt + szkriptjeinek lefuttatását + <footnote> + <para>A rendszerindító szkriptek olyan + programok, amelyek a &os; indulása során + maguktól lefutnak. Legfontosabb feladatuk + elvégezni a többi program + futtatásához szükséges + beállításokat, valamint + elindítani a háttérben + futtatandó, hasznos munkát végzõ + szolgáltatásokat.</para> + </footnote>, ez a kijelzés (vagy más néven + <quote>prompt</quote>) fog megjelenni és kér egy + érvényes felhasználói + nevet:</para> + + <screen>login:</screen> + + <para>A példa kedvéért most tegyük fel, + hogy a felhasználói nevünk + <username>pgj</username>. Az iménti prompthoz + írjuk be, hogy <literal>pgj</literal> és nyomjuk + le az <keycap>Enter</keycap> billentyût. Ezt + követõen meg kell jelennie egy másik promptnak + is, amely egy <quote>jelszót</quote> (password) + kér:</para> + + <screen>login: <userinput>pgj</userinput> +Password:</screen> + + <para>Most pedig gépeljük be <username>pgj</username> + jelszavát és nyomjunk után egy + <keycap>Enter</keycap> billentyût. Vigyázzunk, hogy + a jelszót <emphasis>nem látjuk</emphasis> a + beírás során! Emiatt most ne + aggódjunk. Ezzel kapcsolatban elegendõ csak annyit + tudni, hogy mindez biztonsági + megfontolásokból történik.</para> + + <para>Amennyiben jól adtuk meg a jelszavunkat, sikeresen + bejelentkezünk a &os; rendszerébe és + készen állunk az összes elérhetõ + parancs kipróbálására.</para> + + <para>Bejelentkezés után a <acronym>MOTD</acronym> + (message of the day) vagy más néven <quote>a nap + üzenete</quote> jelenik meg, amelyet a parancssor + követ (egy <literal>#</literal>, <literal>$</literal> vagy + <literal>%</literal> jel). Innen tudhatjuk meg, hogy + sikerült bejelentkeznünk.</para> + + </sect2> + + <sect2 id="consoles-virtual"> + <title>Több konzol használata</title> + + <para>A &unix; parancsokat egy konzolon is szépen ki tudjuk + adni, de a &os; egyszerre ugyebár több programot is + tud futtatni. A parancsok megadásához viszont + egyetlen konzol használata elég nagy + pazarlás lenne, hiszen egy olyan operációs + rendszer mint a &os;, tucatnyi programot képes futtatni + egy idõben. Ebben az esetben jelenthetnek számunkra + segítséget a <quote>virtuális + konzolok</quote>.</para> + + <para>A &os; beállítható úgy, hogy + sok-sok különféle virtuális konzolt + ajánljon fel számunkra. A virtuális + konzolok között a billentyûzeten a megfelelõ + gombok lenyomásával tudunk váltani. + Mindegyik konzolnak megvan a saját kimeneti + csatornája, és a virtuális konzolok + közti váltás folyamán a &os; + gondoskodik a billentyûzetrõl érkezõ + bemenet valamint a monitorra irányított kimenet + megfelelõ kezelésérõl.</para> + + <para>A konzolok közti váltásra a &os; + külön billentyûkombinációkat tart + fenn + <footnote> + <para>A &os; konzol- és + billentyûzetmeghajtóinak teljes, pusztán + mûszaki és precíz leírása a + &man.syscons.4;, &man.atkbd.4;, &man.vidcontrol.1; és + &man.kbdcontrol.1; man oldalakon olvasható. Itt most + nem bocsátkozunk részletekbe, azonban a + téma iránt érdeklõdõ + olvasóknak mindig érdemes fellapozniuk a + kapcsolódó man oldalakat, ahol + megtalálhatják az említett + eszközök részletesebb és bõvebb + leírását.</para> + </footnote>. A &os;-ben a különbözõ + virtuális konzolok közti váltásra az + <keycombo><keycap>Alt</keycap><keycap>F1</keycap></keycombo>, + <keycombo><keycap>Alt</keycap><keycap>F2</keycap></keycombo> + billentyûket, a + <keycombo><keycap>Alt</keycap><keycap>F8</keycap></keycombo> + billentyûkombinációval + bezárólag használhatjuk.</para> + + <para>A konzolok közti váltogatás során + a &os; ügyel a képernyõ tartalmának + elmentésére és + visszaállítására. Ennek + eredményeképpen <quote>úgy + látszik</quote>, mintha több + <quote>virtuális</quote> képernyõn és + billentyûzeten adnánk parancsokat a &os;-nek.</para> + + </sect2> + + <sect2 id="consoles-ttys"> + <title>Az <filename>/etc/ttys</filename> + állomány</title> + + <para>A &os; alapértelmezés szerint nyolc + virtuális konzollal indul. Ez azonban nem egy elõre + rögzített érték, hiszen + könnyedén testreszabhatjuk úgy a + telepített rendszerünket, hogy több vagy + esetleg kevesebb virtuális konzollal induljon el. A + virtuális konzolok száma és azok pontos + beállítása az + <filename>/etc/ttys</filename> állományon + keresztül adható meg.</para> + + <para>A &os; virtuális konzoljait tehát az + <filename>/etc/ttys</filename> állomány + megfelelõ módosításával tudjuk + behangolni. Itt minden egyes olyan sor, amely nem + megjegyzés (vagyis azok a sorok, amelyek nem a + <literal>#</literal> karakterrel kezdõdnek), tartalmazza az + egyes terminálok vagy virtuális konzolok + beállításait. Az állomány a + &os; telepítésében szereplõ, + alapértelmezett változata kilenc virtuális + konzol konfigurációját tartalmazza, amelyek + közül nyolc aktív. Ezek a + <literal>ttyv</literal> résszel kezdõdõ + sorok:</para> + + <programlisting># name getty type status comments +# +ttyv0 "/usr/libexec/getty Pc" cons25 on secure +# Virtual terminals +ttyv1 "/usr/libexec/getty Pc" cons25 on secure +ttyv2 "/usr/libexec/getty Pc" cons25 on secure +ttyv3 "/usr/libexec/getty Pc" cons25 on secure +ttyv4 "/usr/libexec/getty Pc" cons25 on secure +ttyv5 "/usr/libexec/getty Pc" cons25 on secure +ttyv6 "/usr/libexec/getty Pc" cons25 on secure +ttyv7 "/usr/libexec/getty Pc" cons25 on secure +ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure</programlisting> + + <para>Az állományban található + oszlopok kimerítõ magyarázatát illetve + a virtuális konzolok + beállításához + használható kapcsolókat a &man.ttys.5; man + oldalon olvashatjuk.</para> + + </sect2> + + <sect2 id="consoles-singleuser"> + <title>Az egyfelhasználós mód + konzolja</title> + + <para>Az <quote>egyfelhasználós mód</quote> + részletes leírása a <xref + linkend="boot-singleuser">ban található. Fontos + tudni, hogy amikor a &os;-t egyfelhasználós + módban futtatjuk, csupán egyetlen konzolunk van, + és a virtuális konzolok nem érhetõek + el. Egyébként az egyfelhasználós + mód erre vonatkozó + beállításai is megtalálhatóak + az <filename>/etc/ttys</filename> állományban. + Ehhez keressük meg a <literal>console</literal> + kezdetû sort:</para> + + <programlisting># name getty type status comments +# +# Ha a konzolt "insecure" (nem biztonságos) típusúnak választjuk meg, +# akkor a használatához az egyfelhasználós mód aktivilásá elõtt a rendszer +# kérni fogja a rendszeradminisztrátori jelszót. +onsole none unknown off secure</programlisting> + + <note> + <para>A <literal>console</literal> felett látható + megjegyzés jelzi, hogy át tudjuk írni + ebben a sorban a <literal>secure</literal> + (biztonságos) értékû + paramétert <literal>insecure</literal> (nem + biztonságos) értékûre. Ilyenkor, + hogy ha a &os; egyfelhasználós módban + indul, kérni fogja a <username>root</username> + felhasználó (a rendszeradminisztrátor) + jelszavát.</para> + + <para><emphasis>Vigyázzunk, amikor ezt az + értéket <literal>insecure</literal>-ra + állítjuk!</emphasis> Ha ugyanis + véletlenül elfeledkeznénk a + <username>root</username> jelszaváról, akkor + azzal az egyfelhasználós mód + használata is veszélybe kerülhet. + Habár ettõl függetlenül is + lehetséges, azokra számára mégis + nehéz helyzetnek bizonyulhat, akik nem mozognak + elég otthonosan a &os; rendszerindítási + folyamatának és a + hozzákapcsolódó programok + ismeretében.</para> + </note> + + </sect2> + + <sect2 id="consoles-vidcontrol"> + <title>A videomód váltása konzolban</title> + + <para>A &os; konzol alapértelmezett videomódja + átállítható 1024x768-ra, + 1280x1024-re, vagy bármilyen olyan más + méretre, amit a videokártyánk + és monitorunk képes megjeleníteni. Az + eltérõ videomódok használatához + elõször újra kell fordítanunk a + rendszermagunkat az alábbi két + beállítás + hozzáadásával:</para> + + <programlisting>options VESA +options SC_PIXEL_MODE</programlisting> + + <para>Miután a rendszermagot sikeresen + újrafordítottuk a fenti + beállításokkal, a &man.vidcontrol.1; + segédprogrammal tudjuk megállapítani, hogy + a hardverünk milyen videomódokat enged + használni. Az összes támogatott + videomódot a következõképpen tudjuk + lekérdezni:</para> + + <screen>&prompt.root; <userinput>vidcontrol -i mode</userinput></screen> + + <para>A parancs eredményeképpen tehát + megkapjuk a hardverünk által ismert + videomódokat. Ezek közül tudjuk + kiválasztani valamelyikõjüket és + <username>root</username> felhasználóként a + &man.vidcontrol.1; segítségével + beállítani:</para> + + <screen>&prompt.root; <userinput>vidcontrol MODE_279</userinput></screen> + + <para>Ha az új videomód megfelel számunkra, + akkor ezt a beállítást az + <filename>/etc/rc.conf</filename> állományon + keresztül véglegesíthetjük is:</para> + + <programlisting>allscreens_flags="MODE_279"</programlisting> + + </sect2> + </sect1> + + <sect1 id="permissions"> + <title>Engedélyek</title> + + <indexterm><primary>UNIX</primary></indexterm> + + <para>A &os;, mivel a BSD &unix; egyik közvetlen + leszármazottja, számos &unix;-os alapötletre + épül. Ezek közül az elsõ és + talán a leginkább kihangsúlyozott, hogy a + &os; egy többfelhasználós + operációs rendszer. Egy olyan rendszer, amely + egyszerre több, egymástól független + feladattal foglalkozó felhasználót + képes kiszolgálni. A rendszer felelõs a + hardveres eszközök, a különféle + perifériák, a memória és a processzor + idejének minden egyes felhasználó + számára szabályos és pártatlan + megosztásáért és a feléjük + irányuló kérések + szervezéséért.</para> + + <para>Mivel a rendszer több felhasználót is + képes támogatni, az általa kezelt + erõforrások rendelkeznek engedélyek egy adott + halmazával, amelyek eldöntik ki tudja ezeket olvasni, + írni és végrehajtani. Az engedélyek + háromszor három bit formájában + jelennek meg, amelyek közül az elsõ bitcsoport az + állomány tulajdonosára, a második az + állomány csoportjára, végül az + utolsó pedig a mindenki másra vonatkozó + engedélyeket tárolja.</para> + + <indexterm><primary>engedélyek</primary></indexterm> + <indexterm><primary>állományok + engedélyei</primary></indexterm> + + <informaltable frame="none" pgwide="1"> + <tgroup cols="3"> + <thead> + <row> + <entry>Érték</entry> + <entry>Engedély</entry> + <entry>Könyvtárlistában</entry> + </row> + </thead> + + <tbody> + <row> + <entry>0</entry> + <entry>Nem olvasható, nem írható, nem + hajtható végre</entry> + <entry><literal>---</literal></entry> + </row> + + <row> + <entry>1</entry> + <entry>Nem olvasható, nem írható, + végrehajtható</entry> + <entry><literal>--x</literal></entry> + </row> + + <row> + <entry>2</entry> + <entry>Nem olvasható, írható, nem + hajtható végre</entry> + <entry><literal>-w-</literal></entry> + </row> + + <row> + <entry>3</entry> + <entry>Nem olvasható, írható, + végrehajtható</entry> + <entry><literal>-wx</literal></entry> + </row> + + <row> + <entry>4</entry> + <entry>Olvasható, nem írható, nem + hajtható végre</entry> + <entry><literal>r--</literal></entry> + </row> + + <row> + <entry>5</entry> + <entry>Olvasható, nem írható, + végrehajtható</entry> + <entry><literal>r-x</literal></entry> + </row> + + <row> + <entry>6</entry> + <entry>Olvasható, írható, nem + hajtható végre</entry> + <entry><literal>rw-</literal></entry> + </row> + + <row> + <entry>7</entry> + <entry>Olvasható, írható, + végrehajtható</entry> + <entry><literal>rwx</literal></entry> + </row> + </tbody> + </tgroup> + </informaltable> + + <indexterm><primary><command>ls</command></primary></indexterm> + <indexterm><primary>könyvtárak</primary></indexterm> + + <para>A &man.ls.1; <option>-l</option> kapcsolójának + segítségével megnézhetjük a + könyvtárak tartalmának részletes + listáját, amiben megjelennek az + állományok tulajdonosaira, csoportjára + és a mindenki másra vonatkozó + engedélyek is. Például ezt láthatjuk, + ha kiadjuk az <command>ls -l</command> parancsot egy + tetszõleges könyvtárban:</para> + + <screen>&prompt.user; <userinput>ls -l</userinput> +total 530 +-rw-r--r-- 1 root wheel 512 Sep 5 12:31 egyik +-rw-r--r-- 1 root wheel 512 Sep 5 12:31 masik +-rw-r--r-- 1 root wheel 7680 Sep 5 12:31 e-mail.txt +...</screen> + + <para>A példabeli <command>ls -l</command> parancs + kimenetének elsõ oszlopa így bomlik fel:</para> + + <screen>-rw-r--r--</screen> + + <para>Az elsõ (legbaloldalibb) karakter mondja meg, hogy ez egy + hagyományos állomány, könyvtár, + speciális karakteres eszköz, socket vagy + bármilyen más különleges + pszeudoállomány. Ebben az esetben a + <literal>-</literal> jelzi, hogy egy hagyományos + állományról van szó. A + következõ három karakter, ami ebben a + példában az <literal>rw-</literal>, adja meg az + állomány tulajdonosának engedélyeit. + Az ezután következõ három karakter, a + <literal>r--</literal> mutatja az állomány + csoportjának engedélyeit. Az utolsó + három karakter, vagyis itt a <literal>r--</literal> adja + meg a többiek engedélyeit. A kötõjel arra + utal, hogy az adott engedélyû + tevékenység nem engedélyezett. Tehát + ennél az állománynál az + engedélyek a következõek: a tulajdonosa tudja + olvasni és írni, a csoportja csak olvasni tudja, + ugyanígy bárki más. A fenti + táblázatnak megfelelõen az + állomány engedélyének kódja + <literal>644</literal> lesz, ahol az egyes számjegyek + jelentik az állomány engedélyeinek + három elemét.</para> + + <para>Ez mind szép és jó, de vajon a rendszer + milyen módon kezeli az állományok + engedélyeit? A &os; a legtöbb hardveres eszközt + állománynak tekinti, amelyeket a programok meg + tudnak nyitni, tudnak róluk olvasni és adatokat + tudnak kiírni rájuk pontosan úgy, mint + bármilyen más állomány esetén. + Ezeket a speciális állományokat a + <filename>/dev</filename> könyvtárban + találjuk.</para> + + <para>A könyvtárakat is + állományokként kezeli, ezért azok is + rendelkeznek olvasási, írási és + végrehajtási engedélyekkel. Azonban a + könyvtárak végrehajtását + engedélyezõ bit némileg más + jelentéssel bír, mint az állományok + esetén. Amikor ugyanis egy könyvtárat + végrehajthatónak jelölünk meg, az arra fog + utalni, hogy bele tudunk lépni, vagyis hogy ki tudjuk + rá adni a + <quote>könyvtárváltás</quote> (cd, + change directory) parancsát. Ez továbbá arra + is utal, hogy az ismert nevû állományokhoz + hozzá tudunk férni (természetesen az egyes + állományok engedélyeinek + megfelelõen).</para> + + <para>A könyvtárak tartalmát ennek + megfelelõen viszont csak úgy láthatjuk, ha + olvasási engedéllyel rendelkezünk a + könyvtárra, míg egy általunk ismert + állomány törléséhez a + tartalmazó könyvtárhoz kell írási + <emphasis>és</emphasis> végrehajtási + engedélyekkel rendelkeznünk.</para> + + <para>Ezeken kívül még léteznek + további engedélyek is, de ezeket csak olyan + különleges esetekben használják, mint + például a + felhasználóváltó programok (setuid + program) vagy a ragadós könyvtárak (sticky + directory) létrehozása. Az állományok + engedélyeinek behatóbb megismeréséhez + és beállításához + mindenképpen nézzük át a &man.chmod.1; + man oldalt.</para> + + <sect2> + <sect2info> + <authorgroup> + <author> + <firstname>Tom</firstname> + <surname>Rhodes</surname> + <contrib>Írta: </contrib> + </author> + </authorgroup> + </sect2info> + + <title>Szimbolikus engedélyek</title> + + <indexterm> + <primary>engedélyek</primary> + <secondary>szimbolikus</secondary> + </indexterm> + + <para>A szimbolikus engedélyek (gyakran csak szimbolikus + kifejezések) az állományok és + könyvtárak engedélyeinek megadása + során a számok helyett karaktereket + használnak. A szimbolikus kifejezések (ki) + (hogyan) (milyen engedélyt) alakúak, ahol az + alábbi értékek adhatóak meg:</para> + + <informaltable frame="none" pgwide="1"> + <tgroup cols="3"> + <thead> + <row> + <entry>Elem</entry> + <entry>Betû</entry> + <entry>Jelentése</entry> + </row> + </thead> + + <tbody> + <row> + <entry>(ki)</entry> + <entry>u</entry> + <entry>tulajdonos</entry> + </row> + + <row> + <entry>(ki)</entry> + <entry>g</entry> + <entry>csoport tulajdonos</entry> + </row> + + <row> + <entry>(ki)</entry> + <entry>o</entry> + <entry>egyéb</entry> + </row> + + <row> + <entry>(ki)</entry> + <entry>a</entry> + <entry>mindenki (a <quote>világ</quote>)</entry> + </row> + + <row> + <entry>(hogyan)</entry> + <entry>+</entry> + <entry>engedély megadása</entry> + </row> + + <row> + <entry>(hogyan)</entry> + <entry>-</entry> + <entry>engedély visszavonása</entry> + </row> + + <row> + <entry>(hogyan)</entry> + <entry>=</entry> + <entry>engedély explicit + beállítása</entry> + </row> + + <row> + <entry>(milyen engedély)</entry> + <entry>r</entry> + <entry>olvasás</entry> + </row> + + <row> + <entry>(milyen engedély)</entry> + <entry>w</entry> + <entry>írás</entry> + </row> + + <row> + <entry>(milyen engedély)</entry> + <entry>x</entry> + <entry>végrehajtás</entry> + </row> + + <row> + <entry>(milyen engedély)</entry> + <entry>t</entry> + <entry>ragadós (sticky bit)</entry> + </row> + + <row> + <entry>(milyen engedély)</entry> + <entry>s</entry> + <entry>UID vagy GID állítása</entry> + </row> + </tbody> + </tgroup> + </informaltable> + + <para>Ezek az értékek a &man.chmod.1; paranccsal az + eddigiekhez hasonló módon + használhatóak, csak itt betûket kell + megadnunk. Például az alábbi paranccsal + akadályozhatjuk meg, hogy a tulajdonosán + kívül bárki hozzáférhessen az + <replaceable>ÁLLOMÁNY</replaceable> nevû + állományhoz:</para> + + <screen>&prompt.user; <userinput>chmod go= <replaceable>ÁLLOMÁNY</replaceable></userinput></screen> + + <para>Amennyiben egy állománnyal kapcsolatban + több változtatást is el + kívánunk végezni, össze tudjuk ezeket + fûzni egy vesszõkkel elhatárolt + felsorolásban:</para> + + <screen>&prompt.user; <userinput>chmod go-w,a+x <replaceable>ÁLLOMÁNY</replaceable></userinput></screen> + + </sect2> + + <sect2> + <sect2info> + <authorgroup> + <author> + <firstname>Tom</firstname> + <surname>Rhodes</surname> + <contrib>Írta: </contrib> + </author> + </authorgroup> + </sect2info> + + <title>A &os; állományjelzõi</title> + + <para>A korábban tárgyalt engedélyek mellett + még a &os; ismeri az ún. + <quote>állományjelzõk</quote> (file flags) + beállítását is. Ezek a + jelzõbitek egy további biztonsági és + irányítási szintet nyújtanak az + állományok felett, viszont a + könyvtárakra nem vonatkoznak.</para> + + <para>Ezek az állományjelzõk az + állományok felett további + vezérlést adnak a kezünkbe, aminek + révén gondoskodhatunk róla, hogy + akár mgé a <username>root</username> + felhasználó (a rendszer adminisztrátora) se + legyen képes állományokat + eltávolítani vagy módosítani.</para> + + <para>Az állományjelzõk értékei + egy egyszerû felületen keresztül, a + &man.chflags.1; segédprogrammal + változtathatóak meg. Például a + következõ paranccsal állíthatjuk a + rendszer törölhetetlen (undeletable) + jelzését az <filename>allomany1</filename> + állományon:</para> + + <screen>&prompt.root; <userinput>chflags sunlink <filename>allomany1</filename></userinput></screen> + + <para>A törölhetetlen jelzés + eltávolításához egyszerûen csak + írjuk be az elõzõ parancsot úgy, hogy a + <quote>sunlink</quote> paraméter elejére + még beszúrunk egy <quote>no</quote> + szövegrészt. Így:</para> + + <screen>&prompt.root; <userinput>chflags nosunlink <filename>allomany1</filename></userinput></screen> + + <para>Az állományokra éppen + érvényes jelzéseket az &man.ls.1; parancs + <option>-lo</option> kapcsolójának + segítségével jeleníthetjük + meg:</para> + + <screen>&prompt.root; <userinput>ls -lo <filename>file1</filename> + </userinput></screen> + + <para>Ennek megfelelõen az eredménynek valahogy + így kellene kinéznie:</para> + + <programlisting>-rw-r--r-- 1 trhodes trhodes sunlnk 0 Mar 1 05:54 allomany1</programlisting> + + <para>Sok jelzés csak a <username>root</username> + felhasználón keresztül vehetõ fel vagy + távolítható el. Más esetekben + viszont az állomány tulajdonosa + állíthatja ezeket. A rendszergazdáknak + javasoljuk, hogy ezzel kapcsolatban a &man.chflags.1; és + &man.chflags.2; man oldalakat tanulmányozzák + át.</para> + + </sect2> + </sect1> + + <sect1 id="dirstructure"> + <title>A könyvtárak elrendezése</title> + + <indexterm><primary>könyvtárhierarchia</primary></indexterm> + + <para>A &os; könyvtárszerkezetének ismerete + alapvetõ jelentõségû a rendszer + egészének megértésének + szempontjából. Ezen belül is a legfontosabb a + gyökérkönyvtár, a <quote>/</quote>. Ez az + elsõ könyvtár, amelyet a rendszer a + rendszerindítás során csatlakoztat és + a többfelhasználós mód + elõkészítéséhez + elegendhetlenül szükséges alaprendszert + tartalmazza. A gyökérkönyvtár emellett + csatlakozási pontokat szolgáltat a + többfelhasználós mûködésre + váltás során csatlakoztatandó + további állományrendszerek + számára.</para> + + <para>A csatlakozási pont egy olyan könyvtár, + ahová a szülõ állományrendszeren + (ami gyakran maga a gyökér + állományrendszer) belül további + állományrendszereket tudunk beoltani. Errõl + bõvebben a <xref linkend="disk-organization">ban olvashatunk. + A szabványos csatlakozási pontok: + <filename>/usr</filename>, <filename>/var</filename>, + <filename>/tmp</filename>, <filename>/mnt</filename> és + <filename>/cdrom</filename>. Ezekre a könyvtárakra + általában az <filename>/etc/fstab</filename> + állományban találunk hivatkozásokat. + Az <filename>/etc/fstab</filename> állomány a + rendszer számára a különbözõ + állományrendszerek és a hozzájuk + tartozó csatlakozási pontok + táblázatát tartalmazza. Az + <filename>/etc/fstab</filename> állományban + szereplõ legtöbb állományrendszer a + rendszerindítás során automatikusan + csatlakoztatásra kerül az &man.rc.8; szkriptbõl, + hacsak nem tartalmazzák a <option>noauto</option> + beállítást. Ennek részleteit a <xref + linkend="disks-fstab">ban találhatjuk meg.</para> + + <para>Az állományrendszerek + hierarchiájának teljes leírását + a &man.hier.7; man oldalon olvashatjuk. Mi egyelõre most + megelégszünk a leggyakrabban megjelenõ + könyvtárak rövid + áttekintésével.</para> + + <para> + <informaltable frame="none" pgwide="1"> + <tgroup cols="2"> + <thead> + <row> + <entry>Könyvtár</entry> + <entry>Mi található itt</entry> + </row> + </thead> + <tbody valign="top"> + <row> + <entry><filename class="directory">/</filename></entry> + <entry>Az állományrendszer + gyökere.</entry> + </row> + <row> + <entry><filename class="directory">/bin/</filename></entry> + <entry>Az egy- és + többfelhasználós környezetekben + is egyaránt alapvetõ + felhasználói + segédprogramok.</entry> + </row> + <row> + <entry><filename class="directory">/boot/</filename></entry> + <entry>Az operációs rendszer + indítása során használt + programok és konfigurációs + állományok.</entry> + </row> + <row> + <entry><filename class="directory">/boot/defaults/</filename></entry> + <entry>A rendszerindítás + alapértelmezett konfigurációs + állományai. Lásd + &man.loader.conf.5;</entry> + </row> + <row> + <entry><filename class="directory">/dev/</filename></entry> + <entry>Eszközleírók, lásd + &man.intro.4;.</entry> + </row> + <row> + <entry><filename class="directory">/etc/</filename></entry> + <entry>Rendszerkonfigurációs + állományok és szkriptek.</entry> + </row> + <row> + <entry><filename class="directory">/etc/defaults/</filename></entry> + <entry>Az alapértelmezett + rendszerkonfigurációs + állományok, lásd + &man.rc.8;.</entry> + </row> + <row> + <entry><filename class="directory">/etc/mail/</filename></entry> + <entry>A &man.sendmail.8; programhoz hasonló + levélküldõ rendszerek + konfigurációs + állományai.</entry> + </row> + <row> + <entry><filename class="directory">/etc/namedb/</filename></entry> + <entry>A <command>named</command> program + konfigurációs állományai, + lásd &man.named.8;.</entry> + </row> + <row> + <entry><filename class="directory">/etc/periodic/</filename></entry> + <entry>A &man.cron.8; által naponta, hetente + és havonta lefuttatandó szkriptek, + lásd &man.periodic.8;.</entry> + </row> + <row> + <entry><filename class="directory">/etc/ppp/</filename></entry> + <entry>A <command>ppp</command> program + konfigurációs állományai, + lásd &man.ppp.8;.</entry> + </row> + <row> + <entry><filename class="directory">/mnt/</filename></entry> + <entry>Egy üres könyvtár, amelyet a + rendszergazdák általában ideiglenes + csatlakozási pontként + használnak.</entry> + </row> + <row> + <entry><filename class="directory">/proc/</filename></entry> + <entry>A futó programokat tartalmazó + állományrendszer, lásd + &man.procfs.5;, illetve &man.mount.procfs.8;.</entry> + </row> + <row> + <entry><filename class="directory">/rescue/</filename></entry> + <entry>Statikusan linkelt programok vészhelyzet + esetére, lásd &man.rescue.8;.</entry> + </row> + <row> + <entry><filename class="directory">/root/</filename></entry> + <entry>A <username>root</username> + felhasználó könyvtára.</entry> + </row> + <row> + <entry><filename class="directory">/sbin/</filename></entry> + <entry>Az egy- és + többfelhasználós környezetekben + fontos rendszerprogramok és + rendszerfelügyeleti eszközök.</entry> + </row> + <row> + <entry><filename class="directory">/tmp/</filename></entry> + <entry>Átmeneti állományok. A + <filename class="directory">/tmp</filename> + könyvtár tartalma általában + NEM marad meg az újraindítás + után. Erre a célra gyakran + memóriában létrehozott + állományrendszert szoktak csatlakoztatni a + <filename class="directory">/tmp</filename> + könyvtárba. Ez utóbbit az + &man.rc.conf.5; tmpmfs-re vonatkozó + változóinak + beállításával lehet + automatikussá tenni (vagy a + <filename>/etc/fstab</filename> megfelelõ + módosításával, lásd + &man.mdmfs.8;).</entry> + </row> + <row> + <entry><filename class="directory">/usr/</filename></entry> + <entry>A felhasználói programok és + alkalmazások többsége.</entry> + </row> + <row> + <entry><filename class="directory">/usr/bin/</filename></entry> + <entry>Általános segédprogramok, + programozási eszközök és + alkalmazások.</entry> + </row> + <row> + <entry><filename class="directory">/usr/include/</filename></entry> + <entry>Szabványos C + include-állományok.</entry> + </row> + <row> + <entry><filename class="directory">/usr/lib/</filename></entry> + <entry>Függvénykönyvtárak.</entry> + </row> + <row> + <entry><filename class="directory">/usr/libdata/</filename></entry> + <entry>Egyéb hasznos + adatállományok.</entry> + </row> + <row> + <entry><filename class="directory">/usr/libexec/</filename></entry> + <entry>(Más programok által használt) + Rendszerdémonok és + rendszereszközök.</entry> + </row> + <row> + <entry><filename + class="directory">/usr/local/</filename></entry> + <entry>A helyi rendszeren telepített programok, + függvénykönyvtárak stb. A &os; + portrendszere is ezt használja + alapértelmezés szerint. A + <filename>/usr/local</filename> könyvtáron + belül a &man.hier.7; man oldalon + található <filename>/usr</filename> + könyvtár általános + felépítése használatos. Ez + alól kivételt képez a man + alkönyvtár, amely közvetlenül a + <filename>/usr/local</filename> alatt + található, nem pedig a + <filename>/usr/local/share</filename> + könyvtáron belül, valamint a portok + dokumentációja a + <filename>share/doc/<replaceable>port</replaceable></filename> + könyvtárban található.</entry> + </row> + <row> + <entry><filename + class="directory">/usr/obj/</filename></entry> + <entry>A <filename>/usr/src</filename> + könyvtárfában található + források fordítása során + keletkezõ architektúrafüggõ + objektumok.</entry> + </row> + <row> + <entry><filename + class="directory">/usr/ports</filename></entry> + <entry>A &os; Portgyûjtemény + (választható).</entry> + </row> + <row> + <entry><filename + class="directory">/usr/sbin/</filename></entry> + <entry>(A felhasználók által + használt) Rendszerdémonok és + rendszereszközök.</entry> + </row> + <row> + <entry><filename + class="directory">/usr/share/</filename></entry> + <entry>Architektúrafüggõ + állományok.</entry> + </row> + <row> + <entry><filename + class="directory">/usr/src/</filename></entry> + <entry>BSD és/vagy helyi források.</entry> + </row> + <row> + <entry><filename + class="directory">/usr/X11R6/</filename></entry> + <entry>Az X11R6 rendszer programjai, + függvénykönyvtárai stb. + (választható)</entry> + </row> + <row> + <entry><filename + class="directory">/var/</filename></entry> + <entry>Különféle napló, + átmeneti, ideiglenes és pufferben + tárolt állományok. A + memóriában létrehozott + állományrendszereket is olykor a <filename + class="directory">/var</filename> + könyvtárban találjuk. Ezt az + &man.rc.conf.5; állományban + található varmfs-változók + beállításával tehetjük + automatikussá (vagy a + <filename>/etc/fstab</filename> megfelelõ + módosításával, lásd + &man.mdmfs.8;).</entry> + </row> + <row> + <entry><filename + class="directory">/var/log/</filename></entry> + <entry>Mindenféle rendszernaplók.</entry> + </row> + <row> + <entry><filename + class="directory">/var/mail/</filename></entry> + <entry>A felhasználók postafiókjait + tároló állományok.</entry> + </row> + <row> + <entry><filename + class="directory">/var/spool/</filename></entry> + <entry>A nyomtatók és a levelezés + puffereléséhez használt + könyvtárak.</entry> + </row> + <row> + <entry><filename + class="directory">/var/tmp/</filename></entry> + <entry>Átmeneti állományok. Az itt + található állományok + általában megmaradnak a + következõ rendszerindítás + alkalmával is, hacsak a <filename + class="directory">/var</filename> nem egy + memóriában létezõ + állományrendszer.</entry> + </row> + <row> + <entry><filename>/var/yp</filename></entry> + <entry>A NIS állományai.</entry> + </row> + </tbody> + </tgroup> + </informaltable> + </para> + + </sect1> + + <sect1 id="disk-organization"> + <title>A lemezek szervezése</title> + + <para>Az állománynév a legkisebb + szervezési egység, amin keresztül a &os; + képes megtalálni az állományokat. Az + állományok neveiben a kis- és nagybetût + megkülönböztetjük, tehát a + <filename>readme.txt</filename> és a + <filename>README.TXT</filename> elnevezés két + különbözõ állományra utal. A + &os; nem az állományok kiterjesztése (ami a + konkrét példánkban a + <filename>.txt</filename> volt) alapján dönti el, hogy + az adott állomány vajon program, dokumentum vagy + valamilyen más fajtájú adat.</para> + + <para>Az állományok könyvtárakban + tárolódnak. Egy könyvtár lehet + akár üres (nincs benne egyetlen állomány + sem), vagy többszáz állományt is + tartalmazhat. Egy könyvtár ráadásul + további könyvtárakat is tárolhat, + és így az egymásban elhelyezkedõ + könyvtárak segítségével + könyvtárak egy hierarchiáját tudjuk + felépíteni. Ezzel sokkalta könnyebben + szervezhetõvé válnak az adataink.</para> + + <para>Az állományokat és + könyvtárakat úgy tudunk elérni, ha + megadjuk az állomány vagy a könyvtárt + tároló könyvtár nevét, amit egy + perjel, a <literal>/</literal> követ, valamint így + összefûzve az eléréshez + szükséges további könyvtárak + felsorolása. Tehát, ha van egy + <filename>ize</filename> nevû könyvtárunk, + amelyben található egy <filename>mize</filename> + könyvtár, amelyen belül pedig egy + <filename>readme.txt</filename>, akkor ennek az + állománynak a teljes neve, vagy + másképpen szólva az + <firstterm>elérési útja</firstterm> + <filename>ize/mize/readme.txt</filename> lesz.</para> + + <para>A könyvtárak és az állományok + egy állományrendszerben tárolódnak. + Minden állományrendszer pontosan egy + könyvtárat tartalmaz a legfelsõ szintjén, + amelyet az adott állományrendszer + <firstterm>gyökérkönyvtárának</firstterm> + nevezünk. Ez a gyökérkönyvtár + tartalmazhat aztán további + könyvtárakat.</para> + + <para>Eddig még valószínûleg minden nagyon + hasonló a más operációs rendszerekben + tapasztalható fogalmakhoz. Azonban adónak + különbségek: például az &ms-dos; a + <literal>\</literal> jellel választja el az + állományok és könyvtárak neveit, + miközben a &macos; erre a <literal>:</literal> jelet + használja.</para> + + <para>A &os; az elérési utakban sem betûkkel, sem + pedig semmilyen más névvel nem jelöli meg a + meghajtókat. Tehát a &os;-ben nem írhatjuk, + hogy a <filename>c:/ize/mize/readme.txt</filename>.</para> + + <para>Helyette az egyik állományrendszert + kijelölik <firstterm>gyökér + állományrendszernek</firstterm>. A + gyökér állományrendszer + gyökérkönyvtárára hivatkoznak + késõbb <literal>/</literal> + könyvtárként. Ezután minden más + állományrendszert a gyökér + állományrendszerhez + <firstterm>csatlakoztatunk</firstterm>. Ennek + értelmében nem számít, hogy a mennyi + lemezünk is van a &os; rendszerünkben, hiszen minden + könyvtár egyazon lemez részeként jelenik + meg.</para> + + <para>Tegyük fel, hogy van három + állományrendszerünk, hívjuk ezeket + <literal>A</literal>-nak, <literal>B</literal>-nek és + <literal>C</literal>-nek. Minden állományrendszer + rendelkezik egy gyökérkönyvtárral, amely + két további könyvtárat tartalmaz: + <literal>A1</literal>-et és <literal>A2</literal>-t + (és ennek megfelelõen a többi + <literal>B1</literal>-et és <literal>B2</literal>-t, + valamint <literal>C1</literal> és + <literal>C2</literal>-t).</para> + + <para>Nevezzük <literal>A</literal>-t a gyökér + állományrendszernek. Ha a könyvtár + tartalmának megjelenítéséhez most + kiadnánk az <command>ls</command> parancsot, két + alkönyvtárat látnánk, az + <literal>A1</literal>-et és <literal>A2</literal>-t. A + létrejött könyvtárfa valahogy így + nézne ki:</para> + + <mediaobject> + <imageobject> + <imagedata fileref="install/example-dir1" format="EPS"> + </imageobject> + + <textobject> + <literallayout class="monospaced"> / + | + +--- A1 + | + `--- A2</literallayout> + </textobject> + </mediaobject> + + <para>Egy állományrendszert csak egy másik + állományrendszer valamelyik + könyvtárába tudunk csatlakoztatni. + Ezért most tételezzük fel, hogy a + <literal>B</literal> állományrendszert az + <literal>A1</literal> könyvtárba csatlakoztatjuk. + Ezután a <literal>B</literal> + gyökérkönyvtára átveszi a + <literal>A1</literal> helyét az + állományrendszerben, és ennek + megfelelõen megjelennek a <literal>B</literal> + könyvtárai is:</para> + + <mediaobject> + <imageobject> + <imagedata fileref="install/example-dir2" format="EPS"> + </imageobject> + + <textobject> + <literallayout class="monospaced"> / + | + +--- A1 + | | + | +--- B1 + | | + | `--- B2 + | + `--- A2</literallayout> + </textobject> + </mediaobject> + + <para>A <literal>B1</literal> vagy <literal>B2</literal> + könyvtárakban található + állományok bármelyike innentõl kezdve a + <filename>/A1/B1</filename>, illetve a <filename>/A1/B2</filename> + elérési utakon érhetõek el. Az + <filename>A1</filename> könyvtárban + található állományok erre az + idõre rejtve maradnak. Akkor fognak újra felbukkanni, + ha a <literal>B</literal> állományrendszert + <firstterm>leválasztjuk</firstterm> az <literal>A</literal> + állományrendszerrõl.</para> + + <para>Ha a <literal>B</literal> állományrendszert az + <literal>A2</literal> könyvtárba + csatlakoztatnánk, az iménti ábra + nagyjából így nézne ki:</para> + + <mediaobject> + <imageobject> + <imagedata fileref="install/example-dir3" format="EPS"> + </imageobject> + + <textobject> + <literallayout class="monospaced"> / + | + +--- A1 + | + `--- A2 + | + +--- B1 + | + `--- B2</literallayout> + </textobject> + </mediaobject> + + <para>és ennek megfelelõen az elõbb tárgyalt + elérési utak <filename>/A2/B1</filename> és + <filename>/A2/B2</filename> lennének.</para> + + <para>Az állományrendszerek egymáshoz is + csatlakoztathatóak. A példát ennek + megfelelõen úgy is folytathatjuk, hogy a + <literal>C</literal> állományrendszert + csatlakoztatjuk <literal>B</literal> + állományrendszerben található + <literal>B1</literal> könyvtárhoz. Ennek + eredménye a következõ elrendezés + lesz:</para> + + <mediaobject> + <imageobject> + <imagedata fileref="install/example-dir4" format="EPS"> + </imageobject> + + <textobject> + <literallayout class="monospaced"> / + | + +--- A1 + | + `--- A2 + | + +--- B1 + | | + | +--- C1 + | | + | `--- C2 + | + `--- B2</literallayout> + </textobject> + </mediaobject> + + <para>Vagy a <literal>C</literal> állományrendszer az + <literal>A1</literal> könyvtáron keresztül + csatlakoztatható akár közvetlenül az + <literal>A</literal> állományrendszerhez is:</para> + + <mediaobject> + <imageobject> + <imagedata fileref="install/example-dir5" format="EPS"> + </imageobject> + + <textobject> + <literallayout class="monospaced"> / + | + +--- A1 + | | + | +--- C1 + | | + | `--- C2 + | + `--- A2 + | + +--- B1 + | + `--- B2</literallayout> + </textobject> + </mediaobject> + + <para>Az &ms-dos; operációs rendszert ismerõk + számára ez hasonló lehet a + <command>join</command> parancshoz (habár teljesen nem + egyezik meg vele).</para> + + <para>Általában azonban ezzel nem kell + törõdnünk, hiszen többnyire csak a &os; + telepítése során hozunk létre + állományrendszereket és választjuk meg + a csatlakozási pontjukat. A késõbbiekben + legfeljebb ez akkor kerül elõ ismét, amikor + újabb lemezeket adunk hozzá a rendszerhez.</para> + + <para>Teljességgel megengedhetõ, hogy elhagyjuk a + többit és csak egyetlen óriási + gyökérállományrendszert + használjunk. Ennek viszont megvannak a maga + hátrányai és az egyetlen elõnye.</para> + + <itemizedlist> + <title>Több állományrendszer + használatának elõnyei</title> + + <listitem> + <para>A különbözõ + állományrendszereknek + különbözõ + <firstterm>csatlakoztatási + beállításai</firstterm> (mount options) + lehetnek. Például, ha kellõen + elõvigyázatosak akarunk lenni, a + gyökérállományrendszer + írásvédett módon is + csatlakoztatható, aminek köszönhetõen + lehetetlenné válik a rendszer + számára fontos állományok + véletlen törlése vagy + felülírása. Ha + elkülönítjük a + felhasználók számára + írható állományrendszereket + (például a <filename>/home</filename> + könyvtárakat) a többi + állományrendszertõl, lehetõvé + válik számunkra, hogy + <firstterm>nosuid</firstterm> + beállítással csatlakoztassuk ezeket. Ez + a beállítás megakadályozza, hogy + ezekben a + <firstterm>suid</firstterm>/<firstterm>guid</firstterm> + bitekkel rendelkezõ végrehajtható + állományok használhatóak legyenek, + ezáltal növeli a rendszer + biztonságosságát.</para> + </listitem> + + <listitem> + <para>A &os; az állományrendszer + használatától függõen + magától határoz a benne + található állományok + optimális kiosztását illetõen. + Így tehát a gyakorta módosított, + kisebb állományokat tartalmazó + állományrendszerek esetén teljes + más technikákat alkalmaz, mint + például a nagyobb, kevésbé + változó állományok esetén. + Azonban egyetlen állományrendszer + használatával ez a gyorsítási + módszer odavész.</para> + </listitem> + + <listitem> + <para>Noha a &os; állományrendszerei nagyon + jól tûrik a hirtelen + áramkimaradásokat, egy döntõ ponton + bekövetkezõ váratlan leállás + továbbra is kárt okozhat a szerkezetükben. + Ha azonban több állományrendszerre osztjuk + a tárolandó adatainkat, sokkal + valószínûbbé válik, hogy egy + ilyen eset után a rendszerünk talpra tud + állni, és szükség esetén + nekünk is könnyebb lesz a biztonsági + mentéseinkbõl helyreállítani a + sérült állományokat.</para> + </listitem> + </itemizedlist> + + <itemizedlist> + <title>Egyetlen állományrendszer + használatának elõnyei</title> + + <listitem> + <para>Az állományrendszerek mérete + rögzített. Miután a &os; + telepítése során létrehoztunk + egy adott méretû + állományrendszert, elõfordulhat, hogy + késõbb szükségünk lesz a + méretének növelésére. + Ilyenkor nehezen kerülhetjük el az ilyenkor + szokásos teendõket: biztonsági + mentés készítése, az új + méretnek megfelelõ + állományrendszer létrehozása, + majd ezután a lementett adataink + visszaállítása.</para> + + <important> + <para>A &os;-ben azonban megtalálható a + &man.growfs.8; parancs, amelynek + segítségével az + állományrendszerek mérete + használat közben növelhetõ, + és ezzel megszûnik a méretre + vonatkozó korlátozás.</para> + </important> + </listitem> + </itemizedlist> + + <para>Az állományrendszerek partíciókban + tárolódnak. A &os; &unix;-os eredete miatt azonban + ez a kifejezés nem a hétköznapi + <quote>partíció</quote> jelentését + takarja (mint például egy &ms-dos; + partíció). Minden partíciót egy + betû azonosít <literal>a</literal>-tól + <literal>h</literal>-ig. Mindegyik partíció csak + egyetlen állományrendszert tartalmazhat, aminek + révén az állományrendszereket vagy az + állományrendszerek hierarchiájában + található csatlakozási pontjukkal vagy pedig + az ezeket tartalmazó partíció + betûjével azonosíthatjuk.</para> + + <para>A &os; ezeken felül külön lemezterülen + tárolja a + <firstterm>lapozóállomány</firstterm>t (swap + space). A lapozóállományt használja a + &os; <firstterm>virtuális memória</firstterm> + (virtual memory) megvalósításához. + Ennek köszönhetõen a + számítógép képes úgy + viselkedni, mintha jóval több memóriával + rendelkezne, mint valójában. Így, amikor a + &os; kifogy a memóriából, egyszerûen + kirakja a memóriából a + lapozóállományba az éppen nem + használt adatokat, majd amikor ismét + szüksége lesz rájuk, visszatölti ezeket + (és ilyenkor megint kirak valami mást).</para> + + <para>Némely partícióhoz kötõdnek + bizonyos megszokások.</para> + + <informaltable frame="none" pgwide="1"> + <tgroup cols="2"> + <colspec colwidth="1*"> + <colspec colwidth="5*"> + <thead> + <row> + <entry>Partíció</entry> + <entry>Megszokás</entry> + </row> + </thead> + <tbody valign="top"> + <row> + <entry><literal>a</literal></entry> + <entry>Általában ez tartalmazza a + gyökér + állományrendszert.</entry> + </row> + <row> + <entry><literal>b</literal></entry> + <entry>Általában ez tartalmazza a + lapozóállományt.</entry> + </row> + <row> + <entry><literal>c</literal></entry> + <entry>Mérete általában a + tartalmazó slice méretével egyezik + meg. Ennek köszönhetõen a + segédprogramok (például egy + hibás szektorokat keresõ program) a + <literal>c</literal> partíción + keresztül képesek akár az egész + slice-al dolgozni. Normális esetben ezen a + partíción nem hozunk létre + állományrendszert.</entry> + </row> + <row> + <entry><literal>d</literal></entry> + <entry>A <literal>d</literal> partícióhoz + egykoron kapcsolódott különleges + jelentés, azonban mostanra ez már + megszûnt, és a <literal>d</literal> egy + teljesen átlagos partíciónak + tekinthetõ.</entry> + </row> + </tbody> + </tgroup> + </informaltable> + + <para>Minden állományrendszert tartalmazó + partíciót a &os; egy ún. + <firstterm>slice</firstterm>-ban tárol. A &os; + számára a slice elnevezés utal mindarra, amit + általában partíciónak neveznek, + és ismét megemlítjük, mindez a &unix;-os + eredet miatt. A slice-okat 1-tõl 4-ig + sorszámozzák.</para> + + <indexterm><primary>slice-ok</primary></indexterm> + <indexterm><primary>partíciók</primary></indexterm> + <indexterm><primary>veszélyesen dedikált</primary></indexterm> + + <para>A slice-ok sorszáma 1-tõl indulva az + eszközök neve után egy <literal>s</literal> + betûvel elválasztva következik. Így + tehát a <quote>da0<emphasis>s1</emphasis></quote> + jelentése az elsõ slice lesz az elsõ + SCSI-meghajtón. Lemezenként négy fizikai + slice hozható létre, de ezeken belül + tetszõleges típusú logikai slice-ok + helyezhetõek el. Ezen további slice-ok + sorszámozása 5-tõl kezdõdik, így + ennek megfelelõen a <quote>ad0<emphasis>s5</emphasis></quote> + lesz az elsõ IDE-lemezen található elsõ + kiterjesztett slice. Ezeket az eszközöket + foglalják el a különbözõ + állományrendszerek.</para> + + <para>A slice-ok, a <quote>veszélyesen + dedikált</quote> (Dangerously Dedicated) fizikai + meghajtók, és minden más olyan + meghajtó, amely + <firstterm>partíciókat</firstterm> tartalmaz, + <literal>a</literal>-tól <literal>h</literal>-ig + jelölõdnek. Ez a betû az eszköz neve + után következik, így ennek megfelelõen a + <quote>da0<emphasis>a</emphasis></quote> lesz az elsõ + <quote>da</quote> meghajtó <quote>a</quote>, vagyis a + <quote>veszélyesen dedikált</quote> + partíciója. Az + <quote>ad1s3<emphasis>e</emphasis></quote> lesz a második + IDE-lemezmeghajtón a harmadik slice-ban szereplõ + ötödik partíció.</para> + + <para>Végezetül, a rendszerben minden lemezt + azonosítunk. A lemez neve a típusára + utaló kóddal kezdõdik, amely után + aztán egy sorszám jelzi, hogy melyik lemezrõl + is van szó. Azonban eltérõen a + slice-okétól, a lemezek sorszámozása + 0-tól indul. Az általánosan elterjedt + kódolások a <xref linkend="basics-dev-codes">ban + találhatóak.</para> + + <para>Amikor hivatkozunk egy partícióra, a &os; + elvárja tõlünk, hogy nevezzük meg az adott + partíciót tartalmazó slice-ot és + lemezt is. Emiatt egy partícióra mindig úgy + hivatkozunk, hogy elõször megadjuk a tartalmazó + lemez nevét, ettõl <literal>s</literal>-sel + elválasztva a tartalmazó slice + sorszámát, majd ezt a partíció + betûjelével zárjuk. Erre + példákat a <xref + linkend="basics-disk-slice-part">ban láthatunk.</para> + + <para>Az érhetõség kedvéért a <xref + linkend="basics-concept-disk-model"> bemutatja egy lemez + kiosztásának fogalmi sablonját.</para> + + <para>A &os; telepítéséhez elõször be + kell állítani a lemezen található + slice-okat, majd létrehozni benne a &os;-hez + használni kívánt partíciókat, + kialakítani rajtuk az állományrendszereket + (vagy a lapozóállományt) és + eldönteni, melyik állományrendszert + kívánjuk csatlakoztatni.</para> + + <table frame="none" pgwide="1" id="basics-dev-codes"> + <title>Lemezes eszközök kódjai</title> + + <tgroup cols="2"> + <colspec colwidth="1*"> + <colspec colwidth="5*"> + <thead> + <row> + <entry>Kód</entry> + <entry>Jelentés</entry> + </row> + </thead> + <tbody> + <row> + <entry><devicename>ad</devicename></entry> + <entry>ATAPI (IDE) lemez</entry> + </row> + <row> + <entry><devicename>da</devicename></entry> + <entry>közvetlen hozzáférésû + SCSI lemez</entry> + </row> + <row> + <entry><devicename>acd</devicename></entry> + <entry>ATAPI (IDE) CDROM</entry> + </row> + <row> + <entry><devicename>cd</devicename></entry> + <entry>SCSI CDROM</entry> + </row> + <row> + <entry><devicename>fd</devicename></entry> + <entry>Floppylemez</entry> + </row> + </tbody> + </tgroup> + </table> + + <example id="basics-disk-slice-part"> + <title>Példák lemezek, slice-ok és + partíciók neveire</title> + + <informaltable frame="none" pgwide="1"> + <tgroup cols="2"> + <colspec colwidth="1*"> + <colspec colwidth="5*"> + <thead> + <row> + <entry>Név</entry> + <entry>Jelentés</entry> + </row> + </thead> + + <tbody> + <row> + <entry><literal>ad0s1a</literal></entry> + <entry>Az elsõ IDE lemezen (<literal>ad0</literal>) + levõ elsõ slice (<literal>s1</literal>) + elsõ partíciója + (<literal>a</literal>).</entry> + </row> + + <row> + <entry><literal>da1s2e</literal></entry> + <entry>A második SCSI-lemzen + (<literal>da1</literal>) levõ második slice + (<literal>s2</literal>) ötödik + partíciója (<literal>e</literal>).</entry> + </row> + </tbody> + </tgroup> + </informaltable> + </example> + + <example id="basics-concept-disk-model"> + <title>Egy lemez kialakításának + sablonja</title> + + <para>Az ábrán a rendszerhez csatlakoztatott elsõ + IDE-lemez látható a &os; + szemszögébõl. Tegyük fel, hogy ez a lemez + 4 GB méretû és két, + egyenként 2 GB méretû slice-ot (avagy + &ms-dos; partíciót) tartalmaz. Az elsõ slice + egy &ms-dos; formátumú lemezt foglal + magában, a <devicename>C:</devicename> meghajtót, + illetve a második slice egy telepített &os;-t + tartalmaz. Ebben a példában a &os; három + adatot és egy lapozóállományt + tároló partícióval + rendelkezik.</para> + + <para>A három partíció mindegyikén + találhatunk egy-egy állományrendszert. Az + <literal>a</literal> partíció lesz a + gyökér állományrendszer, az + <literal>e</literal> lesz a rendszerünkben a + <filename>/var</filename> és az <literal>f</literal> + pedig a <filename>/usr</filename> könyvtár.</para> + + <mediaobject> + <imageobject> + <imagedata fileref="install/disk-layout" format="EPS"> + </imageobject> + + <textobject> + <literallayout class="monospaced">.-----------------. --. +| | | +| DOS / Windows | | +: : > Elsõ slice, ad0s1 +: : | +| | | +:=================: ==: --. +| | | a partíció, / | +| | > ad0s2a néven hivatkozzuk | +| | | | +:-----------------: ==: | +| | | b partíció, lapozóállomány | +| | > ad0s2b néven hivatkozzuk | +| | | | +:-----------------: ==: | c partíció, nincs +| | | e partíció, /var > állományrendszer, az egész +| | > ad0s2e néven hivatkozzuk | &os; slice, +| | | | ad0s2c +:-----------------: ==: | +| | | | +: : | f partíció, /usr | +: : > ad0s2f néven hivatkozzuk | +: : | | +| | | | +| | --' | +`-----------------' --'</literallayout> + </textobject> + </mediaobject> + </example> + + </sect1> + + <sect1 id="mount-unmount"> + <title>Állományrendszerek csatlakoztatása + és leválasztása</title> + + <para>Az állományrendszereket legkönnyebben + egy-egy faként tudjuk magunk elõtt elképzelni, + amelyek a <filename>/</filename> könyvtárból + nõnek ki. A <filename>/dev</filename>, + <filename>/usr</filename> és mellettük szereplõ, + hozzájuk hasonló összes többi + könyvtár csupán egy-egy ág, amelyeknek + saját ágaik is lehetnek, mint például + a <filename>/usr/local</filename> és így + tovább.</para> + + <indexterm><primary>gyökér + állományrendszer</primary></indexterm> + + <para>Különféle okainak vannak annak, hogy egyes + könyvtárakat különálló + állományrendszereken tárolunk. A + <filename>/var</filename> könyvtár tartalmazza a + <filename>log/</filename>, <filename>spool/</filename> + könyvtárakat és különféle + átmeneti állományokat, azonban az ilyen + állományok könnyen megszaporodhatnak és + megtölthetik az állományrendszert. Mivel a + gyökér állományrendszert nem + tanácsos elárasztani mindenféle + állománnyal, ezért gyakran a hasznunkra + válthat, ha a <filename>/var</filename> + könyvtárat leválasztjuk a + <filename>/</filename> könyvtárból.</para> + + <para>Másik gyakori ok, ami az imént említett + fa egyes ágainak különbözõ + állományrendszereken történõ + tárolását indokolja, hogy ezek gyakran + más fizikai vagy virtuális lemezeken, + például a rendszerhez csatlakoztatott <link + linkend="network-nfs">Hálózati + állományrendszer</link>eken vagy éppen + CD-meghajtókon találhatóak.</para> + + <sect2 id="disks-fstab"> + <title>Az <filename>fstab</filename> + állomány</title> + + <indexterm> + <primary>állományrendszerek</primary> + <secondary>csatlakoztatás az fstab + állománnyal</secondary> + </indexterm> + + <para>A <link linkend="boot">rendszerindítás + folyamata</link> során az <filename>/etc/fstab</filename> + állományban felsorolt + állományrendszerek maguktól kerülnek + csatlakoztatásra (kivéve amikor a + <option>noauto</option> beállítással + szerepelnek).</para> + + <para>Az <filename>/etc/fstab</filename> állományban + található sorok az alábbi + szerkezetûek:</para> + + <programlisting><replaceable>eszköz</replaceable> <replaceable>/csatlakozási-pont</replaceable> <replaceable>típus</replaceable> <replaceable>beállítások</replaceable> <replaceable>mentésigyak</replaceable> <replaceable>ellszám</replaceable></programlisting> + + <variablelist> + <varlistentry> + <term><literal>eszköz</literal></term> + <listitem> + <para>A <xref linkend="disks-naming">ban leírtak + szerint megnevezett (létezõ) + eszköz.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><literal>csatlakozási-pont</literal></term> + <listitem> + <para>Egy (létezõ) könyvtár, ahova + az állományrendszer csatlakozik.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><literal>típus</literal></term> + <listitem> + <para>Az állományrendszer &man.mount.8; + parancs szerint ismert típusa. A &os; + alapértelmezett állományrendszere az + <literal>ufs</literal>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><literal>beállítások</literal></term> + <listitem> + <para>Az írható-olvasható + állományrendszerek esetén + <option>rw</option>, az írásvédettek + esetén pedig <option>ro</option>, amelyet + igény szerint további + beállítások követhetnek. A + rendszerindítás során automatikusan + nem csatlakoztatandó + állományrendszerek esetén gyakran + alkalmazott beállítás itt még + a <option>noauto</option>. Egyéb + lehetõségeket a &man.mount.8; man oldalon + láthatunk.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><literal>mentésigyak</literal></term> + <listitem> + <para>Ezt általában a &man.dump.8; parancs + használja a menteni szükséges + állományrendszerek + megállapításához. Amennyiben + hiányzik ez a mezõ, az automatikusan a nulla + értéket jelöli.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><literal>ellszám</literal></term> + <listitem> + <para>Megadja, hogy mely állományrendszereket + kell ellenõrizni. A nullás + <literal>pass</literal> értékkel + rendelkezõ állományrendszerek nem + kerülnek ellenõrzésre. A + gyökér állományrendszer (melyet + minden más elõtt kell ellenõrizni) + <literal>passno</literal> értéke egy, + míg az összes többi + állományrendszer <literal>passno</literal> + értéke általában egytõl + különbözõ. Ha egynél több + állományrendszer is ugyanazt a + <literal>passno</literal> értéket kapta, + akkor az &man.fsck.8; a lehetõségei szerint + megpróbálja ezeket egyszerre + ellenõrizni.</para> + </listitem> + </varlistentry> + </variablelist> + + <para>Az <filename>/etc/fstab</filename> + felépítésérõl és a benne + használható + beállításokról bõvebben a + &man.fstab.5; man oldalon olvashatunk.</para> + + </sect2> + + <sect2 id="disks-mount"> + <title>A <command>mount</command> parancs</title> + + <indexterm> + <primary>állományrendszerek</primary> + <secondary>csatlakoztatás</secondary> + </indexterm> + + <para>Az állományrendszerek tényleges + csatlakoztatására avagy + <quote>mountolására</quote> a &man.mount.8; + parancs használható.</para> + + <para>Legegyszerûbb formája:</para> + + <informalexample> + <screen>&prompt.root; <userinput>mount <replaceable>eszköz</replaceable> <replaceable>csatlakozási-pont</replaceable></userinput></screen> + </informalexample> + + <para>Ahogy a &man.mount.8; man oldalán is olvashatjuk, itt + rengeteg opció is megadható, de ezek + közül a leggyakoribbak:</para> + + <variablelist> + <title>Csatlakoztatási opciók</title> + + <varlistentry> + <term><option>-a</option></term> + <listitem> + <para>Csatlakoztatja az <filename>/etc/fstab</filename> + állományban felsorolt összes + állományrendszert, kivéve azokat, + amelyek a <quote>noauto</quote> + beállítást tartalmazzák, vagy + kizártuk a <option>-t</option> kapcsolóval, + esetleg korábban már csatlakoztattuk.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-d</option></term> + <listitem> + <para>A tényleges csatlakoztatás + elvégzése nélkül + végrehajt minden mást. Ez az opció + leginkább <option>-v</option> opcióval + együtt használható annak + megállapítására, hogy a + &man.mount.8; valójában mit is akar + csinálni.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-f</option></term> + <listitem> + <para>Egy nem tiszta állományrendszer + csatlakoztatásának + kényszerítése (veszélyes!) + vagy egy korábban már csatlakoztatott + állományrendszer írható + állapotának + felfüggesztése.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-r</option></term> + <listitem> + <para>Az állományrendszer + írásvédett csatlakoztatása. + Megegyezik a <option>-o</option> opciónál + megadható <option>ro</option> (vagy a &os; + 5.2-nél régebbi verziója + esetén a <option>rdonly</option>) + beállítás + használatával.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-t</option> + <replaceable>típus</replaceable></term> + <listitem> + <para>Az adott állományrendszer az adott + típusnak megfelelõen csatlakoztatja, vagy az + <option>-a</option> használata esetén csak + az adott típusú + állományrendszereket.</para> + + <para>Az <quote>ufs</quote> az + állományrendszerek alapértelmezett + típusa.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-u</option></term> + <listitem> + <para>Frissíti az állományrendszerre + vonatkozó csatlakoztatási + beállításokat.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-v</option></term> + <listitem> + <para>Részletesebb kijelzés.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-w</option></term> + <listitem> + <para>Az állományrendszer + csatlakoztatása írásra és + olvasásra.</para> + </listitem> + </varlistentry> + </variablelist> + + <para>Az <option>-o</option> opció után + vesszõvel elválasztott + beállításokat adhatunk meg, többek + közt az alábbiakat:</para> + + <variablelist> + <varlistentry> + <term>noexec</term> + <listitem> + <para>Az állományrendszeren + található állományok + végrehajtásának tiltása. Ez + egy nagyon hasznos biztonsági + beállítás.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>nosuid</term> + <listitem> + <para>Az állományrendszeren nem + használhatóak a felhasználó- + (setuid) vagy csoportváltásra (setgid) + vonatkozó engedélyek. Nagyon hasznos + biztonsági beállítás.</para> + </listitem> + </varlistentry> + </variablelist> + + </sect2> + + <sect2 id="disks-umount"> + <title>Az <command>umount</command> parancs</title> + + <indexterm> + <primary>állományrendszerek</primary> + <secondary>leválasztás</secondary> + </indexterm> + + <para>Az &man.umount.8; parancs paraméterként egy + csatlakozási pontot, egy eszköznevet vagy a + <option>-a</option>, illetve az <option>-A</option> + opciókat várja.</para> + + <para>A leválasztás + kényszerítéséhez mindegyik alakban + szerepelhet az <option>-f</option> opció, valamint a + részletesebb kijelzést a <option>-v</option> + opcióval kapcsolhatjuk be. Azonban szeretnénk + mindenkit figyelmeztetni, hogy a <option>-f</option> + használata alapvetõen nem ajánlott. Az + erõszakkal leválasztott + állományrendszerek összeomlaszthatják + a számítógépet vagy kárt + okozhatnak az állományrendszereken + található adatokban.</para> + + <para>Az <option>-a</option> és <option>-A</option> + opciók használatosak az összes + csatlakoztatott állományrendszer + leválasztására, amelyek típusait a + <option>-t</option> opció megadása után + sorolhatunk fel. Fontos különbség azonban, + hogy az <option>-A</option> opció a gyökér + állományrendszert nem próbálja meg + leválasztani.</para> + + </sect2> + </sect1> + + <sect1 id="basics-processes"> + <title>Folyamatok</title> + + <para>A &os; egy többfeladatos operációs + rendszer. Ez azt jelenti, hogy képes + látszólag egyszerre több programot is futtatni. + Az így egyszerre futó programokat egyenként + <firstterm>folyamat</firstterm>oknak (process) nevezzük. + Minden kiadott parancsunk elindít legalább egy ilyen + folyamatot, és a rendszerünk mozgásban + tartásához bizonyos rendszerszintû folyamatok + állandóan futnak a háttérben.</para> + + <para>Minden folyamatot egy + <firstterm>folyamatazonosító</firstterm>nak (process + ID vagy <firstterm>PID</firstterm>) nevezett szám + azonosít egyértelmûen, és az + állományokhoz hasonlóan, minden folyamatnak + van tulajdonosa és csoportja is. A tulajdonos és a + csoport ismeretében állapítja meg a rendszer, + hogy az adott folyamat a korábban említett + engedélyek szerint milyen állományokhoz + és eszközökhöz férhet hozzá. + Ezenkívül a legtöbb folyamatnak van még + egy szülõfolyamata is. A szülõfolyamat az a + folyamat, amely az adott folyamatot elindította. + Például amikor parancsokat adunk egy + parancsértelmezõn keresztül, akkor maga a + parancsértelmezõ is egy ilyen folyamat lesz + ugyanúgy, ahogy a benne kiadott parancsok által + elindított programok. Ennek megfelelõen az így + létrehozott összes folyamat szülõje maga a + parancsértelmezõ folyamata lesz. Az említettek + alól egyik kivétel az &man.init.8; nevû + speciális folyamat. Az <command>init</command> lesz a + rendszerben mindig az elsõ folyamat, ezért a PID-je is + mindig 1. Az <command>init</command> programot a &os; + indulásakor a rendszermag fogja automatikusan + elindítani.</para> + + <para>A rendszerben futó programok + vizsgálatához két, különösen + hasznos parancsot találhatunk: ezek a &man.ps.1; és + a &man.top.1;. A <command>ps</command> parancs használatos + a pillanatnyilag futó programok statikus + listájának megjelenítésére. + Ebben olvashatjuk a futó programok + azonosítóit, mennyi memóriát + használnak éppen, milyen paranccsal + indították ezeket stb. A <command>top</command> + parancs mutatja az összes aktívan futó + programot, majd néhány másodpercenként + automatikusan frissíti ezt a listát, aminek + révén folyamatosan láthatjuk, miként + viselkednek a futó programok.</para> + + <para>A <command>ps</command> alapértelmezés szerint + csupán az általunk futtatott programokat mutatja. + Például:</para> + + <screen>&prompt.user; <userinput>ps</userinput> + PID TT STAT TIME COMMAND + 298 p0 Ss 0:01.10 tcsh + 7078 p0 S 2:40.88 xemacs mdoc.xsl (xemacs-21.1.14) +37393 p0 I 0:03.11 xemacs freebsd.dsl (xemacs-21.1.14) +48630 p0 S 2:50.89 /usr/local/lib/netscape-linux/navigator-linux-4.77.bi +48730 p0 IW 0:00.00 (dns helper) (navigator-linux-) +72210 p0 R+ 0:00.00 ps + 390 p1 Is 0:01.14 tcsh + 7059 p2 Is+ 1:36.18 /usr/local/bin/mutt -y + 6688 p3 IWs 0:00.00 tcsh +10735 p4 IWs 0:00.00 tcsh +20256 p5 IWs 0:00.00 tcsh + 262 v0 IWs 0:00.00 -tcsh (tcsh) + 270 v0 IW+ 0:00.00 /bin/sh /usr/X11R6/bin/startx -- -bpp 16 + 280 v0 IW+ 0:00.00 xinit /home/nik/.xinitrc -- -bpp 16 + 284 v0 IW 0:00.00 /bin/sh /home/nik/.xinitrc + 285 v0 S 0:38.45 /usr/X11R6/bin/sawfish</screen> + + <para>Ahogy az a fenti példában is látszik, a + &man.ps.1; kimenete oszlopokra tagolható. Ezek + közül a <literal>PID</literal> tartalmazza a + korábban már ismertetett + folyamatazonosítókat. Az azonosítók + 1-tõl indulva egészen 99999-ig + sorszámozódhatnak, illetve ha kifutnánk + belõlük, akkor a számozás kezdõdik + elölrõl (azonban a használatban levõ + azonosítók sosem kerülnek újra + kiosztásra). A <literal>TT</literal> oszlopban + láthatjuk azt a terminált, amelyen az adott program + éppen fut, de ezt pillanatnyilag akár nyugodtan + figyelmen kívül is hagyhatjuk. A + <literal>STAT</literal> oszlopban a program + állapotát kapjuk meg, de szintén + átugorható. A <literal>TIME</literal> a program + processzoron eltöltött idejét mutatja — ez + általában nem arra utal, hogy mennyi ideje fut maga + a program, hiszen a legtöbb programnak meglehetõsen + sokat kell várakoznia egyáltalán mielõtt + a processzorra lenne szüksége. Végezetül + a <literal>COMMAND</literal> oszlopban olvashatjuk azt a + parancsot, amellyel a programot elindították.</para> + + <para>A &man.ps.1; számos különféle + beállítást ismer az általa + megjelenített információk + megválasztásához. Az egyik ilyen + leghasznosabb beállítás az + <literal>auxww</literal>: az <option>a</option> + segítségével az összes futó + programot láthatjuk, nem csak a sajátjainkat; az + <option>u</option> megadásával + láthatóvá válik a folyamat + tulajdonosának a felhasználói neve, valamint + a memóriahasználata is; az <option>x</option> + megmutatja a démon (avagy háttér)folyamatok + adatait is és a <option>ww</option> hatására + pedig a &man.ps.1; az összes folyamathoz a teljes parancssort + kiírja, még akkor is, ha nem férne ki a + képernyõre.</para> + + <para>A &man.top.1; kimenete is hasonló. Ha + elindítjuk, általában ezt + láthatjuk:</para> + + <screen>&prompt.user; <userinput>top</userinput> +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 USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND +72257 nik 28 0 1960K 1044K RUN 0:00 14.86% 1.42% top + 7078 nik 2 0 15280K 10960K select 2:54 0.88% 0.88% xemacs-21.1.14 + 281 nik 2 0 18636K 7112K select 5:36 0.73% 0.73% XF86_SVGA + 296 nik 2 0 3240K 1644K select 0:12 0.05% 0.05% xterm +48630 nik 2 0 29816K 9148K select 3:18 0.00% 0.00% navigator-linu + 175 root 2 0 924K 252K select 1:41 0.00% 0.00% syslogd + 7059 nik 2 0 7260K 4644K poll 1:38 0.00% 0.00% mutt +...</screen> + + <para>A kimenet két részre osztható. A + fejlécben (vagyis az elsõ öt sorban) + látható az utoljára futtatott program + azonosítója (PID), a rendszer átlagos + terhelése (load average, amellyel mérjük, hogy + a rendszerünk mennyire lefoglalt), a rendszer + indítása óta eltelt idõ (up mint uptime) + és a jelenlegi idõ. A fejlécben még + megtalálhatjuk azt is, mennyi program fut (esetünkben + ez most 47), mennyi memóriát és + lapozóállományt használnak és + mennyi idõt tölt a rendszer a processzor + különbözõ állapotaiban.</para> + + <para>A fejléc alatt a &man.ps.1; kimenetéhez + hasonló módon oszlopokba rendezve találhatjuk + meg a folyamatok adatait: az azonosítóikat, a + tulajdonosaik nevét, a felhasznált + processzoridõt, a futtatott parancsot. A &man.top.1; + alapértelmezés szerint mutatja a futó + programok által használt memória + mennyiségét is: ez további két + oszlopra oszlik, ahol az egyikben a teljes + memóriafoglalást (SIZE), a másikban pedig az + jelen pillanatban aktívan használt + memóriát (RES) láthatjuk. A + példában látható is, hogy a + <application>&netscape;</application> (navigator-linu) + alkalmazásnak majdnem 30 MB-nyi + memóriára van szüksége, de ebbõl + aktívan csak 9 MB-ot használ.</para> + + <para>A &man.top.1; a kijelzést minden második + másodpercben magától frissíti, de ez + az <option>s</option> kapcsolóval + állítható.</para> + + </sect1> + + <sect1 id="basics-daemons"> + <title>Démonok, jelzések és a futó + programok leállítása</title> + + <para>Amikor elindítunk egy szövegszerkesztõt, nem + sok gondunk akad az irányításával, + könnyen utasíthatjuk az állományok + betöltésére és így tovább. + Mindezt azért tehetjük meg, mert a + szövegszerkesztõ erre lehetõséget + biztosít és mivel a szövegszerkesztõ egy + <firstterm>terminál</firstterm>hoz kapcsolódik. + Egyes programok azonban nem úgy lettek kialakítva, + hogy állandóan a felhasználó + utasításaira támaszkodjanak, ezért az + elsõ adandó alkalommal lekapcsolódnak a + terminálról. Például egy webszerver + egész nap csak webes kéréseket + válaszol meg, és általában semmi + szüksége nincs a felhasználók + utasításaira. A szerverek között + leveleket közvetítõ programok is ugyanezen + osztályba tartoznak.</para> + + <para>Ezeket a programokat + <firstterm>démon</firstterm>onoknak hívjuk. A + démonok a görög mitológiában + jelentek meg: sem a jót, sem pedig a gonoszt nem + képviselték, egyszerû apró + szellemecskék voltak, akik az emberiség javát + szolgálták, pontosan úgy, ahogy ma teszik azt + a különféle web- és levelezõ + szerverek. Ezért is ábrázolták + sokáig a BSD kabalafiguráját is egy + tornacipõs, vasvillás vidám + démonként.</para> + + <para>A démonként futó programok nevéhez + a hagyományok szerint hozzá szokták + fûzni a <quote>d</quote> betût. A + <application>BIND</application> a Berkeley Internet Name Domain + (névfeloldó) szolgáltatása, azonban a + hozzátartozó program neve <command>named</command>, + az <application>Apache</application> webszerver programját + <command>httpd</command>-nek nevezik, a sornyomtató + kezeléséért felelõs démon pedig + az <command>lpd</command> és így tovább. Ez + csupán egy hagyomány, megszokás, nem pedig + egy kõbe vésett szabály: például + a <application>Sendmail</application> levelezõ + démonának neve <command>sendmail</command> és + nem pedig <command>maild</command>.</para> + + <para>Néha azért szükségünk lehet + arra, hogy felvegyük valahogy a kapcsolatot a + démonként futó programokkal is. Ennek egyik + lehetséges módja a + <firstterm>jelzés</firstterm>ések (signal) + küldése (de alapvetõen bármilyen + futó programnak küldhetünk). Több + különféle jelzés küldhetõ + — egyeseknek közülük + megkülönböztetett jelentése van, + másokat magukat az alkalmazások értelmeznek, + amelyrõl a dokumentációjukban + tájékozódhatunk. A &man.kill.1; vagy + &man.kill.2; paranccsal más tulajdonában levõ + futó programoknak nem tudunk jelzéseket + küldeni, ami alól egyedüli kivétel a + <username>root</username> felhasználó.</para> + + <para>Bizonyos esetekben a &os; maga is küld néha + jelzéseket. Amikor egy alkalmazást rosszul + programoznak le és megpróbál egy + számára tiltott memóriaterülethez + hozzáférni, a &os; küld neki egy + <firstterm>Segmentation Violation</firstterm> + (<literal>SIGSEGV</literal>, szegmentálási hiba) + jelzést. Ha egy alkalmazás az &man.alarm.3; + rendszerhíváson keresztül kér egy adott + idõ utáni bekövetkezõ + értesítést, akkor kap errõl egy Alarm + (<literal>SIGALRM</literal>) jelzést és így + tovább.</para> + + <para>A folyamatok leállítására + két jelzés használható: a + <literal>SIGTERM</literal> (befejeztetés) és a + <literal>SIGKILL</literal> (leállítás). A + <literal>SIGTERM</literal> a folyamatok + leállításának illedelmes módja, + mivel ekkor a futó program képes + <emphasis>elkapni</emphasis> ezt a jelzést és + észrevenni, hogy le akarjuk állítani. + Ilyenkor a leállítás elõtt + lehetõsége van szabályosan lezárni a + naplóit és általánosságban + véve befejezni mindent, amit éppen csinál. + Elõfordulhat azonban, hogy a folyamatok figyelmen + kívül hagyják a <literal>SIGTERM</literal> + jelzést, ha például éppen egy + félbeszakíthatatlan feladat közepén + tartanak.</para> + + <para>A <literal>SIGKILL</literal> jelzést azonban egyetlen + futó program sem hagyhatja figyelmen kívül. Ez + lenne a <quote>Nem érdekel, mivel foglalkozol, azonnal + hagyd abba!</quote> jelzés. Amikor + <literal>SIGKILL</literal> jelzést küldünk egy + folyamatnak, a &os; leállítja a folyamatot ott + és ahol tart + <footnote> + <para>Ez azért nem teljesen igaz. Van + néhány olyan tevékenység, ami nem + szakítható meg. Ilyen például az, + amikor a program egy másik + számítógépen + található állományt + próbál olvasni, miközben valamilyen ok + (kikapcsolás, hálózati hiba) + folytán elveszti vele a kapcsolatot. Ekkor a program + futása <quote>megszakíthatatlan</quote>. Majd + amikor a program feladja a próbálkozást + (általában két perc után), akkor + következik be a tényleges + leállítása.</para> + </footnote>.</para> + + <para>További használható jelzések: + <literal>SIGHUP</literal>, <literal>SIGUSR1</literal> és + <literal>SIGUSR2</literal>. Ezek általános + célú jelzések, amelyeket az + alkalmazások eltérõ módokon kezelnek + le.</para> + + <para>Tegyük fel, hogy megváltoztattuk a + webszerverünk beállításait + tartalmazó állományt — valamilyen + módon szeretnénk tudatni a szerverrel, hogy olvassa + be újra a beállításait. Ezt + megtehetjük úgy, hogy leállítjuk + és újraindítjuk a <command>httpd</command> + démont, de ezzel kiesést okozhatunk a szerver + mûködésében, amit viszont nem + engedhetünk meg. A legtöbb démont úgy + készítették el, hogy a + <literal>SIGHUP</literal> jelzés hatására + olvassa be újra a beállításait + tartalmazó állományt. Így a + <command>httpd</command> leállítása és + újraindítása helyett egyszerûen + elegendõ egy <literal>SIGHUP</literal> jelzés + küldése. Mivel azonban ez nem + szabványosított, a különbözõ + démonok ezt a jelzést + többféleképpen is értelmezhetik. + Ezért a használata elõtt ennek + mindenképpen járjunk utána a + kérdéses démon + dokumentációjában.</para> + + <para>A jelzéseket a &man.kill.1; paranccsal tudjuk + elküldeni, ahogy ezt a következõ + példában is láthatjuk.</para> + + <procedure> + <title>Jelzés küldése egy futó + programnak</title> + + <para>Ebben a példában megmutatjuk, hogyan lehet + jelzést küldeni az &man.inetd.8; démonnak. + Az <command>inetd</command> a beállításait + az <filename>/etc/inetd.conf</filename> + állományban tárolja, és az + <command>inetd</command> a <literal>SIGHUP</literal> + jelzés hatására képes + újraolvasni ezt.</para> + + <step> + <para>Keressük meg annak a folyamatnak az + azonosítóját, amelynek a jelzést + kívánjuk küldeni. Ezt a &man.ps.1; + és a &man.grep.1; használatával + tehetjük meg. A &man.grep.1; parancs + segítségével más parancsok + kimenetében tudunk megkeresni egy általunk + megadott szöveget. Ezt a parancsot átlagos + felhasználóként futtatjuk, azonban az + &man.inetd.8; démont a <username>root</username> + birtokolja, ezért az &man.ps.1; használata + során meg kell adnunk az <option>ax</option> + kapcsolókat is.</para> + + <screen>&prompt.user; <userinput>ps -ax | grep inetd</userinput> + 198 ?? IWs 0:00.00 inetd -wW</screen> + + <para>Innen kiderül, hogy az &man.inetd.8; + azonosítója 198. Elõfordulhat, hogy az + eredményben maga a <literal>grep inetd</literal> + parancs is megjelenik. Ez a &man.ps.1; + listázási módszere miatt következhet + be.</para> + </step> + + <step> + <para>A jelzés elküldésére + használjuk a &man.kill.1; parancsot. Mivel az + &man.inetd.8; démont a <username>root</username> + felhasználó futtatja, ehhez elõször a + &man.su.1; parancs kiadásával nekünk is + <username>root</username> felhasználóvá + (rendszeradminisztrátorrá) kell + válnunk.</para> + + <screen>&prompt.user; <userinput>su</userinput> +<prompt>Password:</prompt> +&prompt.root; <userinput>/bin/kill -s HUP 198</userinput></screen> + + <para>Ahogy az a legtöbb &unix; esetén elfogadott, a + sikeres végrehajtás esetén a &man.kill.1; + sem válaszol semmit. Amikor viszont nem egy + saját programunknak akarunk jelzést + küldeni, akkor a <errorname>kill: + <replaceable>PID</replaceable>: Operation not + permitted</errorname> (a mûvelet nem + engedélyezett) hibaüzenetet látunk. Ha + véletlenül elgépeljük volna a + futó program azonosítóját, akkor a + küldendõ jelzés nem a megfelelõ + folyamatnál fog kikötni (ami nem éppen + jó), vagy ha szerencsénk van, akkor a + jelzést egy éppen használaton + kívüli azonosítóra + küldtük. Az utóbbi esetben a + következõ láthatjuk: <errorname>kill: + <replaceable>PID</replaceable>: No such process</errorname> + (nincs ilyen folyamat).</para> + + <note> + <title>Miért <command>/bin/kill</command>?</title> + + <para>A legtöbb parancsértelmezõ + beépítetten tartalmazza a saját + <command>kill</command> parancsát, tehát + ilyenkor közvetlenül maga a + parancsértelmezõ küldi a jelzést, + nem pedig a <filename>/bin/kill</filename> programon + keresztül. Ez gyakran a javunkra válhat, + azonban a küldhetõ jelzések megadása + parancsértelmezõnként eltérhet. + Így, ahelyett, hogy egyenként ismernünk + kellene mindegyiket, sokkal egyszerûbb + közvetlenül a <command>/bin/kill + <replaceable>...</replaceable></command> parancsot + használni.</para> + </note> + </step> + </procedure> + + <para>A többi jelzés küldése is nagyon + hasonló módon történik, hiszen + elegendõ csupán a <literal>TERM</literal> vagy a + <literal>KILL</literal> behelyettesítése a parancs + megfelelõ helyére.</para> + + <important> + <para>A rendszerünkben óvatosan bánjunk a + futó programok + leállítgatásával, és + legyünk különös tekintettel az 1-es + azonosítóval rendelkezõ, speciális + feladattal bíró &man.init.8; folyamatra. A + <command>/bin/kill -s KILL 1</command> parancs + kiadásával ugyanis gyorsan le tudjuk + állítani a rendszerünket. + <emphasis>Mielõtt</emphasis> egy &man.kill.1; parancsot + lezárnánk az <keycap>Enter</keycap> + billentyûvel, <emphasis>mindig</emphasis> + gyõzõdjünk meg róla, hogy valóban + tényleg a jó paramétereket adtuk + meg.</para> + </important> + + </sect1> + + <sect1 id="shells"> + <title>Parancsértelmezõk</title> + + <indexterm><primary>parancsértelmezõk</primary></indexterm> + <indexterm><primary>parancssor</primary></indexterm> + + <para>A &os;-ben hétköznapi munkánk legnagyobb + részét a parancsértelmezõknek (shell) + nevezett parancssoros felületen tudjuk elvégezni. A + parancsértelmezõ fõ feladata a + beérkezõ parancsok elfogadása és + végrehajtatása. Sok parancsértelmezõ + ezenfelül rendelkezik beépített + funkciókkal is, amelyek olyan hétköznapi + feladatokban igyekeznek segíteni, mint + például az állományok kezelése + és tömeges elérése reguláris + kifejezések használatával, a parancssor + szerkesztése, parancsok makrózása és a + környezeti változók használata. A &os; + alapból tartalmaz néhány + parancsértelmezõt, ilyen például az + <command>sh</command>, a Bourne Shell, és a + <command>tcsh</command>, a továbbfejlesztett C-shell. Sok + más parancsértelmezõ, mint + például a <command>zsh</command> és + <command>bash</command> is elérhetõ a &os; + Portgyûjteményébõl.</para> + + <para>De melyik parancsértelmezõt is válasszuk? + Ez igazából ízlés kérdése. + Ha inkább C programozók vagyunk, akkor + valószínûleg egy olyan C-szerû shelllel + tudunk kényelmesen dolgozni, amilyen például + a <command>tcsh</command>. Ha viszont egy linuxos rendszert + használtunk korábban vagy éppen még + soha nem használtunk volna a &unix; parancssorát, + érdemes a <command>bash</command>-sel + megpróbálkoznunk. A lényeg az, hogy minden + parancsértelmezõnek vannak olyan egyedi + jellemezõi, amiért használatóak vagy + éppen nem használatóak a munkánkban, + ezért magunknak kell kiválasztani a nekünk + megfelelõt.</para> + + <para>A shellek egyik legáltalánosabb jellemzõje + az állományok neveinek + kiegészítése. Miután + begépeljük egy parancs vagy + állománynév elsõ néhány + karakterét, a <keycap>Tab</keycap> billentyû + lenyomásával megkérhetjük a + parancsértelmezõt, hogy magától + egészítse ki (<quote>találja ki</quote>) a + fennmaradó részt. Nézzük erre egy + példát. Tegyük fel, hogy van két + állományunk, <filename>izemize</filename> és + <filename>ize.mize</filename>, és szeretnénk + letörölni az <filename>ize.mize</filename> nevût. + Ehhez a következõt kell begépelnünk: + <command>rm + iz[<keycap>Tab</keycap>].[<keycap>Tab</keycap>]</command>.</para> + + <para>Erre a parancsértelmezõ a következõ + parancsot írja ki: <command>rm + ize[SIPOLÁS].mize</command>.</para> + + <para>A [SIPOLÁS] itt a konzol sípjára + vonatkozik, amellyel jelzi, hogy nem tudta teljesen + kiegészíteni az állomány nevét, + mivel egynél több is megfelel a megadott alaknak. Az + <filename>izemize</filename> és az + <filename>ize.mize</filename> is egyaránt az + <literal>iz</literal> elõtaggal kezdõdik, azonban + ebbõl a parancsértelmezõ csak az + <literal>ize</literal> elõtagot tudta kikövetkeztetni. + Ha most begépelünk még egy <literal>.</literal> + karaktert és újra megnyomjuk a <keycap>Tab</keycap> + billentyût, a parancsértelmezõ ezúttal + képes lesz az állomány teljes nevét + megállapítani.</para> + + <indexterm><primary>környezeti + változók</primary></indexterm> + + <para>A parancsértelmezõk másik + általános jellemzõje a környezeti + változók használata. A környezeti + változók lényegében a + parancsértelmezõ környezetéhez + tárolt név-érték párok. Ezt a + környezetet látja minden olyan program, amit a + parancsértelmezõbõl meghívunk, és + ezért tartalmazni is szokott sok ilyen + beállítást. Íme a leggyakoribb + környezeti változók felsorolása + és rövid leírása:</para> + + <indexterm><primary>környezeti + változók</primary></indexterm> + + <informaltable frame="none" pgwide="1"> + <tgroup cols="2"> + <thead> + <row> + <entry>Változó</entry> + <entry>Leírás</entry> + </row> + </thead> + + <tbody> + <row> + <entry><envar>USER</envar></entry> + <entry>A bejelentkezett felhasználó + neve.</entry> + </row> + <row> + <entry><envar>PATH</envar></entry> + <entry>Vesszõvel elválasztott + könyvtárak, ahol a parancsértelmezõ + a végrehajtható állományokat + keresi.</entry> + </row> + <row> + <entry><envar>DISPLAY</envar></entry> + <entry>Az aktuálisan használt X11 + megjelenítõ hálózati neve, + amennyiben létezik ilyen.</entry> + </row> + <row> + <entry><envar>SHELL</envar></entry> + <entry>A használt + parancsértelmezõ.</entry> + </row> + <row> + <entry><envar>TERM</envar></entry> + <entry>A felhasználó által + használt terminál típusa. Ebbõl + a terminál képességeit lehet + megállapítani.</entry> + </row> + <row> + <entry><envar>TERMCAP</envar></entry> + <entry>A terminálok + adatbázisából származó, + különbözõ + terminálfunkciókhoz tartozó + helyettesítõ (escape) kódok.</entry> + </row> + <row> + <entry><envar>OSTYPE</envar></entry> + <entry>Az operációs rendszer típusa, + például &os;.</entry> + </row> + <row> + <entry><envar>MACHTYPE</envar></entry> + <entry>A rendszer alatt futó gép + architektúrája.</entry> + </row> + <row> + <entry><envar>EDITOR</envar></entry> + <entry>A felhasználó által + használt szövegszerkesztõ.</entry> + </row> + <row> + <entry><envar>PAGER</envar></entry> + <entry>A felhasználó által + lapozásra használt program.</entry> + </row> + <row> + <entry><envar>MANPATH</envar></entry> + <entry>Vesszõvel elválasztott könyvtárak, + ahol a parancsértelmezõ a man + oldalakat keresi.</entry> + </row> + </tbody> + </tgroup> + </informaltable> + + <indexterm><primary>Bourne-féle + parancsértelmezõk</primary></indexterm> + + <para>A környezeti változók + beállítása + parancsértelmezõként valamennyire eltér. + Például egy C-stílusú + parancsértelmezõ, mint például a + <command>tcsh</command> vagy a <command>csh</command>, a + <command>setenv</command> paranccsal állítja a + környezeti változókat. A Bourne-féle + parancsértelmezõk, mint például az + <command>sh</command> vagy a <command>bash</command>, az + <command>export</command> parancsot használják a + környezeti változók + beállítására. Például a + <command>csh</command> vagy a <command>tcsh</command> + használata során a következõképpen + tudjuk be- vagy átállítani a + <envar>EDITOR</envar> környezeti változó + értékét + <filename>/usr/local/bin/emacs</filename>-re:</para> + + <screen>&prompt.user; <userinput>setenv EDITOR /usr/local/bin/emacs</userinput></screen> + + <para>Ugyanez a Bourne-féle + parancsértelmezõkben:</para> + + <screen>&prompt.user; <userinput>export EDITOR="/usr/local/bin/emacs"</userinput></screen> + + <para>A legtöbb parancsértelmezõben a nevük + elõtt szerepeltetett <literal>$</literal> jel + segítségével kérhetjük a + környezeti változók + értékének + behelyettesítését a parancssorba. Ennek + megfelelõen az <command>echo $TERM</command> parancs + kiíratja a <envar>TERM</envar> változó + aktuális értékét, mivel ebbe a + parancsértelmezõ már az <command>echo</command> + meghívása elõtt behelyettesíti a + <envar>TERM</envar> értékét.</para> + + <para>A parancsértelmezõk számos speciális + karaktert, ún. metakarakteret az adatok különleges + reprezentációjaként kezelnek. + Köztük a leggyakrabban használt a + <literal>*</literal>, amely tetszõleges számú + karaktert helyettesít egy állomány + nevében. Az ilyen metakarakterek + segítségével tudunk egyszerre több + állományt is megnevezni. Például ha + begépeljük az <command>echo *</command> parancsot, + akkor majdnem ugyanazt kapjuk eredményül, mintha az + <command>ls</command> parancsot adtuk volna ki, hiszen a + parancsértelmezõ ilyenkor veszi az összes + <literal>*</literal> metakarakterre illeszkedõ + állományt, és a kiíratásukhoz + pedig rendre behelyettesíti ezeket a parancssorba az + <command>echo</command> paramétereként.</para> + + <para>Ha nem szeretnénk, hogy a parancsértelmezõ + értelmezze a speciális karaktereket, akkor egy + <quote>backslash</quote> (visszaper) (<literal>\</literal>) + karaktert eléjük téve mindezt + megakadályozhatjuk. Az <command>echo $TERM</command> + parancs ugyebár kiíratja a terminálra + vonatkozó környezeti változó + beállítását, azonban a <command>echo + \$TERM</command> változatlanul kiírja a + <envar>$TERM</envar> szöveget.</para> + + <sect2 id="changing-shells"> + <title>A parancsértelmezõnk + megváltoztatása</title> + + <para>A parancsértelmezõnk legegyszerûbben a + <command>chsh</command> parancs használatával + változtatható meg. A <command>chsh</command> + kiadása után elindítja az + <envar>EDITOR</envar> környezeti változónak + megfelelõ szövegszerkesztõt, ha nem lenne ilyen, + akkor alapértelmezés szerint a + <command>vi</command> hívódik meg. Az így + megnyitott állományban változtassuk meg + kedvünk szerint a <quote>Shell: </quote> kezdetû + sort.</para> + + <para>A <command>chsh</command> parancsnak megadhatjuk az + <option>-s</option> opciót is, amin keresztül + szövegszerkesztõ használata nélkül + be tudjuk állítani a + parancsértelmezõt. Például ha a + parancsértelmezõnket a <command>bash</command>-re + akarjuk lecserélni, akkor ezt írjuk be:</para> + + <screen>&prompt.user; <userinput>chsh -s /usr/local/bin/bash</userinput></screen> + + <note> + <para>A használni kívánt + parancsértelmezõnek szerepelnie + <emphasis>kell</emphasis> az <filename>/etc/shells</filename> + állományban. Ha a kiválasztott + parancsértelmezõt a <link + linkend="ports">Portgyûjtemény</link>bõl + telepítettük fel, akkor az már minden + bizonnyal bekerült oda. Ha viszont saját magunk + raktuk volna fel, akkor ide is fel kell vennünk.</para> + + <para>Például ha a <command>bash</command>-t + manuálisan telepítettük és + másoltuk a <filename>/usr/local/bin</filename> + könyvtárba, akkor így kell + eljárnunk:</para> + + <screen>&prompt.root; <userinput>echo "/usr/local/bin/bash" >> /etc/shells</userinput></screen> + + <para>Majd próbálkozzunk újra a + <command>chsh</command> paranccsal.</para> + </note> + + </sect2> + </sect1> + + <sect1 id="editors"> + <title>Szövegszerkesztõk</title> + + <indexterm><primary>szövegszerkesztõk</primary></indexterm> + <indexterm><primary>szerkesztõk</primary></indexterm> + + <para>A &os; beállításának nagy + része szöveges állományok + szerkesztésével történik. Emiatt sosem + árt legalább egy szövegszerkesztõt + ismernünk. A &os; alaprendszerében, valamint a + Portgyûjteményben is találhatunk + néhányat belõlük.</para> + + <indexterm><primary><command>ee</command></primary></indexterm> + <indexterm> + <primary>szerkesztõk</primary> + <secondary><command>ee</command></secondary> + </indexterm> + + <para>A legegyszerûbben megtanulható és + legkönnyedebb szövegszerkesztõt + <application>ee</application>-nek, avagy <quote>easy + editornak</quote> hívják. Az + <application>ee</application> indításához + írjuk be az <command>ee + <replaceable>állománynév</replaceable></command> + parancsot, ahol az + <replaceable>állománynév</replaceable> lesz a + szerkesztendõ állomány neve. Így + például az <filename>/etc/rc.conf</filename> + állomány szerkesztéséhez + gépeljük be az <command>ee /etc/rc.conf</command> + parancsot. Miután elindult az <command>ee</command>, az + összes szerkesztéshez használható + parancsa megjelenik a képernyõ felsõ + részében. Itt a <quote>kalap</quote> + (<literal>^</literal>) karakter a <keycap>Ctrl</keycap> + billentyû lenyomására utal, így + tehát a <literal>^e</literal> jelölés a + <keycombo + action="simul"><keycap>Ctrl</keycap><keycap>e</keycap></keycombo> + billentyûkombinációt jelenti. Ha ki akarunk + lépni az <application>ee</application>-bõl, nyomjuk le + az <keycap>Esc</keycap> billentyût, majd a felbukkanó + menübõl válasszuk a szerkesztõ + elhagyását (leave editor). Ha az + állományt módosítottuk, + kilépés elõtt még a + szövegszerkesztõ rákérdez, hogy mentse-e a + változtatásainkat.</para> + + <indexterm><primary><command>vi</command></primary></indexterm> + <indexterm> + <primary>szerkesztõk</primary> + <secondary><command>vi</command></secondary> + </indexterm> + <indexterm><primary><command>emacs</command></primary></indexterm> + <indexterm> + <primary>szerkesztõk</primary> + <secondary><command>emacs</command></secondary> + </indexterm> + + <para>A &os; nagyobb tudású + szövegszerkesztõket, mint például a + <application>vi</application>-t, is tartalmaz az alaprendszer + részeként, miközben a többi, mint + például az <application>Emacs</application> vagy a + <application>vim</application> a Portgyûjtemény + részeként (<filename + role="package">editors/emacs</filename> és <filename + role="package">editors/vim</filename>) érhetõ el. + Ezek a szerkesztõk sokkal több lehetõséget + és erõt képviselnek, amiért + cserébe viszont valamivel nehezebb megtanulni a + használatukat. Ha viszont rengeteg szöveget akarunk + majd szerkeszteni, akkor egy <application>vim</application> vagy + <application>Emacs</application> használatának + megismerésével sok idõt + megspórolhatunk.</para> + + </sect1> + + <sect1 id="basics-devices"> + <title>Eszközök és + eszközleírók</title> + + <para>Az eszköz elnevezést leginkább a + rendszerben folyó, hardverrel kapcsolatos + tevékenységek kapcsán + használják lemezekre, nyomtatókra, grafikus + kártyákra és billentyûzetekre. A &os; + indulása során többnyire azt láthatjuk, + hogy milyen eszközöket sikerült felismernie. + Ezeket a rendszerindításkor megjelenõ + üzeneteket a <filename>/var/run/dmesg.boot</filename> + állományban nézhetjük meg + újra.</para> + + <para>Például a <devicename>acd0</devicename> az + elsõ IDE CD-meghajtót, míg a + <devicename>kbd0</devicename> a billentyûzetet + képviseli.</para> + + <para>A &unix; operációs rendszerben a legtöbb + eszközt a <filename>/dev</filename> könyvtárban + található, eszközleíróknak + (device node) nevezett speciális állományokon + keresztül érhetjük el.</para> + + <sect2> + <title>Eszközleírók + létrehozása</title> + + <para>Amikor egy újfajta eszközt adunk hozzá a + rendszerhez vagy csak annak egy új + példányát, mindig létre kell hoznunk + hozzá egy új + eszközleírót.</para> + + <sect3> + <title><literal>DEVFS</literal> (DEVice File System, + Eszköz-állományrendszer)</title> + + <para>Az eszközöket tartalmazó + állományrendszer, avagy + <literal>DEVFS</literal>, ad hozzáférést + a rendszermag által ismert eszközök neveihez + a globális állományrendszer nevein + keresztül. Így ahelyett, hogy magunknak kellene + létrehoznunk és módosítanunk az + eszközleírókat, a <literal>DEVFS</literal> + erre a célra fenntart egy külön + állományrendszert.</para> + + <para>A &man.devfs.5; man oldalon olvashatunk bõvebben + errõl.</para> + + </sect3> + </sect2> + </sect1> + + <sect1 id="binary-formats"> + <title>Bináris formátumok</title> + + <para>Annak megértéséhez, hogy a &os; + miért az &man.elf.5; formátumot használja, + elõször is tisztában kell lennünk a &unix; + típusú rendszerekben használt + végrehajtható állományok három + <quote>uralkodó</quote> formátumával:</para> + + <itemizedlist> + <listitem> + <para>&man.a.out.5;</para> + <para>A legõsibb és egyben a + <quote>klasszikus</quote> &unix;-os + tárgykódformátum. Egy tömör + és rövidke fejlécet használ, aminek + az elején a formátum + leírására szolgáló + <quote>bûvös szám</quote> + található (errõl bõvebben lásd + &man.a.out.5;). Három betöltött szegmenst + tartalmaz: .text, .data és .bss, valamint egy + szimbólumokat és karakterláncokat + tároló táblát.</para> + </listitem> + + <listitem> + <para><acronym>COFF</acronym></para> + <para>Az SVR3 tárgykódformátuma. A + fejléc itt már tartalmaz egy table nevû + szegmenst is, tehát a .text, .data és .bss + szegmensekhez hasonlóan ebbõl is többet tud + tárolni.</para> + </listitem> + + <listitem> + <para>&man.elf.5;</para> + <para>A <acronym>COFF</acronym> után következõ + formátum, amelyben több szegmens is + megtalálható, valamint létezik 32 bites + és 64 bites változatban is. Egyetlen + hátránya van: az <acronym>ELF</acronym> + tervezése során + rendszerarchitektúránként csupán + egyetlen ABI-t (bináris alkalmazói + felületet) feltételeztek. Ez azonban + meglehetõsen helytelen, mivel még a kereskedelmi + SYSV világában (ahol már legalább + három ABI található: SVR4, Solaris + és SCO) sem állja meg a helyét.</para> + + <para>A &os; ezt a problémát a + <emphasis>megbélyegzés</emphasis> (branding) + segítségével próbálja + megoldani, aminek révén el tudunk látni + egy ismert <acronym>ELF</acronym> állományt a + futtatásához megfelelõ ABI-ra + vonatkozó információkkal. Errõl + részletesebben a &man.brandelf.1; oldalán + tájékozódhatunk.</para> + </listitem> + </itemizedlist> + + <para>A &os; a <quote>klasszikusok</quote> + táborából indult, ezért kezdetben az + &man.a.out.5; formátumot használta, mivel ez a + technológia a BSD kiadások számos + generációjában megméretettett + és bevált, egészen a 3.X ág + elindulásáig. Habár már jóval + elõtte lehetett fordítani és futtatni + natív <acronym>ELF</acronym> binárisokat (és + rendszermagokat) a &os; rendszereken, a &os; kezdetben + óckodott váltani az alapértelmezés + szerinti <acronym>ELF</acronym> formátumra. De vajon + miért? Nos, a linuxos tábor már megtette a + maga fájdalmas váltását az + <acronym>ELF</acronym> formátummal kapcsolatban, és + gyorsan maguk mögött hagyták a + <filename>a.out</filename> formátumot a rugalmatlan, + ugrótáblákra alapozott oszott + könyvtár-kezelési mechanizmusai miatt, amivel + viszont megnehezítették a + különbözõ fejlesztõk és + gyártók számára az osztott + könyvtárak létrehozását. Mivel + az <acronym>ELF</acronym> formátumhoz rendelkezésre + álló eszközök megoldást + kínáltak az osztott könyvtárak + gondjaira, és mivel általánosan + elfogadták <quote>a jövõbe vezetõ + útként</quote>, a &os; is felvállalta az + átállással kapcsolatos + költs&a |