diff --git a/hu_HU.ISO8859-2/books/handbook/filesystems/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/filesystems/chapter.sgml
index c41fc20890..029ce9ebef 100644
--- a/hu_HU.ISO8859-2/books/handbook/filesystems/chapter.sgml
+++ b/hu_HU.ISO8859-2/books/handbook/filesystems/chapter.sgml
@@ -1,782 +1,770 @@
TomRhodesÍrta: Támogatott állományrendszerekÁttekintésállományrendszerektámogatott
állományrendszerekállományrendszerekAz állományrendszerek szerves
részét képezik napjaink operációs
rendszereinek. Segítségükkel a
felhasználók adatokat tölthetnek fel és
tárolhatnak a számítógépen,
szabályozhatják a
hozzáférésüket, és
természetesen mûködtethetik a merevlemezeiket. A
különféle operációs rendszerekben
általában azért annyi közös, hogy
mindannyiukhoz tartozik egy natív, vagyis általuk
alapból ismert állományrendszer. A &os;
esetében ezt konkrétan a Fast File System vagy
röviden FFS, amely az eredeti Unix™
File System, vagy más néven UFS
megoldásain alapszik. A &os; tehát a merevlemezeken
ebben a natív állományrendszerben
tárol adatokat.A &os; természetesen ezen kívül még
ismer számos egyéb állományrendszert,
ezáltal képes adatokat olvasni más
operációs rendszerek részérõl is
kezelhetõ partíciókról,
például helyi
USB-eszközökrõl,
flashkártyákról és
merevlemezekrõl. Továbbá ismeri
néhány más operációs rendszer
natív állományrendszerét, mint
például a &linux; Extended File System
(EXT) vagy éppen a &sun; Z File System
(ZFS).&os; alatt az egyes állományrendszerek ismerete
változó. Bizonyos esetekben elegendõ
csupán egy megfelelõ modul betöltése,
máskor viszont egy komplett eszközkészlet
segítségével tudunk velük dolgozni. Ez
a fejezet igyekszik a &sun;-féle Z
állományrendszerrel kezdõdõen bemutatni a
&os; felhasználói számára más
állományrendszerek használatát.A fejezet elolvasása során
megismerjük:a natív és támogatott
állományrendszerek közti
különbségeket;a &os; által ismert
állományrendszereket;hogyan engedélyezzünk, állítsunk
be és érjünk el nem natív
állományrendszereket.A fejezet elolvasásához ajánlott:a &unix; és &os; alapjainak ismerete ();a rendszermag konfigurációjának
és fordításának alapvetõ
fogásainak ismerete ();a különbözõ külsõ
fejlesztésû szoftverek
telepítésének ismerete ();a lemezek és egyéb
tárolóeszközök, valamint a &os; alatt az
eszközök elnevezésének
minimális ismerete ().
-
-
- Jelenleg a ZFS támogatása
- még nem tekinthetõ hétköznapi
- használatra alkalmasnak. Ennek
- következményeképpen bizonyos funkciók
- nem megfelelõen vagy egyáltalán nem
- mûködnek. Ahogy ez a támogatás
- megbízhatóvá válik, úgy
- fogjuk tovább finomítani a
- dokumentációt.
- A Z állományrendszer (ZFS)A &sun; Z állományrendszere egy új,
közös tárolási módszeren
nyugvó technológia. Ez annyit jelent a
gyakorlatban, hogy mindig csak annyi helyet foglal, amennyire az
adatoknak közvetlenül szüksége van.
Emellett úgy alakították ki, hogy az adatok
épségét minél inkább
védje, ezért például
megtalálhatjuk benne a pillanatképek
készítését, a másolatok
létrehozását és az adatok
sértetlenségének
ellenõrzését. Továbbá egy
RAID-Z néven bemutatott új
replikációs modellt is támogat. A
RAID-Z alapvetõen a
RAID-5 megoldásához
hasonlít, azonban írás során
keletkezõ hibák ellen igyekszik védelmet
nyújtani.A ZFS finomhangolásaA ZFS funkcióit
megvalósító alrendszer
alapértelmezés szerint meglehetõsen sok
erõforrást kíván, ezért nem
árt a legjobb hatékonyságra behangolnunk a
mindennapokban felmerülõ igények mentén.
Mivel ez még egy fejlesztés és
tesztelés alatt álló része a
&os;-nek, elképzelhetõ, hogy ez a jövõben
változik, viszont jelen pillanatban a következõ
lépéseket javasoljuk.MemóriaHasznos, ha a rendszerünkben legalább
1 GB memória található, de
inkább 2 vagy több az ajánlott. Az itt
szereplõ példákban ehelyett azonban
mindenhol csupán 1 GB-ot
feltételezünk.Néhányaknak sikerült
1 GB-nál kevesebb központi
memóriával is használni ezt az
állományrendszert, azonban ilyenkor nagyon
könnyen elõfordulhat, hogy komolyabb terhelés
esetén a &os; a memória elfogyása miatt
egyszerûen összeomlik.A rendszermag beállításaiA rendszermag konfigurációs
állományából javasolt
eltávolítani az összes nem használt
meghajtót és funkciót. A legtöbb
meghajtó egyébként is
elérhetõ modul formájában, és
a /boot/loader.conf
állományon keresztül minden gond
nélkül betölthetõek.Az &i386; architektúránál
szükségünk lesz az alábbi
konfigurációs beállítás
megadására, majd a rendszermag
újrafordítására, végül
a rendszer újraindítására:options KVA_PAGES=512Ezzel az opcióval a rendszermag
címterét növeljük meg, aminek
eredményeképpen a vm.kvm_size
változót immáron az eredetileg
1 GB-os (PAE használata
esetén pedig 2 GB-os) határ felé
tudjuk állítani. Az itt megadandó
értéket úgy tudjuk meghatározni,
ha a beállítani kívánt
méret MB-okban számolt
értékét elosztjuk néggyel. A
példában tehát az 512
egy 2 GB nagyságú címteret ad
meg.A rendszertöltõ
beállításaiA kmem címterét az
összes &os; által ismert architektúra
esetében érdemes megnövelnünk. A
teszteléshez használt rendszeren 1 GB
fizikai memória állt rendelkezésre, itt a
/boot/loader.conf
állományban a következõ
értékek megadásával minden
remekül mûködött:vm.kmem_size="330M"
vm.kmem_size_max="330M"
vfs.zfs.arc_max="40M"
vfs.zfs.vdev.cache.size="5M"A ZFS finomhangolásával kapcsolatos
további javasolatokat a
címen olvashatunk.A ZFS használataA Z állományrendszerhez létezik egy
olyan mechanizmus, amelyen keresztül már a &os;
indítása során el tudjuk végezni a
közös tárolók
csatlakoztatását:&prompt.root; echo 'zfs_enable="YES"' >> /etc/rc.conf
&prompt.root; /etc/rc.d/zfs startA leírás fennmaradó
részében feltételezzük, hogy
három SCSI-lemezünk van,
amelyeket rendre a
da0,
da1
és
da2
eszközök formájában tudunk
elérni. Az IDE lemezek
tulajdonosainak értelemszerûen itt majd az
ad
eszközneveket kell használniuk a
SCSI-eszközök hivatkozásai
helyett.Egyetlen közös tároló
használataA zpool kiadásával
egyetlen lemezen is létre tudunk hozni egy
egyszerû, nem redundáns ZFS
partíciót:&prompt.root; zpool create minta /dev/da0Az új közös tárterület a
df parancs
felhasználásával rögtön
láthatóvá válik:&prompt.root; df
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/ad0s1a 2026030 235230 1628718 13% /
devfs 1 1 0 100% /dev
/dev/ad0s1d 54098308 1032846 48737598 2% /usr
minta 17547136 0 17547136 0% /mintaA parancs kimenetében tisztán
láthatjuk, hogy a minta nevû
tároló nem csak egyszerûen
elkészült, hanem egyúttal
csatolódott. Innentõl
már a többi állományrendszerhez
hasonlóan tetszõlegesen elérhetõ, az
alábbi példához hasonlóan
állományok hozhatóak rajta létre
vagy listázható a tartalma:&prompt.root cd /minta
&prompt.root; ls
&prompt.root; touch proba
&prompt.root; ls -al
total 4
drwxr-xr-x 2 root wheel 3 Aug 29 23:15 .
drwxr-xr-x 21 root wheel 512 Aug 29 23:12 ..
-rw-r--r-- 1 root wheel 0 Aug 29 23:15 probaSajnos azonban ez a tároló még ki sem
használja a ZFS által
felkínált lehetõségeket.
Ezért most hozzunk létre egy
állományrendszert ezen a tárolón
belül és engedélyezzük rajta a
tömörítést:&prompt.root; zfs create minta/tomoritett
&prompt.root; zfs set compression=gzip minta/tomoritettA minta/tomoritett most már egy
tömörített Z állományrendszer.
Próbáljuk ki mit tud, és másoljunk
néhány nagyobb méretû
állományt a /minta/tomoritett
könyvtárba.Ezután a tömörítés
akár ki is kapcsolható:&prompt.root; zfs set compression=off minta/tomoritettAz állományrendszer
leválasztásához adjuk ki a lenti parancsot,
majd ellenõrizzük az eredményét a
df használatával:&prompt.root; zfs umount minta/tomoritett
&prompt.root; df
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/ad0s1a 2026030 235232 1628716 13% /
devfs 1 1 0 100% /dev
/dev/ad0s1d 54098308 1032864 48737580 2% /usr
minta 17547008 0 17547008 0% /mintaTegyük ismét elérhetõvé
és csatlakoztassuk újra az
állományrendszert, majd nézzük meg
az eredményt a df paranccsal:&prompt.root; zfs mount minta/tomoritett
&prompt.root; df
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/ad0s1a 2026030 235234 1628714 13% /
devfs 1 1 0 100% /dev
/dev/ad0s1d 54098308 1032864 48737580 2% /usr
minta 17547008 0 17547008 0% /minta
minta/tomoritett 17547008 0 17547008 0% /minta/tomoritettA közös terület és az
állományrendszer mellesleg a
mount parancs kimenetébõl is
megfigyelhetõ:&prompt.root; mount
/dev/ad0s1a on / (ufs, local)
devfs on /dev (devfs, local)
/dev/ad0s1d on /usr (ufs, local, soft-updates)
minta on /minta (zfs, local)
minta/tomoritett on /minta/tomoritett (zfs, local)Látható, hogy a létrehozásuk
után a Z állományrendszerek teljesen
hétköznapi módon viselkednek, de
természetesen további lehetõségek is
elérhetõek hozzájuk. A következõ
példában adat néven
készítünk egy új
állományrendszert. Mivel ide majd nagyon fontos
állományokat akarunk elhelyezni,
állítsuk be, hogy minden adatblokkból
két példány legyen:&prompt.root; zfs create minta/adat
&prompt.root; zfs set copies=2 minta/adatA df újbóli
kiadásával most már látható
is ez az állományrendszer és annak
tárfoglalása:&prompt.root; df
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/ad0s1a 2026030 235234 1628714 13% /
devfs 1 1 0 100% /dev
/dev/ad0s1d 54098308 1032864 48737580 2% /usr
minta 17547008 0 17547008 0% /minta
minta/tomoritett 17547008 0 17547008 0% /minta/tomoritett
minta/adat 17547008 0 17547008 0% /minta/adatVegyük észre, hogy a közös
területen levõ állományrendszerek
mindegyikén ugyanannyi szabad terület van. A
df segítségével a
késõbbiekben remekül megfigyelhetõ lesz,
hogy az egyes állományrendszerek mindig csak
annyi területet foglalnak el a közös
területbõl, amennyire abban a pillanatban
ténylegesen szükségünk van. A Z
állományrendszerek esetén megszûnik
a partíciók és kötetek fogalma,
és több állományrendszer
tárolódik egyazon közös
területen. Ha már nem akarjuk használni,
egyszerûen csak töröljük le az
állományrendszereket és ezt a
közös tárolót:&prompt.root; zfs destroy minta/tomoritett
&prompt.root; zfs destroy minta/adat
&prompt.root; zpool destroy mintaNyilván tapasztalhattunk már, hogy a
lemezeink olykor menthetetlenül meghibásodnak.
Amikor egy lemezes meghajtó tönkremegy, a rajta
tárolt adatok általában elvesznek. Az
ilyen jellegû kellemetlenségek
elkerülésének egyik módja az
ún. RAID-tömbök
építése. A következõ
szakaszban bemutatjuk, hogy a Z
állományrendszerek esetén hogyan tudunk
ilyen tömböket készíteni.RAID-Z tömbökKorábban már utaltunk rá, hogy ebben
a szakaszban három SCSI-lemez,
vagyis a da0,
da1 és
da2 eszközök
használatát feltételezzük (vagy
természetesen ad0 és
így tovább, ha IDE-lemezeket használunk).
Egy RAID-Z formátumú
közös tároló
készítéséhez a következõ
parancsot kell kiadni:&prompt.root; zpool create tarolo raidz da0 da1 da2A &sun; ajánlása szerint egy
RAID-Z konfigurációban
legalább három, legfeljebb kilenc lemezt
javasolt alkalmazni. Ha egyetlen közös
tárolóban esetleg tíznél
több lemezt szeretnénk felhasználni,
akkor érdemes inkább kisebb
RAID-Z csoportokra felosztani ezeket. Ha
viszont csak két lemezünk van, de
továbbra is redundanciára lenne
szükségünk, hozzunk helyette létre
egy ZFS tükrözést.
Ezzel kapcsolatban részletesebben a &man.zpool.8; man
oldalon keresztül
tájékozódhatunk.Ennek hatására tehát keletkezik egy
tarolo nevû Z-tároló.
Ez a korábbiakhoz hasonló módon
ellenõrizhetõ is a &man.mount.8; és
&man.df.1; parancsokon keresztül. Természetesen
az iménti listába további
lemezeszközök tetszõlegesen felvehetõek.
Most hozzunk létre ezen a közös
területen egy felhasznalok nevû
állományrendszert, ahová majd a
felhasználók adatait fogjuk tenni:&prompt.root; zfs create tarolo/felhasznalokMiután ezzel megvagyunk, az imént
létrehozott állományrendszerre nyugodtan
beállíthatunk tömörítést
és biztonsági másolatokat. Ebben az
alábbi parancsok lesznek a
segítségünkre:&prompt.root; zfs set copies=2 tarolo/felhasznalok
&prompt.root; zfs set compression=gzip tarolo/felhasznalokEzt követõen költöztessük
át a felhasználókat, vagyis másoljuk
át az adataikat ide és hozzuk létre a
megfelelõ szimbolikus linkeket:&prompt.root; cp -rp /home/* /tarolo/felhasznalok
&prompt.root; rm -rf /home /usr/home
&prompt.root; ln -s /tarolo/felhasznalok /home
&prompt.root; ln -s /tarolo/felhasznalok /usr/homeA felhasználók adatai immáron a
frissen létrehozott /tarolo/felhasznalok
állományrendszeren tárolódnak.
Próbáljuk ki, hozzunk létre egy új
felhasználót és jelentkezzünk be
vele.Készítsünk most egy
pillanatképet is, amelyet aztán késõbb
szükség esetén vissza tudunk
állítani:&prompt.root; zfs snapshot tarolo/felhasznalok@08-08-30A snapshot csak valós
állományrendszerekkel mûködik,
könyvtárakra vagy állományokra nem.
A nevében a @ karakter
választja el egymástól a
hozzátartozó címkét az
állományrendszer vagy kötet
nevétõl. Ha netalán a
felhasználói könyvtárak
valamiért megsérültek volna, a
következõ paranccsal
állíthatóak vissza:&prompt.root; zfs rollback tarolo/felhasznalok@08-08-30Az adott idõpontban aktív
pillanatképeket az adott állományrendszer
.zfs/snapshot
könyvtárában találhatjuk meg.
Például az elõbb készített
pillanatkép az alábbi paranccsal
nézhetõ meg:&prompt.root; ls /tarolo/felhasznalok/.zfs/snapshotHa ebbõl elindulunk, akkor pillanatok alatt
írható egy olyan szkript, amely a
felhasználók adatairól havonta
készít egy pillanatképet. Ilyenkor
azonban fontos számításba vennünk,
hogy az idõvel felgyülemlõ pillanatképek
rengeteg helyet el tudnak foglalni. A korábbi
pillanatkép így távolítható
el:&prompt.root; zfs destroy tarolo/felhasznalok@08-08-30Miután alaposan kipróbáltuk a
/tarolo/felhasznalok
néven létrehozott
állományrendszerünket,
állítsuk be véglegesen ez eddigi
/home
állományrendszer helyére:&prompt.root; zfs set mountpoint=/home tarolo/felhasznalokEkkor a df és
mount parancsok használatával
meggyõzõdhetünk róla, hogy ezt az
állományrendszert innentõl már
valóban a /home
könyvtárnak tekintjük:&prompt.root; mount
/dev/ad0s1a on / (ufs, local)
devfs on /dev (devfs, local)
/dev/ad0s1d on /usr (ufs, local, soft-updates)
tarolo on /tarolo (zfs, local)
tarolo/felhasznalok on /home (zfs, local)
&prompt.root; df
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/ad0s1a 2026030 235240 1628708 13% /
devfs 1 1 0 100% /dev
/dev/ad0s1d 54098308 1032826 48737618 2% /usr
tarolo 26320512 0 26320512 0% /tarolo
tarolo/felhasznalok 26320512 0 26320512 0% /homeEzzel lényegében befejeztük a
RAID-Z tömb
konfigurációját. Az
állományrendszerek állapotára
vonatkozóan a &man.periodic.8;
alkalmazásával akár naponta
kérhetünk ellenõrzést:&prompt.root; echo 'daily_status_zfs_enable="YES"' >> /etc/periodic.confA RAID-Z
helyreállításaMinden szoftveres RAID
implementáció kínál valamilyen
megoldást az állapotának
ellenõrzésére, ez alól
tulajdonképpen a ZFS sem
kivétel. A RAID-Z
eszközök állapota a következõ
paranccsal kérdezhetõ le:&prompt.root; zpool status -xEzt az üzenetet láthatjuk, amikor minden
tároló kifogástalanul mûködik
és semmilyen probléma sincs:all pools are healthyHa viszont valamilyen gond lenne valamelyik lemezzel,
például leállt, akkor az elõbbi
parancs eredménye ehhez lesz hasonló: pool: tarolo
state: DEGRADED
status: One or more devices has been taken offline by the administrator.
Sufficient replicas exist for the pool to continue functioning in a
degraded state.
action: Online the device using 'zpool online' or replace the device with
'zpool replace'.
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
tarolo DEGRADED 0 0 0
raidz1 DEGRADED 0 0 0
da0 ONLINE 0 0 0
da1 OFFLINE 0 0 0
da2 ONLINE 0 0 0
errors: No known data errorsA válasz szerint az eszközt az
adminisztrátor állította le. Ez
ennél a példánál valóban
igaz. Lemezeket a következõ módon lehet
leállítani:&prompt.root; zpool offline tarolo da1Így miután leállítottuk a
rendszert, a da1 eszköz
cserélhetõ. A rendszer soron következõ
indításakor ezzel a paranccsal tudjuk jelezni
logikailag is a lemez cseréjét:&prompt.root; zpool replace tarolo da1Nézzük meg újra a tömb
állapotát, de ezúttal a
kapcsoló megadása nélkül, mivel csak
így fogjuk látni:&prompt.root; zpool status tarolo
pool: tarolo
state: ONLINE
scrub: resilver completed with 0 errors on Sat Aug 30 19:44:11 2008
config:
NAME STATE READ WRITE CKSUM
tarolo ONLINE 0 0 0
raidz1 ONLINE 0 0 0
da0 ONLINE 0 0 0
da1 ONLINE 0 0 0
da2 ONLINE 0 0 0
errors: No known data errorsA példa szerint minden megfelelõen
mûködik.Az adatok ellenõrzéseElõzetesen már szó esett róla,
hogy a ZFS képes a tárolt
adatok sértetlenségének
ellenõrzésére. Az új
állományrendszerek
létrehozásánál ez a
lehetõség automatikusan aktiválódik,
de tetszés szerint letiltható:&prompt.root; zfs set checksum=off tarolo/felhasznalokEz a lépés viszont nem
feltétlenül jó döntés, mivel az
adatintegritás megtartásához
felhasznált ellenõrzõ összegek nagyon
kevés helyet foglalnak és meglehetõsen
hasznosak. Emellett semmilyen észlelhetõ
lassulást nem okoznak az állományrendszer
használata során. Ha engedélyezzük,
a ZFS ilyen ellenõrzõ
összegek segítségével folyamatosan
figyelni tudja az adatok épségét. Ezt az
ellenõrzést a scrub paranccsal
válthatjuk ki. Nézzük meg
például a tarolo
esetében:&prompt.root; zpool scrub taroloEz a vizsgálat a tárolt adatok
mennyiségétõl függõen nagyon
sokáig is eltarthat, illetve rengeteg
lemezmûveletet foglal magában, ezért
egyszerre csak egy ilyen futtatása javasolt.
Miután befejezõdött, a tároló
állapota az eredményének megfelelõen
frissül, amelyet közvetlenül utána le is
kérdezhetünk:&prompt.root; zpool status tarolo
pool: tarolo
state: ONLINE
scrub: scrub completed with 0 errors on Sat Aug 30 19:57:37 2008
config:
NAME STATE READ WRITE CKSUM
tarolo ONLINE 0 0 0
raidz1 ONLINE 0 0 0
da0 ONLINE 0 0 0
da1 ONLINE 0 0 0
da2 ONLINE 0 0 0
errors: No known data errorsA példában látható az
utolsó ellenõrzés ideje. Ezen
lehetõség használatával
hosszú idõn keresztül szavatolni tudjuk az
adataink épségét.A Z állományrendszerrel kapcsolatos
további beállítási
lehetõségekrõl a &man.zfs.8; és
&man.zpool.8; man oldalakon olvashatunk.
diff --git a/hu_HU.ISO8859-2/books/handbook/firewalls/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/firewalls/chapter.sgml
index c4a05d0a92..fedcbf3f27 100644
--- a/hu_HU.ISO8859-2/books/handbook/firewalls/chapter.sgml
+++ b/hu_HU.ISO8859-2/books/handbook/firewalls/chapter.sgml
@@ -1,4560 +1,4579 @@
Joseph J.BarbishÍrta: BradDavisSGML formátumúra alakította
és aktualizálta: TûzfalaktûzfalakbiztonságtûzfalakBevezetésA tûzfalakkal a rendszerünkön
keresztülfolyó bejövõ és kimenõ
forgalmat tudjuk szûrni. A tûzfalak egy vagy több
szabályrendszer alapján
vizsgálják az éppen érkezõ vagy
távozó hálózati csomagokat, és
vagy továbbengedik ezeket vagy
megállítják. A tûzfalak
szabályai a csomagok egy vagy több
jellemzõjét veszik szemügyre, amelyek lehetnek
például a protokoll típusa, a forrás
vagy cél hálózati címe, esetleg a
forrás- vagy a célport.A tûzfalak jelentõs mértékben
képesek gyarapítani egy gép vagy egy
hálózat védelmét. Leginkább a
következõkre tudjuk felhasználni:A belsõ hálózatunkban futó
alkalmazások, szolgáltatások,
gépek megvédésére és
elszigetelésére az internetrõl
érkezõ nem kívánt forgalom
ellenA belsõ hálózatban levõ
gépek elérését tudjuk
korlátozni vagy letiltani az interneten
elérhetõ szolgáltatások
feléA hálózati címfordítás
(Network Address Translation, NAT)
beállításához, ahol a belsõ
hálózatunk privát
IP-címeket használnak
és egy közös kapcsolaton keresztül
érik el az internetet (egyetlen
IP-címmel, vagy pedig automatikusan
kiosztott publikus címekkel).A fejezet elolvasása során
megismerjük:hogyan adjuk meg helyesen a csomagok
szûrését leíró
szabályokat;a &os;-be épített tûzfalak közti
különbségeket;hogyan állítsuk be és
használjuk az OpenBSD PF
tûzfalát;hogyan állítsuk be és
használjuk az IPFILTER
tûzfalat;hogyan állítsuk be és
használjuk az IPFW
tûzfalat.A fejezet elolvasása elõtt ajánlott:a &os;-hez és az internethez kötõdõ
alapvetõ fogalmak ismerete.Röviden a tûzfalakróltûzfalakszabályrendszereiA tûzfalak szabályrendszereit alapvetõen
kétféleképpen tudjuk
összeállítani: inkluzív,
vagyis megengedõ, illetve exkluzív
vagyis kizáró módon. Az exkluzív
tûzfalak minden forgalmat átengednek, amirõl nem
rendelkeznek a tûzfal szabályai. Az inkluzív
tûzfalak ennek pontosan az ellenkezõjét teszik.
Csak azt a forgalmat engedik át, amirõl van
szabály és minden mást blokkolnak.Az inkluzív tûzfalak alkalmazásával
sokkal jobban kezünkbentudjuk tartani a
hálózatunk kimenõ forgalmát,
ezért leginkább az internetes
szolgáltatásokat futtató rendszerek
esetében bizonyulhat jobb választásnak.
Emellett az internetrõl a hálózatunk
felé irányuló forgalmat is képes
szabályozni. Ekkor az egyetlen szabályra sem
illeszkedõ csomagokat egyszerûen eldobjuk és
naplózzuk. Az inkluzív tûzfalak
általában biztonságosabbak az exkluzív
típusú társaiknál, mivel
esetükben jelentõs mértékben visszaszorul
a nem kívánatos átfolyó
forgalom.Hacsak nem emeljük ki külön, a fejezet
további részében minden
példaként megadott szabályrendszer
inkluzív tûzfalat hoz létre.Ez a típusú védelem még
tovább fokozható az
állapottartó tûzfalak (stateful
firewall) használatával. Az ilyen
típusú tûzfalak szemmel tartják a rajtuk
keresztül megnyitott kapcsolatokat, és vagy csak a
már meglevõ kapcsolathoz tartozó forgalmat
engedik át vagy nyitnak egy újat. Az
állapottartó tûzfalak hátránya,
hogy a Denial of Service (DoS)
típusú támadásokkal szemben sokkal
sérülékenyebbek olyan helyzetekben, amikor az
új kapcsolatok nagyon gyorsan jönnek létre. A
legtöbb tûzfal esetében azonban tudjuk
vegyíteni az állapottartó és nem
állapottartó viselkedést, és ezzel egy
ideális beállítást
kialakítani.TûzfalakA &os; alaprendszerébe három
különbözõ tûzfalat
építettek be, melyek a következõk: az
IPFILTER (másik nevén
IPF), az IPFIREWALL
(más néven IPFW) és az
OpenBSD csomagszûrõje (Packet
Filter, azaz PF). A forgalom
szabályozására (vagyis alapvetõen a
sávszélesség
kihasználtságának
vezérlésére) a &os; két
beépített csomagot tartalmaz: ez az &man.altq.4;
és a &man.dummynet.4;. Általában a Dummynet
az IPFW, míg az ALTQ
a PF partnere. Az IPFILTER esetében
maga az IPFILTER végzi a címfordítást
és a szûrést, a
sávszélességet pedig az
IPFW a &man.dummynet.4;
vagy a PF az
ALTQ segítségével. Az
IPFW és a PF
szabályokkal rendelkezik a rendszerünkbe
érkezõ vagy onnan távozó
csomagokról, habár megoldásaik teljesen
máshogy mûködnek és a szabályok
megadási módja is eltér.A &os; azért tartalmaz egyszerre ennyiféle
tûzfalat, mert az emberek elvárásai és
igényei eltérnek. Egyikük sem tekinthetõ
a legjobbnak.A szerzõ egyébként az IPFILTER
megoldását részesíti elõnyben,
mivel egy hálózati címfordítást
alkalmazó környezetben sokkal könnyebb vele
megfogalmazni az állapottartó szabályokat,
valamint tartalmaz egy beépített FTP proxyt is,
amivel így a kimenõ FTP kapcsolatok
beállítása még tovább
egyszerûsödik.Mivel az összes tûzfal a csomagok
fejlécének bizonyos mezõinek alapján
dolgozik, ezért a tûzfal
szabályrendszerét megalkotó egyénnek
teljesen tisztában kell lennie a TCP/IP
mûködésével, továbbá azzal,
hogy ezekben a mezõkben milyen értékek
szerepelhetnek és ezeket hogyan használják
egy átlagos kapcsolat alatt. Ebben a témában
a
címen találhatunk egy remek ismertetõt
(angolul).JohnFerrellÁtnézte és
aktualizálta:Az OpenBSD csomagszûrõje (PF) és az
ALTQtûzfalakPF2003 júliusában az OpenBSD PF
néven ismert csomagszûrõjét
átírták &os;-re és
elérhetõvé tették a &os;
Portgyûjteményének részeként. A
PF programot beépítetten
tartalmazó elsõ kiadás pedig 2004
novemberében a &os; 5.3 volt. A PF
egy teljes, mindentudó tûzfal, amely támogatja
az ún. ALTQ (Alternate Queuing, vagyis
a váltóbesorolás)
megoldást. Az ALTQ lehetõvé
teszi a sávszélesség
korlátozását a szolgáltatás
minõsége (Quality of Service, QoS)
alapján.Az OpenBSD Projekt kiváló munkát
végez a PF felhasználói
útmutatójának
karbantartásával. A kézikönyv ezen
szakasza ezért elsõsorban azzal foglalkozik, hogyan
kell a PF-et &os; alatt használni,
miközben igyekszik egy általános
összefoglalást adni a témáról. A
részletesebb információkkal kapcsolatban
azonban feltétlenül nézzük meg a
felhasználói útmutatót.A
címen olvashatunk többet arról (angolul), hogy
a PF-et hogyan használjunk
&os;-n.
- A PF rendszermagmodul használata
-
- A &os; 5.3 megjelenése óta a
- PF az alaprendszer része mint
- futás közben betölthetõ rendszermagmodul.
- A rendszer induláskor tehát képes
- automatikusan betölteni, ha az &man.rc.conf.5;
- állományban megadjuk a
- pf_enable="YES" sort. A
- PF modul azonban csak akkor fog
- mûködésbe lépni, ha talál
- hozzátartozó szabályrendszert, amely
- alapértelmezés szerint az
- /etc/pf.conf állományban
- található. Amennyiben a PF
- szabályrendszere a mi esetünkben máshol
- található, akkor az rc.conf
- állományban ne felejtsük megadni a
- pf_rules="/elérési/útvonal/pf.szabályok"
- sor használatával.
+ A PF rendszermagmodulok használata
+
+ A PF modul
+ betöltéséhez a következõ sort kell
+ felvennünk az /etc/rc.conf
+ állományba:
+
+ pf_enable="YES"
+
+ Ezt követõen futtassuk le a
+ hozzátartozó rendszerindító
+ szkriptet:
+
+ &prompt.root; /etc/rc.d/pf start
+
+ A PF modul abban az esetben nem fog
+ betöltõdni, ha nem találja a szabályokat
+ tartalmazó konfigurációs
+ állományt. Ez alapértelmezés
+ szerint az /etc/pf.conf
+ állomány. Ha a szabályok
+ leírása rendszerünkön máshol
+ található, akkor az
+ /etc/rc.conf állományban a
+ következõ módon adhatjuk meg annak pontos
+ helyét:
+
+ pf_rules="/elérési/út/pf.conf"A &os; 7.0 kiadással a minta
pf.conf állomány az
/etc
könyvtárból átkerült a
/usr/share/examples/pf
könyvtárba. A &os; 7.0 elõtti
kiadásokban alapértelmezés szerint
található egy pf.conf
állomány az /etc
könyvtárban.A PF modul parancssorból
akár kézzel is betölthetõ:&prompt.root; kldload pf.ko
- A betölthetõ modul tartalmazza a &man.pflog.4;
- támogatását, amely
- segítségével naplózni is tudunk.
- Amennyiben a PF további
- szolgáltatásaira is szükségünk
- lenne, akkor a PF
- támogatását be kell
- építenünk a rendszermagba.
+ A PF mûködésének
+ naplózását a pflog.ko
+ teszi lehetõvé, amelyet az alábbi sor
+ hozzáadásával engedélyezhetünk
+ az /etc/rc.conf
+ állományban:
+
+ pflog_enable="YES"
+
+ A modul betöltését a
+ hozzátartozó rendszerindító szkript
+ segítségével kérhetjük:
+
+ &prompt.root; /etc/rc.d/pflog start
+
+ Ha a PF többi
+ funkcióját is használni szeretnénk,
+ akkor ehhez egy új rendszermagot kell fordítanunk
+ PF támogatással.A PF rendszermagbeli
beállításaia rendszermag
beállításaidevice pfa rendszermag
beállításaidevice pfloga rendszermag
beállításaidevice pfsyncNoha egyáltalán nem szükséges
beépítenünk a PF
támogatását a rendszermagba, abban az
esetben mégis szükségünk lehet
rá, amikor a PF olyan komolyabb
lehetõségeit szeretnénk kiaknázni,
amelyek már nem részei a modulnak. Ilyen
például a &man.pfsync.4;, amely a
PF által használt
állapottáblázatok bizonyos
változásainak megjelenítésére
alkalmas pszeudoeszköz. A &man.carp.4;
megoldásával párosítva így
akár hibatûrõ tûzfalak is
kialakíthatóak a PF-fel. A
CARP megoldásáról a
kézikönyvben bõvebb ismertetést a ad.A PF rendszermag
konfigurációs beállításai a
/usr/src/sys/conf/NOTES
állományban találhatóak:device pf
device pflog
device pfsyncA device pf
beállítás engedélyezi a
csomagszûrõ tûzfalat (&man.pf.4;).A device pflog megadásával
keletkezik egy &man.pflog.4; pszeudo hálózati
eszköz, amellyel egy &man.bpf.4; eszközre
érkezõ forgalmat tudunk naplózni.
Ezután a &man.pflogd.8; démon
használható tõle származó
naplózott adatok
rögzítésére.A device pfsync engedélyezi a
&man.pfsync.4; pszeudo hálózati eszköz
létrejöttét, amely az ún.
állapotváltások
megfigyelésére alkalmas.Az rc.conf állományban
elérhetõ beállításokA következõ &man.rc.conf.5;
beállítások aktiválják a
rendszerindítás során a
PF és a &man.pflog.4;
használatát:pf_enable="YES" # a PF engedélyezése (a modul betöltése, ha kell)
pf_rules="/etc/pf.conf" # a pf szabályait tartalmazó állomány
pf_flags="" # a pfctl indításához szükséges további paraméterek
pflog_enable="YES" # a pflogd(8) elindítása
pflog_logfile="/var/log/pflog" # hol tartsa a pflogd az naplóit
pflog_flags="" # a pflogd indításához szükséges paraméterekHa a tûzfalunk mögött egy helyi
hálózat is meghúzódik, akkor az ott
levõ gépek számára valamilyen
módon tudnunk kell továbbítani a csomagokat
vagy címfordítást kell végezni,
így ez is mindenképpen kelleni fog:gateway_enable="YES" # az átjáró funkciók engedélyezéseA szûrési szabályok
megfogalmazásaA PF a beállításait
a &man.pf.conf.5; állomány tárolja (amely
alapértelmezés szerint az
/etc/pf.conf helyen
található), és az ebben
található szabályok alapján
módosítja, dobja el vagy éppen engedi
át a csomagokat. A &os; rendszerünkben ehhez
találhatunk néhány példát a
/usr/share/examples/pf/
könyvtárban. A PF által
használt szabályokról minden
részletre kiterjedõen a PF felhasználói
útmutatójában olvashatunk.A PF felhasználói
útmutatójának
olvasásakor ne feledkezzünk meg róla, hogy
a különbözõ &os; verziók
különbözõ PF
verziókat tartalmaznak:&os; 5.X —
OpenBSD 3.5 PF&os; 6.X —
OpenBSD 3.7 PF&os; 7.X —
OpenBSD 4.1 PFA &a.pf; remek hely a PF tûzfal
beállításával és
futtatásával kapcsolatos kérdésekre.
A kérdezés elõtt azonban ne felejtsük el
alaposan átnézni az archívumot!A PF használataA PF a &man.pfctl.8;
segítségével vezérelhetõ. Az
alábbiakban ezzel kapcsolatban most összefoglalunk
néhány hasznos parancsot (de ne felejtsük el
megnézni a &man.pfctl.8; man oldalon
található többi lehetõséget
sem):ParancsLeíráspfctl A PF engedélyezésepfctl A PF tiltásapfctl all /etc/pf.confAz összes (címfordítási,
szûrési, állapottartási stb.)
szabály törlése, és az
/etc/pf.conf állomány
újratöltésepfctl [ rules | nat | state ]A szûrési (rules),
címfordítási
(nat) és
állapottartási (state)
információk
lekérdezésepfctl /etc/pf.confAz /etc/pf.conf
állomány ellenõrzése a benne
levõ szabályok betöltése
nélkülAz ALTQ
engedélyezéseAz ALTQ kizárólag csak
úgy használható, ha a
konfigurációs beállításokon
keresztül beépítjük a &os;
rendszermagjába. Az ALTQ
alkalmazását nem minden hálózati
kártya meghajtója támogatja, ezért
ezt a &man.altq.4; man oldalon ellenõrizzük.A következõ rendszermag
konfigurációs beállításokkal
engedélyezhetjük az ALTQ
használatát és bõvíthetjük
azt további lehetõségekkel:options ALTQ
options ALTQ_CBQ # osztályozás alapú besorolás (Class Bases Queuing, CBQ)
options ALTQ_RED # véletlen korai észlelés (Random Early Detection, RED)
options ALTQ_RIO # RED befele/kifele
options ALTQ_HFSC # hiearchikus csomagütemezõ (Hierarchical Packet Scheduler, HFSC)
options ALTQ_PRIQ # prioritásos besorolás (Priority Queuing, PRIQ)
options ALTQ_NOPCC # az SMP esetén kellAz options ALTQ az
ALTQ rendszert engedélyezi.Az options ALTQ_CBQ engedélyezi a
osztályozás alapú besorolást
(Class Based Queuing,
CBQ). A CBQ
használatával a kapcsolatunkhoz tartozó
sávszélességet
különbözõ osztályokra vagy sorokra
tudjuk bontani és a szûrési
szabályoknak megfelelõen osztályozni
segítségükkel a forgalmat.Az options ALTQ_RED a véletlen
korai észlelés (Random Early
Detection, RED)
használatát engedélyezi. A
RED a hálózati forgalomban
keletkezõ torlódások
elkerülésére alkalmas. A
RED ezt a problémát úgy
oldja meg, hogy méri a sorok hosszát és
összeveti a hozzátartozó minimális
és maximális
küszöbértékekkel. Ha a sor hossza
meghaladja a számára elõírt
maximális értéket, akkor az új
csomagokat eldobja. Nevéhez hûen a
RED az eldobásra ítélt
csomagokat véletlenszerûen választja
ki.Az options ALTQ_RIO engedélyezi a
RED használatát mind a
két irányba, tehát be- és
kifelé.Az options ALTQ_HFSC a pártatlan
hierachikus szolgáltatási görbe alapú
csomagütemezõt (Hierarchical Fair Service
Curve Packet Scheduler, HFSC)
engedélyezi. Vele kapcsolatban a
címen találhatunk bõvebben
olvasnivalót (angolul).Az options ALTQ_PRIQ a prioritásos
besorolást (Priority Queuing,
PRIQ) teszi elérhetõvé. A
PRIQ mindig elsõként a nagyobb
értékû sorban levõ forgalmat
továbbítja.Az options ALTQ_NOPCC az
ALTQ SMP, vagyis
többprocesszoros támogatását adja meg.
Ilyen típusú rendszerekben ez
kötelezõ.Az IPFILTER (IPF) tûzfaltûzfalakIPFILTERAz IPFILTER szerzõje Darren Reed. Az IPFILTER nem
kötõdik egyik rendszerhez sem: ez egy olyan nyílt
forráskódú alkalmazás, amelyet
átírtak &os;, NetBSD, OpenBSD, &sunos;, HP/UX
és &solaris; operációs rendszerekre. Az
IPFILTER karbantartása és támogatása
pillanatnyilag is aktív, folyamatosan jelennek meg
újabb változatai.Az IPFILTER egy rendszermag oldalán
mûködõ tûzfalazási és egy
címfordítási mechanizmusra alapszik, amelyet
felhasználói programokkal tudunk felügyelni
és vezérelni. A tûzfal szabályai az
&man.ipf.8; segédprogrammal
állíthatóak be vagy
törölhetõek. A hálózati
címfordításra vonatkozó
szabályokat az &man.ipnat.1; segédprogrammal
állíthatjuk be vagy törölhetjük. Az
&man.ipfstat.8; segédprogram képes futás
közben statisztikákat készíteni az
IPFILTER rendszermagban elhelyezkedõ részeinek
viselkedésérõl. Az &man.ipmon.8; program pedig
az IPFILTER cselekvéseit képes a
rendszernaplókba feljegyezni.Az IPF eredetileg olyan szabályfeldolgozási
módszer szerint készült, amelyben az
utolsó egyezõ szabály nyer és
csak állapotnélküli szabályokat ismert.
Az idõ múlásával az IPF
részévé vált a quick
opció és a keep state opción
keresztül az állapottartás is, melyek
drámai mértékben
korszerûsítették a szabályok
feldolgozásának elvét. Az IPF hivatalos
dokumentációja csak a régi szabályok
létrehozását és azok
feldolgozásának leírását
tartalmazza. A korszerûsített funkciók csak
kiegészítésképpen jelennek meg,
és az általuk felkínált
elõnyök megértése egy sokkal magasabb
szintû és biztonságosabb tûzfal
megépítését teszik
lehetõvé.A szakaszban szereplõ utasításokban olyan
szabályok szerepelnek, amelyek kihasználják a
quick és keep state
opciókat. Ezek az inkluzív
tûzfalszabályok létrehozásának
alapjai.A régi típusú szabályokról
a
és
címeken olvashatunk (angolul).Az IPF gyakran ismételt kérdései a címen
érhetõek el (angolul).A nyílt forrású IPFILTER
levelezési lista kereshetõ archívumait a
címen találjuk (angolul).Az IPF engedélyezéseIPFILTERengedélyezésAz IPF megtalálható a &os;
alaptelepítésében mint menet közben
külön betölthetõ modul. Ha az
rc.conf állományba
beírjuk a ipfilter_enable="YES" sort,
akkor ez a modul dinamikusan betöltõdik. A
betölthetõ modul alapból naplóz
és a default pass all
beállítást tartalmazza. Ha helyette a
block all szabályt akarjuk
használni, akkor emiatt még nem kell
feltétlenül újrafordítanunk a &os;
rendszermagját, elég ha egyszerûen csak a
szabályrendszerünk végére
beszúrjuk.A rendszermag beállításaia rendszermag
beállításaiIPFILTERa rendszermag
beállításaiIPFILTER_LOGa rendszermag
beállításaiIPFILTER_DEFAULT_BLOCKIPFILTERa rendszermag
beállításaiAz IPF használatához nem kötelezõ a
következõ beállításokkal
újrafordítani a &os; rendszermagját, itt
csupán
háttérinformációként
szerepel. Amikor az IPF a rendszermagba kerül, a
betölhetõ modulra nem lesz szükség.Az IPF a rendszermag forrásai között
található
/usr/src/sys/conf/NOTES
állományban megadott
beállításai a következõ
módon foglalhatóak össze:options IPFILTER
options IPFILTER_LOG
options IPFILTER_DEFAULT_BLOCKAz options IPFILTER engedélyezi az
IPFILTER tûzfal
támogatását.Az options IPFILTER_LOG
hatására az IPF az ipl
csomagnaplózó pszeudo eszközre jegyzi fel a
forgalmat — minden olyan szabály esetén,
ahol megjelenik a log kulcsszó.Az options IPFILTER_DEFAULT_BLOCK
megváltoztatja az alapértelmezett
viselkedést, tehát minden olyan csomag, amely nem
illeszkedik a tûzfal valamelyik pass
típusú (átengedõ)
szabályára, blokkolásra kerül.Ezek a beállítások csak azt
követõen érvényesülnek, ha
fordítottunk és telepítettünk
velük egy új rendszermagot.Az rc.conf állomány
beállításaiAz /etc/rc.conf
állományban a következõ
utasításokra lesz szükségünk az
IPF mûködésbe hozására a rendszer
indítása során:ipfilter_enable="YES" # az ipf tûzfal indítása
ipfilter_rules="/etc/ipf.rules" # betölti a szabályokat tartalmazó szöveges állományt
ipmon_enable="YES" # elindítja az IP monitor naplózását
ipmon_flags="-Ds" # D = indítás démonként
# s = naplózás a syslog használatával
# v = a tcp ablak, ack, seq csomagok naplózása
# n = az IP-címek és portok feloldásaHa olyan helyi hálózat áll meg a
tûzfal mögött, amely egy fenntartott
privát IP-címtartományt használ,
akkor még a következõ
utasításokra is szükségünk lesz a
címfordítás
bekapcsolásához:gateway_enable="YES" # a helyi hálózat átjárója
ipnat_enable="YES" # az ipnat funkció elindítása
ipnat_rules="/etc/ipnat.rules" # az ipnat mûködéséhez szükséges definíciókIPFipfAz &man.ipf.8; parancs használható a
szabályokat tartalmazó állomány
betöltésére. Általában egy
állományba írjuk össze a tûzfal
szabályait és ezzel a paranccsal
cseréljük le egyszerre a tûzfalban levõ
jelenlegi szabályokat:&prompt.root; ipf -Fa -f /etc/ipf.rulesAz az összes belsõ
szabály törlését jelenti.Az jelzi, hogy egy
állományból kell beolvasni a
betöltendõ szabályokat.Ezzel mintegy lehetõségünk van
változtatni a korábban
összeállított szabályainkon, futtatni
a fenti IPF parancsot és ezen keresztül úgy
frissíteni a szabályok friss
másolatával a már mûködõ
tûzfalat, hogy nem is kell újraindítanunk a
rendszert. Ez a módszer igen kényelmes az
új szabályok
kipróbálásához, mivel
bármikor tetszõlegesen
végrehajtható.Az &man.ipf.8; man oldala tartalmazza a parancsnak
megadható további
beállításokat.Az &man.ipf.8; parancs a szabályokat
tároló állományt egy
szabványos szöveges állománynak
tekinti, semmilyen szimbolikus helyettesítést
alkalmazó szkriptet nem fogad el.Lehetõségünk van azonban olyan IPF
szabályokat készíteni, amelyek
kiaknázzák a szkriptek szimbolikus
helyettesítésének lehetõségeit.
Errõl bõvebben lásd .Az IPFSTATipfstatIPFILTERstatisztikaAz &man.ipfstat.8; alapértelmezés szerint a
arra használatos, hogy le tudjuk kérdezni
és megjeleníteni a tûzfalhoz tartozó
számlálók értékeit, amelyek a
legutóbbi indítás vagy az ipf
-Z parancs által kiadott
lenullázásuk óta a bejövõ vagy
kimenõ forgalomból a megadott szabályoknak
megfelelõ csomagok alapján gyûjtenek össze
statisztikákat.A parancs mûködésének
részleteit az &man.ipfstat.8; man oldalon
olvashatjuk.Az &man.ipfstat.8; meghívása alapból
így néz ki:input packets: blocked 99286 passed 1255609 nomatch 14686 counted 0
output packets: blocked 4200 passed 1284345 nomatch 14687 counted 0
input packets logged: blocked 99286 passed 0
output packets logged: blocked 0 passed 0
packets logged: input 0 output 0
log failures: input 3898 output 0
fragment state(in): kept 0 lost 0
fragment state(out): kept 0 lost 0
packet state(in): kept 169364 lost 0
packet state(out): kept 431395 lost 0
ICMP replies: 0 TCP RSTs sent: 0
Result cache hits(in): 1215208 (out): 1098963
IN Pullups succeeded: 2 failed: 0
OUT Pullups succeeded: 0 failed: 0
Fastroute successes: 0 failures: 0
TCP cksum fails(in): 0 (out): 0
Packet log flags set: (0)Az mint bejövõ (inbound), vagy
az mint kimenõ (outbound) forgalomra
vonatkozó paraméterek megadásával a
rendszermagban az adott oldalon jelenleg telepített
és alkalmazott szabályokat kérhetjük
le és jeleníthetjük meg.Az ipfstat -in parancs így a
bejövõ forgalomra vonatkozó belsõ
szabályokat mutatja a szabályok
számával.Az ipfstat -on parancs a kimenõ
forgalmat érintõ belsõ szabályokat
mutatja a szabályok számával.Az eredmény körülbelül ilyen
lesz:@1 pass out on xl0 from any to any
@2 block out on dc0 from any to any
@3 pass out quick on dc0 proto tcp/udp from any to any keep stateAz ipfstat -ih a bejövõ
forgalomhoz tartozó belsõ szabályokat mutatja
és mindegyik elé odaírja, hogy eddig mennyi
csomag illeszkedett rájuk.Az ipfstat -oh ugyanígy a
kimentõ forgalom esetén mutatja a belsõ
szabályokat és mindegyik elõtt
feltünteti, hogy az adott pillanatig mennyi csomag
illeszkedett rájuk.A kimenete nagyjából ilyen lesz:2451423 pass out on xl0 from any to any
354727 block out on dc0 from any to any
430918 pass out quick on dc0 proto tcp/udp from any to any keep stateAz ipfstat parancs talán egyik
legfontosabb funkciója a
kapcsolóval csalható elõ, melynek
hatására a rendszerben aktív
állapotok táblázatát mutatja meg
ugyanúgy, ahogy a &man.top.1; a &os; rendszerben
futó programokat. Amikor a tûzfalunk
támadás alatt áll, ezzel a
funkcióval tudjuk a problémát
beazonosítani, leásni a mélyébe
és látni a támadótól
érkezõ csomagokat. A
kiegészítésképpen megadható
alkapcsolók megadásával
kiválaszthatjuk azt a cél vagy forrás
IP-címet, portot vagy protokollt, amelyet valós
idõben meg akarunk figyelni. Ennek részleteit az
&man.ipfstat.8; man oldalán láthatjuk.Az IPMONipmonIPFILTERnaplózásAz ipmon megfelelõ
mûködéséhez be kell kapcsolnunk a
rendszermag IPFILTER_LOG
beállítását. Ez a parancs
két különbözõ módban
használható. Ha parancsot a
opció nélkül gépeljük be, akkor
ezek közül alapból a natív módot
kapjuk meg.A démon mód abban az esetben hasznos, ha
folyamatosan naplózni akarjuk a rendszerben zajló
eseményeket, majd késõbb ezeket
átnézni. Így képes egymással
együttmûködni a &os; és az IPFILTER. A
&os; beépítve tartalmaz olyan
lehetõséget, aminek révén
magától cseréli a rendszernaplókat.
Ezért ha átküldjük a &man.syslogd.8;
démonnak a naplózandó üzeneteket,
akkor sokkal jobban járunk, mintha egyszerûen csak
mezei állományba naplóznánk. Az
rc.conf alapértelmezései
között az ipmon_flags
beállítás a
kapcsolókat rögzíti:ipmon_flags="-Ds" # D = indítás démonként
# s = naplózás a syslog használatával
# v = a tcp ablak, ack, seq csomagok naplózása
# n = az IP-címek és portok nevének feloldásaEnnek a viselkedésnek az elõnyei minden
bizonnyal egyértelmûek.
Segítségével képesek vagyunk az
esetek megtörténte után
átnézni, hogyan milyen csomagokat dobott el a
rendszer, azok milyen címekrõl érkeztek
és hova szánták. Ez egy komoly fegyver a
támadók lenyomozásában.Hiába engedélyezzük a
naplózást, az IPF
önszántából semmilyen
naplózási szabályt nem fog gyártani.
A tûzfal gazdájának kell eldöntenie,
hogy a szabályokat közül melyiket akarja
naplózni, és így neki kell megadnia a
log kulcsszót ezekben az esetekben.
Normális esetben csak a deny
szabályokat naplózzák.Egyáltalán nem ritka, hogy a
szabályrendszer végén egy
alapértelmezés szerint mindent eldobó
szabály áll, amely naplóz. Ezzel
lehetõségünk nyílik
rögzíteni azokat a csomagokat, amelyek egyetlen
szabályra sem illeszkedtek.Naplózás az IPMON
használatávalA syslogd egy saját
módszert alkalmaz a naplózott adatok
elkülönítésére. Egy
funkciók (facility) és
szintek (level) segítségével
kialakított speciális csoportosítást
alkalmaz. Az IPMON módja a
security (biztonság)
funkciót használja. Tehát
az IPMON által naplózott összes adat a
security csoportjába kerül. Ezen
túl a következõ szinteken
különíthetjük el igényeinknek
megfelelõen a naplózott adatokat:LOG_INFO - az átengedés vagy blokkolás helyett a "log" kulcsszóval ellátott csomagok
LOG_NOTICE - az át is engedett csomagok
LOG_WARNING - a blokkolt csomagok
LOG_ERR - a naplózott csomagok közül azok, amelyek túlságosan kicsik (hibás a fejlécük)Az IPFILTER csak akkor tud naplózni a
/var/log/ipfilter.log
állományba, ha elõtte létrehozzuk. Az
alábbi parancs erre tökéletesen
megfelelõ:&prompt.root; touch /var/log/ipfilter.logA &man.syslogd.8; mûködését az
/etc/syslog.conf állományban
szereplõ definíciók vezérlik. A
syslog.conf állomány
számottevõ mértékben képes
meghatározni azt, ahogy a
syslog az IPF és a
hozzá hasonló alkalmazásoktól kapott
rendszerszintû üzeneteket kezeli.Az /etc/syslog.conf
állományba az alábbi sor kell
felvennünk:security.* /var/log/ipfilter.logA security.* megadásával az
összes ilyen típusú üzenet egy
elõre rögzített helyre kerül.Az /etc/syslog.conf
állományban elvégzett
módosításokat úgy
léptethetjük érvénybe, ha
újraindítjuk a
számítógépet vagy az
/etc/rc.d/syslogd reload paranccsal
megkérjük a &man.syslogd.8; démont, hogy
olvassa újra az /etc/syslog.conf
állományt.Az imént létrehozott naplót ne
felejtsük el megadni az
/etc/newsyslog.conf
állományban sem, és akkor ezzel a
cseréjét is megoldjuk.A naplózott üzenetek formátumaAz ipmon által létrehozott
üzenetek whitespace karakterekkel elválasztott
adatmezõkbõl állnak. A következõ
mezõk az összes üzenet esetében
megjelennek:A csomag megérkezésének
dátumaA csomag megérkezésének
idõpontja. ÓÓ:PP:MM.E alakban jelennek
meg az órák, percek, másodpercek
és ezredmásodpercek (ez több
számjegy hosszú is lehet) szerintAzon interfész a neve, ahol a csomag
feldolgozásra került, például
dc0A szabályhoz tartozó csoport és
sorszám, például
@0:17Ezek az ipfstat -in paranccsal
nézhetõek meg.Cselekvés: a p mint átment (passed), b
mint blokkolt (blocked), S mint rövid csomag (short
packet), n mint egyik szabályra sem illeszkedett (not
match), L mint naplózás (log). A
módosítók
megjelenítésének sorrendje: S, p, b, n,
L. A nagybetûs P és B azt jelzi, hogy a
csomagot egy felsõbb szintû
beállítás miatt
naplózták, nem egy szabály
hatására.Címek: ez tulajdonképpen három
mezõt takar: a forrás címet és
portot (melyet egy vesszõ választ el), a ->
jelet és cél címet és portot.
Például: 209.53.17.22,80 ->
198.73.220.17,1722.A PR után a protokoll neve
vagy száma olvasható, például
PR tcp.A len csomaghoz tartozó
fejléc és törzsének teljes
hosszát jelöli, például
len 20 40.Amennyiben a csomag TCP, egy
kötõjellel kezdõdõen további
mezõk is megjelenhetnek a beállított
opcióknak megfelelõ betûk
képében. A betûket és
beállításaikat az &man.ipmon.8; man
oldalán olvashatjuk.Amennyiben a csomag ICMP, a sort két mezõ
zárja, melyek közül az elsõ tartalma
mindig ICMP, és ezt egy perjellel
elválasztva az ICMP üzenet típusa és
altípusa követi. Tehát például
az ICMP 3/3 a nem elérhetõ port
üzenetet hordozza.A szabályok felírása szimbolikus
helyettesítésselAz IPF használatában gyakorlott
felhasználók közül
néhányan képesek olyan
stílusú szabályrendszert
készíteni, ahol szimbolikus
helyettesítést használnak. Ennek az egyik
legnagyobb elõnye az, hogy ilyenkor elég csak a
szimbolikus névhez tartozó értéket
megváltoztatni és amikor a szkript lefut, akkor az
összes rá hivatkozó szabályba ez
kerül be. Szkript lévén a szimbolikus
helyettesítéssel ki tudjuk emelni a gyakran
használt értékeket és
behelyettesíteni ezeket több helyre. Ezt a most
következõ példában
láthatjuk.Az itt alkalmazott felírás kompatibilis az
&man.sh.1;, &man.csh.1; és &man.tcsh.1;
parancsértelmezõkkel.A szimbolikus helyettesítést egy
dollárjellel fejezzük ki:
$.A szimbolikus mezõkben nem szerepel a $
jelölés.A szimbolikus mezõ tartalmát kettõs
idézõjelbe (")
tesszük.Kezdjük így el a szabályok
írását:######### Az IPF szabályait tartalmazó szkript eleje ###########
oif="dc0" # a kimenõ interfész neve
odns="192.0.2.11" # az internet szolgáltató névszerverének IP-címe
myip="192.0.2.7" # a szolgáltatótól kapott statikus IP-címünk
ks="keep state"
fks="flags S keep state"
# Választhatunk, hogy az /etc/ipf.rules állományt ebbõl a szkriptbõl
# hozzuk létre vagy futtathatjuk "magát" a szkriptet.
#
# Egyszerre csak az egyik sort használjuk.
#
# 1) Ezzel gyárhatjuk le az /etc/ipf.rules állományt:
#cat > /etc/ipf.rules << EOF
#
# 2) Ezzel futtathajuk "magát" a szkriptet:
/sbin/ipf -Fa -f - << EOF
# Engedélyezzük a szolgáltató névszerverének elérését.
pass out quick on $oif proto tcp from any to $odns port = 53 $fks
pass out quick on $oif proto udp from any to $odns port = 53 $ks
# Engedélyezzük kifelé a titkosítatlan www funkciót.
pass out quick on $oif proto tcp from $myip to any port = 80 $fks
# Engedélyezzük kifelé a TLS SSL felett üzemelõ titkosított www funkciót.
pass out quick on $oif proto tcp from $myip to any port = 443 $fks
EOF
################## Itt az IPF szkript vége ########################Ennyi lenne. A példában szereplõ
szabályok most nem annyira lényegesek, a
hangsúly most igazából a szimbolikus
helyettesítésen és annak
használatán van. Ha a fenti példát
az /etc/ipf.rules.script
állományba mentjük, akkor ezeket a
szabályokat a következõ paranccsal újra
tudjuk tölteni:&prompt.root; sh /etc/ipf.rules.scriptEgyetlen aprócska gond van a beágyazott
szimbólumokat tartalmazó
állományokkal: az IPF maga nem képes
megérteni a helyettesítéseket, azért
közvetlenül nem olvassa a szkriptet.Ez a szkript két módon
hasznosítható:Vegyük ki megjegyzésbõl a
cat paranccsal kezdõdõ sort,
és tegyük megjegyzésbe az
/sbin/ipf kezdetût. A megszokottak
szerint tegyük az
ipfilter_enable="YES" sort az
/etc/rc.conf állományba,
majd minden egyes módosítása
után futtassuk le a szkriptet az
/etc/ipf.rules állomány
létrehozásához vagy
frissítéséhez.Tiltsuk le az IPFILTER aktiválását
a rendszerindításkor, tehát
írjuk bele az ipfilter_enable="NO"
sort (ami mellesleg az alapértelmezett
értéke) az /etc/rc.conf
állományba.Tegyünk egy, az alábbi szkripthez
hasonlót az /usr/local/etc/rc.d/
könyvtárba. A szkriptnek adjuk valamilyen
értelmes nevet, például
ipf.loadrules.sh. Az
.sh kiterjesztés
használata kötelezõ.#!/bin/sh
sh /etc/ipf.rules.scriptA szkript engedélyeit állítsuk be
úgy, hogy a root
tulajdonában legyen és képes legyen
olvasni, írni valamint végrehajtani.&prompt.root; chmod 700 /usr/local/etc/rc.d/ipf.loadrules.shMost miután a rendszer elindult, az IPF
szabályai be fognak töltõdni.Szabályrendszerek az IPF-benAz IPF esetében a szabályrendszer olyan
szabályokból áll, amelyek a
csomagokról tartalmuk alapján eldöntik, hogy
át kell engedni vagy vissza kell tartani. A gépek
közt két irányban áramló
csomagok egy munkamenet alapú társalgást
képeznek. A tûzfalhoz tartozó
szabályrendszer egyaránt feldolgozza a
internetrõl a hálózatunk felé
igyekvõ csomagokat, illetve a hálózatunk
ezekre adott válaszait. Az egyes
TCP/IP szolgáltatásokat (mint
például telnet, www, levelezés stb.) a
hozzájuk tartozó protokol és
szabványos (fogadó) portszám írja
le. Ezekre a forrásról általában
valamilyen nem szabványos (magasabb
értékû) portról érkeznek
csomagok. Ekkor a kommunikáció összes
paramétere (vagyis a portok és címek)
bármelyike alapján definiálhatunk
blokkolást vagy továbbengedést
leíró szabályokat.IPFILTERa szabályok feldolgozásának
sorrendjeAz IPF eredetileg úgy íródott, hogy a
szabályokat az utolsó illeszkedõ
szabály nyer stílusban dolgozza fel
és csak állapot nélküli
szabályokat ismert. Az idõk folyamán az IPF
szabályai kiegészültek a quick
és az állapottartásra vonatkozó
keep state opciókkal, amelynek
köszönhetõen óriási
mértékben korszerûsödött a
szabályok feldolgozása.A szakaszban szereplõ utasítások olyan
szabályokat alkalmaznak, amelyekben egyaránt
szerepel a quick és az
állapottartásért felelõs keep
state beállítás. Ez az
inkluzív tûzfalak
létrehozásának egyik
alapeszköze.A tûzfal szabályainak
összeállítása során
nagyon óvatosnak kell
lennünk! Bizonyos beállítások
hatására akár ki is
zárhatjuk magunkat a
szerverünkrõl. Az ebbõl fakadó
esetleges kellemetlenségek elkerülése
érdekében javasoljuk, hogy a tûzfal
alapjait elõször helyi konzolról
építsük fel, ne pedig
távolról, például
ssh
segítségével.A szabályok felépítéseIPFILTERa szabályok
felépítéseA szabályok felépítésének
bemutatását itt most leszûkítjük
a modern állapottartó szabályokra és
az elsõ illeszkedõ szabály nyer
típusú feldolgozásra. A szabályok
felírásának régebbi módjai az
&man.ipf.8; man oldalon találhatóak.A # karakterrel egy megjegyzés
kezdetét jelezzük, és általában
a sor végén vagy egy külön sorban bukkan
fel. Az üres sorokat a rendszer nem veszi
figyelembe.A szabályok kulcsszavakat tartalmaznak. Ezeknek a
kulcsszavaknak balról jobbra haladva adott sorrendben
kell szerepelniük. A kulcsszavakat kiemeltük. Egyes
kulcsszavakhoz további beállítások
is tartozhatnak, amelyek maguk is kulcsszavak lehetnek,
és még további opciókkal
rendelkezhetnek. Az alábbi nyelvtan mindegyik
elemét kiemeltük és az alábbiakban
egyenként kifejtjük a részleteiket.CSELEKVÉS BE-KI OPCIÓK
SZÛRÉS ÁLLAPOTTARTÓ PROTOKOLL
FORRÁS_CÍM,CÉL_CÍM OBJEKTUM
PORTSZÁM TCP_BEÁLLÍTÁS
ÁLLAPOTTARTÓCSELEKVÉS = block |
passBE-KI = in | outOPCIÓK = log | quick | on
interfészSZÛRÉS = proto
érték |
forrás/cél IP | port =
szám | flags
beállításPROTOKOLL = tcp/udp | udp | tcp |
icmpFORRÁS_CÍM,CÉL_CÍM
= all | from objektum to
objektumOBJEKTUM =
IP-cím | anyPORTSZÁM =
portszámTCP_BEÁLLÍTÁS
= SÁLLAPOTTARTÓ = keep
stateCSELEKVÉSA cselekvés határozza meg, hogy mit kell
tenni azokkal a csomagokkal, amelyek illeszkednek a
szabály többi részére. Minden
szabályhoz tartoznia kell egy
cselekvésnek. A következõ cselekvések
közül választhatunk:A block megadásával a
szabályban szereplõ szûrési
feltételre illeszkedõ csomagot eldobjuk.A pass megadásával a
szabályban szereplõ szûrési
feltételre illeszkedõ csomagot
átengedjük a tûzfalon.BE-KIAz összes szûrési szabály
esetében kötelezõ egyértelmûen
nyilatkozunk arról, hogy a bemenõ vagy a
kimenõ forgalomra vonatkozik. Ezért a
következõ kulcsszó vagy az
in vagy pedig az out, de
közülük egyszerre csak az egyiket szabad
használni, máskülönben a
szabály hibásnak minõsül.Az in jelenti, hogy a szabályt
az internet felõl az adott interfészen
beérkezõ csomagokra kell alkalmazni.Az out jelenti, hogy a szabályt
az internet felé az adott interfészen
kiküldött csomagokra kell alkalmazni.OPCIÓKEzek az opciók csak a lentebb bemutatott
sorrendben használhatók.A log jelzi, hogy illeszkedés
esetén a csomag fejlécét az
ipl eszközön keresztül
naplózni kell (lásd a
naplózásról szóló
szakaszt).A quickjelzi, hogy illeszkedés
esetén ez lesz a legutolsónak
ellenõrzött szabály és így egy
olyan rövidzárat tudunk
képezni a feldolgozásban, amellyel
elkerüljük a csomagra egyébként
vonatkozó többi szabály
illesztését. Ez az opció a
korszerûsített szabályfeldolgozás
kihasználásához elengedhetetlen.Az on használatával a
szûrés feltételei közé
bevonhatjuk a csomaghoz tartozó hálózati
interfészt. Itt az interfészek az
&man.ifconfig.8; által megjelenített
formában adhatóak meg. Az opció
megadásával csak az adott interfészen az
adott irányba (befelé/kifelé)
közlekedõ csomagokra fog illeszkedni a
szabály. Ez az opció a
korszerûsített szabályfeldolgozás
kihasználásához
nélkülözhetetlen.Amikor naplózunk egy csomagot, akkor a
hozzátartozó fejléc az
IPL csomagnaplózó pszeudo
eszközhöz kerül. A log
kulcsszó után közvetlenül a
következõ minõsítõk szerepelhetnek
(a következõ sorrendben):A body jelzi, hogy a csomag
tartalmának elsõ 128 byte-ját még
jegyezzük fel a fejléc mellé.A first minõsítõt
akkor érdemes használnunk, amikor a
log kulcsszót a keep
state opcióval együtt alkalmazzuk, mivel
ilyenkor csak a szabályt kialakító csomag
kerül naplózásra és nem minden
olyan, ami illeszkedik az állapottartási
feltételekre.SZÛRÉSEbben a szakaszban olyan kulcsszavak jelenhetnek meg,
amelyekkel a csomagok különféle
tulajdonságai alapján
ítélkezhetünk azok
illeszkedésérõl. Itt adott egy
kiinduló kulcsszó, amelyhez további
kulcsszavak is tartoznak, és amelyek közül
csak egyet választhatunk. Az alábbi
általános tulajdonságok alapján
tudjuk szûrni a csomagokat, ebben a sorrendben:PROTOKOLLA proto egy olyan kulcsszó,
amelyhez hozzá kell rendelnünk még
valamelyik opcióját is. Ez az opció
segít az adott protokolloknak megfelelõen
válogatni a csomagok között. A
korszerûsített szabályfeldolgozás
lehetõségeinek
kihasználásához
nélkülözhetetlen.Opcióként a tcp/udp | udp | tcp |
icmp, vagy bármelyik, az
/etc/protocols állományban
megtalálható kulcsszó
felhasználható. A tcp/udp
ebbõl a szempontból speciálisnak
tekinthetõ, mivel hatására egyszerre
illeszthetõek a szabályra a TCP
és UDP csomagok, és
így a protokolltól eltekintve azonos
szabályok felesleges
többszörözését
kerülhetjük el.FORRÁS_CÍM/CÉL_CÍMAz all kulcsszó gyakorlatilag a
from any to any (bárhonnan
bárhova) szinonímája és
nem tartozik hozzá paraméter.A from forrás
to cél
felépítése: a from
és to kulcsszavak az IP-címek
illesztésére használhatóak.
Ilyenkor a szabályokban a forrás
és a cél
paramétereknek is szerepelniük kell. Az
any egy olyan speciális
kulcsszó, amely tetszõleges IP-címre
illeszkedik. Néhány példa az
alkalmazására: from any to
any vagy from 0.0.0.0/0 to any,
from any to 0.0.0.0/0, from
0.0.0.0/0 to any vagy from any to
0.0.0.0.Az IP-címek megadhatóak pontozott numerikus
formában a hálózati maszk bitekben
mért hosszával együtt, vagy akár
egyetlen pontozott numerikus IP-címként.Nincs lehetõség olyan
IP-címtartományok illesztésére,
amelyek nem adhatóak meg kényelmesen ponttal
elválasztott számok és maszk
hosszával. A net-mgmt/ipcalc port az ilyen
számításokat könnyíti meg. A
hálózati maszkok hosszának
megállapításban segíthet az
említett segédprogram (angol nyelvû)
honlapja: .PORTAmikor portra vonatkozó illeszkedést
írunk elõ, megadhatjuk a forrásra és
célra, amit aztán vagy csak
TCP vagy pedig csak UDP
csomagokra alkalmazunk. A portok feltételeinek
megfogalmazásánál használhatjuk a
portok számát vagy az
/etc/services állományban
szereplõ nevüket. Amikor a port egy
from típusú objektum
leírásában jelenik meg, akkor
automatikusan a forrásportot jelenti, míg a
to objektum leírásában
pedig a célportot. A to
objektumoknál a port megadása elengedhetetlen a
korszerûsített szabályfeldolgozás
elõnyeinek kihasználásához.
Példa: from any to any port =
80.Az egyes portokat különbözõ
mûveletek segítségével, numerikusan
hasonlíthatjuk össze, ahol akár
porttartományt is megadhatunk.port "=" | "!=" | "<" | ">" | "<=" | ">=" |
"eq" | "ne" | "lt" | "gt" | "le" | "ge".A porttartományok megadásához
használjuk a port "<>" |
"><" felírási módot.A forrásra és célra
vonatkozó paraméterek után
szereplõ másik két paraméter
nélkülözhetetlen a
korszerûsített szabályfeldolgozás
mûködéséhez.TCP_BEÁLLÍTÁSA beállítások csak a
TCP forgalom
szûrésénél
érvényesülnek. A betûk jelölik
azokat a lehetséges beállításokat,
amelyek a TCP csomagok
fejlécében
megvizsgálhatóak.A korszerûsített
szabályfeldolgozás a flags S
paraméter segítségével ismeri fel
a TCP munkameneteket
kezdeményezõ kéréseket.ÁLLAPOTTARTÓA keep state jelzi, hogy a
szabály paramétereinek megfelelõ
bármely csomag aktiválja az
állapottartó szûrés
használatát.Ez a beállítás
feltétlenül szükséges a
korszerûsített szabályfeldolgozás
megfelelõ kihasználásához.Állapottartó csomagszûrésIPFILTERállapottartó
szûrésAz állapottartó szûrés a csomagok
kétirányú áramlását
egy létrejött kapcsolatba sorolja be. Amikor
aktiválódik, az állapottartó
szabály elõre dinamikusan létrehozza a
kétirányú kommunikációban
megforduló csomagokhoz a megfelelõ belsõ
szabályokat. Olyan vizsgálatokat végez,
amelyek segítségével ki tudja
deríteni, hogy a csomag küldõje és
címzettje között fennálló
kétirányú kapcsolat érvényes
szabályok szerint zajlik-e. Minden olyan csomagot, amely
nem illeszkedik megfelelõen a kapcsolatra vonatkozó
sémára, csalásnak tekintjük és
automatikusan eldobjuk.Az állapottartás révén
lehetõségünk van a TCP vagy
UDP kapcsolatokhoz tartozó
ICMP csomagokat is átengedni a
tûzfalon. Tehát ha kapunk egy 3-as
típusú, 4-es kódú
ICMP választ valamilyen
böngészésre használt
állapottartó szabályon keresztül
kiküldött kérésre, akkor az
automatikusan bejöhet. Amelyik csomagot az IPF
egyértelmûen képes besorolni az aktív
kapcsolatba, még ha az eltérõ protokollt is
használ, beengedi.Ami ilyenkor történik:Az internethez csatlakozó interfészen
keresztül kifelé haladó csomagokat
elõször egy dinamikus állapottábla
alapján illesztjük, és ha a csomag
illeszkedik az aktív kapcsolatban
következõként várt csomagra, akkor
átmegy a tûzfalon és a dinamikus
állapottáblában frissül a kapcsolat
állapota. Az aktív munkameneten kívül
csomagok pedig egyszerûen a kimenõ
szabályrendszer szerint kerülnek
ellenõrzésre.Hasonlóan az elõzõhöz, az internethez
csatlakozó interfészen keresztül
befelé haladó csomagokat elõször egy
dinamikus állapottábla alapján
illesztjük, és ha a csomag illeszkedik az
aktív kapcsolatban következõként
várt csomagra, akkor átmegy a tûzfalon
és a dinamikus állapottáblában
frissül a kapcsolat állapota. Az aktív
munkamenethez nem tartozó csomagok pedig egyszerûen
a bejövõ szabályrendszer szerint kerülnek
ellenõrzésre.Amikor egy kapcsolat befejezõdik, automatikusan
törlõdik a dinamikus
állapottáblából.Az állapottartó csomagszûrés
használatával az újonnan keletkezõ
kapcsolatok elutasítására vagy
engedélyezésére tudunk koncentrálni.
Ha engedélyeztük egy új kapcsolat
létrejöttét, akkor a
rákövetkezõ összes többi csomag
automatikusan átmegy a tûzfalon és minden
más hamis csomag eldobódik. Ha tiltjuk az
új kapcsolatot, akkor egyetlen
rákövetkezõ csomag sem juthat át. Az
állapottartó szûrés által
felkínált fejlett elemzési
lehetõségek képesek védelmet
nyújtani a behatolók részérõl
alkalmazott megannyi különbözõ
támadási módszer ellen.Példa inkluzív
szabályrendszerreA most következõ szabályrendszer arra mutat
példát, hogyan programozzunk le egy nagyon
biztonságos inkluzív tûzfalat. Az
inkluzív tûzfalak csak a szabályainak
megfelelõ szolgáltatásokat engedik
keresztül, és alapértelmezés szerint
minden mást blokkolnak. Egy hálózat
gépeit védõ tûzfalnak, amelyet gyakran
hálózati tûzfalnak (network
firewall) is neveznek, legalább két
hálózati interfésszel kell rendelkeznie.
Ezeket az interfészeket általában
úgy állítják be, hogy
tökéletesen megbíznak az egyik oldalban (a
helyi hálózatban), a másikban (az
internetben) pedig egyáltalán nem. A
tûzfalat egyébként úgy is
beállíthatjuk, hogy csak a tûzfalat
mûködtetõ gépet védje — ezt
egyrendszeres tûzfalnak (host based
firewall) nevezik. Az ilyen típusú
megoldásokat nem biztonságos
hálózaton keresztül kommunikáló
szervereknél alkalmaznak.Mindegyik &unix;-típusú rendszert,
köztük a &os;-t is úgy
alakították ki, hogy az operációs
rendszeren belüli kommunikáció az
lo0 interfészen és a
127.0.0.1 IP-címen
keresztül történik. A tûzfal
szabályai között feltétlenül
szerepelniük kell olyanoknak, amelyek lehetõvé
teszik ezen a speciális intefészen a csomagok
zavartalan mozgását.Az internetre csatlakozó interfészhez kell
rendelni a kifelé és befelé haladó
forgalom hitelesítését é a
hozzáférésének
vezérlését. Ez lehet a
felhasználói PPP által létrehozott
tun0 interfész vagy a DSL-,
illetve kábelmodemhez csatlakozó
hálózati kártya.Ahol egy vagy több hálózati kártya
is csatlakozik több különbözõ helyi
hálózathoz, úgy kell
beállítani a hozzájuk tartozó
interfészeket, hogy egymás felé és
az internet felé képesek legyenek küldeni
és fogadni.A szabályokat elõször három nagy
csoportba kell szerveznünk: elõször jönnek a
megbízható interfészek, ezeket követik
az internet felé mutató interfészek,
végül internet felõl jövõ, nem
megbízható interfészeke.Az egyes csoportokban szereplõ szabályokat
úgy kell megadni, hogy közülük elõre
kerüljenek a leggyakrabban alkalmazottak, és a
csoport utolsó szabálya blokkoljon és
naplózzon minden csomagot az adott interfészen
és irányban.A kimenõ forgalomat vezérlõ
szabályrendszer csak pass
(tehát átengedõ) szabályokat
tartalmazhat, amelyek bentrõl az interneten
elérhetõ szolgáltatásokat
azonosítják egyértelmûen. Az
összes ilyen szabályban meg kell jelenni a
quick, on,
proto, port és
keep state
beállításoknak. A proto
tcp szabályok esetében meg kell adni a
flag opciót is, amivel fel tudjuk
ismertetni a kapcsolatok keletkezését és
ezen keresztül aktiválni az
állapottartást.A bejövõ forgalmat vezérlõ
szabályrendszerben elõször az eldobni
kívánt csomagokat kell megadni, aminek két
eltérõ oka van. Elõször is
elõfordulhat, hogy a veszélyes csomagok
részleges illeszkedés miatt szabályosnak
tûnnek. Az ilyen csomagokat értelemszerûen nem
lenne szabad beengedni a szabályok részleges
megfelelése alapján. A másodszor az eleve
ismerten problémás és értelmetlen
csomagokat csendben el kellene vetni, mielõtt a szakaszhoz
tartozó utolsó szabály fogná meg
és naplózná. Ez az utolsó
szabály egyébként szükség
esetén felhasználható a
támadók elleni bizonyítékok
begyûjtésére.A másik, amire még oda kell figyelnünk,
hogy a blokkolt csomagok esetében semmilyen válasz
nem keletkezzen, egyszerûen csak tûnjenek el.
Így a támadó nem fogja tudni, hogy a
csomagjai vajon elérték-e a rendszerünket.
Minél kevesebb információt tudnak
összegyûjteni a rendszerünkrõl a
támadók, annál több idõt kell
szánniuk csínytevéseik
kieszelésére. A log first
opciót tartalmazó szabályok csak az
illeszkedésnél fogják naplózni a
hozzájuk tartozó eseményt. Erre
láthatunk példát az nmap OS
fingerprint szabálynál. Az security/nmap segédprogramot
a támadók gyakran alkalmazzák a
megtámadni kívánt szerver
operációs rendszerének
felderítésére.Minden log first opcióval megadott
szabály illeszkedésénél a
ipfstat -hio parancs
meghatározódik az eddigi illeszkedések
aktuális száma. Nagyobb értékek
esetében következtethetünk arra, hogy a
rendszerünket megtámadták (vagyis csomagokkal
árasztják éppen el).Az ismeretlen portszámok
felderítésére az
/etc/services állomány,
esetleg a
(angol nyelvû) honlap használható.Érdemes továbbá megnézni a
trójai programok által használt portokat a
címen (angolul).A következõ szabályrendszer egy olyan
biztonságos inkluzív
típusú tûzfal, amelyet éles rendszeren
is használnak. Ezt a rendszerünkön nem
használt szolgáltatásokra vonatkozó
pass szabályok
törlésével könnyedén a
saját igényeink szerint
alakíthatjuk.Ha nem akarunk látni bizonyos üzeneteket, akkor
vegyünk fel hozzájuk egy block
típusú szabályt a befelé
irányuló forgalomhoz tartozó
szabályok közé.A szabályokban írjuk át a
dc0 interfész nevét annak
a hálózati kártyának az
interfészére, amelyen keresztül csatlakozunk
az internethez. A felhasználói PPP
esetében ez a tun0 lesz.Tehát a következõket kell beírni az
/etc/ipf.rules
állományba:#################################################################
# A helyi hálózatunkon zajló forgalmat ne korlátozzuk.
# Csak akkor kell, ha helyi hálózathoz is csatlakozunk.
#################################################################
#pass out quick on xl0 all
#pass in quick on xl0 all
#################################################################
# A belsõ interfészen szintén ne korlátozzunk semmit.
#################################################################
pass in quick on lo0 all
pass out quick on lo0 all
#################################################################
# Az internet felé forgalmazó interfész (kimenõ kapcsolatok)
# A saját hálózatunkról belülrõl vagy errõl az átjáróról
# kezdeményezett kapcsolatokat vizsgáljuk az internet felé.
#################################################################
# Engedélyezzük az internet szolgáltatók névszerverének elérését,
# az "xxx" helyett a névszervet IP-címét kell megadni.
# Másoljuk le ezeket a sorokat, ha a szolgáltatónknak több
# névszerverét is beakarjuk állítani. A címeiket az /etc/resolv.conf
# állományban találjuk.
pass out quick on dc0 proto tcp from any to xxx port = 53 flags S keep state
pass out quick on dc0 proto udp from any to xxx port = 53 keep state
# DSL vagy kábeles hálózatoknál engedélyezzük a
# szolgáltatónk DHCP szerverének elérését.
# Ez a szabály nem kell, ha "felhasználói PPP"-vel
# kapcsolódunk az internethez, ilyenkor tehát az egész
# csoport törölhetõ.
# Használjuk az alábbi szabályt és keressük meg a naplóban az
# IP-címet. Ha megtaláltuk, akkor tegyük bele a megjegyzésben
# szereplõ szabályba és töröljük az elsõ szabályt.
pass out log quick on dc0 proto udp from any to any port = 67 keep state
#pass out quick on dc0 proto udp from any to z.z.z.z port = 67 keep state
# Kifelé engedélyezzük a szabványos nem biztonságos WWW funkciókat.
pass out quick on dc0 proto tcp from any to any port = 80 flags S keep state
# Kifelé engedélyezzük a biztonságos WWW funkciókat TLS SSL
# protokollal.
pass out quick on dc0 proto tcp from any to any port = 443 flags S keep state
# Kifelé engedélyezzük az e-mailek küldését és fogadását.
pass out quick on dc0 proto tcp from any to any port = 110 flags S keep state
pass out quick on dc0 proto tcp from any to any port = 25 flags S keep state
# Kifelé engedélyezzük az idõ szolgáltatást.
pass out quick on dc0 proto tcp from any to any port = 37 flags S keep state
# Kifelé engedélyezzük az nntp híreket.
pass out quick on dc0 proto tcp from any to any port = 119 flags S keep state
# Kifelé engedélyezzük az átjáróról és a helyi hálózatról a nem
# biztonságos FTP használatát (passzív és akív módokban is). Ez a
# funkció a mûködéséhez a nat szabályokat tartalmazó állományban
# hivatkozott FTP proxyt használja. Amennyiben a pkg_add paranccsal
# csomagokat akarunk telepíteni az átjáróra, erre a szabályra
# mindenképpen szükségünk lesz.
pass out quick on dc0 proto tcp from any to any port = 21 flags S keep state
# Kifelé engedélyezzük az ssh/sftp/scp # (biztonságos telnet/rlogin/FTP)
# szolgáltatások # elérését az SSH (secure shell) használatával.
pass out quick on dc0 proto tcp from any to any port = 22 flags S keep state
# Kifelé engedélyezzük a nem biztonságos telnet elérését.
pass out quick on dc0 proto tcp from any to any port = 23 flags S keep state
# Kifelé engedélyezzük FreeBSD CVSUp funkcióját.
pass out quick on dc0 proto tcp from any to any port = 5999 flags S keep state
# Kifelé engedélyezzük a pinget.
pass out quick on dc0 proto icmp from any to any icmp-type 8 keep state
# Kifelé engedélyezzük a helyi hálózatról érkezõ whois kéréseket.
pass out quick on dc0 proto tcp from any to any port = 43 flags S keep state
# Minden mást eldobunk és naplózzuk az elsõ elõfordulásukat.
# Ez a szabály blokkol alapértelmezés szerint mindent.
block out log first quick on dc0 all
#################################################################
# Az internet felõli interfész (bejövõ kapcsolatok)
# A saját hálózatunk felé vagy erre az átjáróra
# nyitott kapcsolatokat vizsgáljuk az internet felõl.
#################################################################
# Eldobjuk az összes olyan bejövõ forgalmat, amit hivatalosan nem
# lehetne továbbítani vagy fenntartott címterülethez tartozik.
block in quick on dc0 from 192.168.0.0/16 to any #RFC 1918: privát IP
block in quick on dc0 from 172.16.0.0/12 to any #RFC 1918: privát IP
block in quick on dc0 from 10.0.0.0/8 to any #RFC 1918: privát IP
block in quick on dc0 from 127.0.0.0/8 to any #helyi
block in quick on dc0 from 0.0.0.0/8 to any #helyi
block in quick on dc0 from 169.254.0.0/16 to any #DHCP
block in quick on dc0 from 192.0.2.0/24 to any #dokumentációs célokra fenntartva
block in quick on dc0 from 204.152.64.0/23 to any #Sun klaszterek összekötésére használt
block in quick on dc0 from 224.0.0.0/3 to any #D és E osztályú multicast
##### Itt eldobunk egy rakás csúf dolgot ############
# Ezeket nem akarjuk a naplóban látni:
# Eldobjuk a töredékcsomagokat.
block in quick on dc0 all with frags
# Eldobjuk a túlságosan rövid TCP csomagokat.
block in quick on dc0 proto tcp all with short
# Eldobjuk a forrás által közvetített (source routed) csomagokat.
block in quick on dc0 all with opt lsrr
block in quick on dc0 all with opt ssrr
# Elutasítjuk az "OS fingerprint" kéréseket.
# Naplózzuk az elsõ elõfordulást, így nálunk lesz a kíváncsiskodó
# egyén IP-címe.
block in log first quick on dc0 proto tcp from any to any flags FUP
# Eldobunk mindent, aminek speciális beállításai vannak.
block in quick on dc0 all with ipopts
# Elutasítjuk a publikus pinget.
block in quick on dc0 proto icmp all icmp-type 8
# Elutasítjuk az ident kéréseket.
block in quick on dc0 proto tcp from any to any port = 113
# Blokkoljuk az összes Netbios szolgáltatást: 137=név, 138=datagram,
# 139=session. A Netbios az MS Windows megosztását implementálja.
# Blokkoljuk az MS Windows hosts2 névszerver kéréseit is a 81-es
# porton.
block in log first quick on dc0 proto tcp/udp from any to any port = 137
block in log first quick on dc0 proto tcp/udp from any to any port = 138
block in log first quick on dc0 proto tcp/udp from any to any port = 139
block in log first quick on dc0 proto tcp/udp from any to any port = 81
# Engedélyezzük a szolgáltatónk DHCP szerverétõl érkezõ forgalmat.
# Ebben a szabályban meg kell adnunk a szolgáltató DHCP szerverének
# IP-címét, mivel itt csak a hiteles forrásból fogadunk el csomagokat.
# Erre csak DSL- és kábelmodemes kapcsolat esetében van szükség, a
# "felhasználói PPP" alkalmazása során szükségtelen. Ez az IP-cím
# megegyezik a kimenõ kapcsolatoknál megadott címmel.
pass in quick on dc0 proto udp from z.z.z.z to any port = 68 keep state
# Befelé engedélyezzük a szabványos WWW funkciót, mivel webszerverünk
# van.
pass in quick on dc0 proto tcp from any to any port = 80 flags S keep state
# Befelé engedélyezzük az internetrõl érkezõ nem biztonságos telnet
# kapcsolatokat. Azért nem biztonságos, mert az azonosítókat és
# jelszavakat titkosítatlan formában közli az interneten keresztül.
# Töröljük ezt a szabályt, ha nem használunk telnet szervert.
#pass in quick on dc0 proto tcp from any to any port = 23 flags S keep state
# Befelé engedélyezzük az internetrõl # érkezõ ssh/sftp/scp (biztonságos
# telnet/rlogin/FTP) # kapcsolatokat az SSH (secure shell) használatával.
pass in quick on dc0 proto tcp from any to any port = 22 flags S keep state
# Minden mást dobjuk el és naplózzuk az elsõ elõfordulásukat.
# Az elsõ alkalom naplózásával elejét tudjuk venni a "Denial of
# Service" típusú támadásoknak, amivel egyébként lehetséges lenne a
# napló elárasztása.
# Ez a szabály blokkol alapértelmezés szerint mindent.
block in log first quick on dc0 all
################### Itt van a szabályok vége ##############################NATNATIP maszkolásNAThálózati
címfordításNATA NAT jelentése Network
Address Translation, vagyis hálózati
címfordítás. A &linux; esetében ezt
IP masqueradingnak, vagyis IP maszkolásnak
hívják. A hálózati
címfordítás és az IP
maszkolás lényegben ugyanazt takarja. Az IPF
címfordításért felelõs
funkciójának köszönhetõen
képesek vagyunk a tûzfal mögött
elhelyezkedõ helyi hálózat
számára megosztani az
internet-szolgáltatól kapott publikus
IP-címet.Sokakban felmerülhet a kérdés, hogy erre
vajon mi szükségünk lehet. Az
internet-szolgáltatók a
magánszemélyeknek általában
dinamikus IP-címeket osztanak ki. A dinamikus itt arra
utal, hogy a címünk minden alkalommal
változik, amikor betárcsázunk a
szolgáltatóhoz vagy amikor ki- és
bekapcsoljuk a modemünket. Ez a dinamikus IP-cím
fog azonosítani minket az interneten.Most tegyük fel, hogy öt gépünk van
otthon, viszont csak egyetlen elõfizetéssel
rendelkezünk. Ebben az esetben öt telefonvonalat
kellene használnunk és mindegyik géphez
elõfizetni az internetre.A hálózati címfordítás
alkalmazásával azonban mindössze egyetlen
elõfizetés kell. A gépek közül
négyet hozzákötünk egy switch-hez
és a switch-et pedig a fennmaradó géphez,
amelyen &os; fut. Ez utóbbi lesz az így
kialakított helyi hálózatunk
átjárója. A tûzfalban
mûködõ címfordítás
segítségével a helyi
hálózaton található gépek
IP-címeit észrevétlenül át
tudjuk fordítani a hálózatunk publikus
IP-címére, ahogy a csomagok elhagyják az
átjárót. A beérkezõ csomagok
esetében mindez visszafelé történik
meg.Az IP-címek közül adott egy
tartomány, amit a címfordítást
használó helyi hálózatok
részére tartanak fenn. Az RFC 1918 szerint
az alábbi IP-címtartományok
használhatók a helyi hálózatban,
mivel ezeken keresztül közvetlenül sosem lehet
kijutni az internetre:Kezdõ IP: 10.0.0.0-Záró IP: 10.255.255.255Kezdõ IP: 172.16.0.0-Záró IP: 172.31.255.255Kezdõ IP: 192.168.0.0-Záró IP: 192.168.255.255IPNATNATIPFILTERipnatA címfordításra vonatkozó
szabályokat az ipnat paranccsal tudjuk
betölteni. Az ilyen típusú
szabályokat általában az
/etc/ipnat.rules állományban
találjuk. A részleteket lásd az
&man.ipnat.1; man oldalán.Amikor a címfordítás üzembe
helyezése után meg akarjuk változtatni a
címfordítás szabályait,
elõször a címfordítás
szabályait tartalmazó állományt
módosítsuk, majd a belsõ
címfordítási szabályok és a
címfordítási táblázatban
szereplõ aktív bejegyzések
törléséhez futassuk le az
ipnat parancsot a
beállítással.A címfordítási szabályok
újratöltését egy ehhez hasonló
paranccsal tudjuk elvégezni:&prompt.root; ipnat -CF -f /etc/ipnat.szabályokA címfordításhoz tartozó
statisztikákat ezzel a paranccsal tudjuk
lekérdezni:&prompt.root; ipnat -sA címfordítási
táblázatban pillanatnyilag szereplõ
összerendeléseket a következõ paranccsal
tudjuk listázni:&prompt.root; ipnat -lA szabályok feldolgozásával és
az aktív szabályokkal/bejegyzésekkel
kapcsolatos információk
részletezését így
engedélyezhetjük:&prompt.root; ipnat -vA címfordítási
szabályokA címfordítási szabályok nagyon
rugalmasak és rengeteg olyan funkciót meg tudunk
velük valósítani, ami az üzleti
és otthoni felhasználók
számára egyaránt hasznos.Itt most a szabályok
felépítését csak
egyszerûsítve mutatjuk be, leginkább a nem
üzleti környezetek tekintetében. A
szabályok komplett formai leírását
az &man.ipnat.5; man oldalán találjuk.Egy címfordítási szabály
tehát valahogy így néz ki:map INTERFÉSZHELYI_IP_TARTOMÁNY -> PUBLIKUS_CÍMA szabályt a map kulcsszó
kezdi.A INTERFÉSZ helyére
az internet felé mutató külsõ
interfész nevét írjuk be.A HELYI_IP_TARTOMÁNY lesz
az, amelyben a kliensek címeznek. Ez
például a 192.168.1.0/24.A PUBLIKUS_CÍM lehet egy
külsõ IP-cím vagy a 0/32
speciális kulcsszó, amellyel a
FELÜLET-hez rendelt
IP-címre hivatkozunk.Hogyan mûködik a hálózati
címfordításA publikus cél felé haladó csomag
megérkezik a helyi hálózatról.
Miután a kimenõ kapcsolatokra vonatkozó
szabályok átengedik, a
címfordítás kapja meg a szerepet és
fentrõl lefelé haladva nekilát alkalmazni a
saját szabályait, ahol az elsõ egyezõ
szerint cselekszik. A címfordítás a
szabályokat a csomaghoz tartozó interfészre
és a forrás IP-címére illeszti.
Amikor a csomag interfészének neve illeszkedik egy
címfordítási szabályra, akkor
ezután a csomag forrás (vagyis a helyi
hálózaton belüli)
IP-címérõl igyekszik eldönteni, hogy a
szabály nyilának bal oldalán szereplõ
tartományba esik-e. Ha erre is illeszkedik, akkor a
forrás IP-címét átírjuk a
0/32 kulcsszó alapján
felderített publikus IP-címre. A
címfordító rutin ezt feljegyzi a
saját belsõ táblázatába,
így amikor a csomag visszatér az internetrõl,
akkor képes lesz visszafordítani az eredeti
belsõ IP-címére és
feldolgozásra átadni a tûzfal
szabályainak.A címfordítás
engedélyezéseA címfordítás életre
keltéséhez a következõket kell
beállítanunk az /etc/rc.conf
állományban.Elõször engedélyezzük a
gépünknek, hogy közvetítsen forgalmat az
interfészek között:gateway_enable="YES"Minden alkalommal indítsuk el a
címfordításért felelõs IPNAT
programot:ipnat_enable="YES"Adjuk meg az IPNAT számára a
betöltendõ szabályokat:ipnat_rules="/etc/ipnat.rules"Hálózati címfordítás
nagyon nagy helyi hálózatok
esetébenAz olyan helyi hálózatokban, ahol rengeteg PC
található vagy több alhálózatot
is tartalmaz, az összes privát IP-cím
egyetlen publikus IP-címbe
tömörítése igen komoly
problémává tud dagadni és az azonos
portok gyakori használata a helyi hálózatra
kötött számítógépek
között ütközéseket okoz. Két
módon tudunk megoldást nyújtani erre a
problémára.A használható portok
kiosztásaEgy normális címfordítási
szabály valahogy így nézne ki:map dc0 192.168.1.0/24 -> 0/32A fenti szabályban a csomag
forrásportját az IPNAT
változatlanul a feldolgozás után hagyja.
Ha ehhez még hozzátesszük a
portmap kulcsszót, akkor ezzel
utasítani tudjuk az IPNAT-ot, hogy
csak az adott tartományban képezze le a
forrásportokat. Például a
következõ szabály hatására az
IPNAT a forrásportokat egy adott
tartományon belül fogja
módosítani:map dc0 192.168.1.0/24 -> 0/32 portmap tcp/udp 20000:60000Ha viszont még inkább meg akarjuk
könnyíteni a dolgunkat, akkor itt egyszerûen
csak adjuk meg az auto kulcsszót,
amellyel az IPNAT
önmagától megállapítja, hogy
milyen portokat tud használni:map dc0 192.168.1.0/24 -> 0/32 portmap tcp/udp autoTöbb publikus cím használataMinden nagyobb helyi hálózat esetében
elérkezünk ahhoz a ponthoz, ahol már
egyetlen publikus cím nem elég. Ha több
publikus IP-címmel is rendelkezünk, akkor
ezekbõl a címekbõl egy közös
készletet hozhatunk létre, amibõl
majd az IPNAT válogathat miközben a csomagok
címeit átírja kifelé
menetben.Például ahelyett, hogy a csomagokat egyetlen
publikus IP-címre képeznénk le, ahogy itt
tesszük:map dc0 192.168.1.0/24 -> 204.134.75.1A hálózati maszk
segítségével meg tudjuk adni
IP-címek egy tartományát is:map dc0 192.168.1.0/24 -> 204.134.75.0/255.255.255.0CIDR-jelöléssel:map dc0 192.168.1.0/24 -> 204.134.75.0/24A portok átirányításaGyakran elõfordul, hogy van webszerverünk,
levelezõ szerverünk, adatbázis szerverünk
és névszerverünk, melyek a helyi
hálózat különbözõ
gépein futnak. Ebben az esetben a szerverekhez
tartozó forgalmat is fordítanunk kell, illetve
valamilyen módon a bejövõ forgalmat is
át kell irányítanunk a helyi
hálózat megfelelõ gépeihez. Az
IPNAT ezt a gondot a hálózati
címfordítás
átirányítást támogató
funkcióival szünteti meg. Tegyük fel, hogy a
10.0.10.25 belsõ
címen van egy webszerverünk, amelyhez a 20.20.20.5 publikus IP tartozik.
Ilyenkor a következõ szabályt adjuk meg:rdr dc0 20.20.20.5/32 port 80 -> 10.0.10.25 port 80vagy:rdr dc0 0.0.0.0/0 port 80 -> 10.0.10.25 port 80Így tudjuk beállítani a 10.0.10.33 címmel
rendelkezõ névszervert a kintrõl
érkezõ névfeloldási
kérések fogadására:rdr dc0 20.20.20.5/32 port 53 -> 10.0.10.33 port 53 udpAz FTP és a címfordításAz FTP egy olyan õskövület, amely még
az internet egy régi korszakából maradt fenn,
amikor az egyetemek között még bérelt
vonal létezett és az FTP szolgált a
kutatók közt az állományok
megosztására. Ez még abban az idõben
történt, amikor a biztonság
egyáltalán nem volt lényeges szempont. Az
évek elõrehaladtával az FTP protokoll
beleivódott a feltörekvõ internet
gerincébe és a titkosítatlanul
küldött azonosítóival és
jelszavaival továbbra is ugyanolyan védtelen
maradt. Az FTP két változatban, aktív
és passzív módban képes
mûködni. Az eltérés kettejük
között az adatcsatorna
megállapításában van. A
passzív mód sokkal biztonságosabb, mivel
ilyenkor az adatcsatornát az FTP kapcsolatot
kezdeményezõ állítja be. Az FTP
különbözõ módjainak
magyarázatát és a köztük
levõ különbséget a
címen ismerhetjük meg részleteiben
(angolul).Az IPNAT szabályaiAz IPNAT egy speciális beépített FTP
proxyval rendelkezik, amelyre a hálózati
címfordítás leképezései
között hivatkozhatunk. Képes figyelni az
összes aktív vagy passzív FTP kapcsolathoz
tartozó kimenõ kérést és
ezekhez dinamikusan létrehozni olyan ideiglenes
szûrési szabályokat, amelyek valóban
csak az adatcsatornához felhasznált portokat
tartalmazzák. Ezzel ki tudjuk
küszöbölni az FTP azon káros
hatását a tûzfalra nézve, hogy
egyszerre túlságosan sok magasabb
tartománybeli port legyen nyitva.Ez a szabály a belsõ hálózat
összes FTP forgalmát lekezeli:map dc0 10.0.10.0/29 -> 0/32 proxy port 21 ftp/tcpEz a szabály pedig az
átjáróról érkezõ FTP
forgalommal bírkózik meg:map dc0 0.0.0.0/0 -> 0/32 proxy port 21 ftp/tcpEz a szabály kezeli a belsõ
hálózatról érkezõ összes
nem FTP típusú forgalmat:map dc0 10.0.10.0/29 -> 0/32Az FTP leképzésére vonatkozó
szabály a szokásos leképzési
szabály elé kerül. Az összes csomag
fentrõl haladva az elsõ illeszkedõ
szabály alapján kerül feldolgozásra.
Elõször az interfész nevét
vizsgáljuk, majd a belsõ hálózatbeli
forrás IP-t, végül azt, hogy a csomag egy
FTP kapcsolat része. Ha minden
paraméterében megfelel, akkor az FTP proxy
készít egy ideiglenes szûrési
szabályt hozzá, amellyel az FTP kapcsolathoz
tartozó csomagok mind a két irányba
képesek lesznek vándorolni, természetesen
a címfordítással együtt. Az
összes többi bentrõl érkezõ csomag
átlép ezen a szabályon és
megáll a harmadiknál, ahol az
interfésznek és forrás IP-nek
megfelelõen átfordítjuk a
címét.Az IPNAT szûrési szabályai
FTP-reAz FTP esetében csak egyetlen szûrési
szabályra van szükségünk a
hálózati címfordításba
épített FTP proxy
használatához.FTP proxy nélkül az alábbi három
szabály kellene:# Kifelé engedélyezzük a belsõ gépek FTP elérést az internet irányába,
# aktív és passzív módokban.
pass out quick on rl0 proto tcp from any to any port = 21 flags S keep state
# Kifelé engedélyezzük a passzív módhoz tartozó magasabb tartománybeli
# adatcsatornákat.
pass out quick on rl0 proto tcp from any to any port > 1024 flags S keep state
# Aktív módban beengedjük az FTP szervertõl érkezõ adatcsatornát.
pass in quick on rl0 proto tcp from any to any port = 20 flags S keep stateIPFWtûzfalakIPFWAz IPFIREWALL (IPFW) a &os; által
támogatott tûzfalazó alkalmazás, melyet a
&os; Projektben résztvevõ önkéntesek
fejlesztettek ki és tartanak karban. Régi
típusú, állapottartás
nélküli szabályokat használ, és
az itt használatos szabályírási
technikát egyszerû állapottartó
megoldásnak nevezzük.Az IPFW szabvány &os;-ben levõ, mintaként
szolgáló szabályrendszere (ez az
/etc/rc.firewall és
/etc/rc.firewall6 állományokban
található meg) annyira egyszerû, hogy komolyabb
módosítások nélkül nem
ajánlatos használni. Ez a példa nem
tartalmaz állapottartó szûrést, ami
viszont a legtöbb esetben kívánatos lenne,
ezért ezt a szakaszt nem erre alapozzuk.Az IPFW állapottartás nélküli
szabályainak felépítésében
olyan technikailag kifinomult leválogatási
képességek bújnak meg, amelyek
jócskán meghaladják az átlagos
tûzfalépítõk tudását. Az
IPFW elsõsorban olyan szakemberek vagy szakmailag
elõrehaladott felhasználók
számára készült, akiknek
speciális csomagszûrési igényeik vannak.
A különbözõ protokollok
használatának és a hozzájuk
tartozó fejlécinformációk mindenre
kiterjedõ ismerete szinte nélkülözhetetlen
az IPFW valódi erejének
kihasználásához. Ez a szint azonban
túlmutat a kézikönyv ezen szakaszának
keretein.Az IPFW hét komponensbõl épül fel,
melyek közül az elsõdleges a rendszermag
tûzfalazásért felelõs
szabályfeldolgozó és a
hozzátartozó csomagnyilvántartás, majd
ezt követi a naplózás, a hálózati
címfordítást aktiváló
divert szabály, valamint a komolyabb
célok megvalósítására alkalmas
lehetõségek: a forgalom
korlátozásáért felelõs dummynet,
a továbbküldésre alkalmas fwd
rule szabály, a hálózati hidak
támogatása, illetve az ipstealth. Az IPFW
egyaránt használható IPv4 és IPv6
esetén.Az IPFW engedélyezéseIPFWengedélyezéseAz IPFW az alap &os; telepítésben
külön, futás idõben betölthetõ
modulként érhetõ el. Ha az
rc.conf állományban megadjuk
a firewall_enable="YES"
beállítást, akkor a rendszer
indulásakor ezt a modult dinamikusan betölti. Az
IPFW-t csak akkor kell a &os; rendszermagjába
beépítenünk, ha szükségünk
van a címfordítási
funkciójára is.Ha tehát az rc.conf
állományban megadtuk a
firewall_enable="YES" sort és
újraindítottuk a
számítógépünket, akkor a
következõ fehérrel kiemelt üzenet fog
megjelenni a rendszerindítás során:ipfw2 initialized, divert disabled, rule-based forwarding disabled, default to deny, logging disabledA logging disabled üzenetbõl
kiderül, hogy a modul nem végez
naplózást. A naplózást és a
hozzátartozó részletesség
szintjét úgy tudjuk beállítani, ha
az /etc/sysctl.conf
állományba felvesszük a következõ
sorokat, amivel a következõ indításkor
már mûködni fog:net.inet.ip.fw.verbose=1
net.inet.ip.fw.verbose_limit=5A rendszermag beállításaia rendszermag
beállításaiIPFIREWALLa rendszermag
beállításaiIPFIREWALL_VERBOSEa rendszermag
beállításaiIPFIREWALL_VERBOSE_LIMITIPFWa rendszermag
beállításaiHa nem akarjuk kihasználni az IPFW által
felkínált címfordítási
lehetõségeket, akkor egyáltalán nem
szükséges a &os; rendszermagjába
belefordítani a támogatását.
Ezért az alábbiakat csak
kiegészítõ
információként tüntettük
fel.options IPFIREWALLEz a beállítás engedélyezi az
IPFW használatát a rendszermag
részeként.options IPFIREWALL_VERBOSEEzzel és a log kulcsszóval
tudjuk az IPFW szabályain keresztülhaladó
csomagokat naplózni.options IPFIREWALL_VERBOSE_LIMIT=5Ez az érték korlátozza a
&man.syslogd.8; segítségével
naplózott azonos bejegyzések maximális
számát. Ezt a beállítást
olyan veszélyes környezetekben érdemes
használnunk, ahol naplózni akarunk.
Segítségével meg tudjuk akadályozni,
hogy a rendszernapló elárasztásával
megakasszák a rendszerünket.a rendszermag
beállításaiIPFIREWALL_DEFAULT_TO_ACCEPToptions IPFIREWALL_DEFAULT_TO_ACCEPTEzen beállítás hatására a
tûzfal alapértelmezés szerint mindent
átenged, ami általában akkor jöhet
jól, amikor elõször beállítjuk a
tûzfalat.a rendszermag
beállításaiIPDIVERToptions IPDIVERTEzzel a beállítással
engedélyezzük a címfordítás
használatát.Ha nem adjuk meg az IPFIREWALL_DEFAULT_TO_ACCEPT
beállítást, vagy ha nem
engedélyezzük a bejövõ csomagokat, akkor
a gépünkre semmilyen csomag nem lesz képes
bejutni, illetve onnan kijutni.Az /etc/rc.conf
beállításaiÍgy tudjuk engedélyezni a
tûzfalat:firewall_enable="YES"A &os;-hez mellékelt alapértelmezett
tûzfaltípusok közül az
/etc/rc.firewall állomány
átolvasásával tudunk választani,
és megadni az alábbi helyett:firewall_type="open"A következõ értékek állnak
rendelkezésünkre:open — átengedi az
összes forgalmatclient — csak ezt a
gépet védisimple — az egész
hálózatot védiclosed — a helyi
interfész kivételével minden IP
alapú forgalmat tiltUNKNOWN — tiltja a tûzfal
szabályainak betöltésétállománynév
— a tûzfal szabályait tartalmazó
állomány abszolút elérési
útvonalaKét különbözõ módon lehet
betölteni a saját ipfw
szabályainkat. Az egyik közülük, ha a
firewall_type változóban
megadjuk a tûzfal szabályait
tartalmazó állomány abszolút
elérési útvonalát, az &man.ipfw.8;
parancssori beállításai nélkül.
Az alábbi példában egy olyan egyszerû
szabályrendszert láthatunk, amely blokkolja az
összes bejövõ és kimenõ
forgalmat:add deny in
add deny outMásrészrõl az
firewall_script változóban is
megadhatjuk azt a szkriptet, amelyben a
rendszerindítás során meghívjuk
ipfw parancsot. Az iménti
szabályrendszert az alábbi szkripttel tudjuk
kiváltani:#!/bin/sh
ipfw -q flush
ipfw add deny in
ipfw add deny outHa a firewall_type
változó client vagy
simple értékét
használjuk, akkor az
/etc/rc.firewall
állományban található
alapértelmezett szabályokat érdemes
átvizsgálnunk, hogy kellõen illeszkednek-e
az adott géphez. Hozzátennénk, hogy a
fejezetben szereplõ példák azt
feltételezik, hogy a firewall_script
értéke az /etc/ipfw.rules
állomány.A naplózás így
engedélyezhetõ:firewall_logging="YES"A firewall_logging
változó egyedül csak annyit tesz, hogy
beállítja a
net.inet.ip.fw.verbose sysctl
változónak az 1
értéket (lásd ). A napló
korlátozására nincs külön
változó az rc.conf
állományon belül, de az
/etc/sysctl.conf állomány
segítségével és manuálisan
be tudjuk állítani a hozzátartozó
változót:net.inet.ip.fw.verbose_limit=5Amennyiben a gépünk
átjáróként viselkedik, tehát
a &man.natd.8; segítségével
címfordítást végez, a ban olvashatunk utána, hogy ehhez
az /etc/rc.conf állományban
milyen beállításokat kell megadnunk.Az IPFW parancsipfwNormál esetben az ipfw parancs
használatos arra, hogy a tûzfal
mûködése közben az aktív belsõ
szabályai közé vegyünk fel vagy
töröljünk közülük
manuálisan bejegyzéseket. Ennek a
módszernek az egyedüli hátránya, hogy
az így végrehajtott
módosítások el fognak veszni a rendszer
leállításával. Itt inkább
azt a megoldást javasoljuk, hogy az összes
szabályt tegyük bele egy állományba
és a rendszerindítás során ezt
töltsük be, majd ha változtatni akarunk a
tûzfalon, akkor ezt az állományt
módosítsuk és a régiek
törlésével töltsük be újra
az egész szabályrendszert.Az ipfw parancs mellesleg remekül
használható a jelenleg futó
tûzfalszabályok megjelenítésére
a konzolon. Az IPFW nyilvántartásában az
egyes szabályokhoz dinamikusan jönnek létre
számlálók, amelyek a rá
illeszkedõ csomagokat számolják. A
tûzfal tesztelése folyamán a szabályok
és hozzátartozó
számlálók lekérdezése a
megfelelõ mûködés
ellenõrzésének egyik lehetséges
módja.A szabályokat így tudjuk egymás
után felsoroltatni:&prompt.root; ipfw listA szabályokat így tudjuk az utolsó
illeszkedésük idejével együtt
megjeleníteni:&prompt.root; ipfw -t listA következõ példában a
nyilvántartási információkat
kérdezzük le, ekkor a szabályok mellett az
illeszkedõ csomagok száma is
láthatóvá válik. Az elsõ
sorban a szabály száma szerepel, majd ezt
követi rendre az illeszkedõ kimenõ és
bejövõ csomagok mennyisége, valamint
végül maga a szabály.&prompt.root; ipfw -a listA statikus szabályok mellett a dinamikusakat
így lehet kilistázni:&prompt.root; ipfw -d listA lejárt dinamikus szabályokat is meg tudjuk
nézni:&prompt.root; ipfw -d -e listA számlálók
nullázása:&prompt.root; ipfw zeroCsak a SZÁM
sorszámú szabályhoz tartozó
számlálók nullázása:&prompt.root; ipfw zero SZÁMSzabályrendszerek az IPFW-benAz IPFW esetében a szabályrendszer olyan
szabályokból áll, amelyek a
csomagokról tartalmuk alapján eldöntik, hogy
át kell engedni vagy vissza kell tartani. A gépek
közt két irányban áramló
csomagok egy munkamenet alapú társalgást
képeznek. A tûzfalhoz tartozó
szabályrendszer egyaránt feldolgozza a
internetrõl a hálózatunk felé
igyekvõ csomagokat, illetve a hálózatunk
ezekre adott válaszait. Az egyes
TCP/IP szolgáltatásokat (mint
például telnet, www, levelezés stb.) a
hozzájuk tartozó protokol és
szabványos (fogadó) portszám írja
le. Ezekre a forrásról általában
valamilyen nem szabványos (magasabb
értékû) portról érkeznek
csomagok. Ekkor a kommunikáció összes
paramétere (vagyis a portok és címek)
bármelyike alapján definiálhatunk
blokkolást vagy továbbengedést
leíró szabályokat.IPFWa szabályok feldolgozásának
sorrendjeAmikor egy csomag eléri a tûzfalat, a
szabályrendszer elsõ szabályával
kerül összehasonlításra és
amíg nem illeszkedik valamelyikre, addig lefut rá
a többi szabály is fentrõl lefelé
egyesével, a sorszámuknak megfelelõ
növekvõ sorrendben. Ha a csomag megfelel valamelyik
szabály leválogatási paramétereinek,
akkor a benne megnevezett cselekvés zajlik le, és
számára a feldolgozás befejezõdik.
Ezt a viselkedést neveztük az elsõ
illeszkedés nyer típusú
keresésnek. Amennyiben a csomag egyetlen
szabályra sem illeszkedik, akkor az IPFW 65535-ös
sorszámú állandó szabálya
fogja elcsípni, amely feladata szerint eldobja az
összes hozzá beérkezõ csomagot
anélkül, hogy bármit is válaszolna a
csomag feladójának.A keresés a count,
skipto és tee
szabályok után még
folytatódik.Az itt szereplõ utasítások
különbözõ állapottartásra
vonatkozó opciókat, például a
keep state, limit,
in, out és
via kulcsszavakat tartalmazó
szabályokon alapulnak. Lényegében ezt
tekinthetjük az inkluzív típusú
tûzfalak kiindulási alapjaként.A tûzfal szabályainak
beállítása során nem árt
óvatosnak lennünk, mert
figyelmetlenségünk révén
könnyen kizárathatjuk magunkat a
gépünkrõl.A szabályok
felépítéseIPFWa szabályok
felépítéseAz itt bemutatásra kerülõ
szabályok felépítését csak
olyan mértékig részletezzük, ami
elengedõ a szabványos inkluzív
típusú tûzfalak
kialakításához. A szabályok
felépítésének pontos
leírását az &man.ipfw.8; man
oldalán találhatjuk meg.A szabályok kulcsszavakat tartalmaznak. Ezeket a
kulcsszavakat soronként egy elõre
rögzített sorrendben kell szerepeltetni. A
kulcsszavakat a szövegben kiemeltük. Bizonyos
kulcsszavakhoz további opciókhoz is
tartozhatnak, amelyek gyakran maguk is kulcsszavak és
szintén további opciókat
tartalmazhatnak.A # egy megjegyzés
kezdetét jelzi, mely egyaránt megjelenhet egy
külön sorban, vagy egy szabályt
tartalmazó sor végén. Az üres sorok
nem vesznek részt a feldolgozásban.PARANCS SZABÁLY_SZÁM
CSELEKVÉS NAPLÓZÁS SZÛRÉS
ÁLLAPOTTARTÁSPARANCSMinden új szabály elõttt az
add (mint hozzáadás)
parancsnak kell szerepelni, amellyel a belsõ
táblázatba tudjuk felvenni.SZABÁLY_SZÁMA szabályokhoz mindig tartozik egy sorszám
is.CSELEKVÉSA szabályhoz az alábbi cselekvések
valamelyike kapcsolható, amely akkor hajtódik
végre, amikor a csomag megfelel a
hozzátartozó szûrési
feltételeknek.allow | accept | pass |
permitA fentiek közül mindegyik ugyanazt jelenti,
vagyis hatásukra az illeszkedõ csomag
kilép a tûzfalból. Ez a szabály
megállítja a keresést.check-stateA csomagot a dinamikus szabályokat
tároló táblázattal veti
össze. Ha itt egyezést talál, akkor
végrehajtja az egyezõ dinamikus
szabályhoz tartozó cselekvést, minden
más esetben továbblép a
következõ szabályra. Ennek a
szabálynak nincs illeszthetõ paramétere.
Ha a szabályrendszerben nem szerepel ilyen, akkor a
dinamikus szabályok vizsgálatát az
elsõ keep-state vagy
limit használatánál
vonja be a rendszer.deny | dropMind a két szó ugyanarra utal, vagyis a
szabályra illeszkedõ csomagokat el kell dobni.
Ebben az esetben a keresés befejezõdik.NAPLÓZÁSlog vagy
logamountAmikor egy csomag egy log
kulcsszót tartalmazó szabályra
illeszkedik, akkor a rendszernaplóban egy üzenet
keletkezik a security (biztonság)
funkción keresztül. A naplóba
ténylegesen csak akkor kerül bele az
üzenet, ha az adott szabály még nem
haladta meg a hozzátartozó
logamount paraméter
értékét. Ha ezt nem adtuk meg, akkor
az itt érvényes korlát a
net.inet.ip.fw.verbose_limit sysctl
változóból fog származni. A
nulla érték mind a két esetben
megszünteti ezt a korlátozást. Ha
elértük a korlátot, akkor a
naplózást úgy tudjuk újra
engedélyezni, ha töröljük a
naplózáshoz tartozó
számláló értékét,
lásd az ipfw reset log
parancsot.A naplózás mindig az összes
paraméter illeszkedésének
ellenõrzése után történik,
de még a cselekvés (accept, deny)
elvégzése elõtt. Teljesen rajtunk
múlik, hogyan milyen szabályokat
naplózunk.SZÛRÉSEbben a szakaszban azok a kulcsszavak
találhatóak, amelyek
segítségével a csomagok
különbözõ tulajdonságait tudjuk
megvizsgálni és eldönteni, hogy
illeszkedik-e a szabályra vagy sem. A
következõ általános
tulajdonságokat tudjuk megvizsgálni, ebben a
kötött sorrendben:udp | tcp | icmpBármilyen más olyan protokoll is
megadható, amely megtalálható az
/etc/protocols
állományban. Ezzel adjuk a csomaghoz
tartozó protokollt. Használata
kötelezõ.from forrás
to célMind a from és
to kulcsszavak IP-címek
illesztésére alkalmasak. A
szabályoknak tartalmazniuk kell a
forrás ÉS a
cél paramétereket
is. Az any egy olyan kulcsszó,
amely tetszõleges IP-címre illeszkedik. A
me pedig egy olyan speciális
kulcsszó, amely a tûzfalat
mûködtetõ &os;-s gép (tehát ez
a gép) adott interfészhez tartozó
IP-címét jelöli, mint ahogy a
from me to any, from any to
me, from 0.0.0.0/0 to any,
from any to 0.0.0.0/0, from
0.0.0.0 to any, from any to
0.0.0.0 vagy from me to 0.0.0.0
paraméterekben. Az IP-címek numerikus
pontozott formában a hálózati maszk
hosszával együtt (CIDR-jelöléssel),
vagy egyszerûen csak pontozott formában
adhatóak meg. A hálózati maszkok
megállapításában a net-mgmt/ipcalc port lehet
segítségünkre. Errõl bõvebb
információkat a segédprogram
honlapján, a címen
találhatunk (angolul).port
számA portszámokat is ismerõ protokollok
esetében (mint például a
TCP vagy UDP) adhatjuk
meg. Fontos, hogy itt annak a szolgáltatásnak
a portszámát adjuk meg, amelyre a
szabály vonatkozik. A szolgáltatás (az
/etc/services
állományból származó)
nevét is megadhatjuk a port száma
helyett.in | outA beérkezõ valamint a kimenõ csomagokat
adhatjuk meg ezen a módon. Itt az
in és out
kulcsszavak, melyeket kötelezõ megadni a
szabály részeként.via
interfészNév szerint az adott interfészen
keresztül haladó csomagokat tudjuk szûrni.
A via kulcsszó
hatására a használt interfész is
számítani fog a csomag feldolgozása
során.setupEz a kulcsszó a TCP csomagok
esetében a kapcsolatok
felépítésére vonatkozó
kéréseket segít
beazonosítani.keep-stateEz egy kötelezõ kulcsszó.
Feldolgozásakor a tûzfal létrehoz
dinamikus szabályt, amely
alapértelmezés szerint az egyazon protokollt
használó forrás és cél
IP/port párosok közti
kétirányú forgalomra fog automatikusan
illeszkedni.limit
{forráscím |
forrásport |
célcím |
célport}A tûzfal csak N darab, a
szabálynak megfelelõ azonos
paraméterû kapcsolatot fog átengedi. Itt
egy vagy több forrás- és
célcím valamint forrás- és
célport adható meg. A
limit és a
keep-state egy szabályon
belül nem használható. A
limit ugyanazokat az
állapottartó funkciókat
képviseli, mint a keep-state, csak
a saját kiegészítéseivel
megtoldva.ÁLLAPOTTARTÁSIPFWállapottartó
szûrésAz állapottartó szûrés a
kétirányú csomagváltásokat
egy létrejött kapcsolatba sorolja. Olyan
vizsgálatokat végez, amivel képes
megállapítani, hogy a csomag küldõje
és címzettje között kialakult
kommunikáció követ-e valamilyen
kétirányú csomagküldésre
érvényes folyamatot. Az így
felállított sablontól eltérõ
összes csomag hamisnak minõsül és
automatikusan eldobásra kerül.A check-state
segítségével ellenõrizhetjük,
hogy az adott csomag a IPFW szerint megfelel-e valamelyik
dinamikusan leképzett szabálynak. Ha egyezik
valamelyikõjükkel, akkor a csomag a
tûzfalból kilépve folytatja
útját és a kommunikációban
soron következõ csomag számára
létrejön egy másik dinamikus
szabály. Ha nincs egyezés, akkor csomag
feldolgozása a szabályrendszer
következõ szabályánál
folytatódik.A dinamikus szabályokat kezelõ rutin
sebezhetõ, mivel ha egyszerre nagy mennyiségû
SYN csomagot küldünk, akkor olyan sok dinamikus
bejegyzés keletkezik, hogy egyszerûen kifogyunk a
rendelkezésre álló
erõforrásokból. A &os; fejlesztõi
azonban az ilyen természetû
támadások kivédésére is
felkészítették, és
kialakították belõle a
limit opciót.
Alkalmazásával le tudjuk korlátozni az
egyszerre folyó párhuzamos kapcsolatok
számát a forrás vagy a cél a
limit paraméternél megadott
mezõinek és a csomag IP-címe
alapján. Így az adott szabályhoz
és IP-címhez csak elõre
rögzített mennyiségû nyitott
állapotú dinamikus szabály
létezhet egy idõben. Ha ezt a korlátot
átlépjük, a csomag eldobódik.A tûzfal üzeneteinek
naplózásaIPFWnaplózásA naplózás elõnyei
nyilvánvalóak. Ha engedélyezzük,
aktiválása után képesek
leszünk olyan információknak
utánanézni, mint például milyen
csomagokat dobtunk el, honnan érkeztek, hova tartottak.
Ez egy komoly fegyverünk lehet a potenciális
támadókkal szemben.Azonban hiába engedélyezzünk
önmagában a naplózást, attól
az IPFW még saját magától nem fog
naplózást elõíró
szabályokat gyártani. A tûzfal
karbantartóinak maguknak kell eldöntenie, hogy a
szabályrendszerben mely szabályokhoz tartozzon
naplózás, nekik kell felvenni ezekhez a
log kulcsszót.
Általában csak az eldobással
járó deny
típusú szabályokat vagy a
bejövõ ICMP pingeket
szokták naplózni. Gyakran úgy
oldják meg ezt, hogy a szabályrendszer
utolsó szabályaként
lemásolják az ipfw
alapértelmezett mindent eldobunk
szabályát és a naplózást
adják meg benne. Ezen a módon fény
derül azokra a csomagokra, amelyek a
szabályrendszerben semmire sem illeszkedtek.A naplózás azonban egy
kétélû fegyver, mivel ha nem vagyunk
elég körültekintõek, akkor a sok
naplóinformáció között
könnyen el tudunk veszni és a lemezünk is
gyorsan betelhet a mindent elfoglaló
naplóktól. Mellesleg a naplók
megdagasztását célzó DoS
típusú támadás a rendszerek
lebénítására alkalmazott egyik
legõsibb technika. Ezek az üzenetek nem csak a
rendszernaplóba kerülnek bele, hanem az
elsõdleges konzol képernyõjére is
kiíródnak, ami egy idõ után
idegesítõ tud lenni.A rendszermag
IPFIREWALL_VERBOSE_LIMIT=5
beállításával azonban
képesek vagyunk korlátozni azokat a
rendszernapló felé küldött
egymás után következõ üzeneteket,
amelyek ugyanarra a szabályra vonatkoznak. Amikor ezt
a beállítást megadjuk a rendszermag
fordításánál, akkor az egyes
szabályokhoz az általa meghatározott
értéken felül nem jön létre
több hasonló üzenet. Hiszen semmi sem
derül ki 200 teljesen azonos
naplóüzenetbõl. Például, ha az
egyes szabályokhoz legfeljebb öt egymást
követõ üzenetet engedélyezünk,
akkor a többi fennmaradó azonos üzenetet
összeszámolja a rendszer és a
következõ módon közvetíti a
rendszernaplózó szolgáltatás
felé:last message repeated 45 timesAmi magyarul így hangzik:az utolsó üzenet 45 alkalommal ismétlõdött megAz összes csomagokkal kapcsolatos
naplózás alapértelmezés szerint a
/var/log/security
állományba kerül, amelyet az
/etc/syslog.conf állomány
definiál.Szabályokat tartalmazó szkript
készítéseA rutinosabb IPFW felhasználók a
szabályokat egy állományban
programozzák le olyan stílusban, hogy
szkriptként is futtatható legyen. Ennek az
egyik legnagyobb elõnye, hogy a tûzfal
szabályai így egyszerre cserélhetõek
a rendszer újraindítása
nélkül. Ez a módszer nagyon
kényelmes az új szabályok
kipróbálásánál, mivel
tetszõleges alkalommal végrehajthatjuk. Mivel ez
egy szkript, ki tudjuk használni az itt megszokott
szimbolikus helyettesítés által
felkínált lehetõségeket, és
ezzel a gyakran használt értékeket is
egyszerre több szabályban tudjuk
helyettesíteni. Erre a következõkben fogunk
egy konkrét példát látni.A szkript felépítése kompatibilis a
&man.sh.1;, &man.csh.1; és &man.tcsh.1;
parancsértelmezõkkel. A szimbolikus mezõk
helyettesítését a $ vagyis
dollárjel vezeti be. Maguk a szimbolikus mezõk
nem tartalmazzák a $ elõtagot. A
szimbolikus mezõk értékeit "kettõs
idézõjelek" között kell megadni.A szabályok összeírását
kezdjük el így:####### itt kezdõdik az ipfw szabályait tartalmazó szkript ######
#
ipfw -q -f flush # töröljük az összes aktuális szabályt
# Set defaults
oif="tun0" # a kimenõ interfész
odns="192.0.2.11" # az internet szolgáltató névszerverének IP-címe
cmd="ipfw -q add " # a szabályok hozzáadásához szükséges elemek
ks="keep-state" # csupán a lustaság miatt
$cmd 00500 check-state
$cmd 00502 deny all from any to any frag
$cmd 00501 deny tcp from any to any established
$cmd 00600 allow tcp from any to any 80 out via $oif setup $ks
$cmd 00610 allow tcp from any to $odns 53 out via $oif setup $ks
$cmd 00611 allow udp from any to $odns 53 out via $oif $ks
#### itt fejezõdik be az ipfw szabályait tartalmazó szkript ######Ezzel készen is vagyunk. Most ne
törõdjünk a példában
szereplõ szabályokkal, itt most a szimbolikus
helyettesítés használatát
igyekeztük bemutatni.Ha az iménti példát az
/etc/ipfw.rules állományba
mentettük el, akkor az alábbi parancs
kiadásával tudjuk újratölteni a
benne szereplõ szabályokat:&prompt.root; sh /etc/ipfw.rulesAz /etc/ipfw.rules
állományt egyébként
tetszõleges néven hívhatjuk és
bárhová rakhatjuk.Ugyanez természetesen elérhetõ a
következõ parancsok egymás utáni
begépelésével is:&prompt.root; ipfw -q -f flush
&prompt.root; ipfw -q add check-state
&prompt.root; ipfw -q add deny all from any to any frag
&prompt.root; ipfw -q add deny tcp from any to any established
&prompt.root; ipfw -q add allow tcp from any to any 80 out via tun0 setup keep-state
&prompt.root; ipfw -q add allow tcp from any to 192.0.2.11 53 out via tun0 setup keep-state
&prompt.root; ipfw -q add 00611 allow udp from any to 192.0.2.11 53 out via tun0 keep-stateÁllapottartó
szabályrendszerekA most következõ
címfordítás nélküli
szabályrendszer arra mutat példát, hogyan
valósítsunk meg egy biztonságos
inkluzív tûzfalat. Az
inkluzív tûzfalak csak a szabályainak
megfelelõ szolgáltatásokat engedik
át, minden mást alapértelmezés
szerint tiltanak. A komplett hálózati
szegmensek védelmére
összeállított tûzfalaknak
legalább két interfészük van,
amelyek mindegyikéhez tartoznia kell
szabályoknak a megfelelõ
mûködéshez.Az &unix; mintájú operációs
rendszer, köztül a &os; is olyan, hogy a rendszerben
belüli kommunikációt a
lo0 nevû interfészen
és a 127.0.0.1
IP-címen bonyolítja le. A tûzfalban
mindenképpen szerepelniük kell olyan
szabályoknak, amelyek gondoskodnak ezen
speciális belsõ csomagok zavartalan
közlekedésérõl.Az internet felé csatlakozó interfész
lesz az, amelyen keresztül a kifelé menõ
kéréseket hitelesítjük és
vezéreljük az internet
elérését, valamint ahol szûrjük
az internet felõl érkezõ
kéréseket. Ez lehet a PPP
esetében a tun0 eszköz,
vagy a DSL-, illetve kábelmodemhez csatlakozó
hálózati kártya.Abban az esetben, amikor egy vagy több
hálózati kártyával csatlakozunk a
tûzfal mögött található
belsõ helyi hálózatra, szintén
gondoskodnunk kell a helyi hálózaton belül
mozgó csomagok akadálymentes
továbbításáról.A szabályokat elõször három
nagyobb osztályba kell sorolnunk: az összes
szabadon forgalmazó interfész, a publikus
kimenõ és a publikus bejövõ
interfész csoportjába.A publikus interfészekhez tartozó
csoportokban úgy kell rendeznünk a
szabályokat, hogy elõre kerüljenek a
gyakrabban használtak és hátra a
kevésbé használtak, valamint a csoportok
utolsó szabálya blokkoljon és
naplózzon minden csomagot az adott interfészen
és irányban.A következõ szabályrendszerben
szereplõ, a kimenõ kapcsolatokat tartalmazó
csoport csak olyan allow
típusú szabályokat tartalmaz, amelyek
szûrési feltételei egyértelmûen
azonosítják az interneten elérhetõ
szolgáltatásokat. Az összes
szabályban megjelennek a proto,
port,
in/out,
via és keep
state opciók. A proto
tcp szabályokban emellett szerepel még
egy setup opció is, amellyel a
kapcsolatokat kezdeményezõ csomagokat tudjuk
azonosítani és felvenni az
állapottartásért felelõs dinamikus
szabályok közé.A bejövõ forgalmat vezérlõ
szabályrendszerben elõször az eldobni
kívánt csomagokat kell megadni, aminek
két eltérõ oka van. Elõször is
elõfordulhat, hogy a veszélyes csomagok
részleges illeszkedés miatt szabályosnak
tûnnek. Az ilyen csomagokat értelemszerûen
nem lenne szabad beengedni a szabályok részleges
megfelelése alapján. A másodszor az
eleve ismerten problémás és
értelmetlen csomagokat csendben el kellene vetni,
mielõtt a szakaszhoz tartozó utolsó
szabály fogná meg és
naplózná. Ez az utolsó szabály
egyébként szükség esetén
felhasználható a támadók elleni
bizonyítékok
begyûjtésére.A másik, amire még oda kell figyelnünk,
hogy a blokkolt csomagok esetében semmilyen
válasz nem keletkezzen, egyszerûen csak
tûnjenek el. Így a támadó nem fogja
tudni, hogy a csomagjai vajon elérték-e a
rendszerünket. Minél kevesebb
információt tudnak összegyûjteni a
rendszerünkrõl a támadók, annál
biztonságosabbnak tekinthetõ.
Amikor ismeretlen portokra érkezõ csomagokat
naplózunk, érdemes az
/etc/services/ állományban
vagy
címen (angolul) utánanézni a porthoz
tartozó szolgáltatásnak. A
különbözõ trójai programok
által portok számai ezen a linken
érhetõek el (angolul): .Példa egy inkluzív
szabályrendszerreA most következõ,
címfordítást nem tartalmazó
szabályrendszer teljesen inkluzív
típusú. Éles rendszereken is nyugodtan
alkalmazhatjuk. Egyszerûen csak annyit kell
tennünk, hogy megjegyzésbe tesszük az olyan
szolgáltatásokra vonatkozó
szabályokat, amelyeket nem akarunk engedélyezni.
Amikor pedig olyan üzenetek jelennek meg a
naplóban, amelyeket nem akarunk tovább
látni, a bejövõ kapcsolatokhoz vegyünk
fel egy deny típusú
szabályt hozzájuk. Minden szabályban
cseréljük ki a dc0
interfészt arra a hálózati
kártyára, amely közvetlenül
csatlakoztatja rendszerünket az internethez. A
felhasználói PPP
esetében ez a tun0.A szabályok használatában
felfedezhetünk egyfajta
rendszerszerûséget:Mindegyik sorban, ahol az internet felé nyitunk
meg egy kapcsolatot, a keep-state
opciót használjuk.Az internetrõl az összes hitelesített
szolgáltatás elérése
tartalmazza a limit opciót az
elárasztások kivédése
miatt.Az összes szabályban az
in vagy az out
paraméterrel megadjuk szûrni
kívánt forgalom
irányát.Az összes szabályban szerepel a
via paraméterrel a csomagokat
továbbító interfész
neve.Az alábbi szabályokat tegyük az
/etc/ipfw.rules
állományba.############## Itt kezdõdnek az IPFW szabályai ##########################
# Kezdés elõtt töröljük az összes aktív szabályt.
ipfw -q -f flush
# Állítsuk be a parancsok további szükséges opciót.
cmd="ipfw -q add"
pif="dc0" # az internethez csatlakozó
# interfész neve
#################################################################
# A belsõ hálózat számára ne korlátozzunk semmit se.
# Ha nincs helyi hálózatunk, akkor erre nincs szükségünk.
# Az 'xl0' nevét írjuk át a helyi hálózatra csatlakozó
# interfész nevére.
################################################################
#$cmd 00005 allow all from any to any via xl0
################################################################
# A rendszer belsõ interfészét se szûrjük.
################################################################
$cmd 00010 allow all from any to any via lo0
################################################################
# A csomagot engedjük át a tûzfalon, ha korábban már felvettünk
# hozzá egy dinamikus szabályt a keep-state opcióval.
################################################################
$cmd 00015 check-state
################################################################
# Az internet felé forgalmazó interfész (kimenõ kapcsolatok)
# A saját hálózatunkról belülrõl vagy errõl az átjáróról
# kezdeményezett kapcsolatokat vizsgáljuk az internet felé.
################################################################
# Kifelé engedélyezzük az internet-szolgáltatónk névszerverének
# elérését. Az x.x.x.x a szolgáltatónk névszerverének IP-címe
# legyen. Ha a szolgáltatónak több névszervere is van, akkor
# másoljuk le ezeket a sorokat és az /etc/resolv.conf
# állományban található IP-címeket helyettesítsük be.
$cmd 00110 allow tcp from any to x.x.x.x 53 out via $pif setup keep-state
$cmd 00111 allow udp from any to x.x.x.x 53 out via $pif keep-state
# Kábel/DSL konfigurációk esetében kifelé engedélyezzük a
# szolgáltatónk DHCP szerverének elérését. Ha a "felhasználói
# PPP"-t használjuk, akkor erre nem lesz szükségünk, az egész
# csoportot törölhetjük. Az alábbi szabállyal csíphetjük el a
# beírandó IP-címet. Ha a naplóban megtaláltuk, akkor vegyük
# ki az elsõ szabályt, a másodikba írjuk bele a címet és
# engedélyezzük.
$cmd 00120 allow log udp from any to any 67 out via $pif keep-state
#$cmd 00120 allow udp from any to x.x.x.x 67 out via $pif keep-state
# Kifelé engedélyezzük a szabvány nem biztonságos WWW
# funkció elérését.
$cmd 00200 allow tcp from any to any 80 out via $pif setup keep-state
# Kifelé engedélyezzük a biztonságos HTTPS funkció
# elérését TLS SSL használatával.
$cmd 00220 allow tcp from any to any 443 out via $pif setup keep-state
# Kifelé engedélyezzük a e-mailek küldését és fogadását.
$cmd 00230 allow tcp from any to any 25 out via $pif setup keep-state
$cmd 00231 allow tcp from any to any 110 out via $pif setup keep-state
# Kifelé engedélyezzük a FreeBSD (a make install és a CVSUP)
# funkcióit. Ezzel lényegében a rendszeradminisztrátornak
# ,,ISTENI'' jogokat adunk.
$cmd 00240 allow tcp from me to any out via $pif setup keep-state uid root
# Kifelé engedélyezzük a pinget.
$cmd 00250 allow icmp from any to any out via $pif keep-state
# Kifelé engedélyezzük az idõ szolgáltatást.
$cmd 00260 allow tcp from any to any 37 out via $pif setup keep-state
# Kifelé engedélyezzük az nntp news szolgáltatást
# (vagyis a hírcsoportokat)
$cmd 00270 allow tcp from any to any 119 out via $pif setup keep-state
# Kifelé engedélyezzük a biztonságos FTP, telnet és SCP
# elérését az SSH (secure shell) használatával.
$cmd 00280 allow tcp from any to any 22 out via $pif setup keep-state
# Kifelé engedélyezzük a whois szolgáltatást.
$cmd 00290 allow tcp from any to any 43 out via $pif setup keep-state
# Dobjuk el és naplózzunk mindent, ami megpróbál kijutni.
# Ez a szabály gondoskodik róla, hogy alapértelmezés szerint
# mindent blokkoljunk.
$cmd 00299 deny log all from any to any out via $pif
################################################################
# Az internet felõli interfész (bejövõ kapcsolatok)
# A saját hálózatunk felé vagy erre az átjáróra
# nyitott kapcsolatokat vizsgáljuk az internet felõl.
################################################################
# Blokkoljunk minden olyan bejövõ forgalmat, amely a fenntartott
# címtartományok felé tart.
$cmd 00300 deny all from 192.168.0.0/16 to any in via $pif #RFC 1918: privát IP
$cmd 00301 deny all from 172.16.0.0/12 to any in via $pif #RFC 1918: privát IP
$cmd 00302 deny all from 10.0.0.0/8 to any in via $pif #RFC 1918: privát IP
$cmd 00303 deny all from 127.0.0.0/8 to any in via $pif #helyi
$cmd 00304 deny all from 0.0.0.0/8 to any in via $pif #helyi
$cmd 00305 deny all from 169.254.0.0/16 to any in via $pif #DHCP
$cmd 00306 deny all from 192.0.2.0/24 to any in via $pif #dokumentációs célokra fenntartott
$cmd 00307 deny all from 204.152.64.0/23 to any in via $pif #Sun klaszterek összekötésére használt
$cmd 00308 deny all from 224.0.0.0/3 to any in via $pif #D és E osztályú multicast
# A nyilvános pingek tiltása.
$cmd 00310 deny icmp from any to any in via $pif
# Az ident szolgáltatás tiltása.
$cmd 00315 deny tcp from any to any 113 in via $pif
# Blokkoljuk az összes Netbios szolgáltatást: 137=név, 138=datagram,
# 139=session. A Netbios az MS Windows megosztását implementálja.
# Blokkoljuk az MS Windows hosts2 névszerver kéréseit is a 81-es
# porton.
$cmd 00320 deny tcp from any to any 137 in via $pif
$cmd 00321 deny tcp from any to any 138 in via $pif
$cmd 00322 deny tcp from any to any 139 in via $pif
$cmd 00323 deny tcp from any to any 81 in via $pif
# Eldobjuk az összes késõn érkezõ csomagot.
$cmd 00330 deny all from any to any frag in via $pif
# Eldobjuk azokat az ACK csomagokat, amelyek egyik dinamikus
# szabálynak sem felelnek meg.
$cmd 00332 deny tcp from any to any established in via $pif
# Befelé engedélyezzük a szolgáltató DHCP szerverének válaszát. Ebben
# a szabályban csak a DHCP szerver IP-címe szerepelhet, mivel ez az
# egyetlen olyan hitelesített forrás, ami ilyen csomagokat küldhet.
# Ez csak a kábeles és DSL típusú kapcsolatok esetében szükséges.
# Amikor a "felhasználói PPP"-vel csatlakozunk az internethez, nem
# kell ez a szabály. Ugyanazt az IP-címet kell megadnunk, amelyet a
# kimenõ kapcsolatoknál is.
#$cmd 00360 allow udp from any to x.x.x.x 67 in via $pif keep-state
# Befelé engedélyezzük a szabvány WWW funkciót, mivel webszerverünk
# is van.
$cmd 00400 allow tcp from any to me 80 in via $pif setup limit src-addr 2
# Befelé engedélyezzük a biztonságos FTP, telnet és SCP
# típusú kapcsolatokat az internetrõl.
$cmd 00410 allow tcp from any to me 22 in via $pif setup limit src-addr 2
# Befelé engedélyezzük az internetrõl érkezõ nem biztonságos telnet
# kapcsolatokat. Azért tekintjük nem biztonságosnak, mert az
# azonosítók és a jelszavak az interneten titkosítatlanul vándorolnak.
# Töröljük ezt a csoportot, ha nincs telnet szolgáltatásunk.
$cmd 00420 allow tcp from any to me 23 in via $pif setup limit src-addr 2
# Dobjuk el és naplózzuk az összes többi kintrõl érkezõ csomagot.
$cmd 00499 deny log all from any to any in via $pif
# Alapértelmezés szerint dobjuk el mindent. Az ide érkezõ
# csomagokat is naplózzuk, amibõl többet is ki tudunk majd
# deríteni.
$cmd 00999 deny log all from any to any
############# Itt fejezõdnek be az IPFW szabályai #####################Példa hálózati
címfordításra és
állapottartásracímfordításés az IPFWAz IPFW címfordító
funkciójának
kihasználásához további
konfigurációs beállítások
alkalmazására is szükségünk
lesz. A rendszermagban opció között meg kell
adnunk az option IPDIVERT sort a többi
IPFIREWALL sor mellett, és
fordítanunk egy saját verziót.Emellett még az /etc/rc.conf
állományban is engedélyezni kell az IPFW
alapvetõ funkcióit.natd_enable="YES" # engedélyezzük a címfordításért felelõs démont
natd_interface="rl0" # az internet felé mutató hálózati kártya neve
natd_flags="-dynamic -m" # -m = a portszámok megtartása, ha lehetségesAz állapottartó szabályok
használata a divert natd
címfordítási opcióval együtt
nagyban növeli a szabályrendszer
leprogramozásának bonyolultságát.
A check-state és divert
natd szabályok helye kritikus a
megfelelõ mûködés tekintetében.
Az eddig megszokott egyszerû viselkedés itt
már nem érvényesül. Bevezetünk
egy új cselekvést is, amelynek a neve
skipto. A skipto
parancs használatához elengedhetetlen a
szabályok sorszámozása, mivel pontosan
tudnunk kell, hogy a skipto
hatására hova kell ugrania a
vezérlésnek.A következõ példában nem fogunk
sok megjegyzést látni, mivel benne az egyik
lehetséges programozási stílust
próbáljuk érzékeltetni és a
csomagok szabályrendszerek közti
áramlását magyarázzuk.A feldolgozás a szabályokat
tartalmazó állomány tetején
található elsõ szabállyal
kezdõdik, és innen egyesével pereg
végig lefelé a feldolgozás egészen
addig, amíg a csomag a szûrési
feltételek valamelyikének eleget nem tesz
és távozik a tûzfalból.
Leginkább a 100-as, 101-es, 450-es, 500-as és
510-es sorszámú szabályokat
emelnénk ki. Ezek vezérlik kimenõ
és bejövõ csomagok
fordítását, ezért a
hozzájuk tartozó dinamikus
állapottartó bejegyzések mindig a helyi
hálózat IP-címeire hivatkoznak. Amit
még érdemes megfigyelnünk, hogy az
összes áteresztõ és eldobó
szabályban szerepel a csomag haladási
iránya (tehát kimenõ vagy éppen
bejövõ) és az érintett
interfészt megnevezése. Emellett azt is
vegyük észre, hogy az összes kifelé
irányuló kapcsolatlétrehozási
kérés az 500-as sorszámú
szabályhoz fog ugrani a
címfordítás
elvégzéséhez.Tegyük fel, hogy a helyi hálózatunkon
levõ felhasználók szeretnek honlapokat
nézgetni az interneten. A honlapok a 80-as porton
keresztül kommunikálnak. Tehát amikor egy
ilyen csomag eléri a tûzfalat, nem fog illeszkedni
a 100-as szabályra, mert a fejléce szerint
kifelé halad és nem befelé. A 101-es
szabályon is átlép, mivel ez az elsõ
csomag, így a dinamikus állapottartó
táblázatban sem szerepel még. A csomag
végül a 125-ös szabályra fog
illeszkedni: kifelé halad az internetre
csatlakozó hálózati
kártyán. A csomagban azonban még mindig
az eredeti forrás IP-címe
található, amely a helyi hálózat
egyik gépére hivatkozik. A szabály
illeszkedésekor két cselekvés is
végbemegy. A keep-state opció
hatására ez a szabály felveszi ezt a
kapcsolatot az állapottartó dinamikus
szabályok közé és végrehajtja
a másik megadott feladatot. Ez a feladat része
a dinamikus táblázatba rögzített
bejegyzésnek, ami ebben az esetben a skipto
500 (ugorjunk az 500-as
szabályra) lesz. Az 500-as szabály a
továbbküldés elõtt lefordítja a
csomag forrás IP-címét. Ezt ne
felejtsük el, nagyon fontos! A csomag ezután
eljut a céljához, és visszatérve
ismét belép a szabályrendszer
tetején. Ezúttal illeszkedni fog a 100-as
szabályra és a cél IP-címét
visszafordítjuk a helyi hálózatunk
megfelelõ gépének címére.
Ezután a check-state
szabályhoz kerül, amely megtalálja a
dinamikus szabályok között és
továbbengedi a belsõ hálózatra.
Ezzel visszakerül a küldõ géphez, amely
egy újabb csomagot küld egy újabb
adatszeletet kérve a távoli szervertõl.
Ekkor már a check-state
szabály megtalálja a hozzátartozó
bejegyzést a dinamikus szabályok
között és végrehajtódik a
korábban letárolt skipto 500
mûvelet. A csomag erre az 500-as szabályra ugrik,
ahol lefordítjuk a címét és
továbbküldjük.Az bejövõ oldalon minden, ami egy
korábban kialakult kapcsolat részeként
érkezik, automatikusan a check-state
és a megfelelõ helyre rakott divert
natd szabályok által dolgozódik
fel. Itt mindössze a rossz csomagok
eldobásával és a hitelesített
szolgáltatások elérésének
biztosításával kell foglalkoznunk.
Például a tûzfalon egy webszerver fut,
és azt szeretnénk, hogy az internetrõl
képesek legyenek elérni a rajta levõ
oldalakat. Az újonnan beérkezõ
kapcsolatépítési kérelem a 100-as
szabályra fog illeszkedni, amelynek a cél
IP-címét a tûzfal helyi
hálózaton található
címére fogjuk leképezni. A csomagot
ezután még megvizsgáljuk, nem tartalmaz-e
valamilyen huncutságot, majd végül a
425-ös szabálynál fog kikötni. Az
egyezéskor két dolog történhet: a
csomaghoz felveszünk egy dinamikus szabályt, de
ezúttal az adott forrás IP-címrõl
érkezõ kapcsolatkérések
számát 2-re lekorlátozzuk. Ezzel az
adott szolgáltatás portján meg tudjuk
óvni a tûzfalat üzemeltetõ gépet
a DoS típusú támadásoktól.
A csomagot ezután hozzátartozó
cselekvés szerint továbbengedjük a
belsõ hálózat felé.
Visszatéréskor a tûzfal felismeri, hogy a
csomag egy már meglevõ kapcsolathoz tartozik,
ezért közvetlenül az 500-as szabályhoz
kerül címfordításra, majd a
kimenõ interfészen keresztül
továbbküldjük.Íme az elsõ példa egy ilyen
szabályrendszerre:#!/bin/sh
cmd="ipfw -q add"
skip="skipto 500"
pif=rl0
ks="keep-state"
good_tcpo="22,25,37,43,53,80,443,110,119"
ipfw -q -f flush
$cmd 002 allow all from any to any via xl0 # nem szûrjük a belsõ hálózatot
$cmd 003 allow all from any to any via lo0 # nem szûrjük a helyi interfészt
$cmd 100 divert natd ip from any to any in via $pif
$cmd 101 check-state
# A kimenõ csomagok hitelesítése:
$cmd 120 $skip udp from any to xx.168.240.2 53 out via $pif $ks
$cmd 121 $skip udp from any to xx.168.240.5 53 out via $pif $ks
$cmd 125 $skip tcp from any to any $good_tcpo out via $pif setup $ks
$cmd 130 $skip icmp from any to any out via $pif $ks
$cmd 135 $skip udp from any to any 123 out via $pif $ks
# Az összes olyan csomagot eldobjuk, amely a fenntartott
# címtartományokba tart:
$cmd 300 deny all from 192.168.0.0/16 to any in via $pif #RFC 1918: privát IP
$cmd 301 deny all from 172.16.0.0/12 to any in via $pif #RFC 1918: privát IP
$cmd 302 deny all from 10.0.0.0/8 to any in via $pif #RFC 1918: privát IP
$cmd 303 deny all from 127.0.0.0/8 to any in via $pif #helyi
$cmd 304 deny all from 0.0.0.0/8 to any in via $pif #helyi
$cmd 305 deny all from 169.254.0.0/16 to any in via $pif #DHCP
$cmd 306 deny all from 192.0.2.0/24 to any in via $pif #dokumentációs célokra fenntartott
$cmd 307 deny all from 204.152.64.0/23 to any in via $pif #Sun klaszter
$cmd 308 deny all from 224.0.0.0/3 to any in via $pif #D és E osztályú multicast
# Az érkezõ csomagok hitelesítése:
$cmd 400 allow udp from xx.70.207.54 to any 68 in $ks
$cmd 420 allow tcp from any to me 80 in via $pif setup limit src-addr 1
$cmd 450 deny log ip from any to any
# Ide ugrunk a kimenõ állapottartó szabályoknál:
$cmd 500 divert natd ip from any to any out via $pif
$cmd 510 allow ip from any to any
##################### a szabályok vége ##################A következõ példa teljesen megegyezik az
elõzõvel, azonban itt már
dokumentációs szándékkal
szerepelnek megjegyzések is, melyek a tapasztalatlan
IPFW szabályíróknak segítik jobban
megérteni a szabályok pontos
mûködését.A második példa:#!/bin/sh
############# Az IPFW szabályai itt kezdõdnek ###########################
# Kezdés elõtt töröljük az összes jelenleg aktív szabályt:
ipfw -q -f flush
# Beállítjuk a parancsok megfelelõ elõtagjait:
cmd="ipfw -q add"
skip="skipto 800"
pif="rl0" # az internethez csatlakozó
# hálózati interfész neve
#################################################################
# A belsõ hálózat számára ne korlátozzunk semmit se.
# Ha nincs helyi hálózatunk, akkor erre nincs szükségünk.
# Az 'xl0' nevét írjuk át a helyi hálózatra csatlakozó
# interfész nevére.
#################################################################
$cmd 005 allow all from any to any via xl0
#################################################################
# A rendszer belsõ interfészét se szûrjük.
#################################################################
$cmd 010 allow all from any to any via lo0
#################################################################
# Ellenõrizzük, hogy ez egy beérkezõ csomag és ha igen, akkor
# fordítsuk a címét.
#################################################################
$cmd 014 divert natd ip from any to any in via $pif
#################################################################
# Ha ehhez a csomaghoz korábban már vettük fel dinamikus
# szabályt a keep-state opció révén, akkor engedjük tovább.
#################################################################
$cmd 015 check-state
#################################################################
# Az internet felé forgalmazó interfész (kimenõ kapcsolatok)
# A saját hálózatunkról belülrõl vagy errõl az átjáróról
# kezdeményezett kapcsolatokat vizsgáljuk az internet felé.
#################################################################
# Kifelé engedélyezzük az internet-szolgáltatónk névszerverének
# elérését. Az x.x.x.x a szolgáltató névszerverének IP-címe
# lesz. Ha a szolgáltatónknak több névszervere is van, akkor
# az /etc/resolv.conf állományból nézzük ki a címeiket és
# másoljuk le az alábbi sor mindegyikükhöz.
$cmd 020 $skip tcp from any to x.x.x.x 53 out via $pif setup keep-state
# A kábeles és DSL kapcsolatok esetén engedélyezzük a szolgáltató
# DHCP szerverének elérését.
$cmd 030 $skip udp from any to x.x.x.x 67 out via $pif keep-state
# Kifelé engedélyezzük a szabvány nem biztonságos WWW funkciót
$cmd 040 $skip tcp from any to any 80 out via $pif setup keep-state
# Kifelé engedélyezzük a biztonságos HTTPS funkciót a TLS SSL
# használatával.
$cmd 050 $skip tcp from any to any 443 out via $pif setup keep-state
# Kifelé engedélyezzük az e-mailek küldését és fogadását.
$cmd 060 $skip tcp from any to any 25 out via $pif setup keep-state
$cmd 061 $skip tcp from any to any 110 out via $pif setup keep-state
# Kifelé engedélyezzük a FreeBSD (make install és CVSUP) funkcióit.
# Ezzel a rendszeradminisztrátornak ,,ISTENI'' jogokat adunk.
$cmd 070 $skip tcp from me to any out via $pif setup keep-state uid root
# Kifelé engedélyezzük a pinget.
$cmd 080 $skip icmp from any to any out via $pif keep-state
# Kifelé engedélyezzük az idõ szolgáltatást.
$cmd 090 $skip tcp from any to any 37 out via $pif setup keep-state
# Kifelé engedélyezzük az nntp news szolgáltatást (tehát a
# hírcsoportokat).
$cmd 100 $skip tcp from any to any 119 out via $pif setup keep-state
# Kifelé engedélyezzük a biztonságos FTP, telnet és SCP
# funkciókat az SSH (secure shell) használatával.
$cmd 110 $skip tcp from any to any 22 out via $pif setup keep-state
# Kifelé engedélyezzük ki a whois kéréseket.
$cmd 120 $skip tcp from any to any 43 out via $pif setup keep-state
# Kifelé engedélyezzük az NTP idõszerver elérését.
$cmd 130 $skip udp from any to any 123 out via $pif keep-state
#################################################################
# Az internet felõli interfész (bejövõ kapcsolatok)
# A saját hálózatunk felé vagy erre az átjáróra
# nyitott kapcsolatokat vizsgáljuk az internet felõl.
#################################################################
# Tiltsuk a fenntartott címtartományok felé haladó összes beérkezõ
# forgalmat.
$cmd 300 deny all from 192.168.0.0/16 to any in via $pif #RFC 1918: privát IP
$cmd 301 deny all from 172.16.0.0/12 to any in via $pif #RFC 1918: privát IP
$cmd 302 deny all from 10.0.0.0/8 to any in via $pif #RFC 1918: privát IP
$cmd 303 deny all from 127.0.0.0/8 to any in via $pif #helyi
$cmd 304 deny all from 0.0.0.0/8 to any in via $pif #helyi
$cmd 305 deny all from 169.254.0.0/16 to any in via $pif #DHCP
$cmd 306 deny all from 192.0.2.0/24 to any in via $pif #dokumentációs célokra fenntartott
$cmd 307 deny all from 204.152.64.0/23 to any in via $pif #Sun klaszter
$cmd 308 deny all from 224.0.0.0/3 to any in via $pif #D és E osztályú multicast
# Az ident tiltása.
$cmd 315 deny tcp from any to any 113 in via $pif
# Blokkoljuk az összes Netbios szolgáltatást: 137=név, 138=datagram,
# 139=session. A Netbios az MS Windows megosztását implementálja.
# Blokkoljuk az MS Windows hosts2 névszerver kéréseit is a 81-es
# porton.
$cmd 320 deny tcp from any to any 137 in via $pif
$cmd 321 deny tcp from any to any 138 in via $pif
$cmd 322 deny tcp from any to any 139 in via $pif
$cmd 323 deny tcp from any to any 81 in via $pif
# Dobjuk el a késõn érkezõ csomagokat.
$cmd 330 deny all from any to any frag in via $pif
# Dobjuk el azokat az ACK csomagokat, amelyekre nincs
# dinamikus szabály.
$cmd 332 deny tcp from any to any established in via $pif
# Engedélyezzük a szolgáltató DHCP szerverétõl érkezõ forgalmat. Ennek
# a szabálynak tartalmaznia kell a DHCP szerver címét, mert csak tõle
# fogadunk el ilyen típusú csomagokat. Egyedül csak kábeles vagy DSL
# konfigurációk esetén használatos, a "felhasználói PPP" esetében
# törölhetjük. Ez ugyanaz az IP-cím, amelyet a kimenõ kapcsolatoknál
# megadtunk.
$cmd 360 allow udp from x.x.x.x to any 68 in via $pif keep-state
# Befelé engedélyezzük a szabvány WWW funkciót, mivel van
# webszerverünk.
$cmd 370 allow tcp from any to me 80 in via $pif setup limit src-addr 2
# Befelé engedélyezzük a biztonságos FTP, telnet és SCP
# használatát az internetrõl.
$cmd 380 allow tcp from any to me 22 in via $pif setup limit src-addr 2
# Befelé engedélyezzük a nem biztonságos telnet elérését az
# internetrõl. Azért nem tekintjük biztonságosnak, mert az
# azonosítókat és a jelszavakat az interneten titkosítatlanul
# közvetíti. Ha nincs telnet szolgáltatásunk, akkor törölhetjük is ezt
# a csoportot.
$cmd 390 allow tcp from any to me 23 in via $pif setup limit src-addr 2
# Dobjuk el és naplózzuk az összes internetrõl érkezõ hitelesítetlen kapcsolatot.
$cmd 400 deny log all from any to any in via $pif
# Dobjuk el és naplózzuk az összes internetre menõ hitelesítetlen kapcsolatot.
$cmd 450 deny log all from any to any out via $pif
# Ez lesz a kimenõ szabályokhoz tartozó "skipto" célja.
$cmd 800 divert natd ip from any to any out via $pif
$cmd 801 allow ip from any to any
# Minden mást alapértelmezés szerint tiltunk és naplózunk.
$cmd 999 deny log all from any to any
############# Az IPFW szabályai itt fejezõdnek be #####################
diff --git a/hu_HU.ISO8859-2/books/handbook/introduction/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/introduction/chapter.sgml
index 10e3543467..f5541762a5 100644
--- a/hu_HU.ISO8859-2/books/handbook/introduction/chapter.sgml
+++ b/hu_HU.ISO8859-2/books/handbook/introduction/chapter.sgml
@@ -1,1390 +1,1394 @@
JimMockÁtszerkesztette, átszervezte és
bizonyos részeit átdolgozta: BemutatkozásÁttekintésKöszönjük, hogy érdeklõdik a &os;
iránt! A fejezet a &os; Projektet több
különbözõ vonatkozásban mutatja be: a
történetét, a céljait, a
fejlesztési modelljét és így
tovább.A fejezet elolvasása során
megismerjük:hogyan viszonyul a &os; más operációs
rendszerekhez;a &os; Projekt történetét;a &os; Projekt célkitûzéseit;a &os; nyílt forráskódú
fejlesztési modelljének alapjait;és természetesen: hogyan is keletkezett a
&os; név.Üdvözöljük a &os;-ben!4.4BSD-LiteA &os; egy 4.4BSD-Lite alapú operációs
rendszer &intel; (x86 és &itanium;), AMD64,
Alpha, Sun &ultrasparc;
számítógépekre. Jelenleg is
portolás alatt áll további
architektúrákra. Olvashatunk a &os; történetérõl
vagy éppen az aktuális
kiadásáról. Ha szeretnénk
hozzájárulni a Projekt
fejlõdéséhez (forráskód, hardver
vagy pénz), olvassuk el a Hozzájárulás
a &os;-hez címû cikket (angolul).Mire képes a &os;?A &os; számos figyelemre méltó
tulajdonságot tudhat magáénak. Ezek
közül néhány:preemptív
ütemezésA preemptív
ütemezés dinamikusan
szabályozható prioritások
segítségével biztosítja a
számítógép
felhasználók és alkalmazások
közti finom és igazságos
megosztását, akár a legnagyobb
terhelés esetén is.többfelhasználós
rendszerTöbbfelhasználós
rendszerként lehetõvé teszi,
hogy sokan tudják a &os;-t egyszerre
többféle dologra is használni.
Például, ez azt jelenti, hogy a rendszerhez
csatlakoztatott különbözõ
perifériák, mint mondjuk a nyomtatók
és szalagos egységek, megfelelõen
szétoszthatóak a felhasználók
között vagy éppen a
hálózaton, és az egyes
erõforrásokhoz a felhasználók vagy
azok egy csoportja csak korlátozott módon
férhetnek hozzájuk, elkerülve ezzel a
rendszer számára
létfontosságú erõforrások
túlterhelését.TCP/IP protokollA TCP/IP hálózati
protokoll gyors és
megbízható implementációja,
illetve a legfontosabb ipari szabványok, mint az
SCTP, DHCP, NFS, NIS, PPP, SLIP, IPsec és IPv6
támogatása. Ezáltal egy &os;-s
számítógép könnyedén
képes együttmûködni más
rendszerekkel vagy akár vállalati
szerverként is üzemelni. Megbirkózik az
NFS (Network File System, távoli
állományelérés) és az
elektronikus levelezés megszervezésével
ugyanúgy, ahogy a vállalatunk internetes
elvárásaival a WWW, FTP és
forgalomirányítási protokollokon
keresztül és tûzfal iránti
(biztonsági) igényeivel is.memóriavédelemA memóriavédelem
megvalósítása gondoskodik róla,
hogy az alkalmazások (vagy a
felhasználók) ne zavarják
egymást. Az egyik alkalmazás
összeomlása nincs kihatással a
rendszerben futó összes többire.A &os; egy 32 bites
operációs rendszer (az Alpha, &itanium;, AMD64
és &ultrasparc; architektúrákon pedig
64 bites), amelyet már a
kezdetektõl fogva annak terveztek.X Window SystemXFree86A X Window System ipari
szabványa (X11R7) alapján szolgáltatja
a grafikus felhasználói felületet (GUI)
bármelyik VGA-kártyán és
monitoron, illetve annak teljes forráskódja is
elérhetõ.bináris kompatibilitásLinuxbináris kompatibilitásSCObináris kompatibilitásSVR4bináris kompatibilitásBSD/OSbináris kompatibilitásNetBSDBináris szintû
kompatibilitás a Linuxra, SCO-ra, SVR4-re,
BSDI-re és NetBSD-re készített
programok nagy részével.Futtatásra kész
alkalmazások ezrei érhetõek el a &os;
port- és
csomaggyûjteményében.
Miért bújnánk az internetet
értük, ha mindent egy helyen is
megtalálhatunk?További könnyen
portolható alkalmazások ezrei
állnak rendelkezésre az interneten. A &os;
forráskódja kompatibilis a legtöbb
elterjedt kereskedelmi &unix; rendszerével, aminek
köszönhetõen az alkalmazások nagy
része csak kevés
módosítást igényel a
fordításhoz, már amennyiben erre
egyáltalán szükség van.virtuális
memóriaAz igény szerinti lapozással
mûködõ virtuális
memória és egyesített
VM/puffer gyorsítótár
úgy lett kialakítva, hogy hatékonyan
kiszolgálja a nagyobb étvágyú
alkalmazásokat, miközben a többi
felhasználó számára
továbbra is reakcióképes marad.többprocesszoros (SMP) rendszerek
támogatásaAz SMP támogatása a
több processzorral rendelkezõ
számítógépek
számára.fordítóprogramokCfordítóprogramokC++fordítóprogramokFORTRANC, C++
és Fortran fejlesztõi
eszközök széles tárháza
használható. Kutatáshoz és
fejlesztéshez más egyéb
programozási nyelvek is elérhetõek a
portok és csomagok
segítségével.forráskódAz egész rendszer
forráskódjának
megléte lehetõvé teszi, hogy a legnagyobb
fokú irányítást
élvezhessük a környezetünk felett.
Miért is bíznánk magunkat egy
zárt rendszert fejlesztõ cégre, mikor
lehetne egy igazán nyílt
rendszerünk?Nagy mennyiségû internetes
dokumentáció.Még sok minden
más!4.4BSD-LiteSzámítógépes
rendszerek kutatócsoport (CSRG)BerkeleyA &os; Kaliforniai Egyetem (Berkeley)
Számítógépes rendszerek
kutatócsoportja által fejlesztett 4.4BSD-Lite
kiadásán alapszik és ápolja a
BSD-rendszerek fejlesztésének jellegzetes
hagyományait. Túl a kutatócsoport
kivételes munkáján, a &os; Projekt
több ezernyi órát szentelt arra, hogy a
legtöbbet hozza ki a rendszerbõl mind a
teljesítményt, mind pedig a valós
életben felbukkanó terhelési helyezetekben
történõ helytállást
illetõen. Ahogy a legnagyobb piaci óriások
igyekeznek egy hasonló képességû,
teljesítményû és
megbízhatóságó PC-s
operációs rendszert kifejleszteni, úgy a
&os; már most felajánlja
ezeket!Kizárólag csak a képzeletünk
szabhat gátat annak, hogy mire is tudjuk használni
a &os;-t. Szoftverfejlesztéstõl kezdve, a
gyári automatizáláson és
készletnyilvántartáson át a
mûholdas antennák tájolásáig
szinte mindenre: ha ezt eddig egy kereskedelmi &unix;-szal is
meg tudtuk tenni, akkor nagyon valószínû,
hogy a &os;-vel is képesek leszünk erre! A &os;
ezen felül nagyban profitál a világban
található különbözõ
kutatóközpontok és egyetemek által
fejlesztett, kiváló minõségû
alkalmazások ezreibõl, melyek gyakorta olcsón
vagy ingyen elérhetõek. Kereskedelmi
alkalmazások is egyre nagyobb számban
képviseltetik magukat minden nap.Mivel a &os; forráskódja
általánosan elérhetõ, a rendszer
szinte tetszõleges mértékben
testreszabható a különleges
elvárásokat támasztó
alkalmazások vagy projektek számára. Ez a
nagyobb kereskedelmi fejlesztõk operációs
rendszereivel majdnem teljesen elképzelhetetlen.
Íme csupán néhány
példája azon alkalmazásoknak, melyek
jelenleg is &os;-t használnak:Internetes
szolgáltatások: A &os;-be
épített szilárd TCP/IP alapú
hálózatkezelés
különféle internetes
szolgáltatások számára teszi
ideális platformmá:FTP szerverekFTP szerverekwebszerverekWorld Wide Web szerverek (hagyományos vagy
biztonságos [SSL])IPv4 és IPv6
forgalomirányítástûzfalNATTûzfalak és NAT (IP
maszkolás),
átjárókelektronikus levelezése-maile-mailElektronikus levelezõ szerverekUSENETUSENET hírrendszer és
üzenõfalSok minden más...A &os; használatához kezdetben
elegendõ egy olcsó 386-os PC, melyet a
vállalkozásunk fejlõdésével
szépen fel tudunk hozni egy RAID-del ellátott
négyprocesszoros Xeon rendszerig.Oktatás: Esetleg
informatikával vagy mûszaki
informatikával foglalkozik? Nem is lehetne jobban a
&os; által felkínált
élményeken kívül máshogy
megismerkedni elsõkézbõl az
operációs rendszerek,
számítógépes
architektúrák és
hálózatok mûködésével!
Rengeteg szabadon használható mûszaki,
matematikai és grafikai tervezõ programcsomag
könnyíti meg azok munkáját is,
akik számára a
számítógép
legfõképpen más
feladatok elvégzésére hivatott!Kutatás: Miután a
teljes &os; rendszer forráskódja bárki
számára elérhetõ,
tökéletes kiindulási pontot ad az
operációs rendszerek
témakörében vagy a
számítástudomány egyéb
ágaiban végzendõ kutatásokhoz. A
&os; nyílt természete ezenkívül
lehetõvé teszi egymástól
távol levõ csoportok közös
együttmûködését is
anélkül, hogy a résztvevõknek
aggódnia kellene a különleges
licencszerzõdések vagy a nyílt
fórumokon felmerülõ
korlátozások miatt.forgalomirányítóDNS szerverHálózatépítés:
Szüksége van egy új
útválasztóra? Esetleg egy
névszerverre (DNS)? Egy tûzfalra, mely
távoltartja a nemkívánatos
egyéneket a belsõ
hálózattól? A &os; pillanatok alatt
átváltoztatja a sarokban porosodó
386-os vagy 486-os PC-nket egy kifinomult
csomagszûrési képességekkel
bíró forgalomirányító
eszközzé.X Window SystemXFree86X Window SystemAccelerated-XX Window
munkaállomás: A &os; a szabadon
használható X11 szerverrel együtt remek
választás egy olcsó X terminál
kiépítéséhez.
Eltérõen egy szokványos X
termináltól, a &os; azonban igény
szerint sok alkalmazás helyi futtatását
is képes megoldani, ezzel megszabadítva minket
a központi szerver használatának
kényszerétõl. A &os; viszont akár
lemez nélkül is el tud indulni,
aminek révén az egyes
munkaállomások karbantartása még
olcsóbbá és könnyebbé
válik.GNU Compiler
CollectionSzoftverfejlesztés: Az alap
&os; rendszer fejlesztõeszközök
tömkelegével, többek közt a
híres GNU C/C++ fordítóval és
nyomkövetõvel érkezik.A &os; CD-n, DVD-n és FTP-n keresztül
elérhetõ forráskód és
bináris formátumban is. A &os;
beszerzésével kapcsolatos bõvebb
információkért olvassuk el a et.Ki használja a &os;-t?felhasználók&os;-t használó nagy
oldalakA &os; egyaránt remek eszköz- és
termékfejlesztõi platformként funkcionál
világ legnagyobb informatikai cégeinél,
többek közt:AppleAppleCiscoCiscoJuniperJuniperNetAppNetAppA &os; mindezek mellett több nagyobb internetes oldal
alapját képzi, mint például:Yahoo!Yahoo!YandexYandexApacheApacheRamblerRamblerSinaSinaPair NetworksPair
NetworksSony JapanSony
JapanNetcraftNetcraftNetEaseNetEaseWeathernewsWeathernewsTELEHOUSE AmericaTELEHOUSE
Americaés még sokan mások.A &os; ProjektrõlA most következõ rész egy-két
háttérinformációt tár fel a
Projektrõl, többek között a
történetét, céljait és a benne
alkalmazott fejlesztési modellt.JordanHubbardÍrta: A &os; rövid története386BSD PatchkitHubbard, JordanWilliams, NateGrimes, Rod&os; ProjekttörténetA &os; Projekt valamikor 1993 kezdetérõl
eredeztethetõ, és részben a Nem
hivatalos 386BSD Patchkit-bõl nõtt ki, a
patchkit 3 legutolsó koordinátorának, Nate
Williamsnek, Rod Grimesnak és nekem
köszönhetõen.386BSDEredeti célunk a 386BSD köztes
állapotainak rögzítése lett volna,
amitõl olyan problémák
megoldását reméltük, melyeket a
patchkitek gyártása önmagában
egyszerûen nem tudott megoldani. Néhányan
még talán emlékeznek is a Projekt kezdeti
munkaneveire: 386BSD 0.5 vagy 386BSD
Interim, melyek pontosan erre a tényre
hivatkoztak.Jolitz, BillA 386BSD eredetileg Bill Jolitz operációs
rendszere volt, amely ennél a pontnál már
közel egy éve nem került
ápolásra. Mivel a hozzátartozó
patchkit pedig napról napra duzzadt, egyre
kényelmetlenebbé vált a
karbantartása. Ezért egyhangúan úgy
döntöttünk, segítünk Billnek azzal,
hogy idõnként létrehozunk egy
letisztított változatot. Ez a
próbálkozásunk csúnyán
kudarcba fulladt, amikor Bill Jolitz hirtelen meggondolta
magát és visszalépett a Projekt
támogatásától. Semmilyen
egyértelmû útmutatást nem adott arra,
hogy mit csináljunk helyette.Greenman, DavidWalnut CreekNem tartott sokáig eldöntenünk, hogy ez a
cél továbbra is megéri a
fáradtságot, még Bill
segítsége nélkül is, ezért
felvettük a &os; nevet, melyet David
Greenmannek köszönhetünk. Kezdeti feladatainkat
a rendszer akkori felhasználóival tartott
egyeztetések után állítottuk fel.
Miután teljesen tisztán
láthatóvá vált, hogy a Projekt a
megvalósulás útján van, felvettem a
kapcsolatot a Walnut Creek-kel, terjesztési mód
után nézve azokra számára, akik nem
tudtak akkoriban könnyedén hozzáférni
az internethez. A Walnut Creek nem csak támogatta a &os;
CD-n történõ terjesztését, hanem
még egy számítógépet
és egy gyors internetkapcsolatot is a Projekt
számára bocsátott. A Walnut Creek szinte
példátlan mértékû, egy
akkoriban teljesen ismeretlen projektbe vetett hite
nélkül nagyon nehezen lenne
elképzelhetõ, hogy a &os; olyan messzire és
olyan gyorsan jutott volna el, ahol ma tart.4.3BSD-LiteNet/2Berkeley386BSDSzabad Szoftver
AlapítványAz elsõ CD-lemezen (és széles körben
az interneten is megjelenõ) változat a &os; 1.0
volt, amely 1993 decemberében jelent meg. A
Berkeley-rõl származó 4.3BSD-Lite
(Net/2) szalagokon található
források alapján készült,
kiegészítve a 386BSD-bõl és a Szabad
Szoftver Alapítványtól (Free Software
Foundation, FSF) származó komponensekkel.
Elsõ kiadásként igen méltányos
sikert könyvelhetett el, melyet a még inkább
sikeres &os; 1.1-el folytattunk 1994
májusában.NovellBerkeleyNet/2AT&TNagyjából ekkortájt
néhány váratlan sötét
felhõ bukkant fel az égbolton, ahogy a Novell
és a Berkeley hosszantartó pereskedése
lezárult a Berkeley Net/2 szalagjainak jogi
formáját illetõen. Ennek
eredményeképpen a Berkeley elfogadta, hogy a Net/2
nagy része jelzáloggal terhelt
és a Novell tulajdona, aki pedig valamivel
korábban az AT&T-tõl szerezte. Ezért
cserébe a Berkeley megkapta a Novell
áldását a 4.4BSD-Lite
kiadásra, és amikor az véglesen kijön,
megszûnik a rajta levõ jelzálog. Emiatt az
összes Net/2 felhasználónak erõsen
javasolt volt váltani. Ez érintette magát
a &os;-t is, és így a Projekt 1994
júliusáig kapott határidõt, hogy
leállítsa a Net/2 alapú termékeinek
szállítását. A megegyezés
értelmében a Projekt kiadhatott még egy
utolsó kiadást a határidõ elõtt,
amely végül a &os; 1.1.5.1 lett.A &os;-nek ekkor szembesülnie kellett azzal a
nehéz feladattal, hogy lényegében
újra fel kellett találnia magát, a teljesen
új és meglehetõsen hiányos 4.4BSD-Lite
bitjeitõl elindulva. A Lite
(egyszerûsített) kiadások abban az
értelemben számítottak egyszerûbbnek,
hogy a Berkeley kutatói (a különbözõ
jogi követelések miatt)
eltávolították a ténylegesen
beindítható rendszerhez szükséges
programrészek nagyobb részét, ill. a
4.4-es verzió Intel processzorokra
készített portja nagyon is befejezetlen volt. A
Projektnek egészen 1994 novemberéig tartott, hogy
megtegye ezt a lépést, ugyanis ekkor jelent meg a
&os; 2.0 az interneten és (december vége
felé) CD-n. Annak ellenére, hogy még
némileg érdes maradt bizonyos helyeken, ez a
kiadás jelentõs sikereket ért el. Ezt
követte 1995 júniusában a sokkalta stabilabb
és könnyebben telepíthetõ
&os; 2.0.5.A &os; 2.1.5-öt 1996 augusztusában adtuk
ki, mely akkora népszerûségnek örvendett
az internet-szolgáltatók és kereskedelmi
közösségek körében, hogy a a
2.1-STABLE elágazásból egy újabb
kiadást készítettünk. Ez volt a
&os; 2.1.7.1, amely 1997 februárjában jelent
meg és ezzel együtt a 2.1-STABLE
fejlesztését is zárta. Most már
csak karbantartást végzünk rajta, és
csak a biztonsági és egyéb kritikus
hibajavítások kerülnek bele
(RELENG_2_1_0).A &os; 2.2 fejlesztése 1996 novemberében
ágazott le az akkori fejlesztõi
(-CURRENT) ágból, mint a
RELENG_2_2-es ág. Ebbõl az elsõ teljes
kiadás (2.2.1) 1997 áprilisában jelent meg.
A 2.2-es ág mentén további kiadások
1997 nyarán és õszén
készültek, melyek közül az utolsó
(2.2.8) 1998 novemberében jelent meg. Az elsõ
hivatalos 3.0-ás kiadás 1998
októberében jött ki, ami egyúttal a
2.2-es ág befejezésének kezdetét
jelentette.A fejlesztési fa 1999. január 20-án
került ismét elágaztatásra, melynek
eredménye a 4.0-CURRENT és 3.X-STABLE ágak
lettek. A 3.X-STABLE ágban a 3.1 1999. február
15-én, a 3.2 1999. május 15-én, a 3.3
1999. szeptember 16-án, a 3.4 1999. december
20-án és a 3.5 2000. június 24-én
jelent meg, melyet pár nappal késõbb egy
kisebb alverzió, a 3.5.1 követett, a Kerberosra
vonatkozó friss biztonsági
javításokkal. Ez lett egyben a 3.X ág
utolsó kiadása.Egy másik fontos elágaztatás 2000.
március 13-án történt, mellyel
életre kelt a 4.X-STABLE ág. Ebbõl
aztán számos kiadás született: a
4.0-RELEASE 2000 márciusában mutatkozott be, az
utolsó 4.11-RELEASE pedig 2005 januárjában
látott napvilágot.A várva várt 5.0-RELEASE 2003. január
19-én került bejelentésre. Közel
háromévnyi munka eredményeképpen ez
a kiadás indította meg a &os;-t a
többprocesszoros rendszerek és az
alkalmazások szálkezelésének
fejlettebb támogatásának
útján, valamint az &ultrasparc; és
ia64 platformok támogatása is
itt jelent meg elõször. Ezt a kiadást a 5.1
követte 2003 júniusában. A
hozzátartozó -CURRENT ágból az
utolsó kiadás az 5.2.1-RELEASE volt, amely 2004
februárjában mutatkozott be.A 2004 augusztusában, a RELENG_5 ág
létrehozását a 5.3-RELEASE követte,
és egyben a 5-STABLE ág kezdetét is
jelezte. A legújabb 5.5-RELEASE 2006
májusában jött ki. A RELENG_5
ágból már nem fog készülni
több kiadás.A fejlesztési fa ezután 2005
júliusában ágazott el ismét,
ezúttal a RELENG_6 ágnak adott életet. A
6.0-RELEASE az 6.X ág elsõ kiadásaként
2005 novemberében jelent meg. A legújabb
- &rel2.current;-RELEASE &rel2.current.date;
- hónapjában jelentkezett. A RELENG_6
- ágból már nem készülnek
- további kiadások.
+ 6.4-RELEASE 2008 november hónapjában jelentkezett.
+ A RELENG_6 ágból már nem
+ készülnek további kiadások.
A RELENG_7 ág 2007 októberében
jött létre. Ebbõl az elsõ kiadás
2008 februárjában a 7.0-RELEASE volt. A
- legfrissebb &rel.current;-RELEASE kiadás
- &rel.current.date; hónapban készült el. A
+ legfrissebb &rel2.current;-RELEASE kiadás
+ &rel2.current.date; hónapban készült el. A
RELENG_7 ágból további kiadások is
várhatóak.
+ A fejlesztési fából 2009
+ augusztusában ismét levált egy ág,
+ amely ezúttal a RELENG_8 volt. A 8.0-RELEASE, a 8.X
+ ág elsõ kiadása &rel.current.date;
+ hónapban jelent meg.
+
Jelen pillanatban a hosszabb távú
- fejlesztések a 8.X-CURRENT (törzs) ágban
- kapnak helyet, és a 8.X-bõl készült
+ fejlesztések a 9.X-CURRENT (törzs) ágban
+ kapnak helyet, és a 9.X-bõl készült
idõközönkénti pillanatkiadások
folyamatosan elérhetõek CD-n (és
természetesen interneten keresztül is) a
pillanatkiadásokat tároló
szerverrõl.
-
JordanHubbardÍrta: A &os; Projekt céljai&os; ProjektcélokA &os; Projekt célja, hogy olyan szoftvereket
kínáljon, amelyek tetszõlegesen,
bármilyen célra felhasználhatóak,
mindenféle megkötések nélkül.
Sokunk jelentõs energiát fektet a programokba
(és a Projektbe) és minden bizonnyal egyikünk
sem utasítana vissza semmilyen anyagi
ellenszolgáltatást se most, se késõbb,
de egyáltalán nem ragaszkodunk hozzá.
Hisszük, hogy elsõdleges
küldetésünk olyan programok
és programrészletek készítése
bárki számára és bármilyen
célra, melyeket a lehetõ legszélesebb
körben alkalmaznak és a lehetõ legtöbbet
hasznot hajtják. Ez, úgy érzem, az egyik
legalapvetõbb célja a szabad szoftvereknek,
és ez az, amit mi is lelkesen magunkénak
vallunk.GNU General Public License (GPL)GNU Lesser General Public License (LGPL)BSD licencA forrásfánkban található GNU
General Public License (GPL) vagy a Library General Public
License (LGPL) alá esõ kódok
hozzáférhetõségére ezzel
szemben némileg több megszorítás
vonatkozik, legalább is inkább ami a
hozzáférhetõséget illeti. Mivel a
GPL-es szoftverek kereskedelmi használata további
bonyodalmakat vethet fel, ha lehetõségünk
adódik rá, inkább a sokkal enyhébb
BSD licenccel rendelkezõ szoftvereket
választjuk.SatoshiAsamiÍrta: A &os; fejlesztési modellje&os; Projektfejlesztési modellA &os; fejlesztése egy nagyon nyitott és
rugalmas folyamat, szó szerint a világ minden
tájáról érkezõ
többszáznyi segítségbõl
építkezik, ahogy az látható is a
résztvevõink
listáján. A &os; fejlesztési
infrastruktúrája lehetõvé teszi, hogy
ez a többszáznyi résztvevõ az interneten
keresztül mûködjön együtt.
Folyamatosan várjuk az új fejlesztõket
és ötleteket, és mindazok, akik komolyabban
érdeklõdnek a Projekt iránt, egyszerûen
felvehetik velünk a kapcsolatot a &a.hackers;
címén. Egy &a.announce; is elérhetõ
azok számára, akik értesíteni
kívánják a többi &os;
felhasználót munkájuk fõbb
eredményeirõl.A &os; Projektrõl és annak
fejlesztési modelljérõl hasznos tudni az
alábbiakat, függetlenül attól, hogy
egyedül vagy másokkal szoros
együttmûködésben dolgozunk:Az SVN és CVS repositorykCVSrepositoryConcurrent Versions SystemCVSSVNrepository>SubversionSVNSok éven keresztül a &os; központi
forrásfáját CVS-en
(Concurrent Versions System) keresztül
tartották karban, amely egy, a &os;-vel is
érkezõ, szabadon elérhetõ
verziókezelõ rendszer. 2008
júniusában a Projekt az SVN
(Subversion) használatára váltott.
Ez a váltás szükségszerû
volt, mivel a CVS által okozott technikai
nehézségek gyorsan elõjöttek a
forrásfa és a hozzátartozó
metainformációk szapora
növekedésével. Noha a központi
repository most már
SVN-alapú, a
kliensoldali CVSup és
csup alkalmazások
továbbra is a korábbi
infrastruktúrával dolgoznak, ahogy eddig is
— az SVN respositoryban
végzett változtatások ehhez
automatikusan átkerülnek
CVS alá. Jelen
pillanatban egyedül csak a központi
forrásfa használja ezt a megoldást, a
dokumentáció, a weboldalak és a
Portgyûjtemény forrásai továbbra
is CVS alól
üzemelnek. Az elsõdleges CVS
repository egy Santa Clara-i (California, USA)
számítógépen
található, ahonnan a világban
található rengeteg tükörszerverre
másolódik. Az
SVN-fa, mely tartalmazza a
-CURRENT és -STABLE ágakat,
könnyen lemásolható a saját
számítógépünkre is.
Ennek részleteirõl bõvebben a A forrásfa
szinkronizálása c. szakaszban
olvashatunk.A committerek listájacommitterekA hivatalos fejlesztõk
(committerek) azok az emberek, akik
a CVS-fához írási joggal
rendelkeznek, tehát módosítást
hajthatnak végre a &os; forrásaiban (a
committer kifejezés a &man.cvs.1;
commit parancsából
származik, amelyet arra használunk, hogy
felvigyük a módosításainkat a
CVS repository-ba). Javaslatainkat legjobban a
&man.send-pr.1; használatával tudjuk a
committerek elé tárni. Ha valamiért
ez mégsem mûködne,
megpróbálhatjuk õket elérni
közvetlenül a &a.committers;
címére küldött e-maillel.A &os; Core TeamCore TeamHa a &os; Projekt egy vállalat lenne,
akkor a &os; Core Teamje
(irányító csoportja) foglalná
magában a vezetõséget. Ennek a
csoportnak elsõdleges feladata, hogy fenntartsa a
Projekt egészének
kondícióját és gondoskodjon
róla, hogy a megfelelõ irányba
haladjon. Az irányító csoportnak
ugyanígy feladata a megbízható
és odaadó committerek
tömörítése és az új
tagok beszervezése, ha a csoportból
kilépne valaki. A jelenlegi Core Team tagjait 2008
júliusában választották meg.
A választásokat kétévente
tartják.Ebben a csoportban egyes tagoknak ezenfelül
még bizonyos területekre
felügyelniük is kell. Ez azt jelenti, hogy
felelõsek a rendszer valamelyik nagyobb
részének az elõírásoknak
megfelelõ mûködéséért.
A &os; fejlesztõk teljes felsorolása és
a hozzájuk tartozó területek
megtalálhatóak A
résztvevõk listjában.A Core Team legtöbb tagja pusztán
önkéntesen vesz részt a &os;
fejlesztésében és nem
származik a projektbõl semmilyen anyagi
haszna. Emiatt a részvétel
nem tévesztendõ össze a
garantált
támogatással. A
vezetõségre vonatkozó
hasonlat nem teljesen pontos abban az értelemben,
hogy ezek az emberek lényegeben akaratuk
ellenére feladták az életüket
a &os; kedvéért!Külsõ résztvevõkrésztvevõkVégül, de nem utoljára,
következzen a fejlesztõk legnagyobb csoportja:
õk maguk a felhasználók, akik
rendszeres visszajelzéseket és
hibajavításokat küldenek. A &os;
kevésbé központosított
fejlesztésében elsõsorban a &a.hackers;
segítségével lehet felvenni a
fonalat, ahol ezeket a témákat
tárgyalják meg. A &os;-hez
kapcsolódó különféle
levelezési listákról többet a
ben olvashatunk.A &os;
résztvevõinek
listája hosszú és
még most is növekszik; miért nem
próbálunk mi is visszaadni valamit a
&os;-nek?Nem csak programozással lehet segíteni a
Projektet: a megoldandó feladatok
listáját megtalálhatjuk a &os; Projekt
honlapján.Röviden összefoglalva, a fejlesztési
modellünk egymáshoz lazán
kapcsolódó koncentrikus körökként
szervezõdik. Ez a központosított modell a
&os;-felhasználók
kényelmét szolgálandó lett
kialakítva, akik így könnyedén tudnak
követni egyetlen központi kódbázist,
azonban megvan a lehetõségük a
részvételre is! Minden vágyunk egy olyan
megbízható operációs rendszer
kialakítása, amihez nagy mennyiségû
könnyen telepíthetõ és
használható alkalmazás tartozik — ez a
modell ennek elérésére nagyon is
megfelelõ.A haladás ütemének fenntartása
érdekében mindössze csak annyit
kérünk a leendõ &os; fejlesztõinktõl,
hogy legyenek legalább annyira elszántak, mint a
jelenlegi tagjaink!Az aktuális &os; kiadásokNetBSDOpenBSD386BSDSzabad Szoftver
AlapítványBerkeleySzámítógépes
rendszerek kutatócsoport (CSRG)A &os; egy szabadon elérhetõ, teljes
forráskóddal érkezõ 4.4BSD-Lite
alapú kiadás Intel &i386;, &i486;, &pentium;,
&pentium; Pro, &celeron;, &pentium; II,
&pentium; III, &pentium; 4 (vagy azzal kompatibilis),
&xeon;, DEC Alpha és Sun
&ultrasparc; alapú
számítógépekre. Elsõsorban a
Berkeley Számítógépes rendszerek
kutatócsoportjának szoftverein alapszik,
számos javítással a NetBSD, OpenBSD, 386BSD
és a Szabad Szoftver Alapítvány
munkásságának
köszönhetõen.A &os; 2.0 1994 végi megjelenése
óta a &os; teljesítménye,
megbízhatósága és tudása
drasztikusan megnövekedett. A legnagyobb
változtatás az újjáalakított,
összevont VM/állomány puffer
gyorsítótárral rendelkezõ
virtuális memória alrendszer, amely nem csak a
teljesítményt növeli, hanem csökkenti a
&os; memóriaigényét is, jobban
elfogadhatóvá téve ezzel az 5 MB-os
minimumot. A további fejlesztések
között találjuk a teljes NIS szerver és
kliens támogatást, az átviteli TCP
támogatását, az igény szerint
tárcsázó PPP-t, a beépített
DHCP támogatást, a továbbfejlesztett SCSI
alrendszert, az ISDN támogatást, az ATM, FDDI,
Fast és Gigabit Ethernet (1000 Mbit)
hálózati csatolók
támogatását, a legfrissebb Adaptec
gyártmányú vezérlõk fejlesztett
támogatását és a többezernyi
hibajavítást.Az alapeszközök mellé a &os;
felkínálja többezernyi ismert és
keresett program portjaiból álló
gyûjteményét. Ebben a pillanatban is
már több, mint &os.numports; port érhetõ
el! A portok listája a HTTP (WWW) szerverektõl, a
játékokon, nyelveken és sok mindenen
keresztül a szövegszerkesztõkig terjed. Az
egész Portgyûjtemény
közelítõleg &ports.size; tárhelyet
kíván, minden portot az eredeti forráshoz
viszonyított
különbségként
tárol. Ennek következtében a portok
frissítése sokkal könnyebb és nagyban
csökkenti a korábbi, 1.0-ás
Portgyûjteménynél kialakult
tárigényeket. Egy port
lefordításához egyszerûen csak be kell
lépnünk a telepíteni kívánt
program könyvtárába és ki kell adnunk
a make install parancsot, a többit a
rendszer elvégzi. Minden egyes telepítendõ
port teljes forrása dinamikusan vagy CD-rõl vagy
pedig FTP-n keresztül töltõdik le, így
csak a ténylegesen telepítendõk
lefordításához elegendõ
tárhelyre van szükség. Majdnem mindegyik
port elérhetõ elõre lefordított
csomag formájában azok
számára, akik nem kívánják
lefordítani a portokat, és melyeket egy
egyszerû parancs (pkg_add)
segítségével telepíteni is
tudják. A csomagokról és portokról
a ben tudhatunk meg többet.A &os; telepítésérõl és
használatáról most már számos
további nagyon hasznos dokumentumot találhatunk
bármelyik &os;-s számítógép
/usr/share/doc
könyvtárában. A helyileg telepített
kézikönyveket bármilyen HTML-t
megjeleníteni képes böngészõvel
meg el tudjuk olvasni az alábbi URL-eken:A &os; kézikönyv/usr/share/doc/handbook/index.htmlA &os; GYIK/usr/share/doc/faq/index.htmlAz aktuális (leginkább frissített)
verziók megtekinthetõek a címen.
diff --git a/hu_HU.ISO8859-2/books/handbook/jails/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/jails/chapter.sgml
index c0985969b3..2fc0798ec9 100644
--- a/hu_HU.ISO8859-2/books/handbook/jails/chapter.sgml
+++ b/hu_HU.ISO8859-2/books/handbook/jails/chapter.sgml
@@ -1,1321 +1,1315 @@
MatteoRiondatoÍrta: A jail alrendszerjailÁttekintésEz a fejezet a &os;-ben található jail
alrendszert, valamint annak használatát mutatja be
közelebbrõl. Az jail, melyet gyakran csak úgy
emlegetnek, mint a chroot környezetek
továbbfejlesztését, a rendszergazdák
számára ajánlott, nagyon sokoldalú
eszköz, de a haladó felhasználók is
hasznosnak találhatják.A fejezet elolvasása során
megismerjük:mi is az a jail, milyen célra
használható a &os;-ben;hogyan hozzunk létre, indítsunk el és
állítsunk le jaileket;a létrehozott jailek karbantartásainak
alapjait, a jailek belülrõl és
kívülrõl egyaránt.A jail alrendszerrõl még több hasznos
információt a következõ helyekrõl
tudhatunk meg:A &man.jail.8; man oldal. Ez tartalmazza a
jail segédprogram teljes
referenciáját — ez az a
karbantartásra használható eszköz,
amellyel el tudjuk indítani, le tudjuk
állítani és vezérelni tudjuk a
jaileket a &os;-ben.A levelezési listák és azok
archívumai. A &a.questions; archívuma és
a &a.mailman.lists;en található többi
levelezési lista rengeteg olvasnivalót tartogat
a jailekkel kapcsolatban. Mindig érdemes keresni
ezekben az archívumokban, vagy beküldeni a
kérdésünket a &a.questions.name;
levelezési listára.A jail alrendszerhez kapcsolódó
fogalmakA fejezet további részében a
következõ fogalmakat fogjuk használni, hogy a
&os; jailekhez tartozó egyes részeit és azok
belsõ mûködését, valamint
kapcsolatukat a rendszer többi részével
még inkább érthetõvé
tegyük:&man.chroot.8; (parancs)Egy segédprogram, amely a &os; &man.chroot.2;
rendszerhívásán keresztül egy
program és annak leszármazottjainak
futtatásához megváltoztatja a rendszer
gyökérkönyvtárát (change
root).&man.chroot.2; (környezet)A chroot módban futó
programok környezete. Olyan erõforrásokat
foglal magában, mint mondjuk az
állományrendszer látható
része, az elérhetõ
felhasználói és csoport
azonosítók, hálózati
csatolók és egyéb folyamatok közti
kommunikációs mechanizmusok stb.&man.jail.8; (parancs)Az a rendszerkarbantartó segédprogram,
amely lehetõvé teszi program
elindítását elzárt
környezetben.befogadó (rendszer, program,
felhasználó stb.)Az elzárt környezetet
irányító rendszer. A befogadó
rendszer hozzá tud férni az összes
elérhetõ hardveres erõforráshoz,
képes az elzárt környezeten
kívül és belül futó
programokat vezérelni. Az egyik legfontosabb
különbség a befogadó és az
elzárt rendszer között, hogy azok a
korlátozások, amelyek az elzárt
környezetben rendszeradminisztrátori jogokkal
futó programokra vonatkoznak, nem
feltétlenül érvényesek a
befogadó rendszerben futóakra.befogadott (rendszer, program, felhasználó
stb.)Olyan program, felhasználó vagy más
egyéb egyed, amely csak egy jailen keresztül,
korlátozottan tud hozzáférni az
erõforrásokhoz.BevezetésMivel a rendszeradminisztráció egy nehéz
és zavarba ejtõ feladat, rengeteg komoly eszköz
jött létre a rendszergazdák
életének megkönnyítésére.
Ezek az eszközök többnyire a rendszerek
telepítését,
beállítását és
karbantartását igyekeznek valamilyen módon
jobbá tenni. A rendszergazdák egyik feladata
úgy gondoskodni a biztonságról, hogy
közben a rendszer képes legyen ellátni eredeti
feladatát.A &os; rendszerek biztonságosságának
növelését hivatott egyik ilyen eszköz a
jails. Elõször a &os; 4.X
verziójában bukkant fel, de jelentõs
fejlõdésen ment keresztül a &os; 5.X
verziókban, aminek köszönhetõen sokkal
erõteljesebb és rugalmasabb alrendszerré
vált. A fejlesztése természetesen most is
folytatódik tovább, állandóan
fejlõdik a használhatósága,
teljesítménye, megbízhatósága
és biztonságossága.Mi is az a jail?A BSD-szerû operációs rendszerekben
már a 4.2BSD óta megtalálható volt a
&man.chroot.2;. A &man.chroot.8; segédprogrammal meg
tudjuk megváltoztatni adott programok
számára a
gyökérkönyvtárat, és ezzel egy
biztonságos környezetet teremteni, távol a
rendszer többi részétõl. A chroot-tal
kialakított környezetben elinduló programok
nem tudnak hozzáférni a rajta kívül
található állományokhoz és
erõforrásokhoz. Ennek okán, ha egy ilyen
környezetben futó szolgáltatást
megtámadnak, az önmagában még nem
teszi lehetõvé a támadó
számára, hogy elérhesse az egész
rendszert. A &man.chroot.8; remekül
használható olyan egyszerûbb feladatok
megoldására, amelyek nem igényelnek
túlságosan sok rugalmasságot vagy bonyolult
és fejlett támogatást. A chroot
ötletének felmerülése óta azonban
számos kiskaput találtak már az
általa létrehozott környezetekben, és
habár ezek mindegyikét javították a
&os; újabb változataiban, teljesen
egyértelmûvé vált, hogy a
&man.chroot.2; nem biztosít járható utat a
szolgáltatások biztonságossá
tételéhez. Erre a feladatra egy új
alrendszert kellett kiépíteni.Ez az egyik oka annak, amiért az
jaileket kifejlesztették.A jailek által képviselt elzárás
ötlete több szempontból is a hagyományos
&man.chroot.2; környezet elvén alapszik. Egy
hagyományos &man.chroot.2; környezetben futó
programok korlátozása csupán abban
merül ki, hogy az állományrendszer melyik
részét láthatják. A rendszer
többi erõforrása (mint mondjuk a
felhasználók, futó programok vagy a
hálózati alrendszer) azonban továbbra is
megosztva marad a chroot környezetben és a
befogadó rendszerben futó programok
között. A jailek által alkalmazott
megoldás kibõvíti ezt a modellt, és
nem csak az állományrendszerre vonatkozó
hozzáférést virtualizálja, hanem
több más dolog mellett kiterjeszti ezt a
felhasználókra és a &os;
hálózati alrendszerére is. Az
elzárt környezetek
beállításaihoz elérhetõ
finomhangolási lehetõségekrõl
bõvebben a ban esik
szó.A jaileket az alább négy elem írja
le:A könyvtárszerkezet egy
részfája — attól a
résztõl indulva, ahonnan a jail kezdõdik.
A jailen belül futó programok nem
léphetnek ki ebbõl a
részfából. Az eredeti &man.chroot.2;
kialakításában merengõ
biztonsági hibák lehetõségei nem
veszélyeztetik a többi &os; jailt.A rendszer neve — a név, amelyet a jailen
belül használunk. Mivel a jaileket
elsõsorban hálózati
szolgáltatások kordában
tartására használjuk, a jailekhez
tartozó beszédes rendszernevek sokat tudnak
segíteni a rendszergazdák
munkájában.Egy IP-cím — a jailhez
tartozik és nem változtatható meg a
mûködése során. Egy jail
IP-címe általában egy már
létezõ hálózati csatoló
másik címe, de ez nem
szükségszerûen igaz minden esetben.Egy parancs — annak a programnak az
elérési útja, amelyet elzártan
kívánunk futtatni. Az elzárt
környezet gyökerétõl mérve
relatívan adjuk meg, és az adott
környezet típusától
függõen eltérõ lehet.Ezektõl eltekintve a jailek rendelkezhetnek
saját felhasználókkal és lehetnek
saját root
felhasználóik is. Természetesen a
root hatásköre csak az
elzárt környezetre korlátozódik,
és a befogadó rendszer
szemszögébõl az elzárt
root nem mindenható.
Ráadásul az elzárt
root felhasználó nem hajthat
végre semmilyen kritikus mûveletet a saját
&man.jail.8; környezetén kívül. A
root további
képességeirõl és
korlátozásairól lentiekben bõvebben is
említést teszünk a ban.A jailek létrehozása és
vezérléseEgyes rendszergazdák a jaileket a következõ
két típusba sorolják: teljes
jail, mely egy valódi &os; rendszerre emlékeztet,
és a szolgáltatás jail, mely
egyetlen, feltehetõen kiemelt jogokkal futó
alkalmazás vagy szolgáltatás
számára van elõkészítve. Ez a
besorolás csupán fogalmi szintû, a jail
felépítésének módját nem
befolyásolja. A &man.jail.8; man oldal részletesen
ismerteti a jailek létrehozását:&prompt.root; setenv D /itt/lesz/a/jail
&prompt.root; mkdir -p $D
&prompt.root; cd /usr/src
&prompt.root; make buildworld
&prompt.root; make installworld DESTDIR=$D
-&prompt.root; cd etc/
-
- Ez a lépés nem szükséges a
- &os; 6.0-ás vagy annál újabb
- verziójában.
-
&prompt.root; make distribution DESTDIR=$D
&prompt.root; mount -t devfs devfs $D/devÉrdemes elõször a jail helyét
megválasztani. Itt fog fizikailag helyet foglalni a
befogadó rendszer
állományrendszerén belül a jail.
Jó választás lehet erre a /usr/jail/jailnév,
ahol a jailnév a jailt
azonosító rendszernév. A /usr/
állományrendszeren általában
elegendõ hely jut a jail
állományrendszerének, ami egy
teljes jail esetén
lényegében a &os; alaprendszer
alapértelmezett telepítésében
megtalálható összes állomány
másolatát tartalmazza.Ha korábban már a make
world vagy a make buildworld
parancs segítségével
újrafordítottuk az alaprendszert, akkor ezt a
lépést ki is hagyhatjuk és
telepítsük az új alaprendszert
közvetlenül az új jailbe.Ez a parancs fogja felmásolni a jail fizikai
helyének választott
könyvtár-részfába a
mûködéshez szükséges programokat,
függvénykönyvtárakat, man oldalakat
és így tovább.A make
paramétereként megadott
distribution cél gondoskodik
az összes szükséges
konfigurációs állomány
felmásolásáról. Magyarán
szólva, átmásolja az összes
telepíhetõ állományt a /usr/src/etc/
könyvtárból a jail /etc
alkönyvtárába, vagyis a $D/etc/
könyvtárba.A jaileken belül a &man.devfs.8;
csatlakoztatása nem kötelezõ.
Másrészt azonban majdnem mindegyik
alkalmazás, a feladatától
függõen, legalább egy eszközhöz
hozzá akar férni. Nagyon fontos, hogy a
kezünkbe vegyük a eszközök
hozzáférésének
irányítását a jaileken belül,
mivel a helytelen beállítások
révén a támadók csúnya
dolgokat tudnak majd mûvelni. A &man.devfs.8;
mûködését a &man.devfs.8; és
&man.devfs.conf.5; man oldalakon is ismertetett
szabályrendszerek
irányítják.Ahogy a jailt telepítettük, a &man.jail.8;
segédprogrammal tudjuk elindítani. A &man.jail.8;
négy kötelezõ paramétert vár,
melyekre a ban ki is
térünk. Más paramétereket is
megadhatunk, például azt, hogy az elzárt
program egy adott felhasználó jogaival fusson. A
paraméter használata a jail
típusától függ: egy
virtuális rendszer esetében a
/etc/rc jó választásnak
bizonyulhat, mivel ennek segítségével egy
valódi &os; rendszerindítási
folyamatát játszhatjuk le. Amennyiben elzárt
szolgáltatásról van
szól, az adott szolgáltatástól vagy
alkalmazástól függ.A jaileket gyakran már a rendszerindítás
során elindítják, amit a &os;
rc mechanizmusa nagyban meg is
könnyít.A rendszer indítása során
aktiválandó jailek listáját
vegyük hozzá a &man.rc.conf.5;
állományhoz:jail_enable="YES" # Ide NO-t írjunk, ha ki akarjuk kapcsolni
jail_list="www" # Szóközzel elválasztva soroljuk fel a jaileketA jail_list-ben szereplõ
összes jailt meg kell adnunk az ezeket
leíró &man.rc.conf.5;-beli
beállításokat:jail_www_rootdir="/usr/jail/www" # a jail gyökérkönyvtára
jail_www_hostname="www.example.org" # a jail neve
jail_www_ip="192.168.0.10" # a jail IP-címe
jail_www_devfs_enable="YES" # legyen-e devfs a jailen belül
jail_www_devfs_ruleset="www_ruleset" # az alkalmazott devfs szabályrendszerAz &man.rc.conf.5; állományban szereplõ
jailek esetén a /etc/rc szkript
fut le, tehát feltételezi, hogy az így
megadott jail egy teljes virtuális rendszer. A
szolgáltatások jailbe foglalásához
meg kell változtatnunk a jail alapértelmezett
parancsát is. Ezt a
jail_jailnév_exec_start
opció megfelelõ
beállításával tudjuk
megtenni.Az összes itt elérhetõ opciót a
&man.rc.conf.5; man oldalon találhatjuk meg.Ha léteznek a megfelelõ bejegyzések az
rc.conf állományban, akkor az
/etc/rc.d/jail szkript is
használható arra, hogy a jaileket kézzel
indítsuk el vagy állítsuk le:&prompt.root; /etc/rc.d/jail start www
&prompt.root; /etc/rc.d/jail stop wwwA &man.jail.8; leállítására jelen
pillanatban még nem érhetõ el szabályos
módszer. Ez azért van, mert a szabályos
rendszerleállítást elvégzõ
parancsok nem használhatóak a jailen belül.
Emiatt a jaileket a legtisztábban úgy tudjuk
leállítani, ha kiadjuk az alábbi parancsot
magában a jailben vagy pedig a &man.jexec.8;
segédprogrammal a jailen kívülrõl:&prompt.root; sh /etc/rc.shutdownErrõl a témáról többet a
&man.jail.8; man oldalon olvashatunk.Finomhangolás és karbantartásSzámos opció állítható be a
jaileknél, és sokféle módon
vegyíthetjük a befogadó &os; rendszerünket
a jailekkel, ami által magasabb szintû
alkalmazásokat hozhatunk létre. Ebben a
részben bemutatunk:Néhány olyan
beállítást, amellyel finomhangolhatjuk a
telepített jailek által
megvalósított biztonsági
megszorítások viselkedését.A jailek kezelésére alkalmas
néhány olyan magasabb szintû
alkalmazást, amelyek elérhetõek a &os;
Portgyûjteményén keresztül, és
általános jail alapú megoldások
kialakításához
használhatóak.A &os;-ben található finomhangoló
eszközökA jailek beállításainak
finomhangolását túlnyomórészt
&man.sysctl.8; változókkal végezhetjük
el. A sysctl-en belül egy speciális
részfában találhatunk erre alkalmas
beállításokat: ez a a &os; rendszermag
opciói között megtalálható
security.jail.*. Itt közüljük
a jailekre vonatkozó fontosabb sysctl
változók listáját, az
alapértelmezett értékeikkel együtt. A
nevek minden bizonnyal sokat elárulnak, de ha többet
szeretnénk tudni róluk, lapozzuk fel a
&man.jail.8; és &man.sysctl.8; man oldalakat.security.jail.set_hostname_allowed:
1security.jail.socket_unixiproute_only:
1security.jail.sysvipc_allowed:
0security.jail.enforce_statfs:
2security.jail.allow_raw_sockets:
0security.jail.chflags_allowed:
0security.jail.jailed: 0Ezekkel a változókkal a
befogadó rendszer
rendszergazdája tud hozzátenni vagy elvenni a
root felhasználó
alapértelmezett határaihoz. Vegyük azonban
észre, hogy egyes korlátozások azonban
semmiképpen sem szüntethetõek meg. A
root nem csatlakoztathat és
választhat le állományrendszereket a
&man.jail.8; környezetben. Az elzárt
root nem tölthet be és
törölhet &man.devfs.8; szabályrendszereket,
tûzfal szabályokat sem, ill. nem végezhet
semmilyen olyan bármilyen más karbantartási
feladatot, amely a rendszermag adataiban
módosítást vonna maga után,
például nem állíthatja a rendszermag
securelevel (biztonsági
szintjének) értékét.A &os; alaprendszere tartalmazza azokat a
segédeszközöket, amelyekkel a rendszerben
aktív jailek információt tudjuk
megjeleníteni, vagy csatlakozni tudunk hozzájuk.
A &man.jls.8; és &man.jexec.8; parancsok részei az
alap &os; rendszernek, segítségükkel
elvégezhetõek az alábbi egyszerû
feladatokat:Ki tudjuk íratni az aktív jailek és
hozzájuk tartozó azonosítókat
(JID-eket),
IP-címeket, neveket és
útvonalakat.A befogadó rendszerbõl hozzá tudunk
csatlakozni egy futó jailhez, és parancsokat
tudunk futtatni a jailen belül vagy
karbantartási feladatokat tudunk elvégezni
magán a jailen belül. Ez
különösen hasznosnak bizonyulhat, amikor a
root felhasználó
szabályosan le akarja állítani a jailt.
A &man.jexec.8; segédprogrammal el tudunk
indítani egy parancsértelmezõt a jailen
belül, amibõl aztán
irányíthatjuk. Példa:&prompt.root; jexec 1 tcshMagasszintû karbantartó eszközök a
&os; PortgyûjteményébenA sok külsõ karbantartó eszköz
közül az egyik legteljesebb és leghasznosabb a
sysutils/jailutils. Sok
kisebb alkalmazást tartalmaz, melyek
kibõvítik a &man.jail.8;
irányíthatóságát.
Bõvebb információkért
kérjük, látogassa meg a
hozzátartozó honlapot.A jailek alkalmazásaDanielGerzoÍrta: Szolgáltatások jailbe
foglalásaEz a rész eredetileg &a.simon; oldalon
található írásán, valamint
Ken Tom (locals@gmail.com) átdolgozott
cikkén alapul. Itt megismerhetjük, hogyan
állítsunk be a &os; rendszerünkben egy
biztonsági réteget a &man.jail.8;
felhasználásával. Továbbá
feltételezzük, hogy ez a rendszer legalább
RELENG_6_0 verziójú és a fejezetben
korábban tárgyaltakat az olvasó teljes
mértékben megértette.A kialakításA jailek egyik legnagyobb gondja a frissítés
folyamatának lebonyolítása. Azért
jelent ez egyre inkább gondot, mert minden egyes jailt
újra fel kell építenünk a
frissítése során. Ez többnyire nem
okoz gondot egyetlen jail használata során,
mivel maga a frissítési folyamat
meglehetõsen egyszerû, azonban igen
idõigényessé és
fárasztóvá tud válni több
jail esetében.Ez a példa a &os; képességeinek
haladó szintû ismeretét követeli
meg. Amennyiben az itt bemutatott lépesek
túlságosan is bonyolultnak
tûnnének, érdemes olyan egyszerûbb
rendszerek után nézni, mint mondjuk a
sysutils/ezjail, amely
egy egyszerûbb módszert kínál fel
a &os;-ben használt jailek
karbantartására, és nem is annyira
bonyolult, mint ez a példa.A bemutatandó példa célja, hogy
feloldja az ilyen jellegû problémákat,
és ezért igyekszik a jailek között
mindent megosztani, ami csak lehetséges. Mindezt
biztonságosan éri el —
írásvédett &man.mount.nullfs.8;
állományrendszer használatával,
aminek köszönhetõen a frissítés
maga egyszerûbbé, az egyes
szolgáltatások
különzárása pedig
vonzóbbá válik. Ráadásul
egyúttal egy nagyon egyszerû módszert mutat
az új jailek hozzáadására
és a régi törlésére
ugyanúgy, mint a
frissítésükre.Például ilyen
szolgáltatásokat kívánunk
szabályozni: egy HTTP szervert,
egy DNS szervert, egy
SMTP szervert és így
tovább.Az itt szereplõ beállítás
céljai:Készítsünk egy egyszerûen
és könnyen átlátható
jailkezelési rendszert. Ebbõl tehát
következik, hogy ne kelljen
lefuttatni a teljes rendszer
telepítését minden egyes
jailre.Könnyítsük meg az új jailek
hozzáadását és a régiek
eltávolítását.Könnyítsük meg a már
létezõ jailek frissítését
és cseréjét.Tegyük lehetõvé saját &os;
ágak futtatását.Legyünk különösen
körültekintõek a biztonság
tekintetében, és igyekezzünk
minél jobban csökkenteni veszély
kockázatát.Takarékoskodjunk a tárhellyel és
az állományrendszerrel, amennyire csak
lehet.Ahogy azt már korábban is
említettük, ez a kialakítás nagyban
építkezik egyetlen fõ sablonra, amely
írásvédetten kerül
csatlakoztatásra (nullfsen
keresztül) az egyes jailekben, valamint jailenként
egy-egy írható-olvasható eszközre.
Ez az eszköz lehet egy külön fizikai lemez, egy
partíció vagy egy vnode alapú &man.md.4;
eszköz. Ebben a példában
írható-olvasható
nullfs csatlakozásokat
használunk.Az állományrendszer kiosztása a most
következõ listában szerepel:Minden jailt a /home/j
könyvtárban csatlakoztatunk.A /home/j/mroot
lesz az összes jail sablonja és
mindegyikük számára
írásvédett.Minden jailnek létrehozunk egy üres
alkönyvtárat a /home/j
könyvtárban.Minden jailnek lesz egy /s alkönyvtára,
amelyet a rendszer írható-olvasható
részére irányítunk.Minden jailnek lesz egy saját
írható-olvasható része, amely
a /home/j/skel
könyvtáron alapszik.Mindegyik elzárt terület (a jailek
írható-olvasható része) a
/home/js
könyvtárban jön létre.Ez a kiosztás feltételezi, hogy a jaileket
a /home
partíción hozzuk létre. Ez
természetesen bármi másra
megváltoztatható, de akkor figyelnünk
kell erre minden egyes parancs kiadása
elõtt.A sablon létrehozásaEz a rész leírja a fõ sablon
létrehozásához szükséges
lépéseket. Ez a jailek számára
írásvédett lesz.Érdemes mindig frissíteni a &os;
rendszerünket a legújabb -RELEASE ágra.
Ehhez olvassuk el az ide tartozó fejezetet a
kézikönyvbõl. Abban az esetben, ha a
frissítés nem lenne megoldható, egy
make buildworld parancsot
mindenképpen le kell tudnunk futtatni. Ezenfelül
a sysutils/cpdup csomagra
is szükségünk van. Használni fogjuk a
&man.portsnap.8; segédprogramot is a &os;
Portgyûjtemény letöltéséhez.
Akik nem ismernék, a kézikönyv errõl
szóló fejezetében olvashatnak
róla.Elõször is, készítsük el
az írásvédett
állományrendszer
könyvtárszerkezetét, amely majd
tartalmazni fogja a jailek által használt
&os;-s programokat. Ezután lépjünk be
a &os; forrásfájának
könyvtárába és
telepítsük fel az
írásvédett
állományrendszert a sablonba:&prompt.root; mkdir /home/j /home/j/mroot
&prompt.root; cd /usr/src
&prompt.root; make installworld DESTDIR=/home/j/mrootEzt követõen készítsük
elõ a jailek számára a &os;
Portgyûjteményt és &os;
forrásfát, melyek kellenek a
mergemaster
használatához:&prompt.root; cd /home/j/mroot
&prompt.root; mkdir usr/ports
&prompt.root; portsnap -p /home/j/mroot/usr/ports fetch extract
&prompt.root; cpdup /usr/src /home/j/mroot/usr/srcHozzuk létre a rendszer
írásvédett részének
vázát:&prompt.root; mkdir /home/j/skel /home/j/skel/home /home/j/skel/usr-X11R6 /home/j/skel/distfiles
&prompt.root; mv etc /home/j/skel
&prompt.root; mv usr/local /home/j/skel/usr-local
&prompt.root; mv tmp /home/j/skel
&prompt.root; mv var /home/j/skel
&prompt.root; mv root /home/j/skelHasználjuk a
mergemastert a
hiányzó konfigurációs
állományok
telepítésére. Szabaduljunk meg a
mergemaster által
készített felesleges
könyvtáraktól:&prompt.root; mergemaster -t /home/j/skel/var/tmp/temproot -D /home/j/skel -i
&prompt.root; cd /home/j/skel
&prompt.root; rm -R bin boot lib libexec mnt proc rescue sbin sys usr devMost pedig szimbolikusan linkeljük az
írható-olvasható
állományrendszert az
írásvédett
állományrendszerre. Ellenõrizzük,
hogy a szimbolikus linkek a megfelelõ s/ könyvtárakban
jöttek létre. Valós vagy rossz helyen
létrehozott könyvtárak
használata esetén a telepítés
nem fog sikerülni.&prompt.root; cd /home/j/mroot
&prompt.root; mkdir s
&prompt.root; ln -s s/etc etc
&prompt.root; ln -s s/home home
&prompt.root; ln -s s/root root
&prompt.root; ln -s ../s/usr-local usr/local
&prompt.root; ln -s ../s/usr-X11R6 usr/X11R6
&prompt.root; ln -s ../../s/distfiles usr/ports/distfiles
&prompt.root; ln -s s/tmp tmp
&prompt.root; ln -s s/var varUtolsó lépésként hozzunk
létre egy
/home/j/skel/etc/make.conf
állományt az alábbi
tartalommal:WRKDIRPREFIX?= /s/portbuildA WRKDIRPREFIX
beállításával
lehetõvé válik a &os; portok jaileken
belüli fordítása. Ne felejtsük
el, hogy a portokat tartalmazó könyvtár
az írásvédett rendszer része!
Az átállított
WRKDIRPREFIX azonban megengedi, hogy a
fordítások az egyes jailek
írható-olvasható részeiben
történjenek.A jailek létrehozásaMost, miután teljesen elkészült a &os;
jailek sablonja, be is tudjuk állítani és
hozzá is tudjuk venni ezeket az
/etc/rc.conf állományhoz.
Ebben a példában 3 jail
létrehozását láthatjuk:
NS, MAIL és
WWW.Írjuk bele a következõ sorokat az
/etc/fstab állományba,
aminek köszönhetõen az egyes jailek
számára elérhetõvé
válik az írásvédett sablon
és a hozzájuk tartozó
írható-olvasható
területek:/home/j/mroot /home/j/ns nullfs ro 0 0
/home/j/mroot /home/j/mail nullfs ro 0 0
/home/j/mroot /home/j/www nullfs ro 0 0
/home/js/ns /home/j/ns/s nullfs rw 0 0
/home/js/mail /home/j/mail/s nullfs rw 0 0
/home/js/www /home/j/www/s nullfs rw 0 0Az elsõ helyen nullával jelölt
partíciókat a &man.fsck.8; nem fogja
ellenõrizni a rendszer indulása
során, a második helyen nullával
jelölt partíciókat pedig nem fogja
menteni a &man.dump.8;. Mi egyáltalán nem
akarjuk, hogy az fsck
ellenõrizze vagy a dump
lementse a jailjeinkhez tartozó
írásvédett
nullfs-partícióinkat.
Ezért szerepel végig
0 0 a fentebb szereplõ
fstab-bejegyzések
utolsó két oszlopában.Állítsuk be a jaileket az
/etc/rc.conf-ban:jail_enable="YES"
jail_set_hostname_allow="NO"
jail_list="ns mail www"
jail_ns_hostname="ns.example.org"
jail_ns_ip="192.168.3.17"
jail_ns_rootdir="/usr/home/j/ns"
jail_ns_devfs_enable="YES"
jail_mail_hostname="mail.example.org"
jail_mail_ip="192.168.3.18"
jail_mail_rootdir="/usr/home/j/mail"
jail_mail_devfs_enable="YES"
jail_www_hostname="www.example.org"
jail_www_ip="62.123.43.14"
jail_www_rootdir="/usr/home/j/www"
jail_www_devfs_enable="YES"Azért állítottuk a
jail_név_rootdir
változó értékét a
/usr/home
könyvtárra a /home könyvtár
helyett, mert a &os;
alaptelepítésében a /home könyvtár
fizikailag a /usr/home
könyvtárral egyezik meg. A
jail_név_rootdir
változó értékeként
megadott könyvtár nem
tartalmazhat szimbolikus linket,
máskülönben a jailek nem lesznek
hajlandóak létrejönni. Ennek
megállapításában a
&man.realpath.1; segédprogram lehet
segítségünkre. A
korlátozás részleteirõl a
&os;-SA-07:01.jail biztonsági
figyelmeztetésben olvashatunk.Hozzuk létre az egyes jailek
írásvédett
állományrendszereihez szükséges
csatlakozási pontokat:&prompt.root; mkdir /home/j/ns /home/j/mail /home/j/wwwTelepítsük az
írható-olvasható sablont az egyes
jailekbe. Figyeljük meg a sysutils/cpdup
használatát, amellyel az egyes
könyvtárak pontos másolatait hozhatjuk
létre:&prompt.root; mkdir /home/js
&prompt.root; cpdup /home/j/skel /home/js/ns
&prompt.root; cpdup /home/j/skel /home/js/mail
&prompt.root; cpdup /home/j/skel /home/js/wwwEbben a fázisban a jailek már
elkészültek és készen
állnak a futásra. Elõször
csatlakoztassuk az egyes jailekhez szükséges
állományrendszereket, majd indítsuk
el ezeket a /etc/rc.d/jail
szkripttel:&prompt.root; mount -a
&prompt.root; /etc/rc.d/jail startA jailek most már futnak. Az elindulásuk
ellenõrzéséhez használjuk a
&man.jls.8; parancsot. Valami ilyesmit láthatunk a
kiadása után:&prompt.root; jls
JID IP Address Hostname Path
3 192.168.3.17 ns.example.org /home/j/ns
2 192.168.3.18 mail.example.org /home/j/mail
1 62.123.43.14 www.example.org /home/j/wwwItt már be tudunk jelentkezni az egyes jailekbe,
új felhasználókat tudunk
készíteni vagy démonokat tudunk
beállítani. A JID oszlop
mutatja az egyes jailek azonosítási
számát. A 3-as JID
számú jailben az alábbi parancs
használatával karbantartási feladatokat
elvégezni:&prompt.root; jexec 3 tcshFrissítésIdõrõl idõre adódhat, hogy
frissítenünk kell a rendszert a &os; egy
újabb változatára, vagy egy
biztonsági hiba javítása miatt, vagy
pedig a már meglevõ jailek számára
hasznos újítások bevezetése miatt.
Ez a kialakítás megkönnyíti a
korábban létrehozott jailjeink
frissítését. Továbbá
igyekszik minimalizálni a kiesésüket is,
mivel a jaileket csak a legutolsó pillanatban fogjuk
leállítani. Sõt, még az is
lehetõvé válik, hogy
visszaállítsuk a korábbi verziót,
ha véletlenül valami rosszul sülne el
menetközben.Elsõ lépéseként
frissítsük magát a befogadó
rendszert a megszokott módon. Ezután
hozzunk létre egy új
írásvédett sablont a /home/j/mroot2
könyvtárban.&prompt.root; mkdir /home/j/mroot2
&prompt.root; cd /usr/src
&prompt.root; make installworld DESTDIR=/home/j/mroot2
&prompt.root; cd /home/j/mroot2
&prompt.root; cpdup /usr/src usr/src
&prompt.root; mkdir sA installworld
lefuttatása létrehoz néhány
felesleges könyvtárat, melyeket
takarítsunk is el:&prompt.root; chflags -R 0 var
&prompt.root; rm -R etc var root usr/local tmpHozzuk újra létre az
írható-olvasható szimbolikus
linkjeinket a fõ
állományrendszerre:&prompt.root; ln -s s/etc etc
&prompt.root; ln -s s/root root
&prompt.root; ln -s s/home home
&prompt.root; ln -s ../s/usr-local usr/local
&prompt.root; ln -s ../s/usr-X11R6 usr/X11R6
&prompt.root; ln -s s/tmp tmp
&prompt.root; ln -s s/var varMost érkezett el az idõ, hogy
leállítsuk a jaileket:&prompt.root; /etc/rc.d/jail stopVálasszuk le az eredeti
állományrendszereket:&prompt.root; umount /home/j/ns/s
&prompt.root; umount /home/j/ns
&prompt.root; umount /home/j/mail/s
&prompt.root; umount /home/j/mail
&prompt.root; umount /home/j/www/s
&prompt.root; umount /home/j/wwwAz írható-olvasható
állományrendszerek hozzá vannak
kapcsolva az írásvédett
állományrendszerhez (/s), ezért azokat
elõször le kell választani.Mozgassuk el az útból a régi
írásvédett
állományrendszerünket és
váltsuk fel az újjal. Így
biztonsági mentésként és a
régi írásvédett rendszer
archívumaként továbbra is
rendelkezésre áll, ha valami baj
történne. Az itt használt
elnevezés az újonnan létrehozott
írásvédett
állományrendszer
dátumából ered. Mozgassuk át
az eredeti &os; Portgyûjteményt az új
állományrendszerre, hogy
megtakarítsunk némi tárhelyet
és
állományleírót:&prompt.root; cd /home/j
&prompt.root; mv mroot mroot.20060601
&prompt.root; mv mroot2 mroot
&prompt.root; mv mroot.20060601/usr/ports mroot/usrMost már készen áll az új
írásvédett sablon, így
már csak az állományrendszerek
újracsatlakoztatása és a jailek
újraindítása maradt:&prompt.root; mount -a
&prompt.root; /etc/rc.d/jail startA &man.jls.8; használatával
ellenõrizzük, hogy a jailek rendesen elindultak. Ne
felejtsük el jailenként lefuttatni a mergemastert
sem. A konfigurációs állományokat
és az rc.d szkripteket is frissítenünk kell
majd.
diff --git a/hu_HU.ISO8859-2/books/handbook/mirrors/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/mirrors/chapter.sgml
index 56edf9f8b5..9f480615e2 100644
--- a/hu_HU.ISO8859-2/books/handbook/mirrors/chapter.sgml
+++ b/hu_HU.ISO8859-2/books/handbook/mirrors/chapter.sgml
@@ -1,3943 +1,3948 @@
A &os; beszerzéseCD és DVD kiadókKiskereskedelmi dobozos termékekA &os; beszerezhetõ számos
kiskereskedõtõl dobozos termék
formájában is (&os; CD-k, egyéb szoftverek
és nyomtatott dokumentáció):CompUSA
WWW: Frys Electronics
WWW: CD- és DVD-készletek&os; CD- és DVD-készletek rengeteg
helyrõl rendelhetõek:&os; Mall, Inc.700 Harvest Park Ste FBrentwood, CA94513Egyesült Államok
Telefon: +1 925 240-6652
Fax: +1 925 674-0821
e-mail: info@freebsdmall.com
WWW: Dr. Hinner EDVSt. Augustinus-Str. 10D-81825MünchenNémetország
Telefon: (089) 428 419
WWW: Ikarios22-24 rue Voltaire92000NanterreFranciaország
WWW: JMC SoftwareÍrország
Telefon: 353 1 6291282
WWW: The Linux EmporiumHilliard House, Lester WayWallingfordOX10 9TAEgyesült Királyság
Telefon: +44 1491 837010
Fax: +44 1491 837016
WWW: Linux+ DVD MagazineLewartowskiego 6Warsaw00-190Lengyelország
Telefon: +48 22 860 18 18
e-mail: editors@lpmagazine.org
WWW: Linux System Labs Australia21 Ray DriveBalwyn NorthVIC - 3104Ausztrália
Telefon: +61 3 9857 5918
Fax: +61 3 9857 8974
WWW: LinuxCenter.RuGalernaya utca, 55Szentpétervár190000Oroszország
Telefon: +7-812-3125208
e-mail: info@linuxcenter.ru
WWW: TerjesztõkHa viszonteladók vagyunk és szeretnénk
CD-s &os; termékeket forgalmazni, akkor az alábbi
terjesztõk valamelyikével vegyük fel a
kapcsolatot:Cylogistics809B Cuesta Dr., #2149Mountain View, CA94040Egyesült Államok
Telefon: +1 650 694-4949
Fax: +1 650 694-4953
e-mail: sales@cylogistics.com
WWW: Ingram Micro1600 E. St. Andrew PlaceSanta Ana, CA92705-4926Egyesült Államok
Telefon: 1 (800) 456-8000
WWW: Kudzu, LLC7375 Washington Ave. S.Edina, MN55439Egyesült Államok
Telefon: +1 952 947-0822
Fax: +1 952 947-0876
e-mail: sales@kudzuenterprises.comLinuxCenter.KzUszty-KamenogorszkKazahsztán
Telefon: +7-705-501-6001
e-mail: info@linuxcenter.kz
WWW: LinuxCenter.RuGalernaya utca, 55Szentpétervár190000Oroszország
Telefon: +7-812-3125208
e-mail: info@linuxcenter.ru
WWW: Navarre Corp7400 49th Ave SouthNew Hope, MN55428Egyesült Államok
Telefon: +1 763 535-8333
Fax: +1 763 535-0341
WWW: FTP oldalakA &os; hivatalos forrásai anonim FTP-n keresztül
is elérhetõek különféle
tükrözésekrõl. Az oldal ugyan
jó minõségû kapcsolattal rendelkezik
és rengeteg felhasználót is enged
egyidejûleg kapcsolódni, azonban
valószínûleg jobban járunk, ha egy
hozzánk közelebbi
tükrözést választunk
(különösen abban az esetben, amikor mi magunk is
egy tükrözést akarunk
készíteni).A &os;
tükrözések adatbázisában az
itt megtalálhatónál sokkal pontosabb
leltárt kaphatunk az elérhetõ
tükrözésekrõl, mivel közvetlenül a
névfeloldás segítségével
állapítja meg a szükséges adatokat
és nem egy rögzített listát
tárol.Emellett az alábbi tükrözésekrõl
a &os; elérhetõ anonim FTP-n keresztül is.
Amennyiben az anonim FTP használata mellett
döntenénk, igyekezzünk a hozzánk
legközelebb levõ szervert használni. Az
Elsõdleges
tükrözésekként feltüntetett
oldalak általában a teljes &os; archívumot
tartalmazzák (az összes jelenleg elérhetõ
változatot az összes architektúrára), de
a környékünkön vagy országunkban
elhelyezkedõ tükörszerverekrõl többnyire
gyorsabban tudunk majd letölteni. A regionális
oldalakon gyakorta csak a népszerûbb
architektúrákon futó népszerûbb
változatokat találjuk meg, nem a teljes &os;
archívumot. Minden szerver elérhetõ anonim
FTP-vel, de közülük néhány még
további más módszereket is támogat.
Az egyes oldalak által ismert konkrét
módszereket a nevük után
zárójelben közüljük.
&chap.mirrors.ftp.inc;
BitTorrentBitTorrentAz egyes kiadásokhoz tartozó alap
CD-készletek BitTorrent segítségével is
elérhetõek. A lemezek képeire hivatkozó
torrent állományokat a
címrõl tölthetjük le.A BitTorrent kliens telepíthetõ a net-p2p/py-bittorrent portból
vagy csomagból.Miután sikeresen letöltöttük
BitTorrenten keresztül a lemezképeket, a nyújthat segítséget abban,
hogy kell ezeket lemezre írni.Anonim CVSBevezetésCVSanonimAz anonim CVS (vagy más néven
anoncvs) a &os;-hez mellékelt
CVS-es segédprogramok által nyújtott
olyan lehetõség, amivel távoli CVS
repositorykkal tudunk szinkronizálni. Több
más dolog mellett lehetõvé teszi a &os;
felhasználói számára, hogy kiemelt
jogosultságok nélkül képesek
legyenek olvasással kapcsolatos CVS mûveleteket
végrehajtani a &os; Projekt hivatalos anoncvs
szerverein. A használatához egyszerûen
csak a kiválasztott anoncvs szervert kell
beállítani a CVSROOT
környezeti változó
értékének, ahol aztán a
cvs login parancsnak a szerver által
ismert anoncvs jelszót kell megadni.
Ezután a &man.cvs.1; paranccsal a többi CVS
szerverhez hasonlóan lehetõségünk
nyílik hozzáférni.A cvs login parancs a
bejelentkezésekhez szükséges jelszavakat
a HOME könyvtárunkban levõ
.cvspass állományban
tárolja. Ha ez az állomány nem
létezik, akkor a cvs login
elsõ használatakor hibát kapunk.
Ilyenkor csak hozzunk létre egy üres
.cvspass állományt, majd
próbálkozzunk újra.Habár azt mondhatnánk, hogy a CVSup és az
anoncvs lényegében egyazon
feladatot oldják meg, mind a két esetben
léteznek olyan kompromisszumok, amelyek
befolyásolhatják a felhasználó
választását a két
szinkronizációs módszer között.
Dióhéjban ezt úgy tudnánk
összefoglalni, hogy a CVSup a
hálózati erõforrásokat
hatékonyabban kihasználja és
kettejük közül ez a fejlettebb, azonban ennek
meg kell fizetnünk az árát. A
CVSup használatához
elõször ugyanis telepítenünk kell
és be kell állítanunk egy
speciális klienst, illetve az adatokat a
CVSup által
gyûjteményeknek (collection)
nevezett, viszonylag nagy méretû
egyeségekben érhetjük el.Ezzel szemben az anoncvs
használata során a megfelelõ CVS modul
nevének felhasználásával
tetszõlegesen megvizsgálhatunk
önálló állományokat vagy
akár programokat (mint az ls vagy a
grep). Természetesen az
anoncvs
segítségével csupán az
olvasást igénylõ CVS mûveleteket
végezhetjük el, ezért ha a &os; Projekt
keretein belül fejleszteni is szeretnénk, akkor
inkább érdemes a
CVSup alkalmazást
választani.Az anonim CVS
használataA &man.cvs.1; parancsot nagyon könnyû
beállítani az anonim CVS repositoryk
használatához, hiszen mindössze annyit kell
tennünk, hogy a CVSROOT környezeti
változó értékének megadjuk
a &os; Projekt valamelyik anoncvs
szerverét. Ezen sorok írásának
pillanatában a következõ szerverek
érhetõek el:Franciaország:
:pserver:anoncvs@anoncvs.fr.FreeBSD.org:/home/ncvs
(pserver (a jelszó anoncvs), ssh
(nincs jelszó))Japán:
:pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs (a
cvs login
használatánál a jelszó
anoncvs.)Tajvan:
:pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
(pserver (a cvs login
használatával tetszõleges jelszó
megadható), ssh (nincs jelszó))SSH2 HostKey: 1024 e8:3b:29:7b:ca:9f:ac:e9:45:cb:c8:17:ae:9b:eb:55 /etc/ssh/ssh_host_dsa_key.pubEgyesült Államok:
freebsdanoncvs@anoncvs.FreeBSD.org:/home/ncvs (csak ssh
— nincs jelszó)SSH HostKey: 1024 a1:e7:46:de:fb:56:ef:05:bc:73:aa:91:09:da:f7:f4 root@sanmateo.ecn.purdue.edu
SSH2 HostKey: 1024 52:02:38:1a:2f:a8:71:d3:f5:83:93:8d:aa:00:6f:65 ssh_host_dsa_key.pubEgyesült Államok:
anoncvs@anoncvs1.FreeBSD.org:/home/ncvs (csak ssh2 —
nincs jelszó)SSH2 HostKey: 2048 53:1f:15:a3:72:5c:43:f6:44:0e:6a:e9:bb:f8:01:62 /etc/ssh/ssh_host_dsa_key.pubMivel a CVS használatával
kikérhetjük (check out)
tulajdonképpen a &os; forrásainak
akármelyik eddigi (vagy majd ezután
keletkezõ) változatát, érdemes
megismerkednünk a &man.cvs.1; által alkalmazott
revízió (revision) (az
opcióval állítható)
fogalmával és a &os; Projekt repositoryjain
belül engedélyezett
értékeivel.Címkéket (tag) két esetben
használhatunk: a revíziók és az
ágak esetén. A revíziós
címkék mindig egy adott revízióra
hivatkoznak, ami állandóan ugyanazt jelenti.
Ezzel szemben az ágak címkéi a
fejlesztés adott irányú menetének
az adott pillanatban legfrissebb
revízióját hivatkozzák. Mivel az
ágak címkéi nem egy adott
revízióra vonatkoznak, ezért elmondhatjuk
róluk, hogy naponta változik a
jelentésük.Az tartalmazza a
felhasználók számára fontos
revíziós címkéket. Ezek azonban
nem igazak a Portgyûjteményre, mivel a
Portgyûjteménynek nincs egyszerre több
fejlesztési iránya.Egy ág címkéjének
megadásával általában az adott
irányhoz tartozó állományok
legfrissebb változatát kapjuk meg. Ha viszont
az állományok egy korábbi
változatára lenne szükségünk,
akkor a opció
megadásával meg tudjuk adni annak
idõpontját. Errõl részletesebben a
&man.cvs.1; man oldalán olvashatunk.PéldákHabár a továbbhaladáshoz
mindenképpen javasoljuk a &man.cvs.1; man
oldalának részletes
áttanulmányozását, mutatunk
néhány gyors példát az anonim CVS
használatának tömör
illusztrálására:Valami (az &man.ls.1;) kikérése a
-CURRENT ágból&prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
&prompt.user; cvs loginJelszókéntezután bármit megadhatunk.
&prompt.user; cvs co lsAz src/ fa kikérése
SSH-n keresztül&prompt.user; cvs -d freebsdanoncvs@anoncvs.FreeBSD.org:/home/ncvs co src
The authenticity of host 'anoncvs.freebsd.org (128.46.156.46)' can't be established.
DSA key fingerprint is 52:02:38:1a:2f:a8:71:d3:f5:83:93:8d:aa:00:6f:65.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known hosts.Az &man.ls.1; 6-STABLE ágban szereplõ
változatának kikérése&prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
&prompt.user; cvs loginAmikor kéri, jelszókéntbármit megadhatunk.
&prompt.user; cvs co -rRELENG_6 lsAz &man.ls.1; változásainak (Unified Diff
formátumú) listázása&prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
&prompt.user; cvs loginIttjelszókéntbármit megadhatunk.
&prompt.user; cvs rdiff -u -rRELENG_5_3_0_RELEASE -rRELENG_5_4_0_RELEASE lsA használható modulok nevének
kiderítése&prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
&prompt.user; cvs loginEzután jelszókéntbármit megadhatunk.
&prompt.user; cvs co modules
&prompt.user; more modules/modulesEgyéb helyekA következõ helyeken találhatunk
még hasznos információkat a CVS
használatáról:A CVS bemutatása
(forrás: Kaliforna Állami Mûszaki Egyetem).A CVS
honlapja, a CVS fejlesztésével
és alkalmazásával foglalkozó
közösség oldala.A CVSweb
a &os; Projekt által használt CVS
rendszerének webes felülete.A CTM használataCTMA CTM használatáva
a távoli könyvtárakat tudunk egy
központi változattal szinkronban tartani.
Eredetileg a &os; forrásaihoz fejlesztették ki, de
idõvel mások más célokra is
alkalmasnak találhatják majd. Az
eltérések (delták)
feldolgozásával kapcsolatban kevéske
dokumentáció áll rendelkezésre,
ezért a &a.ctm-users.name; levelezési
listát érdemes felkeresni, ha többet
szeretnénk megtudni a CTM
egyéb célú
alkalmazásairól.Miért használnánk a
CTM-et?A CTM
segítségével a &os; forrásainak
helyi másolatát hozhatjuk létre. A
források több különbözõ
kivitelben is
hozzáférhetõek. A
CTM minden esetben képes
eleget tenni az igényeinknek, akár az
egész CVS fát, akár annak egy
részét kívánjuk csak figyelemmel
követni. Ha netalán &os; fejlesztõk
lennénk, és híján vagyunk vagy
éppen gyenge TCP/IP kapcsolattal rendelkezünk,
esetleg egyszerûen csak automatikusan
értesülni szeretnénk a
változásokról, a
CTM-et nekünk
találták ki. A leggyorsabban fejlõdõ
ágakból is naponta legfeljebb három
deltát fogunk kapni, azonban érdemes megfontolni
a változások automatikus
elküldését levélben. A
szükséges frissítések
méretét mindig igyekszünk
minimalizálni. Ez egyébként
általában alig 5 KB, de néha
(tízbõl egyszer) elõfordul, hogy 10 és
50 KB között van, és
idõnként 100 KB vagy afeletti
mennyiségû frissítés is
érkezhet.Amikor a fejlesztõk által használt
forrásokat töltjük le, magunknak kell
gondoskodnunk a menet közben felmerülõ
különbözõ problémák
megoldásáról. Ez
kiváltképp igaz abban az esetben, amikor az
aktuális, vagy hivatalos nevén
CURRENT ágat követjük.
Mielõtt azonban egy ilyenbe belevágnánk,
érdemes fellapozni a &os;
legfrissebb változatának
használatáról szóló
fejezetet.Mire van szükségünk a
CTM
használatához?A mûködéshez két komponens
szükségeltetik: a CTM
kliensprogramja és hozzá a kezdeti delták
(amivel majd letöltjük a CURRENT
forrásait).A CTM program már a 2.0
kiadástól kezdve a &os; része, és
a források között a
/usr/src/usr.sbin/ctm
könyvtárban találjuk meg (amennyiben
felraktuk).A CTM
mûködéséhez kellõ
deltákat két módon, FTP-n
vagy e-mailen keresztül szerezhetjük be. Ha el
tudunk érni interneten levõ FTP oldalakat, akkor
az alábbi FTP helyeken találunk a
CTM-hez használható
adatokat:valamint lásd a tükrözéseket.FTP-n keresztül lépjünk be a
könyvtárba, töltsük le a
README nevû állományt
és kövessük a benne szereplõ
utasításokat.Ha viszont e-mailen keresztül akarjuk megszerezni a
deltákat:Iratkozzunk fel a CTM
terjesztési listáinak egyikére. A
&a.ctm-cvs-cur.name; lista az egész CVS-fát,
míg a &a.ctm-src-cur.name; a fõ fejlesztési
ágat teszi elérhetõvé. A
&a.ctm-src-4.name; a 4.X kiadásaihoz ágakat
tartalmazza, és így tovább. (Ha nem
tudjuk, hogyan kell feliratkozni egy levelezési
listára, akkor kattintsunk a lista nevére vagy
kövessük a &a.mailman.lists.link; linket, majd
kattintsunk arra a listára, ahova fel akarunk
iratkozni. Ezen az oldalon az összes, a
feliratkozáshoz nélkülözhetetlen
információnak szerepelnie kell.)Miután elkezdenek megérkezni a
CTM-frissítéseket
tartalmazó levelek, a tartalmukat a
ctm_rmail programmal tudjuk kicsomagolni
és felhasználni. Az
/etc/aliases állományba
akár közvetlenül is beírhatjuk a
ctm_rmail programot, és ezzel a
önállósítani tudjuk a
levélben érkezõ frissítések
feldolgozását. A ctm_rmail
man oldalán olvashatjuk ennek részleteit.Nem számít, milyen módon jutunk
hozzá a CTM által
használt deltákhoz, minden esetben fel kell
iratkoznunk a &a.ctm-announce.name; levelezési
listára. Az elkövetkezendõkben ez lesz az
egyetlen hely, ahová a CTM
rendszer mûködtetésével kapcsolatos
bejelentések beküldésre kerülnek. A
feliratkozáshoz kattinsunk a fenti lista
nevére és kövessük a mellette
szereplõ utasításokat.A CTM elsõ
használataMielõtt nekilátnánk a
CTM-hez tartozó
delták használatának, elõször
el kell jutnunk egy kiindulási ponthoz, ahonnan majd
létre tudjuk hozni a rákövetkezõ
deltákat.Ehhez elsõként vegyük számba,
pontosan mink is van. Általában mindenki egy
üres könyvtárral kezd.
Ilyenkor egy kezdeti Empty (mint
üres) elnevezésû
deltával tudjuk megkezdeni az
CTM által ismert fa
szinkronizálását. Erre a célra
lesznek majd szintén alkalmasak a
megkezdett delták is, amelyek valamikor
a CD-re fognak felkerülni.Mivel a fák maguk több tíz megabyte-nyi
méretûek, ezért érdemes
inkább valami kéznél levõ
eszközzel megkezdeni a folyamatot. Ha van -RELEASE
verziójú CD-nk, akkor másoljuk le
róla és bontsuk ki a kiindulásként
használt forrásokat. Ezzel jelentõs
mennyiségû adat átvitelét
takaríthatjuk meg.A kezdõ deltákat könnyen
megismerjük a szám után
X karakterrel leválasztott
nevükrõl (például
src-cur.3210XEmpty.gz). Az
X után szereplõ
megnevezés a kezdeti kiindulás
(seed) fokának felel meg. Az
Empty egy üres
könyvtárra utal. A szabályok szerint az
Empty állapotból 100
deltánként jön létre újabb
(kiindulásra alkalmas) alapváltozat. Ezek
azonban nagyon nagyok is lehetnek. A 70 vagy 80 megabyte-os
gzippel csomagolt adatok gyakoriak az
XEmpty delták
esetén.Miután kiválasztottuk a számunkra
megfelelõ alapváltozatot,
szükségünk lesz a tõle nagyobb
sorszámú összes deltára is.A CTM használata a
hétköznapokbanA delták felhasználásához
egyszerûen csak ennyit kell tennünk:&prompt.root; cd /ahol/tárolni/akarjuk/az/adatokat
&prompt.root; ctm -v -v /ahol/tároljuk/a/deltákat/src-xxx.*A CTM képes
értelmezni a gzip által
csomagolt adatokat, ezért nincs szükség a
delták elõzetes
kitömörítésére, amivel
tárhelyet tudunk spórolni.Hacsak nem tekinti tökéletesen
biztonságosnak az egész folyamatot, akkor a
CTM nem fog
módosítani a fán. A deltákat a
CTM
kapcsolójával is ellenõrizhetjük,
aminek során egyáltalán nem fog
módosulni a forrásfa. Ekkor egyszerûen
csak ellenõrzi a delták
sértetlenségét és megnézi,
hogy minden rendben zajlana-e az alkalmazásuk
során.A CTM-nek vannak még
további kapcsolói is, melyekrõl
bõvebben a man oldalakból és a
forráskódokból
tájékozódhatunk.Most már minden megvan, ami kellhet. Amikor kapunk
egy újabb deltát, a forrásaink
frissítéséhez csak futtassuk át a
CTM-en.Ne töröljük le azokat a deltákat,
melyeket nehezen tudtunk letölteni. Helyette
érdemes inkább megtartani ezeket arra az esetre,
ha valami rossz történne. Még ha csak
floppylemezek is állnak rendelkezésünkre,
mindenképpen másoljuk le ezeket az
fdwrite paranccsal.A saját változtatásaink
megtartásaFejlesztõként biztosan szeretnénk
kísérletezni és
állományokat megváltoztatni a
forrásfában. A CTM a
helyben elkövetett változtatásokat csak
korlátozottan támogatja: az
ize nevû állomány
meglétének vizsgálata elõtt az
ize.ctm állományt fogja
keresni. Ha létezik, akkor a
CTM az ize
helyett ezen fog dolgozni.Ezzel a viselkedéssel nyerjük a saját
változtatásaink megtartásának
egyszerû módját: csak másoljuk le
.ctm kiterjesztéssel a
módosítani tervezett állományokat.
Ezután már szabadon módosíthatjuk
a forrásokat, miközben a
CTM a .ctm
kiterjesztésû állományokat
folyamatosan szinkronban tartja.A CTM egyéb
érdekes beállításaiDerítsük ki pontosan miket is fog
érinteni a frissítésA CTM által a
forrásokon elvégzendõ
változtatások listáját az
kapcsolóval
kérdezhetjük le.Ez akkor esik kézre, ha szeretnénk
feljegyezni a bekövetkezõ
változásokat, vagy bármilyen
módon elõ- vagy utófeldolgozni a
módosított állományokat, esetleg
szimplán elõvigyázatosak akarunk
lenni.Biztonsági másolat
készítése a frissítés
elõttNéha egyszerûen csak szeretnénk az
összes érintett állományról
biztonsági másolatot készíteni a
CTM által elvégzett
frissítés elõtt.A
beállítás megadásával az
adott CTM delta által
módosítandó összes
állomány tárolásra kerül a
mentés-állomány
nevû állományba.A frissíthetõ állományok
korlátozásaEgyes esetekben érdekünkben állhat
leszûkíteni a CTM
által eszközölt frissítések
hatáskörét, vagy egyszerûen csak
néhány állomány
szinkronizálására van
szükségünk.A CTM számára
feldolgozható állományok
listáját reguláris kifejezés
formájában az és
opciók mentén
határozhatjuk meg.Például ha a
lib/libc/Makefile
állomány az összegyûjtött
CTM delták szerinti
legfrissebb verziójához kívánunk
hozzájutni, akkor futtassuk az alábbi
parancsot:&prompt.root; cd /akarhova/ahova/ki/akarjuk/bontani/
&prompt.root; ctm -e '^lib/libc/Makefile' ~ctm/src-xxx.*A CTM deltákban
megadott minden egyes állomány esetén
az az opciók
a parancssorban történt megadásuk
sorrendjében kerülnek feldolgozásra. Egy
állományt kizárólag csak akkor
dolgoz fel a CTM, ha az az
és
opciók kiértékelése után
is indokolt.További tervek a
CTM-mel kapcsolatbanRengeteg van:Valamiféle hitelesítés
bevezetése a CTM
rendszerbe, amivel észlelhetõek a
meghamisított
CTM-frissítések.A CTM
beállításainak
letisztázása, mivel eléggé
megtévesztõek és nehézkesen
használhatóak.EgyebekLéteznek delták a portok
gyûjteményéhez is, azonban még nem
mutatkozott túlzottan nagy
érdeklõdés irántuk.CTM tükrözésekA CTM/FreeBSD anonim FTP-n
keresztül elérhetõ az alábbi
tüköroldalak valamelyikérõl. Amennyiben
ezen a módon kívánjuk letölteni a
CTM rendszerhez tartozó
állományokat, elõször
próbálkozzunk a hozzánk legközelebb
levõ szerverrel.Ha bármilyen gond merülne fel,
értesítsük a &a.ctm-users.name;
levelezési listát.Kalifornia, Bay Area (hivatalos forrás)Dél-Afrika (a korábbi delták
biztonsági másolatai)Tajvan/R.O.C.Ha nem találtunk volna hozzánk közel
esõ tükrözést, vagy ha talált
tükör nem elég friss, akkor
próbálkozzunk egy olyan keresõmotor
használatával, mint például az
alltheweb.A CVSup használataBevezetésA CVSup távoli szervereken
található központi repositorykban levõ
forrásfák terjesztésére és a
rajtuk keresztüli frissítésre alkalmas
programcsomag. A &os; forrásait egy CVS repositoryban
tartják karban Kaliforniában egy
fejlesztéseket tároló központi
számítógépen. A
CVSup
segítségével a &os;
felhasználói könnyen szinkronban
tudják vele tartani a saját
forrásaikat.A CVSup az ún.
lehúzással frissít.
Ilyenkor a kliensek csak akkor kérnek a szervertõl
frissítéseket, amikor szükségük
van rá, miközben a szerver passzívan
várja a frissítési kérelmeket.
Ennek megfelelõen tehát minden esetben a kliens
kezdeményezi a frissítést, a szerver pedig
önmagától sosem küld ilyeneket
kéretlenül. A felhasználóknak
így vagy maguknak kell meghívniuk a
CVSup kliensét, vagy a
frissítések rendszeres automatikus
letöltéséhez be kell állítaniuk
a cron rendszerprogramot.A CVSup kifejezés ebben az
írásmódban az egész programcsomagra
utal. Fõ alkotórészei a a
felhasználó gépén futó
cvsup nevû kliens, és a &os;
tüköroldalain futó cvsupd
nevû szerver.A &os; dokumentációjának és
levelezési listáinak fürkészése
során rengeteg hivatkozást találhatunk egy
sup nevû alkalmazásra. A
sup a
CVSup elõdje volt, és
hasonló célokat szolgált. A
CVSup használat
tekintetében nagyon hasonlít a
sup-hoz, és ami azt illeti, a
a sup konfigurációs
állományaival visszafele kompatibilis
formátumot használ. Mivel a
CVSup sokkal gyorsabb és
rugalmasabb, a supot már nem
használja a &os; Projekt.A csup a
CVSup C nyelven
újraírt változata. Legnagyobb
elõnye, hogy gyorsabb és nincs
szüksége a Modula-3 nyelv futtató
környezetére, ezért azt nem kell a
használatához telepíteni.
Ráadásul, ha a &os; 6.2 vagy annál
késõbbi változatát
használjuk, akkor minden további
nélkül a rendelkezésünkre áll,
hiszen az alaprendszer része. A &os; korábbi
verzióinak alaprendszerei ugyan nem tartalmazzák
a &man.csup.1; parancsot, viszont a net/csup port vagy csomag
segítségével pillanatok alatt
telepíteni tudjuk. Emellett a
csup segédprogram nem
támogatja a CVS módot sem. Teljes repositoryk
tükrözéséhez ezért
továbbra is a CVSup kell
használnunk. Amennyiben a
csup mellett tennénk le a
voksunkat, a szakasz fennmaradó részében
egyszerûen hagyjuk ki a CVSup
telepítésérõl szóló
lépéseket és a
CVSup hivatkozásait
helyettesítsük a csup
programmal.TelepítésA CVSup
telepítésének legegyszerûbb
módja a &os; csomaggyûjteményében
található elõrefordított net/cvsup csomag használata.
Ha viszont inkább forrásból akarjuk
telepíteni a CVSupot, akkor
helyette használjuk a net/cvsup portot. De legyünk
elõvigyázatosak: a net/cvsup portnak szüksége
van a Modula-3 rendszerre, aminek letöltése
és lefordítása pedig meglehetõsen sok
idõt és tárhelyet igényel.Ha olyan gépen akarjuk használni a
CVSupot, ahol nincs
&xfree86;,
&xorg; vagy bármilyen
más ilyen szerver, akkor használjuk a
net/cvsup-without-gui
portot, ami nem tartalmazza a hozzátartozó
grafikus felületet.Ha a &os; 6.1 vagy korábbi változatain
szeretnénk telepíteni a
csupot, használjuk a &os;
csomaggyûjteményében
megtalálható net/csup csomagot. Ha viszont
forrásból kívánjuk telepíteni
a csup programot, akkor helyette
használjuk a net/csup
portot.A CVSup beállításaA CVSup
mûködését a supfile
elnevezésû állomány vezérli. A
/usr/share/examples/cvsup/
könyvárban találhatunk néhány
példát a supfile
állományokra.A supfile állományban
szereplõ információk a
CVSup használatával
kapcsolatban a következõ kérdéseket
válaszolják meg:Milyen
állományokat akarunk
letölteni?Milyen
verzióikra van
szükségünk?Honnan akarjuk ezeket
beszerezni?Hova akarjuk rakni a
számítógépünkön?Hova akarjuk rakni
az állapotot tároló
állományokat?Az imént feltett kérdésekre a
következõ szakaszokban
összeállítandó
supfile segítségével
fogunk válaszolni. Ehhez elõször bemutatjuk a
supfile formátumú
állományok általános
szerkezetét.A supfile állományok
szöveget tartalmaznak. A megjegyzések
# karakterrel kezdõdnek és a sor
végéig tartanak. A kizárólag csak
megjegyzéseket tartalmazó vagy üres sorok nem
kerülnek feldolgozásra.Az összes többi fennmaradó sorban pedig
azokat az állományokat írjuk le, amelyeket
a felhasználó le akar tölteni. Az ilyen
fajtájú sorok egy
gyûjtemény (collection)
nevével kezdõdnek, ami állományok egy
szerver által meghatározott logikai
csoportjára utal. A gyûjtemény neve ennek
megfelelõen elárulja a szervernek, hogy pontosan
milyen állományokra van
szükségünk. Ezután következik
whitespace-szel elválasztva nulla vagy több
mezõ, amelyek a korábban feltett
kérdéseinket válaszolják meg rendre.
Ezeknek a mezõknek két típusa létezik:
a beállításokat és a konkrét
értéket tároló mezõk. A
beállításokat tároló
mezõk különbözõ kulcsszavakat
tartalmaznak, például a delete
(törlés) vagy compress
(tömörítés). Az értéket
tároló mezõk is egy kulcsszóval
kezdõdnek, azonban utána közvetlenül egy
= (egyenlõségjel) jön,
amelyet egy második szó követ szorosan.
Így például a
release=cvs pontosan egy ilyen
értékmezõ lesz.Egy supfile általában
egynél több gyûjtemény
letöltését írja le. Ezért az
ilyen állományok
felépítésének egyik módja, ha
az egyes gyûjteményhez explicite megadjuk a
hozzátartozó mezõket. Azonban így a
supfile állományok gyorsan
megnövekednek és kényelmetlenné
válnak, mivel a legtöbb gyûjtemény
esetén szinte ugyanazokat a mezõket kellene
megadnunk. A CVSup az ilyen
típusú bonyodalmak elkerülésére
egy alapértelmezési megoldást javasol. A
*default nevû
álgyûjteménnyel kezdõdõ sorok
segítségével meg tudunk adni olyan
beállításokat és
értékeket, amelyek az utána
következõ gyûjtemények
számára alapértelmezésnek fognak
számítani a supfile
állományban. Az itt megadott
alapértelmezések természetesen az egyes
gyûjteményekben tetszõleges módon
felülbírálhatóak, a mezõk
magán a gyûjteményen belüli
megadásával. Az állományban az
alapértelmezések is
megváltoztathatóak vagy
bõvíthetõek további
*default sorok
hozzáadásával.Mindezek tudatában most már megkezdhetjük
a FreeBSD-CURRENT ág
tartalmának letöltésére és
frissen tartására alkalmas
supfile állomány
összeállítását.Milyen
állományokat akarunk letölteni?A CVSupon keresztül
elérhetõ állományok
gyûjteményeknek hívott
nevesített csoportokra bontva érhetõek
el. A hivatkozható gyûjtemények
leírását a következõ szakaszban
találjuk. Ebben a példában most
szeretnénk letölteni az egész &os;
rendszer forrását. Ezt a
src-all nevû
gyûjteményre hivatkozva érhetjük el.
A supfile állományunk
létrehozásának elsõ
lépéseként soronként egyet
megadva felsoroljuk a letölteni kívánt
gyûjteményeket (jelen esetünkben csak
egyetlen egyet):src-allMilyen verzióikra
van szükségünk?A CVSup
használatával tulajdonképpen a
források összes valaha létezett
verziójához hozzá tudunk férni.
Ez annak köszönhetõ, hogy a
cvsupd szerver
közvetlenül a CVS repositoryból dolgozik,
ami pedig az összes verziót tartalmazza. A
tag= és date=
értékmezõk
segítségével adhatjuk meg az
igényelt verziókat.Legyünk óvatosak azonban a
tag= mezõk helyes
megadásával. Egyes címkék
ugyanis csak bizonyos
állománygyûjtemények
esetén élnek. Ha hibás vagy
elírt címkét adunk meg, akkor a
CVSup törölni fog
olyan állományokat, amelyeket
valószínûleg nem kellene. A
ports-* gyûjtemények
esetében pedig kifejezetten
csak a tag=.
mezõk használhatóak!A tag= mezõk a
tárházban található szimbolikus
címkéket nevezik meg. A
címkéknek két típusa van: a
revíziókhoz és az ágakhoz
tartozó címkék. A
revíziós címkék mindig egy adott
revíziót hivatkoznak, jelentésük
állandó. Ezzel szemben az ágak
címkéi egy adott fejlesztési ág
adott idõpontjában elérhetõ
revíziót címkézi. Mivel az
ágak címkéi nem egy konkrét
revízióra vonatkoznak, ezért
akár olyanra is utalhatnak, ami pillanatnyilag
még nem is létezik.Az ban megtalálhatjuk a
fontosabb ágak címkéit. A
CVSup konfigurációs
állományában a címkéket a
tag= elõtaggal kell bevezetni
(így tehát a RELENG_4
címke hivatkozása
tag=RELENG_4 lesz). Ne felejtsük
el, hogy a Portgyûjtemény esetében csak
tag=. mezõ megadásának
van értelme.Igyekezzünk pontosan lemásolni a
címkék neveit, mivel a
CVSup nem képes
megkülönböztetni az érvényes
és az érvénytelen
címkéket. Ha véletlen elírjuk
a címkét, akkor a
CVSup úgy fog
viselkedni, mintha olyan érvényes
címkére hivatkozhatunk volna, amihez nem
tartoznak állományok. Ennek
következtében pedig egyszerûen
letörli a már meglevõ
forrásainkat.Egy ág címkéjének
megadása során általában az
adott fejlesztési vonal legfrissebb
verzióját kapjuk meg. Ha viszont az adott
ág valamelyik korábbi
változatára lenne szükségünk,
akkor a értékmezõ
felhasználásával meg tudjuk adni a
hozzátartozó dátumot. Ennek
mûködésérõl a &man.cvsup.1; man
oldala részletesebben értekezik.A példában mi most a &os;-CURRENT
verziót akarjuk letölteni. Ezért a
következõ sort tesszük a
supfile állományunk
elejére:*default tag=.Ha nem adunk meg sem tag=, sem pedig
date= mezõket, akkor egy fontos eset
következik be. Ilyenkor ugyanis egy konkrét
verzió helyett közvetlenül a szerver CVS
repositoryjából kapjuk meg az
állományokat, az összes
kiegészítõ információjukkal
együtt. A fejlesztõk általában ezt
a típusú megoldást kedvelik, mivel
így a saját rendszerükön is
könnyen karban tudnak tartani egy
példányt, amiben tudnak keresni a
revíziók között és ki
tudják kérni akár az
állományok korábbi változatait
is. Természetesen ennek
függvényében jóval több
tárhelyre van szükségük.Honnan akarjuk ezeket
beszerezni?A host= mezõ
beállításával
közöljük a cvsup
klienssel, honnan töltse le a
frissítéseket. A CVSup
tükrözések közül
bármelyik megfelel erre a célra, habár
leginkább azt érdemes választani, ami a
kibertérben a hozzánk legközelebb esik.
A példában most egy kitalált &os;
terjesztési oldalt választunk, a cvsup99.FreeBSD.org-ot:*default host=cvsup99.FreeBSD.orgA CVSup futtatása
elõtt tehát ne felejtsük el
megváltoztatni ezt a létezõ
számítógép
hálózati nevére. A
cvsup futtatásakor a opció
megadásával lehetõségünk
ennek
felülbírálására.Hova akarjuk rakni a
számítógépünkön?A prefix= mezõ adja meg a
cvsup számára, hogy hova
tegye a kapott állományokat. A
példában a forrásokat
közvetlenül a forrásokat
tároló központi könyvtárba, a
/usr/src könyvtárba
tettük. Mivel a src
könyvtár neve már hallgatólagosan
benne foglaltatik a letöltésre
kiválasztott gyûjtemény nevében,
ezért itt csak ennyit kell megadnunk:*default prefix=/usrHova akarjuk rakni az
állapotot tároló
állományokat?A CVSup kliens egy
bázisnak (base) nevezett
könyvtárban folyamatosan fenntart bizonyos
állományokban állapotokat (status
file). Ezek a már letöltött
állományok
nyilvántartásával segítik a
CVSup hatékony
munkavégzését. Mi most a
szabványos bázist, a
/var/db könyvtárat fogjuk
használni:*default base=/var/dbAmennyiben még nem létezne a
bázisként használni
kívánt könyvtár, ideje
létrehoznunk. A cvsup ugyanis egy
nem létezõ könyvtár esetén
nem lesz hajlandó mûködni.További beállítások a
supfile
állományban:Általában még egy sor szokott
szerepelni a supfile
állományokban:*default release=cvs delete use-rel-suffix compressA release=cvs mezõ jelzi, hogy a
szervernek a &os; fõ CVS repositoryból kell
kikeresnie az információkat.
Tulajdonképpen majdnem mindig errõl van
szó, és az itt megadható többi
lehetõség ismertetése most
egyébként is meghaladná a szakasz
határait.A delete hatására a
CVSup képes lesz
állományokat törölni. Mindig
érdemes megadnunk, hiszen a
CVSup csak így tudja
teljes mértékben frissentartani a
forrásokat. A CVSup
természetesen csak azokat az
állományokat igyekszik letörölni,
amelyek miatt valóban felelõs. A kóbor
állományokat nem fogja bántani.A use-rel-suffix hatása egy
igazi... Rejtély. Ha tényleg érdekel
minket a mûködése, lapozzuk fel
bátran a &man.cvsup.1; man oldalát. Nyugodtan
adjuk meg és különösebben ne
törõdjünk vele.A compress
beállítás
segítségével a
kommunikációs csatornán
vándorló adatokat tudjuk gzip-szerû
módon tömöríteni. Ha a
hálózati kapcsolatunk sebessége
meghaladja a 1,5 Mbitet másodpercenként
(T1), akkor ezt már nem érdemes
használni, viszont minden más esetben
lényeges gyorsulást hozhat.Összegezzük az eddigieket:Íme a példaként összerakott
supfile állományunk
teljes tartalma:*default tag=.
*default host=cvsup99.FreeBSD.org
*default prefix=/usr
*default base=/var/db
*default release=cvs delete use-rel-suffix compress
src-allA refuse
állományAhogy arról már korábban szó
esett, a CVSuplehúzással frissít.
Ez alapvetõen annyit jelent, hogy
feltárcsázunk egy
CVSup szervert, aki a
következõt mondja nekünk: A
következõket tudod tõlem
letölteni..., amire a kliensünk ezt
válaszolja: Rendben, akkor nekem kell ez, ez, ez
meg ez. Alapértelmezés szerint a
CVSup kliense azokat az
állományokat fogja letölteni, amelyeket a
konfigurációs állományban
szereplõ gyûjtemények és
címkék által megneveztünk. Ez
azonban nem mindig felel meg az igényeinknek,
különösen akkor, amikor a
doc, ports vagy
www fákat akarjuk letölteni
— az emberek többsége ugyanis nem
beszél négy vagy öt nyelven, ezért
nincs is szükségük a nyelvfüggõ
állományok letöltésére. A
Portgyûjtemény letöltése során
a ports-all helyett egyszerûen
egyenként is felsorolhatjuk a számunkra
érdekes kategóriákat
(például ports-astrology,
ports-biology stb). Azonban mivel a
doc és a www
fákhoz nincsenek nyelvfüggõ
gyûjtemények, ezért elõ kell
halásznunk a CVSup egyik
remek funkcióját, a refuse
állományt.A refuse állománnyal
lényegében arra utasítjuk a
CVSup alkalmazást, hogy a
gyûjteményekbõl ne töltse le az
összes állományt. Úgy is
fogalmazhatnánk, hogy javaslatára a kliens
visszautasít (refuse) bizonyos
szervertõl érkezõ állományokat.
Ezeket a visszautasításokat tároló
refuse állományt a
bázis/sup/
könyvtárban találhatjuk meg (illetve ha
még nincsenek, akkor ide kell rakunk ezeket). Itt a
bázis a
supfile állományban
megadott base= mezõre utal, ami a
példánkban a /var/db
könyvtár volt. Ennek megfelelõen
tehát a refuse
állomány a
/var/db/sup/refuse lesz.A refuse állomány
felépítése igen egyszerû: a
letölteni nem kívánt
állományok és könyvtárak
neveit tartalmazza. Például ha az angolul
mellett esetleg még beszélünk egy
kevés németet is, de nincs
szükségünk az angol
dokumentáció német
fordítására sem, akkor a
következõket írjuk a
refuse állományba:doc/bn_*
doc/da_*
doc/de_*
doc/el_*
doc/es_*
doc/fr_*
doc/hu_*
doc/it_*
doc/ja_*
doc/mn_*
doc/nl_*
doc/no_*
doc/pl_*
doc/pt_*
doc/ru_*
doc/sr_*
doc/tr_*
doc/zh_*és így tovább a többi nyelvre is
(melyeket a &os; CVS
repository böngészésével
deríthetjük ki).Ezzel az alkalmas funkcióval a lassú vagy
drága internetes kapcsolattal rendelkezõ
felhasználók nagyon jól tudnak
gazdálkodni, mivel így nem kell
letölteniük az egyáltalán nem
használt állományokat. A
refuse állományokról
és a CVSup más
hasonlóan elegáns funkcióiról a
saját man oldaláról tudhatunk meg
többet.A CVSup futtatásaMost már készen állunk egy próba
frissítés elvégzésére. A
parancssorban nem sok mindent kell beírnunk ehhez:&prompt.root; cvsup supfileahol a
supfile a
frissen létrehozott supfile
állományunk neve lesz. Feltételezve, hogy
a parancsot X11 alatt adtunk ki, az cvsup
erre feldob egy grafikus ablakot néhány gombbal.
Nyomjuk meg a go feliratú gombot
és dõljünk hátra.Mivel a példában a
/usr/src könyvtárunk
frissítését állítottuk be, az
állományok aktualizálásához
szükséges jogosultságok
biztosításához a cvsup
programot root
felhasználóként kell elindítanunk.
Teljesen érthetõ, ha egy kicsit izgatottak vagyunk
ezekben a pillanatokban, hiszen az elõbb hoztunk
létre egy általunk eddig ismeretlen programhoz egy
konfigurációs állományt.
Ezért megemlítenénk, hogy ilyenkor
elõször mindig próbáljuk ki a
konfigurációkat, mielõtt azok
bármilyen módosítást
végeznének a fontos állományainkon.
Ehhez hozzunk létre valahol egy üres
könyvtárat, majd adjuk meg a parancssorban ennek a
nevét:&prompt.root; mkdir /var/tmp/proba
&prompt.root; cvsup supfile /var/tmp/probaAz így megadott könyvtárba kerülnek
a frissítés eredményeképpen
keletkezõ állományok. A
CVSup elõször
megvizsgálja a /usr/src
könyvtárban található
állományokat, viszont egyiküket sem
módosítja vagy törli. A
frissítések ehelyett a
/var/tmp/proba/usr/src
könyvtárba fognak kerülni. A
CVSup emellett még a
báziskönyvtárában tárolt
állapotokat sem fogja megváltoztatni. A
módosított állományok új
változatai a megadott könyvtárba jönnek
létre. Mivel a /usr/src
könyvtárt ehhez csak olvasni fogjuk, a próba
lefuttatásához még
root felhasználónak sem kell
lennünk.Ha nem használunk X11-et vagy egyszerûen csak
nincs szükségünk a grafikus felületre, a
parancssorban pár további opció
megadásával így is kiadhatjuk a
cvsup parancsot:&prompt.root; cvsup -g -L 2 supfileA hatására a
CVSup nem hozza be a grafikus
felületét. Ha nem talál X11-et, akkor ez
természetesen automatikus, de ellenkezõ esetben ezt
is meg kell adnunk.Az megadásával a
CVSup az összes
elvégzendõ frissítésrõl
részletes értesítést ad. A
részletességnek három foka van, -tól indulva egészen -ig. Itt az alapértelmezett
érték a 0, amivel a hibaüzenetek
kivételével egyetlen üzenetet sem
kapunk.Rengeteg egyéb beállítás
adható még meg, ezeket a cvsup
-H kiadásával kérdezhetjük
le. A beállítások pontosabb
leírását a man oldalon találjuk
meg.Miután elégedetten tapasztaltuk, hogy a
frissítés remekül mûködik, a
&man.cron.8; segítségével
próbáljuk meg az egész folyamatot
önmûködövé tenni a
CVSup szabályos
idõközönkénti futtatásával.
Ekkor viszont magától értetõdik, hogy
a CVSup számára ne
engedjük használni a grafikus felületet.A CVSup
állománygyûjteményeiA CVSup révén
elérhetõ
állománygyûjtemények egy hierarchikus
rendszert alkotnak. Van néhány nagyobb
állománygyûjtemény, amelyek kisebb
al-állománygyûjteményekre
bonthatóak. A nagyobb gyûjtemények
letöltése ezért a kisebb
algyûjtemények letöltésével
egyenlõ. A gyûjtemények közt
fennálló hierarchikus rendszer a lentebb
szereplõ lista behúzásaiban
érhetõ tetten.A leggyakrabban használt gyûjtemények a
src-all és a
ports-all neveket viselik. A többi
gyûjteményt általában csak kevesen
és csak speciális célokra
használják, ezért egyes
tükrözéseken nem feltétlenül
találjuk meg mindegyiküket.cvs-all release=cvsA &os; fõ CVS repositoryja, beleértve a
titkosításhoz tartozó kódokat
is.distrib release=cvsA &os; terjesztéséhez és
tükrözéséhez
kapcsolódó
állományok.doc-all release=cvsA &os; kézikönyvének
és a többi dokumentáció
forrásai. Nem tartalmazza a &os;
honlapjának forrásait.ports-all release=cvsA &os; portgyûjteménye.Ha nem akarjuk a ports-all
egészét (vagyis a teljes
portfát) frissíteni, csak a lentebb
szereplõ egyes algyûjteményeket
letölteni, akkor soha ne
feledkezzünk meg a
ports-base
megadásáról! Amikor valami
változik a portok
mûködésében, akkor a
ports-base által
képviselt algyûjteményben
szereplõ állományokat igen
gyorsan elkezdik használni a
valódi portok. Ezért
ha csak a valódi portokat
frissítjük, amelyek viszont
igényt tartanak néhány
újabb funkcióra is, akkor
könnyen fordítási hibára
vagy különbözõ
rejtélyes hibaüzenetekbe futhatunk.
Emiatt
legeslegelõször
mindig tegyünk róla, hogy a
ports-base
algyûjteményünk a lehetõ
legfrissebb legyen.Ha a ports/INDEX
állomány egy saját
példányát
kívánjuk létrehozni, akkor
ahhoz a ports-all
gyûjteményt (tehát a teljes
portfát) le kell
kérnünk. A
ports/INDEX
állományt a portfa egy része
alapján nem készíthetjük
el. Errõl bõvebben lásd a
GYIK-ot.ports-accessibility
release=cvsA fogyatékos
felhasználókat
segítõ szoftverek.ports-arabic
release=cvsArab nyelvi
támogatás.ports-archivers
release=cvsArchiváló
eszközök.ports-astro
release=cvsCsillagászathoz tartozó
portok.ports-audio
release=cvsHangtámogatás.ports-base
release=cvsA Portgyûjtemény saját
infrastruktúrája — az
Mk/,
Tools/ és
/usr/ports
különféle
alkönyvtáraiban elhelyezkedõ
állományok.Ne hagyjuk figyelmen kívül
a
fenti fontos figyelmeztetést
sem: ezt az algyûjteményt
mindig a &os;
Portgyûjteményével
együtt frissítsük!ports-benchmarks
release=cvsTeljesítménytesztek.ports-biology
release=cvsBiológia.ports-cad
release=cvsSzámítógépes
tervezõeszközök (CAD).ports-chinese
release=cvsKínai nyelvi
támogatás.ports-comms
release=cvsKommunikációs
szoftverek.ports-converters
release=cvsKarakterkódolások közti
átalakítók.ports-databases
release=cvsAdatbázisok.ports-deskutils
release=cvsA számítógép
feltalálása elõtt is
már létezõ
eszközök.ports-devel
release=cvsFejlesztõeszközök.ports-dns
release=cvsNévfeloldással kapcsolatos
szoftverek.ports-editors
release=cvsSzövegszerkesztõk.ports-emulators
release=cvsMás operációs
rendszerek emulátorai.ports-finance
release=cvsPénzügyi, gazdasági
és hasonló
alkalmazások.ports-ftp
release=cvsFTP kliensek és szerverek.ports-games
release=cvsJátékok.ports-german
release=cvsNémet nyelvi
támogatás.ports-graphics
release=cvsGrafikus
segédeszközök.ports-hebrew
release=cvsHéber nyelvi
támogatás.ports-hungarian
release=cvsMagyar nyelvi
támogatás.ports-irc
release=cvsIRC-vel kapcsolatos programok.ports-japanese
release=cvsJapán nyelvi
támogatás.ports-java
release=cvs&java;
segédeszközök.ports-korean
release=cvsKoreai nyelvi
támogatás.ports-lang
release=cvsProgramozási nyelvek.ports-mail
release=cvsLevelezõ programok.ports-math
release=cvsNumerikus
számításokkal
foglalkozó programok.ports-mbone
release=cvsMBone alkalmazások.ports-misc
release=cvsEgyéb segédprogramok.ports-multimedia
release=cvsMultimediás szoftverek.ports-net
release=cvsHálózati szoftverek.ports-net-im
release=cvsÜzenetküldõ (Instant
Messaging, IM) szoftverek.ports-net-mgmt
release=cvsHálózati karbantartó
szoftverek.ports-net-p2p
release=cvsEgyenrangú (Peer to Peer, P2P)
hálózatok.ports-news
release=cvsUSENET hírszoftverek.ports-palm
release=cvsA Palm sorozat
szoftveres támogatása.ports-polish
release=cvsLengyel nyelvi
támogatás.ports-ports-mgmt
release=cvsA portok és csomagok
karbantartását végzõ
segédeszközök.ports-portuguese
release=cvsPortugál nyelvi
támogatás.ports-print
release=cvsNyomdai programok.ports-russian
release=cvsOrosz nyelvi
támogatás.ports-science
release=cvsTudományos programok.ports-security
release=cvsBiztonsági
segédprogramok.ports-shells
release=cvsParancsértelmezõk.ports-sysutils
release=cvsRendszerprogramok.ports-textproc
release=cvsSzövegfeldolgozást
segítõ eszközök
(kivéve az asztali
kiadványszerkesztést).ports-ukrainian
release=cvsUkrán nyelvi
támogatás.ports-vietnamese
release=cvsVietnámi nyelvi
támogatás.ports-www
release=cvsA világhálóhoz
tartozó szoftverek.ports-x11
release=cvsAz X Window System
mûködését
segítõ portok.ports-x11-clocks
release=cvsX11 órák.ports-x11-drivers
release=cvsX11 meghajtók.ports-x11-fm
release=cvsX11
állománykezelõk.ports-x11-fonts
release=cvsX11 betûtípusok és a
hozzájuk tartozó
segédprogramok.ports-x11-toolkits
release=cvsX11 eszközrendszerek.ports-x11-servers
release=cvsX11 szerverek.ports-x11-themes
release=cvsX11 témák.ports-x11-wm
release=cvsX11 ablakkezelõk.projects-all release=cvsA &os; projektek forrásainak
repositoryja.src-all release=cvsA &os; fontosabb forrásai, a
titkosításhoz tartozó
kódokkal együtt.src-base
release=cvsA /usr/src
könyvtárban levõ egyéb
állományok.src-bin
release=cvsAz egyfelhasználós
módban használható
segédeszközök
(/usr/src/bin).src-cddl
release=cvsA CDDL licenc szerint terjesztett
segédprogramok és
függvénykönyvtárak
(/usr/src/cddl).src-contrib
release=cvsA &os; Projekten kívül
fejlesztett segédprogramok és
függvénykönyvtárak,
viszonylag kevés
módosítással
(/usr/src/contrib).src-crypto release=cvsA &os; Projekten kívül
fejlesztett, titkosítással
kapcsolatos segédprogramok és
függvénykönyvtárak,
viszonylag kevés
módosítással
(/usr/src/crypto).src-eBones release=cvsKerberos és DES
(/usr/src/eBones). A
&os; jelenlegi változatai nem
használják.src-etc
release=cvsA rendszer
beállításait
tartalmazó állományok
(/usr/src/etc).src-games
release=cvsJátékok
(/usr/src/games).src-gnu
release=cvsA GPL licenc szerint terjesztett
segédprogramok
(/usr/src/gnu).src-include
release=cvs(C nyelvi) Header állományok
(/usr/src/include).src-kerberos5
release=cvsA Kerberos5 biztonsági csomag
(/usr/src/kerberos5).src-kerberosIV
release=cvsA KerberosIV biztonsági csomag
(/usr/src/kerberosIV).src-lib
release=cvsFüggvénykönyvtárak
(/usr/src/lib).src-libexec
release=cvsMás programok által
futtatott rendszerprogramok
(/usr/src/libexec).src-release
release=cvsA &os; kiadások
elkészítéséhez
szükséges állományok
(/usr/src/release).src-rescue
release=cvsStatikusan linkelt programok
vészhelyzet esetére,
lásd &man.rescue.8;
(/usr/src/rescue).src-sbin release=cvsEgyfelhasználós
módban használható
rendszereszközök
(/usr/src/sbin).src-secure
release=cvsTitkosítással
foglalkozó
függvénykönyvtárak
és parancsok
(/usr/src/secure).src-share
release=cvsTöbb rendszer között
megosztható állományok
(/usr/src/share).src-sys
release=cvsA rendszermag
(/usr/src/sys).src-sys-crypto
release=cvsA rendszermagban levõ
titkosítással foglalkozó
kód
(/usr/src/sys/crypto).src-tools
release=cvsA &os; karbantartására
való különbözõ
segédprogramok
(/usr/src/tools).src-usrbin
release=cvsFelhasználói
segédprogramok
(/usr/src/usr.bin).src-usrsbin
release=cvsRendszerszintû segédprogramok
(/usr/src/usr.sbin).www release=cvsA &os; Projekt honlapjának
forráskódja.distrib release=selfA CVSup szerver
saját konfigurációs
állományai. A
CVSup
tükrözései
használják.gnats release=currentA GNATS hibanyilvántartó
adatbázis.mail-archive release=currentA &os; levelezési listáinak
archívuma.www release=currentA &os; Projekt honlapjának generált
állományai (de nem a forrásai). A
WWW tükrözések
használják.Bõvebb információkA CVSup részletesebb
bemutatását és a hozzátartozó
GYIK-ot A CVSup
honlapján találjuk meg.A CVSup &os;-re vonatkozó
tárgyalása a &a.hackers;n történik.
Itt és az &a.announce;n jelentik be a szoftver
újabb változatait.A CVSup alkalmazással
kapcsolatos kérdéseket és
hibajelentéseket illetõen a CVSup
GYIK-ot érdemes megnéznünk.CVSup oldalakA &os; CVSup szerverei az
alábbi oldalakon érhetõek el:
&chap.mirrors.cvsup.inc;
CVS címkékMeg kell adnunk egy revízió
címkéjét, amikor a
cvs vagy
CVSup használatával
letöltjük vagy frissítjük a
forrásokat. A revíziós címkék
a &os; egyik fejlesztési irányát vagy egy
adott idõpontbeli állapotát hivatkozzák.
Az elõbbi egy ág címkéje,
míg az utóbbi pedig egy kiadás
címkéje.Az ágak címkéiA HEAD kivételével (amely
mindig egy érvényes címke) az összes
címke csak a src/ fára
vonatkozik. A ports/,
doc/ és www/
fák nem tartalmaznak ágakat.HEADA fõ fejlesztési ág, avagy a
&os;-CURRENT szimbolikus neve. Ha nem adunk meg
revíziót, ez lesz az
alapértelmezés.A CVSup számára
ezt . címke jelzi (itt most nem
mondatvégi pontot jelöli, hanem a
. karaktert).A CVS számára ez lesz az
alapértelmezett érték, ha nem adunk
meg konkrét revíziós
címkét. Többnyire
nem túlzottan jó
ötlet egy STABLE változatot
használó gépen a CURRENT
verziójú források
kikérése, kivéve hacsak nem ez a
szándékunk.RELENG_8A FreeBSD-8.X fejlesztési ága, más
néven a FreeBSD 8-STABLERELENG_8_0A FreeBSD-8.0 kiadás ága, ahová
csak a biztonsági frissítések és
a kritikus hibajavítások kerülnek.RELENG_7A FreeBSD-7.X fejlesztési ága, más
néven a FreeBSD 7-STABLERELENG_7_2A FreeBSD-7.2 kiadás ága, ahová
csak a biztonsági frissítések és a
kritikus hibajavítások kerülnek.RELENG_7_1A FreeBSD-7.1 kiadás ága, ahová
csak a biztonsági frissítések és a
kritikus hibajavítások kerülnek.RELENG_7_0A FreeBSD-7.0 kiadás ága, ahová
csak a biztonsági frissítések és
a kritikus hibajavítások kerülnek.RELENG_6A FreeBSD-6.X fejlesztési ága, más
néven a FreeBSD 6-STABLERELENG_6_4A FreeBSD-6.4 kiadás ága, ahová
csak biztonsági frissítések és a
kritikus hibajavítások kerülnek.RELENG_6_3A FreeBSD-6.3 kiadás ága, ahová
csak biztonsági frissítések és a
kritikus hibajavítások kerülnek.RELENG_6_2A FreeBSD-6.2 kiadás ága, ahová
csak biztonsági frissítések és a
kritikus hibajavítások kerülnek.RELENG_6_1A FreeBSD-6.1 kiadás ága, ahová
csak biztonsági frissítések és a
kritikus hibajavítások kerülnek.RELENG_6_0A FreeBSD-6.0 kiadás ága, ahová
csak biztonsági frissítések és a
kritikus hibajavítások kerülnek.RELENG_5A FreeBSD-5.X fejlesztési ág, más
néven a FreeBSD 5-STABLE.RELENG_5_5A FreeBSD-5.5 kiadás ága, ahová
csak biztonsági frissítések és a
kritikus hibajavítások kerülnek.RELENG_5_4A FreeBSD-5.4 kiadás ága, ahová
csak biztonsági frissítések és a
kritikus hibajavítások kerülnek.RELENG_5_3A FreeBSD-5.3 kiadás ága, ahová
csak biztonsági frissítések és a
kritikus hibajavítások kerülnek.RELENG_5_2A FreeBSD-5.2 és FreeBSD-5.2.1 kiadások
ága, ahová csak biztonsági
frissítések és a kritikus
hibajavítások kerülnek.RELENG_5_1A FreeBSD-5.1 kiadás ága, ahová
csak biztonsági frissítések és a
kritikus hibajavítások kerülnek.RELENG_5_0A FreeBSD-5.0 kiadás ága, ahová
csak biztonsági frissítések és a
kritikus hibajavítások kerülnek.RELENG_4A FreeBSD-4.X fejlesztési ága, más
néven a FreeBSD 4-STABLE.RELENG_4_11A FreeBSD-4.11 kiadás ága, ahová
csak biztonsági frissítések és a
kritikus hibajavítások kerülnek.RELENG_4_10A FreeBSD-4.10 kiadás ága, ahová
csak biztonsági frissítések és a
kritikus hibajavítások kerülnek.RELENG_4_9A FreeBSD-4.9 kiadás ága, ahová
csak biztonsági frissítések és a
kritikus hibajavítások kerülnek.RELENG_4_8A FreeBSD-4.8 kiadás ága, ahová
csak biztonsági frissítések és a
kritikus hibajavítások kerülnek.RELENG_4_7A FreeBSD-4.7 kiadás ága, ahová
csak biztonsági frissítések és a
kritikus hibajavítások kerülnek.RELENG_4_6A FreeBSD-4.6 és FreeBSD-4.6.2 kiadások
ága, ahová csak biztonsági
frissítések és a kritikus
hibajavítások kerülnek.RELENG_4_5A FreeBSD-4.5 kiadás ága, ahová
csak biztonsági frissítések és a
kritikus hibajavítások kerülnek.RELENG_4_4A FreeBSD-4.4 kiadás ága, ahová
csak biztonsági frissítések és a
kritikus hibajavítások kerülnek.RELENG_4_3A FreeBSD-4.3 kiadás ága, ahová
csak biztonsági frissítések és a
kritikus hibajavítások kerülnek.RELENG_3A FreeBSD-3.X fejlesztési ága, más
néven a 3.X-STABLE.RELENG_2_2A FreeBSD-2.2.X fejlesztési ága,
más néven a 2.2-STABLE. Ez az ág
manapság már elavult.A kiadások címkéiEzek a címkék a &os; egyes kiadásainak
dátumára hivatkoznak. Egy kiadás
elõkészítésének és
terjesztésének folyamatáról
részleteiben a kiadásokat
összefoglaló lapról és a
kiadások építésérõl
szóló cikkbõl
tájékozódhatunk. Az src fában
RELENG_ kezdetû címkéket
találunk. A
ports és doc fákban a
címkék nevei a RELEASE
elõtaggal kezdõdnek. Végezetül a
www fában
nincsenek kiadásokhoz tartozó
címkék.RELENG_7_2_0_RELEASEFreeBSD 7.2RELENG_7_1_0_RELEASEFreeBSD 7.1RELENG_7_0_0_RELEASEFreeBSD 7.0RELENG_6_4_0_RELEASEFreeBSD 6.4RELENG_6_3_0_RELEASEFreeBSD 6.3RELENG_6_2_0_RELEASEFreeBSD 6.2RELENG_6_1_0_RELEASEFreeBSD 6.1RELENG_6_0_0_RELEASEFreeBSD 6.0RELENG_5_5_0_RELEASEFreeBSD 5.5RELENG_5_4_0_RELEASEFreeBSD 5.4RELENG_4_11_0_RELEASEFreeBSD 4.11RELENG_5_3_0_RELEASEFreeBSD 5.3RELENG_4_10_0_RELEASEFreeBSD 4.10RELENG_5_2_1_RELEASEFreeBSD 5.2.1RELENG_5_2_0_RELEASEFreeBSD 5.2RELENG_4_9_0_RELEASEFreeBSD 4.9RELENG_5_1_0_RELEASEFreeBSD 5.1RELENG_4_8_0_RELEASEFreeBSD 4.8RELENG_5_0_0_RELEASEFreeBSD 5.0RELENG_4_7_0_RELEASEFreeBSD 4.7RELENG_4_6_2_RELEASEFreeBSD 4.6.2RELENG_4_6_1_RELEASEFreeBSD 4.6.1RELENG_4_6_0_RELEASEFreeBSD 4.6RELENG_4_5_0_RELEASEFreeBSD 4.5RELENG_4_4_0_RELEASEFreeBSD 4.4RELENG_4_3_0_RELEASEFreeBSD 4.3RELENG_4_2_0_RELEASEFreeBSD 4.2RELENG_4_1_1_RELEASEFreeBSD 4.1.1RELENG_4_1_0_RELEASEFreeBSD 4.1RELENG_4_0_0_RELEASEFreeBSD 4.0RELENG_3_5_0_RELEASEFreeBSD-3.5RELENG_3_4_0_RELEASEFreeBSD-3.4RELENG_3_3_0_RELEASEFreeBSD-3.3RELENG_3_2_0_RELEASEFreeBSD-3.2RELENG_3_1_0_RELEASEFreeBSD-3.1RELENG_3_0_0_RELEASEFreeBSD-3.0RELENG_2_2_8_RELEASEFreeBSD-2.2.8RELENG_2_2_7_RELEASEFreeBSD-2.2.7RELENG_2_2_6_RELEASEFreeBSD-2.2.6RELENG_2_2_5_RELEASEFreeBSD-2.2.5RELENG_2_2_2_RELEASEFreeBSD-2.2.2RELENG_2_2_1_RELEASEFreeBSD-2.2.1RELENG_2_2_0_RELEASEFreeBSD-2.2.0AFS oldalakA &os; a következõ szerverein érhetõ el
AFS:SvédországAz állományok a következõ helyen
érhetõek el:
/afs/stacken.kth.se/ftp/pub/FreeBSD/stacken.kth.se # Stacken Computer Club, KTH, Svédország
130.237.234.43 #hot.stacken.kth.se
130.237.237.230 #fishburger.stacken.kth.se
130.237.234.3 #milko.stacken.kth.seKarbantartó:
ftp@stacken.kth.seRsync oldalakA most következõ oldalakon a &os;-t
érhetjük el az rsync protokollal. Az
rsync segédprogram
mûködésében leginkább a &man.rcp.1;
parancshoz hasonlít, de sokkal több
beállítással rendelkezik, és az rsync
távoli frissítéseket kezelõ protokollja
segítségével csak az állományok
csoportjai között levõ eltéréseket
küldi át, amivel a hálózaton
keresztüli szinkronizáció rendkívül
felgyorsítható. Ez olyankor jelent számunkra
a legtöbbet, ha a &os; FTP szerverének vagy CVS
repositoryjának egyik tükrözését
tartjuk karban. Az rsync több
operációs rendszerre is elérhetõ,
és &os;-n a net/rsync
port vagy csomag tartalmazza.Cseh Köztársaságrsync://ftp.cz.FreeBSD.org/Elérhetõ gyûjtemények:ftp: a &os; FTP szerverének részleges
tükrözése.FreeBSD: a &os; FTP szerverének teljes
tükrözése.Hollandiarsync://ftp.nl.FreeBSD.org/Elérhetõ gyûjtemények:FreeBSD: a &os; FTP szerverének teljes
tükrözése.Oroszország
- rsync://cvsup4.ru.FreeBSD.org
+ rsync://ftp.mtu.ruElérhetõ gyûjtemények:
+ FreeBSD: A &os; FTP szerver teljes
+ tartalma.FreeBSD-gnats: A GNATS
hibanyilvántartó
adatbázis.
+ FreeBSD-Archive: A &os; archívumait
+ tároló FTP szerver
+ tükrözése.Tajvanrsync://ftp.tw.FreeBSD.org/rsync://ftp2.tw.FreeBSD.org/rsync://ftp6.tw.FreeBSD.org/Elérhetõ gyûjtemények:FreeBSD: a &os; FTP szerverének teljes
tükrözése.Egyesült Királyságrsync://rsync.mirrorservice.org/Elérhetõ gyûjtemények:sites/ftp.freebsd.org: a &os; FTP szerverének
teljes tükrözése.Amerikai Egyesült Államokrsync://ftp-master.FreeBSD.org/Ezt a szervert csak az elsõdleges &os;
tükrözéseknek szabad
használniuk.Elérhetõ gyûjtemények:FreeBSD: a &os; FTP szerverének központi
archívuma.acl: a &os; központi ACL listája.rsync://ftp13.FreeBSD.org/Elérhetõ gyûjtemények:FreeBSD: a &os; FTP szerver teljes
tükrözése.
diff --git a/hu_HU.ISO8859-2/share/sgml/freebsd.ent b/hu_HU.ISO8859-2/share/sgml/freebsd.ent
index 9e5275a76e..b8356a77e9 100644
--- a/hu_HU.ISO8859-2/share/sgml/freebsd.ent
+++ b/hu_HU.ISO8859-2/share/sgml/freebsd.ent
@@ -1,94 +1,94 @@
UNIX">
NIS">
TeX'>
LaTeX'>
-
-
+
+
-
-
+
+
[ OK ]">
[ Cancel ]">
[ Yes ]">
[ No ]">