LINUX lépésrõl lépésre
Föoldal
Humor
Aloe vera

Károli Biblia
The Sims 2
Képes oldal
Vendégkönyv
Társalgó

 Szabó Bálint
 

LINUX lépésről lépésre

(Bővített kiadás)

 

Tartalomjegyzék

Tartalomjegyzék_______________________________________________ 2

Előszó_______________________________________________________ 9

Köszönet____________________________________________________ 11

Járjuk körül__________________________________________________ 12

A démonok konfigurálása____________________________________ 12

A démonok indítása________________________________________ 13

Port szám________________________________________________ 14

A parancsértelmező_________________________________________ 15

Process-ek, job-ok________________________________________ 17

További hasznos parancsok__________________________________ 20

Memória kezelés_____________________________________________ 28

Lemezek, fájlrendszerek, fájlok__________________________________ 30

A háttértárak elérhetősége___________________________________ 34

Partícionálás______________________________________________ 35

A fájlrendszer létrehozása____________________________________ 39

A fájlrendszerek csatlakoztatása a rendszerünkbe: mountolás_________ 40

A lemezek ellenőrzése_______________________________________ 43

Fájlok hozzáférése__________________________________________ 44

A fájlok mentése a tar programmal______________________________ 47

Az ln parancs______________________________________________ 49

A rendszer indítása_____________________________________________ 50

Az indulás_________________________________________________ 50

Futási szintek______________________________________________ 50

Leállítás__________________________________________________ 58

Felhasználók bejelentkezése, karbantartása__ ______________________ 60

Bejelentkezés helyi terminálról________________________________ 60

Bejelentkezés hálózaton keresztül_____________________________ 61

A hosts.allow és a hosts.deny fájlok____________________________ 63

Ha már bejelentkeztünk_____________________________________ 64

  A felhasználói környezet____________________________________ 66

  Karbantartó programok____________________________________ 76

Időzített parancsvégrehajtás, a crond____________________________ 79

A crontab fájl beállítása______________________________________ 79

TCP/IP alapok______________________________________________ 81

Interfészek és IP címek______________________________________ 81

Cím osztályok______________________________________________ 82

Alhálózatok________________________________________________ 84

Útválasztás________________________________________________ 85

Hálózati interfészek konfigurálása (ifconfig, route)_________________ 87

IP aliasing_________________________________________________ 90

Névkiszolgálás_______________________________________________ 92

A /etc/hosts fájl_____________________________________________ 92

A NIS____________________________________________________ 93

A DNS____________________________________________________ 93

A feloldó_________________________________________________________ 95
A konfigurációs fájlok_______________________________________________ 95
A resolv.conf fájl___________________________________________________ 97
A Linux névkiszolgálója______________________________________________ 98

Levelezés__________________________________________________ 109

A levél__________________________________________________ 109

A levél kézbesítése__________________________________________ 113

  Levelezési útválasztás az Interneten____________________________________ 113

Egy példa________________________________________________ 114

Az EXIM beállítása és indítása_______________________________ 115

Indítás__________________________________________________________ 115

Az EXIM konfigurációs lehetőségei____________________________________ 118

Egy másik példa___________________________________________ 131

Az álnevek használata______________________________________ 133

A SAMBA fájlszerver________________________________________ 138

SMB____________________________________________________ 138

Indítás___________________________________________________ 139

Installálás:_______________________________________________ 141

A szerver, mint démon______________________________________ 142

A szerver futtatása kérésre__________________________________ 142

Az smb.conf konfigurációs fájl________________________________ 143

Egy tipikus smb.conf fájl_____________________________________________ 147

További hasznos paraméterek_________________________________________ 148

Felhasználási ötletek_______________________________________ 151

FAX szerver________________________________________________ 153

Az Apache web szerver_______________________________________ 168

A konfigurációs fájlok______________________________________ 168

A httpd.conf fájl___________________________________________________ 168

Az access.conf fájl_________________________________________________ 174

Az srm.conf fál____________________________________________________ 177

SQUID proxy cache_________________________________________ 185

Rövid ismertetés__________________________________________ 185

Az ajánlott hardver_________________________________________ 186

Indítás___________________________________________________ 187

A kliensek konfigurálása____________________________________ 189

A squid.conf fájl lehetőségei_________________________________ 192

Hozzáférés szabályozása_____________________________________________ 192

További lehetőségek_______________________________________________ 196

Kapcsolat PPP-n keresztül____________________________________ 199

Előkészítés_______________________________________________ 199

A pppd beállítása__________________________________________ 200

Az options fájl____________________________________________________ 201

A pap-secrets és chap-secrets fájlok (PAP hitelesítés CHAP hitelesítés)_________ 208

Kapcsolatok konfigurálása___________________________________________ 211

A pppconfig program_______________________________________________ 215

Automatikus kapcsolat az új pppd démonnal______________________________ 223

Automatikus kapcsolatfelvétel – diald___________________________________ 224

PPP szerver______________________________________________________ 232

A bootp használata__________________________________________ 235

A bootptab konfigurációs fájl_________________________________ 236

Indítás___________________________________________________ 237

A Network File System használata_____________________________ 239

A démon indítása__________________________________________ 239

A legfontosabb használható opciók____________________________________ 240

Az exports konfigurációs fájl_________________________________ 241

Az NFS kötetek mountolása_________________________________ 242

Röviden az installálásról (I. függelék)___________________________ 245

Hol szerezzünk Linuxot_____________________________________ 245

Bootolás_________________________________________________ 245

Első lépések______________________________________________ 246

Partícionálás______________________________________________ 246

Partíciók aktiválása________________________________________ 247

Alap beállítások___________________________________________ 247

Csomagkezelés___________________________________________ 248

Kernel fordítás (II. függelék)__________________________________ 249

Honnan vegyünk új kernelt és milyet használjunk________________ 250

Kernel forrás telepítése_____________________________________ 250

A .config fájl elkészítése____________________________________ 251

Modulok________________________________________________________ 252

A lehetőségek____________________________________________________ 253

Fordítás_________________________________________________________ 282

A lilo.conf beállítása________________________________________________ 284

Az új kernel indítása________________________________________________ 287

A kernel paraméterei (III. függelék)____________________________ 288

Meghajtók a kernelben_____________________________________ 288

A paraméterek____________________________________________ 289

A modprobe paraméterek___________________________________ 307

Az X Window System konfigurálása (IV. függelék)________________ 308

Az X szerver és az X kliens__________________________________ 308

Az X szerver konfigurálása (az XF86Config fájl)__________________ 309

Finom beállítás____________________________________________________ 319

Indítás az xdm (kdm) démonnal_______________________________ 323

Lehetőségek_____________________________________________ 323

X terminál________________________________________________________ 323

Programok nem saját képernyőn_______________________________________ 324

Az ablakkezelők___________________________________________ 324

A KDE grafikus keretrendszer (V. függelék)______________________ 326

Munka a KDE-vel_________________________________________ 328

A KFM fájlkezelő__________________________________________ 329

A KDE beállító központ_____________________________________ 332

Multimédia Linux Alatt (VI. függelék)__________________________ 349

Röviden az Mpeg3 formátumról______________________________ 349

MP3 Lejátszók Linux alatt___________________________________ 350

mpg123_________________________________________________________ 351

X11Amp_________________________________________________________ 351

freeamp_________________________________________________________ 352

Grafikai programok Linux alatt_______________________________ 353

Elvárások________________________________________________________ 353

G I M P__________________________________________________________ 353

X V____________________________________________________________ 355

Alsa telepítési útmutató (VII. függelék)_________________________ 357

1. Bevezetés______________________________________________ 357

1.1 Köszönet_____________________________________________________ 357

1.2 A dokumentum változásai_________________________________________ 357

1.3 A dokumentum új verziói__________________________________________ 357

1.4 Visszajelzés____________________________________________________ 357

1.5 Terjesztési irányelv______________________________________________ 358

2. Gyors Installálási útmutató________________________________ 358

2.1 Installálás_____________________________________________________ 358

Hang lejátszás, és felvétel__________________________________________ 359

3. Mielőtt elkezdenénk_____________________________________ 359

3.1 Bevezetés_____________________________________________________ 359

3.2 Általános információk az ALSA driverekről____________________________ 360

3.3 Támogatott hardware____________________________________________ 360

3.4 Egyéb leírások__________________________________________________ 361

4. Hogyan installáljuk az ALSA hang drivereket?________________ 362

4.1 Amire szükségünk van.___________________________________________ 362

4.2 ALSA driverek letöltése__________________________________________ 363

4.4 Kitömörítés____________________________________________________ 363

4.5 Fordítás______________________________________________________ 364

4.6 Az eszközök előkészítése__________________________________________ 364

5. A driver betöltése_______________________________________ 365

5.1 Beillesztés a modprobe-val________________________________________ 365

5.2 Melyik modult melyik kártyához?____________________________________ 365

5.3 Driverek autoprobe nélkül_________________________________________ 367

5.4 A kerneld beállítás_______________________________________________ 370

5.5 Visszafele kompatibilitás__________________________________________ 372

6. Tesztelés, és használat____________________________________ 372

6.1 A /proc filerendszer______________________________________________ 372

6.2 A mixer_______________________________________________________ 375

6.4 További információk_____________________________________________ 380

7. Tippek, és probléma megoldás_____________________________ 381

7.1 Linux kernel forrása______________________________________________ 381

7.2 Driver betöltés_________________________________________________ 381

Hangkártya kompatibilitás__________________________________________ 381

"Device busy" vagy "unresolved symbols"_____________________________ 381

Ellenőrizzük a PnP beállítást_______________________________________ 382

Biztos, hogy jók a paraméterek?____________________________________ 382

7.3 Driver betöltve, de nincs hang______________________________________ 383

7.5 Hiba jelentés___________________________________________________ 384

7.6 Tipp: CD lejátszás_______________________________________________ 385

7.8 Tipp: új kernel? Új modulok!_______________________________________ 385

7.9 Tipp: KDE és ALSA driverek_______________________________________ 385

7.10 Tipp: az ALSA eszközök használata_________________________________ 386

7.11 Tipp: az összes modul eltávolítása__________________________________ 386

Irodalomjegyzék____________________________________________ 387

 


Előszó

Amikor a Linux operációs rendszerrel elkezdtem foglalkozni, úgy éreztem, nincs könnyű dolgom. Egy volt tanítványom ismertetett meg vele és bizony az első installálások után is sokszor kellett segítségül hívnom, mire kezdtem ráérezni az új rendszer adta lehetőségek ízére. Az egyszer sem fordult meg a fejemben, hogy otthagyjam és ne foglalkozzam vele tovább, mert úgy éreztem, hogy az addig ismert rendszerekhez képest sokkal több lehetőséget rejt magában, amit meg kell ismerni. Nem szabad kihagyni az alkalmat, hogy a "nagy, misztikus és elérhetetlen UNIX világhoz" közelebb kerüljek. Szóval próbáltam összeszedni a tudást onnan, ahonnan csak tudtam. Volt tanítványok, egyetemi rendszergazdák, egyetemisták, levelező listák és a Linuxhoz elérhető HOWTO-k, kérdés gyűjtemények és a rendszerhez adott dokumentációk. Később elkezdtek megjelenni magyar nyelvű kiadványok is A Rendszerről. Tehát volt anyag bőven, de egy-egy feladat megoldása így is nagyon sok munkával és utánjárással járt. Munkahelyeimmel szerencsém volt (és van), mert pusztán a feladatot fogalmazták meg, de az nagyrész rám volt bízva, hogy milyen úton tudom megvalósítani a legjobban és persze lehetőleg a legköltségkímélőbben. Egy-egy ilyen munkánál a lehetőségeket figyelembe véve legtöbbször a Linuxnál kötöttem ki. Tudtam, hogy van rá mód megoldani, csak az a kérdés, hogyan. Ez a rendszer borzasztó sok lehetőséget rejt a szerver operációs rendszerek piacán és egyre inkább felhasználóbarát, felkészülve az otthoni, irodai terjedésre is. Aki ismeri, az megszereti.

Nekem egyedül az hiányzott vele kapcsolatban, hogy nem találtam egy olyan leírást, amit egy feladat megfogalmazása után elég csak fellapozni és megmutatja az oda vezető utat. (De legalábbis egy oda vezető utat mutat.) Nem állítom, hogy ez a könyv olyan. Azt állítom, hogy ha ez a könyv ott lett volna velem, amikor megkapok egy feladatot, akkor valószínűleg a feladatra fordított idő nagyságrendekkel kevesebb lett volna.

Igen, most már csak az a kérdés, hogy miről szól ez a könyv és kinek szól ez a könyv.

A könyv a Linux azon lehetőségeiről szól, amit én az utóbbi 5 évben használtam és úgy-ahogy megismertem. Amire egy olyan rendszergazdának szüksége lehet, aki Magyarország második legnagyobb vegyi gyárának informatikai életét terelgeti egy olyan világban, ahol sokan próbálnak megélni többé-kevésbé működő rendszerek eladásából. Próbálnak rávezetni gyanútlan vezetőket egy olyan útra, amiről csak nagyon nagy anyagi ráfordítás ellenében lehetne visszakozni, ha rájönnek a rendszer korlátaira és buktatóira.

És kinek szól? Leginkább sorstársaimnak, akiknek hasonló problémákkal kell szembenézni nap mint nap és szorgalmasan, nagy lelkesedéssel keresik a megoldást. Azoknak, akik az informatika területén otthonosan mozognak, van tapasztalatuk más rendszerekkel kapcsolatban és úgy gondolják, hogy érdemes belefogni annak a rendszernek a megismerésébe, ami mellé az utóbbi időben a világ vezető informatikai cégei is felsorakoztak, látva annak elképesztő méretű terjedését.

Az informatikai világ manapság már nem az ablakok és az ajtók közötti különbségek ecsetelésétől zeng, hanem a GNU GPL mozgalom és a szabadon terjeszthető Linux operációs rendszer elképesztő méretű terjedéséről. Egy két éve olvastam valahol egy cikket (Elnézést kérek az írójától, hogy nem jegyeztem meg a nevét), amiben a mamut cégek hasonló célra szánt rendszereiről írt és azt a végkövetkeztetést vonta le, hogy amíg a "nagy cégek" egymás torkának esnek és bizonygatják a saját igazukat, addig a háttérből szépen csendben jön a Linux és kiteszi az indexet. Ma már bizton állíthatjuk, hogy ez igaz, és lehet, hogy már nincs szükség az indexre, hiszen senki nincs útban.


Köszönet

Köszönöm mindazoknak, akik segítettek nekem abban, hogy ez a könyv megjelenjen.

Köszönöm volt tanítványomnak Bérci Norbertnek, hogy megismertetett a Linux-szal és segített, amikor semmit nem értettem belőle.

Köszönöm volt tanítványomnak Cserna Zsoltnak (zsolt@kib4.pluto.vein.hu), hogy a multimédia fejezet megírásával hozzájárult a munkához és hogy lefordította Valentijn Sessinknek (valentyn@alsa-project.org) "Alsa-sound-mini-HOWTO" munkáját és ezzel is segített a könyv színvonalának emelésében. Ezúton neki is szeretném megköszönni a hozzájárulását a kiadáshoz.

Köszönöm Egresi Péternek (egresip@schwabo.hu), hogy a Linux FAX Szerver fejezetben leírhattam a tőle kapott nagyon hasznos alkalmazást.

Köszönöm Beke Olivérnek (oliver@almos.vein.hu), Bíró Zsoltnak (biro_zs@sop3.sop.matav.hu) és Sas Tibornak (tsas@balatontourist.hu) hogy segítettek az egyes fejezetek hibáinak felfedésében és a szerkesztési munkához hasznos tanácsokat adtak.

Köszönöm mindazoknak, akik a levelező listákon segítettek nekem, amikor nem boldogultam valamivel.

Köszönöm munkahelyemnek a Nitrogénművek Rt.-nek, hogy lehetőségem van alkalmazni ipari körülmények között a rendszer adta lehetőségeket.

Ezen kívül szeretném megköszönni feleségemnek, hogy elnézi nekem, ha néha otthon is le kell ülnöm a számítógép elé, és szüleimnek, akik megvették nekem első PC-met, megpecsételve ezzel sorsomat.

 

Szabó Bálint


Járjuk körül

Ez a fejezet arról fog szólni, hogy megtudjuk, milyen főbb szolgáltatásokat nyújt a Linux rendszer. A szolgáltatások általában hogyan érhetők el, mi a beállítás módja. Hogyan kell elindulni, mik azok a nélkülözhetetlen parancsok, utasítások, segédprogramok, amik nélkül nehéz az élet.

 

A Linux legfőbb szolgáltatása az init. Ez indul el elsőként, miután a kernel betöltődött. Ez határozza meg, hogy mely programok fognak lefutni, milyen további szolgáltatásokat végző programok, démonok fognak elindulni.

A démon egy közönséges program, ami valamilyen szolgáltatásért felelős. Onnantól kezdve, hogy elindítottuk egészen a leállításáig a memóriában marad, de általában inaktív állapotban van és csak akkor aktív, ha éppen a neki szóló feladatot hajtja végre.

 

Pl.:

WEB szervert szolgáltat az apache, vagy httpd démon.

Levelezést szolgál ki a sendmail, smail, vagy exim program.

Nyomtatásért felelős az lpd démon.

Az SMB-n keresztüli fájlmegosztást a SAMBA (smbd) biztosítja. (Így érhetjük el Linux szerverünket, mint fájl szervert win'xx gépekről is.)

Névkiszolgálást (name server) biztosít named (bind) program.

Stb.

 

A démonok konfigurálása

Minden ilyen programnak van egy, vagy több konfigurációs állománya, amiben a szükséges beállításokat el kell végezni. Ezek a konfigurációs állományok a /etc, vagy annak valamely -a szolgáltató programra jellemző nevű- alkönyvtárában vannak.

Ezek a fájlok általában egyszerű szöveges állományok, amiket egy egyszerű szövegszerkesztővel módosíthatunk. Vannak benne ’#’ jellel kezdődő sorok, amik "komment sorok" és röviden megmagyarázzák az utána következő opció jelentését.

Ezek a fájlok általában már akkor elkészülnek, amikor felinstalláljuk a programcsomagot. A szolgáltatások egy része már ezzel az alap konfigurációs állománnyal használható, de azért nem árt a finomhangolásokat elvégezni.

A beállításokat elvégezhetjük egy szövegszerkesztő segítségével, de az esetek nagytöbbségében van egy konfiguráló segédprogramja minden szolgáltatást végző programnak. Ez lehet egy egyszerű párbeszédes program, de lehet X Window felületen futó grafikus alkalmazás is. Célszerű először ilyennel próbálkozni, majd megnézni az elkészített konfigurációs szkriptet és szükség esetén még kézzel elvégezni a további módosításokat.

A démonok indítása

 

A szolgáltató programok, démonok indítása több féleképpen elvégezhető.

Indíthatjuk kézzel egy megfelelően felparaméterezett parancs kiadásával.

Indíthatjuk kézzel a megfelelő init szkript futtatásával (start, stop, reload paraméterekkel). Ezek a szkriptek a /etc/rc.d/init.d vagy a /etc/init.d könyvtárban vannak disztribúciótól függően. Kézzel történő indításhoz inkább ez a módszer ajánlott, ha van rá mód.

Automatikus indítást tesznek lehetővé az egyes futási szintekhez tartozó "rc könyvtárak". Az ezekben talált futtatható állományokat az init fogja elindítani az indítási folyamat közben.

Ezekről az indítási módokról az egyes szolgáltatások tárgyalásakor részletesen lesz szó.

 

Egy másik indítási mód az inetd metadémonon keresztüli indítás. Van olyan szolgáltatás, amire nincsen mindig szükség. Az ilyeneket felesleges lenne állandóan futtatni. Ezek kezelésére az inetd démon fut. Ez mindig a memóriában van és ha egy olyan igény lép fel, ami további szolgáltatás indítását igényli, akkor az inetd elindítja azt.

Az inetd program konfigurációs állománya a /etc/inetd.conf fájl. Ha itt megtalálható egy szolgáltatás, akkor az használható lesz, ha igény érkezik rá. Ha nem akarunk bizonyos szolgáltatásokat elérhetővé tenni, akkor csak tegyünk egy ’#’ jelet az őt indító sor elé és vagy adjuk ki a

kill -HUP szám

parancsot, ahol a szám az inetd processz azonosítója, amiről az alábbiakban még szó lesz ebben a fejezetben, vagy indítsuk újra a gépet, hogy újra elolvassa az inetd.conf állományt.

Az initd processz azonosítóját megkapjuk, ha kiadjuk a

ps ax|grep inetd

parancsot.

Láthatjuk, hogy még ilyen alapvető szolgáltatásokat végző program újrakonfigurálása miatt sem kell újraindítani a gépet.

Port szám

Az egyes szolgáltatásokhoz egy jól meghatározott úgynevezett port szám tartozik. Ezeken a portokon keresztül lehet megszólítani a szolgáltatásokat. Ezt általában a felhasználó elől rejtett formában teszik a kommunikációt végző programok. (és a hackerek...)


A szolgáltatás-port szám összerendelés a /etc/services fájlban található:

 

.

.

.

ftp             21/tcp

www             80/tcp

pop3            110/udp

.

.

.

 

A példából látható, hogy pl. a web szolgáltatást használó programok a 80-as porton fognak kommunikálni a szerverünkkel.

 

A parancsértelmező

Nagyon fontos program a felhasználó és a gép közötti kommunikáció szemszögéből a parancsértelmező, a shell.

A felhasználónak valahogy „szóba kell állnia” az operációs rendszerrel. Erre szolgál minden operációs rendszeren a parancsértelmező. A DOS-ra épülő rendszerekben a COMMAND.COM program végzi ezt a szerepet. A Linux rendszereken számos parancsértelmező (shell) áll rendelkezésre. A legelterjedtebb és alapbeállításként is ez használható, a bash shell (parancsértelmező). Használható shellek még többek között az ash, csh, sh, es, ksh, tcsh. (A rendszer által engedélyezett listát a /etc/shells fájl tartalmazza. Ezt bővíthetjük és szűkíthetjük igény szerint.)

Hogyan jutunk egy parancsértelmezőhöz?

Ha belépünk a rendszerünkbe karakteres felületen, akkor a bejelentkezési procedúra végén egyből egy ilyen shell-be jutunk. (Tehát megjelenik a prompt és a rendszer várja a parancsainkat.) Ha a karakteres felületen megnyomjuk az Alt+Fn billentyűt (Fn=F1,F2,F3,F4,F5,F6 funkció billentyű), akkor egy másik karakteres „virtuális terminál” fogad bennünket, ahol ugyancsak bejelentkezhetünk a rendszerbe és az előzőtől teljesen függetlenül dolgozhatunk.

Grafikus rendszert használva nyitni kell egy szöveges „terminál” ablakot a grafikus képernyőn (hasonlóan, mint a windows-os rendszerekben) és oda gépelhetjük be utasításainkat. Tehát bármely ablakkezelőt is választottuk, shell, terminal, console, vagy valami ehhez hasonló ikont keressünk a munkaasztalon.

 

(Parancsértelmező X Window System alatt)

Nagyon kellemes és hasznos szolgáltatása a bash shellnek, hogy képes kiegészíteni megkezdett parancsunkat, vagy a begépelt állománynevet. Ha elkezdünk beírni egy parancsot, akkor nem kell azt végig gépelni, hanem közben megnyomva a Tabulator billentyűt az kiegészíti a megkezdett parancsot. Ha nem egyértelmű a befejezés (több ilyen kezdetű parancs is van), akkor hangjelzést kapunk. Ha ilyenkor kétszer gyorsan egymás után megnyomjuk a Tabulator-t, akkor kiadja az összes ilyen kezdetű parancsot és ennek megfelelően egy-két további karakter leütésével haladhatunk tovább. Ugyanez igaz a fájlnevek esetén is. Ez hasznos lehet, ha nem emlékszünk pontosan a parancsnévre, vagy állománynévre és a gépelést is megkönnyíti és pontosabbá teszi. A másik kellemes szolgáltatás a már kiadott parancsaink tárolása. A fel és lefelé mozgató kurzormozgatókkal eddig begépelt parancsaink között választhatunk és tetszés szerint újraszerkeszthetjük és újra futtathatjuk őket. (A gép leállítása előtti parancsainkat is megjegyzi.)

Téglalap feliratnak: Shell ikonja a KDE K panelen. 

 


Process-ek, job-ok

Minden éppen futó program egy-egy processzt határoz meg. Ez a legkisebb, párhuzamos feldolgozásra alkalmas egység. A processznek van egy azonosító száma, amivel lehet rá hivatkozni. Az éppen futó processzek listáját a

ps ax

parancs kiadásával kapjuk meg.

Ha a lista hosszú, akkor a more program ebben a rendszerben is a segítségünkre siet.

 

samson:~ # ps ax|more

  PID TTY STAT TIME COMMAND

    1  ?  S    0:04 init

    2  ?  SW   0:00 (kflushd)

    3  ?  SW   0:00 (kpiod)

    4  ?  SW   0:00 (kswapd)

    9  ?  S    0:00 /sbin/kerneld

   13  ?  S    0:00 update (bdflush)

   66  ?  S    0:00 /usr/sbin/rpc.ugidd

   72  ?  S    0:00 /usr/sbin/syslogd

   76  ?  S    0:00 /usr/sbin/klogd -c 1

  102  ?  S    0:00 /usr/sbin/inetd

  123  ?  S    0:00 /usr/sbin/lpd

  124  ?  S    0:00 /usr/sbin/lpd

  136  ?  S    0:00 /usr/sbin/cron

  137  ?  S    0:00 sendmail: accepting connections on port 25

  140  ?  S    0:00 /opt/applix/axdata/axnet

  143  ?  S    0:00 /usr/sbin/squid -sYD

  150  ?  S    0:00 pppd persist demand idle 60 call datanet

  152   1 S    0:00 /sbin/mingetty --noclear tty1

  153   2 S    0:00 /sbin/mingetty tty2

  154   3 S    0:00 /sbin/mingetty tty3

  155   4 S    0:00 /sbin/mingetty tty4

--More--

 

Ha csak bizonyos karaktersorozatot tartalmazó processzlistát kérünk, akkor a grep programmal kell kombinálni a parancssorunkat:

 

samson:~ # ps ax|grep tty

  152   1 S    0:00 /sbin/mingetty --noclear tty1

  153   2 S    0:00 /sbin/mingetty tty2

  154   3 S    0:00 /sbin/mingetty tty3

  155   4 S    0:00 /sbin/mingetty tty4

  156   5 S    0:00 /sbin/mingetty tty5

samson:~ #

 

Ha egy processzt le akarunk állítani, akkor azt megtehetjük a megfelelő init szkript stop paraméterrel való futtatásával, ha van ilyen:

 

samson:~ # /etc/rc.d/init.d/apache stop

Shutting down service httpd                                           done

samson:~ #

 

Ha nincsen, akkor használhatjuk a kill parancsot a processzazonosítóra:

kill -9 2031

Ezzel utasítottuk a 2031-es azonosítóval rendelkező processzt, hogy feltétel nélkül (-9), azonnal lépjen ki.

 

Használhatjuk a

killall processznév

formát is.

 

Ha egy shellben dolgozunk és egy éppen futó programot akarunk "félreállítani" úgy, hogy ne szakadjon meg a futása, akkor Ctrl+Shift+z megnyomásával felfüggeszthetjük a működését.

 

[1]+  Stopped                 szamol

samson:~#

 

Ha azt akarjuk, hogy a háttérben folytassa a munkát, mert olyan természetű dolgot végez, amihez nem szükséges emberi beavatkozás, akkor adjuk ki a

bg

parancsot.

Ha kíváncsiak vagyunk, hogy milyen munkáink futnak a háttérben, akkor adjuk ki a

jobs

parancsot.

 

samson:~ # jobs

[1]+  Stopped                 vi

 

Ha újra előtérbe akarjuk hozni valamelyiket, akkor az

fg szám

paranccsal tehetjük meg, ahol a szám a munka száma. A vi program esetében éppen az 1 volt.)

 

Az ilyen fajta job kezelésre nem túl gyakran van szükség, hiszen van elég virtuális terminál és ablak a munka elvégzésére (ezekről később lesz szó), de azért tudjunk róla, hogy létezik.

 

További hasznos parancsok

Ha rendszerünk foglaltságáról szeretnénk információt kérni, akkor a

top

program kiváló lehetőséget ad erre. Megmondja az átlagos leterheltséget, mennyi processz fut, milyen mértékben használják ezek a rendszer erőforrásait.

 

  2:23am  up  3:30,  4 users,  load average: 1.02, 1.01, 0.96

52 processes: 48 sleeping, 4 running, 0 zombie, 0 stopped

CPU states: 82.8% user, 17.1% system,  0.0% nice,  0.3% idle

Mem:  128132K av,  72940K used,  55192K free,  32308K shrd,   5356K buff

Swap:  72288K av,      0K used,  72288K free                 48100K cached

 

  PID USER     PRI  NI  SIZE  RSS SHARE STAT  LIB %CPU %MEM   TIME COMMAND

  480 root      14   0   892  892   748 R       0 73.4  0.6  81:26 xosview.bin

  478 root       3   0  1844 1844  1408 R       0 23.9  1.4   0:02 xterm

  446 root       0   0 12040  11M  1784 R       0  1.9  9.3   0:19 X

  646 root       1   0   760  760   596 R       0  0.5  0.5   0:00 top

    1 root       0   0   164  164   140 S       0  0.0  0.1   0:04 init

    2 root       0   0     0    0     0 SW      0  0.0  0.0   0:00 kflushd

    3 root       0   0     0    0     0 SW      0  0.0  0.0   0:00 kpiod

    4 root       0   0     0    0     0 SW      0  0.0  0.0   0:00 kswapd

    9 root       0   0   360  360   312 S       0  0.0  0.2   0:00 kerneld

   13 root       0   0   244  244   204 S       0  0.0  0.1   0:00 update

   62 bin        0   0   360  360   288 S       0  0.0  0.2   0:00 portmap

   66 root       0   0   416  416   340 S       0  0.0  0.3   0:00 rpc.ugidd

   72 root       0   0   540  540   440 S       0  0.0  0.4   0:00 syslogd

   76 root       0   0   400  400   340 S       0  0.0  0.3   0:00 klogd

   98 at         0   0   444  444   364 S       0  0.0  0.3   0:00 atd

  102 root       0   0   448  448   376 S       0  0.0  0.3   0:00 inetd

  123 root       0   0   504  504   440 S       0  0.0  0.3   0:00 lpd

.

.

 

A free program a memóriánk foglaltságát mutatja.

 

samson:~ # free

             total       used       free     shared    buffers     cached

Mem:        128132      72864      55268      31960       5372      48116

-/+ buffers/cache:      19376     108756

Swap:        72288          0      72288

samson:~ #

 

A df program a winchesterekről ad hasonló információt.

 

samson:~ # df

Filesystem         1024-blocks  Used Available Capacity Mounted on

/dev/hda3            2974550 2038498   782230     72%   /

/dev/hda4            1100288  980320   119968     89%   /dos

/dev/hda1            2044240 1260316   783924     62%   /win98

/dev/hdb2            1022112  968620    53492     95%   /mnt/disk

samson:~ #

 

Szükségünk lehet a környezeti változók beállítására, vagy lekérdezésére is. Az aktuális állapotról képet kapunk a set parancs kiadásával.

bash-2.02# set

.

.

.

POVRAYOPT=-l/usr/lib/povray/include

PPID=907

PRINTER=lp

PS1='\s-\v\$ '

PS2='> '

PS4='+ '

PWD=/root

QTDIR=/usr/lib/qt

SHELL=/bin/bash

SHELLOPTS=braceexpand:hashall:histexpand:monitor:history:ignoreeof:interactive-comments:emacs

SHLVL=2

TERM=xterm

TEXINPUTS=':~/.TeX:/usr/doc/.TeX:/usr/doc/.TeX:'

UID=0

USER=root

WINDOWMANAGER=/usr/X11R6/bin/kde

XKEYSYMDB=/usr/X11R6/lib/X11/XKeysymDB

XNLSPATH=/usr/X11R6/lib/X11/nls

XSESSION_IS_UP=yes 

.

.

.

Ha nem akarjuk az összeset látni, hanem konkrétan egy adott változó aktuális értékére vagyunk kíváncsiak, akkor az

echo $változónév

parancs kiadásával megtudjuk annak értékét.

bash-2.02# echo $PATH

/sbin:/usr/sbin:/root/bin:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/openwin/bin:/var/lib/dosemu:/usr/games/bin:/usr/games:/opt/gnome/bin:/opt/kde/bin

bash-2.02#

bash-2.02# echo $TERM

xterm

 

A változót beállítani például az

export

programmal lehet.

 

bash-2.02# export TERM=vt100

bash-2.02# echo $TERM

vt100

bash-2.02#

 

Könyvtárak tartalmának listázására az

ls

parancsot használjuk.

 

bash-2.02# ls

vizsga.arj

bash-2.02#

 

Az ’l’ kapcsoló több információt ad az adott fájlról.

 

bash-2.02# ls -l vizsga.arj

-rwxr-xr-x   1 kalman   root       168391 Jul  7 10:30 vizsga.arj

bash-2.02#

 

Az ’a’ kapcsoló a ’.’-tal kezdődő fájlokat is mutatja. Együtt használva az ’l’ kapcsolóval egy igen részletes listát kapunk a fájlokról. (Ha hosszú a lista, akkor kombinálható a more programmal.)

 

bash-2.02# ls -al|more

total 278

drwxr-xr-x   6 kalman   users        1024 Jun 26 20:14 .

drwxr-xr-x  27 root     root         1024 Sep 16 06:29 ..

-rw-r--r--   1 kalman   users        5742 Dec  8  1998 .Xdefaults

-rw-r--r--   1 kalman   users          46 May  7  1996 .Xmodmap

lrwxrwxrwx   1 kalman   users          10 Jun 26 19:56 .Xresources -> .Xdefaults

-rw-------   1 kalman   users           0 May 18  1996 .bash_history

-rw-r--r--   1 kalman   users        1296 Jul 24  1997 .bashrc

-rw-r--r--   1 kalman   users           0 Nov 20  1995 .dayplan

-rw-------   1 kalman   users           0 May  8  1996 .dayplan.priv

-rw-r--r--   1 kalman   users         208 Nov 17  1995 .dvipsrc

-rw-r--r--   1 kalman   users        4022 Jul 13  1998 .emacs

-rw-r--r--   1 kalman   users        1168 Feb  3  1998 .exrc

-rw-r--r--   1 kalman   users        5376 Aug 28  1996 .gimprc

drwx------   2 kalman   users        1024 May  8 23:12 .grok

drwxr-xr-x   2 kalman   users        1024 May  8 23:12 .hotjava

-rw-r--r--   1 kalman   users        7924 Oct  7  1997 .jazz

-rw-r--r--   1 kalman   users         164 Nov 17  1995 .kermrc

-rw-r--r--   1 kalman   users       10376 Sep  1  1996 .lyxrc

-rw-r--r--   1 kalman   users        2070 Nov 17  1995 .nc_keys

--More--    

 

A cp programmal tudunk másolni fájlokat és könyvtárakat.

 

bash-2.02# cp lemez.txt /home/szabob/

 

bash-2.02# cp -ar private /home/szabob/

 

Az ’a’ paraméterrel való másoláskor a másolatok is megtartják az összes eredeti attribútumot. Az ’r’ paraméter azt jelenti, hogy könyvtár másolásakor annak alkönyvtárait is másolja.

 

A cd és az mkdir programok hasonló működésűek, mint a DOS rendszerben.

Az rm programmal lehet fájlokat és könyvtárakat is törölni.

 

rm fájlnév

rm -rf könyvtárnév

 

A * és ? karakterek hasonló működésűek, mint a DOS rendszerben.

 

Használhatunk úgynevezett álneveket (alias neveket) a programok indítására, ha például nem akarunk állandóan hosszú paraméterlistát használni azok indítására.

 

alias ls='ls --color'

 

Ennek hatására, ha kiadjuk az ls parancsot, akkor valójában az ls –color hajtódik végre.

Az alias neveinket célszerű a felhasználói .profile-ban rögzíteni a felhasználó saját könyvtárában. (/home/usernév/.profile, vagy a /home/usernév/.bashrc személyre szabott bash konfigurációs fájlban.)

 

Egy fájl tartalmát megnézhetjük a

cat fájlnév

parancs kiadásával.

 

Komfortosabb a

less fájlnév

használata. (Ebben lehet fel-le közlekedni és van lehetőség a sztring keresésre is, ha egy ’/’ jel után beütjük a keresett sztringet.)

 

Egyszerű fájl szerkesztésre ad lehetőséget a

joe

szerkesztő program.

 

Indítani a joe parancs kiadásával lehet. Ha joe fájlnév alakban indítjuk, akkor a paraméternek kapott fájlt fogja behúzni szerkesztésre, ha ilyen nincs, akkor most létrehozza.

Néhány hasznos vezérlő parancs:

Mozogni, törölni, gépelni a szokásos módon lehet.

Ctrl+k+h  A help hívása

Ctrl+k+d  A szöveg mentése

Ctrl+k+x  Mentés és kilépés

Ctrl+c     Kilépés mentés nélkül

Ctrl+k+u  Ugrás a szöveg elejére

Ctrl+k+v  Ugrás a szöveg végére

Ctrl+k+b  Blokk elejének meghatározása

Ctrl+k+k  Blokk végének meghatározása

Ctrl+k+c  Blokk másolása

Ctrl+k+m Blokk mozgatása

Ctrl+k+f   Sztring keresése

 

Az egeret is nagyon hatékonyan használhatjuk akár karakteres felületen is a gpm program indulása után.

A bal egérgombot nyomva tartva kijelölhetünk vele. Három gombos egér esetén a középső megnyomásával, kettő gombos esetén a bal+jobb egyidejű lenyomásával a kurzorhoz tesszük le a kijelölt képernyő tartományt.

Az egyik legfontosabb program a

man

Ezzel szinte az összes fontos fájlról, programról és parancsról részletes leírást kapunk. Olvasása nagyon hasznos lehet.

Pl:

man ls

A fent említett programok úgy érzem nélkülözhetetlenek Linux használata során, ezért írtam le rögtön a könyv elején a használatukat. Ez messze nem részletes leírása volt ezen programoknak, csak a minimális használathoz elég. Aki részletesebben kíváncsi az összes lehetőségre annak tényleg a man oldalak olvasását javaslom.

 

Ezt a könyvet vehetjük egy nagyon szűkre szabott leírásnak a rendszerről. A kezdeti lépésektől a szolgáltatásokat biztosító szerver programokig. Akinek ez nem ad elegendő információt, mert részletesen el szeretne mélyedni a rendszer lehetőségeinek megismerésében, annak javaslom a Kezdők kézikönyvét, az Installációs kézikönyvet, a Rendszeradminisztrátorok kézikönyvét, a Hálózati adminisztrátorok kézikönyvét és a többi ezer és ezer oldalas dokumentációt.

(Mert a Linux egy jól dokumentált rendszer...)


Memóriakezelés

A Linuxban szerencsére nincs meg az a memória felosztás, ami sajnos az egyik legelterjedtebb operációs rendszernek még mindig része. A Linux teljesen egyben képes kezelni a rendelkezésére álló fizikai memóriát. És azt nagyon intenzíven ki is használja. Ha egy lemezművelet során a memóriába töltődött egy fájl, akkor a fizikai memória egy része lemez cache-ként fog viselkedni. Az ezzel a fájllal végez minden művelet a memóriában fog lezajlani, nem kell a jóval lassabb lemezhez nyúlni. A cache-ből törlődni fog a fájl, ha már elég régen nem használtuk és kell a hely esetleg egy másik fájlnak. Ez a lemez cache funkció. Veszélyes is lehet olyan szempontból, hogyha a rendszer leáll valami oknál fogva (pl. áramszünet esetén, vagy valaki lekapcsolja a gépet), akkor a memória tartalma nem kerül vissza a lemezre, tehát a nyitott fájl sérülni fog. A sync parancs hatására minden cache terület kiürül a lemezre.

Alaptörvény, hogy a fizikai memóriából soha nincs elég. Ha megtelik és a rendszerünknek még mindig szüksége van további memóriára, akkor képes a lemez egy részét úgy kezelni, mintha az fizikai memória lenne. Ezt úgy kell érteni, hogy a futó programoknak egy részét egy meghatározott lemezterületre fogja kirakni a rendszer és ha szükség van rá, akkor onnan tölti be. Ezt a technikát lapozásnak nevezzük. Az a terület a lemezen, amit a memória kiegészítéseként használ a rendszer, a swap (csere) terület. Ez lehet egy egyszerű fájl, de érdemesebb külön partíciót létrehozni erre a célra. Az ideális eset az, ha egy külön winchestert használunk swappelésre, ami jó gyors legyen. A különálló partíció egy egyszerű, fájlrendszer nélküli partíció legyen, amit célszerű külön erre a célra kitalált 82 (Linux swap) típusúra létrehozni az fdisk programmal. Ha csak egy egyszerű fájlt akarunk swap területként használni, akkor lehetőleg egybefüggő területet nevezzünk ki erre a célra.

Ezt megtehetjük pl a dd programmal.

dd if=/dev/zero of=/sw1 bs=1024 count=65536

Ezzel elkészítettünk egy 64 MB nagyságú swap fájlt sw1 néven a gyökér könyvtárban.

Mivel a Linux 4KB-os méretű memória lapokat használ, ezért célszerű ennek egész számú többszörösét használni.

Ez után az mkswap paranccsal be kell állítani a fájt, vagy partíciót, hogy a rendszer használhassa swap területként.

mkswap /sw1 65536

Ez után tudtára adhatjuk a rendszernek, hogy használhatja a swap területet.

swapon /sw1

(Lekapcsolni egy swap területet a swapoff paranccsal lehet hasonló módon.)

Általában telepítéskor a rendszer szépen rákérdez, milyen területeket akarunk swap területnek használni és ezeket berakja a /etc/fstab fájlba. Az init folyamat során az itt található swap területek automatikusan használatba kerülnek.

swapon -a

Ha kiadjuk a swapoff -a parancsot, akkor az ugyan itt található swap területek használaton kívül lesznek, a kézzel hozzáadottak megmaradnak.

Egy swap terület maximum kb. 128MB lehet és összesen 16 db lehet belőle. (Ez kb 2GB területet jelent.)

A teljes swap terület méretének megválasztása fontos feladat. Nagyon általános esetben azt szokták mondani, hogy legyen a fizikai memória kétszerese, de ne legyen több 64 MB-nál. Tulajdonképpen mindenki becsülje meg, körülbelül mennyi program fog futni a rendszerén egy időben és ezek memória igényének ismeretében válassza meg a swap méretét.


Lemezek, fájlrendszerek, fájlok

A linuxban van egy elfogadott fájlrendszer felépítés, amit minden disztribúciónak illik követni:

 

A gyökér (root) fájlrendszer

Ez géptől függő, egyedi fájlrendszer. Minden bootoláshoz szükséges dolgot tartalmaznia kell.

Az itt található fontosabb könyvtárak:

/bin

A boot folyamat során szükséges programok, amiket a felhasználók is használhatnak.

 

/sbin

Ezek is kellhetnek a bootoláskor, de ezeket nem használják a felhasználók.

 

/etc

Gépspecifikus, rendszerspecifikus konfigurációs fájlok.

 

/root

A root home könyvtára.

 

/lib

Osztott könyvtárak a gyökér fájlrendszer programjaihoz.

 

/dev

Eszközfájlok könyvtára. Minden eszközhöz található egy eszközfájl, amin keresztül el lehet érni azt.

 

/boot

A LILO által használt fájlok. itt tárolhatjuk a kernel image fájlokat is.

 

/mnt

Ha ideiglenesen fel akarunk csatolni egy fájlrendszert a rendszerünkbe, azt itt illik megtenni. Pl.: /mnt/floppy, /mnt/cdrom, /mnt/disk

 

/proc, /usr, /var, /home

A többi fájlrendszer csatlakozási pontjai.

 

Az /usr fájlrendszerben

parancsok, programok és nem változó adatok vannak. Nem gépspecifikus, tehát akár több gép is használhatja az itt található adatokat. Mivel normális esetben az itt található adatok nem változnak, a fájlsérülések elkerülése érdekében (esetleges rendszerösszeomlásnál, véletlen törlésnél) célszerű csak olvasható módon felcsatolni.

A fontosabb könyvtárak:

 

/usr/X11R6

Az X Window rendszer fájljai. Minden, az X-hez tartozó fájl itt van.

 

/usr/bin

A felhasználói parancsok nagy része itt van.

 

/usr/sbin

A rendszeradminisztrációhoz szükséges programok nagy része.

 

/usr/include

Fejléc (header) fájlok a C programozási nyelvhez.

/usr/lib

Programok és alrendszerek nem változó adatfájljai.

 

/usr/local

Ha olyan programokat installálunk, amik nem szerves részei a disztribúciónak, akkor azokat ide szokás tenni.

 

A /var

fájlrendszerben a normál működés során változó fájlok mint pl. naplófájlok, levelezéshez, nyomtatáshoz szükséges fájlok találhatók.

A lényegesebb könyvtárak:

 

/var/lock

Néhány program az indulásakor speciális fájlokat hoz létre, ami közli a többi programmal, hogy ő most éppen milyen fájlokat, vagy eszközfájlokat használ.

 

/var/log

Naplófájlok.

 

var/run

Az éppen futó rendszerről adnak információt. Pl. processz azonosítók, bejelentkezett felhasználók.

 

/var/spool

Várakozási sorok pl. a levelezéshez és a nyomtatáshoz.

 

/var/tmp

Ideiglenes fájlok helye.

 

A /home

fájlrendszerben a felhasználók személyes fájljai találhatók.

 

A /proc fájlrendszerben az éppen futó rendszerünkről kapunk különböző információkat. A kernel hozza létre a memóriában.

bash-2.02# ls /proc/

1            161          3325         65           ide          partitions

103          182          3328         71           interrupts   pci

106          2            3331         75           ioports      scsi

120          222          3335         9            kcore        self

13           224          3337         apm          kmsg         slabinfo

131          225          3338         bus          loadavg      stat

151          226          3411         cmdline      locks        swaps

153          227          3440         cpuinfo      meminfo      sys

156          3            3441         devices      misc         tty

157          3083         3525         dma          mounts       uptime

158          3084         4            fb           mtrr         version

159          3304         4578         filesystems  net

160          3319         61           fs           parport

bash-2.02#                                                  

 

A processzor információit a /proc/cpuinfo fájl tárolja:

processor       : 0

vendor_id       : AuthenticAMD

cpu family      : 5

model           : 8

model name      : AMD-K6(tm) 3D processor

stepping        : 12

cpu MHz         : 350.799006

fdiv_bug        : no

hlt_bug         : no

sep_bug         : no

f00f_bug        : no

coma_bug        : no

fpu             : yes

fpu_exception   : yes

cpuid level     : 1

wp              : yes

flags           : fpu vme de pse tsc msr mce cx8 sep mtrr pge mmx 3dnow

bogomips        : 699.60

/proc/cpuinfo line 1/19 (END)          

A memóriáról a /proc/meminfo fájl ad információt:

        total:    used:    free:  shared: buffers:  cached:

Mem:  131207168 126058496  5148672 46493696 26972160 65396736

Swap: 74022912  3104768 70918144

MemTotal:    128132 kB

MemFree:       5028 kB

MemShared:    45404 kB

Buffers:      26340 kB

Cached:       63864 kB

SwapTotal:    72288 kB

SwapFree:     69256 kB

/proc/meminfo line 1/10 (END)  

A háttértárak elérhetősége

A fájlrendszereket tartalmazó háttértárakat a /dev könyvtár eszközfájljain keresztül érjük el.

Nézzük a legelterjedtebb háttértárak helyét:

floppy lemez: /dev/fd0 (DOS-ban A:)

floppy lemez: /dev/fd1 (DOS-ban B:)

 

IDE winchesterek és CD meghajtók:

1. csatorna master: /dev/hda

1. csatorna slave: /dev/hdb

2. csatorna master: /dev/hdc

2. csatorna slave: /dev/hdd

A winchesterek egyes partícióira is ehhez hasonlóan hivatkozhatunk: /dev/hda1 az 1. csatorna master lemezének 1. partíciója, /dev/hdd3 a 2. csatorna slave lemezének 3. partíciója, stb.

 

SCSI winchesterek:

/dev/sda, /dev/sdb, /dev/sdc, stb.

A partíciók hasonlóan, mint az IDE winchestereknél.

 

SCSI CD meghajtók:

/dev/scd0, /dev/scd1, stb.

 

/dev/ttyS0, /dev/ttyS1 A dos alatti COM1 és COM2 soros portok.

/dev/lpt0 a DOS alatti LPT1 párhuzamos port.

/dev/psaux a PS/2 port. (Ezen érhető el a legtöbb laptop gép beépített egérhelyettesítő szerkezete is.)

 

 

Partícionálás

Amikor a winchesterünket használatba vesszük, első lépésként partícionálni kell. Egy PC-s winchesteren maximum 4 darab elsődleges partíció lehet. A winchester első lemezének első rekordja a Master Boot Record. A BIOS a boot folyamatban ehhez a szektorhoz nyúl és az itt talált programnak adja át a vezérlést. Az itt talált betöltő program beolvassa a partíciós táblát és keres egy bootolható partíciót. A bootolható partíció boot szektorára ugrik, ahol egy másik program elkezdi betölteni az operációs rendszert. Tehát boot szektora van a lemeznek és minden elsődleges partíciónak. Ha nem elég a 4 partíció, akkor kiterjesztett partíciót kell alkalmazni egy elsődleges helyett, amin logikai partíciókat hozhatunk létre. (Ez ugyan olyan gyors, csak a létrehozása más. A "PC szabvány" elterjedése miatt volt rá szükség.)

Amikor partícionálunk, akkor a fentieken kívül meg kell gondolni azt is, hogy milyen típusa legyen a partíciónak.

A Linux által ismert partíció típusok a következők:

0  Empty                  b  Win95 FAT32               63  GNU HURD                   a5  BSD/386

1  DOS 12-bit FAT  c  Win95 FAT32 (LBA)     64  Novell Netware              a6  OpenBSD

2  XENIX root          e  Win95 FAT16 (LBA)     65  Novell Netware              a7  NEXTSTEP

3  XENIX usr           f  Win95 Extended            75  PC/IX                             b7  BSDI fs

4  DOS 16-bit <32   11  Hidden DOS FAT16   80  Old MINIX                      b8  BSDI swap

5  Extended             14  Hidden DOS FAT16   81  Linux/MINIX                   c7  Syrinx

6  DOS 16-bit >=32M                                       16  Hidden DOS FAT16      82  Linux swap                db  CP/M

7  OS/2 HPFS         17  Hidden OS/2 HPFS    83  Linux native                   e1  DOS access

8  AIX                      40  Venix 80286               85  Linux extended              e3  DOS R/O

9  AIX bootable        51  Novell?                       93  Amoeba                         f2  DOS secondary

a  OS/2 Boot Man    52  Microport                    94  Amoeba BBT                 ff  BBT          

 

Partícionálni az fdsik programmal tudunk legkönnyebben, bár rendszerinstalláláskor disztribúciótól függően használhatunk más partícionáló programot is.

Ha pl az 1. IDE csatorna elsődleges lemezét partícionáljuk, akkor adjuk ki az

fdisk /dev/hda parancsot.

 

bash-2.02# fdisk /dev/hda

 

Command (m for help): 

 

Ennek hatására a fenti nem túl barátságos prompt fogad bennünket.

Nézzük a leglényegesebb parancsokat.

p            Aktuális állapot megmutatása.

q            kilépés

w            változtatások elmentése, kiírása a lemezre.

d            partíció törlés

n            partíció létrehozás

t             partíció típusának megváltoztatása.


Egy winchester tartalom az fdisk szemszögéből:

bash-2.02# fdisk /dev/hda

 

Command (m for help): p

 

Disk /dev/hdb: 128 heads, 63 sectors, 782 cylinders

Units = cylinders of 8064 * 512 bytes

 

   Device Boot    Start      End   Blocks   Id  System

/dev/hdb1             1      204   822496+   6  DOS 16-bit >=32M

/dev/hdb2           205      458  1024128    b  Win95 FAT32

/dev/hdb3           459      475    68544   82  Linux swap

/dev/hdb4   *       476      782  1237824   83  Linux native

 

Command (m for help):

 

Nézzük végig a fenti állapot elérésének lépéseit:

fdisk /dev/hda       (belépünk a programba és a kívánt winchestert partícionáljuk.)

Command (m for help): p (megnézzük az aktuális állapotot és látjuk, hogy a winchester nem tartalmaz partíciót)

 

Disk /dev/hdb: 128 heads, 63 sectors, 782 cylinders

Units = cylinders of 8064 * 512 bytes

 

   Device Boot    Start      End   Blocks   Id  System

 

Command (m for help): n        (újat hozunk létre)

Command action

   e   extended

   p   primary partition (1-4)

p                (elsődlegeset)

Partition number (1-4): 1         (a száma 1 lesz)

First cylinder (1-782): 1          (Az első cilindertől kezdődik)

Last cylinder or +size or +sizeM or +sizeK ([1]-782): 204        (A 204.cilinderig tart, de ide írhatnám azt is, hogy +800M és ezzel megmondanám neki a méretét)

 

Command (m for help): t         (típust váltok)

Partition number (1-4): 1         (Az első partícióét)

Hex code (type L to list codes): 6           (6 típusú, tehát DOS legyen. ’L’ megnyomására listát ad a használható típusokról)

Changed system type of partition 1 to 6 (DOS 16-bit >=32)

 

Készen vagyunk, jöhet a következő:

Command (m for help): n        (újat hozunk létre)

Command action

   e   extended

   p   primary partition (1-4)

p            (elsődlegeset)

Partition number (1-4): 2         (2. lesz)

First cylinder (205-782): 205   (itt kezdődik, mert a másikat itt hagytuk abba)

Last cylinder or +size or +sizeM or +sizeK ([205]-782): 458   (Itt a vége)

Command (m for help): t         (típust váltunk)

Partition number (1-4): 2           (a 2.-ét)

Hex code (type L to list codes): c           (c legyen)

Changed system type of partition 2 to c (Win95 FAT32 (LBA))

 

Command (m for help):                                                            

Készen vagyunk, jöhet a következő. És így tovább minden partícióra.

A végén a p paranccsal nézzük meg, hogy tényleg a kívánt hatást értük e el,

majd adjuk ki a w parancsot, hogy véglegesítsük beállításainkat és q

paranccsal lépjünk ki.

 

A fájlrendszer létrehozása

Ha kész vagyunk a partícionálással, akkor általában létre kell hozni a partíción a használni kívánt fájlrendszert.

Ezt az mkfs programmal tehetjük meg.

Használata elég egyszerű:

Például, ha az 1. IDE első lemezének 2. partícióján ext2 fájlrendszert akarunk kialakítani miközben a hibás blokkokat is ki akarjuk szűrni, akkor a

mkfs -t ext2 -c /dev/hda2

parancsot adjuk ki.

A „-t” után megadhatjuk a fájlrendszer típusát. A ’c’ kapcsoló utasítja rossz szektorok kiszűrésére, majd a végén megmondjuk neki, hogy melyik partícióval tegye mindezt.

Ha DOS, vagy más gyártó fájlrendszerét akarjuk létrehozni, akkor inkább mindig az adott rendszer erre szolgáló format parancsát használjuk. Az mkfs programot a linuxos partíciókra használjuk. A partícionálást végezhetjük a Linux fdisk-ével, de persze az adott rendszerét is használhatjuk.

Ha egy floppy lemezen akarunk létrehozni linuxos fájlrendszert, akkor az inkább minix legyen, ne ext2.

 

A Linux most a következő fájlrendszereket ismeri:

 

ADFS filesystem

Amiga FFS filesystem

Apple Macintosh filesystem

DOS FAT fs

  MSDOS fs support

  UMSDOS: Unix-like filesystem on top of standard MSDOS filesystem

  VFAT (Windows-95) fs support

ISO 9660 CDROM filesystem support

  Microsoft Joliet CDROM extensions

Minix fs support

NTFS filesystem support (read only) (Windows NT)

OS/2 HPFS filesystem support (read only) (OS/2)

/proc filesystem support

/dev/pts filesystem for Unix98 PTYs

QNX filesystem support

ROM filesystem support

Second extended fs support (ext2)

System V and Coherent filesystem support

UFS filesystem support

Network File Systems

  Coda filesystem support (advanced network fs)

  NFS filesystem support

  NFS server support

      Emulate SUN NFS server (NEW)

  SMB filesystem support (to mount WfW shares etc.)

      SMB Win95 bug work-around (NEW)

  NCP filesystem support (to mount NetWare volumes)

 

Ezeket a fájlrendszereket képes látni, olvasni és egy-két kivételtől eltekintve írni is. Amire nekünk szükségünk van egy Linux felállításánál az az ext2 és floppy esetén a minix fájlrendszer.

Az ext2 a ma használatos Linux fájlrendszer. Ez biztosítja a legtöbb szolgáltatást és elég gyors és megbízható. A minix a legrégibb és legmegbízhatóbb rendszer, de nagyon korlátos.

 

A fájlrendszerek csatlakoztatása a rendszerünkbe: mountolás

A linuxban -mint minden unix rendszerben- a fájlok egyetlen fa szerkezetben foglalnak helyet. Tehát egy kicsit másképp kell gondolkodni, mint a hagyományos rendszerekben, ahol ha a floppy lemezre kattintunk, akkor annak a fájlrendszerét látjuk, ha a CD-re akkor az övét, ha a "D winchesterre", akkor azt a fájlrendszert látjuk.

Mielőtt egy fájlrendszert (floppy, CD rom, másik winchester partíciói) használni akarunk, először be kell csatolni azt a Linux rendszer fájlrendszerébe. Ez nagyon egyszerű. Kinevezünk egy könyvtárat (lehetőleg ÜRES legyen) a Linux fájlrendszerében, ahova felcsatoljuk az új adathordozót és innentől kezdve már be is van integrálva a Linux fájlrendszere alá. Ha hozzá akarunk férni, akkor ebben a könyvtárban kell keresni.

A csatolást a mount programmal kell elvégezni.

Példaként vegyünk egy CD romot:

Az ideiglenesen felcsatolt fájlrendszerek becsatlakozási helye a /mnt könyvtár szokott lenni. (/mnt/cdrom, /mnt/floppy, /mnt/disk)

Tehát adjuk ki a következő parancsot:

mount /dev/hdc /mnt/cdrom

Ezzel utasítottuk a linuxot, hogy a 2. IDE csatorna master egységén található CD-t csatolja be a /mnt/cdrom könyvtárba.

Készen vagyunk. Ha hozzá akarunk férni a CD fájljaihoz, akkor a /mnt/cdrom könyvtárban keressük őket.

Az adathordozó fájlrendszerével nem kell sokat törődni, mert a Linux fel fogja ismerni automatikusan. (A fenti lista gondolom elég meggyőző.)

Ha mégis probléma van a fájlrendszer típusával, akkor a ’t’ kapcsolóval típus kiegészítést használjunk.

mount -t iso9660 /dev/hdc /mnt/cdrom

 

Ha már nem használjuk a fájlrendszert, akkor az umount paranccsal lecsatolható. Arra figyelnünk kell, hogy pl a CD romot ki sem tudjuk venni a CD meghajtóból, amíg az „fel van mountolva”. (Logikus, hiszen nem engedheti meg a Linux, hogy a fájlrendszerének egy részét csak úgy ki be rángassák.) Lecsatolni csak úgy lehet, hogyha azt senki nem használja, azaz nincs nyitott fájl rajta és a könyvtárban sem tartózkodik senki.

umount /mnt/cdrom

NE VEGYÜK KI a floppy lemezt anélkül, hogy umountolnánk. A lemezcachelés miatt ugyanis a memóriában lehet még lemezre vissza nem írt adat!

Nézzünk meg pár érdekességet a mountolással kapcsolatban.

Mountolni (kevés kivételtől eltekintve) csak root joggal lehet.

A ’-r’ kapcsoló használatával csak olvashatóan veszünk fel egy fájlrendszert.

Az ’-o loop’ kapcsolóval egy image fájlt becsatolhatunk, mint fájlrendszert. (pl CD tartalom)

Ha NFS-en (Network File System) keresztül csatolunk fel egy másik gép kiexportált könyvtárát, akkor a

mount 192.168.1.10/home /home

paranccsal tehetjük meg, ami azt jelenti, hogy a 192.168.1.10 gépen található /home könyvtárat becsatoljuk a gépünk /home könyvtárába.

 

Amikor a rendszer bootol, akkor a /etc/fstab fájlban megadottak szerint csatol be fájlrendszereket.

 

/dev/hda3                /                     ext2            defaults                 1           1

/dev/hda2                swap              swap          defaults                 0           0

/dev/hda4                /dos               msdos         defaults                 0           0

/dev/hda1                /win98            vfat             defaults                 0           0

/dev/hdc                  /mnt/cdrom     iso9660      ro,noauto,user     0           0

/dev/fd0                   /mnt/floppy     auto            noauto,user          0           0

proc                         /proc              proc            defaults                 0           0

# End of YaST-generated fstab lines

 

A fenti lista kézzel is módosítható.

Az egyes sorok jelentései:

Az 1. IDE csatorna master lemezének 3. partícióját fogja mountolni a gyökér fájlrendszernek, mely ext2 típusú. A mountolás automatikus. (defaults) Ugyanezen a winchesteren a 2. partíciót swap területként használja ugyancsak automatikusan.

Ugyanezen winchester 4. partíciója a /dos könyvtárba fog becsatolódni msdos típussal automatikusan.

Az 1. partíció pedig a /win98 könyvtárba vfat típussal ugyancsak automatikusan.

A 2. IDE csatorna master egységén ülő CD meghajtó az /mnt/cdrom könyvtárba csatolható ISO9660 típussal csak olvasható módon, de nem automatikusan és bármilyen felhasználó csatolhatja root jogosultság nélkül.

A (DOS rendszerben A:-tal jelölt) floppy lemez /mnt/floppy könyvtárba csatolható automatikus fájlrendszer felismeréssel, de nem automatikusan csatolódik és bármely felhasználó csatolhatja root jogok nélkül.

A proc fájlrendszer a /proc könyvtárba csatolódik automatikusan.

 

Ha egy felhasználó a CD-t akarja csatlakoztatni, akkor csak ennyit kell tennie:

mount /dev/hdc

A többit elvégzi a Linux. (Mivel az fstab-ban szerepel és megadtuk a user paramétert, ezért tudni fogja a típusát és hogy hova kell csatolnia.)

 

A lemezek ellenőrzése

A fájlrendszerben előfordulhatnak hibák. Ezek a hibák általában csak hibás fájllezáráskor, helytelen rendszerleálláskor keletkeznek, mivel a Linux ext2 fájlrendszere nagyon stabil. A hibák felderítésére és kijavítására az fsck program használható.

Használata elég egyszerű:

fsck fájlrendszer

pl.:

fsck /dev/hda3

Fontos tudni, hogy csak olvashatóan felmountolt, vagy nem felmountolt fájlrendszeren szabad az ellenőrzést elvégezni. Például a root fájlrendszert először ro (readonly) módban mountolja be a rendszer, hogy el tudja rajta végezni az ellenőrzést és csak ez után mountolja be újra már írhatóként. Erre azért van szükség, mert az fsck program a lemezblokkokkal dolgozik az operációs rendszer tudta nélkül és az ilyen írások biztosan hibákat okoznának a fájlrendszeren. A javításokat már az oprendszer tudtával írja vissza, addig a memóriában vannak.

Az fsck automatikusan elindul, ha nem jól lett leállítva a rendszer. Egy bizonyos számú újraindítás után akkor is elindul, ha jól lett leállítva. A más rendszereken előforduló töredezettség mentesítésre nincs szükség a Linuxon.

Fájlok hozzáférése

A fájlokhoz való hozzáférés a unix szabványnak megfelelően történik. Minden fájlnak van egy gazdája egy csoportja és vannak a többiek, akik egyikbe sem tartoznak bele.

 

bash-2.02# ls -l /etc/passwd

-rw-r--r--   1 root     root         2444 Sep 17 12:48 /etc/passwd

bash-2.02#                                                        

 

bash-2.02# ls -l /home/kriszti/vizsga.arj

-rwxr-x---   1 kriszti  baratok      168391 Jul  7 10:31

/home/kriszti/vizsga.arj bash-2.02#     

 

Az első példában láthatjuk, hogy a /etc/passwd fájl gazdája a root és csoportja a root csoport. (A gazda az első, a csoport a második root felirat) A lista elején látható -rw-r--r-- sorozat a következőt jelenti.

Az első ’-’ karakter utáni karakter hármas a fájl gazdájának jogait mutatja. A következő karakterhármas a fájl csoportjába tartozó felhasználók jogait mutatja, az utolsó karakterhármas pedig a többi felhasználó jogait adja meg.

A jogok a következők lehetnek:

r             (4)olvashatja

w            (2)írhatja (módosítás, törlés)

x             (1)végrehajthatja (futtathatja)

Az első karakter jelzi például, hogy könyvtárról van e szó (d), vagy egy szimbolikus linkről (l).

Tehát az első példában jelzett fájlt a root felhasználó írhatja és olvashatja, a root csoportba tartozó felhasználók olvashatják és a többi felhasználó is olvashatja.

A második példában mutatott fájl gazdája a kriszti felhasználó, aki írhatja, olvashatja és futtathatja a fájlt. A baratok csoportba tartozó felhasználók olvashatják és futtathatják a fájlt, de nem módosíthatják, a többiek pedig semmit nem csinálhatnak vele.

 

A jogokat módosítani lehet a chmod paranccsal.

Használata nagyon egyszerű:

chmod xyz fájlnév

Ahol x, y, z egy-egy szám. Az a szám, amit a jogok leírásánál zárójelek között látott számok összegéből alakítunk ki. ’x’ jelenti a gazda jogait, ’y’ a csoport jogait, ’z’ jelenti a többiek jogait.

Tehát, ha a második példában adott fájl hozzáférését így módosítjuk:

chmod 100 vizsga.arj

akkor a kapott eredmény: Csak a fájl gazdája futtathatja a fájlt.

 

bash-2.02# ls -al vizsga.arj

---x------   1 kriszti     baratok       168391 Jul  7 10:24 vizsga.arj

bash-2.02#                       

 

Ha:

chmod 140 vizsga.arj

akkor a gazda futtathatja a fájlt, a csoport nézheti.

 

bash-2.02# ls -al vizsga.arj

---xr-----   1 root     root       168391 Jul  7 10:24 vizsga.arj

bash-2.02#                                                         

 

 

Ha

chmod 300 vizsga.arj

Akkor a gazda olvashatja és futtathatja. (1+2)

 

bash-2.02# ls -al vizsga.arj

--wx------   1 root     root       168391 Jul  7 10:24 vizsga.arj

bash-2.02# 

 

Ha

chmod 754 vizsga.arj

Akkor a gazda bármit csinálhat vele (1+2+4), a csoport nézheti és futtathatja (4+1), a többiek pedig csak olvashatják (4)

bash-2.02# ls -al vizsga.arj

-rwxr-xr--   1 root     root       168391 Jul  7 10:24 vizsga.arj

bash-2.02#       

A fájlok gazda és csoport tulajdonjogát a gazdája és a root tudja módosítani.

A tulajdonos váltás:

chown újtulajnév fájlnév

paranccsal történik.

pl.:

bash-2.02# chown szabob vizsga.arj

bash-2.02# ls -al vizsga.arj

-rwxr-xr--   1 szabob   baratok       168391 Jul  7 10:24 vizsga.arj

bash-2.02#  

 

A csoport váltás a

chgrp újcsoportnév fájlnév

paranccsal történik.

pl.:

bash-2.02# chgrp users vizsga.arj

bash-2.02# ls -al vizsga.arj

-rwxr-xr--   1 szabob   users      168391 Jul  7 10:24 vizsga.arj

bash-2.02#                         

Ha bármely parancsnál alkalmazzuk az ’R’ kapcsolót és egy alkönyvtárra adtuk ki a parancsot, akkor az egész alkönyvtár tartalmára rekurzívan vonatkozik.

 

chgrp -R users vizsga.arj

A fájlok mentése a tar programmal

Beszélhetünk teljes mentésről, ami annyit jelent, hogy egy fájlrendszerről, vagy annak egy részéről minden fájlról készítünk archív másolatot. A növekményes mentés esetén az utolsó teljes mentés óta megváltozott fájlokról készítünk másolatot.

 

Például teljes mentést végezve a /home könyvtárról egy szalagos egységre:

tar -cf /dev/ftape /home

A ’c’ kapcsoló utasítja a tar programot, hogy készítsen másolatot ’f’ kapcsoló pedig az archív állomány helyét jelöli meg. (/dev/ftape eszköz)

Ha nem biztos, hogy kifér a teljes anyag egy szalagra, akkor használjuk az ’M’ kapcsolót is (multi volume).

Ha tömöríteni is akarunk, miközben archiválunk, akkor használjuk még a ’z’ kapcsolót is.

tar -cz -N '10 Sep 1999' -f /dev/ftape /home

A fenti parancs csak az 1999 szept. 10. után módosult fájlokat fogja kimenteni a szalagra tömörített formát használva (z kapcsoló).

 

A fájlokat visszaálítani a következő paranccsal lehet:

tar -xzpf /dev/ftape

Az ’x’ kapcsoló a kibontásra utasít.

A ’p’ kapcsoló jelzi, hogy az eredeti jogosultságokkal együtt kell visszaállítani.

A ’z’ kapcsoló csak akkor kell, ha az állomány tömörített formában lett archiválva.

Álljon itt példaként egy ügyes szkript, amit egy tipikus mentési eljárásként lehet alkalmazni akár időzített indítással éjszakánként:

 

#! /bin/bash                                           

mount /dev/hdc1 /root/mentes/                          

MENTES=save`date +%m_%d`                               

mkdir /root/mentes/$MENTES                             

cp -aR /home /root/mentes/$MENTES/                     

tar czf /root/mentes/$MENTES.tgz /root/mentes/$MENTES/ 

rm -rf /root/mentes/$MENTES                            

umount /root/mentes/

Az első sor jelzi, hogy a parancsok a shellnek szólnak.

A második sor felcsatol egy merevlemez partíciót a /root/mentes könyvtárba.

A harmadikban beállítunk egy MENTES nevű környezeti változót. Ennek értéke ’save’ és az aktuális dátum hónap és nap része. (pl.: saveapr_15 )

Létrehozunk egy könyvtárat a /root/mentes/ könyvtárban, melynek neve a MENTES változó tartalma.

Bemásoljuk a /home teljes tartalmát a most létrehozott könyvtárba az eredeti jogosultságokat megtartva.

Létrehozunk egy archív, tömörített állományt a MENTES változó nevével és tgz kiterjesztéssel, mely tartalmazza a mentendő anyagokat.

Kitöröljük a most létrehozott könyvtárat, mert már nincs rá szükség.

Lecsatoljuk a fájlrendszerről a most felcsatolt partíciót.

Az adatain így védve vannak mind a felhasználók hibáitól, mind a rendszer diszkek hardveres hibáitól. (Egyedül akkor van probléma, ha a mentést tartalmazó diszk „száll el” ...)

A fenti szkript nagyon helypazarló és a műveleteket össze lehetne vonni, de így talán jobban látszik az egyes műveletek hatása.

Az ln parancs

További fájlokkal kapcsolatos parancs még az ln is, ami egy úgynevezett link (kapcsolat) létrehozása. Ezzel az eljárással más helyeken és más néven is hivatkozhatunk egy fájlra, vagy könyvtárra. Ez például kompatibilitási okok miatt fontos lehet és helytakarékos is.

ln –s /dev/ttyS1 /dev/modem

A /dev/ttsS1 eszközfájlhoz létrehoztunk egy kapcsolatot a /dev/modem néven.

ln –s /usr/local/public /home/szabob

A /usr/local/public könyvtárat becsatoltuk a szabob nevű felhasználó home könyvtárába. Így azt a hatást érjük el, mintha a public az ő könyvtárában létezne.

 


A rendszer indítása

Miután tisztáztunk pár alapfogalmat a memória és lemez használatról, nézzük meg, hogy mi történik egy rendszer indításakor.

Az indulás

Az önteszt lefutása után szintén a PC BIOS-ában található betöltő rekord kereső program végignézi a lemezeket, hogy melyiknek a boot rekordjában van betöltő program (boot loader). A winchesterek első lemezének első blokkja a Master Boot Record. Ezen kívül minden partíciónak is van egy boot rekordja (Super Boot Record). A betöltő rekord kereső először az MBR-t nézi meg, majd az ott talált betöltő program a partíciós tábla alapján annak a partíciónak a SBR-jére ugrik, ami bootolható. Az itt található program fogja indítani az adott operációs rendszert. A kernel összeállítása és fordítása kapcsán beszélni fogunk majd a lilo (Linux loader) szerepéről. Miután lefordítottuk a kernelt, a lilo program segítségével tudjuk azt betölthetővé tenni. A lilo használhatja a merevlemez MBR-jét (Master Boot Record), vagy a Linux partíció boot rekord-ját. Ha nincs más boot manager-ünk és a lilo segítségével akarjuk bootolni az összes rendszerünket, akkor használjuk a master boot recordot. Ha már telepítve van egy másik boot manager, akkor a lilo-t célszerű a Linux partícióra tenni. (Ilyenkor is kell a lilo a Linux bootolásához és ilyenkor is képes a többi rendszert is bootolhatóvá tenni.)

Amikor a lilo behúzza a kernelünket, az inicializálja a hardvert, betölti a szükséges eszközvezérlőket és elindul az init folyamat. Az init processz az első processz, ami lefut induláskor. Ennek feladata többek között a bejelentkezések lehetővé tétele (getty futtatás), fájlrendszerek ellenőrzése, démonok indítása.

Futási szintek

Az init lehetővé tesz egy, vagy több felhasználós működést, és különböző futási szinteken tudja indítani a rendszert. A futási szintek abban különböznek egymástól, hogy milyen programokat (szolgáltatásokat végző démonokat) indítunk.

Azt, hogy milyen futási szinten induljon a rendszer, megadhatjuk már a rendszer indulásakor is a következő formában a lilo promptnál:

lilo: otthon 1

A fenti sor esetén a lilo prompthoz az indítani kívánt rendszer címkéjének neve után meg kell adni a kívánt futási szintet.

A rendszer működése közben is válthatunk futási szintet egy terminálon root-ként kiadva az init futási szint utasítást:

init 3

A fenti sor utasítja a rendszert, hogy térjen át a 3. futási szintre arról, ahol éppen fut.

A futási szinteket 0-tól 6-ig különbözteti meg a Linux.

A 0 futási szint a rendszer leállítására való. Ilyenkor az init leállítja a többi processzt, lecsatolja a fájlrendszereket, stb.

Az 1 futási szint az úgynevezett egy felhasználós mód, amiben a rendszer csak a root felhasználót engedi bejelentkezni egy konzolról, a többi felhasználó nem jelentkezhet be. Ezt a szintet szerviz üzemmódnak is szokás hívni.

2-5 futási szintek a normál működési szintek. A különbségeket a rendszer adminisztrátora határozhatja meg azzal, hogy az egyes szinteken milyen programok induljanak. Ennek módjáról az alábbiakban még lesz szó.

A 6 futási szintet az újraindításra szokás használni.

 

A kernel behúzása után tehát az init processz fog indulni. Ez elindít „néhány” szkriptet. A /etc/inittab fájlt kell először megnézni ahhoz, hogy lássuk, mik indulnak el. Ez a fájl az init konfigurációs állománya.

 

A fájl felépítése a szokásos: néhány ’#’ jellel induló „komment” sor megmagyarázza, hogy az alatta lévő sor mit tesz, mi a funkciója.

Az egyes sorok 4 mezőre vannak kettőspontokkal felosztva. Az első mező egy címke, sok jelentősége nincsen, de egyedinek kell lenni. (A getty indításoknál ez mondja meg, hogy hányadik terminálon fut a getty.)

A második részben fel vannak sorolva a futási szintek, ahol futnia kell a negyedik részben megadott programnak. (Pl: 2345 azt jelenti, hogy az adott program fusson a 2, 3, 4, 5 futási szinteken is.)

A harmadik részben megmondjuk, hogy hogyan fusson a negyedik részben megadott program. (respawn –induljon újra ha kilépett; once – csak egyszer fusson; wait – csak egyszer fusson és várjon amíg befejeződik; powerwait; powerfailnow; powerokwait; stb.)

Pl:

1:2345:respawn:/sbin/getty 38400 tty1

 

A 2-3-4-5 futási szinteken induljon a getty program és ha kilép, akkor induljon újra (hogy további felhasználók is bejelentkezhessenek ezen a terminálon).

 

Ebben a fájlban van egy sor, amit külön szeretnék még a részletesebb tárgyalás előtt kihangsúlyozni:

si::sysinit:/etc/init.d/rcS

A sysinit utasítja a rendszert, hogy még mielőtt bármi mást elindítana nézze meg a /etc/init.d/rcS fájlt és hajtsa végre annak utasításait. Ha ezekkel végzett, akkor mehet tovább a fájl többi részére. (Ilyenkor szokás például ellenőrizni a fájlrendszert is.)

 

Egy tipikus /etc/inittab fájl így néz ki:

 

# /etc/inittab: init(8) configuration.                            

# $Id: inittab,v 1.8 1998/05/10 10:37:50 miquels Exp $            

                                                                  

# The default runlevel.                                           

id:2:initdefault:                                                  

                                                                  

# Boot-time system configuration/initialization script.           

# This is run first except when booting in emergency (-b) mode.   

si::sysinit:/etc/init.d/rcS                                        

                                                                  

# What to do in single-user mode.                                 

~~:S:wait:/sbin/sulogin                                           

                                                                   

# /etc/init.d executes the S and K scripts upon change            

# of runlevel.                                                    

#                                                                 

# Runlevel 0 is halt.                                             

# Runlevel 1 is single-user.                                      

# Runlevels 2-5 are multi-user.                                   

# Runlevel 6 is reboot.                                            

                                                                  

l0:0:wait:/etc/init.d/rc 0

l1:1:wait:/etc/init.d/rc 1                                                     

l2:2:wait:/etc/init.d/rc 2                                                      

l3:3:wait:/etc/init.d/rc 3                                                     

l4:4:wait:/etc/init.d/rc 4                                                     

l5:5:wait:/etc/init.d/rc 5                                                     

l6:6:wait:/etc/init.d/rc 6                                                     

# Normally not reached, but fallthrough in case of emergency.                  

z6:6:respawn:/sbin/sulogin                                                     

                                                                                

# What to do when CTRL-ALT-DEL is pressed.                                     

ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now                               

                                                                                

# Action on special keypress (ALT-UpArrow).                                    

kb::kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab to let this work."

                                                                                

# What to do when the power fails/returns.                                     

pf::powerwait:/etc/init.d/powerfail start                                      

pn::powerfailnow:/etc/init.d/powerfail now                                      

po::powerokwait:/etc/init.d/powerfail stop                                     

                                                                               

# /sbin/getty invocations for the runlevels.                                    

#                                                                              

# The "id" field MUST be the same as the last

# characters of the device (after "tty").                             

#                                                                      

# Format:                                                             

#  <id>:<runlevels>:<action>:<process>                                

1:2345:respawn:/sbin/getty 38400 tty1                                 

2:23:respawn:/sbin/getty 38400 tty2                                   

3:23:respawn:/sbin/getty 38400 tty3                                   

4:23:respawn:/sbin/getty 38400 tty4                                   

5:23:respawn:/sbin/getty 38400 tty5                                    

6:23:respawn:/sbin/getty 38400 tty6                                   

                                                                      

# Example how to put a getty on a serial line (for a terminal)        

#                                                                      

#T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100                        

#T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100                        

                                                                       

# Example how to put a getty on a modem line.                         

#                                                                     

T3:23:respawn:/sbin/mgetty -x0 -s 115200 /dev/modem                   

                                                                       

#-- isdnutils begin                                                   

# Change the lines below for your local setup and uncomment them.     

# Use "init q" to reread inittab.

# look at the vboxgetty / mgetty manpage for more information (mgetty isn't   

# standard!)                                                                  

#                                                                             

#I0:2345:respawn:/usr/sbin/vboxgetty -d /dev/ttyI0                            

#I1:2345:respawn:/sbin/mgetty -D -m '"" ATZ OK AT&Eyourmsnhere OK AT&B512 OK' -

#-- isdnutils end

 

Az alábbiakban nézzük meg néhány fontos részletét a fájlnak.

id:2:initdefault:

A sor megadja, hogy a 2 futási szint induljon el normál működés esetén.

 

si::sysinit:/etc/init.d/rcS

A sor megadja, hogy a /etc/init.d/rcS szkript fusson le először minden indításkor (kivéve szerviz üzemmódban).

 

 

 

~~:S:wait:/sbin/sulogin

A sor megadja, hogy szerviz üzemmódot indítva várjon a root jelszóra. Nagyon fontos dolog ez, mert valami oknál fogva nem minden disztribúció tartalmazza és ha valaki a rendszert szerviz módban indítja, akkor e nélkül a sor nélkül nem szükséges a root jelszó ismerete a root jogú bejutáshoz!

 

l0:0:wait:/etc/init.d/rc 0

l1:1:wait:/etc/init.d/rc 1

l2:2:wait:/etc/init.d/rc 2

l3:3:wait:/etc/init.d/rc 3

l4:4:wait:/etc/init.d/rc 4

l5:5:wait:/etc/init.d/rc 5

l6:6:wait:/etc/init.d/rc 6

A fenti sorok megadják, hogy az egyes futási szinteken a /etc/rc.d/ könyvtárban lévő rcx (x=0,1,2,3,4,5,6) könyvtárakban lévő szkriptek induljanak el automatikusan.

Ha megnézünk egy ilyen könyvtárat, akkor S és K kezdetű sorokat látunk és a kezdő betűk után számok vannak. Az S kezdetűek a szint indulásakor futnak le a számok növekvő sorrendjében, a K kezdetűek a szint leállításakor. (A megoldás disztribúciófüggő.) Ide mi is felvehetünk és letörölhetünk az igényeinknek megfelelő programokat.


A futási szinteken induló programok meghatározására létezik több X alatti program, pl a SuSE disztribúcióban a SysV Init szerkesztő, melynek segítségével könnyen határozhatjuk meg az egyes induló programok listáját:

ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now

A sor megadja, hogy mi történjen a Ctrl+Alt+Del gombok megnyomásakor az 1, 2, 3, 4, 5 futási szinteken.

 

pf::powerwait:/etc/init.d/powerfail start

pn::powerfailnow:/etc/init.d/powerfail now

po::powerokwait:/etc/init.d/powerfail stop

A fenti sorok az UPS jelzéseire reagálnak, ha az tud kommunikálni a rendszerünkkel.

 

1:2345:respawn:/sbin/getty 38400 tty1 

2:23:respawn:/sbin/getty 38400 tty2   

3:23:respawn:/sbin/getty 38400 tty3   

4:23:respawn:/sbin/getty 38400 tty4   

5:23:respawn:/sbin/getty 38400 tty5   

6:23:respawn:/sbin/getty 38400 tty6

 

A fenti sorok getty programot indítanak különböző futási szinteken összesen 6 db virtuális terminált biztosítva a bejelentkezéshez. (Adhatunk még többet, vagy csökkenthetjük a virtuális terminálok számát.)

 

T3:23:respawn:/sbin/mgetty -x0 -s 115200 /dev/modem

 

Ha modemen keresztül akarunk bejelentkezni a gépre, akkor szükség van a mgetty programra, mely a paraméterben megadott soros vonalon tesz lehetővé bejelentkezést. (Használhatjuk FAX-ok fogadására is. Ha azt akarjuk hogy csak FAX-ok hívására válaszoljon, akkor a –F kapcsolót is használnunk kell. Erről bővebben a FAX-ról szóló fejezetben fogunk beszélni.)

 

Ha valamilyen változtatásra van szükség az inittab-ban, akkor a fájl újra olvastatásához adjuk ki a

init q

parancsot, vagy a

kill -HUP 1

parancsot.

Egy rendszerüzenet a kernel indulásakor:

Memory: sized by int13 088h

Console: 16 point font, 400 scans

Console: colour VGA+ 80x25, 1 virtual console (max 63)

pcibios_init : BIOS32 Service Directory structure at 0x000fda60

pcibios_init : BIOS32 Service Directory entry at 0xf6a83

pcibios_init : PCI BIOS revision 2.10 entry at 0xf6c40

Probing PCI hardware.

Calibrating delay loop.. ok - 199.48 BogoMIPS

Memory: 30720k/32768k available (852k kernel code, 384k reserved, 812k data)

Swansea University Computer Society NET3.035 for Linux 2.0

NET3: Unix domain sockets 0.13 for Linux NET3.035.

Swansea University Computer Society TCP/IP for NET3.034

IP Protocols: IGMP, ICMP, UDP, TCP

VFS: Diskquotas version dquot_5.6.0 initialized

Checking 386/387 coupling... Ok, fpu using exception 16 error reporting.

Checking 'hlt' instruction... Ok.

Linux version 2.0.36 (root@goliat) (gcc version 2.7.2.3) #3 Tue Jul 13 09:35:38 CEST 1999

Starting kswapd v 1.4.2.2

Serial driver version 4.13 with no serial options enabled

tty00 at 0x03f8 (irq = 4) is a 16550A

tty01 at 0x02f8 (irq = 3) is a 16550A

lp1 at 0x0378, (polling)

PS/2 auxiliary pointing device detected -- driver installed.

APM BIOS not found.

loop: registered device at major 7

ide: i82371 PIIX (Triton) on PCI bus 0 function 33

    ide0: BM-DMA at 0x0500-0x0507

    ide1: BM-DMA at 0x0508-0x050f

hdc: MATSHITA CR-587, ATAPI CDROM drive

ide1 at 0x170-0x177,0x376 on irq 15

Floppy drive(s): fd0 is 1.44M

FDC 0 is a National Semiconductor PC87306

(scsi0) <Adaptec AIC-7850 SCSI host adapter> found at PCI 7/0

(scsi0) Narrow Channel, SCSI ID=7, 3/255 SCBs

(scsi0) Downloading sequencer code... 412 instructions downloaded

scsi0 : Adaptec AHA274x/284x/294x (EISA/VLB/PCI-Fast SCSI) 5.1.11/3.2.4

       <Adaptec AIC-7850 SCSI host adapter>

scsi : 1 host.

  Vendor: HP        Model: 2.13GB A 50-300U  Rev: VCOD

  Type:   Direct-Access                      ANSI SCSI revision: 02

Detected scsi disk sda at scsi0, channel 0, id 0, lun 0

(scsi0:0:0:0) Synchronous at 10.0 Mbyte/sec, offset 15.

scsi : detected 1 SCSI disk total.

SCSI device sda: hdwr sector= 512 bytes. Sectors= 4165272 [2033 MB] [2.0 GB]

PPP: version 2.2.0 (dynamic channel allocation)

TCP compression code copyright 1989 Regents of the University of California

PPP Dynamic channel allocation code copyright 1995 Caldera, Inc.

PPP line discipline registered.

eepro100.c:v0.99B 4/7/98 Donald Becker Linux-eepro100@cesdis.gsfc.nasa.gov

eth0: OEM i82557/i82558 10/100 Ethernet at 0xf8e0, 00:60:B0:67:6D:80, IRQ 9.

  Board assembly 673610-001, Physical connectors present: RJ45

  Primary interface chip i82555 PHY #1.

  General self-test: passed.

  Serial sub-system self-test: passed.

  Internal registers self-test: passed.

  ROM checksum self-test: passed (0x49caa8d6).

  Receiver lock-up workaround activated.

eepro100.c:v0.99B 4/7/98 Donald Becker Linux-eepro100@cesdis.gsfc.nasa.gov

Partition check:

 sda: sda1 sda2

VFS: Mounted root (ext2 filesystem) readonly.

Adding Swap: 64224k swap-space (priority -1)

 

Miután a kernel elindult és az init folyamat lefutott, a gép készen áll a működésre, akár be is lehet jelentkezni.

Leállítás

A rendszer leállítása is szigorú szabályok szerint történik. A leállítási folyamatot a shutdown program végzi. Először is minden processznek tudni kell róla, hogy most rendszerzárás következik, tehát zárjon le minden nyitott fájlt, mielőtt kilép. Ez nagyon fontos, mert ha nyitott fájlok maradnak, akkor azok sérülhetnek a leállás során. A Linux nem ír mindent azonnal a lemezre, az adatok jó része a memóriában van és ha ezek nincsenek visszaírva a lemezre, akkor elvesztek. Mi is utasíthatjuk a Linuxot, hogy írja ki a lemezre a memória tartalmát (szinkronizálás) a sync parancs kiadásával. Miután minden fájl le van zárva, a rendszer leállítja a futó processzeket és végül küld egy üzenetet a konzolra hogy le lehet kapcsolni a számítógépet.

A shutdown program használata nagyon egyszerű.

shutdown -h +10 'Mindenki lépjen ki, a rendszer 10 perc múlva leáll!'

Ez egy üzenetet küld minden bejelentkezett felhasználónak és 10 perc múlva leállítja a gépet. Az üzenet többször megismétlődik automatikusan a lezárás előtt egyre gyakrabban.

Ugyanez a ’h’ helyett ’r’ kapcsolóval azt jelenti, hogy a rendszer leáll és újra indul.

A shutdown -h now rögtön elkezdi leállítani a rendszert.

Használhatjuk a halt parancsot a leállításhoz és a reboot parancsot az újraindításhoz. Alapesetben a Ctrl+Alt+Del kombináció is újraindít. (lásd inittab fájl)

Ha nem helyesen állítjuk le a rendszerünket, akkor a fájlok sérülhetnek!


Felhasználók bejelentkezése, karbantartása

 

Mint minden több felhasználós rendszerben, a Linuxban is meg kellett oldani a felhasználók egymástól való elszeparálását, a felhasználói jogosultságok kezelését. Az init folyamat ismertetésénél ott hagytuk abba, hogy a rendszerünk készen áll a felhasználók fogadására.

Bejelentkezés helyi terminálról

Az init ismertetésénél már volt szó a getty programról. Ez a program a felelős azért, hogy a felhasználók be tudjanak jelentkezni a virtuális terminálokon. A program nem csinál mást, csak figyel és vár a felhasználó nevének begépelésére. Ha ez megtörténik, akkor elindítja a login programot, ami kéri a felhasználót, hogy azonosítsa magát, ha az elő van írva számára (és persze ez erősen ajánlott). (A login program a /etc/passwd és –ha létezik- /etc/shadow fájlokat használja. Ezekről később lesz szó.) Ha az azonosítás sikeres, akkor elindítja a felhasználónak szánt shellt a login, ami a /etc/passwd fájlban van megadva számára.

Ha a /etc/nologin fájl létezik, akkor nem lehetséges semmilyen bejelentkezés. (Ezt a fájlt a rendszer automatikusan létrehozza pl egy leállítási procedúra kezdetén, de mi is létrehozhatjuk.) Bejelentkezés előtt a terminálon a /etc/issue fájl tartalma fog kiíródni. Sikeres bejelentkezés esetén a /etc/motd tartalma íródik ki és az új levelek ellenőrzése jön a /var/spool/mail könyvtárban. (Ha létezik a felhasználó könyvtárában a .huslogin fájl, akkor ez felülbírálja a fentieket.)

Fontos fájlok még a /var/run/utmp és a /var/log/wtmp. Az előbbi tárolja az éppen bejelentkezett felhasználók információit, az utóbbi pedig minden sikeres bejelentkezést rögzít. (Célszerű törölni néha.)

Ha a felhasználó befejezi a munkát és kilép, akkor a getty program is kilép, de mivel az inittab fálban úgy állítottuk be, hogy azonnal induljon újra, amint kilépett, máris újra képes felhasználókat fogadni.

Az inittab tárgyalásánál láttuk, hogy alapesetben 6 db virtuális terminál indul. Ennek száma természetesen módosítható. Az egyes virtuális terminálok között az Alt+Funkció billentyűkkel tudunk váltani.

A soros vonalon keresztüli terminálon való bejelentkezéseket is a getty program kezeli.

A modemen keresztüli bejelentkezéseket a mgetty program kezeli. Természetesen mindegyik típusú bejelentkezési formát az inittab fájlban állítsuk be a RENDSZER INDÍTÁSA című fejezetben ismertetett módon.

Bejelentkezés hálózaton keresztül

A hálózaton keresztüli bejelentkezés kicsit másképp működik. Itt egy fizikai vonalat használ mindenki, ezért nem a fent ismertetett eljárást kell követni. A kapcsolat úgy jöhet létre, hogy a két gép valamilyen programja akar kommunikálni egymással. A kommunikáció több fajta protokollon keresztül mehet. Az éppen szükséges „hátteret” egy mindig futó program (démon), az inetd fogja megteremteni. Ő fogadja az igényeket és indítja a szükséges szolgáltatást. Azt, hogy milyen szolgáltatást vagyunk hajlandók biztosítani, a /etc/inetd.conf fájlban határozhatjuk meg.

Egy tipikus /etc/inetd.conf fájl:

# /etc/inetd.conf:  see inetd(8) for further informations.

#

# Internet server configuration database

#

#

# Lines starting with "#:LABEL:" or "#<off>#" should not

# be changed unless you know what you are doing!

#

# If you want to disable an entry so it isn't touched during

# package updates just comment it out with a single '#' character.

#

# Packages should modify this file by using update-inetd(8)

#

# <service_name> <sock_type> <proto> <flags> <user> <server_path> <args>

#

#:INTERNAL: Internal services

#echo                     stream     tcp           nowait      root          internal

#echo                     dgram      udp          wait          root          internal

#chargen                stream     tcp           nowait      root          internal

#chargen                dgram      udp          wait          root          internal

discard                    stream     tcp           nowait      root          internal

discard                    dgram      udp          wait          root          internal

daytime                   stream     tcp           nowait      root          internal

daytime                   dgram      udp          wait          root          internal

time                         stream     tcp           nowait      root          internal

time                         dgram      udp          wait          root          internal

 

#:STANDARD: These are standard services.

ftp            stream     tcp           nowait      root          /usr/sbin/tcpd           /usr/sbin/in.ftpd

telnet        stream     tcp           nowait      root          /usr/sbin/tcpd           /usr/sbin/in.telnetd

 

#:BSD: Shell, login, exec and talk are BSD protocols.

shell         stream     tcp           nowait      root          /usr/sbin/tcpd           /usr/sbin/in.rshd

login        stream     tcp           nowait      root          /usr/sbin/tcpd           /usr/sbin/in.rlogind

exec        stream     tcp           nowait      root          /usr/sbin/tcpd           /usr/sbin/in.rexecd

#talk        dgram      udp          wait          nobody.tty   /usr/sbin/tcpd       /usr/sbin/in.talkd

#ntalk      dgram      udp          wait          nobody.tty    /usr/sbin/tcpd      /usr/sbin/in.ntalkd

 

#:MAIL: Mail, news and uucp services.

smtp                        stream     tcp           nowait      mail          /usr/sbin/exim exim -bs

pop-3      stream     tcp           nowait      root          /usr/sbin/tcpd           /usr/sbin/in.qpopper

 

#:INFO: Info services

#finger     stream     tcp           nowait      nobody    /usr/sbin/tcpd           /usr/sbin/in.fingerd

ident                        stream     tcp           nowait      nobody    /usr/sbin/identd        identd -i

 

#:BOOT: Tftp service is provided primarily for booting.  Most sites

# run this only on machines acting as "boot servers."

tftp            dgram      udp          wait          nobody    /usr/sbin/tcpd           /usr/sbin/in.tftpd /boot

#bootps   dgram      udp          wait          root          /usr/sbin/bootpd      bootpd -i -t 120

 

#:RPC: RPC based services

#mountd/1               dgram      rpc/udp    wait          root          /usr/sbin/tcpd           /usr/sbin/rpc.mountd

#rstatd/1-3              dgram      rpc/udp    wait          root          /usr/sbin/tcpd           /usr/sbin/rpc.rstatd

#rusersd/2-3 dgram               rpc/udp    wait          root          /usr/sbin/tcpd           /usr/sbin/rpc.rusersd

#walld/1  dgram      rpc/udp    wait          root          /usr/sbin/tcpd           /usr/sbin/rpc.rwalld

 

#:HAM-RADIO: amateur-radio services

 

#:OTHER: Other services

netbios-ssn              stream     tcp           nowait      root          /usr/sbin/tcpd           /usr/sbin/smbd

netbios-ns               dgram      udp          wait          root          /usr/sbin/tcpd           /usr/sbin/nmbd -a

afbackup stream tcp     nowait  root    /usr/sbin/afserver server /etc/afbackup/server.conf

amandaidx stream tcp nowait  backup /usr/sbin/tcpd /usr/lib/amanda/amindexd

amidxtape stream tcp nowait   backup /usr/sbin/tcpd /usr/lib/amanda/amidxtaped

vboxd      stream     tcp           nowait      root          /usr/sbin/tcpd /usr/sbin/vboxd

amanda dgram udp wait backup /usr/sbin/tcpd /usr/lib/amanda/amandad

 

A rendszer alapértelmezés szerint valószínűleg több szolgáltatást engedélyez, mint amire nekünk szükségünk van, tehát jól nézzük át ezt a fájlt, mielőtt "közkézre" bocsátjuk a szerverünket.

A hosts.allow és a hosts.deny fájlok

A szolgáltatások elérését a /etc/hosts.allow és /etc/hosts.deny fájlokkal tudjuk szabályozni.

Ha nem léteznek, akkor nem veszi figyelembe a rendszer, de ha léteznek, akkor csak a tartalmuk szerinti hozzáférés biztosított a szerverünkhöz.

 

hosts.deny

Ebben a fájlban azt adjuk meg, hogy melyek azok a gépek, amik nem férhetnek hozzá az itt megadott INET szolgáltatáshoz. Legjobb, ha mindent megtiltunk mindenkinek, majd a hosts.allow fájlban szabályozottan engedélyezzük a hozzáférést.

A hosts.deny fájl tipikus tartalma:

ALL: ALL

 

 

hosts.allow

Ebben a fájlban megadhatjuk, hogy mely gépekről férhetnek hozzá szerverünk valamely INET szolgáltatásához. (telnet, finger, ftp, exec, rsh, rlogin, tftp, talk)

 

ipop3d: 192.168.1.0/255.255.255.0

Elérik a pop3 szolgáltatást a belső 192.168.1.0 hálózatunkról.

 

in.telnetd: 192.168.1.0/255.255.255.0 EXCEPT UNKNOWN PARANOID

Lehet telnetelni a belső hálóról, de csak azokról a gépekről, ahol a

névkiszolgálónkban megadott név-IP hozzárendelés megfelelő.

 

in.ftpd: 192.168.1.0/255.255.255.0

Lehet ftp szolgáltatást használni a belső hálózatról.

 

A szolgáltatásokat a /etc/inetd.conf fájlban találjuk.

 

Nagyon fontos tényező, hogy ha a gépen fut az xdm (vagy kdm) grafikus bejelentkezést lehetővé tevő program, akkor arra NEM hat a fent tárgyalt korlátozás! Ezért jól gondoljuk meg, hogy szükséges-e egy szerverként használt gépen ennek használata. (A grafikus felületet kézzel bármikor elindíthatjuk.)

Ha már bejelentkeztünk

Amikor a bejelentkezés megtörténik, akkor a bejelentkező nevet megkapja a login program. Ezek után az bekéri a felhasználó jelszavát és ellenőrzi. Az ellenőrzést a /etc/passwd fájl alapján tudja elvégezni, mert ez a fájl tartalmazza a felhasználó nevét és jelszavát. Mint látni fogjuk, a passwd fájl további információkat tartalmaz a felhasználóról, amiknek hozzáférhetőknek kell lenni mindenki számára. Tehát a jelszavak is olvashatóak mindenki számára. Ezért a jelszavak kódolva vannak. Mivel a kódolás megfejtése pusztán idő kérdése, ezért használja a legtöbb Linux rendszer a /etc/shadow fájlt a jelszavak tárolására. Ebben a fájlban a felhasználók neve és jelszava van szintén kódolt formában, ezen kívül még bejegyzés található itt a jelszó érvényességi idejéről, a módosítás szükségességéről és csak a root tudja olvasni és azok a programok, amiknek erre szüksége van. Az egyes mezőket kettőspont választja el egymástól. Mindenképpen ajánlott az "árnyék jelszavak" használata biztonsági okok miatt.

 

Egy részlet a /etc/shadow fájlból:

 

root:0ai4kkRxLcvlo:10768:0:10000::::

bin:*:8902:0:10000::::

daemon:*:8902:0:10000::::

lp:*:9473:0:10000::::

firewall:*:8902:0:10000::::

named:*:8902:0:10000::::

nobody:*:0:0:10000::::

szabob:1WAq46svzKJFI:10771:0:10000::::

andi:OaaKbBTvjQ4nU:10719:0:10000::::

 

 

Egy részlet a /etc/passwd fájlból:

 

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/bin/bash

daemon:x:2:2:daemon:/sbin:/bin/bash

lp:x:4:7:lp daemon:/var/spool/lpd:/bin/bash

firewall:x:41:31:firewall account:/tmp:/bin/false

informix:x:43:34:Informix Database Admin:/usr/lib/informix:/bin/bash

named:x:44:44:Nameserver Daemon:/var/named:/bin/bash

szabob:x:500:100:Példa felhasználó SuSE Linux 6.1:/home/szabob:/bin/bash

andi:x:501:100:Szabó F Andrea:/home/andi:/usr/bin/passwd

 

Az első mező a felhasználó login nevét (bejelentkező nevét) tartalmazza.

A második mezőben csak egy x-et látunk. Ez jelzi nekünk, hogy árnyék jelszavakat használunk. Egyébként itt lenne a jelszó kódolt formában.

A harmadik mező a felhasználó azonosító számát tartalmazza (User ID)

A negyedik mezőben van a felhasználó csoportjának azonosító száma (Group ID)

Ezeket a számokat a rendszer használja az azonosításra a karaktersorozatok helyett.

Az ötödik mező tartalmazza a felhasználó teljes nevét.

A hatodik mező megadja a felhasználó könyvtárát.

A hetedik mező a felhasználó belépésekor futtatandó programot adja meg. Ez általában egy shell szokott lenni, de bármi lehet.

Pl. ha nem akarjuk megengedni egy felhasználónak, hogy a szerveren bármit csináljon egy shell programban, de a felhasználó elérheti a szervert mint fájl szerver, web szerver, levelező szerver, akkor ide írhatjuk a /usr/bin/passwd programot. Ezzel elérjük a kívánt hatást, sőt ha a felhasználó be akar jelentkezni a szerverre, akkor megteheti, de csak a jelszavát tudja megváltoztatni és már ki is léptettük. Ha egyáltalán semmilyen módon nem akarjuk, hogy bejelentkező „shellje„ legyen, akkor ide írjuk a /dev/null fájlt.

A felhasználói környezet

Ha a felhasználó sikeresen azonosította magát és belépett a rendszerbe, akkor következik a shell indítása, környezetének a beállítása. Ezt rendszertől függően több fájl végzi. Mi most az általánosan elterjedteket fogjuk megmutatni.

A /etc/profile fájl tartalmazza azokat a beállításokat, amik miden felhasználóra vonatkoznak. (PATH, alias nevek, különböző környezeti változók, amik mindenki számára érvényesek.)

 

Példa egy /etc/profile fájlra:

# /etc/profile

 

 

PROFILEREAD=true

 

 

umask 022

 

# adjust some limits (see bash(1))

#ulimit -c 20000                      # only core-files less than 20 MB are written

#ulimit -d 15000                      # max data size of a program is 15 MB

#ulimit -s 15000                      # max stack size of a program is 15 MB

#ulimit -m 30000                     # max resident set size is 30 MB

 

ulimit -c 0                     # don't create core files

ulimit -d unlimited

if [ -z "$KSH_VERSION" ]; then

    # ksh does not support this command.

    ulimit -s unlimited

fi

ulimit -m unlimited

 

 

#

# make path more comfortable

#

MACHINE=`test -x /bin/uname && /bin/uname --machine`

PATH=/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin

for DIR in ~/bin/$MACHINE ~/bin ; do

    test -d $DIR && PATH=$DIR:$PATH

done

test "$UID" = 0 && PATH=/sbin:/usr/sbin:$PATH

for DIR in /usr/openwin/bin \

           /usr/lib/java/bin \

           /var/lib/dosemu \

           /usr/games/bin \

           /usr/games \

           /opt/gnome/bin \

           /opt/kde/bin ; do

    test -d $DIR && PATH=$PATH:$DIR

done

test "$UID" = 0 || PATH="$PATH:."

export PATH

 

#

# set some environment variables

#

POVRAYOPT=-l/usr/lib/povray/include

export POVRAYOPT

if test -n "$TEXINPUTS" ; then

  TEXINPUTS=":$TEXINPUTS:~/.TeX:/usr/doc/.TeX"

else

  TEXINPUTS=":~/.TeX:/usr/doc/.TeX"

fi

export TEXINPUTS

PRINTER='lp'

export PRINTER

 

 

 

LC_CTYPE=de_DE

export LC_CTYPE

 

LESSCHARSET=latin1

export LESSCHARSET

LESS=-M

export LESS

LESSKEY=/etc/lesskey.bin

export LESSKEY

LESSOPEN="|lesspipe.sh %s"

export LESSOPEN

 

MINICOM="-c on"

export MINICOM

 

MANPATH=/usr/local/man:/usr/man:/usr/X11R6/man

for DIR in /usr/openwin/man \

           /usr/man/allman \

           /usr/man/de \

           /usr/man/es \

           /usr/man/fr \

           /usr/man/it \

           ; do

    test -d $DIR && MANPATH=$MANPATH:$DIR

done

 

export MANPATH

 

#

# some applications do not handle the XAPPLRESDIR environment correctly,

# when it contains more than one directory. More than one directory only

# makes sense, when you have a client with a nfs mounted /usr and want

# to configure applications machine dependend. Uncomment if you want this.

#

#XAPPLRESDIR="$XAPPLRESDIR:/var/X11R6/app-defaults:/usr/X11R6/lib/X11/app-defaults"

#export XAPPLRESDIR

 

#

# set INFOPATH to tell xemacs where he can find the info files

#

INFODIR=/usr/local/info:/usr/info

INFOPATH=$INFODIR

export INFODIR INFOPATH

 

#

# this stuff is recommended for old motif apps.

#

XKEYSYMDB=/usr/X11R6/lib/X11/XKeysymDB

export XKEYSYMDB

XNLSPATH=/usr/X11R6/lib/X11/nls

export XNLSPATH

 

 

 

#HOSTNAME="`hostname`"

#export HOSTNAME

NNTPSERVER=`cat /etc/nntpserver 2> /dev/null`

export NNTPSERVER

# time until a complete key sequence must have arrived

# ESCDELAY=2000

# export ESCDELAY

 

if [ -d /usr/openwin/lib ] ; then

    OPENWINHOME=/usr/openwin

    export OPENWINHOME

fi

 

if [ -x /usr/bin/dircolors ] ; then

  #

  # set up the color-ls environment variables:

  #

  if test -f ~/.dir_colors ; then

    eval `dircolors -b ~/.dir_colors`

  elif test -f /etc/DIR_COLORS ; then

    eval `dircolors -b /etc/DIR_COLORS`

  fi

fi

 

# do not save dupes in the bash history file

HISTCONTROL=ignoredups

export HISTCONTROL

 

#

# make sure that teTeX is found.

#

if [ -f /usr/lib/teTeX/texmf.cnf ] ; then

    TETEXDIR=/usr/lib/teTeX

    PATH=$PATH:/usr/bin/TeX

    export TETEXDIR PATH

fi

 

 

# Further options for the 'ls' command are in /etc/DIR_COLORS.

unalias ls 2>/dev/null

if test "$UID" = 0 ; then

    LS_OPTIONS='-a -N --color=tty -T 0';

else

    LS_OPTIONS='-N --color=tty -T 0';

fi

export LS_OPTIONS

if test -n "$ZSH_VERSION" ; then

    alias ls='eval /bin/ls $LS_OPTIONS'

else

    alias ls='ls $LS_OPTIONS'

fi

alias dir='ls -l'

alias ll='ls -l'

alias la='ls -la'

alias l='ls -alF'

alias ls-l='ls -l'

# Handle emacs

if test "$EMACS" = "t" ; then

    LS_OPTIONS='-N --color=none -T 0';

    tset -I -Q

    stty cooked pass8 dec nl -echo

fi

alias o='less'

alias ..='cd ..'

alias ...='cd ../..'

alias +='pushd .'

if [ -z "$KSH_VERSION" ]; then

    alias -- -='popd'

fi

alias rd=rmdir

alias md='mkdir -p'

alias unix2dos='recode lat1:ibmpc'

alias dos2unix='recode ibmpc:lat1'

alias unzip='unzip -L'

alias which='type -p'

 

function startx { /usr/X11R6/bin/startx $* 2>&1 | tee ~/.X.err ; }

 

#

# Midnight Commander needs this to run in color mode

#

COLORTERM=1

export COLORTERM

 

# for rcs

# export VERSION_CONTROL=numbered

 

PAGER=less

export PAGER

 

if test -z "$EMACS" ; then

    if   [ -n "$ZSH_VERSION" ]; then

                precmd ()

                {

                    if test "$UID" = 0; then

                               PS1="%m:`pwd -r` # "

                    else

                               PS1="%n@%m:`pwd -r` > "

                    fi

                }

    fi

fi

 

# I had problems using 'eval tset' instead of 'TERM=', but you might want to

# try it anyway. I think with the right /etc/termcap it would work great.

# eval `SHELL=/bin/sh; tset -sQ "$TERM"`

if [ "$TERM" = "" -o "$TERM" = "unknown" ]; then

 TERM=Linux

fi

 

if test -f /etc/organization ; then

    ORGANIZATION="`cat /etc/organization`"

    export ORGANIZATION

fi

 

 

#

# nearly no known program needs $TERMCAP - 'Slang'-programs get confused

# with a set $TERMCAP -> unset it.

# unset TERMCAP

 

 

#

# set prompt

#

#PS1='`hostname`:`pwd`# '

if [ "$SHELL" = "/usr/bin/pdksh" -o "$SHELL" = "/usr/bin/ksh" -o "$SHELL" = "/bin/ksh" ]; then

    PS1="! $ "

elif [ -n "$ZSH_VERSION" ]; then

    PS1="%m:%~%# "

elif [ "$SHELL" = "/usr/bin/ash" -o "$SHELL" = "/bin/ash" ]; then

    PS1="$ "

elif [ -n "$BASH_VERSION" ] ; then

    # set -P

    set -p

    if test "$UID" = 0 ; then

        PS1="\h:\w # "

    else

        PS1="\u@\h:\w > "

    fi

    # PROMPT_COMMAND='PS1=`if test "$UID" = 0 ; then \

    #         echo "\h:\`pwd -P\` # " ; \

    #     else \

    #         echo "\u@\h:\`pwd -P\` > " ; \

    #     fi `'

    # export PROMPT_COMMAND

else

    PS1='\h:\w \$ '

    #PS1='\u \w \$ '

fi

PS2='> '

ignoreeof=0

export PS1 PS2 ignoreeof

if [ -n "$KSH_VERSION" ]; then

 if [ -r /etc/ksh.kshrc ]; then

  . /etc/ksh.kshrc

 fi

 if [ -r $HOME/.kshrc ]; then

  . $HOME/.kshrc

 fi

fi

 

#

# now source the stuff, generated by SuSEconfig

#

test -e /etc/SuSEconfig/profile && . /etc/SuSEconfig/profile

 

#

# now source profile extensions for special packages

#

test -d /etc/profile.d && \

  {

    for s in /etc/profile.d/*.sh ; do

      test -r $s && . $s

    done

  }           

 

#

# and now let's look if there is a local profile (for stuff not done in

# SuSE Linux).

#

test -e /etc/profile.local && . /etc/profile.local

 

Ha a felhasználó saját könyvtárában van egy .profile fájl, akkor a felhasználó itt a saját ízlése alapján kialakíthat magának egy belépési környezetet, felül is bírálhatja a /etc/profile fájlt.

 

Példa egy .profile fájlra:

# .profile is read for all login shells

# all other interactive shells will read .bashrc

# So read .bashrc also from .profile and make all changes to .bashrc.

# Then you should always have your correct setup.

 

test -z "$PROFILEREAD" && . /etc/profile

 

if test -f ~/.bashrc; then

                . ~/.bashrc

fi

#

# some people don't like fortune.  If you have humor, please enable it by

# uncommenting the following lines.

#

 

#if [ -x /usr/bin/fortune ] ; then

#    echo

#    /usr/bin/fortune

#    echo

#fi

 

A Linux rendszerben az általánosan elterjedt shell program (parancsértelmező program) a bash. Ha ez indul, akkor ez is megnéz több init fájlt a felhasználó home könyvtárában. A .bash_profile fájl további környezeti beállításokat tesz lehetővé a felhasználónak. Láthatjuk, hogy rögtön az elején megnézi, létezik-e a .bashrc és ha igen, akkor végrehajtja az ott található további utasításokat.

# .bash_profile                                  

                                                 

# Get the aliases and functions                  

if [ -f ~/.bashrc ]; then                         

        . ~/.bashrc                              

fi                                               

                                                 

# User specific environment and startup programs 

                                                  

PATH=$PATH:$HOME/bin                             

ENV=$HOME/.bashrc                                

USERNAME=""                                      

                                                 

export USERNAME ENV PATH

 

Egy .bashrc fájl tartalma:

# .bashrc                             

                                      

# User specific aliases and functions 

                                      

# Source global definitions           

if [ -f /etc/bashrc ]; then           

        . /etc/bashrc                 

fi

A .bash_history fájlban az eddig kiadott shell parancsaink találhatóak. Néha nem árt törölni a tartalmát…

 

Ha egy felhasználót létrehozunk, akkor a /etc/skel könyvtár tartalma automatikusan bemásolódik a könyvtárába. Tehát ezzel a módszerrel automatizálhatjuk a kezdeti környezetek beállítását.

 

ls -al /etc/skel/

total 114

 

drwxr-xr-x   6 root     root         1024 May  8 23:12 .

drwxr-xr-x  25 root     root         3072 Sep 18 02:39 ..

-rw-r--r--   1 root     root         5742 Dec  8  1998 .Xdefaults

-rw-r--r--   1 root     root           46 May  7  1996 .Xmodmap

lrwxrwxrwx   1 root     root           10 May  8 23:12 .Xresources -> .Xdefaults

-rw-------   1 root     root            0 May 18  1996 .bash_history

-rw-r--r--   1 root     root         1296 Jul 24  1997 .bashrc

-rw-r--r--   1 root     root            0 Nov 20  1995 .dayplan

-rw-------   1 root     root            0 May  8  1996 .dayplan.priv

-rw-r--r--   1 root     root          208 Nov 17  1995 .dvipsrc

-rw-r--r--   1 root     root         4022 Jul 13  1998 .emacs

-rw-r--r--   1 root     root         1168 Feb  3  1998 .exrc

-rw-r--r--   1 root     root         5376 Aug 28  1996 .gimprc

drwx------   2 root     root         1024 May  8 23:12 .grok

drwxr-xr-x   2 root     root         1024 May  8 23:12 .hotjava

-rw-r--r--   1 root     root         7924 Oct  7  1997 .jazz

-rw-r--r--   1 root     root          164 Nov 17  1995 .kermrc

-rw-r--r--   1 root     root        10376 Sep  1  1996 .lyxrc

-rw-r--r--   1 root     root         2070 Nov 17  1995 .nc_keys

-rw-r--r--   1 root     root          492 Aug  8  1997 .profile

drwx------   2 root     root         1024 May  8 23:12 .seyon

-rw-r--r--   1 root     root           42 Apr 25  1996 .stonxrc

-rw-r--r--   1 root     root           99 May 16  1997 .susephone

-rw-r--r--   1 root     root            8 Nov 17  1995 .tex

-rw-r--r--   1 root     root        10972 Nov 17  1995 .uitrc.console

-rw-r--r--   1 root     root         9394 Nov 17  1995 .uitrc.vt100

-rw-r--r--   1 root     root         9394 Nov 17  1995 .uitrc.vt102

-rw-r--r--   1 root     root        10687 Nov 17  1995 .uitrc.xterm

-rw-r--r--   1 root     root         7913 Nov 30  1995 .xcoralrc

drwxr-xr-x   2 root     root         1024 May  8 23:12 .xfm

-rwxr-xr-x   1 root     root         1870 Dec 10  1998 .xinitrc

-rw-r--r--   1 root     root          795 Sep  7  1998 .xserverrc.secure

-rwxr-xr-x   1 root     root         1714 Dec 10  1998 .xsession

-rw-r--r--   1 root     root          119 Oct 28  1997 .xtalkrc

-rw-r--r--   1 root     root           10 Nov 17  1995 .zsh

 

Karbantartó programok

A felhasználók karbantartására több program is elterjedt. Az adduser programmal könnyen létrehozhatunk egy új felhasználót.

Használata:

adduser usernév

Néhány rendszerben ez után pár kérdésre kell felelni, mint pl a felhasználó teljes neve, telefonszáma, irodaszáma, stb, de nem minden rendszerben igaz ez.

A jelszó beállítására a passwd program szolgál.

Ha paraméter nélkül adjuk ki, akkor az aktuális felhasználó jelszavát módosítjuk, ha passwd usernév alakban adja ki pl a root felhasználó, akkor a usernév által meghatározott felhasználó jelszava állítható be.

A passwd és az adduser programok paraméterezése általában minden disztribúcióban más és más, de maguk a programok léteznek.

Természetesen mindezek beállítására, a felhasználói accountok (számlák) karbantartására minden disztribúcióban van X felületen működő grafikus segédprogram is.

A felhasználók csoportokba szedhetők. Egy felhasználó természetesen több csoportba is tartozhat. Ennek a fájlok hozzáférésének szabályozásában van szerepe. A csoportok összeállítását a /etc/group fájl tartalmazza.

 

Részlet egy /etc/group fájlból:

root:x:0:root

bin:x:1:root,bin,daemon

daemon:x:2:

tty:x:5:

disk:x:6:

lp:x:7:

wwwadmin:x:8:

users:x:100:andi,zsolt,moni,adel,szabob

 

Az első mező a csoport nevét tartalmazza.

A második mező a csoport jelszavát (ha van)

A harmadik mező a csoport azonosító száma (Group ID)

A negyedik mező a csoportba tartozó felhasználók nevei vesszővel elválasztva.

X alatti karbantartásra is sok program létezik.


A KDE User Manager-e


Időzített parancsvégrehajtás, a crond

A unix rendszerekben van lehetőség az időzített parancs végrehajtásra. Minden felhasználó készíthet ilyen időzítést, mi itt a rendszer által használt időzítőt nézzük meg, amit a root felhasználó kezel. A működési mechanizmus követi a megszokott Linux konvenciókat. Van egy démon, ami a feladatot végrehajtja és ennek van egy konfigurációs állománya, amiből a végrehajtandó feladatokat és azok körülményeit megtudja. A futtatandó parancsok a /etc/crontab fájlban vannak, a megvalósításért a crond démon felel. Ezt egyszerűen csak el kell indítani a szokásos módok valamelyikén.

Kézzel kiadva a /etc/init.d/cron start parancsot, vagy –ez a logikusabb indítási mód- a futási szintnek megfelelő rcx fájlból indíthatjuk).

A többi a crontab fájl beállításán múlik. Ha valamit módosítunk, ne felejtsük el újraindítani a cron-t.

A crontab fájl beállítása

Ennek felépítése nem túl bonyolult. Beállíthatunk a crond számára bizonyos környezeti változókat. Pl. milyen shellt használjon, milyen könyvtár elérési utakat használjon, melyik felhasználónak küldjön levelet a végrehajtott parancsok kimenetéről.

Ezek után következhetnek a végrehajtandó utasítások sorai. A sorok szintaktikája a következő:

5 darab idő-dátum mező után jön a parancsot futtató felhasználó neve (a felhasználói név csak a rendszer crontab-ban), majd ezt követi a futtatandó parancs.

A dátum-idő mezők jelentése balról jobbra:

perc; óra; hónap hányadik napja; hónap; a hét hányadik napja

Ha szám van a megfelelő helyen, akkor ebben az időben hajtódik végre, ha *, akkor ezen minta szerint nincs szűrés.

 

A példában látható első sor jelentése:

Minden nap 6óra 15 perckor kiadja a root felhasználó a diald.init start parancsot.

A három csillag jelentése: mindegy, hogy a hónap hányadik napja van, mindegy, hogy hányadik hónap van, mindegy, hogy a hétnek hányadik napja van.

A harmadik sor jelentése:

Minden hét pénteken 17 órakor leáll a szerver.

A két csillag jelentése:

Mindegy, hogy hányadika van, mindegy, hogy milyen hónap van.

A negyedik sor jelentése:

Minden hónap első napján 3 óra 2 perckor a root elindítja a mentes szkriptet.

A csillagok jelentése:

Mindegy, milyen hónap van, mindegy, hogy a hétnek hányadik napja van.

Az utolsó négy sort a rendszer előre elkészíti, ebben találhatóak azok a feladatok, amiket a rendszer automatikusan végrehajt óránként, naponként, hetente és havonta. Ez természetesen megint csak disztribúciófüggő és a rendszergazda által módosítható.

SHELL=/bin/bash                                     

PATH=/sbin:/bin:/usr/sbin:/usr/bin                  

MAILTO=root                                         

                                                     

# run-parts                                         

15 6 * * * root /etc/rc.d/init.d/diald.init start   

00 17 * * * root /etc/rc.d/init.d/diald.init stop   

00 17 * * 5 root halt                                

02 3 1 * * root /root/mentes                        

02 * * * * root date >> /var/log/squid/access.log   

01 * * * * root run-parts /etc/cron.hourly          

03 1 * * * root run-parts /etc/cron.daily           

02 2 * * 0 root run-parts /etc/cron.weekly          

02 3 1 * * root run-parts /etc/cron.monthly


TCP/IP alapok

Interfészek és IP címek

A linuxban, mint minden unix rendszerben a hálózati eszközöket egy-egy interfészen keresztül érjük el. Ezeket ismerni kell a kernelnek. Például az ethernet hálózati kártyák nevei eth0, eth1, eth2, stb. A ppp eszközök (modemek) ppp0, ppp1. A ppp elődje a slip eszközök eszközfájljai a sl0, sl1, stb.

Minden TCP/IP kommunikációban részt vevő eszközhöz tartozik egy IP cím. Ez a cím 4 darab 8 bites részből áll pontokkal elválasztva egymástól. (0-tól 255-ig lehetnek itt számok.) Ennek a címnek semmi köze a hardverhez, teljesen független tőle. Bármikor módosítható. A lényeg az, hogy egyedi legyen a hálózaton belül. Ha a hálózatunk el van zárva a külvilágtól, akkor teljesen mindegy, milyen tartományból választunk gépcímeket, ha viszont az Interneten vagyunk, akkor az ott elfogadott szabályokhoz kell tartani magunkat. Az IP címeket –pontosabban a címtartományokat- a NIC (Network Information Center) tartja karban. Minden IP tartományt igénylő szervezetnek ő oszt ki még szabad tartományokat. Ez persze nem azt jelenti, hogy nekünk egyenesen hozzájuk kell fordulnunk, hiszen mi „végfelhasználónak” számítunk. Ha fel akarunk építeni egy hálózatot, akkor szükségünk van egy ilyen IP cím tartományra. Ezt nekünk majd az Internet szolgáltatónk adja abból a szeletből, amit ő kapott az ő szolgáltatójától és így tovább a NIC-ig. (Ha csak egy gépünk van, akkor nem kell tartomány, elég egy IP cím is.) Így soha semmilyen cím nem keveredhet össze, hiszen felülről lefelé szépen mindenki tudja, hogy mi a hatásköre, milyen tartomány felett gazdálkodhat közvetlenül. A szabályokat pedig nem érdemes megszegni, hiszen akkor biztosan mi húzzuk a rövidebbet, mert nem illeszkedünk a jól felépített rendszerbe és kimaradunk a szolgáltatásaiból –automatikusan kizárjuk magunkat.

Tehát egy IP cím 4 darab 8 bites szám ponttal elválasztva egymástól.

Pl.: 193.6.21.241

Egy ilyen számnégyes két részre bontható. Hálózatra vonatkozó rész és a gépre vonatkozó rész. A fenti példában a 193.6.21. lehet a hálózati rész, ami azt jelenti, hogy az ezen a hálózaton lévő minden gépnek ugyanez a hálózati címe. A 241 egy gépet azonosít ezen a hálózaton. Ekkor a hálózat címének mondjuk a 193.6.21.0 címet, a gép címe pedig 241.

Cím osztályok

A hálózati rész nagysága alapján hálózati osztályokról beszélhetünk.

 

A osztály:

1.0.0.0        tól 127.0.0.0-ig  Az utolsó 3 szám a gép azonosítója.

 

B osztály:

128.0.0.0-tól 191.255.0.0-ig          Az utolsó két szám a gép azonosítója.

 

C osztály:

192.0.0.0-tól 223.255.255.0-ig      Az utolsó szám a gép azonosítója.

 

D,E,F osztályokról is beszélhetünk, de ezek nem hivatalosak.

224.0.0.0-tól 254.0.0.0-ig.

 

Ez a felosztás nekünk annyit jelent, hogy ha kaptunk egy C osztályú tartományt, akkor 254 gépnek adhatunk egyedi címet. (Csak az utolsó számot változtathatjuk szabadon a hálózatunkon, az első három kötött a mi számunkra.) Ha van egy B osztályú tartományunk, akkor 65024 darab gépet üzemeltethetünk egyedi IP-vel. (Itt az utolsó két szám szabad a gépeinknek, az első kettő kötött.) Jogos lenne a kérdés, hogy miért nem 256-ot, vagy miért nem 65536-ot? Mert vannak minden hálózatban speciális, ki nem osztható címek:

Az egyik a hálózat címe, ami úgy áll elő, hogy a gépcím rész csupa 0. (Minden bit 0)

A másik a broadcast cím, ami – általában - úgy áll elő, hogy a gépcím rész csupa 255. (Minden bit 1) A broadcast (üzenetszórás) minden gépre vonatkozó cím.

 

Tehát például, ha üzemeltetünk egy C osztályú hálózatot, akkor a példánkhoz visszakanyarodva a hálózat címe: 193.6.21.0 A hálózat broadcast címe: 193.6.21.255. És persze a gépet egyedileg azonosítja a 241 szám.

 

Van még két speciális hálózati cím:

0.0.0.0        Az alapértelmezett útvonal (default route). Az IP csomagok útvonal választásához van rá szükség. A későbbiekben visszatérünk rá.

127.0.0.0 A gépen belüli IP forgalom számára van fenntartva. Ez az úgynevezett visszahurkolási hálózat (loopback). Ha nincsen hálózatba kötve a gépünk, akkor is kell egy ilyen hálózat néhány szoftver számára. Ehhez tartozik egy speciális hálózati interfész, a loopback (visszahurkoló) interfész. Ezt lo-val jelöljük és címe 127.0.0.1 .

 

Vannak speciális címtartományok, amik nincsenek hivatalosan kiosztva, tehát semmilyen szervezet számára nincsenek lefoglalva. Ez azért jó nekünk, mert ezeket a tartományokat szabadon felhasználhatjuk gépeink számára anélkül, hogy bármilyen más szervezet érdekeit sértenénk. A későbbiekben látni fogjuk, hogy az esetek nagy többségében bőven elég egy cégnek, vagy más szervezetnek egyetlen hivatalosan bejegyzett IP cím, attól még jól működő IP hálózatot üzemeltethet sok géppel.

Ezek a tartományok:

A osztályú 10.0.0.0

B osztályú 172.16.0.0-172.31.0.0

C osztályú 192.168.0.0-192.168.255.0

(Pl.: 192.168.1.0 egy általánosan elterjedt C osztályú tartomány.)

Alhálózatok

Hálózatunkat bonthatjuk további alhálózatokra, ha az segíti az átláthatóságot. Például B osztályú tartományunkat tovább bonthatjuk 254 db C osztályúra. Ilyenkor a gép címéből nem derül ki, hogy az milyen értékek között mozoghat.

Ennek felismerésében segít a hálózati maszk (netmaszk). A netmaszk ugyanolyan felépítésű, mint az IP cím. Megadja az IP cím hálózati részének a bitmaszkját. (1 szerepel azon a helyen, ami a hálózati címet takarja a 4x8 bit felírásában és 0 ott, ahol a módosítás megengedett a gép címének meghatározásában.)

Pl.:

B osztályú címtartomány:

131.0.0.0, vagy 142.12.0.0

11111111.11111111.00000000.00000000

Tehát a netmaszk 255.255.0.0, mert az első két részben semmit nem módosíthatok.

 

C osztályú címtartomány:

192.0.0.0, vagy 192.168.1.0

11111111.11111111.11111111.00000000

Tehát a netmaszk 255.255.255.0, mert az első három részben semmit nem módosíthatok.

 

Ha C osztályú tartományunkat bontjuk pl 4 darab alhálózatra, akkor az alhálózatok így alakulnak:

 

 

Hálózat címe       gépcímek lehetnek        broadcast cím   netmaszk

 

I.

192.168.1.0         1-62                 192.168.1.63                 255.255.255.192

 

II.

192.168.1.64       65-126              192.168.1.127               255.255.255.192

 

III

192.168.1.128     129-190            192.168.1.191               255.255.255.192

 

IV

192.168.1.192     193-254            192.168.1.255               255.255.255.192

A netmaszk azért így néz ki, mert az első három részben semmit nem módosíthatok és az utolsó részekben is csak 63 hozzáférhető cím van (az alhálózati címekkel együtt). Tehát

11111111.11111111.11111111.11000000

Azaz 255.255.255.192

 

Útválasztás

Csak azok a gépek tudnak közvetlenül kommunikálni egymással, amelyek egy alhálózaton vannak. (Tehát melyeknek a hálózati címe azonos.) Ha azt akarjuk, hogy több alhálózat gépei is kommunikálhassanak egymással, akkor egy úgynevezett átjárót (egy gateway-t) kell alkalmazni. Az átjáró lehet egy közönséges számítógép is, amiben annyi hálózati interfész van, ahány hálózathoz tartozik. A fenti C osztályú bontott hálózatot alapul véve az itt felállított átjáró minimum 4 darab hálózati interfészt tartalmaz a 4 alhálózat kiszolgálására (routolására). Az ilyen forgalomirányító számítógépeket routereknek nevezik. Tehát a router hálózati interfészei a kliensek felől nézve a hozzájuk kirendelt gateway.

Ezek célszerűen lehetnek például az egyes alhálózatok első kiosztható címei.

Tehát

 

eth0        192.168.1.1

eth1        192.168.1.65

eth2        192.168.1.129

eth3        192.168.1.193

 

Tehát ha egy IP csomag elindul az I hálózatról (pl.: a 192.168.1.5 gépről) és el kell jutnia a 192.168.1.131 címre (ami a III hálózaton van), akkor a küldő gép látni fogja, hogy nincsen a címzett az ő hálózatán. Ha nem lenne a router gép, akkor nem tudná eljuttatni a csomagot a megfelelő címre. Ennek a küldő gépnek tudnia kell, hogyha egy olyan címre küld csomagot, ami nincsen az I hálózaton, akkor a 192.168.1.1 IP című gépre kell küldenie, mert ő fog vele boldogulni, tehát az I hálózat gépeinek a 192.168.1.1 a gateway. A II hálózat gépeinek a 192.168.1.65 gép a gateway, a III hálózat gépeinek a 192.168.1.129 és a IV hálózat gépeinek a 192.168.1.193 az átjáró. (Ez természetesen mind ugyanazon a router gépen van, de az egyes alhálózatok gépei csak egy-egy kártyát látnak a 4-ből.) Ha az így felépített rendszerünk kapcsolatban van a külvilággal, akkor a routerbe célszerű még egy interfészt tenni, ami a külvilággal tartja a kapcsolatot.

eth4        193.21.10.3

Ez a kártya a 193.21.10.0 C osztályú hálózat része. Ezen keresztül a mi hálózatunk összes gépe is elérheti ezt a hálózatot.

Célszerű a routernek megadni egy alapértelmezett átjárót az olyan címek kezelésére, amit ő nem ismer fel. (Nincsen egyik olyan hálózaton sem, ahova ő kapcsolódik.)

Például ez az alapértelmezett átjáró lehet egy másik router, ami már más hálózatokat is lát és persze az ő egyik interfésze és a mi routerünk egyik interfésze ugyanazon a hálózaton van. Ő lesz a mi routerünk számára az alapértelmezett átjáró, a default gateway. (0.0.0.0 hálózat, lásd feljebb)

 

Hálózati interfészek konfigurálása (ifconfig, route)

 

Egy hálózati interfész konfigurálását az ifconfig programmal végezhetjük el.

ifconfig INTERFÉSZNÉV IPCÍM netmask NETMASZK broadcast BROADCASTCÍM

 

Pl

ifconfig eth0 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255

 

Ezt a parancsot kiadva a rendszerünk tudni fog a bekonfigurált hálózati kártyáról.

Ezek után meg kell adni az útvonal választási információkat is számára, azaz melyik a default gateway a külső kapcsolatok elérésére és mely hálózatot hogyan érhet el.

Ezt a route paranccsal tehetjük meg.

Hogy tudjon kommunikálni a 192.168.1.0 hálózat gépeivel, adjuk ki a

route add –net 192.168.1.0 eth0

parancsot. (Ha 2.2.xx kernelt használunk, akkor ezt a parancsot nem kell kiadni, de nem baj, ha kiadjuk.)

 

Ha a hálózat ezen szegmensének a 192.168.1.1 gép az alapértelmezett gateway, akkor adjuk ki a

route add default gw 192.168.1.1

Ha van egy hálózat, amit nem az alapértelmezett átjárón érünk el, akkor külön is megadhatjuk:

route add 10.0.0.0 gw 192.168.1.100

Itt utasítjuk a gépet, hogy ha a 10.0.0.0 hálózattal akar kommunikálni, akkor azt a 192.168.1.100 címen teheti meg. (Ezt a hálózati kártyát tartalmazó gépben van egy másik, ami a 10.0.0.0 hálóhoz tartozik és ez fog routolni arra felé.

 

A loopback interfész konfigurálása

 

ifconfig lo 127.0.0.1 netmask 255.0.0.0

route add –net 127.0.0.0

 

Tehát így néz ki egy tipikus linuxos gép hálózati konfigurációja.

A beállításokat el is menthetjük egy fájlba, ami automatikusan lefut minden indításnál. Ez megint csak disztribúciófüggő, Debian alatt a /etc/init.d/network fájl az.

 

A tipikus Win’xx gépeknél csak arra kell figyelni, hogy az IP cím be legyen állítva és a default gateway is be legyen állítva.


Az átjáró telepítve legyen a TCP/IP lapon!

Ha a gépet routerként használjuk, akkor a következő az eljárás.

Először is A /etc/lilo.conf fájlban fel kell venni a következő sort:

append=”ether=IRQ,IOADDR,eth0 ether=IRQ,IOADDR,eth1 stb…”

Ahol IRQ és IOADDR az egyes hálózati kártyák által használt IRQ és I/O címek. (Pl.: append=”ether=5,0x300,eth0 ether=9,0x220,eth1”

Majd természetesen adjuk ki a lilo parancsot és indítsuk újra a szervert.


Ez egy /etc/init.d/network szkript tartalma Debian alatt egy router számára.

 

#! /bin/sh                                                               

ifconfig lo 127.0.0.1 netmask 255.0.0.0                                 

route add -net 127.0.0.0                                                

(loopback interfész)

 

ifconfig eth0 193.1.1.100 netmask 255.255.255.0 broadcast 193.1.1.255

route add -net 193.1.1.0 eth0                                          

(eth0 interfész és a 193.1.1.0 hálózat elérése)

(2.2.xx kernelnél nem fontos a route kezdetű sor)

 

ifconfig eth1 192.168.1.254 netmask 255.255.255.0 broadcast 192.168.1.255

route add -net 192.168.1.0 eth1                                       

(eth1 interfész és a 192.168.1.0 hálózat elérése)

(2.2.xx kernelnél nem fontos a route kezdetű sor)

 

route add default gw 192.168.1.1 eth1

 

Az alapértelmezett átjáró a 192.168.1.1 gépen van és az et1 kártyán keresztül érhető el.

 

Azt hiszem ennyi információ elegendő egy routert is tartalmazó hálózat összeállításához.

IP aliasing

A linuxban van egy érdekes lehetőség. Az IP aliasing használata. Ezzel úgy használhatunk EGY hálózati kártyát, mintha az TÖBB lenne. A kernel fordítás fejezetben utalunk rá, hogy a hálózati tulajdonságoknál csak be kell fordítani az IP aliasing-ot és máris használhatjuk.

Ha az eth0 interfészt két IP hálózatban is használni akarjuk, akkor fel kell venni rá egy eth0:0 virtuális interfészt.

Egyszerűen minden konfigurációs parancsban ezzel kell rá hivatkozni. A fenti példa így néz ki egy hálózati kártyával:

#! /bin/sh                                                              

ifconfig lo 127.0.0.1 netmask 255.0.0.0                                  

route add -net 127.0.0.0                                                

(loopback interfész)

 

ifconfig eth0 193.1.1.100 netmask 255.255.255.0 broadcast 193.1.1.255

route add -net 193.1.1.0 eth0                                          

(eth0 interfész és a 193.1.1.0 hálózat elérése)

 

ifconfig eth0:0 192.168.1.254 netmask 255.255.255.0 broadcast 192.168.1.255

route add -net 192.168.1.0 eth0:0                                       

(eth0:0 virtuális interfész és a 192.168.1.0 hálózat elérése)

 

route add default gw 192.168.1.1 eth0:0

 

Az alapértelmezett átjáró a 192.168.1.1 gépen van és az eth0:0 virtuális kártyán keresztül érhető el.

 

A virtuális interfészek így oszthatók ki:

eth0

  eth0:0

  eth0:1

  eth0:2

  stb.

eth1

  eth1:0

  eth1:1

  eth1:2

  stb


Névkiszolgálás

 

Mint arról már beszéltünk, az interneten a gépek egyedi azonosítóval vannak ellátva. Ez az azonosító az IP cím. Minden bejegyzett gépet megtalálunk az interneten az IP címe alapján. A könnyebb megjegyezhetőség kedvéért a gépekhez egy nevet is rendelhetünk. Ez nem kötelező, de általában minden hálózatban van neve a gépeknek. Mivel ezek a nevek is teljesen egyediek, ezért ezekkel is lehet azonosítani a gépeket. A kérdés csak az, hogy milyen módszerrel lehet a neveket az IP címekkel összerendelni, azaz az egyes alkalmazások a gépnevek alapján hogyan tudják megtalálni a keresett gépet. Több módszer is van a feladat megoldására.

A /etc/hosts fájl

Az egyik legegyszerűbb, hogy a gépek tartalmaznak egy fájlt, ami leírja, hogy az egyes gépnevekhez milyen IP cím társul. Ez a /etc/hosts fájl. Ennek hátránya, hogy MINDEN gépen létezni kell a fájlnak, egyébként ahol nem létezik, ott nem tudunk a nevekkel dolgozni. Természetesen ez csak nagyon kevés számú gépet tartalmazó hálózatban működtethető hatékonyan és egyszerűen. Egy lokális, a külvilágtól elzárt rendszerben alkalmazható, de manapság már nem az ilyen típusú hálózatok az elterjedtek.

 

$ less /etc/hosts                             

127.0.0.1                localhost

192.168.1.254        goliat                       goliat.nitro.hu

194.5.2.1                peti

192.168.1.1            mail                         mail.nitro.hu

 

 

A NIS

Erre ad egy jobb megoldást a NIS (Network Information System, vagy Yellow Pages). Ebben a rendszerben a hosts fájlt egy kitüntetett gépen tárolják és az összes többi a hálózaton lévő gép ezt az egy adatbázist használja. Ezzel megoldották azt a problémát, hogy ne kelljen minden módosításnál az összes gépen elvégezni a változtatást, de még mindig csak a helyi gépek neveit tartalmazza és nagy hálózatok kezelésére nem igazán alkalmas ilyen szempontból. Mármint a hostnevek ilyen fajta tárolása. Ugyanis gondoljunk bele, hogy mi lenne, ha az interneten található összes gép nevét egyetlen adatbázisban tárolnák. Milyen nehéz lenne a karbantartása egy ilyen rendszernek. Maga a NIS kiválóan alkalmazható UNIX (tehát LINUX is) hálózatban a központi adminisztrációra. De az IP – név összerendelésről más módszerrel célszerű gondoskodni –ami persze használható a NIS-sel együtt.

 

A DNS

A ma általánosan elfogadott névmeghatározó rendszer a DNS (Domain Name System). A DNS a gépneveket körzetekbe –doménekbe- szervezi. Az egy doménbe tartozó gépekről tudhatjuk, hogy valamilyen szempont szerint ugyanahhoz a szervezethez tartoznak. Ilyen szervezet lehet egy ország, egy város, egy ország egyetemei, egy egyetem tanszékei, egy vállalat telephelyei, egy telephelyen működő osztályok, stb. A példákból látható, hogy nem csak egymás melletti domének vannak, hanem egy-egy doménen belül lehet kialakítani aldoméneket. A nevek ilyenfajta hierarchiába szervezése roppant egyszerűvé teszi a nevek kezelését. A DNS rendszerben egy gép nevének csak a doménjén belül kell egyedinek lenni. És ez abszolút átláthatóságot biztosít a rendszer adminisztrációjában. A legfőbb doméneket, amik közvetlenül a domén fa gyökeréből ágaznak, egy központi helyen tartják nyilván. NIC (Network Information Center)

Itt megadják, hogy az egyes doménekhez milyen IP címtartomány tartozik. Ezt az egyes domének gazdái tudomásul veszik és a nekik kiszabott IP cím-domén tartományban alkothatnak új aldoméneket a nekik megfelelő módon tovább bontva ezt. Az aldomének gazdái is tudomásul veszik a korlátaikat. Így megy ez tovább egészen az utolsó kis vállalat, iskola aldomén rendszeréig, amit már a helyi rendszergazda teljesen átlát és könnyedén karbantart. Az egyes doménekről tárolt adatbázis úgynevezett névkiszolgáló számítógépeken Domain Name Server-eken van. Ezek a szerverek mindent tudnak a hozzájuk tartozó domén gépeiről.

A gép neve és a doménneve együtt adja a gép teljesen minősített doménnevét, ami az egész világon egyedileg azonosítja a gépet.

(Pl.: mail.nitro.hu teljesen minősített domén név. Ebből a mail a gép neve, a nitro.hu a domén neve.)

Ezt most már értjük. Fentről lefelé teljesen világos lehet számunkra, hogyan megy a domén hierarchiába rendezés. De hogyan lehet ezt használni. Hogyan képes megtalálni egy a gépünkön futó alkalmazás azt a gépet a neve alapján, amit keres. Hogy igazodik ki ebben az óriási méretű fában, amikor annak ágai szinte teljesen önállóan nőnek és ágaznak tovább, mindenféle központi irányítás nélkül.

A megoldást a névkiszolgálók működésében kell keresni. Ha egy alkalmazásnak kell egy gép címe a neve alapján, akkor a nevet elküldi a helyi névkiszolgálónak. Az megnézi, hogy a név az ő körzetében van-e. Ha igen, akkor visszaadja a címét. Ha nem, akkor továbbadja a nevet egy másik névkiszolgálónak, ami számára meg van adva, mint alapértelmezett kiszolgáló. (Minden olyan nevet, amit nem tud értelmezni, ennek az úgynevezett forwarders-nek küldi tovább.) Ez is megnézi a nevet. Ha tudja értelmezni, akkor visszaadja a címét, ha nem, akkor ő is tovább küldi egy másik, számára megadott alapértelmezett kiszolgálónak. Ha nincs megadva valahol forwarders, akkor egy úgynevezett gyökér névkiszolgáló biztosan tudni fogja, hogy melyik névkiszolgáló „foglalkozik” az általunk kért címmel. A gyökér kiszolgálók a domén hierarchia csúcsán (azaz gyökerén) vannak és mindig megbízhatóan működnek.

Ezek után ez a név-IP páros eltárolódik a helyi névkiszolgáló cache-ében a további gyors felhasználhatóság érdekében. Azt, hogy mennyi ideig tárolja a cache-ben az adatot, egy konfigurációs fájlban adhatjuk meg, amiről az alábbiakban még szó lesz.

Általában minden helyi rendszerben, ahol működik önálló névkiszolgáló, ott legalább kettő működik. Ezek közül az egyik a fő (master) kiszolgáló, a többi a másodlagos kiszolgáló. Ezek időnként az elsődlegesből átveszik a zónára vonatkozó adatokat. Ez a felépítés a jobb terhelés elosztás miatt van így, másrészt, ha az elsődleges kiszolgáló nem működik valami miatt, akkor a rendszerben megállna az élet a másodlagos kiszolgálók nélkül.

 

Szükség van arra is, hogy az IP cím alapján keressünk nevet. (Fordított keresés) Ha csak egy /etc/hosts fájlt használunk, akkor semmi probléma, a dolog egyszerűen működik. Name server használata estén ilyenkor egy úgynevezett in-addr.arpa domént használunk, ami tartalmazza az összes IP címet fordított pontozott jelöléssel, és a név kiszolgálók az ilyen típusú adatbázisban keresnek. Pl egy 192.168.1.12 című gép in-addr.arpa neve 12.1.168.192.in-addr.arpa. Ennél jobban ebbe nem kell belemélyedjünk.

 

A feloldó

A feloldó egy függvény gyűjtemény, amely képes arra, hogy egy alkalmazás számára kikeresse a kért gép címét a neve ismeretében és fordítva. Ez a feloldó könyvtár megtalálható minden Linux disztribúcióban külön telepítést nem igényel.

A konfigurációs fájlok

 

A host.conf fájl.

Ez a fájl a feloldót vezérlő központi fájl. Megadja, hogy a feloldó milyen sorrendben próbálja használni a név-IP összerendelést segítő szolgáltatásokat.

Az opciók a Linux többi konfigurációs állományában megszokott módon külön sorban vannak.

A használható opciók:

order

Megadja, hogy milyen sorrendben használja a feloldó a szolgáltatásokat. Egymás után vesszővel elválasztva kell megadni a kívánt sorrendben a bind, a hosts és a nis lehetőségeket. A bind a name serverre vonatkozik, a hosts a helyi gép /etc/hosts fájljára és a nis a NIS szerverre. A példában a feloldót arra utasítjuk, hogy először nézze mmeg a helyi gép /etc/hosts adatbázisát és ha ott nem talál utalást, akkor kérjen a name servertől segítséget.

 

trim

Ebben az opcióban megadhatunk egy domén nevet, amely a keresés előtt el lesz távolítva a gépnévről. Ez hasznos a hosts bejegyzésekhez, ahol csak gazdagép neveket akarunk megadni helyi domén nélkül. Egy hozzáfűzött helyi domén névvel rendelkező gazdagép keresése ezt el fogja távolítani és így megtalálja a gépet a /etc/hosts fájlban.

 

multi

Értéke on és off lehet. Megadja, hogy egy gépnévhez tartozhat-e több IP cím a /etc/hosts fájlban. (Nem befolyásolja a DNS, vagy NIS kéréseket.)

 

nospoof

Értéke on és off lehet. Az úgynevezett átejtési kísérletek kiszűrésére használható. Ha on értékre állítjuk, akkor a feloldó megpróbálja megakadályozni a gépnév átejtéseket megnövelve ezzel az rlogin, rsh, stb programok biztonságos használatát. A feloldó ellenőrzi, hogy az IP cím tényleg ahhoz a gazdagéphez kapcsolódik-e. Ha nem, akkor a kérést elutasítja és hibajelzést kapunk.

 

alert

Lehetséges értékei on és off. Ha on állásba kapcsoljuk (alapértéke off) és a nospoof opció is on állásban van, akkor átejtés esetén a syslogban bejegyzést naplóz a rendszergazdának az átejtési kísérletről.

 

order hosts,bind   

multi on           

nospoof on         

alert on           

pl. /etc/host.conf fájl

 

 

A resolv.conf fájl

Ha a /etc/host.conf fájlban arra utasítjuk a feloldót, hogy a name servert használja, akkor meg kell neki mondani, hogy melyiket. Ezt tehetjük meg ebben a fájlban. Ha nincs, vagy üres, akkor a feloldó feltételezi, hogy a name server a helyi gépen van.

A leggyakrabban használt opciók a domain, a search és a nameserver.

A nameserver után megadhatjuk a névkiszolgáló IP címét. Több egymás utáni sorban használhatjuk a nameserver opciót, így több névkiszolgálót beállíthatunk ebben a keresési sorrendben.

A domain opciót akkor célszerű használni, ha nem minősített neveket akarunk használni egy-egy alkalmazásban. (pl telnet mail, nem pedig telnet mail.nitro.hu) Ekkor az itt megadott doménen keresni fogja a gépnevet. Itt csak egyet adhatunk meg. Ennél kicsit használhatóbb a search opció. Ebben egymás után szóközzel elválasztva több domén is megadható, amiken végig fogja keresni a nem minősített neveket.

 

search nitro.hu vein.hu

nameserver 192.168.1.1

pl.: /etc/resolv.conf fájl

 

A feloldó konfigurálása után most nézzük meg a Linux névkiszolgálójának konfigurálását.

A Linux névkiszolgálója

Indítás

A Linux a named programot használja névkiszolgálóként. Egyszerűen beírjuk root jogosultsággal a prompthoz, hogy named, és a program elindul. A legtöbb Linux disztribúció – sok más programhoz hasonlóan – tartalmaz egy indító szkriptet a named számára is. Célszerű ezen keresztül indítani a name servert. (Debianban ez a szkript a /etc/init.d/bind, Red Hat-ben a /etc/rc.d/init.d/named.) Természetesen automatizálhatjuk az indulást egy megfelelő rcX.d könyvtárt használva. Ide csak a szokásos szimbolikus linket kell elhelyezni a named programra.

 

goliat:~# ls -al /etc/rc3.d/S19bind                                            

lrwxrwxrwx   1 root       root  14 May 31 14:29 /etc/rc3.d/S19bind -> ../init.d/bind        

goliat:~#

 

A Debian indító szkriptje:

 

#!/bin/sh                                                       

#                                                               

# Start or stop named                                            

#                                                               

# Robert Leslie <rob@mars.org>                                  

                                                                

test -x /usr/sbin/named || exit 0                                

                                                                

case "$1" in                                                    

    start)                                                      

        echo -n "Starting domain name service: named"           

        start-stop-daemon --start --quiet --exec /usr/sbin/named

        echo "."                                                

    ;;                                                          

                                                                 

    stop)                                                       

        echo -n "Stopping domain name service: named"           

        start-stop-daemon --stop --quiet  \                     

            --pidfile /var/run/named.pid --exec /usr/sbin/named 

        echo "."                                                

    ;;                                                          

                                                                

    restart)

$0 stop                                                               

        $0 start                                                              

    ;;                                                                        

                                                                               

    reload)                                                                   

        echo -n "Reloading named configuration..."                            

        start-stop-daemon --stop --signal 1 --quiet  \                        

            --pidfile /var/run/named.pid --exec /usr/sbin/named               

        echo "done."                                                          

    ;;                                                                         

                                                                              

    force-reload)                                                             

        $0 restart                                                             

    ;;                                                                        

                                                                              

    *)                                                                        

echo "Usage: /etc/init.d/bind {start|stop|reload|restart|force-reload}>&2 

        exit 1                                                                

    ;;                                                                        

esac                                                                           

                                                                              

exit 0

Látható a szkriptben, hogy milyen paramétereket adhatunk.

Ha indítani akarunk:                                /etc/init.d/bind start

Leállítás:                                                /etc/init.d/bind stop

Újraindítás:                                             /etc/init.d/bind restart

Konfigurációs fájlok újraolvastatása:          /etc/init.d/bind reload

Induláskor a named.boot fájlt olvassa el a named program, ami alapértelmezés szerint a /etc könyvtárban található.

 

A named.boot fájl

Ez a fájl a névkiszolgálónak szóló információkat tartalmaz. Amikor a named programot indítjuk, akkor ez az a fájl, ami tartalmazza számára a legszükségesebb kiinduló információkat, például mik azok a zóna fájlok, amik a különböző olyan zónákról tartalmaz információkat, amiket neki ki kell szolgálni.

Itt látható egy névkiszolgáló named.boot fájlja.

;                                                                          

; Boot file for the DNS                                                     

;                                                                          

                                                                           

directory /etc/named                                                       

                                                                            

; type          domain                   source host/file       backup file

                                                                           

cache           .                                               named.root 

primary         0.0.127.IN-ADDR.ARPA     0.0.127.IN-ADDR.ARPA.zone         

primary         nitro.hu              nitro.hu.zone                  

primary         1.168.192.IN-ADDR.ARPA   1.168.192.IN-ADDR.ARPA.zone        

 

forwarders      194.149.0.157                                              

                                                                           

limit           datasize        1M                                         

                                                                            

check-names     primary         fail                                       

check-names     response        ignore

 

A pontosvesszővel kezdődő sorok megjegyzések, magyarázatok.

A ’directory’ opció megadja azt a könyvtárat, ahol a named program konfigurációs fájljai találhatóak. Tehát esetünkben a named program ezentúl minden szükséges fájlt a /etc/named könyvtárban fog keresni.

A ’cache’ opcióval beindítjuk a named program cache funkcióját. Mindenképen indítsuk el, mert egyébként rossz teljesítménnyel fog menni a névkiszolgálónk. Argumentuma egy doménnév (a gyökér domén, tehát mindig egy . (pont) legyen) és egy fájl (általában named.root), ahol a megbízható, általában mindig működő gyökér névkiszolgálók nevei találhatók. (Lásd fentebb.)

Egy tipikus /etc/named.root fájl, ami minden Linux disztribúcióban megtalálható és tulajdonképpen nem kell hozzá nyúlni:

 

;       This file holds the information on root name servers needed to

;       initialize cache of Internet domain name servers              

;       (e.g. reference this file in the "cache  .  <file>"           

;       configuration file of BIND domain name servers).              

;                                                                      

;       This file is made available by InterNIC registration services 

;       under anonymous FTP as                                        

;           file                /domain/named.root                     

;           on server           FTP.RS.INTERNIC.NET                   

;       -OR- under Gopher at    RS.INTERNIC.NET                       

;           under menu          InterNIC Registration Services (NSI)  

;              submenu          InterNIC Registration Archives        

;           file                named.root                            

;                                                                     

;       last update:    Jan 22, 1997                                   

;       related version of root zone:   1997012200                    

;                                                                     

;                                                                     

; formerly NS.INTERNIC.NET                                             

;                                                                     

.                        3600000  IN  NS    A.ROOT-SERVERS.NET.       

A.ROOT-SERVERS.NET.      3600000      A     198.41.0.4                

;

; formerly NS1.ISI.EDU                                           

;                                                                

.                        3600000      NS    B.ROOT-SERVERS.NET.  

B.ROOT-SERVERS.NET.      3600000      A     128.9.0.107           

;                                                                

; formerly C.PSI.NET                                             

;                                                                

.                        3600000      NS    C.ROOT-SERVERS.NET.  

C.ROOT-SERVERS.NET.      3600000      A     192.33.4.12          

;                                                                

; formerly TERP.UMD.EDU                                          

;                                                                 

.                        3600000      NS    D.ROOT-SERVERS.NET.  

D.ROOT-SERVERS.NET.      3600000      A     128.8.10.90          

;                                                                

; formerly NS.NASA.GOV                                            

;                                                                

.                        3600000      NS    E.ROOT-SERVERS.NET.  

E.ROOT-SERVERS.NET.      3600000      A     192.203.230.10       

;                                                                 

; formerly NS.ISC.ORG                                            

;                                                                

.                        3600000      NS    F.ROOT-SERVERS.NET.

F.ROOT-SERVERS.NET.      3600000      A     192.5.5.241         

;                                                               

; formerly NS.NIC.DDN.MIL                                       

;                                                                

.                        3600000      NS    G.ROOT-SERVERS.NET. 

G.ROOT-SERVERS.NET.      3600000      A     192.112.36.4        

;                                                               

; formerly AOS.ARL.ARMY.MIL                                      

;                                                               

.                        3600000      NS    H.ROOT-SERVERS.NET. 

H.ROOT-SERVERS.NET.      3600000      A     128.63.2.53         

;                                                                

; formerly NIC.NORDU.NET                                        

;                                                               

.                        3600000      NS    I.ROOT-SERVERS.NET. 

I.ROOT-SERVERS.NET.      3600000      A     192.36.148.17       

;                                                               

; temporarily housed at NSI (InterNIC)                          

;                                                               

.                        3600000      NS    J.ROOT-SERVERS.NET. 

J.ROOT-SERVERS.NET.      3600000      A     198.41.0.10         

;                                                               

; temporarily housed at NSI (InterNIC)                          

:

;                                                              

.                        3600000      NS    K.ROOT-SERVERS.NET.

K.ROOT-SERVERS.NET.      3600000      A     198.41.0.11       

; End of File

 

A ’primary’ opcióban adhatjuk meg argumentumként azoknak a doméneknek a neveit, amiknek ez a névkiszolgáló elsődleges kiszolgálója. És azokat a fájlokat, amikben ezeknek a doméneknek a leírása található.

Egy doménnek általában mindig primary kiszolgálója a name server, mégpedig a 127.0.0.0 (visszahurkoló)hálózat fordított keresései számára.

A példában ez a névkiszolgáló elsődleges kiszolgálója a nitro.hu doménnek, melynek zónafájlja a /etc/named/nitro.hu.zone és ennek a doménnek a visszafelé kereséséhez tartozó 1.168.192.IN-ADDR.ARPA doménnek, melynek zónafájlja a /etc/named/1.168.192.IN-ADDR.ARPA.zone fájl.

A ’forvarders’ opció argumentumában megadhatunk egy IP címlistát, mely további névkiszolgálókhoz tartozik. Ha a mi névkiszolgálónk nem tud feloldani egy lekérdezést, akkor ezekhez fordulhat, amíg valaki meg nem mondja a választ.

Példánkban a 194.149.0.157 IP című géphez fordul a mi name serverünk, ha ő maga nem tudja feloldani a kérést.

További gyakran használt opciók a ’secondary’ és a ’slave’. Ha írunk egy ’secondary’ sort, akkor a mi név kiszolgálónkat kineveztük egy adott domén számára másodlagos kiszolgálónak. Ennek argumentumai a domén neve (akinek ő lesz a másodlagos kiszolgálója), és legalább egy (a domén számára) elsődleges kiszolgáló IP címe, ugyanis innen fogja megadott időközönként letölteni a domén számára vonatkozó információkat. Ha egy lekérdezést egyik elsődleges kiszolgáló sem old fel, akkor a domén számára kijelölt másodlagos kiszolgáló fogja megtenni.

A ’slave’ opcióval olyan kiszolgálóvá alakítjuk name serverünket, ami soha nem fog feloldást végezni önállóan, hanem minden kérést továbbít egy forwardersnek.

Ezek után végül nézzük meg, hogyan épülnek fel a zónainformációkat tartalmazó törzsfájlok.

 

 

 

A törzsfájlok

A DNS adatbázis több fájlból áll. Minden adatbázisnak van egy osztály azonosítója, ami megmondja, hogy milyen típusú hálózathoz tartozik (pl.: IN az IP címek meghatározásához). Az egyes fájlok egy-egy (origin) domént írnak le. (Amiket a named.boot fájlban a cache és a primary opciókkal adtunk meg.) Ha erre az (origin) doménre akarunk hivatkozni a fájlon belül, akkor a @ jelet használjuk. A fájlon belül gépneveket adhatunk meg és doménneveket ehhez a doménhez képest. Ha abszolút nevet szeretnénk megadni, akkor . (pontal) kell zárni a nevet, egyébként ehhez a doménhez viszonyítunk. A fájlokon belül különböző típusú úgynevezett forrásrekordok vannak. A rekordok általános felépítése:

gép, vagy doménnév        class    type      rdata

A class egy címosztály. Ha TCP/IP hálózatot adminisztrálunk, akkor IN re kell állítani.

A type a rekord típusa.

Az rdata a leírt doménhez, vagy géphez tartozó adatot tartalmazza.

 

A type lehetséges értékei:

 

SOA

Egy jogosultsági zónát ír le. Minden primary utasítással megadott törzsfájlnak kell tartalmaznia egy SOA rekordot. Azt jelzi, hogy az itt lévő rekordok hiteles információt tartalmaznak a domén számára.

Részei:

origin

A domén elsődleges névkiszolgálójának kanonikus gépneve.

contact

A domén karbantartásáért felelős személy e-mail címe, de a @ jel helyett is . (pont) van.

 

serial

A fájl verziószáma. Ha az adatok megváltoznak, akkor ezt a számot is növeljük meg. Szokás még esetleg a dátumra utaló számot írni ide.

refresh

Azt az időt adja meg másodpercekben mérve, amilyen gyakorisággal a másodlagos kiszolgáló frissíti az adatokat. (maximum 8 jegyű szám) Ez napos nagyságrendű legyen.

retry

Az itt megadott időközönként próbálkozik (szintén másodpercben mérve) a másodlagos kiszolgáló a kapcsolat felvétellel az elsődleges kiszolgálóval, ha az nem sikerült. Ez órás nagyságrendű legyen.

expire

Ha a kapcsolat ennyi idő múlva sem jött létre az elsődleges kiszolgálóval, akkor a másodlagos kiszolgáló már figyelmen kívül hagyja az adatokat. Ez lehet több hónapos is.

minimum

Az alapértelmezett érték az olyan forrásrekordokra, aminek nincs külön megszabva, hogy az egyes névkiszolgálók mennyi ideig tartsák bent a cache-ükben a rá vonatkozó adatokat. Ha a hálózatunk nem gyakran változik, akkor ez lehet több hét is értelemszerűen. Ez is másodpercben van megadva.

 

A

Ebben a rekordban egy IP címet rendelünk össze egy névvel. Ez lesz a gép kanonikus neve, az összes többi neve csak egy erre vonatkozó álnév lehet, melyet a CNAME rekorddal adhatunk meg. Minden géphez csak egy A rekord tartozhat.

NS

A zóna elsődleges névkiszolgálóját adhatjuk meg itt. A gép neve szerepel adatként ebben a rekordban. Ebből következik, hogy szükség lehet egy A rekordra is ennek a névnek a feloldására.

CNAME

Egy gép álneveit adhatjuk meg CNAME rekorddal.

MX

A domén számára működő levélkiszolgálót adja meg a preferenciájával együtt.

PTR

Ez a rekord az in-addr.arpa doménben a fordított lekérdezésekhez adja meg a fordított IP címekhez (az in-addr.arpa nevekhez) tartozó gépneveket.

HINFO

A gép hardveréről és szoftveréről ad információt. Az érvényes bejegyzéseket az Assigned Numbers RFC-ből illik kiválasztani.

 

Ezek után lássunk két példa fájl darabot a fent leírtakra.

 

A /etc/named/nitro.hu.zone fájl részlete a név – IP lekérdezésekhez:

 

@                            IN      SOA     mail.nitro.hu. szabob.mail.nitro.hu. (

                                19990422 ; Serial                          

                                10800    ; Refresh 3 hours                 

                                3600     ; Retry   1 hour                  

                                3600000  ; Expire  1000 hours              

                                604800 ) ; Minimum 1 week                  

                                IN      NS      mail                                        

                                IN      MX      10 mail                                    

Mail                         IN      A       192.168.1.1                                

                                IN      HINFO   2x686 Linux                         

zombi                       IN      CNAME   mail                                        

proxy                      IN      CNAME   mail                                       

www                        IN      CNAME   mail                                       

ftp                            IN      CNAME   mail                                       

billygate                   IN      A       192.168.1.9                                 

                                IN      HINFO   laptop                                     

feri                           IN      A       192.168.1.10                               

                                IN      HINFO   i586 Win'95                                

 

A /etc/named/2.168.192.IN-ADDR.ARPA.zone fájl részlete a fordított lekérdezésekhez:

 

@       IN      SOA     mail.nitro.hu. szabob.mail.nitro.hu. (   

                                19990422 ; Serial                     

                                10800    ; Refresh 3 hours            

                                3600     ; Retry   1 hour             

                                3600000  ; Expire  1000 hours         

                                604800 ) ; Minimum 1 week             

        IN      NS      mail.nitro.hu.                              

; RFC 1101 stuff                                                      

0       IN      PTR     nitro.hu.                                  

        IN      A       255.255.255.0                                 

; real hosts on the root                                              

1       IN      PTR     mail.nitro.hu.                             

9       IN      PTR     billygate.nitro.hu.                        

10      IN      PTR     feri.nitro.hu.                              

11      IN      PTR     pisti.nitro.hu.                            

12      IN      PTR     tamara.nitro.hu.                           

 

Ennyi ismeret valószínűleg elegendő, hogy saját name servert állítsunk fel vállalatunk számára. Ha ezt megtettük, akkor az nslookup programmal könnyen ellenőrizhetjük munkánkat. Használata rendkívül egyszerű. Ha egy nevet adunk paraméternek, akkor a hozzá tartozó címet kapjuk vissza, ha a címet írjuk be, akkor az ahhoz tartozó nevet. Természetesen csak akkor, ha jól működik a name server. Ha paraméter nélkül hívjuk meg, akkor párbeszédes módban használhatjuk a programot. Ennek nagyon sok lehetősége van, többek között name servert válthatunk a ns utasítás és az új name server nevének megadásával.

 

 

 

 

 

 

$ nslookup goliat

Server:  mail.nitro.hu            

Address:  192.168.1.1                

                                     

Non-authoritative answer:             

Name:    goliat.nitro.hu          

Address:  192.168.1.254              

                                     

 

 

$ nslookup 192.168.1.254 

Server:  mail.nitro.hu                    

Address:  192.168.1.1                        

                                              

Name:    goliat.nitro.hu                  

Address:  192.168.1.254                      

                                             

 

 


Levelezés

 

A számítógépes hálózatok egyik legalapvetőbb szolgáltatása az elektronikus levelezés. Különböző levélváltási szabványokat találtak ki. Az Interneten az RFC822-ben lefektetett szabványhoz tartja magát mindenki, aki azt akarja, hogy biztosan eljussanak a levelek a címzetthez. Nagy figyelmet fordítottak a multimédiás levelekre is, amik képeket, hangokat is tartalmaznak (MIME).

A UNIX rendszerekhez elég sok levéltovábbító programot készítettek. Ezek közül talán a legismertebbek a SENDMAIL és a SMAIL. A SENDMAIL fejlesztése a Berkeley egyetemen indult. Eredeti szerzője Eric Allman volt. A legtöbb LINUX disztribúció tartalmazza. A Linuxal legáltalánosabban használt levél ügynök a SMAIL, melyet Curt Landon Noll és Ronald S Karr írt szerzői joggal. Fontos megemlíteni az EXIM-et, egy másik levél ügynököt, amit a Universiti of Cambridge-en fejlesztettek. Ennek stílusa teljesen hasonló a SMAIL-hez, de a GNU GPL alá tartozik, és biztonságosabb. Részletesebben ezt fogjuk tárgyalni egyszerűsége és jó használhatósága miatt.

A Sendmail-hez képest a Smail nagyon fiatal. Ha egy kisebb hely levelezését szeretnénk megoldani nem túl bonyolult útválasztással, akkor célszerű a Smail-t vagy még inkább az EXIM-et használni, de a Sendmail sokkal összetettebb és rugalmasabb konfigurációs sémával rendelkezik. Konfigurációja nem könnyű feladat. (A program referenciakönyve 792 oldal)

 

A levél

Egy levél általában egy üzenettörzsből és a címzetteket, átviteli közeget, stb. meghatározó különleges adatokat tartalmazó részből, a fejlécből áll. A legtöbb Linuxos levéltovábbító az RFC822-ben meghatározott sémát használja. Eredetileg az ARPANET-en való használatra szánták, de mivel környezettől független, ezért könnyen adaptálható volt más hálózatokra is, ideértve az UUCP-t is. Ezen felül már vannak újabb szabványok is, amik jobban megfelelnek a kor követelményeinek. (adattitkosítás, nemzeti karakterkészletek támogatása, multimédiás kiterjesztések (MIME)).

Ezekben a szabványokban a fejléc több sorból áll és egy üres sor választja el a levél törzsétől.

Általában az összes szükséges fejlécfájlt a használt levelező program állítja elő (pine, Pegasus, stb…) egyes sorok szoftver függőek, másokat a levéltovábbító vesz fel a fejlécbe.

Egy tipikus fejléc:

 

From szabob@mail.nitro.hu  Fri Jul 16 12:41:02 1999                         

Return-Path: <szabob@mail.nitro.hu>                                          

Received: from mail.nitro.hu (sami.nitro.hu [192.168.1.16])            

        by mail.nitro.hu (8.8.7/8.8.5) with ESMTP id MAA12378               

        for <szamtech@mail.nitro.hu>; Fri, 16 Jul 1999 12:41:02 +0200       

Message-ID: <378F0B5B.C6A33977@mail.nitro.hu>                               

Date: Fri, 16 Jul 1998 12:37:15 +0200                                          

From: SZABÓ Bálint= <szabob@mail.nitro.hu>            

Organization: Nitrogénművek Rt.                           

X-Mailer: Mozilla 4.51 [en] (Win95; I)                                         

X-Accept-Language: en                                                          

MIME-Version: 1.0                                                               

To: szamtech@mail.nitro.hu                                                  

Subject: van listánk                                        

Content-Type: text/plain; charset=iso-8859-2                                    

Content-Transfer-Encoding: 8bit                                                

                                                                               

Üdv mindenkinek! (Ez már a levél törzse…)

 

Az általános fejlécfájlok mezőinek jelentése:

From:

A küldő e-mail címét és esetleg a „valódi nevét” tartalmazza. Sokféle formátum használatos itt.

 

To:

A címzett e-mail címe.

Subject:

Néhány szóban leírja a levél tartalmát

Date:

A levél elküldésének dátuma.

Reply-To:

Megadja azt a címet, ahova a küldő várja a választ.

Organization:

Az a szervezet, akié a gép, ahonnan a levél származik.

Message-ID:

A származási rendszeren lévő levéltovábbítás által létrehozott karakterlánc. Ez egyedi azonosító.

Received:

Mindegyik hely, amelyik feldolgozza a levelünket (beleértve a küldő és a címzett gépét) egy ilyen mezőt szúr be a fejlécbe, megadva a hely nevét, az üzenet azonosítóját, az üzenet vételének idejét és dátumát, hogy melyik helyről van szó, és melyik átviteli szoftvert használták. Ez azért van, hogy nyomon lehessen követni, melyik útvonalat választotta az üzenet.

X-bármi:

A levelezés-vonzatú programoknak nem szabad panaszkodniuk az X- kezdetű sorokra a fejlécben. Olyan szolgáltatások megvalósítására használatosak, amiket még nem alakítottak RFC-vé, ill. nem is fognak.

 

Egy naplófájl részlete – avagy, amit egy levélről tudni kell…:

220 mail.nitro.hu ESMTP Sendmail 8.8.7/8.8.5; Wed, 31 Mar 1999 10:

EHLO mrelay.datanet.hu                                               

250-mail.nitro.hu Hello pultilla [193.159.0.147], pleased to mee

250-EXPN                                                             

250-VERB                                                             

250-8BITMIME                                                          

250-SIZE                                                             

250-DSN                                                              

250-ONEX                                                             

250-ETRN                                                              

250-XUSR                                                             

250 HELP

MAIL From:<borvirag@rkk.hu> SIZE=1357                               

250 <borvirag@rkk.hu>... Sender ok                                    

RCPT To:<torma@mail.nitro.hu>                                     

250 <torma@mail.nitro.hu>... Recipient ok                          

DATA                                                                

354 Enter mail, end with "." on a line by itself                     

Received: from relay.datanet.hu (localhost.datanet.hu [127.0.0.1])  

by mrelay.datanet.hu (8.9.1a/8.9.1) with ESMTP id PAA10939    

for <torma@mail.nitro.hu>; Tue, 30 Mar 1999 15:34:59 +0200 (

Received: from rkk.hu (boss.rkk.hu [193.224.110.2])                 

by relay.datanet.hu (8.9.1a/8.9.1) with ESMTP id PAA10931     

for <torma@mail.nitro.hu>; Tue, 30 Mar 1999 15:34:56 +0200 (

Received: from boss.rkk.hu (localhost [127.0.0.1])                  

by rkk.hu (8.9.0.Beta5/8.9.0.Beta5) with SMTP id PAA31518;    

Tue, 30 Mar 1999 15:33:14 +0200 (MET DST)                     

Date: Tue, 30 Mar 1999 15:33:14 +0200 (MET DST)                     

Message-Id: <199903301319.OAA12756@mgate1.mkogy.hu>                  

Errors-To: szemgy@rkk.hu                                            

Reply-To: borvirag@rkk.hu                                           

Originator: borvirag@rkk.hu                                         

Sender: borvirag@rkk.hu                                              

Precedence: bulk                                                    

From: "Nagy Arpad" <f01dapra@mkogy.hu>

To: Multiple recipients of list <borvirag@rkk.hu>                   

Subject: Ekezet                                                      

X-Listprocessor-Version: 6.0c -- ListProcessor by Anastasios Kotsikon

X-Comment: Borvirag-Lista                                          

MIME-Version: 1.0                                                   

MIME-Version: 1.0                                                    

Content-Type: TEXT/PLAIN; charset=ISO-8859-2                        

Content-Transfer-Encoding: QUOTED-PRINTABLE                         

                                                                    

Igen Tisztelt Listatagok…                                            

 

A levél kézbesítése

Elektronikus levelezésnél a cím a személy postáját kezelő gép nevéből és a rendszer által felismerhető felhasználói azonosítóból áll. Ez lehet a címzett bejelentkező neve, de bármi más is. Az Internet helyek az RFC822-es szabványnak megfelelő felhasználó@gazdagép.domén formát követik.

Általában a levelet egy levelező interfésszel állítjuk össze. (Kivéve persze akkor, ha „betelnetelünk” a 25-ös portra és bájcsevelyt folytatunk a levéltovábbító programmal a napló fájl elején láthatóhoz hasonló módon.) Ilyen interfész lehet a mail, elm, pine, vagy valamilyen grafikus felületű levelező program: Pegasus mail, Netscape Communicator, Outlook) Ezek a programok a levelezési felhasználói ügynökök (MUA). Ha küldünk egy üzenetet, akkor a MUA egy másik programnak, a levelezési szállító ügynöknek (MTA) adja át a levelet továbbításra.

A levél helyi kézbesítése természetesen többet jelent, mint csupán a bejövő üzenet hozzáfűzése a címzett postaládájához. A helyi MTA általában érti az álnevet, valamint a továbbítást. A nem kézbesíthető leveleket vissza kell küldeni a feladónak egy hibaüzenet kíséretében.

Távoli kézbesítésnél a használt szállítási szoftver a kapcsolat természetétől függ. Ha a levelet TCP/IP hálózaton kell továbbítani, akkor általában SMTP-t használunk. (Simple Mail Transfer Protocol)

Levelezési útválasztás az Interneten

Egy üzenetnek a címzett gazdagéphez való irányítását útválasztásnak nevezzük. A küldő oldaltól a rendeltetési helyig való útvonal megtalálásán kívül hibaellenőrzést is magában foglal. Az interneten az adatoknak a címzett gazdagépére küldésének fő feladatát az IP hálózatkezelő réteg végzi.

Az interneten teljesen a rendeltetési hely gazdagépétől függ, hogy valamilyen útválasztás egyáltalán végrehajtásra kerül-e. Alapértelmezés szerint minden üzenetnek közvetlenül a rendeltetési hely gazdagépére kell kerülnie az utóbbi IP címét kikeresve és az adatok tényleges útválasztását az IP szállítási rétegre bízva.

A legtöbb hely általában az összes becsomagolt levelet egy olyan, jól elérhető levelezési kiszolgálóra akarja irányítani, amely képes helyileg kezelni mindezt a forgalmat és elosztani ezt a postát. Ennek a szolgáltatásnak a megjelenítésére a hely bejelent egy ún. MX rekordot a DNS adatbázisban a domén számára. Az MX (Mail Exchanger) ezzel bejelenti, hogy hajlandó leveleket továbbítani a domén gépei számára. (Ez helyi, céges intraneten is működik, nem kell hozzá Internet)

Az MX rekordoknak van egy preferenciájuk is. Ez egy pozitív egész szám. Ha több elérhető MX van, akkor az MTA megpróbálja átadni a levelet a legkisebb preferenciájúnak és ha ez nem sikerül, akkor fogja átadni egy magasabbnak.

Lássunk egy rövid, egyszerű, de nagyon hasznos gyakorlati példát ennek alkalmazására.

 

Egy példa

Kapcsolt vonali Internet szolgáltatás helyi hálózat számára

A legtöbb Internet szolgáltatónál elérhető szolgáltatás a „Kapcsolt vonali Internet szolgáltatás helyi hálózat számára”. Ennek lényege az, hogy pl. felállítunk egy céges intranetet egy helyi Linux szerverrel, rajta egy DNS, és egy MTA. (A DNS adatbázisban van egy IN MX 10 gazdagépnév bejegyzés) A szerver modemen kapcsolódik az internetre valamilyen kitárcsázási mechanizmussal.

A lényeg az, hogy az intraneten levő gépek a linuxot használják levelező szervernek, függetlenül attól, hogy a modemes kapcsolat él, vagy sem. A helyi felhasználóknak, vagy listákra küldött levelek azonnal továbbítódnak, a nem helyi doménen levő címzetteknek szóló levelek a szerveren várakoznak a kapcsolat felépültéig. A linuxon levő MTA szépen tárolja a leveleket, amíg fel nem épül a valódi Internet kapcsolat és csak azután fogja elküldeni a leveleket az IP-n keresztül.

Visszafelé ez úgy működik, hogy a szolgáltató DNS-ében be van jegyezve a mi levélszerverünk egy MX rekorddal, aminek preferenciája kisebb a szolgáltatóénál. Ha van kapcsolat, akkor – a kisebb preferencia miatt- a mi levél szerverünkre jönnek közvetlenül a levelek. Ha nem elérhető a mienk (nincs kapcsolatunk), akkor tárolja a leveleinket az ő szervere a kapcsolat felépüléséig. (A felhasználók a kapcsolat meglétéből/nemlétéből semmit nem fognak észre venni, csak azt, hogy a leveleik rendben odaérnek és ők is megkapják a nekik címzetteket és akkor küldenek levelet, amikor csak akarnak…) Ez a fajta megoldás hasznos lehet olyankor, ha mi magunk akarjuk karban tartani a felhasználóinkat, hiszen így „teljesen függetlenek” vagyunk a szolgáltatótól ilyen téren. Az ő feladata „csak” annyi, hogy tároljon minden olyan levelet, ami a mi doménünkre jött. Majd ha a kapcsolat létrejött és azt biztonságosnak tartja (pl. küld két próbalevelet és azok rendben átjöttek a helyi szerverre) akkor átpasszolja az összes levelet a helyi MTA-nak és az osztja szét a helyi felhasználóknak. Így gyakorlatilag minden intranetes felhasználónknak tudunk biztosítani e-mail lehetőséget abszolút minimális költséggel a szolgáltató felé. Cégünknél közel 240 felhasználó levelezését végzi egy ilyen szisztémával felépített Linux szerver teljesen hibamentesen. Gyakorlatilag gondozásmentes a levelező rendszerünk.

 

Az EXIM beállítása és indítása

Indítás

A felhasználói ügynök programok (levelező kliensek) megkövetelnek maguknak bizonyos csatolásokat. Néhány ilyen csatolásra mindenképpen szükségünk van:

 

 

goliat:~# ls -al /usr/sbin/rsmtp lrwxrwxrwx 1 root root 4 May 6 11:32 /usr/sbin/rsmtp -> exim 

goliat:~# ls -al /usr/sbin/sendmail lrwxrwxrwx 1 root root 4 May  6 11:32 /usr/sbin/sendmail -> exim

goliat:~# ls -al /usr/sbin/rmail lrwxrwxrwx 1 root root 4 May 6 11:32 /usr/sbin/rmail -> exim

 

Az EXIM program része a Debian LINUX 2.1-es kiadásának. Ha ezzel együtt telepítjük, akkor a működéshez szükséges beállításokat a rendszer elvégzi.

 

Az indításhoz először el kell dönteni, hogy démonként futtatjuk az EXIM-et, vagy az inetd indítja minden egyes SMTP kérésre. A levélkiszolgálón célszerű démonként futtatni, mert így nem terheli meg annyira a rendszert, mintha minden egyes kérésre külön indítaná.

 

exim -bd -q30m

A fenti sorban démonként indítottuk az EXIM-et (-bd) és utasítottuk, hogy 30 percenként dolgozza fel a várósorában lévő üzeneteket. Ezzel a módszerrel szokás szerint indítható kézzel, vagy a kívánt rcX.d fájlból.

 

A DEBIAN alapbeállítás szerint az inetd-ből indítja a programot, mert alapbeállítás szerint nem feltételezi, hogy minden Linux gép levelező szerver.

A /etc/inetd.conf fájlban megtalálható a következő bejegyzés:

 

smtp            stream  tcp     nowait  mail    /usr/sbin/exim exim –bs

 

Bármelyik megoldást is választjuk, a /etc/services fájlban szerepelni kell a következő sornak:

 

smtp            25/tcp          mail

 

Ez meghatározza azt a TCP portszámot, amit az EXIM-nek használnia kell az SMTP párbeszédekhez. A 25-ös port szabvány.

 

Ha a LINUX rendszerünket egy LAN számára használjuk, mint levelező szervert, akkor a mai állapotok szerint az „általános, hétköznapi” LAN-on megtalálható gépek operációs rendszere nem mindig LINUX, hanem más gyártótól származó rendszer. Az ezeken a gépeken lévő levelező kliens programoknak el kell érniük valahogy a központi LINUX-on levő postaládákat. Ezt könnyítik meg a POP3 (Post Office Protocol version 3) és az IMAP (Interactive Mail Access Protocol) protokollok. Ezek lehetővé teszik, hogy a felhasználók egyszerű TCP/IP kapcsolaton keresztül érjék el a postaládáikat. Az IMAP hasonló a POP3-hoz, de általánosabb.

Ehhez a /etc/services fájlban szerepelni kell a következő soroknak:

pop-3           110/tcp                         # POP version 3  

pop-3           110/udp

 

A /etc/inetd.conf fájlban pedig a

 

pop-3  stream  tcp   nowait  root   /usr/sbin/tcpd  /usr/sbin/in.qpopper

 

sornak. (A qpopper általában a DEBIAN disztribúcióban használatos a POP kezelésére, ha Redhat, vagy SuSE rendszert használunk, akkor ott a

 

pop-3   stream  tcp     nowait  root    /usr/sbin/tcpd  ipop3d

 

sorból látszik, hogy a POP-ot az ipop3d kezeli.

 

Az EXIM program napló fájljait a /var/log/exim alatt találjuk. A mainlog és paniclog fájlok hasznos információkat szolgáltatnak hibás működés esetén.

 

Most pedig nézzünk meg az EXIM program konfigurációs lehetőségei közül néhány tipikus beállítást, amik segítségével egy intranet-Internet hálózat kényelmesen üzemeltethető.

 

Az EXIM konfigurációs lehetőségei

Az EXIM egy kellemes szolgáltatása, hogy a szükséges /etc/exim.conf fájlt elő lehet állítani egy konfiguráló program segítségével (eximconfig), egyszerűen csak egymás után válaszolva a feltett kérdésekre. Nézzünk meg egy ilyen beállítást.

 

goliat:~# eximconfig                                                      

I can do some automatic configuration of your mail system, by asking      

you a number of questions.  Later you may have to confirm and/or correct  

your answers. In any case, comprehensive information on configuring exim is

in the eximdoc package and in /usr/doc/exim/spec.txt                      

[---Press return---]

A program közli velünk, hogy ki is ő és mire képes. Be fog állítani fontosabb paramétereket a levelező rendszerünk működéséhez.

 

(1) Internet site; mail is sent and received directly using SMTP. If your

     needs don't fit neatly into any category, you probably want to start 

     with this one and then edit the config file by hand.                 

                                                                          

 (2) Internet site using smarthost: You receive Internet mail on this     

     machine, either directly by SMTP or by running a utility such as     

     fetchmail. Outgoing mail is sent using a smarthost. optionally with  

     addresses rewritten. This is probably what you want for a dialup     

     system.                                                               

                                                                          

 (3) Satellite system: All mail is sent to another machine, called a "smart

     host" for delivery. root and postmaster mail is delivered according  

     to /etc/aliases. No mail is received locally.                        

                                                                          

 (4) Local delivery only: You are not on a network.  Mail for local users 

     is delivered.                                                        

                                                                          

 (5) No configuration: No configuration will be done now; your mail system

     will be broken and should not be used. You must then do the          

     configuration yourself later or run this script, /usr/sbin/eximconfig,

     as root. Look in /usr/doc/exim/example.conf.gz                       

                                                                           

Select a number from 1 to 5, from the list above.                         

Enter value (default=`1', `x' to restart):

 

A fenti lehetőségek a rendszerünk alap működési mechanizmusát fogja meghatározni.

Az első (ez az alapbeállítás is) egy egyszerű, internettel folyamatosan kapcsolatban lévő szervert feltételez. Válasszuk ezt akkor is, ha a többi lehetőséget elolvasva nem találjuk meg az „igazit” és majd kézzel elvégezzük a módosításokat.

Ha modemes kapcsolatban vagyunk az internettel, akkor a 2. pont lehet, hogy jobb választás. (pl ilyenkor érdemes esetleg a fetchmail-lel kombinálni a levelek összeszedését. Erről az alábbiakban még lesz szó.) Akkor is jó választás a 2. pont, ha egy „belső” levelező szervert állítunk fel, ami nem a saját körzetébe szóló leveleket a smarthost-ként megadott okos levélszerverre továbbít.

A 3. pont egy olyan levélszerver sémát ad, ami nem fogad leveleket és az innen küldött leveleket szintén a smarthost-ként megadott gép kezeli.

A 4. lehetőséget választva csak helyi levéltovábbítás lesz, internetre küldeni nem lehet.

Az 5. választással nem konfigurálunk levelezést. Ez azért nem túl jó ötlet, mert a rendszer üzeneteit (amiket levélben küld nekünk) sem fogjuk megkapni.

Tehát minimum a 4. pontot válasszuk, de mi most az egyszerűség kedvéért az 1.-t választjuk.

 

======================================================================

What is the `visible' mail name of your system? This will appear on  

From: lines of outgoing messages.                                    

Enter value (default=`goliat.nitro.hu', `x' to restart):

Mi legyen az a név, ami a kimenő levelek FROM sorában látható. Itt alapesetben a gép nevét adja meg, de mondhatunk neki mást is.

 

=======================================================================

Does this system have any other names which may appear on incoming     

mail messages, apart from the visible name above (goliat.nitro.hu)  

and the system's hostname (goliat.nitro.hu) ?                       

                                                                        

By default all domains will be treated the same; if you want different 

domain names to be treated differently, you will need to edit the config

file afterwards: see the documentation for the "domains" director      

option.                                                                 

                                                                       

If there are any more, enter them here, separated with spaces or commas.

If there are none, say `none'.                                          

 

Enter value (default=`none', `x' to restart): nitro.hu

 

A bejövő leveleket alapértelmezés szerint akkor fogja elfogadni, ha a gépnév megegyezik a mi gépünk nevével. Ha más nevet is el akarunk fogadtatni, akkor itt kell megadni. Pl. ne csak a goliat.nitro.hu-t kezelje ismertnek, hanem a nitro.hu-t is a levelek címében.

 

All mail from here or specified other local machines to anywhere on     

the internet will be accepted, as will mail from anywhere on the        

internet to here.                                                       

                                                                         

Are there are any domains you want to relay mail for---that is, you     

are prepared to accept mail for them from anywhere on the internet, but 

they are not local domains.                                              

                                                                        

If there are any, enter them here, separated with spaces or commas. You 

can use wildcards. If there are none, say `none'. If you want to relay  

mail for all domains that specify you as an MX, then say `mx'           

Enter value (default=`none', `x' to restart):mx

 

Alapértelmezés szerint csak a helyi doménre érkező leveleket fogja kézbesíteni a rendszer azok közül, amik kívülről jöttek. (A mi leveleinket kifelé természetesen elküldi.) Ha akarunk más domének számára levélkézbesítéssel foglalkozni, akkor meg kell adni azokat. Ha van névkiszolgálónk, akkor ott bizonyos doméneknek lehetünk „MX”. Ha itt a válasz mx, akkor ha a névkiszolgálónkban valamely domén számára mx rekordot adtunk meg, akkor annak a doménnek továbbítjuk a neki érkező leveleket.

 

Obviously, any machines that use us as a smarthost have to be excluded  

from the relaying controls, as using us to relay mail for them is the   

whole point.                                                            

                                                                         

Are there any networks of local machines you want to relay mail for?    

                                                                        

If there are any, enter them here, separated with spaces or commas. You 

should use the standard address/length format (e.g. 131.111.0.0/16)     

If there are none, say `none'.                                          

Enter value (default=`none', `x' to restart):

 

Ha minket akar valaki smarthost-ként használni, azaz azt szeretné, hogy továbbítsuk az általa küldött leveleket a megfelelő címzetthez akkor itt meg kell adni a nevét.

 

You may want to filter out unsolicited commercial email, (UCE, also known   

as spam). Unfortunately it is difficult keeping up with all the spamming    

sites and abused relays.                                                    

                                                                            

The Realtime Blackhole List is a spam filter that someone else maintains    

(see http://maps.vix.com/rbl/). They are very quick to add sites, so        

if you bounce on this you may occasionally miss legitimate mail. Adding     

a header is an alternative---then individual users can choose what to do    

with RBL mail using their personal filter files.                             

                                                                            

Note that the RBL only works if you receive mail directly. If it is stored  

for you at your ISP, the RBL won't work as it depends on the IP address the 

connection comes from.                                                      

                                                                            

Would you like to use the RBL? ('f'ilter, 'r'eject, or 'n'o)?               

Enter value (default=`n', `x' to restart):f

 

A SPAM kiszűrésére felállítottak több adatbázist. Ha használni akarunk egy ilyet, akkor itt megadhatjuk.

 

What domain(s) would you like to use for the RBL? If you don't know

otherwise, you want the default                                     

Enter value (default=`rbl.maps.vix.com', `x' to restart):

 

Ha az előbb használatot engedélyeztünk, akkor itt felajánl egy ilyen szolgáltatót, de választhatunk másikat is.

 

 

Mail for the `postmaster' and `root' accounts is usually redirected         

to one or more user accounts, of the actual system administrators.          

By default, I'll set things up so that mail for `postmaster' and for        

various system accounts is redirected to `root', and mail for `root'        

is redirected to a real user.  This can be changed by editing /etc/aliases. 

                                                                            

Note that postmaster-mail should usually be read on the system it is        

directed to, rather than being forwarded elsewhere, so (at least one of)    

the users you choose should not redirect their mail off this machine.       

                                                                            

Which user account(s) should system administrator mail go to ?              

Enter one or more usernames separated by spaces or commas .  Enter          

`none' if you want to leave this mail in `root's mailbox - NB this          

is strongly discouraged.  Also, note that usernames should be lowercase!    

Enter value (`x' to restart):leveles

 

Be tudjuk állítani, hogy a root-nak és más „rendszerhez tartozó felhasználóknak „ szóló leveleket ki kapja meg valójában. Ez erősen ajánlott, hogy ne a root kapjon levelet.

 

Mail generated on this system will have `goliat.nitro.hu' used        

as the domain part (after the @) in the From: field and similar places.  

                                                                         

The following domain(s) will be recognised as referring to this system:  

 nitro.hu                                                                

                                                                         

                                                                         

Messages for all domains that we MX for will be relayed                  

                                                                         

Mail for postmaster, root, etc. will be sent to leveles.                 

                                                                          

Local mail is delivered.                                                 

                                                                         

Outbound remote mail is looked up in the Internet DNS, and delivered     

using that data if any is found; otherwise such messages are bounced.    

                                                                         

                                                                         

Is this OK ?  Hit Return or type `y' to confirm it and install,          

or `n' to make changes (in which case we'll go round again, giving you   

your previous answers as defaults.     (y/n)

 

Ezek után már csak egy összefoglalást kapunk eddigi beállításainkról, hogy véglegesíthessük azt. Ha megfelel, akkor ’y’ és elkészül a /etc/exim.conf fájl.

 

(Ez a rendszer képes lesz arra, hogy az innen kimenő leveleket eljuttassa a címzetthez. A látható neve goliat.nitro.hu lesz. Fogadni fog minden levelet., ami @goliat.nito.hu és @nito.hu címre jön. Minden olyan domén számára, akiknek megadtuk az MX rekordot, kézbesítjük a hozzájuk beérkező leveleket. Most semmilyen domén nem használhat bennünket smarthostnak. Az összes levél, ami a root és más rendszerhez tartozó felhasználónak megy a leveles nevű felhasználó fogja megkapni.)

Az ehhez tartozó generált /etc/exim.conf fájl így néz ki.

 

# This is the main exim configuration file.                                    

# It was originally generated by `eximconfig', part of the exim package        

# distributed with Debian, but it may edited by the mail system administrator. 

# This file originally generated by eximconfig at Thu Sep 23 10:48:55 CEST 1999

# See exim info section for details of the things that can be configured here. 

                                                                                

# Please see the manual for a complete list                                    

# of all the runtime configuration options that can be included in a           

# configuration file.                                                           

                                                                               

# This file is divided into several parts, all but the last of which are       

# terminated by a line containing the word "end". The parts must appear        

# in the correct order, and all must be present (even if some of them are      

# in fact empty). Blank lines, and lines starting with # are ignored.          

                                                                                

######################################################################         

#                    MAIN CONFIGURATION SETTINGS                     #         

######################################################################         

                                                                                

# Specify the domain you want to be added to all unqualified addresses         

# here. Unqualified addresses are accepted only from local callers by          

# default. See the receiver_unqualified_{hosts,nets} options if you want       

# to permit unqualified addresses from remote sources. If this option is

# not set, the primary_hostname value is used for qualification.              

                                                                               

qualify_domain = goliat.nitro.hu                                           

                                                                              

# If you want unqualified recipient addresses to be qualified with a different

# domain to unqualified sender addresses, specify the recipient domain here.  

# If this option is not set, the qualify_domain value is used.                

                                                                               

# qualify_recipient =                                                         

                                                                              

# Specify your local domains as a colon-separated list here. If this option   

# is not set (i.e. not mentioned in the configuration file), the              

# qualify_recipient value is used as the only local domain. If you do not want

# to do any local deliveries, uncomment the following line, but do not supply 

# any data for it. This sets local_domains to an empty string, which is not   

# the same as not mentioning it at all. An empty string specifies that there  

# are no local domains; not setting it at all causes the default value (the   

# setting of qualify_recipient) to be used.                                    

                                                                              

local_domains = nitro.hu                                                      

                                                                               

# Allow mail addressed to our hostname, or to our IP address.

 

local_domains_include_host = true                                             

local_domains_include_host_literals = true                                    

                                                                               

# Domains we relay for; that is domains that aren't considered local but we   

# accept mail for them.                                                       

                                                                               

#relay_domains =                                                              

                                                                              

# If this is uncommented, we accept and relay mail for all domains we are     

# in the DNS as an MX for.                                                    

                                                                              

relay_domains_include_local_mx = true                                          

                                                                              

# No local deliveries will ever be run under the uids of these users (a colon-

# separated list). An attempt to do so gets changed so that it runs under the 

# uid of "nobody" instead. This is a paranoic safety catch. Note the default  

# setting means you cannot deliver mail addressed to root as if it were a     

# normal user. This isn't usually a problem, as most sites have an alias for  

# root that redirects such mail to a human administrator.                     

                                                                              

never_users = root                                                            

 

# The setting below causes Exim to do a reverse DNS lookup on all incoming   

# IP calls, in order to get the true host name. If you feel this is too      

# expensive, you can specify the networks for which a lookup is done, or     

# remove the setting entirely.                                                

                                                                             

host_lookup_nets = 0.0.0.0/0                                                 

                                                                              

# Exim contains support for the Realtime Blocking List (RBL) that is being   

# maintained as part of the DNS. See http://maps.vix.com/rbl/ for background.

# Uncommenting the following line will make Exim reject mail from any        

# host whose IP address is blacklisted in the RBL at maps.vix.com.           

                                                                             

rbl_domains = rbl.maps.vix.com                                               

rbl_reject_recipients = false                                                

rbl_warn_header = true                                                       

                                                                             

# The setting below locks out the use of your host as a mail relay by any    

# other host. See the section of the manual entitled "Control of relaying"   

# for more info.                                                             

                                                                              

sender_host_reject_relay = *

 

# If you want Exim to support the "percent hack" for all your local domains,  

# uncomment the following line. This is the feature by which mail addressed   

# to x%y@z (where z is one of your local domains) is locally rerouted to      

# x@y and sent on. Otherwise x%y is treated as an ordinary local part.        

                                                                              

# percent_hack_domains=*                                                       

                                                                              

# If this option is set, then any process that is running as one of the       

# listed users may pass a message to Exim and specify the sender's            

# address using the "-f" command line option, without Exim's adding a         

# "Sender" header.                                                            

                                                                              

trusted_users = mail                                                          

                                                                              

# If this option is true, the SMTP command VRFY is supported on incoming      

# SMTP connections; otherwise it is not.                                      

                                                                              

smtp_verify = true                                                            

                                                                               

# Some operating systems use the "gecos" field in the system password file    

# to hold other information in addition to users' real names. Exim looks up   

# this field when it is creating "sender" and "from" headers. If these options# are set, exim uses "gecos_pattern" to parse the gecos field, and then       

# expands "gecos_name" as the user's name. $1 etc refer to sub-fields matched 

# by the pattern.                                                             

                                                                               

gecos_pattern = ^([^,:]*)                                                     

gecos_name = $1                                                               

                                                                               

# This string defines the contents of the \`Received' message header that     

# is added to each message, except for the timestamp, which is automatically  

# added on at the end, preceded by a semicolon. The string is expanded each   

# time it is used.                                                            

                                                                              

received_header_text = "Received: \                                            

          ${if def:sender_fullhost {from ${sender_fullhost} \                 

          ${if def:sender_ident {(${sender_ident})}}\n\t}\                    

          {${if def:sender_ident {from ${sender_ident} }}}}\                   

          by ${primary_hostname} \                                            

          ${if def:received_protocol {with ${received_protocol}}} \           

          (Exim ${version_number} #${compile_number} (Debian))\n\t\           

          id ${message_id}"                                                   

end                                                                           

                                                                              

 

######################################################################    

#                      TRANSPORTS CONFIGURATION                      #    

######################################################################    

#                       ORDER DOES NOT MATTER                        #    

#     Only one appropriate transport is called for each delivery.    #    

######################################################################    

                                                                          

# This transport is used for local delivery to user mailboxes. On debian  

# systems group mail is used so we can write to the /var/spool/mail       

# directory. (The alternative, which most other unixes use, is to deliver 

# as the user's own group, into a sticky-bitted directory)                

                                                                          

local_delivery:                                                           

  driver = appendfile                                                      

  group = mail                                                            

  mode = 0660                                                             

  mode_fail_narrower = false                                              

  file = /var/spool/mail/${local_part}                                    

                                                                          

# This transport is used for handling pipe addresses generated by alias   

# or .forward files. It has a conventional name, since it is not actually 

# mentioned elsewhere in this configuration file. (A different name *can*

# be specified via the "address_pipe_transport" option if you really want     

# to.) If the pipe generates any standard output, it is returned to the sender

# of the message as a delivery error. Set return_fail_output instead if you   

# want this to happen only when the pipe fails to complete normally.          

                                                                               

address_pipe:                                                                 

  driver = pipe                                                               

  return_output                                                               

                                                                               

# This transport is used for handling file addresses generated by alias       

# or .forward files. It has a conventional name, since it is not actually     

# mentioned elsewhere in this configuration file.                             

                                                                              

address_file:                                                                 

  driver = appendfile                                                          

                                                                              

# This transport is used for handling file addresses generated by alias       

# or .forward files if the path ends in "/", which causes it to be treated    

# as a directory name rather than a file name. Each message is then delivered 

# to a unique file in the directory. If instead you want all such deliveries to

# be in the "maildir" format that is used by some other mail software,         

# uncomment the final option below. If this is done, the directory specified  

# in the .forward or alias file is the base maildir directory.

#                                                                          

# Should you want to be able to specify either maildir or non-maildir      

# directory-style deliveries, then you must set up yet another transport,  

# called address_directory2. This is used if the path ends in "//" so should

# be the one used for maildir, as the double slash suggests another level  

# of directory. In the absence of address_directory2, paths ending in //   

# are passed to address_directory.                                         

                                                                           

address_directory:                                                         

  driver = appendfile                                                      

  no_from_hack                                                             

  prefix = ""                                                               

  suffix = ""                                                              

# maildir_format                                                           

                                                                            

# This transport is used for handling autoreplies generated by the filtering

# option of the forwardfile director. It has a conventional name, since it 

# is not actually mentioned elsewhere in this configuration file.          

                                                                            

address_reply:                                                             

  driver = autoreply                                                       

                                                                            

# This transport is used for delivering messages over SMTP connections.

 

remote_smtp:                                                           

  driver = smtp                                                         

                                                                       

end                                                                    

                                                                       

                                                                        

###################################################################### 

#                      DIRECTORS CONFIGURATION                       # 

#             Specifies how local addresses are handled              # 

###################################################################### 

#                          ORDER DOES MATTER                         # 

#   A local address is passed to each in turn until it is accepted.  # 

###################################################################### 

                                                                       

# This allows local delivery to be forced, avoiding alias files and    

# forwarding.                                                           

                                                                       

real_local:                                                            

  prefix = real-                                                       

  driver = localuser                                                    

  transport = local_delivery                                           

 

# This director handles aliasing using a traditional /etc/aliases file.    

# If any of your aliases expand to pipes or files, you will need to set    

# up a user and a group for these deliveries to run under. You can do      

# this by uncommenting the "user" option below (changing the user name     

# as appropriate) and adding a "group" option if necessary.                

                                                                            

system_aliases:                                                            

  driver = aliasfile                                                       

  file = /etc/aliases                                                       

  search_type = lsearch                                                    

# user = list                                                              

# Uncomment the above line if you are running smartlist                     

                                                                           

# This director handles forwarding using traditional .forward files.       

# It also allows mail filtering when a forward file starts with the        

# string "# Exim filter": to disable filtering, uncomment the "filter"     

# option. The check_ancestor option means that if the forward file         

# generates an address that is an ancestor of the current one, the         

# current one gets passed on instead. This covers the case where A is      

# aliased to B and B has a .forward file pointing to A.                    

                                                                           

# For standard debian setup of one group per user, it is acceptable---normal

# even---for .forward to be group writable. If you have everyone in one  

# group, you should comment out the "modemask" line. Without it, the exim

# default of 022 will apply, which is probably what you want.            

                                                                          

userforward:                                                             

  driver = forwardfile                                                   

  no_verify                                                               

  check_ancestor                                                         

  file = .forward                                                        

  modemask = 002                                                          

  filter                                                                 

                                                                         

# This director matches local user mailboxes.                            

                                                                          

localuser:                                                               

  driver = localuser                                                     

  transport = local_delivery                                              

                                                                         

end                                                                      

                                                                         

                                                                          

######################################################################   

#                      ROUTERS CONFIGURATION                         #

#            Specifies how remote addresses are handled              # 

###################################################################### 

#                          ORDER DOES MATTER                         # 

#  A remote address is passed to each in turn until it is accepted.  # 

###################################################################### 

                                                                       

# Remote addresses are those with a domain that does not match any item

# in the "local_domains" setting above.                                 

                                                                       

# This router routes to remote hosts over SMTP using a DNS lookup with 

# default options.                                                     

                                                                        

lookuphost:                                                            

  driver = lookuphost                                                  

  transport = remote_smtp                                               

                                                                       

# This router routes to remote hosts over SMTP by explicit IP address, 

# given as a "domain literal" in the form [nnn.nnn.nnn.nnn]. The RFCs  

# require this facility, which is why it is enabled by default in Exim.

# If you want to lock it out, set forbid_domain_literals in the main   

# configuration section above.                                         

                                                                        

literal:

driver = ipliteral                                                       

  transport = remote_smtp                                                  

                                                                            

end                                                                        

                                                                           

                                                                           

######################################################################     

#                      RETRY CONFIGURATION                           #     

######################################################################     

                                                                            

# This single retry rule applies to all domains and all errors. It specifies

# retries every 15 minutes for 2 hours, then increasing retry intervals,   

# starting at 2 hours and increasing each time by a factor of 1.5, up to 16

# hours, then retries every 8 hours until 4 days have passed since the first

# failed delivery.                                                         

                                                                           

# Domain               Error       Retries                                 

# ------               -----       -------                                 

                                                                           

*                      *           F,2h,15m; G,16h,2h,1.5; F,4d,8h         

                                                                           

end                                                                        

 

                                                                           

######################################################################    

#                      REWRITE CONFIGURATION                         #    

######################################################################    

                                                                           

                                                                          

# There are no rewriting specifications in this default configuration file.

                                                                           

                                                                          

# This is an example of a useful rewriting rule---it looks up the real    

# address of all local users in a file                                    

                                                                           

# *@goliat.nitro.hu    ${lookup{$1}lsearch{/etc/email-addresses}\      

#                                               {$value}fail} bcfrF       

                                                                           

# End of Exim configuration file

 

Az esetleges további konfigurációt kézzel végezzük el a fájl direkt szerkesztésével.

Egy másik példa

A fentiekben kifejteteket kombinálva lehetőségünk van pl. egy intraneten belül még egy teljesen zárt hálózat kialakítására. Tegyük fel, hogy a vállalati intraneten van egy szervezeti egység, amire nagyon kell vigyázni. Annyira, hogy inkább teljesen más logikai hálózatot alakítunk ki számukra. De a levelezésüket persze biztosítani kell és a külvilág számára nem kell nyilvánvalóvá tenni a megkülönböztetett figyelmet (Az e-mail címeik ne különbözzenek a többitől.) A két hálózat között semmiféle átjárót nem akarunk létrehozni. Ekkor egy lehetséges megoldás az, hogy a „nagy” intranet levelező szervere mellett (amit a külvilág is lát) a belső védett hálón létrehozunk egy másik levélszervert a védett csoportnak. (Ebbe a gépbe célszerű két hálózati kártyát szerelni a két logikai hálózatnak, esetleg alkalmazhatjuk az IP aliasing lehetőséget, ha egy hálózati kártyánk van.) A belső háló leveleinek útját kifelé úgy tudjuk biztosítani, hogy a belső levélszerveren a külsőt használjuk smarthost-nak. Azaz, amit helyben nem tud kézbesíteni, azt továbbítsa a smarthost-nak megadott gépre és a többit bízza rá. A kívülről érkező levelek a külső levélszerverre érkeznek.

1.

(A belső háló felhasználóinak levélboxai is léteznek a külső szerveren, hiszen a külvilág oda címezi nekik a leveleket.) Ezeknek a továbbítását például megoldhatjuk a fetchmail program segítségével. Ez a levél elhozó program nagyon hasznos olyankor is, amikor több postaládánk van különböző szervereken, de nem szeretnénk minden egyes alkalommal végigjárni leveleinkért a fél internetet, hanem megbízzuk a fetchmail-t, hogy szedje össze őket, és postázza egy adott gépre. A program használatához mindössze egy fájlt kell összeállítanunk, amiben megadott szintaktika szerint a kommunikációs protokoll, a távoli szerver neve, az ottani felhasználó neve és jelszava van megadva. (Ez egy szöveges állomány, ezért megfelelően védjük az illetéktelenek ellen, hiszen elolvasható a felhasználónév-jelszó páros.) Ha root-ként futtatjuk a programot, akkor lehetőség van több felhasználó postájának kezelésére is. A programot indíthatjuk a cron segítségével, meghatározott időnként, vagy elegánsabb módszer démonként futtatni. Ekkor megadható neki, hogy milyen időközönként járja végig a világhálót leveleinkért.

A fájlt ne olvashassa akárki, hiszen kódolatlan jelszavakat tartalmaz.

samson:~# ls -al /root/.fetchmailrc                                      

-rw-------   1 root     root         2911 Jul  5 11:05 /root/.fetchmailrc

 

fetchmail –f /root/.fetchmailrc –d 600

 

A fenti sor azt jelenti, hogy a fetchmail démonként fusson és 10 percenként ellenőrizze a leveleket (-d 600), konfigurációs fájlként pedig a /root/.fetchmailrc fájlt használja. (-f /root/.fetchmailrc)

 

poll freemail.c3.hu protocol POP3:

        user gabesz, with password kkkscdfe43, is gabor@goal.nitro.hu here;

poll mail.nitro.hu protocol POP3:

        user farek, with password sdfg45tfre, is farrok@goal.nitro.hu here;

 

A fenti két sor egy részlet egy lehetséges .fetchmailrc fájlból. A ’poll’ után annak a távoli szervernek a neve áll, amire csatlakozni kell a ’protocol’ után meghatározott protokollal. A ’user’ után áll a felhasználó neve ezen a távoli gépen, a ’with password’ után pedig a távoli gépen lévő jelszava. Az ’is’ után kell beírni ennek a felhasználónak a helyi gépen lévő (tehát amire elhozzuk a leveleket) e-mail címét. (Egyes verziókban itt elegendő a felhasználó nevét beírni.) Ezzel az egyszerű módszerrel könnyen és gyorsan összeszedhetjük a leveleket automatizált módon.

 

2.

A belső felhasználók levélboxai nem léteznek a külső szerveren.

Ekkor célszerű létrehozni a belső felhasználóknak egy-egy alias nevet (álnevet) a külső gépen, és biztosítani, hogy a külső levélszerver továbbítsa a leveleket az aliasban megadott címekre.

 

Az álnevek használata

Az EXIM (és a SMAIL is) képes használni a sendmail által ismert alias fájlokat. A /etc/aliases fájl formája nagyon egyszerű:

álnév: címzettek

A címzettek egy vesszővel tagolt lista, amit behelyettesítünk az álnévbe. A címzettek lista átmehet másik sorba is, ha az újsor karaktert tabulátor követi.

 

példa /etc/aliases fájl:

 

szamtech:feri@freemail.c3.hu,pisti@mail.nitro.hu,szabob@mail.nitro.hu

 

Ezzel a szamtech-nek címzett leveleket meg fogja kapni a feri, a pisti és a szabob felhasználó a megadott e-mail címeken.

Az Eximben csak meg kell szerkeszteni a /etc/aliases fájlt és máris használható, a SENDMAIL estén még ki kell adnia newaliases parancsot az adatbázis aktiválásához.

 

Ezzel az egyszerű módszerrel könnyen karbantarthatunk levelező listákat.

 

Most nézzük meg egy tipikusan Linux alatt használt és egy tipikusan Windows rendszerben használt levelező kliens program legszükségesebb beállításait.

A PINE program a UNIX világban nagyon elterjedt levelező kliens program amit az Universiti of Washington-on fejlesztettek ki és a szerzői jog is védett. Aki szereti a karakteres felületet, az bátran használja a PINE-t.

A programot indítva a Setup menüben találhatjuk meg a személyre szabáshoz szükséges beállítási lehetőségeket.

A signature menüpontban beállíthatjuk az aláírásunkat, ami minden levél végén ott lesz. Ez lehet egy fájl, vagy egy editorban elkészíthetjük direkt módon. Ctrl+X kombinációval távozhatunk és elmenthetjük a beállítást, Ctrl+C kombinációval megszakíthatjuk a műveletet.

A config menüpontban nagyon részletes beállítási lehetőségeink vannak, melyek minden igényt kielégítenek.

A legfontosabbak:

  A felhasználó neve

personal-name            = KISS József                   

A gép neve, ami az elküldött levélben a from mezőben látszani fog a felhasználónév@ után:

user-domain              = mail.nitro.hu               

Az SMTP szerverünk neve:

smtp-server              = mail.nitro.hu               

Az NNTP (news) szerverünk neve:

nntp-server              = <No Value Set>                 

A beérkező levelek helye:

inbox-path               = <No Value Set: using "inbox">  

A levél mappák:

folder-collections       = <No Value Set: using "mail/[]">

A használt nemzeti karakterkészlet (HU)

character-set            = iso8859-2       

A használni kívánt szövegszerkesztő

editor                   = <No Value Set>

A használni kívánt helyesírás ellenőrző

speller                  = <No Value Set>

 

A Netscape Communicator nagyon sok platformon működik, többek között Windows rendszereken is. A böngésző programnak van egy nagyon kellemes levelező felülete is, amivel a POP protokollon keresztül elérhetjük leveleinket. A Communicator alkalmas több felhasználó megkülönböztetésére az úgynevezett user profile-ok létrehozásával. Ez hasznos lehet, ha egy számítógépet több személy is használ. Teljesen el tudják különíteni az egyénre szabott beállításaikat a kedvencek listájától kezdve a levelezési beállításokig.

Az ’edit’ menü ’preferences’ menüpontjánban található a ’mail’ csoport, amiben a levelezési beállításokat lehet karban tartani. Ezen belül is csoportokba van szedve az összes beállítási lehetőség. Az ’Identity’ csoportban jó, ha beállítjuk a ’Your name’ és az ’Email address’ mezőket, mert a levél elküldésekor a ’from’ mező ezt fogja tartalmazni és ha nem utasítjuk külön (nem töltjük ki a ’Reply-to address’ mezőt), akkor a válasz is ide fog érkezni egy esetleges válasz a feladónak akció esetén. Ezen a párbeszédablakon lehet még megadni a cégünk nevét és az aláírás fájl helyét is (’signature file’).

 

A ’Mail servers’ csoportban állíthatjuk be a POP (bejövő levél kiszolgáló) és az SMTP (kimenő levél kiszolgáló) szerverre vonatkozó információkat. A ’local mail directory’ mezőben beállíthatjuk, hogy hol tárolja a rendszer a leveleinket. Például nem célszerű a sebezhető kliens gépen tárolni a leveleket és más, a böngészőre vonatkozó beállításokat. Tegyük ezeket inkább egy biztonságos SAMBA szerverre (ami történetesen lehet ugyanaz a vállalati intranet szerver, amin a levelezés, a proxy, stb. fut) Ez több okból is hasznos lehet. Ha a gépet több felhasználó is használja és a levelezési információk a helyi gépen vannak, akkor akadály nélkül hozzáférnek egymás leveleihez a felhasználók. Míg ha ez egy SAMBÁN van, akkor a belépési jogosultságok miatt mindenki csak a saját profilját tudja elindítani a böngészőn. A másik ok a működési biztonság. Ha esetleg a munkahely „szabálytalan műveletet hajt végre” és összeomlik a rendszere, elveszhetnek az értékes levelezések is. Ha azonban ezeket a SAMBÁN tároltuk, akkor egy újraépítés után csak be kell állítani ismét a kívánt elérési utat, és máris minden a régi.

 

 


Egyszerű és mindent tud a KDE levelező


A SAMBA fájlszerver

A SAMBA project elindításának célja az volt, hogy a „hagyományos” DOS-os, Windows-os munkaállomások számára elérhetővé tegyék a UNIX rendszereket, mint fájl és nyomtató kiszolgálót. A Linuxos megvalósítás óriási népszerűségnek örvend, hiszen gondoljunk csak bele, hogy a cégek számára mekkora kiadást jelent, ha több száz dolgozójuk részére biztosítani szeretnék ezeket az alapvető szolgáltatásokat egy megvásárolt hálózati operációs rendszerrel.

Először a Samba által használt protokollról kell némi áttekintést kapni, mielőtt belemerülünk annak konfigurációs lehetőségeibe.

SMB

Az SMB protokoll (Server Message Block) a NET BIOS szolgáltatáson alapul (LanManager-ként is ismerik) és a Microsoft definiálta. Létezik IBM és Microsoft által megvalósított változata is. Ezeknek a legnagyobb hátránya az áruk. A Microsoft kiadta az SMB specifikációját, ezért mások is nagyon jól támogathatják azt. Mostanában a Microsoft kiterjesztette az SMB-t, átkeresztelte CIFS (Common Internet File System) névre és ezt akarja szabványként bevezetni.

A SAMBA egy szerver, ami megvalósítja az SMB protokollt UNIX alatt. Képes fájl és nyomtató kiszolgálóként működni a legtöbb PC-s operációs rendszer számára. (OS/2, MS Win9x, WinNT) Nagyon sok operációs rendszeren fut. A számos UNIX változat mellett a Novell is portolta a 4.1 szerverére (Migration Toolkit), lehetőséget adva a Win NT felhasználóknak a Netware szerverek könnyű elérésére.

A UNIX rendszerek hagyományosan általában csak a TCP/IP protokollt ismerik. Az SMB csomagokat egy TCP/IP burokban küldik tovább. Ez hasznos, ha arra gondolunk, hogy pl. a win9x megosztott egyenrangú hálózat csak LAN-on működik (nem „route-olható”) és ennek a TCP/IP csomagolásnak köszönhetően megoldódik ez az útvonal választási probléma, tehát kiterjeszthetjük a szolgáltatást nagy rendszerekre is. (A klienseken is futni kell a TCP/IP-nek.)

Indítás

smbd [ -D ] [ -a ] [ -d debuglevel ] [ -l log file ] [ -p ] port number ] [ -O socket options ] [ -s configuration file  ]

 

A program mindig létrehoz egy sessiont, ha a kliens kéri azt. Minden kliens a szerver egy másolatát kapja meg minden egyes session-jéhez, amely azután kiszolgálja a kliens összes kapcsolatát a session időtartama alatt. Amikor azonban a kliens bezár minden kapcsolatot, a szerver másolata eltűnik.

A konfigurációs fájl, és minden olyan fájl amely annak részét képezi, automatikusan feltöltődik minden percben, ha azok megváltoznak. Mi is feltölthetjük azt, ha SIGHUP jelet küldünk a szervernek. A konfigurációs fájl újrafeltöltése nem befolyásolja a már létrehozott szolgáltatásokkal teremtett kapcsolatot. A felhasználónak kell kilépnie a szolgáltatásból, vagy pedig az smbd-t kell leállítani (kill) és újraindítani.

 

-D           Ez a paraméter, ha beállítjuk, a szervert démonként üzemelteti, azaz leválasztja önmagát a tty-ról és a háttérben fut, így gyűjti be a kéréseket a megfelelő portokon.

A legtöbb Linux disztribúció így indítja a Sambát a megfelelő init scripteken keresztül. (Debian- /etc/init.d/samba, SuSE és Redhat- /etc/rc.d/init.d/smb)

 

-a           Ennek a paraméternek a beállításával, minden új kapcsolattal felülírjuk a log fájlokat. Alapbeállításban a logfájlok csatolódnak.

 

-d debuglevel       A debuglevel egy 0 és 10 közötti egész szám. Alapbeállításban értéke nulla. Minél magasabb az értéke, annál több részlet jut el a log fájlokhoz a szerver működéséről. Ha értéke nulla, csak a kritikus hibák és komoly figyelmeztetések jutnak el. Az 1-es érték megfelel a napi futtatás követelményeinek--az elvégzett műveletekről kis mennyiségű információt továbbít. Az 1-es értéknél nagyobb szintek nagy mennyiségű log adatot hoz létre és használata csak akkor javasolt ha valamilyen problémát szeretnénk kideríteni. A 3-as szint feletti szintek fejlesztők számára készültek. Ezek óriási mennyiségű log adatot hoznak létre, amelyek legnagyobb része a kívülállónak értelmezhetetlen.

 

-l log file Ha megadjuk ezt az értéket, a log fájl kinevez egy alap fájlnevet, amelybe az éppen futó szerver működési adatai kerülnek. Alapbeállításban az alap nevet a fordításkor határozzuk meg. Az alap név azután valós log fájl neveket hoz létre. Például, ha a nevet "log"-ként adtuk meg, a következő fájlok jelennek meg a log adatoknál:

log.debug (debug információ)

Log.in ( befelé irányuló tranzakciós adat)

log.out    (kifelé irányuló trnzakcsiós adat)

A log fájlokat sohasem távolítja el a szerver.

 

-p port number     A port szám pozitív egész szám. Alapbeállításban értéke 139. Ez a szám az, amelynek akkor van jelentősége, amikor a kliens szoftvere felveszi a kapcsolatot a szerverrel. A standard szám a 139, ezért ez az alapbeállítás. Ha azt szeretnénk, hogy a szerver egyszerű felhasználóként fusson és ne rootként, a legtöbb rendszer 1024-nel nagyobb port számot követel meg. Ha úgy döntünk, hogy nem a 139-es portot használjuk, át kell irányítani azt, különben a szerver nem lesz használható a legtöbb felhasználó számára. Az átirányítás részleteit megtalálhatjuk az rfc1002.txt-ben a 4.3.5 fejezetben

 

-s konfigurációs fájl          Alapértelmezésben a konfigurációs fájl nevét a fordításnál határozzuk meg. Az így megadott fájl a szerver által megkövetelt konfigurációs részleteket tartalmazza. Az ebben a fájlban megadott információ tartalmaz olyan szerver specifikus adatokat, mint például, hogy milyen printcap fájlt használunk, de tartalmazza a szerver összes szolgáltatásának leírását is. A későbbiekben a fájl formája és tartalma részletezésre kerül.

Fájlok:

/etc/inetd.conf

Ha azt szeretnénk, hogy a szervert az inetd meta-démon futassa, ennek a fájlnak tartalmaznia kell minden a meta-démonnak szükséges startup információt. Lásd a lenti "Installálás" fejezetet.

 

/etc/rc

(illetve a rendszer által használt indítási script)

Ha a szervert démonként szeretnénk futtatni már rendszerindításkor, ennek a fájlnak tartalmaznia kell egy megfelelő startup sequencet. Lásd a lenti "Installálás" fejezetet.

 

/etc/services

Ha a szerver inetd meta-daemonon keresztül fut, ennek a fájlnak tartalmaznia kell a szolgáltatásra vonatkozó bejegyzést, hogy el tudja látni a portot (pl: 139) és a protokoll típust (pl.: tcp).

 

/etc/smb.conf

Ez a fájl részletezi az összes olyan szolgáltatást, amelyet a szerver elérhetővé tesz a kliensek számára.

Installálás:

Bármelyik Linux disztribúcióval megkapjuk az aktuális verziót és a csomagkezelővel installálható.

A szerver futtatható démonként vagy rendszerindításkor, vagy futtatható még meta-démonként. Ha démonként futtatjuk, a szerver mindig készenléti állapotban van és ezért az indítás gyorsabb lesz. Ha meta-démonként fut, valamennyi memória szabadon marad és olyan segédprogramokat, mint a tcpd TCP Wrapper használhatunk a megnövelt biztonság érdekében.

 

A szerver, mint démon

Azért, hogy a szerver démonként fusson, csak annyit kell tennünk, hogy a -D -t a parancssorba írjuk. A -D opció elválasztja a szervert a tty-től.

Bármilyen felhasználó futtathatja a szervert démonként (amennyiben execute jogosultsága van rá természetesen). Ez hasznos, ha tesztelni szeretnénk a szervert, sőt még abban az esetben is hasznos lehet, ha átmenetileg szeretnénk helyettesíteni például az ftp-t, vagy valamely hasonló funkciót. Ha így futtatjuk a szervert, csak azokkal a jogokkal rendelkezik, mint az azt futtató felhasználó.

 

Ha a fordításkor használt opciók megfelelnek a rendszerünknek, minden paramétert, a kívánt debug szint és a -D-t kivéve, elhagyhatunk. Lásd a fenti "options" fejezetet.

 

A Debian alapértelmezés szerint inetd-ből, a SuSE és Redhat disztribúciók démonként futtatják a Sambát és a megfelelő init szkriptek installáláskor generálódnak.

A szerver futtatása kérésre

A Sambát az inetd-n keresztül indítva megoldható, hogy az smbd szerver mindig elinduljon, ha egy folyamat megpróbál rákapcsolódni. Ehhez több mindent is meg kell változtatni az indítófájlokban a gazda gépen. (csak root jogokkal lehet)

Ajánlatos az nmbd nme szervert az smbd-vel egyidőben indítani.

Először is bizonyosodjunk meg, hogy a file/etc/services-ben konfigurálva van a port. Amennyiben lehetséges, használjuk a jól ismert 139-es portot, bár bármely más port is használható.

(netbios-ssn        139/tcp)

 

Következő lépésként írjunk egy megfelelő sort az etc/inetd.conf fájlba Ezen sor első szegmensének egyeznie kell az /etc/services-ben megjelenő szolgáltatás nevével. Helyettesítsük a megfelelő értékekkel a következő sort:

 

netbios-ssn stream tcp nowait root /usr/local/samba/bin/smbd/ -d1 -l/var/adm/smblogs/log -s/usr/local/samba/lib/lib/smb.conf

(A fenti sornak egy sorként kell megjelennie az /etc/inetd.conf-ban.

Itt nincs szükség arra, hogy megadjuk a port számot, még abban az esetben sem, ha nem a standard port számot használjuk.

Utolsó lépésként, meg kell szerkeszteni a konfigurációs fájlt úgy, hogy az a megfelelő szolgáltatásokat nyújtsa.

Az smb.conf konfigurációs fájl

.

.

.

                                               [homes]

                                                               writable = yes

 

                                               [printers]

                                                               writable = no

                                                               printable = yes

                                                               path = /tmp

                                                               public =yes

.

.

.

 

Ez a nagyon egyszerű példa-részlet lehetővé teszi, hogy rákapcsolódjon a home könyvtárra és bármely olyan printerről nyomtasson, amelyet a szerver támogat.

A fájl szekciókból és paraméterekből áll. A szekció a nevével kezdődik, ami szögletes zárójelek között van és a következő szekció kezdetéig tart. A szekció paramétereket tartalmaz „név=érték” formában. Minden sort külön értelmez a program. A sorok megjegyzéseket, szekcióneveket és paramétereket tartalmazhatnak. A szekciónevek és a paraméterek nem érzékenyek a nagy és kis betűkre.

Minden egyes szekció egy szolgáltatásra vonatkozik. Van három speciális szekció [global], [homes] és a [printers]

A Global szekció paraméterei a szerver egész működésére vonatkoznak, alapértékeket állítanak be a szolgáltatásoknak.

A Homes szekció paraméterei a kliensek home könyvtárainak hozzáférését szabályozzák. Amikor egy kapcsolat létrejön, a szolgáltatásokat végignézi a szerver, és ha talál olyat, akkor használja azt. Ha nem talál, akkor úgy kezeli a szolgáltatást, mint egy felhasználói nevet, és végignézi a password fájlt. Ha megtalálja és a jelszó is jól lett megadva, akkor a home szekciót, mint mintát használva készít egy klónt. Néhány dolog meg lesz változtatva a klónban (a szekció neve a felhasználó neve lesz, és ha nincs megadva path, akkor a home könyvtár állítódik be path-nak.)

Ha a Linux-bejelentkezéstől eltérő home könyvtárban tároljuk az adatainkat a Samba kliensek számára, akkor célszerű megadni a következő sort:

 

[homes]

Path=/valahol/pchome/%S

 

A %S a szolgáltatás nevét helyettesíti: azaz esetünkben pl ha szabob felhasználóként jelentkeztünk be akkor nem a /home/szabob lesz elérhető számára, hanem a /valahol/pchome/szabob, mivel a [home] szekció alapján létrejött a [szabob] szekció. Ezzel a helyettesítő megoldással nagy számú felhasználót könnyen karbantarthatunk. A használható helyettesítőket később felsoroljuk.

 

Fontos beszélni a következőről:

 

[homes]

                Writable=yes

 

Ha ezt a paramétert így használjuk és a vendég hozzáférés meg van adva a home szekcióban, akkor az írhatja, olvashatja az összes home könyvtárat jelszó nélkül!

A global szekció „browseable” bejegyzése öröklődni fog a home könyvtárakra, de felülírhatjuk a home szekció browseable bejegyzésével. Ha azt akarjuk, hogy mindenki csak a saját home könyvtárát lássa, akkor a homes-ben browseable=no-t használjunk.

 

A [printers] szekció ugyanolyan filozófiát követ, mint a [homes], csak a nyomtatók számára. Ha létezik, akkor a felhasználók hozzáférhetnek a szerver printcap fájljában megadott nyomtatókhoz. Amikor a kérés beérkezik, a szerver ugyanúgy végignézi a szolgáltatásokat. Ha talál megfelelőt, akkor használja, ha nem, akkor megpróbálja felhasználóként kezelni, ha úgy sem megy, akkor megnézi a printcap fájlt. Ha ott szerepel, akkor létrehoz egy klónt a [printers] szekció alapján. A szolgáltatás neve a printer neve lesz. A [printers] szekcióban kell szerepelni a printable=yes bejegyzésnek, mert különben nem tud hozzáférni a nyomtatóhoz senki. Path-nak egy mindenki számára írható könyvtárat kell megadni.

 

Tipikus nyomtató szekció:

 

[printers]

Path=/usr/spool/public

Writeable=no

Public=yes

Printable=yes

Az összes alias használható, ami a nyomtatóra vonatkozik.

 

Fontosabb helyettesítők:

 

%S         a szolgáltatás neve, ha van

%P         a szolgáltatás gyökér könyvtára, ha van

%u         a szolgáltatás felhasználójának neve, ha van

%g         a %u elsődleges csoportja

%U         a windows-os kliensről bejelentkezett felhasználó neve

%G         %U elsődleges csoportja

%H         a %u home könyvtára

%v          a Szamba verziószáma

%h         a Szambát futtató gép neve

%m        a kliens gép netbios neve

%L         a szerver netbios neve

%M        a kliens gép Internet neve

%p         a szolgáltatás home könyvtárának a neve

%d         az aktuális szerver-processz azonosítója

%a         a kliens gép architektúrája (WfWg, WinNT, Win95)

%I          a kliens gép IP címe

%T         az aktuális idő és dátum

 

 

 

 

 

 

 

Egy tipikus smb.conf fájl

 

[global]

#A munkacsoport neve

workgroup = iroda

#A WINxx klienseken a tulajdonságok/megjegyzés sorban látható #szöveg

server string = Samba Server

 

#a szolgáltatásokat igénybe vehetik azok a gépek, melyek a #192.168.1.0 hálózaton vannak.

hosts allow = 192.168.1.0/255.255.255.0

 

#magyar karakterkészlet használata az állományneveknél

client code page=852

#A printcap fájl neve

printcap name = /etc/printcap

 

#A printcap-ban lévő nyomtatók böngészhetőek

load printers = yes

 

#Megadja a log fájlok helyét

log file = /var/log/samba/log.%m

 

#A log fájlok maximális méretét adja meg. Ha túllépi, akkor átnevezi az előzőt és újat nyit.

max log size = 50

 

#A felhasználó a kliensen ugyanazt a felhasználói nevet használja, mint a Sambára való #feljelentkezéshez

security = user

 

#A jelszó kódolt átvitele (NT4.0 SP3 és feletti kliensek esetén ajánlott használni)

encrypt passwords = yes

 

#A kódolt jelszavakat tartalmazó fájl neve

smb passwd file = /etc/smbpasswd

 

[homes]

comment = Home Directories

 

#Mindenki csak a saját könyvtárát láthatja

browseable = no

#Ha ez „no”, akkor nem tudja módosítani az állományokat és #nem tud újat létrehozni az adott #szolgáltatásnál

writable = yes

 

[printers]

comment = All Printers

 

#A kliens milyen állományhoz kapja a hozzáférést

path = /var/spool/samba

browseable = no

 

#Ha ez „yes”, akkor nem kell jelszó a szolgáltatás eléréséhez

guest ok = no

writable = no

 

#Ha ez „yes”, akkor a kliensek meg tudják nyitni és tudják #írni a path-ot az adott szolgáltatásnál

printable = yes

 

 

További hasznos paraméterek

 

Ha a/etc/passwd fájlban létezik a pcguest felhasználó, akkor ő használhatja azokat a szolgáltatásokat, ahol szerepel a „guest ok=yes”

guest account = pcguest

 

Ha a „security = server”, akkor meg kell adni az azonosításhoz használni kívánt szerver nevét.

password server = <NT-Server-Name>

 

Akkor kell használni, ha van a hálózatunkon egy elsődleges domain kontroller NT szerver.

domain controller = <NT-Domain-Controller-SMBName>

 

Mindenki számára írható, olvasható könyvtár

[tmp]

comment = Ideiglenes tároló

path = /tmp

read only = no

public = yes

 

Mindenki hozzáfér a könyvtárhoz, de csak a private csoport írhatja

[public]

comment = Publikus

path = /mnt/cdrom

public = yes

writable = no

printable = no

write list = @private

 

Szabob számára hozzáférhető könyvtár

[szabobdir]

comment = Szabó Bálint könyvtára

path = /usr/somewhere/private

valid users = szabob

public = no

writable = yes

printable = no

 

Ha Samba szerverünket úgy akarjuk használni, mint egy Win’NT domén kontroller-t, akkor a global szekcióban használjuk a következő bejegyzéseket:

[global]

   workgroup = CÉGNÉV  #!

   netbios name = MAIL  #!

   guest account = nobody

   invalid users = root  #!

   keep alive = 30

   os level = 65  #!

   security = user  #!

   server string = Win'2000Professional/ServicePack1000

   encrypt passwords = yes  #!

   update encrypted = no  #!

   printing = bsd

   printcap name = /etc/printcap

   load printers = yes

   socket options = IPTOS_LOWDELAY TCP_NODELAY SO_SNDBUF=4096 SO_RCVBUF=4096  #! Ez a sor folytatása az előző sornak #!

   client code page = 852  #!

   map to guest = Never  #!

   domain master = yes  #!

   local master = yes  #!

   interfaces = 192.168.1.1/255.255.255.0  #!

   wins support = no  #!

   logon script =%U.bat  #!

   domain logons = yes  #!

 

[netlogon]

   path = /usr/local  #!

.

.

.

 

A fenti példában azok a sorok mindenképpen figyelmet érdemelnek, ami mögött a ” #! ” jelsorozat áll.

Külön felhívnám a figyelmet a

logon script =%U.bat  #!

   domain logons = yes  #!

 

[netlogon]

   path = /usr/local  #!

részre.

 

Ha a /usr/local könyvtárban elhelyezünk usernév.bat fájlokat, ahol a usernév a „doménbe” bejelentkező felhasználó felhasználói neve, akkor a felhasználó bejelentkezésekor ennek a szkriptnek a tartalma végrehajtódik a kliens windows-os gépen. Így tetszőleges windows-os parancsokat futtathatunk bejelentkezéskor felhasználókra szabva.

Például ha azt akarjuk, hogy a felhasználó bejelentkezésekor automatikusan lássa F: meghajtóként a home könyvtárát, akkor a usernév.bat fájl tartalma legyen a következő:

net use f: \\szervernév\felhasználónév

Arra kell figyelni, hogy a fájl windows rendszeren fog futni, tehát a „sorvége” karakter megfelelő legyen. (Ezt egyszerűen elérhetjük, ha egy Windows-os gépen írjuk meg a fájlt. Ott kipróbáljuk, hogy működik-e, majd ha igen, akkor átmásoljuk a /usr/local könyvtárba.)

 

Ha kódolt jelszavakat akarunk használni, akkor ezeket az smbpasswd programmal tudjuk változtatni.

Ha root jogú felhasználóként változtatjuk más felhasználó jelszavát, akkor

smbpasswd –a felhasználónév alakban adjuk ki a parancsot.

 

Felhasználási ötletek

 

Nálunk két Samba szerver üzemel. Egyikük általános célú, különlegessége talán az, hogy a szerveren van egy CD író, amin az Xcdroast program hozzáférhető bizonyos felhasználók számára. (cd csoport) A cd csoport tagjainak a home könyvtárukba egy szimbolikus linkkel csatlakozik cd író által elérhető fájlrendszer, és így kényelmesen felmásolhatják anyagukat a szerverre, miközben mindenki az aktuális állapotot látja és ismerhetik egymás állományait anélkül, hogy ki kellene lépni a saját home könyvtárukból. Ugyanezen a szerveren mindenkinek a saját home könyvtárában vannak eltárolva a Netscape Communicator testre szabott beállításai a mail boxokkal együtt. Ennek nagy előnye az, hogyha a kliens gép operációs rendszere „szabálytalan műveletet” hajt végre és összeomlik, a levelek akkor sem vesznek el.

A másik gép egy „cd torony”, amiben nincs winchester és floppy egység, csak 4 db kivénhedt IDE CD meghajtó. A gép NFS-ről bootol fel TFTP-n keresztül egy másik központi szerepet ellátó Linux gépről a hálózati kártyáján levő boot eprom segítségével. Több éve hibátlanul működik a felhasználók legnagyobb örömére.

Az eredeti Samba szoftvert és a hozzákapcsolódó segédprogramokat Andrew Tridgell (samba-bugs@samba.anu.edu.au) írta. Andrew őrzi a forrást is.


FAX szerver

 

Először is szeretnék köszönetet mondani Egresi Péternek (egresip@schwabo.hu), hogy mindenki számára elérhetővé tette ezt a hasznos fejlesztést.

Minden irodai környezetben szükség van egy fax gépre, egy nyomtatóra és jó esetben egy intranet/internet szerverre és egy fájl/nyomtató kiszolgálóra.

Minden cégvezetőnek az a vágya, hogy a most leírt „infrastruktúrát” minél gazdaságosabban valósítsa meg minél magasabb színvonalon.

Minden cégvezető örülne annak, ha valaki azt mondaná:

„Adsz nekem egy olyan kivénhedt PC-t, amin már nem fut rendesen az Office aktuális verziója, tehát éppen selejtezés, vagy eladás előtt áll és én produkálom a fenti szolgáltatásokat nagyon-nagyon magas színvonalon: A kimenő és bejövő faxok naplózva lesznek. A bejövő faxok rögtön nyomtatóra kerülnek és az adott -tetszőleges számú- helyi felhasználók megkapják azokat elektronikus levélben. Bármely helyi munkaállomáson bármely Office programban előállított dokumentumot el lehet faxolni egyetlen mozdulattal a kívánt címre, és a küldő helyi felhasználó kap egy visszaigazolást a küldés eredményéről elektronikus levélben és a windows üzenetküldőjén keresztül is. (Elment-e, hányadik próbálkozásra ment el, ha nem sikerült elküldeni, akkor miért nem, stb...) Ezen kívül természetesen ellátja az összes intranet/internet szerver funkciót és a fájl/nyomtató szerver feladatokat is. Ehhez plusz kiadás már csak egy FAX modem és egy nyomtató.”

Erre képes a Linux egy tényleg nagyon gyenge hardveren is. (16MB RAM, 540MB HDD, 100 MHz/586-os CPU-val felszerelt „szervert” már építettem a fenti szolgáltatásokkal. Természetesen a fájlszerver funkció erősen korlátozott volt...)

Most a fax részt tárgyaljuk részletesen.

Először is nézzük, mik azok a Linuxban fellelhető programok, amikre szükségünk van.

A most leírtak a Debian – Slink (v 2.1) disztribúcióra vonatkoznak. Más disztribúciót használva eltérések lehetnek a konfigurációban, erre a fejezet végén fogunk kitérni.

Először is szükség van a teljes mgetty csomagra a fax résszel együtt és a netpbm csomagra. Ezen kívül ellenőrizzük, hogy megtalálhatók-e a rendszerünkben a gs és az lpr programok.

Ellenőrizzük, hogy az alábbi programok megtalálhatók-e a megadott helyen a rendszerünkben. Ha nem, akkor addig ne lépjünk tovább, amíg ezt nem pótoltuk:

/usr/local/bin/g32pbm

/usr/local/bin/g3cat

/usr/local/bin/g3tolj

/usr/local/bin/pbm2g3

/usr/local/bin/pbmtog3

/usr/local/bin/pbmtolj

/usr/local/bin/pnmtops

/usr/local/bin/mmencode

/usr/local/bin/g3topbm link a g32pbm fájlra

 

A /etc/smb.conf fájlt egészítsük ki az alább látható szekcióval:

[FAX]

      comment = Linux FAX Server

      path = /tmp

      guest ok = Yes

      print ok = Yes

      print command = /usr/bin/do_fax %s %U 1

      lpq command = faxq

      lprm command = faxrm %j

 

Ezek után a /usr/bin könyvtárba másoljuk be a most leírt szkriptet r-xr-xr-x jogokkal, root gazdával és csoporttal, do_fax néven.

 

#!/bin/sh

PATH=/bin:/usr/bin:/usr/local/bin:/usr/local/samba/bin

 

TELEFONANLAGE=JA  # Akkor legyen JA, ha 9 v. massal kell varosi vonalat kerni

 

TMP=$1.ps

 

DEBUG=JA # Ha ide irsz valamit, akkor teljes logot csinal a /tmp-be, igy lehet hibat #keresni!

 

NUMMER=`faxfilter $1 $TMP`

USER=$2

RECHNER=$3

FAXERRORS=/tmp/faxerrors.$$

FAXADMIN=$USER@samson.nitrogen.hu          # Ide ird be a DOMAIN neveteket!

 

export NUMMER TMP USER RECHNER FAXERRORS DEBUG TELEFONANLAGE

 

if [ "$DEBUG" = "" ]

then

            rm -f $1

else

            cp $1 /tmp/fax.input

            rm -f $1

fi

if [ "$NUMMER" = "" ]

then

            if [ -s $1 ]

            then

                        (

                        echo Das war wohl nichts $USER

                        echo

                        echo Um einen Fax zu versenden, muss im Dokument eine Zeile

                        echo "                <Faxnummer:0...>"

                        echo "auftauchen. Denk auch an die Amtsholung (0,...) mit Pause!"

                        echo

                        echo "Aendere den Text und drucke nochmal."

                        ) | smbclient -M $RECHNER -U $USER 2>&1 >/dev/null

            fi

            rm -f $TMP

            exit 0

fi

LEN=`expr length $NUMMER`

 

 

#

# Wenn die Nummer laenger ist, als 3 Zeichen und der Dummlooser die Amts-

# holung vergessen hat, basteln wir noch ein 0, davor

#

 

 

if [ "$TELEFONANLAGE" = "JA" -a $LEN -gt 3 ]

then

            X=`expr substr $NUMMER 1 2`

            if [ ! "$X" = "9," ]

            then

                        NUMMER=$NUMMER

            fi

fi

/usr/bin/faxspool -q -f $FAXADMIN $NUMMER $TMP >$FAXERRORS 2>&1

 

if [ -s $FAXERRORS ]

then

            (

            echo Fehler beim Versenden des Faxes:

            cat $FAXERRORS

            ) | smbclient -M $RECHNER -U $USER 2>&1 >/dev/null

else

            (

            echo "Hai $USER!"

            echo "Dein Fax an $NUMMER wurde erfolgreich angenommen."

            echo "Der Versand erfolgt spaeter (keine Panik, ich mach das schon...)"

            ) | smbclient -M $RECHNER -U $USER 2>$1 >/dev/null

fi

if [ "$DEBUG" = "" ]

then

            rm -f $TMP $FAXERRORS

else

            (

            date

            set

            echo "---------------------"

            echo $*

            echo "---------------------"

            ) >/tmp/smbfax.debug

fi

           

exit 0

 

 

Ezek után fordítsuk le a most leírásra kerülő c forráskódot és másoljuk be a /usr/bin könyvtárba faxfilter néven.

 

/*

 * Simples Programm, dass aus einer Postscriptdatei den Text

            <faxnummer:xxx-xxxx> (faxnumer_ -t keres)

 * raussucht und loescht

 */

 

#include <stdio.h>

#include <string.h>

#include <malloc.h>

 

#define SUCHTEXT "faxnummer_"

 

char FaxNummer[80];

 

char *getline(FILE *F)

{

            static char l[255];

            int len=0;

            char c;

            char *s=l;

 

            *s='\0';

            while (!feof(F))

                        {

                        c=fgetc(F);

                        if (feof(F)) return l;

 

                        if (c==4 || c==13) continue;

                        if (c==10) {

                                   *s++=10;

                                   *s=0;

                                   return l;

                                   }

                        *s++=c;

                        *s=0;

                        len+=1;

                        if (len>253) {

                                   return l;

                                   }

                        }

            return l;

}

 

void findnummer(char *s)

{

            char *x=FaxNummer;

 

            s+=strlen(SUCHTEXT);

            *x=0;

            while (strchr("0123456789,- \t",*s))

                        {

                        if (*s==' ' || *s=='\t') { s++; continue; }

                        if (*s=='-') { s++; continue; }

                        *x++=*s++;

                        *x=0;

                        }

            return;

}

 

int match(char *s)

{

            char *q;

            char *x=NULL;

 

            if (q=malloc(strlen(s)+1)) {

                        strcpy(q,s);

                        for (x=q;*x;x++) *x=tolower(*x);

                        x=strstr(q,SUCHTEXT);

                        if (x) findnummer(x);

                        free(q);

                        }

            return (x!=NULL);

}          

main(int argc, char *argv[])

{

            FILE *F,*G;

            char *s;

 

            F=stdin;

            G=stdout;

 

            if (argc>1) {

                        F=fopen(argv[1],"r");

                        if (!F) {

                                   perror("cannot open inputfile");

                                   exit(1);

                                   }

                        }          

            if (argc>2) {

                        G=fopen(argv[2],"w");

                        if (!G) {

                                   perror("cannot create outputfile");

                                   exit(1);

                                   }

                        }

 

            while (!feof(F)) {

                        s=getline(F);

                        if (!match(s)) fputs(s,G);

                        else if(G!=stdout) printf("%s\n",FaxNummer);

                        }

            fclose(F);

            fclose(G);

            exit(0);

}

 

 

Ha ez megvan, akkor a most bemutatásra kerülő fájlok tartalmát hasonlítsuk össze a rendszerünkben találhatókkal és értelemszerűen javítsuk ki a helyi specifikus dolgokat. Ezek a fájlok Debian alatt a /etc/mgetty/ könyvtárban vannak.

 

A fax.allow fájl tartalma:

# Ebbe a file-ba kell felsorolni azokat, akik faxolhatnak...

 

szabob

ani

morocz

 

A faxrunq.config fájl tartalma:

success-send-mail Y

failure-send-mail Y

maxfail-costly 15

maxfail-total 10

#delete-sent-jobs n

 

A login.config fájl tartalma:

# Ez gyakorlatilag egyezik a gyári szkripttel.

/AutoPPP/ - a_ppp /usr/sbin/pppd auth -chap +pap login debug

*     -     -     /bin/login @

 

A new_fax fájl tartalma:

#!/bin/sh

# Incoming Fax program

# A beerkezett faxot kinyomtatja es elkuldi e-mail -ben a

# a faxadmin@ -nak TIFF formatumban.

# by Egresi Peter 1998

# egresip@westel900.net

## (FAX_NOTIFY_PROGRAM in policy.h)

#

HUP="$1"

SENDER="$2"

PAGES="$3"

# HANGUP_CODE="$1"

# SENDER_ID="$2"

# NUMBER_PAGES="$3"

# This script is called when a message was recorded.

# It gets the following arguments:

#      $1 : the hangup code

#      $2 : the remote id

#      $3 : the number of pages

#      $4... : the file names

G3TOLJ=/usr/local/bin/g3tolj

USER="szabob@samson.nitrogen.hu"

#ADMIN="root@schsz.schwabo.hu"

TMP=/tmp

TIMESTAMP=`/bin/date +%m.%d_%H:%M:%Sh`

MIME_TIFF=$TMP/TIFF_$TIMESTAMP

MIME_MAIL=$TMP/MAIL_$TIMESTAMP

CAT=/bin/cat

ECHO=/bin/echo

ELM=/usr/bin/elm

G3TOPBM=/usr/local/bin/g32pbm

MMENCODE=/usr/local/bin/mmencode

PNMTOTIFF=/usr/bin/pnmtotiff

RM=/bin/rm

SED=/bin/sed

SENDMAIL=/usr/sbin/sendmail

HEADERLINE_1="MIME-Version: 1.0"

HEADERLINE_2="Content-Type: multipart/mixed; boundary="attachment""

ATTACHMENT_HEADERLINE_1="--attachment"

ATTACHMENT_HEADERLINE_2="Content-Type: image/tiff"

ATTACHMENT_HEADERLINE_3="Content-Transfer-Encoding: base64"

ATTACHMENT_ENDLINE="--attachment--"

$ECHO "Subject: Erkezett egy FAX a $SENDER-tol, $PAGES oldal" > $MIME_MAIL

$ECHO "$HEADERLINE_1" >> $MIME_MAIL

$ECHO "$HEADERLINE_2" >> $MIME_MAIL

$ECHO "" >> $MIME_MAIL

shift 3

P=1

while [ $P -le $PAGES ]

do

            FAX=$1

            RES=`basename $FAX | sed 's/.\(.\).*/\1/'`

           

            if [ "$RES" = "n" ]

            then

                        STRETCH="-aspect 2.0"

                        FELBONTAS="-s"

            else

                        STRETCH=""

                        FELBONTAS=""

            fi

            $G3TOLJ $STRETCH -resolution 300 $FAX | lpr

            $G3TOPBM $FELBONTAS $FAX \

            | $PNMTOTIFF > $MIME_TIFF

            $ECHO "$ATTACHMENT_HEADERLINE_1" >> $MIME_MAIL

            $ECHO "$ATTACHMENT_HEADERLINE_2; name=\"`basename $FAX | cut -f1 -d \.``basename $FAX | cut -f2 -d \.`.TIF\"" >> $MIME_MAIL

#a fenti két sor egybe tartozik...

 

            $ECHO "$ATTACHMENT_HEADERLINE_3" >> $MIME_MAIL

            $ECHO "" >> $MIME_MAIL

            $MMENCODE -b $MIME_TIFF >> $MIME_MAIL

            $RM -f $MIME_TIFF

            $ECHO "" >> $MIME_MAIL

            shift

            P=`expr $P + 1`

done

 

$ECHO "$ATTACHMENT_ENDLINE" >> $MIME_MAIL

$SENDMAIL < $MIME_MAIL $USER

#$SENDMAIL < $MIME_MAIL $ADMIN

$RM -f $MIME_MAIL

 

exit 0

 

 

A faxheader fájl tartalma:

FAX  FROM:  **CÉGNÉV** (88) 476-234     TO: @T@    PAGE: @P@ OF @M@

Ez fog megjelenni a küldött fax fejlécében.

 

A mgetty.config fájl tartalma:

#

# mgetty configuration file

#

# this is a sample configuration file, see mgetty.info for details

#

# comment lines start with a "#", empty lines are ignored

 

 

# ----- global section -----

#

# In this section, you put the global defaults, per-port stuff is below

 

 

# set the global debug level to "4" (default from policy.h)

debug 4

 

# set the local fax station id

fax-id CÉGNÉV

 

# access the modem(s) with 38400 bps

speed 38400

 

#  use these options to make the /dev/tty-device owned by "uucp.uucp"

#  and mode "rw-rw-r--" (0664). *LEADING ZERO NEEDED!*

#port-owner uucp

#port-group uucp

#port-mode 0664

 

#  use these options to make incoming faxes owned by "root.uucp"

#  and mode "rw-r-----" (0640). *LEADING ZERO NEEDED!*

#fax-owner root

#fax-group uucp

#fax-mode 0640

 

 

# ----- port specific section -----

#

# Here you can put things that are valid only for one line, not the others

#

 

# Zoom V.FX 28.8, connected to ttyS0: don't do fax, less logging

#

#port ttyS0

#  debug 3

#  data-only y

 

# some other Rockwell modem, needs "switchbd 19200" to receive faxes

# properly (otherwise it will fail with "timeout").

#

#port ttyS1

#  speed 38400

#  switchbd 19200

 

# ZyXEL 2864, connected to ttyS2: maximum debugging, grab statistics

#

#port ttyS2

#  debug 8

#  init-chat "" \d\d\d+++\d\d\dAT&FS2=255 OK ATN3S0=0S13.2=1 OK

#  statistics-chat "" AT OK ATI2 OK

#  statistics-file /tmp/statistics.2864

#  modem-type cls2

 

# direct connection of a VT100 terminal which doesn't like DTR drops

#

#port ttyS3

#  direct y

#  speed 19200

#  toggle-dtr n

 

A fax-id sorban beírt szöveg jelenik meg a küldő faxon, mint a mi faxazonosítónk.

 

 

A sendfax.config fájl tartalma:

#

# sendfax configuration file

#

# this is a sample configuration file, see mgetty.info for details

#

# comment lines start with a "#", empty lines are ignored

 

 

# ----- global section -----

#

# In this section, you put the global defaults, per-port stuff is below

 

# tell everybody what's going on

verbose y

 

# ... and send everything to the log file (quite detailed)

debug 5

 

# which devices to use for outgoing faxes

fax-devices ttyS1:ttyS2

 

# which fax number to transmit to the receiving station

fax-id CÉGNÉV

 

# which command is used to dial out? (Could be ATD, ATDP, ATX3D0W...)

#dial-prefix ATD

 

# try transmitting every page three times, continue if 3rd try fails as well

max-tries 3

max-tries-continue y

 

 

# ----- port specific section -----

#

# Here you can put things that are valid only for one line, not the others

#

 

# Modem on ttyS0 needs special initialization to do h/w handshaking

#port ttyS0

#  modem-handshake AT&K4

 

# Modem on ttyS1 doesn't work reliably in class 2.0, use class 2 instead

#port ttyS1

#  modem-type cls2

A fax-id sor tartalma jelenik meg az ügyfelünk faxán amikor faxot küldünk neki, mint a mi cégazonosítónk.

A fax-devices sorban tudjuk megadni, hogy mely portokon keresse a rendszer a faxmodemünket.

 

 

Az installálás végén a biztonság kedvéért ellenőrizzük, hogy a fenti fájlokban szereplő programok elérési útjai tényleg helyesek-e a mi rendszerünkben is és minden program, amire utalás történt valahol, megtalálható-e nálunk is.

 

Ha ez kész, akkor újraindítva a SAMBA-t, jó esélyünk van a helyes működésre.

Üljünk át egy windows-os munkaállomásra és állítsuk be a szükséges nyomtatót. Válasszuk ki a SAMBA-n megosztott FAX-ot és rendeljünk hozzá egy POSTSCRIPT nyomtatót. (Pl.: Apple LaserWriter NTX II) A tetszőleges Office dokumentumot (amit faxolni szeretnénk) mentsünk el „faxnummer_telefonszám.kiterjesztés” néven (pl.: faxnummer_0688476234.doc) és nyomtassuk ki a „FAX nyomtatóra”.

Az anyagunkkal nagy vonalakban ez történik:

A SAMBA-FAX „nyomtatási” parancsa a do_fax. Ez ráengedi a faxfilter programot a fájlunkra, ami kiszedi a postscript fájl header-jéből a telefonszámot. A telefonszámot a faxfilter visszaadja a do_fax-nak, ami az egészet odaadja a faxspoolnak, számára elfogadható formában. Ez csinálja a különböző konverziókat is a faxok számára elfogadható formátumra és berakja a fax spool-jába.

Egészen addig ott lesz, amíg ki nem adjuk a faxrunq parancsot. Ekkor a modem engedelmesen kitárcsáz és elküldi az összes várakozó faxunkat. (Érdemes a faxrunq automatikus futtatásáról gondoskodni kb 10 percenként...)

A bejövő faxok kezelését is rábízhatjuk a mgetty programra. Annyit kell tennünk, hogy a /etc/inittab fájlban a megfelelő sor aktív legyen (ne legyen „kikommentezve”.

A szükséges /etc/inittab részlet:

T3:23:respawn:/sbin/mgetty –F -x0 -s 115200 /dev/ttyS1

 

Külön felhívnám a figyelmet a –F opcióra. Ez oldja meg azt, hogy a modem CSAK FAX-ra legyen hajlandó válaszolni, másik modemre NE. (Természetesen egy másik faxmodemről lehet ide faxolni...) Ez két dolog miatt is jó:

Egyrészt védve vagyunk a telefonvonalon keresztüli betörésektől.

Másrészt vannak régebbi típusú faxok, amik „megijednek” a számítógépes faxoktól és lebontják a kapcsolatot, ha a –F opció nincs beállítva. A módosítás után természetesen adjuk ki az init q parancsot a módosítások életbe lépéséhez.

 

Más disztribúciót használva figyelnünk kell arra, hogy a felhasznált programok, fájlok a megfelelő helyeken legyenek. SuSE esetén figyelni kell arra is, hogy a mgetty konfigurációs fájljai a /etc/mgetty+sedfax könyvtárban vannak. Ezenkívül a mgetty programot másképp fordították. (Pl a new_fax fájlt nem futtatja le. Ha kényelmesek vagyunk, akkor másoljunk le egy debianos mgetty-t, vagy fordítsuk újra a SuSE mgetty-ját megfelelő paraméterekkel.)

Minden disztribúcióban figyelni kell a /var/spool/fax/outgoing és incoming könyvtárak elérési jogaira, nehogy ne tudjon írni bele a felhasználó.

Ha ezek után valami probléma van, akkor a do_fax szkriptben állítsuk be a DEBUG=JA értéket. Ekkor keletkezik pár fájlt a /tmp könyvtárban, ami segít a hibakeresésben.

A fenti megoldás Debian és SuSE disztribúciókon kifogástalanul működik, más disztribúción még nem próbáltam.

 


Az Apache web szerver

 

A Linux egyik legnépszerűbb szerverprogramja az Apache. A világ web szervereinek több, mint 60%-án apache fut valamilyen unix rendszer alatt. Nagyon megbízható, nagyon nagy teljesítményű web szerver.

A DEBIAN disztribúcióban az apacheconfig program áll rendelkezésre a szerver paramétereinek testre szabásában, a Redhat disztribúcióban ugyanezt grafikus felületen tehetjük meg a Control-Panel Comanch programjával.

Mindkét programmal elvégezhetjük ugyanazokat a beállításokat. Természetesen, ha valaki ragaszkodik a konfigurációs fájlok direkt szerkesztéséhez, akkor megteheti ugyanezt egy szövegszerkesztő segítségével. A fájlok a Debian-ban a /etc/apache könyvtárban találhatók. (httpd.conf, access.conf, srm.conf, cron.conf, mime.types)

Célszerű démonként futtatni, de van lehetőség inetd-n keresztüli futtatásra is.

A konfigurációs fájlok

A httpd.conf fájl

A fő konfigurációs fájl a httpd.conf fájl.

Ebben állíthatjuk be a szerver működéséhez legszükségesebb, alapvető opciókat. Más disztribúciókban leginkább csak ezt az egy fájlt használják minden beállításra, de a rendszer ennek a fájlnak az elolvasása után megnézi az srm.conf-ot is és az access.conf-ot is. (Hacsak másképp nem rendelkezünk a ResourceConfig és az AccessConfig direktívában.)

3 részből áll:

A global szekcióban lévő direktívák hatással vannak az apache teljes működésére. Úgy, mint az egy időben beérkező kérések száma, vagy hol találhatók meg a konfigurációs fájlok.

A második részben az alap szerver paramétereinek beállítása történik.)

Az ebben a szekcióban megadott direktívák állítják be a fő szerverben használt paramétereket. Ez a szerver válaszol bármilyen kérésre amelyet nem a <virtual host definition> kezel. Ezek az értékek adják a bármely virtual host konténerre megadott default értékeket. Ezeket később szintén ebben a fájlban határozhatjuk meg a harmadik részben.

 

Nézzük a főbb beállítási lehetőségeket.

ServerType

Ezzel mondjuk meg a szervernek, hogy milyen módban fusson. Ha standalone-t választunk, akkor démonként fog futni, ha inetd-t, akkor minden egyes kérésre külön Apache indul. Ha a szerverünknek nem az elsődleges funkciója a web kiszolgálás, akkor célszerűbb az inetd-ből futtatni, mert így nem terheli folyamatosan a szervert az Apache. Ha viszont elsődleges életcél a web kiszolgálás, akkor kimondottan rossz választás az inetd, mert a sok kérés sok Apache-ot fog indítani és éppen emiatt lesz leterhelve a szerver. Ilyenkor célszerűbb a standalone futási módot választani, mert igaz, hogy így mindig a memóriában van az Apache, de mivel úgy is ez az elsődleges funkciója, ez nem baj. Ebben az esetben a fő Apache processz mindig fut, és a felhasználók kiszolgálására „gyerek processzeket” indít. A gyerekek indítása már nem terheli le a rendszert annyira, mintha újraindítanánk az egész Apache-ot, csak minimális plusz erőforrást igényelnek. (És egy gyerek ráadásul nem csak egy felhasználót szolgál ki) Alapbeállítás szerint „standalon” módban fut a szerver.

 

Port

Azt a port számot lehet itt beállítani, amin a szerver figyel. Az alapbeállítás szerinti portszám a 80-as. Ha 1023-nál kisebb portszámon akarjuk használni az Apache-ot, akkor root jogosultsággal kell rendelkezni a httpd felett.

 

HostnameLookups

Egy-egy kérés fogadásakor a gépek az IP-jük alapján kommunikálnak egymással. A napló fájlokba is az IP címek kerülnek. Van lehetőség arra, hogy a napló fájlokba bekerüljenek a gépek nevei, mert az Apache szerver meg tudja kérdezni a névkiszolgálótól a kliens gép nevét az IP-je alapján. Ez nem mindig szükséges, már csak azért sem, mert ez időigényes művelet és általában feleslegesen terheli a szervert. Alapbeállítás szerint „off” állásban van, tehát ki van kapcsolva.

 

User és Group opciók

Ezzel a két opcióval határozhatjuk meg, milyen felhasználó –illetve csoport- jogán fog futni a szerver. Az Apache-nak akkor van szüksége a root jogra, ha 1024 alatti proton akarjuk futtatni és olyan napló fájlba akarunk íratni vele, amihez csak a root-nak van joga. Egyébként nem kell root joggal futtatni a szervert. Ha itt beállítunk más felhasználót és csoportot, akkor a szerver (root indítás esetén is) vissza tud állni erre a szintre. Ez biztonsági okokból is jó megoldás, ha nem hagyjuk meg a root jogot a szerver futása során. Az alapbeállítás itt disztribúciótól függ. A Debian esetében www-data user és group létezik, Red Hat esetén pedig nobody.

 

ServerAdmin

Ebben az opcióban meg lehet adni a szerver üzemeltetőjének e-mail címét. A szerver probléma esetén ide fog levelet küldeni.

 

ServerRoot

A szerver konfigurációs fájljainak, napló fájljainak, hiba fájljainak helyét lehet megadni itt. Ha ez a könyvtár nem a szervert futtató gépen található fizikailag (pl. NFS), akkor további információkra lesz szükségünk a helyes működéshez. Alapértéke ennek Debian alatt /etc/apache, Red Hat alatt /etc/httpd/conf.

BindAddress

Ezzel az opcióval a virtuális web szerver funkciót támogatja az Apache. Azokat az IP címeket lehet itt megadni, amelyeken a web szerver figyel és amelyeken elfogad kéréseket ezt az IP-t tartalmazó hálózatról. Ha itt * van megadva, akkor a szerver összes IP címét használhatjuk. Ezzel a módszerrel IP alapú virtuális szervert üzemeltethetünk, ha mindegyik IP-hez külön elindítunk egy Apache-ot. (Erről később még lesz szó.)

Ha például van a szerverünkben egy hálózati kártya és egy modem, mert az intranetes web szerverünk a kapcsolattartó gép is a külvilággal, akkor célszerű a BindAddress opciónál eltávolítani a *-ot és csak a hálózati kártya címét megadni itt. Ez egy egyszerű módja annak, hogy a külvilág elől elrejtsük web szerverünk tartalmát, ha más védelmet nem használunk.

 

A modulok konfigurálása következik a sorban. A modulok megfelelően elkészített külső fájlok, melyek új képességekkel látják el a web szervert és melyeket az Apache képes betölteni indításkor. A kernel ismertetésekor is volt már szó modulokról. Ezek funkciója teljesen hasonló. Annyi különbség van, hogy míg a kernel modulok csak a használat ideje alatt vannak betöltve és amikor használaton kívül vannak, akkor nincsenek a memóriában, az Apache moduljai az Apache indításakor töltődnek be és a futás végéig a memóriában maradnak. Ezek használata tehát akkor kényelmes, ha nem akarjuk az egyes funkciók kipróbálásához minden egyes alkalommal újra fordítani az Apache szervert. Elég csak a megfelelő sorok előtti # jelet eltávolítani, ill. beilleszteni, és csak újra kell indítani az Apache-ot az új funkciók működtetéséhez.

Itt látható egy tipikus modullista. (A # jellel kezdődő sorok nincsenek betöltve.)

 

 

 

# LoadModule env_module /usr/lib/apache/1.3/mod_env.so                   

LoadModule config_log_module /usr/lib/apache/1.3/mod_log_config.so       

LoadModule rewrite_module /usr/lib/apache/1.3/mod_rewrite.so             

# LoadModule mime_magic_module /usr/lib/apache/1.3/mod_mime_magic.so     

LoadModule mime_module /usr/lib/apache/1.3/mod_mime.so                   

LoadModule negotiation_module /usr/lib/apache/1.3/mod_negotiation.so     

# LoadModule status_module /usr/lib/apache/1.3/mod_status.so             

# LoadModule info_module /usr/lib/apache/1.3/mod_info.so                 

# LoadModule includes_module /usr/lib/apache/1.3/mod_include.so          

LoadModule autoindex_module /usr/lib/apache/1.3/mod_autoindex.so         

LoadModule dir_module /usr/lib/apache/1.3/mod_dir.so                     

LoadModule cgi_module /usr/lib/apache/1.3/mod_cgi.so                     

# LoadModule asis_module /usr/lib/apache/1.3/mod_asis.so                 

# LoadModule imap_module /usr/lib/apache/1.3/mod_imap.so                 

# LoadModule action_module /usr/lib/apache/1.3/mod_actions.so            

# LoadModule speling_module /usr/lib/apache/1.3/mod_speling.so           

LoadModule userdir_module /usr/lib/apache/1.3/mod_userdir.so             

# LoadModule proxy_module /usr/lib/apache/1.3/libproxy.so                

LoadModule alias_module /usr/lib/apache/1.3/mod_alias.so                 

LoadModule access_module /usr/lib/apache/1.3/mod_access.so               

LoadModule auth_module /usr/lib/apache/1.3/mod_auth.so

# LoadModule anon_auth_module /usr/lib/apache/1.3/mod_auth_anon.so        

# LoadModule dbm_auth_module /usr/lib/apache/1.3/mod_auth_dbm.so          

# LoadModule db_auth_module /usr/lib/apache/1.3/mod_auth_db.so            

# LoadModule digest_module /usr/lib/apache/1.3/mod_digest.so              

# LoadModule cern_meta_module /usr/lib/apache/1.3/mod_cern_meta.so        

LoadModule expires_module /usr/lib/apache/1.3/mod_expires.so              

# LoadModule headers_module /usr/lib/apache/1.3/mod_headers.so             

# LoadModule usertrack_module /usr/lib/apache/1.3/mod_usertrack.so        

LoadModule unique_id_module /usr/lib/apache/1.3/mod_unique_id.so          

LoadModule setenvif_module /usr/lib/apache/1.3/mod_setenvif.so            

# LoadModule throttle_module /usr/lib/apache/1.3/mod_throttle.so          

LoadModule php3_module /usr/lib/apache/1.3/libphp3.so

 

Érdekességként csak megemlíteném, hogy az utolsó sorban betöltött php3 modul mire szolgál. A Linux számos adatbázis szerver programot képes futtatni. (Oracle, IBM DB2, Sybase, Adabas, Magic, Interbase, hogy csak a nagyobbakat említsem.) Ha történetesen a helyi intraneten a web szerveren keresztül akarunk a felhasználóknak adatbázis elérést biztosítani, akkor a web lapokba beépíthetünk a php3-nak szóló kéréseket is, ami aztán képes azt továbbítani az adatbázisnak, és rajta keresztül megkapjuk a kívánt eredményt.

 

ErrorLog

A hibajelzéseket tartalmazó fájl helyét határozza meg. A Debian-ban az alapértelmezett hely a /var/log/apache könyvtár, ahol az Apache napló fájlok találhatók. Az error.log-ba kerülnek a hiba üzenetek, az access.log-ba a forgalom naplózása.

 

KeepAlive On

Ha egy kliens rákapcsolódik a szerverünkre, akkor növeli a teljesítményt, ha a kérésének kielégítése után nem kell leválnia, hanem kérhet még mást is tőlünk, anélkül, hogy újra kapcsolódnia kellene. Ha ez a kapcsoló itt ’on’ állásban van, akkor engedélyezzük az ilyen fajta kommunikációt.

 

MaxKeepAliveRequests 100

Ha az előbbi opcióban engedélyeztük a több kérés kielégítését, akkor itt megadhatjuk, hogy maximálisan hány kérést elégíthet ki neki, mielőtt elbontaná a kapcsolatot. Ha 0, akkor nincs limit.

 

KeepAliveTimeout 15

Ha a fenti két opció engedélyezve van, akkor 15 másodperces várakozás után a két kérés között, kilépteti a klienst.

 

MinSpareServers 5

MaxSpareServers 10

 

Minimálisan (és maximálisan) ennyi nem dolgozó szerver fut, hogy jó gyorsan ki lehessen szolgálni a kéréseket. Ne akkor kelljen gyerek processzt indítani, amikor már itt a kérés.

 

 

StartServers 5

Ennyi szerver fog elindulni a fő szerver indulásakor.

 

MaxClients 150

Egyszerre ennyi kliens tud rákapcsolódni a szerverünkre.

 

MaxRequestsPerChild 30

Egy gyerek processz maximum ennyi kérést szolgál ki, mielőtt meghal. A gyermek processzek halála azért is hasznos, mert ha valami oknál fogva hibásan működik, akkor az kevés kiszolgálást fog érinteni, mivel indul helyette egy új jó.

Az Apache nagyon stabil és jó web szerver.

 

 

Az access.conf fájl

A második fájl, amivel foglalkoznunk kell, az access.conf, ami a fájl hozzáférést szabályozza. Ebben a fájlban tudjuk megadni, hogy a web szerver mely könyvtáraihoz milyen jogosultsággal férhetnek hozzá a felhasználók. Minden beállítást egy különálló szekcióban valósíthatunk meg.

 

 

 

 

 

Egy könyvtár hozzáférés beállítása pl. így néz ki:

 

<Directory /var/www>

Options Indexes FollowSymLinks

AllowOverride none

order allow,deny

allow from all

</Directory>

 

Az első sorban a Directory után adjuk meg a könyvtár nevét, amire a szekció vonatkozik. Egy könyvtárat mindenképpen adjunk meg, mert egyébként nem elérhető a web szerverünk. Ebben a beállításban, ami egyébként a Debian alapbeállítása a /var/www könyvtár érhető el alapértelmezés szerint mindenki számára.

Az Options kezdetű sorban az Indexes, Includes, FollowSymLinks, ExecCGI, MultiViews opciók kombinációit adhatjuk meg, vagy egyszerűen a None, vagy az All opcióval semmit, vagy minden opciót kérhetünk.

Az AllowOverride kezdetű sorban van lehetőségünk, hogy felülbíráljunk bizonyos, erre a könyvtárra vonatkozó beállításokat. Erre később visszatérünk.

Az order kezdetű sorban adható meg, hogy milyen sorrendben értékelje ki a hozzáférési engedélyeket (amiket a következő sorokban adhatunk meg). Ha order allow,deny alakban adjuk meg, akkor először az allow kezdetű sorokat értékeli ki, majd ezután a deny kezdetűeket és az alapbeállítás a deny. Ha order deny,allow a sorrend, akkor először a deny sorokat értékeli ki, majd ezután az allow kezdetűeket és az allow az alapbeállítás. Tehát a mi esetünkben először az allow kezdetűeket érékeli ki, ami most azt közli a szerverrel, hogy bárhonnan elérhető a /var/www könyvtárunk. Ezután értékelné ki a deny sorokat (az most nincs) és deny az alapbeállítás.

És ezzel készen is vagyunk, tehát lezárjuk a szekciót egy </Directory> sorral.

Akkor most nézzük meg, mit jelent a felülbírálat. Ha a /var/www könyvtárban majd további könyvtárakra is akarunk engedélyeket adni, de más beállításokkal, akkor felül kell bírálni bizonyos jogosultságokat. Ha valamin változtatni akarunk, akkor abban a könyvtárban el kell helyezni egy .htaccess fájlt. Ebben van lehetőségünk az eltéréseket megadni. Jó és gyakran használt példa erre a felhasználói azonosítás lehetősége.

Tegyük fel, hogy web szerverünk /var/www könyvtárát mindenki elérheti, de van egy /var/www/secret könyvtár, amit csak felhasználói azonosítással akarunk elérhetővé tenni. Ehhez először is létre kell hozni egy felhasználói adatbázist (ami -sajnos, vagy szerencsére- nem egyezik meg a rendszerünkön létező felhasználókkal).

Ezt az adatbázist a htpasswd programmal hozhatjuk létre és a karbantartását is ezzel végezhetjük el. Ha új fájlt hozunk létre, akkor a htpasswd -c fájlnév felhasználónév alakot használjuk. Ha már meglévő fájlt módosítunk, akkor a -c kapcsolót hagyjuk el!

Pl.: htpasswd -c /etc/apache/passwd kuka

Ennek hatására a program létrehozza a /etc/apache/passwd fájlt, amibe egyúttal fel is veszi a kuka felhasználót és meg is kérdezi a jelszavát. A fájl neve bármi lehet és lehetőleg ne a web szerveren keresztül elérhető (és onnan letölthető) helyre tegyük, bár a jelszavak kódolva vannak.

Eddig még nem volt szó a secret könyvtár eléréséről. Most hozzuk létre a secret könyvtárban a .htaccess fájlt a következő tartalommal:

 

 

 

 

 

AuthUserFile /etc/apache/passwd

AuthName "Titkos hely"

AuthType Basic

<LIMIT CONNECT>

require valid-user

</LIMIT>

 

Ez után az access.conf fájlban hozzunk létre egy új szekciót a /var/www/sercet könyvtárnak amiben mindenképpen legyen benne az AllowOverride AuthConfig sor.

Ezzel biztosítjuk, hogy ebben a könyvtárban az azonosítás felülbírált.

Ezzel kész vagyunk, a feladatot megoldottuk.

 

Ha egy könyvtárra vonatkozó AllowOverride direktíva None, akkor le van tiltva erre a könyvtárra a .htaccess fájl használata.

 

Az srm.conf fál

Ebben a fájlban további beállításokat végezhetünk el azzal kapcsolatban, hogy a felhasználók mit látnak a szerverünkből, milyen szolgáltatásokat érhetnek el. Ebben a fájlban lehet még azt is beállítani, hogy a különböző hatásokra hogyan reagál a szerver és milyen formában fog megjelenni az eredmény.

 

DocumentRoot után megadott könyvtár tartalmazza a szerveren elérhető dokumentumainkat. Alapbeállítás szerint minden kérést ebből a könyvtárból elégítünk ki, de szimbolikus linkek és aliasok mutathatnak más könyvtárakra.

DocumentRoot /var/www                                                      

 

UserDir direktívával lehet megadni azt a könyvtárat, ami akkor érhető el, ha http://szerver/~username kérés érkezik a szerverünkre. (Ezzel a megoldással lehet olyan szervert készíteni, ahol a felhasználóinknak megengedjük, hogy saját web lapjuk legyen és azt ők tarthassák karban.) Ha ez pl. így néz ki: UserDir /home/*/sajathtmls és létezik a felhasználók home könyvtáraiban a sajathtmls könyvtár, akkor az itt található lapok elérhetők. (Persze ugyanúgy vonatkozik rá minden más beállítás, mint a többi elérhető könyvtárra.)

UserDir /home/*                                                           

 

DirectoryIndex direktívával adhatjuk meg azokat a HTML fájlneveket, melyek be fognak töltődni, ha erre a helyre jön kérés és nem adtunk meg konkrét lapot. Tehát, ha ez így van megadva: DirectoryIndex index.html index.htm honlap.html és ez a könyvtár tartalmaz ilyen nevű állományok valamelyikét, akkor erre a helyre ugorva el fog indulni automatikusan a fájlok valamelyike. Mint látjuk, több fájlt is meg lehet adni. Ezeket egyszerűen csak egy szóközzel kell elválasztani és arra kell ügyelni, hogy a leírás sorrendjében fogja keresni a szerver a fájlokat. Tehát, ha van index.html és honlap.html is, akkor az index.html fog indulni.

DirectoryIndex index.html                                                     

 

A FancyIndexing sorral tudjuk engedélyezni, hogy a könyvtárlista nézet „díszesen” legyen látható. (pl. ikonok használata a különböző fájltípusokhoz) Ennek akkor van értelme, ha engedélyezzük a könyvtárlista kérést abban az esetben, ha nem létező lapot akar valaki letölteni szerverünkről.

 

FancyIndexing on                                                              

 

A további opciók erre vonatkoznak. Meg tudjuk adni a használt ikonokat a különböző fájltípusokhoz, mit reagáljon a szerver különböző típusú fájlok elérése esetén, stb. Az Apache alapbeállításait célszerű kipróbálni, mielőtt módosítunk rajta.

 

# AddIcon tells the server which icon to show for different files or filename 

# extensions                                                                  

                                                                              

AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip               

                                                                              

AddIconByType (TXT,/icons/text.gif) text/*                                    

AddIconByType (IMG,/icons/image2.gif) image/*                                  

AddIconByType (SND,/icons/sound2.gif) audio/*                                 

AddIconByType (VID,/icons/movie.gif) video/*                                  

                                                                              

AddIcon /icons/binary.gif .bin .exe                                           

AddIcon /icons/binhex.gif .hqx                                                

AddIcon /icons/tar.gif .tar                                                   

AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv                         

AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip                             

AddIcon /icons/a.gif .ps .ai .eps

AddIcon /icons/layout.gif .html .shtml .htm .pdf                           

AddIcon /icons/text.gif .txt                                               

AddIcon /icons/c.gif .c                                                    

AddIcon /icons/p.gif .pl .py                                               

AddIcon /icons/f.gif .for                                                   

AddIcon /icons/dvi.gif .dvi                                                

AddIcon /icons/uuencoded.gif .uu                                           

AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl                   

AddIcon /icons/tex.gif .tex                                                

AddIcon /icons/bomb.gif core                                               

                                                                           

AddIcon /icons/back.gif ..                                                 

AddIcon /icons/hand.right.gif README                                       

AddIcon /icons/folder.gif ^^DIRECTORY^^                                    

AddIcon /icons/blank.gif ^^BLANKICON^^                                     

                                                                           

# DefaultIcon is which icon to show for files which do not have an icon    

# explicitly set.                                                           

                                                                           

DefaultIcon /icons/unknown.gif                                             

                                                                            

# AddDescription allows you to place a short description after a file in   

# server-generated indexes.

# Format: AddDescription "description" filename                               

                                                                               

# ReadmeName is the name of the README file the server will look for by       

# default. Format: ReadmeName name                                            

#                                                                             

# The server will first look for name.html, include it if found, and it will  

# then look for name and include it as plaintext if found.                    

#                                                                             

# HeaderName is the name of a file which should be prepended to               

# directory indexes.                                                          

                                                                              

ReadmeName README                                                              

HeaderName HEADER                                                             

                                                                              

# IndexIgnore is a set of filenames which directory indexing should ignore    

# Format: IndexIgnore name1 name2...                                          

                                                                              

IndexIgnore .??* *~ *# HEADER* README* RCS                                     

                                                                              

 

AccessFileName Erről a fájlról már volt szó, amikor a hozzáférési jogokról beszéltünk. Alapértelmezés szerint a neve .htaccess. Ez módosítható ebben a direktívában.

 

AccessFileName .htaccess

 

Ha egy olyan fájlt próbálunk elérni a szerveren, amely típushoz nincs definiálva alkalmazás, akkor itt megadható, hogy milyen fájlként kezelje a szerver.

 

# DefaultType is the default MIME type for documents which the server       

# cannot find the type of from filename extensions.                         

                                                                             

DefaultType text/plain                                                      

                                                                            

 

# AddEncoding allows you to have certain browsers (Mosaic/X 2.1+) uncompress

# information on the fly. Note: Not all browsers support this.              

                                                                            

AddEncoding x-compress Z                                                     

AddEncoding x-gzip gz                                                       

                                                                            

# AddLanguage allows you to specify the language of a document. You can      

# then use content negotiation to give a browser a file in a language       

# it can understand.  Note that the suffix does not have to be the same     

# as the language keyword --- those with documents in Polish (whose         

# net-standard language code is pl) may wish to use "AddLanguage pl .po"    

# to avoid the ambiguity with the common suffix for perl scripts.           

                                                                            

AddLanguage en .en                                                           

AddLanguage fr .fr                                                          

AddLanguage de .de                                                          

AddLanguage da .da

AddLanguage it .it                                                            

AddLanguage es .es                                                           

AddLanguage br .br                                                           

AddLanguage jp .jp                                                            

AddLanguage dk .dk                                                           

AddLanguage pl .pl                                                           

AddLanguage kr .kr                                                           

# LanguagePriority allows you to give precedence to some languages           

# in case of a tie during content negotiation.                               

# Just list the languages in decreasing order of preference.                 

                                                                              

LanguagePriority en fr de                                                    

                                                                             

# Redirect allows you to tell clients about documents which used to exist in 

# your server's namespace, but do not anymore. This allows you to tell the   

# clients where to look for the relocated document.                          

# Format: Redirect fakename url                                               

                                                                             

                                                                             

# Aliases: Add here as many aliases as you need (with no limit). The format is

# Alias fakename realname

# Note that if you include a trailing / on fakename then the server will   

# require it to be present in the URL.  So "/icons" isn't aliased in this  

# example.                                                                  

 

Van lehetőségünk alias nevek használatára a következő formában:

Alias álnév valódinév

Ezzel elérhetjük, hogy bizonyos hivatkozások egészen más helyre mutassanak, mint amit leírunk.

                                                                            

Alias /icons/ /usr/share/apache/icons/                                     

                                                                           

# ScriptAlias: This controls which directories contain server scripts.     

# Format: ScriptAlias fakename realname                                    

                                                                           

Hasonló a fenti aliashoz, de CGI szkriptekre érvényes. Be lehet vele állítani, hol találhatók a szerveren a CGI szkriptek.

 

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/                                    

# If you want to use server side includes, or CGI outside                  

# ScriptAliased directories, uncomment the following lines.                

                                                                            

# AddType allows you to tweak mime.types without actually editing it, or to

# make certain files to be certain types.                                  

# Format: AddType type/subtype ext1                                         

A MIME típusok definiálására szolgál. Ha olyan típust akarunk definiálni az Apache szerverre, amit nem akarunk a többi MIME definíció közé rakni, akkor célszerű itt definiálni ezzel a direktívával.

 

# For example, the PHP3 module (a separate Debian package)                 

# will typically use:                                                      

#AddType application/x-httpd-php3 .phtml                                   

#AddType application/x-httpd-php3-source .phps

 

Hasonló az előzőhöz, de itt a MIME típus kezelőjének a nevét adhatjuk meg.

 

# AddHandler allows you to map certain file extensions to "handlers",     

# actions unrelated to filetype. These can be either built into the server

# or added with the Action command (see below)                            

# Format: AddHandler action-name ext1                                     

                                                                          

# To use CGI scripts:                                                      

#AddHandler cgi-script .cgi                                               

                                                                          

# To use server-parsed HTML files                                         

#AddType text/html .shtml                                                 

#AddHandler server-parsed .shtml                                          

                                                                          

# Uncomment the following line to enable Apache's send-asis HTTP file     

# feature                                                                 

#AddHandler send-as-is asis                                               

                                                                           

# If you wish to use server-parsed imagemap files, use                    

#AddHandler imap-file map                                                 

                                                                          

# To enable type maps, you might want to use                              

#AddHandler type-map var                                                  

                                                                          

# Action lets you define media types that will execute a script whenever

# a matching file is called. This eliminates the need for repeated URL      

# pathnames for oft-used CGI file processors.                               

# Format: Action media/type /cgi-script/location                             

# Format: Action handler-name /cgi-script/location                          

                                                                            

# Customizable error response (Apache style)                                

#  these come in three flavors                                              

#                                                                           

#    1) plain text                                                          

#ErrorDocument 500 "The server made a boo boo.                              

#  n.b.  the (") marks it as text, it does not get output                   

#                                                                           

#    2) local redirects                                                      

#ErrorDocument 404 /missing.html                                            

#  to redirect to local url /missing.html                                   

#ErrorDocument 404 /cgi-bin/missing_handler.pl                              

#  n.b. can redirect to a script or a document using server-side-includes.  

#                                                                           

#    3) external redirects                                                  

#ErrorDocument 402 http://some.other_server.com/subscription_info.html      

#                                                                           

                                                                            

# mod_mime_magic allows the server to use various hints from the file itself

# to determine its type.                                                

#MimeMagicFile conf/magic                                               

                                                                        

# The following directives disable keepalives and HTTP header flushes.  

# The first directive disables it for Netscape 2.x and browsers which   

# spoof it. There are known problems with these.                        

# The second directive is for Microsoft Internet Explorer 4.0b2         

# which has a broken HTTP/1.1 implementation and does not properly      

# support keepalive when it is used on 301 or 302 (redirect) responses. 

                                                                        

BrowserMatch "Mozilla/2" nokeepalive                                    

BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0

                                                                        

# The following directive disables HTTP/1.1 responses to browsers which 

# are in violation of the HTTP/1.0 spec by not being able to grok a     

# basic 1.1 response.                                                   

                                                                         

BrowserMatch "RealPlayer 4\.0" force-response-1.0                       

BrowserMatch "Java/1\.0" force-response-1.0                             

BrowserMatch "JDK/1\.0" force-response-1.0                              

                                                                         

Alias /doc/ /usr/doc/

## The above line is for Debian webstandard 3.0, which specifies that /doc   

## refers to /usr/doc.  Some packages may not work otherwise. – apacheconfig

 

Az Apache web szerver használható az installálás után azonnal, de ha nagyobb teljesítményt, vagy több lehetőséget akarunk kihozni belőle, akkor célszerű végignézni a fenti beállításokat.


SQUID proxy cache

 

Az Internet világában nagyon elterjedt a használata a különböző proxy programoknak. Feladatuk általában az, hogy valamilyen szűrést végezzenek az adatok hozzáférésében, szabályozzák a hálózat forgalmát. Nagy hasznát vehetjük az ilyen programoknak, ha pl. intranet hálózatot üzemeltetünk, és nem kívánunk minden számítógépünknek hivatalosan bejegyzett címet regisztráltatni az interneten. Ekkor elég, ha egy gépet ismer az Internet a mi hálózatunkból, a többi gép Internet felé irányuló kéréseit ez a gép képes kielégíteni, ha működik rajta egy proxy program. Nem elhanyagolható szempont az sem, hogy ekkor intranetünk jóval kevésbé sebezhető. (A külvilág az egész hálózatból mindössze egyetlen gépet lát.) A megoldás lényege az, hogy az intranet gépein lévő programok –pl. böngésző program- minden kéréssel a proxyhoz fordul. A proxy jegyzi a kérést, továbbítja a külvilág felé. A választ ő kapja a külvilágtól, majd továbbítja azt a kérőnek. Nagyon fontos lehetőség, hogy nem csak egyszerűen veszi a kérést, hanem mielőtt továbbítaná azt, képes arra, hogy feldolgozza a kérőnek VAN E JOGA megtekinteni a kért információt. A legtöbb proxy képes szűrni munkaállomás alapján (IP cím), és felhasználó alapján is. A másik nagyon hasznos képesség a proxyknál a CACHE megléte. Ha egy kérést már továbbított a proxy, akkor a kért anyag tárolódik a cache-ben és ha más valaki is ugyanazt szeretné letölteni, akkor már nem kell megvárnia egy újabb letöltést, hanem a cache-ből kielégíthető a kérése.

Rövid ismertetés

A LINUX egyik legnépszerűbb proxy cache szerverprogramja a SQID. Nagy teljesítményű, a GNU GPL alá tartozó szoftver, mely képes FTP, HTTP és GOPHER protokollokon keresztüli kéréseket kiszolgálni a WEB kliensek számára.

Működik LINUX, FreeBSD, BSDI, OSF, Digital Unix, Irix, SunOS/Solaris, NeXTStep, SCO Unix, AIX, HP-UX operációs rendszereken. Van lehetőség WINDOWS NT rendszeren is használni (GNU-Win32 csomagon keresztül), de így nem túl jó a teljesítménye. Ezen a rendszeren inkább más megoldást válasszunk.

A metaadatokat és az éppen használt objektumokat a RAM-ban tárolja. (Ebből következik, hogy ha egy SQUID-ot akarunk futtatni egy szerver gépen, akkor a nagyobb teljesítmény érdekében ajánlott a nagy memória használata.) Cache-eli a DNS kéréseket és implementálva van a sikertelen kérések negatív cache-elése.

Támogatja az SSL-t. Alapkiépítésben a SQUID minden SSL kérést direkt módon továbbít az eredeti szervereknek. Ha tűzfal mögött használjuk, akkor minden SSL kérést egy adott másik proxynak továbbít. (ssl_proxy direktíva)

Több proxy hierarchikus sorba köthető (ICP/Internet Cache Protocol) ezáltal a sávszélességgel hatékonyan tudunk spórolni. Lehetőség van arra is, hogy az intranetünk összes gépe a SQUID szerverünket érje el a helyi WEB szerver helyett és így minden kérést ő fog kielégíteni, ezáltal megint csak gyorsulhat az adatelérés. (A WEB szervert csak a SQUID szerver fogja szólítgatni.) Minden igényt kielégítő naplózási rendszere van.

Összességében elmondható, hogy ha elegendő a helyi hálózat számára a WEB HTTP-n, GOPHER-en és az FTP URL-en keresztüli használata és kontrollálni szeretnénk a hozzáférést, akkor kiváló megoldást biztosít számunkra a SQUID. (A levelezés természetesen más lapra tartozik, a kettő nem zárja ki egymást. A WEB eléréshez üzemeltethetünk SQUID-ot, a levelezéshez pedig egy másik, esetleg ugyanazt a gépet is használhatjuk.)

 

Az ajánlott hardver

Mivel a metaadatokat és az éppen használt objektumokat a memóriában tárolja, egyetlen fontos dolog a nagy méretű RAM a gépbe. Nem kell különlegesen erős processzor. A cache nagy része a winchestereken tárolódik, tehát ha hatékony cache-t szeretnénk, akkor nagy és gyors winchesterekre van szükségünk.

A hivatalosan ajánlott konfiguráció egy nagy teljesítményű proxy cache szerver felépítéséhez (1999 első negyedév):

CPU:      2xPentiumII

RAM:      512MB

HD:         5x9GB UW-SCSI

(Ne vessük el a proxy építésének ötletét, ha nem rendelkezünk ezzel a konfigurációval. Cégünknél „takarékossági okokból” egyetlen 64MB RAM memóriájú Pentium166-os gépen üzemel egy WEB szerver, egy SQUID szerver, egy SAMBA szerver és egy levelező szerver (SENDMAIL) minden probléma nélkül, ahogy azt a Linuxtól megszoktuk ezen a területen.)

Indítás

A finombeállításokat egyetlen fájlban tehetjük meg: /etc/squid.conf (DEBIAN) /etc/squid/squid.conf (SuSE, Redhat) A LINUX disztribúciók általában tartalmazzák.

Indítani (és leállítani) lehet kézzel az indító szkripteken keresztül start (és stop) paraméterrel (/etc/init.d/squid – DEBIAN, /etc/rc.d/init.d/squid – SuSE, Redhat), vagy automatikusan a megfelelő rcx.d könyvtárba helyezve:

 

samson:~# ls -al /etc/rc3.d/S30squid lrwxrwxrwx 1 root root 5 May 31 14:29 /etc/rc3.d/S30squid -> /init.d/squid

 

A fenti eredményt elérhetjük egyszerűen parancssoron keresztül (pl DEBIANban) az

ln –s /etc/init.d/squid /etc/rc3.d/S30squid

parancs kiadásával, vagy grafikus segédprogram használatával (pl. FVWM2 ablakkezelőn a Control-Panel/Runlevel editor a Redhatban, és KDE ablakkezelőn is.) A parancssoros változat természetesen mindegyik disztribúcióban működik, csak az esetlegesen eltérő elérési utakra figyeljünk.

A /etc/rc.d/init.d/squid.init fájl egy lehetséges tartalma a Redhat alapbeállítása szerint a következő:

 

#!/bin/sh

#

# squid.init   This shell script takes care of starting and stopping

#              squid

#

 

# Source function library.

. /etc/rc.d/init.d/functions

 

SQUID_HOME=/usr

 

[ -f $SQUID_HOME/bin/squid ] || exit 0

 

case "$1" in

  start)

     echo -n "Starting squid: "

     daemon $SQUID_HOME/bin/squid -D &

     echo

     touch /var/lock/subsys/squid

     ;;

  stop)

     echo -n "Shutting down squid"

     killall -TERM $SQUID_HOME/bin/squid

     sleep 2

     killproc $SQUID_HOME/bin/squid

     echo

     rm -f /var/lock/subsys/squid

     ;;

  *)

     echo "Usage: squid.init {start|stop}"

     exit 1

esac

 

exit 0

 

Figyeljük meg, hogy ha az első paraméter start, akkor a squid démonként fog indulni -D opcióval, ami azt jelenti, hogy tiltsa le a DNS tesztet. (A SQUID induláskor megnéz néhány jól ismert DNS-t, hogy a name szerverünk működését leellenőrizze.) A lényegesebb opciók a következők:

-a portszám         Az alapbeállítástól (3128) eltérő portszám használata a bejövő HTTP kérésekhez. Általában nem szokás változtatni.

-f fájl név  Az alapbeállítástól eltérő konfigurációs fájl neve az elérési útjával együtt.

-h           A help kérése.

-k reconfigure      A konfigurációs fájl újra olvastatása.

-u portszám         Az alapbeállítástól eltérő ICP port használata.

-v            Verziószám kiíratása.

-z           Elkészíti a swap könyvtárakat. Első indításkor célszerű ezzel a paraméterrel indítani a squidot, vagy ha módosítottunk a swap szerkezeten. (Ha valamelyik disztribúcióval együtt automatikusan kerül fel a squid, akkor valószínűleg nem kell ezt megtennünk első indításkor.) Ha nem működik, akkor ezt nézzük meg először. Ha tiszta cache-el akarjuk indítani a SQUID-ot, akkor is használhatjuk ezt.

-D           Nem hajtja végre a DNS tesztet.

-V           Engedélyezi a virtual host támogatást httpd_accelerator módban.

 

A kliensek konfigurálása

Az elterjedt böngésző programok fel vannak készítve a proxyk használatára. Van lehetőségünk kézi és automatikus konfigurálásra is.

Netsape változatokban a /edit/preferences/advanced/proxyes párbeszédablakban állíthatjuk be kézzel, vagy java szkript segítségével automatikusan a proxy használatát.

Pl.: Kézi beállítás esetén a manual… ablakot kell kinyitni és a HTTP, GOPHER, FTP helyeken írjuk be a proxy szerverünk nevét, vagy IP címét és a portszámot (ami, ha másképp nem rendelkezünk, akkor 3128)

Ez itt egy minta java szkript az automatikus konfiguráláshoz: (Oskar Pearson munkája)

 

 

//We (www.is.co.za) run a central cache for our customers that they

//access through a firewall - thus if they want to connect to their intranet

//system (or anything in their domain at all) they have to connect

//directly - hence all the "fiddling" to see if they are trying to connect

//to their local domain.

 

//Replace each occurrence of company.com with your domain name

//and if you have some kind of intranet system, make sure

//that you put it's name in place of "internal" below.

 

//We also assume that your cache is called "cache.company.com", and

//that it runs on port 8080. Change it down at the bottom.

 

//(C) Oskar Pearson and the Internet Solution (http://www.is.co.za)

 

    function FindProxyForURL(url, host)

        {

            //If they have only specified a hostname, go directly.

            if (isPlainHostName(host))

                    return "DIRECT";

 

            //These connect directly if the machine they are trying to

            //connect to starts with "intranet" - ie http://intranet

            //Connect  directly if it is intranet.*

            //If you have another machine that you want them to

            //access directly, replace "internal*" with that

            //machine's name

            if (shExpMatch( host, "intranet*")||

                            shExpMatch(host, "internal*"))

                return "DIRECT";

 

            //Connect directly to our domains (NB for Important News)

            if (dnsDomainIs( host,"company.com")||

            //If you have another domain that you wish to connect to

            //directly, put it in here

                            dnsDomainIs(host,"sistercompany.com"))

                return "DIRECT";

 

            //So the error message "no such host" will appear through the

            //normal Netscape box - less support queries :)

            if (!isResolvable(host))

                    return "DIRECT";

 

            //We only cache http, ftp and gopher

            if (url.substring(0, 5) == "http:" ||

                            url.substring(0, 4) == "ftp:"||

                            url.substring(0, 7) == "gopher:")

 

            //Change the ":8080" to the port that your cache

            //runs on, and "cache.company.com" to the machine that

            //you run the cache on

                    return "PROXY cache.company.com:8080; DIRECT";

 

            //We don't cache WAIS

            if (url.substring(0, 5) == "wais:")

                    return "DIRECT";

 

            else

                    return "DIRECT";

        }

 

Internet Explorer használata esetén a /nézet/beállítások/kapcsolat ablakban jelöljük meg a „Kapcsolódás proxy kiszolgálón keresztül” jelölő négyzetet, majd a „beállítások…” ablakban a HTTP, GOPHER, FTP sorokban adjuk meg a Netscape-hez hasonló módon a proxy gép nevét (vagy IP címét) és a port számot.

 

A squid.conf fájl lehetőségei

Hozzáférés szabályozása

Az installáláskor keletkező squid.conf fájl gyakorlatilag használható bármilyen módosítás nélkül. A finomhangolás itt is ajánlott.

Mint már volt róla szó, van lehetőség gép szerint (IP cím) és felhasználó szerint szabályozni a hozzáférést. A feladat a squid.conf fájl editálásával oldható meg az ún. ACL-eken keresztül. (Access Control List)

Az  ACCESS CONTROLS szekcióban lévő acl soroknak a következő képpen kell kinézni:

acl név típus sztring, v. fájl név

pl:

acl manager proto cache_object

Ez azt jelenti, hogy manager néven felvettünk egy proto típusú

acl-t, ami a cache_object protokoll használatára vonatkozik. (Cache manager használata)

 

acl localhost src 127.0.0.1/255.255.255.255

Ez azt jelenti, hogy a localhost névvel felvettünk egy src típusú acl nevet, és ez a helyi gépet jelenti (127.0.0.1/255.255.255.255)

 

acl all src 0.0.0.0/0.0.0.0

Ez azt jelenti, hogy all névvel felvettünk egy src típusú acl-t, ami az egész internetet jelenti. (0.0.0.0/0.0.0.0) Ezt használjuk majd általános tiltásra, engedélyezésre.

Ezeket a squid.conf alapértelmezés szerint tartalmazza.

 

acl elegvolt time 08:00-12:00

Ez azt jelenti, hogy elegvolt néven felvettünk egy time típusú acl-t, ami a 8 és 12 óra közötti eseményekre vonatkozik.

 

acl lanyok url_regex \.sex persiankitty whitehouse xxx aaa

Ez azt jelenti, hogy lanyok néven felvettünk egy url_regex típusú acl-t, ami azokra az URL-ekre vonatkozik, amikben szerepelnek az utána következő minták.

 

 

acl private src 192.168.1.10/255.255.255.255 192.168.1.11/255.255.255.255

Felvettünk egy private nevű src típusú acl-t, amibe két gép tartozik.

 

acl joido src 192.168.1.10/255.255.255.255 192.168.1.11/255.255.255.255 192.168.1.12/255.255.255.255

Felvettünk egy joido nevű src típusú acl-t, amibe három gép tartozik.

 

acl johostok srcdomain nitro.hu

Felvettünk egy johostok nevű srcdomain típusú acl-t, ami a nitro.hu doménről érkező kérésekre vonatkozik.

 

A nevek felvétele után a http_access sorok jönnek a következő formában:

http_access allow|deny [!]aclnév

 

pl:

http_access deny manager !localhost

Ez megtiltja a cache manager használatát mindenkinek, kivéve a helyi gépnek.

 

http_access deny elegvolt !joido

Ez megtiltja a WEB hozzáférést 8 és 12 óra között mindenkinek, kivéve a joido csoportban szereplő három gépnek. (Ők 8 és 12 között is használhatják a proxyn keresztül a WEB-et.)

 

http_access deny lanyok !private

Ez megtiltja a lanyok-ban definiált mintákat tartalmazó URL-ek megtekintését mindenkinek, kivéve a private csoportba tartozó két gépnek. (Ők ezeket is letölthetik.)

 

http_access deny all !johostok

Ez megtilt minden hozzáférést mindenkinek, kivéve azoknak a gépeknek, amik a nitro.hu doménben vannak.

 

http_access allow all

Ez megenged minden hozzáférést mindenkinek, amit eddig még nem definiáltunk.

 

További használható típusok:

acl aclname dst      ip-address/netmask ... (URL host's IP address)

acl aclname dst      ip-address/netmask ... (URL host's IP address)

acl aclname urlpath_regex  \.gif$ ...        # regex matching on URL path only

acl aclname port     80 70 21 ...

acl aclname method   GET POST ...

acl aclname browser  regexp

acl aclname user     username ...            # string match on ident output.

 

Első látásra talán kicsit nehezen érthető és túl bonyolultnak tűnik ez a szabályrendszer. A könnyebb érthetőség kedvéért úgy képzeljük el az egészet, mint egy szűrőt, ami felülről lefelé elindulva az első rá illeszkedő mintánál megállítja a kérés feldolgozását.

Tehát, ha valaki a cache manager cgi-jét akarja futtatni, akkor máris elakad a szűrő első sorában. Ez megvizsgálja, hogy a kérés a helyi gépről érkezett-e. Ha igen, akkor engedi a hozzáférést, ha nem, akkor tiltó üzenetet kap.

Ha valaki 11 órakor szeretne egy lapot letölteni, akkor az első sor nem áll útjában. A második viszont igen. Megnézi, hogy a kérés az engedélyezett három gép valamelyikéről jött-e. Ha igen, akkor engedi tovább, ha nem, akkor tiltó üzenetet kap. Ha történetesen a kérés a 192.168.1.12 gépről jött és a sexben szereplő mintát talál a kért URL-ben, akkor nem engedi tovább a következő (3.) sor. (A 192.168.1.11 gépről tovább engedte volna)

Ha valaki 12 óra után küld egy sex-el nem ellenkező kérést, akkor eljut egészen a 4. sorig. Ott megnézi, hogy a kérés a nitorgen.hu doménről jött-e. Ha onnan jött, akkor kiszolgálja. Ha nem, akkor megfogta. Ezzel elérhetjük például, hogy csak a name serverünkben bejegyzett gépek használhassák a proxynkat.

Az utolsó sornak ebben az esetben sok jelentősége nincsen, mert elég jól lefedtük a felmerülő lehetőségeket. Egyébként, ha egy másképp felépített szabályrendszerben eljut egy kérés idáig, akkor azt teljesíti. Ha itt http_access deny all állna, akkor minden előzőleg le nem kezelt kérést visszautasítana a proxy.

Ennyi magyarázat után gondolom nem fog nehézségbe ütközni egy saját, gépeket figyelő szabályrendszer felállítása. Többször említettem a magyarázat közben a tiltó üzenetet. Ha a proxy nem tud, vagy nem szolgálhat ki egy kérést, akkor üzenetet küld a kérelmező gépre. Van egy beépített hibaüzenet könyvtára a SQUID-nak, amit használ. A 2.0 verziótól kezdve ez a könyvtár magyarul is megtalálható. (DEBIAN rendszerben a /usr/lib/squid/errors/Hungarian könyvtár) Ha ezt állítjuk be az

„error_directory /usr/lib/squid/errors/Hungarian

opcióval, akkor magyarul kapja a felhasználó az üzeneteket. Van egy másik –elegánsabb- lehetőségünk is a korlátozásaink közlésére:

deny_info http://www.nitro.hu/tilos1.html private

deny_info http://www.nitro.hu/tilos8.html joido

deny_info http://www.nitro.hu/tilos9.html johostok

A MISCELLANEOUS szekcióban lévő deny_info opció használatával megadhatunk saját URL-eket a korlátozás indoklására. Tehát ha a gépet azért nem szolgálja ki a proxy, mert nem tartozik a private csoportba, akkor a tilos1.html lapot kapja figyelmeztetésül, ahol elmagyarázhatjuk a kíváncsiskodónak, hogy a kért anyag megtekintése nem egyeztethető össze cégünk szemléletével…

 

Említettük, hogy lehetőségünk van a proxykat hierarchikus, vagy egyenrangú láncba fűzni.

Ezt az OPTIONS WHICH AFFECT THE NEIGHBOR SELECTION ALGORITHM

szekció alatt tarthatjuk karban.

 

Például, ha a proxy.datanet.hu gépet szeretnénk használni abban az esetben, ha a mi cache-ünkben nincs meg a kért adat, akkor a

 

cache_host proxy.datanet.hu parent 3128 3130

 

sort kell használnunk.

 

További lehetőségek

 

A HTTP és ICP portok számát megadhatjuk. Alapérték 3128 és 3130.

http_port 3128

icp_port 3130

 

Az OPTIONS WHICH AFFECT THE CACHE SIZE szekcióban memória és lemezfoglalási paramétereket állíthatunk be.

 

cache_mem  32

cache_swap 200

 

A LOGFILE PATHNAMES AND CACHE DIRECTORIES szekcióban beállíthatjuk, hogy hol tárolja a squid a naplófájlokat. A naplófájlok tartalma értékes információkkal szolgál a cache működéséről. Érdemes nézegetni őket.

 

cache_dir /var/spool/squid 100 16 256     

cache_access_log /var/log/squid/access.log

cache_log /var/log/squid/cache.log

cache_store_log /var/log/squid/store.log        

cache_swap_log                                  

emulate_httpd_log off

 

Az OPTIONS FOR TUNING THE CACHE szekcióban további finomhangolási lehetőségek vannak.

 

#wais_relay_host localhost       

#wais_relay_port 8000            

#request_size 100 KB

#reference_age 1 month

Az ADMINISTRATIVE PARAMETERS listán találjuk meg a cache kezelőjének beállítási lehetőségét, aki e-mailben fog üzeneteket kapni.

cache_mgr szabob@goliat.nitro.hu

A

visible_hostname goliat.nitro.hu

beállítással az üzeneteken látható nevet állíthatjuk be.

 

A  MISCELLANEOUS részben adhatjuk meg többek között, hogy mennyit áruljon el a külvilágnak a proxynk a lekérdező gépről.

 

#  TAG: forwarded_for   on|off                                      

Ha ez a paraméter on állásban van, akkor ez látszik egy lekérdezés nyomán:

 

#               X-Forwarded-For: 192.1.2.3                          

#                                                                    

Ha off-ra állítjuk, akkor csak ennyi:

#               X-Forwarded-For: unknown                            

 

 

forwarded_for off

 

További elrejtést tudunk produkálni a következő opcióval

 

#  TAG: http_anonymizer                                                

#               'off'           All HTTP request headers are passed.  

#               'standard'      Specific headers are removed          

#               'paranoid'      Only specific headers are allowed.     

 

http_anonymizer paranoid                                              

 

#  TAG: fake_user_agent                                                   

Ha használjuk a http_anonymizer paranoid opciót, akkor a squid nem ad ki információt a böngészőnkről a kért helynek. (Ezért használjuk.) De van olyan hely, ami vissza fogja utasítani a kérésünket, ha nem látja, milyen kliensről jövünk. Ezen akadály kikerülésére használjuk ezt az opciót. Amit ebbe írunk, olyan „kliensről” támadjuk a szervert.

 

fake_user_agent Dummy Internyet Excooler v.1000

 

Megadhatjuk a magyar nyelvű hibaüzenet könyvtárat is.

error_directory /usr/lib/squid/errors/Hungarian

 

A fenti lehetőségek csak egy töredékét fedik le a squid beállítási lehetőségeinek, de azt hiszem, a lényegesebb motívumokat átnéztük.


Kapcsolat PPP-n keresztül

 

Ha a Linux gépünket modem segítségével akarjuk hálózatba kötni, akkor a legkézenfekvőbb megoldás ehhez a ppp csomag használata.

Van lehetőség a SLIP használatára is, de a ppp sokkal korszerűbb. Lehetőséget ad az IP címek egyeztetésére a kommunikáló oldalak között és azonosítási funkciója is van.

A PPP használatát két szinten valósítjuk meg. Egy kernel szintű illesztőprogram (HDLC High-level Data Link Control protokoll) és egy felhasználó szintű pppd program. A használathoz szükség van még egy betárcsázást elvégző programra is. Ez általában a chat program szokott lenni. (Ezzel hívjuk fel a távoli számítógépet.) Ezen kívül a csomaghoz tartoznak még a pppd beállításokat tartalmazó konfigurációs fájlok. (Ezek általában a /etc/ppp könyvtárban vannak.)

Előkészítés

Ha használni akarjuk a PPP-t, akkor létezni kell a visszahurkoló interfésznek és be kell állítani a feloldót is. (Ezeket más fejezetekben ismertettük.)

Nézzük sorban a beállításhoz szükséges lépéseket.

A kernelben engedélyezni kell a General setup / Networkin support menüpontot, a Networking options / TCP/IP networking-et és a Network device support / PPP support-ot.

Ezzel az alsó szintű kezelő protokollt beindítottuk.

Biztosítani kell, hogy a modemhez hozzáférésünk legyen (kernelben engedélyezve legyen a soros portok használata). Ezen kívül szokásos, de nem kötelező a /dev/modem szimbolikus link megléte a modemet tartalmazó soros eszközfájlra. Tehát először nézzük meg, hogy melyik soros porton van a modemünk, majd adjuk ki az

ls –l /dev/modem parancsot. Ha látunk egy ehhez hasonló eredményt:

goliat:# ls -l /dev/modem                                        

lrwxrwxrwx   1 root     dialout        10 Sep  8 07:00 /dev/modem -> /dev/ttyS1

goliat:#

akkor csak annyi a dolgunk, hogy eldöntsük, a modem tényleg a COM2-en van-e. (/dev/ttyS0=COM1, /dev/ttyS1=COM2)

Ha nem talál egy /dev/ttySx-re mutató linket a rendszerünk, akkor gyorsan hozzuk létre:

ln –s /dev/ttyS1 /dev/modem

(Mindenhol hivatkozhatnánk direkt módon is a /dev/ttyS1-re, de általában el szokták végezni a link hozzáadását. Ez azért egyszerűbb, mert ha több program is van, ami a modemet használja és történetesen megváltoztatjuk a modem helyét –COM2 helyett COM1-en lesz- akkor csak a linket kell törölni és létrehozni még egyszer a jó soros portra csatolva. Míg ha direktben a soros portot használtatnánk az összes programunkkal, akkor ebben az esetben az összes programot egyenként át kellene konfigurálni az új helyzetnek megfelelően.)

A pppd beállítása

Ezek után áttérhetünk a felhasználói szintű pppd beállítására. Minden szükséges konfigurációs állomány a /etc/ppp könyvtárban van. Az alábbi lista a Debian-ban fedi a valóságot, egyébként disztribúciótól függően lehetnek apróbb eltérések. (A lényeges fájlokat mindegyikben megtaláljuk.) Minden disztribúcióban van egy ppp-t beállító segédprogram, amit használva elkerülhetjük a fájlok direkt módon történő szerkesztését. (Pl. Debianban a pppconfig)

 

 

 

 

 

 

 

A fontosabb fájlok listája:

goliat:/etc/ppp# ls                                          

chap-secrets

ip-down.d

no_ppp_on_boot

pap-secrets

ioptions

ip-up

options

ip-down

ip-up.d

options.ttyXX

peers

goliat:/etc/ppp#

Az options fájl

Az általános ppp opciók az options fájlban vannak. Ezeket mindig használni fogja a pppd, de felülbírálhatók kapcsolatonként. Az egyes soros portokhoz tartozó esetleges, egyedi opciók az options.ttyXX típusú fájlokban vannak. (XX=S0,S1,S2,...)

Az alapbeállítások általában elégségesek, nem gyakran kell őket módosítani, bármelyik generáló segédprogramot is használtuk bármely disztribúcióban.

 

# /etc/ppp/options

#

# $Id: options,v 1.4 1996/05/01 18:57:04 alvar Exp $

#

# Originally created by Jim Knoble <jmknoble@mercury.interpath.net>

# Modified for Debian by alvar Bray <alvar@meiko.co.uk>

# Modified for PPP Server setup by Christoph Lameter <clameter@debian.org>

#

# Use the command  egrep -v '#|^ *$' /etc/ppp/options to quickly see what

# options are active in this file.

 

# Specify which DNS Servers the incoming Win95 or WinNT Connection should use

# Two Servers can be remotely configured

# ms-dns 192.168.1.1

# ms-dns 192.168.1.2

 

# Specify which WINS Servers the incoming connection Win95 or WinNT should use

# ms-wins 192.168.1.50

# ms-wins 192.168.1.51

 

# Run the executable or shell command specified after pppd has

# terminated the link.  This script could, for example, issue commands

# to the modem to cause it to hang up if hardware modem control signals

# were not available.

#disconnect "chat -- \d+++\d\c OK ath0 OK"

# async character map -- 32-bit hex; each bit is a character

# that needs to be escaped for pppd to receive it.  0x00000001

# represents '\x01', and 0x80000000 represents '\x1f'.

asyncmap 0

 

# Require the peer to authenticate itself before allowing network

# packets to be sent or received.

# Please do not disable this setting. It is expected to be standard in

# future releases of pppd. Use the call option (see manpage) to disable

# authentication for specific peers.

auth

 

# Use hardware flow control (i.e. RTS/CTS) to control the flow of data

# on the serial port.

crtscts

 

# Use software flow control (i.e. XON/XOFF) to control the flow of data

# on the serial port.

#xonxoff

 

# Specifies that certain characters should be escaped on transmission

# (regardless of whether the peer requests them to be escaped with its

# async control character map).  The characters to be escaped are

# specified as a list of hex numbers separated by commas.  Note that

# almost any character can be specified for the escape option, unlike

# the asyncmap option which only allows control characters to be

# specified.  The characters which may not be escaped are those with hex

# values 0x20 - 0x3f or 0x5e.

#escape 11,13,ff

 

# Don't use the modem control lines.

#local

 

# Specifies that pppd should use a UUCP-style lock on the serial device

# to ensure exclusive access to the device.

lock

 

# Use the modem control lines.  On Ultrix, this option implies hardware

# flow control, as for the crtscts option.  (This option is not fully

# implemented.)

modem

 

# Set the MRU [Maximum Receive Unit] value to <n> for negotiation.  pppd

# will ask the peer to send packets of no more than <n> bytes. The

# minimum MRU value is 128.  The default MRU value is 1500.  A value of

# 296 is recommended for slow links (40 bytes for TCP/IP header + 256

# bytes of data).

#mru 542

 

# Set the interface netmask to <n>, a 32 bit netmask in "decimal dot"

# notation (e.g. 255.255.255.0).

#netmask 255.255.255.0

 

# Disables the default behaviour when no local IP address is specified,

# which is to determine (if possible) the local IP address from the

# hostname. With this option, the peer will have to supply the local IP

# address during IPCP negotiation (unless it specified explicitly on the

# command line or in an options file).

#noipdefault

 

# Enables the "passive" option in the LCP.  With this option, pppd will

# attempt to initiate a connection; if no reply is received from the

# peer, pppd will then just wait passively for a valid LCP packet from

# the peer (instead of exiting, as it does without this option).

#passive

 

# With this option, pppd will not transmit LCP packets to initiate a

# connection until a valid LCP packet is received from the peer (as for

# the "passive" option with old versions of pppd).

#silent

 

# Don't request or allow negotiation of any options for LCP and IPCP

# (use default values).

#-all

 

# Disable Address/Control compression negotiation (use default, i.e.

# address/control field disabled).

#-ac

 

# Disable asyncmap negotiation (use the default asyncmap, i.e. escape

# all control characters).

#-am

 

# Don't fork to become a background process (otherwise pppd will do so

# if a serial device is specified).

#-detach

 

# Disable IP address negotiation (with this option, the remote IP

# address must be specified with an option on the command line or in an

# options file).

#-ip

 

# Disable magic number negotiation.  With this option, pppd cannot

# detect a looped-back line.

#-mn

 

# Disable MRU [Maximum Receive Unit] negotiation (use default, i.e.

# 1500).

#-mru

 

# Disable protocol field compression negotiation (use default, i.e.

# protocol field compression disabled).

#-pc

 

# Require the peer to authenticate itself using PAP.

#+pap

 

# Don't agree to authenticate using PAP.

#-pap

 

# Require the peer to authenticate itself using CHAP [Cryptographic

# Handshake Authentication Protocol] authentication.

#+chap

 

# Don't agree to authenticate using CHAP.

#-chap

 

# Disable negotiation of Van Jacobson style IP header compression (use

# default, i.e. no compression).

#-vj

 

# Increase debugging level (same as -d).  If this option is given, pppd

# will log the contents of all control packets sent or received in a

# readable form.  The packets are logged through syslog with facility

# daemon and level debug. This information can be directed to a file by

# setting up /etc/syslog.conf appropriately (see syslog.conf(5)).  (If

# pppd is compiled with extra debugging enabled, it will log messages

# using facility local2 instead of daemon).

#debug

 

# Append the domain name <d> to the local host name for authentication

# purposes.  For example, if gethostname() returns the name porsche,

# but the fully qualified domain name is porsche.Quotron.COM, you would

# use the domain option to set the domain name to Quotron.COM.

#domain <d>

 

# Enable debugging code in the kernel-level PPP driver.  The argument n

# is a number which is the sum of the following values: 1 to enable

# general debug messages, 2 to request that the contents of received

# packets be printed, and 4 to request that the contents of transmitted

# packets be printed.

#kdebug n

 

# Set the MTU [Maximum Transmit Unit] value to <n>. Unless the peer

# requests a smaller value via MRU negotiation, pppd will request that

# the kernel networking code send data packets of no more than n bytes

# through the PPP network interface.

#mtu <n>

 

# Enforce the use of the hostname as the name of the local system for

# authentication purposes (overrides the name option).

#usehostname

 

# Set the assumed name of the remote system for authentication purposes

# to <n>.

#remotename <n>

 

# Add an entry to this system's ARP [Address Resolution Protocol]

# table with the IP address of the peer and the Ethernet address of this

# system.

proxyarp

 

# Use the system password database for authenticating the peer using

# PAP. Note: mgetty already provides this option. If this is specified

# then dialin from users using a script under Linux to fire up ppp wont work.

# login

 

# If this option is given, pppd will send an LCP echo-request frame to

# the peer every n seconds. Under Linux, the echo-request is sent when

# no packets have been received from the peer for n seconds. Normally

# the peer should respond to the echo-request by sending an echo-reply.

# This option can be used with the lcp-echo-failure option to detect

# that the peer is no longer connected.

lcp-echo-interval 30

 

# If this option is given, pppd will presume the peer to be dead if n

# LCP echo-requests are sent without receiving a valid LCP echo-reply.

# If this happens, pppd will terminate the connection.  Use of this

# option requires a non-zero value for the lcp-echo-interval parameter.

# This option can be used to enable pppd to terminate after the physical

# connection has been broken (e.g., the modem has hung up) in

# situations where no hardware modem control lines are available.

lcp-echo-failure 4

 

# Set the LCP restart interval (retransmission timeout) to <n> seconds

# (default 3).

#lcp-restart <n>

 

# Set the maximum number of LCP terminate-request transmissions to <n>

# (default 3).

#lcp-max-terminate <n>

 

# Set the maximum number of LCP configure-request transmissions to <n>

# (default 10).

#lcp-max-configure <n>

 

# Set the maximum number of LCP configure-NAKs returned before starting

# to send configure-Rejects instead to <n> (default 10).

#lcp-max-failure <n>

 

# Set the IPCP restart interval (retransmission timeout) to <n>

# seconds (default 3).

#ipcp-restart <n>

 

# Set the maximum number of IPCP terminate-request transmissions to <n>

# (default 3).

#ipcp-max-terminate <n>

 

# Set the maximum number of IPCP configure-request transmissions to <n>

# (default 10).

#ipcp-max-configure <n>

 

# Set the maximum number of IPCP configure-NAKs returned before starting

# to send configure-Rejects instead to <n> (default 10).

#ipcp-max-failure <n>

 

# Set the PAP restart interval (retransmission timeout) to <n> seconds

# (default 3).

#pap-restart <n>

 

# Set the maximum number of PAP authenticate-request transmissions to

# <n> (default 10).

#pap-max-authreq <n>

 

# Set the CHAP restart interval (retransmission timeout for

# challenges) to <n> seconds (default 3).

#chap-restart <n>

 

# Set the maximum number of CHAP challenge transmissions to <n>

# (default 10).

#chap-max-challenge

 

# If this option is given, pppd will rechallenge the peer every <n>

# seconds.

#chap-interval <n>

 

# With this option, pppd will accept the peer's idea of our local IP

# address, even if the local IP address was specified in an option.

#ipcp-accept-local

 

# With this option, pppd will accept the peer's idea of its (remote) IP

# address, even if the remote IP address was specified in an option.

#ipcp-accept-remote

 

# Disable the IPXCP and IPX protocols.

# To let pppd pass IPX packets comment this out --- you'll probably also

# want to install ipxripd, and have the Internal IPX Network option enabled

# in your kernel.  /usr/doc/HOWTO/IPX-HOWTO.gz contains more info.

noipx

 

# ---<End of File>---

 

 

A lényegesebb opciók:

auth        Azonosítás szükséges, mielőtt a hálózati forgalom megindul

crtscts                Hardveres adatfolyam vezérlés

xonxoff    Szoftveres adatfolyam vezérlés

lock        A modemhez ne férjen hozzá más, amíg a ppp használja

noipdefault          Nincsen fix IP címe a modemnek, hanem a szolgáltatótól kap, amikor bejelentkezik. (Ideiglenes kapcsolatoknál nincs értelme foglalni olyankor is az IP címet, ha nem is használják mindig.)

+PAP     PAP azonosítás szükséges

-PAP      Nem elfogadott a PAP azonosítás

+CHAP   CHAP azonosítás szükséges

-CHAP    Nem elfogadott a CHAP azonosítás

login       A /etc/passwd fájlból veszi a jelszót a PAP azonosításnál.

A pap-secrets és chap-secrets fájlok (PAP hitelesítés CHAP hitelesítés)

A pap-secrets és a chap-secrets fájlok a pap és a chap azonosításhoz szükséges információkat őrzik.

 

A PAP azonosítás

A PAP azonosítás nem más, mint egy felhasználói név és egy jelszó elküldése a másik gépre, majd az elvégzi az azonosítást a saját adatbázisában és elfogadja a klienst.

Ehhez az eljáráshoz egy /etc/pap-secret fájl tartozik mindkét gépen. (Már ha a kliens is linuxos.) Egy windows-os gépen csak be kell állítani az azonosítás formáját a kapcsolat beállító paneljén.

 

A pap-secrets fájl formája nagyon egyszerű:

 

felhasználó kiszolgáló titok IP

 

Jelentése:

Milyen felhasználó milyen kiszolgálóra milyen titok ismeretében léphet be milyen IP-ket, vagy nevet használva.

 

pl:

 

szabob dataender kakukk

A szabob néven beléphetünk a dataender kiszolgálóra bárhonnan, ha tudjuk a kakukk jelszót.

 

szabob * kakukk

A szabob néven beléphetünk minden gépre ha ott ismerik ezt a felhasználó nevet és jó a "kakukk" jelszó. Bármilyen IP-t, vagy nevet használhatunk.

 

A fenti példák a mi kimenő kapcsolatunkat biztosítják, tehát ha mi akarunk valahova bejelentkezni.

Ha hozzánk is be akarunk engedni valakit, akkor fel kell venni a számára a megfelelő sort ugyanebbe a fájlba:

 

vendeg    samson    kuka        192.168.1.1

Azaz: Vendég néven be tud jönni hozzánk valaki a 192.168.1.1 gépről, ha ismeri a kuka jelszót és  a mi gépünk neve samson.

 

*              samson    ""

Bármilyen /etc/passwd fájlban szereplő felhasználó be tud jönni bárhonnan, ha használja a saját jelszavát.

 

root                         hostname "*"            -

Root néven sehonnan nem lehet bejönni.

 

A CHAP azonosítás

A chap-secrets fájl felépítése:

 

kliens gép                kiszolgáló gép                         titok                          IP cím

samson.nitro.hu       dataender.bp.hu                     "haho"                     samson.nitro.hu

dataender.bp.hu     samson.nitro.hu                      "namivan"               dataender.bp.hu

 

A chap azonosítás során ha a távoli gép azonosításra szólít fel bennünket, akkor a pppd megkeresi a chap-secrets fájlban azt az első sort, ahol a kliens mezőben a mi gépünk neve szerepel, a kiszolgáló mezőben a távoli gép neve. A titok alapján összeállít egy kódolt üzenetet a kiszolgáló számára és elküldi.

Ugyanakkor elküld egy másik üzenetet is neki, hogy azonosítsa magát ő is. Ezt úgy teszi meg, hogy kikeresi ugyanebből a fájlból azt az első sort, amiben a távoli gép szerepel kliensként, és a mi gépünk a kiszolgáló. A választ szintén ugyanebből a sorból tudja ellenőrizni. Ha megfelelő, akkor létrejön a kapcsolat. Tehát itt a jelszavak kódolva mennek át a telefon vonalon. A másik biztonságot fokozó tényező, hogy ezt az ellenőrzést többször megteszik menet közben is, nehogy valaki átvegye a másik gép szerepét. Használjunk teljesen minősített gépneveket!

 

Kapcsolatok konfigurálása

 

Az egyes bekonfigurált kapcsolatok a peers könyvtárban vannak egy-egy fájlban.

Debianban mindig van egy gyárilag bekonfigurált fájl, amit nyugodtan használhatunk mintának a saját kapcsolatunkhoz.

Ezekben a fájlokban is használhatóak azok az opciók, amik az options fájlban vannak. Itt kapcsolatonként felülbírálhatjuk őket.

Egy kapcsolat fájl a peers könyvtárból:

 

# This file was generated by pppconfig.  You can edit the following lines      

# but please do not delete lines or the change the comments or you will        

# confuse pppconfig.                                                           

noauth         #pppconfig_noauth                                               

connect "/usr/sbin/chat -v -f /etc/chatscripts/szolgáltatóm"  #pppconfig_connec

debug          #pppconfig_debug                                                

/dev/ttyS1       #pppconfig_dev                                                

115200      #pppconfig_speed                                                    

defaultroute         #pppconfig_route                                          

noipdefault     #pppconfig_ipdefault                                           

user felhasznevem  #pppconfig_user                                              

# End of pppconfig controlled lines.  You can add lines below here without     

# confusing pppconfig.

 

Ha egy kapcsolat felépül, akkor az ip-up fájlban lévő programok automatikusan végrehajtódnak. Ide bármit írhatunk, amit azt akarjuk, hogy a kapcsolat felépülésekor végrehajtódjon. Alapbeállítás szerint beállít pár környezeti változót és meghívja az ip-up.d könyvtárban lévő programokat.

 

 

 

 

 

Egy ip-up fájl:

#!/bin/sh                                                                      

#                                                                              

# $Id: ip-up,v 1.2 1998/02/10 21:25:34 phil Exp $                              

#                                                                              

# This script is run by the pppd after the link is established.                

# It uses run-parts to run scripts in /etc/ppp/ip-up.d, so to add routes,      

# set IP address, run the mailq etc. you should create script(s) there.        

#                                                                              

# Be aware that other packages may include /etc/ppp/ip-up.d scripts (named     

# after that package), so choose local script names with that in mind.         

#                                                                              

# This script is called with the following arguments:                          

#    Arg  Name                          Example                                

#    $1   Interface name                ppp0                                   

#    $2   The tty                       ttyS1                                  

#    $3   The link speed                38400                                  

#    $4   Local IP number               12.34.56.78                            

#    $5   Peer  IP number               12.34.56.99                            

#    $6   Optional ``ipparam'' value    foo                                    

                                                                               

# The  environment is cleared before executing this script                     

# so the path must be reset                                                     

PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin

export PATH                                                             

# These variables are for the use of the scripts run by run-parts       

PPP_IFACE="$1"                                                          

PPP_TTY="$2"                                                            

PPP_SPEED="$3"                                                          

PPP_LOCAL="$4"                                                           

PPP_REMOTE="$5"                                                         

PPP_IPPARAM="$6"                                                        

export PPP_IFACE PPP_TTY PPP_SPEED PPP_LOCAL PPP_REMOTE PPP_IPPARAM      

# as an additional convenience, $PPP_TTYNAME is set to the tty name,    

# stripped of /dev/ (if present) for easier matching.                   

PPP_TTYNAME=`/usr/bin/basename "$2"`                                    

export PPP_TTYNAME                                                       

                                                                        

# Main Script starts here                                               

                                                                         

run-parts /etc/ppp/ip-up.d                                              

# last line

Ugyanígy, ha a kapcsolat lebomlik, akkor az ip-down fájlban lévő programok hajtódnak végre. (pl így lehet a fetchmailt rábírni, hogyha a kapcsolat felépült, akkor szedje össze a leveleket, vagy kérhetünk pontos időt egy timeserver-ről, megmondhatjuk a levelező szerverünknek, hogy kezdje el kiüríteni a levélsort, stb)

Egy ip-down fájl:

 

#!/bin/sh                                                                    

#                                                                            

# $Id: ip-down,v 1.2 1998/02/10 21:21:55 phil Exp $                          

#                                                                            

# This script is run by the pppd _after_ the link is brought down.           

# It uses run-parts to run scripts in /etc/ppp/ip-down.d, so to delete       

# routes, unset IP addresses etc. you should create script(s) there.         

#                                                                            

# Be aware that other packages may include /etc/ppp/ip-down.d scripts (named 

# after that package), so choose local script names with that in mind.       

#                                                                            

# This script is called with the following arguments:                         

#    Arg  Name                          Example                              

#    $1   Interface name                ppp0                                 

#    $2   The tty                       ttyS1                                

#    $3   The link speed                38400                                

#    $4   Local IP number               12.34.56.78                          

#    $5   Peer  IP number               12.34.56.99                          

#    $6   Optional ``ipparam'' value    foo                                  

                                                                             

# The  environment is cleared before executing this script                   

# so the path must be reset

PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin        

export PATH                                                              

# These variables are for the use of the scripts run by run-parts        

PPP_IFACE="$1"                                                            

PPP_TTY="$2"                                                             

PPP_SPEED="$3"                                                           

PPP_LOCAL="$4"                                                           

PPP_REMOTE="$5"                                                          

PPP_IPPARAM="$6"                                                         

export PPP_IFACE PPP_TTY PPP_SPEED PPP_LOCAL PPP_REMOTE PPP_IPPARAM      

                                                                          

# as an additional convienince, $PPP_TTYNAME is set to the tty name,     

# stripped of /dev/ (if present) for easier matching.                    

PPP_TTYNAME=`/usr/bin/basename "$2"`                                      

export PPP_TTYNAME                                                       

                                                                         

# Main Script starts here                                                

                                                                          

run-parts /etc/ppp/ip-down.d                                             

                                                                         

# last line

 

 (A debianban ez kibővül az ip-up.d és ip-down.d könyvtárakkal. Az ezekben lévő programokat szintén meghívja az ip-up és ip-down fájlok utolsó sora.) A példában éppen a leveleinket kezeljük. (Először kiürítjük a sort, majd a fetchmail programmal összeszedjük a más szervereken tárolt leveleket.)

Az ip-up.d könyvtár most 2 fájlt tartalmaz:

goliat:/etc/ppp/ip-up.d# ls  

exim

fetchmail

goliat:/etc/ppp/ip-up.d#

 

A levél sor kiürítése így néz ki:

 

goliat:/etc/ppp/ip-up.d# less exim  

#!/bin/sh                            

                                    

# Flush exim queue                  

if [ -x /usr/sbin/exim ]; then      

        /usr/sbin/exim -qf          

fi                                  

exim (END)

 

A legfontosabb pppd konfigurációs fájlok után nézzük a kapcsolatfelvételt végző chat szkriptet. (Erre hivatkozás a peers könyvtár fájljaiban van:

connect "/usr/sbin/chat -v -f /etc/chatscripts/provider"

Ez mutatja, hogy alapesetben a /etc/chatscripts/provider fájlt használja, de persze módosíthatjuk. A /etc/chatscripts könyvtár tartalmazhat több ilyen szkriptet is.

 

ABORT        BUSY                        

ABORT        "NO CARRIER"                

ABORT        VOICE                       

ABORT        "NO DIALTONE"               

""           ATDT06,22345654

ogin         envagyok       

word         jojelszo

 

Az ABORT kezdetű sorok megadják a modemnek, hogy milyen események hatására kell megszakítani a vonalat.

Az ATDT után meg kell adni a telefonszámot.

A ’ogin’ és a ’word’ után pedig a felhasználónév és a jelszó következik. Ha nem sikerül felvenni a kapcsolatot, akkor lehet, hogy a túloldal az ’ogin’ kifejezés helyett ’sername’ kifejezést vár.

 

A pppconfig program

A fenti fájlokat disztribúciótól függően rengeteg féle módon előállíthatjuk. Ezeknek a feladata mindenütt a leírt fájlok előállítása. Egyet ezek közül megnézünk részletesebben.

A debian disztribúcióban a pppconfig programot használhatjuk a ppp kapcsolatunk beállítására. Használata végtelenül egyszerű, és tiszta képet ad a folyamatról.

 

Debian GNU/Linux PPP Configuration Utility                                      

+--------------------------------¦ Main Menu +---------------------------------+

¦ This is the PPP configuration utility.  It does not make a connection to                                            ¦

¦ your ISP: it just configures your system so that you can connect with a                                         ¦

¦ utility such as 'pon'. You will be asked for the username, password, and                                       ¦

¦ phone number that your ISP gave you.  If your ISP uses PAP or CHAP, that is                           ¦

¦ all you need.  If you need to use a chat script to connect, you will need                                        ¦

¦ to know how your ISP prompts for your username and password.  If you don't                            ¦

¦ know what your ISP uses, try PAP.                                                                                              ¦

¦                                                                                                                                                      ¦

¦ Use the up and down arrow keys to move around the menus.  Use the TAB key                         ¦

¦ to move from the menu to <OK> to <CANCEL> and back.  When you are ready to                      ¦

¦ move on to the next menu go to <OK> and hit enter.  To go back to the main                                ¦

¦ menu go to <CANCEL> and hit enter.                                                                                           ¦

¦                                                                                                                                                      ¦

¦                       Next    Create a connection                                                                                     ¦

¦                                                                                                                 ¦

¦                       Create  Create a connection                                                 ¦

¦                       Quit    Exit this utility                                                           ¦

¦                                                                                                                 ¦

¦                     <Ok>                         <Cancel>                                             ¦

¦                                                                                                                                                      ¦

A program indítása után a fenti menürendszer fogad bennünket. Válasszuk a Create a connection menüpontot. (Mindig felajánlja a következő értelmes lépést „Next”.)

 

Debian GNU/Linux PPP Configuration Utility                                     

+------------------------------¦ Provider Name +-------------------------------+

¦ Enter the name you wish to use to refer to this ISP.  You will probably                             ¦

¦ want to give the default name of 'provider' to your primary ISP.  That way,                      ¦

¦ you can dial it by just giving the command 'pon'.  Give each additional isp                        ¦

¦ a unique name.  For example, you might call your employer 'theoffice' and                      ¦

¦ your university 'theschool'.  Then you can connect to your ISP with 'pon',                       ¦

¦ your office with 'pon theoffice', and your university with 'pon theschool'.                            ¦

¦                                                                                                                                          ¦

¦ szolgáltatóm_______________________________________________                        ¦

¦                                                                                                                                          ¦

¦                     <Ok>                         <Cancel>                                                                    ¦

¦                                                                                                                                          ¦

+------------------------------------------------------------------------------+

 

Írjuk be a készítendő kapcsolat nevét, amivel majd hivatkozunk rá. (Ilyen néven fognak megjelenni a rá vonatkozó konfigurációs fájlok is a peers könyvtárban és a chatscripts könyvtárban.)

 

Debian GNU/Linux PPP Configuration Utility                                      

+----------------------------¦ Create Connection +-----------------------------+

¦ Please select the authentication method for this connection.  PAP is the                                   ¦

¦ method most often used in Windows 95, so if your ISP supports the NT or                              ¦

¦ Win95 dial-up client, try "PAP".                                                                                               ¦

¦                                                                                                                                                ¦

¦           PAP   Password Authentication Protocol                                                                       ¦

¦           Chat  Use "chat" for login:/password: authentication                                                      ¦

¦           CHAP  Challenge Handshake Authentication Protocol                                                  ¦

¦                                                                                                                                                ¦

¦           Quit  Exit this utility                                                                                                         ¦

¦                                                                                                                                                ¦

¦                                                                                                                                                ¦

¦                                                                                                                                                ¦

¦                     <Ok>                         <Cancel>                                                                           ¦

¦                                                                                                                                                ¦

Ezek után ki kell választani az azonosítási eljárást. A leggyakoribb a PAP azonosítás. Ha nem kérjük, akkor választhatunk még erősebb chap azonosítást és a chat szkriptet is megkérhetjük, hogy küldje át a login és jelszó párosunkat.

 

Debian GNU/Linux PPP Configuration Utility                                     

+------------------------------¦ Enter Password +------------------------------+

¦ Backspace over the placeholder string and enter the password your ISP gave                     ¦

¦ you.  If your password includes any space or punctuation marks enclose it                            ¦

¦ in single quotes like this: 'a !@# weird password'.                                                                   ¦

¦                                                                                                                                                ¦

¦ enjelszom______________________________                                                                    ¦

¦                                                                                                                                                ¦

¦                                                                                                                                                ¦

¦                                                                                                                                                ¦

¦                     <Ok>                         <Cancel>                                                                           ¦

¦                                                                                                                                                ¦

+------------------------------------------------------------------------------+

 

Ez után be kell írni a kapcsolat felvételéhez szükséges jelszót.

 

Debian GNU/Linux PPP Configuration Utility                                      

+------------------------------¦ Configuration +-------------------------------+

¦                                                                                                                                                ¦

¦ Now you will configure some basic connection properties.                                                      ¦

¦                                                                                                                                                ¦

¦                                                                                                                                                ¦

¦                                                                                                                                                ¦

¦                                    <Ok>                                                                                                    ¦

¦                                                                                                                                                ¦

+------------------------------------------------------------------------------+

 

A következő képernyőn a gép közli velünk, hogy néhány alapvető, a kapcsolat megteremtéséhez szükséges beállítás következik.

 

Debian GNU/Linux PPP Configuration Utility                                      

+------------------------¦ Manage User Configuration +-------------------------+

¦ Backspace over the placeholder string and enter the username given to you                         ¦

¦ by your ISP. If your username includes any space or punctuation marks                               ¦

¦ enclose it in single quotes like this: 'a !@# weird name'                                                           ¦

¦                                                                                                                                                ¦

¦ felhasznevem___________________________                                                                    ¦

¦                                                                                                                                                ¦

¦                                                                                                                                                ¦

¦                                                                                                                                                ¦

¦                     <Ok>                         <Cancel>                                                                           ¦

¦                                                                                                                                                ¦

+------------------------------------------------------------------------------+

 

Itt meg kell adni a felhasználói nevet.

 

Debian GNU/Linux PPP Configuration Utility                                     

+------------------------¦ Manage Port Configuration +-------------------------+

¦ Enter the port your modem is on.                                             ¦

¦ /dev/ttyS0 is COM1 in DOS                                                    ¦

¦ /dev/ttyS1 is COM2 in DOS                                                    ¦

¦ /dev/ttyS2 is COM3 in DOS                                                    ¦

¦ /dev/ttyS3 is COM4 in DOS                                                    ¦

¦ /dev/ttyS1 is the most common.  Note that this must be typed exactly as      ¦

¦ shown.  Capitalization is important: ttyS1 is not the same as ttys1.         ¦

¦                                                                              ¦

¦ /dev/ttyS1__________________________________________________________________ ¦

¦                                                                              ¦

¦                                                                              ¦

¦                     <Ok>                         <Cancel>                    ¦

¦                                                                              ¦

+------------------------------------------------------------------------------+

 

Most a modem helyét kell megadni.

 

 

Debian GNU/Linux PPP Configuration Utility                                     

+------------------------------¦ Default Route +-------------------------------+

¦ Enabling default routing tells your system that the way to reach hosts to    ¦

¦ which it is not directly connected is via your ISP. This is almost certainly ¦

¦ what you want.  Use the up and down arrow keys to move among the selections, ¦

¦ and press  the spacebar to select one.  When you are finished, use TAB to    ¦

¦ select <OK> and ENTER to move on to the next item.                           ¦

¦                                                                              ¦

¦    (*) defaultroute     Enable default route                                 ¦

¦    ( ) "-defaultroute"  Disable default route                                ¦

¦                                                                              ¦

¦                                                                              ¦

¦                                                                              ¦

¦                     <Ok>                         <Cancel>                    ¦

¦                                                                              ¦

+------------------------------------------------------------------------------+

 

Ha azt akarjuk, hogy az alapútvonal a modem legyen a kapcsolat felépülése után, akkor válasszuk a defaultroute opciót. (Ez célszerű, ha az internetet csak a modemen keresztül érjük el. Akkor is ezt állítsuk be, ha egy egész hálózat ezen keresztül éri el az internetet.)

 

Debian GNU/Linux PPP Configuration Utility                                     

+--------------------------------¦ Ip numbers +--------------------------------+

¦ You almost certainly do not want to change this from the default value of                                 ¦

¦ noipdefault.  This not the place for your nameserver ip numbers.  It is the                               ¦

¦ place for your ip number if and only if your ISP has assigned you a static                              ¦

¦ one.  If you have been given only a local static ip, enter it with a colon                                   ¦

¦ at the end, like this: 192.168.1.2: . If you have been given both a local                                   ¦

¦ and a remote ip, enter the local ip, a colon, and the remote ip, like this:                                   ¦

¦ 192.168.1.2:10.203.1.2 .                                                                                                        ¦

¦                                                                                                                                                ¦

¦ noipdefault_____________________________                                                                    ¦

¦                                                                                                                                                ¦

¦                                                                                                                                                ¦

¦                                                                                                                                                ¦

¦                     <Ok>                         <Cancel>                                                                           ¦

¦                                                                                                                                                ¦

+------------------------------------------------------------------------------+

 

Fontos opció az IP cím hozzárendelés. A legtöbb szolgáltató automatikusan a modemünkhöz rendel egy IP-t, ha felépítjük vele a ppp kapcsolatot. Ha ilyen szolgáltatónk van, akkor a noipdefault opció megfelelő. A 2.2-es kernel új szolgáltatása, hogy képes automatikusan felvenni a kapcsolatot a modem, ha arra szükség van. Ekkor meg kell adni a modemünk helyi IP címét és a szolgáltató távoli IP címét egymástól kettősponttal elválasztva.

 

Debian GNU/Linux PPP Configuration Utility                                     

+--------------------------------¦ Set Speed +---------------------------------+

¦ Enter your modem port speed (e.g. 9600, 19200, 38400, 115200).                                       ¦

¦ suggest that you leave it at 115200.                                                                                        ¦

¦                                                                                                                                                ¦

¦ 115200________________________________                                                                   ¦

¦                                                                                                                                                ¦

¦                                                                                                                                                ¦

¦                                                                                                                                                ¦

¦                     <Ok>                         <Cancel>                                                                           ¦

¦                                                                                                                                                ¦

+------------------------------------------------------------------------------+

 

Most a modem és a gép közötti sebességet kell megadni. A mai modemeknél az alapbeállítás megfelelő.

 

Debian GNU/Linux PPP Configuration Utility                                     

+---------------------------¦ Modem Intialization +----------------------------+

¦ Enter modem intialization string.  The default value is ATZ, which tells                                     ¦

¦ the modem to use its default settings.  As most modems are shipped from                                ¦

¦ the factory with default settings that are appropriate for ppp, I suggest                                     ¦

¦ you not change this.                                                                                                                ¦

¦                                                                                                                                                ¦

¦ ATZ__________________________________                                                                    ¦

¦                                                                                                                                                ¦

¦                                                                                                                                                ¦

¦                     <Ok>                         <Cancel>                                                                           ¦

¦                                                                                                                                                ¦

+------------------------------------------------------------------------------+

 

A modem inicializációjára szolgáló parancsot kell beütni. Jó modem esetén megfelel az alapbeállítás.

 

Debian GNU/Linux PPP Configuration Utility                                     

+------------------------------¦ Number to dial +------------------------------+

¦ Backspace over the placeholder string and enter the number to dial.  Don\'t                           |

¦ insert any dashes or spaces.  See your modem manual if you need to do                              ¦

¦ anything unusual like dialing through a PBX.                                                                          ¦

¦                                                                                                                                                ¦

¦ 06,51345234___________________________                                                                    ¦

¦                                                                                                                                                ¦

¦                                                                                                                                                ¦

¦                     <Ok>                         <Cancel>                                                                           ¦

¦                                                                                                                                                ¦

Írjuk be a tárcsázandó telefonszámot.

 

Debian GNU/Linux PPP Configuration Utility                                     

+------------------------------¦ Tone or Pulse +-------------------------------+

¦ Select method of dialing. Since almost everyone has touch-tone, you should                          ¦

¦ leave the dialing method set to tone unless you are sure you need                                        ¦

¦ pulse. Use the up and down arrow keys to move among the selections, and                          ¦

¦ press the spacebar to select one. When you are finished, use TAB to                                    ¦

¦ select <OK> and ENTER to move on to the next item.                                                             ¦

¦                                                                                                                                                ¦

¦    (*) ATDT  tone                                                                                                                     ¦

¦    ( ) ATDP  pulse                                                                                                                   ¦

¦                                                                                                                                                ¦

¦                                                                                                                                                ¦

¦                                                                                                                                                ¦

¦                     <Ok>                         <Cancel>                                                                           ¦

¦                                                                                                                                                ¦

+------------------------------------------------------------------------------+

 

Állítsuk be, hogy a modem pulse, vagy tone módban tárcsázzon.

 

Debian GNU/Linux PPP Configuration Utility                                     

+--------------------------------¦ Properties +--------------------------------+

¦                                                                                                                                                ¦

¦ You will now have the chance to review or change connection properties.                             ¦

¦                                                                                                                                                ¦

¦                                                                                                                                                ¦

¦                                                                                                                                                ¦

¦                                    <Ok>                                                                                                    ¦

¦                                                                                                                                                ¦

+------------------------------------------------------------------------------+

Hát kész is vagyunk.

 

Debian GNU/Linux PPP Configuration Utility                                     

+-----------------------¦ Select A Property To Manage +------------------------+

¦ Please select the property you wish to modify, select "Cancel" to go                                       ¦

¦ back to start over, or select "Finished" to write out the changed                                              ¦

¦ files.                                                                                                                                        ¦

¦            Modeminit     Modem initialization string                                                                        ¦

¦            Number        Telephone number to call                                                                        ¦

¦            User          User name for authentication                                                                      ¦

¦            Password      The password for this connection                                                           ¦

¦            Speed         Port speed for the modem                                                                         ¦

¦            Com           Serial Port the modem is on                                                                       ¦

¦            Defaultroute  Enable or disable default route                                                                ¦

¦            Ipdefault     Set IP addresses                                                                                       ¦

¦            Method        Authentication Method (e.g., PAP)                                                            ¦

¦                                                                                                                                                ¦

¦            Finished      Write files and return to main menu.                                                          ¦

¦            Quit          Exit this utility                                                                                                ¦

¦                                                                                                                                                ¦

¦                                                                                                                                                ¦

¦                     <Ok>                         <Cancel>                                                                           ¦

¦                                                                                                                                                ¦

+------------------------------------------------------------------------------+

 

Az utolsó ablakban még egyszer megnézhetjük, vagy módosíthatjuk beállításinkat. A végén mindenképpen válasszuk a

finished

menüpontot a beállításaink elmentéséhez.

 

Miután a fájlok legfontosabb funkcióit megnéztük, és végignéztünk egy beállító procedúrát, indítsuk el a ppp kapcsolatot.

Kézi indításra és automatikus kapcsolatfelvételre van lehetőségünk.

A kézi indítást a pon parancs kiadásával érhetjük el Debian alatt. Paraméterként adjuk meg az előbb kialakított kapcsolat nevét.

pl.:

pon szolgaltatom

A poff kiadásával a kapcsolatnak vége lesz.

Más disztribúció esetén is van általában egy greafikus felületű program az indításhoz.

Automatikus kapcsolat az új pppd démonnal

Ha automatikus kapcsolatfelvételt szeretnénk, akkor –mint már említettük- a ppp lehetőséget ad erre, de csak ha van fix IP címünk a szolgáltatónál. (Ha nincs, akkor is használható ez a megoldás egy kis hazugsággal.)

Ha megvan a fix IP és a pppconfig-gal ennek megfelelően konfiguráltuk a fájlokat, akkor csak ki kell adni a következő utasítást és máris készen vagyunk:

 

pppd persist demand idle 180 call szolgaltatom

 

A promptot rögtön visszakapjuk és a pppd fut a háttérben. (persist=maradjon aktív, ne lépjen ki; demand=tárcsázzon, ha kell; idle 180= ha nincs hozzáférés 3 percig, akkor kapcsolja le a modemet; szolgaltatom=ezzel vegye fel a kapcsolatot)

Ha nincs fix IP címünk, akkor vegyük fel a kapcsolatot a szolgáltatónkkal valahogy kézi kapcsolással. Például Debian alatt adjuk ki a pon kapcsolatnév parancsot. A kapcsolat felvétele után nézzük meg a szolgáltatónk kapcsolattartó szerverének az IP címét. Ezt írjuk be LOCAL IP-nek. REMOTE IP-ként pedig használjuk a szolgáltatónk NAME SERVER címét. Az automatikus kapcsolat felvételekor a szolgáltató kiigazítja a nyilvánvalóan hibás címeket...

Akinek ez nem tetszik, az használhatja a régebben fejlesztett diald programot is.

Automatikus kapcsolatfelvétel – diald

 

A diald program segítségével kényelmesebbé tehetjük a modemen keresztüli kapcsolatfelvételt. Ha nem akarunk minden modemhasználat esetén kézzel csatlakozni az internetre és nem akarjuk az új pppd-t használni, akkor van lehetőség az automatikus kapcsoaltfelvételre a diald programmal. A modem csak akkor veszi fel a kapcsolatot a szolgáltatóval, ha a rendszerünk nem tudja helyben kielégíteni az adott kérést. Ha bizonyos ideig nincs igény a használatra, akkor lebontja a kapcsolatot.

Ezt a programot már nagyon régóta használhatja a linuxos világ mind analóg modemes, mind ISDN kapcsolat felépítésére. (A két típusú kapcsolat a program különböző változatát igényli.) Fejlesztését már abbahagyták. Minden disztribúcióban megtalálható.

Használatához először telepítsük fel a programot az adott disztribúciónak megfelelően.

Most már csak be kell állítanunk a program konfigurációs állományait. Ebből kettő nagyon fontos van. Az egyik a diald.conf, ami a fő konfigurációs paramétereket tartalmazza, a másik pedig egy tetszőleges, modemes kapcsolatfelvételre alkalmas szkript kell, hogy legyen. A diald.conf általában a /etc könyvtárban kell hogy legyen, mint a legtöbb konfigurációs állomány. Az állományt nekünk kellene létrehozni, de szerencsére a legtöbb disztribúció tartalmaz egy minta állományt, ami gyakorlatilag módosítás nélkül használható. Tehát másoljuk át a /usr/doc/packages/diald könyvtárból a diald.conf fájlt a /etc könyvtárba. (Ennek érdekében pl. adjuk ki a következő parancsot egy terminálablakban. cp /usr/doc/packages/diald/diald.conf /etc)

Egy tetszőleges szövegszerkesztővel lépjünk be a fájlba és nézzük át a beállításokat.

Számunkra a legfontosabb paraméterek:

mode ppp: A diald alaphelyzetben a SLIP interfészt használja. (Ha a programot elindítjuk és kiadjuk az ifconfig parancsot, akkor láthatjuk, hogy tényleg így van.) Ez a bejegyzés utasítja a diald-t, hogy a kapcsolat felépülése után térjen át a modernebb PPP üzemmódra.

connect /usr/lib/diald/connect: Ez a bejegyzés mondja meg a diald-nek, hogy ha tárcsázni kell, akkor melyik szkript fogja ezt elvégezni. A példában szereplő szkript létezik, csak személyre kell szabni néhány paraméterét. Ezt a későbbiekben tárgyaljuk.

device /dev/ttySn: Ez a bejegyzés mondja meg a diald-nek, hogy hol találja a modemet. Célszerű itt a konkrét soros eszközfájl helyett a /dev/modem bejegyzést megtenni a konkrét ttyS0, vagy ttyS1, mert így teljesen mindegy, hol a modem, a konfiguráción nem kell változtatni. (A /dev/modem mindig a megfelelő valódi soros vonali eszközfájlra mutat.)

speed 115200: A soros vonali sebességet mondja meg. Ezt a gépünknek megfelelő értékre változtassuk, de általában nem kell módosítani a beállítást.

 

local és remote: Két darab IP címet látunk itt. Ha dinamikus IP címet kapunk a szolgáltatónktól (márpedig dialup kapcsolat esetén a szolgáltatók 99,5%-a ezt használja) akkor is be kell írni ide két értéket. Nyugodtan hagyjuk meg a gyári beállításokat, mert nincs jelentősége az itt beírt értékeknek.

defaultroute: A kapcsolat felvétele után automatikusan erre az útvonalra állítja be az alapértelmezett útvonalat. Ezzel érjük el, hogy távoli rendszereket a modemen keresztül fogja elérni a gépünk.

Ezen kívül érdemes még megemlíteni a disconnect-timeout és a redial-timeout opciókat.

A disconnect-timeout után tudjuk megadni másodpercekben mérve azt az időt, hogy mikor kapcsoljon ki a modem “üresjárat” esetén. (Alapérték 60 másodperc)

A redial-timeout után lehet megadni azt az időt, hogy mennyi idő után tárcsázzon újra sikertelen kapcsolat, vagy vonalbontás esetén. (Alapérték 30 másodperc.)

accounting-log /var/log/diald.log: Ha használjuk az accounting-log opciót, akkor a megadott fájlba naplózza az internetre kapcsolódásaink eseményeit.

ip-up /usr/lib/diald/every-conn: Ha az ip-up opció után megadunk egy fájlt, akkor minden kapcsolódáskor lefutnak a benne lévő parancsok.

 

Ezek után nézzük meg a kapcsolatlétesítő szkriptet. Alapértelmezés a SuSE esetében a /usr/lib/diald/connect szkript lesz.

Ebben a szkriptben szigorúan csak a kapcsolat felvételre szorítkozunk. A MODEM_INIT paramétert hagyhatjuk alaphelyzetben, de ha van egy jól bevált sztringünk, akkor használhatjuk ezt is.

A PHONE_NUMBER paramáternél adjuk meg a telefonszámot. Ha kell, akkor vesszőkkel válasszuk le a külső vonal eléréséhez szükséges számot és a külső körzet eléréséhez szükséges számokat.

USER_NAME paraméter határozza meg a felhasználói nevet

PASSWORD paraméterhez a jelszót írjuk.

PROMPT, PROTOCOL_START, START_ACK paramétereket először “kommentezzük ki” egy # jellel és csak ha nem működik megfelelően a kapcsolatfelvételünk, akkor írjuk vissza megfelelő formában őket.

Ezek után már csak a névkiszolgáló beállításainkat kell leellenőrizni. Ha nincsen saját jól beállított névkiszolgálónk, akkor is állítsunk be egyet, amit az internet szolgáltatónk bocsát rendelkezésünkre. Ha van saját, akkor ne felejtkezzünk el a forwarders opcióról, mert egyébként nem helyi cím estén nem fog névfeloldást végezni, tehát nincs ami beindítsa a diald-t a tárcsázásra!

 

#!/bin/sh

# Copyright (c) 1996, Eric Schenk.

#

# This script is intended to give an example of a connection script that

# uses the "message" facility of diald to communicate progress through

# the dialing process to a diald monitoring program such as dctrl or diald-top.

# It also reports progress to the system logs. This can be useful if you

# are seeing failed attempts to connect and you want to know when and why

# they are failing.

#

# This script requires the use of chat-1.9 or greater for full

# functionality. It should work with older versions of chat,

# but it will not be able to report the reason for a connection failure.

 

# Configuration parameters

 

# The initialization string for your modem

 

MODEM_INIT="ATZ&C1&D2%C0"

 

# The phone number to dial

PHONE_NUMBER="06,40456789"

 

# The chat sequence to recognize that the remote system

# is asking for your user name.

USER_CHAT_SEQ="name:--name:--name:--name:--name:--name:--name:"

 

# The string to send in response to the request for your user name.

USER_NAME="enloginom"

 

# The chat sequence to recongnize that the remote system

# is asking for your password.

PASSWD_CHAT_SEQ="word:"

 

# The string to send in response to the request for your password.

PASSWORD="enjelszom"

 

# The prompt the remote system will give once you are logged in

# If you do not define this then the script will assume that

# there is no command to be issued to start up the remote protocol.

###PROMPT="annex:"

# The command to issue to start up the remote protocol

###PROTOCOL_START="ppp"

 

# The string to wait for to see that the protocol on the remote

# end started OK. If this is empty then no check will be performed.

###START_ACK="Switching to PPP."

 

# Pass a message on to diald and the system logs.

function message () {

[ $FIFO ] && echo "message $*" >$FIFO

logger -p local2.info -t connect "$*"

}

 

# Initialize the modem. Usually this just resets it.

message "Initializing Modem"

chat TIMEOUT 5 "" $MODEM_INIT TIMEOUT 45 OK ""

if [ $? != 0 ]; then

    message "Failed to initialize modem"

    exit 1

fi

 

# Dial the remote system.

 

message "Dialing system"

chat \

      TIMEOUT 45 \

      ABORT "NO CARRIER" \

      ABORT BUSY \

      ABORT "NO DIALTONE" \

      ABORT ERROR \

      "" ATDT$PHONE_NUMBER \

      CONNECT ""

case $? in

   0) message Connected;;

   1) message "Chat Error"; exit 1;;

   2) message "Chat Script Error"; exit 1;;

   3) message "Chat Timeout"; exit 1;;

   4) message "No Carrier"; exit 1;;

   5) message "Busy"; exit 1;;

   6) message "No DialTone"; exit 1;;

   7) message "Modem Error"; exit 1;;

   *)

esac

 

# We're connected try to log in.

message "Loggin in"

chat \

      TIMEOUT 5 \

      $USER_CHAT_SEQ \\q$USER_NAME \

      TIMEOUT 45 \

      $PASSWD_CHAT_SEQ $PASSWORD

if [ $? != 0 ]; then

    message "Failed to log in"

    exit 1

fi

 

# We logged in, try to start up the protocol (provided that the

# user has specified how to do this)

 

if [ $PROMPT ]; then

    message "Starting Comm Protocol"

    chat TIMEOUT 15 $PROMPT $PROTOCOL_START

    if [ $? != 0 ]; then

        message "Prompt not received"

        exit 1

    fi

fi

 

if [ $START_ACK ]; then

    chat TIMEOUT 15 $START_ACK ""

    if [ $? != 0 ]; then

      message "Failed to start Protocol"

      exit 1

    fi

fi

 

# Success!

message "Protocol started"

 

 

Ha ez is megvan, akkor már csak el kell indítani a diald programot. Az egyszerűség kedvéért indítás előtt adjuk ki az ifconfig parancsot. Most egy ilyet kell látnunk (ha van eth0 hálózati kártyánk is beállítva):

eth0 Link encap:Ethernet  HWaddr 00:48:45:00:0E:AC 

     inet addr:192.168.1.1  Bcast:192.168.1.255

     Mask:255.255.255.0

     UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

     RX packets:0 errors:0 dropped:0 overruns:0 frame:0

     TX packets:68 errors:0 dropped:0 overruns:0 carrier:0

     collisions:0 txqueuelen:100

     Interrupt:11 Base address:0xe400

 

lo   Link encap:Local Loopback 

     inet addr:127.0.0.1  Mask:255.0.0.0

     UP LOOPBACK RUNNING  MTU:3924  Metric:1

     RX packets:172 errors:0 dropped:0 overruns:0 frame:0

 

Ezek után adjuk ki a diald parancsot. A promptot rögtön visszakapjuk.

Most is adjuk ki az ifconfig parancsot. Most valami ilyesmit kell látnunk:

eth0  Link encap:Ethernet  HWaddr 00:48:45:00:0E:AC 

      inet addr:192.168.1.1  Bcast:192.168.1.255

      Mask:255.255.255.0

      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

      RX packets:0 errors:0 dropped:0 overruns:0 frame:0

      TX packets:68 errors:0 dropped:0 overruns:0 carrier:0

      collisions:0 txqueuelen:100

      Interrupt:11 Base address:0xe400

 

lo    Link encap:Local Loopback 

      inet addr:127.0.0.1  Mask:255.0.0.0

      UP LOOPBACK RUNNING  MTU:3924  Metric:1

      RX packets:172 errors:0 dropped:0 overruns:0 frame:0

      TX packets:172 errors:0 dropped:0 overruns:0 carrier:0

      collisions:0 txqueuelen:0

 

sl0   Link encap:Serial Line IP 

      inet addr:127.0.0.2  P-t-P:127.0.0.3

      Mask:255.255.255.255

      UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500

      Metric:1

      RX packets:0 errors:0 dropped:0 overruns:0 frame:0

      TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

      collisions:0 txqueuelen:10

 

 

 

Ha így van, akkor készen vagyunk. Most ellenőrzés képpen próbáljunk pingelni, vagy telnetelni, vagy böngészővel elérni egy távoli gépet. Ha jól dolgoztunk, akkor a modem rögtön tárcsáz és máris használhatjuk a szupersztrádát.

 

PPP szerver

Az eddigiekben megnéztük, mit kell tenni, ha a ppp-t kliens oldalon használjuk.

Hogyan építsünk olyan gépet, ami ppp szerverként működik. Tehát arra van szükségünk, hogy modemen keresztül fel lehessen hívni és a szokásos IP feletti szolgáltatásokat nyújtsa.

 

Először is azt kell biztosítani, hogy a modemünk válaszoljon a telefonon érkező hívásra. Ez elég egyszerű, mindössze a /etc/inittab-ban kell megnézni, hogy szerepel-e a következő sor:

 

T3:23:respawn:/sbin/mgetty -x0 -s 115200 /dev/modem

 

ahol disztribúciótól függően esetleg módosítani kell az mgetty program helyét, modemtől függően a vonalsebességet (9600-115200) és a /dev/modem a megfelelő soros porta mutató link legyen.

Ez után létrehozunk egy pppuser nevű felhasználót.

A jelszó megadása után meg kellene editálni egy kicsit a /etc/passwd fájlt, hogy ne egy shellt kapjon belépéskor, hanem egy általunk elkészített speciális szkriptet (pl legyen a /usr/sbin/ppplogin, aminek a tartalma az alábbiakban le van írva). Ennek a funkciója, hogy a kapcsoltat felvétele és a bejelentkezés után felépítse a ppp kapcsolatot és a kommunikáció már a ppp-n történjen.

Tehát az /etc/passwd fájlban végezzük el a következő módosítást:

 

pppuser:x:1004:1004:Modem User ,,,:/home/pppuser:/usr/sbin/ppplogin

A /usr/sbin/ppplogin így nézzen ki:

 

#!/bin/bash

mesg n

stty -echo

exec sudo pppd -detach silent modem crtscts

 

Ennek a szkriptnek futtathatónak kell lenni. (r-xr-xr-x)

A sorok jelentése:

A shellnek szóló parancsok

A felhasználók nem írhatnak a tty-ra

A visszhangot kikapcsoljuk

Az utolsó sor pedig elindítja a pppd-t. Nem engedjük, hogy bontsa a vonalat (-detach). Várakoztatjuk egy csomag megérkezéséig, mielőtt ő küldene (silent). A modem opció mindig kell, amikor a ppp-t modemmel használjuk. (Meghajtja a soros port modemvezérlő vonalait.) A crtscts bekapcsolja a hardver szinkronizálását. Az options fájl egyáb opciói természetesen ilyenkor is élnek.

 

A pppd program indítása root jogosultsággal lehetséges. Ezért használjuk az „exec sudo pppd” megoldást. Ahhoz hogy ez működjön, a /etc/sudoers fájlban jelen kell lenni a következő sornak:

 

pppuser goliat=NOPASSWD: /usr/sbin/pppd

 

Ami azt jelenti, hogy a goliaton (a modemes szerver gép) a pppuser felhasználó jelszó megadása nélkül root jogosultsággal használhatja a pppd programot.

Már csak a /etc/ppp/pap-secrets fájlt kell megszerkeszteni, hogy benne legyen a következő sor:

*       goliat  ""      *

Ez azért kell, hogy bármely felhasználó elérhesse a goliat nevű gépet bárhonnan, használva a szabványosan megadott jelszavát és a /etc/passwd fájlt.

Most már csak az van hátra, hogy a kliens gép modem interfészének megfelelő IP-je legyen. A legegyszerűbb, ha kiosztunk neki egy IP-t abból a címtartományból, amiben a modemes szerver ethernet kártyája is van. Tehát történetesen egy win9x-es gépen a sajátgép/telefonos hálózat/ehhez tartozó csatlakozás/tulajdonságok lapja (jobb egérgomb klikk)/kiszolgálótípusok/TCPIP beállítások/IP cím megadása helyen be kell írni az ethernet kártya IP címét és kötelezzük a felhasználóinkat erre.


A bootp használata

 

Ha gondosan felépítettünk egy IP-re épülő intranet hálózatot, megterveztük az alhálózatainkat és fáradságos munkával végigjártuk az összes munkahelyet és elvégeztük a szükséges beállításokat, akkor nagy bosszúságot és sok új munkaórát tud okozni bármilyen módosítás a rendszerben. Ha a hagyományos utat követjük, akkor újra végig kell járni a munkahelyeket és elvégezni a módosításokat.

Ennek elkerülésére egy lehetséges megoldás lehet a boot protokoll használata. Használatával lehetőségünk van egy munkaállomás szinte minden szükséges hálózati beállítását egy központi helyről adminisztrálni. Működésének eredménye bizonyos szempontból hasonló a hagyományos windows-os környezetben elterjedt dhcp (Dynamic  Host  Configuration  Protocol) megoldáshoz. A különbség annyi, hogy míg egy DHCP kliens minden egyes kapcsolat megteremtésekor más IP címet kap (éppen ez a DHCP lényege, hogy ne foglalja be nem kapcsolt gép az IP tartományt) és ebből következően nehezen beazonosítható, a bootp-n keresztül kapcsolódó kliens minden egyes alkalommal ugyanazon az IP-n kapcsolódik és így jól nyomon követhető. Gyakorlatilag teljesen úgy viselkedik, mintha a kliens gépen statikusan be lenne állítva az IP hálózati adminisztrációs rész, csak megvan az a kényelmi szolgáltatás, hogy egy helyről, központilag adminisztrálható az egész hálózat, anélkül, hogy a felhasználók bármit is tudnának az egészről. (Persze aki akarja a linuxon is használhatja a dhcp-t, hiszen megtalálható mind a szerver oldali, mind a kliens oldali csomag bármelyik disztribúcióban.)

A linuxon felépített bootp szervert használhatjuk linuxos, más unixos és természetesen hagyományos windows-os munkaállomások kiszolgálására is. (A windows-os munkaállomások számára a bootp szerverünk mint egy windows-os DHCP szerver fog megjelenni.)

A bootp másik nagyon fontos felhasználási területe a diszk nélküli terminálok kiszolgálása. Ha rendszerünket diszk nélküli (persze diszkkel együtt is lehet) terminálokból, vagy X-terminálokból akarjuk összeállítani, akkor a terminálok indítása nem a szokványos módon történik. (Nem egyszerűen bekapcsoljuk a gépeket és a merevlemezükről bebootolnak, mivel lehet, hogy nincs is merevlemezük.) Ilyenkor általában a terminálok hálózati kártyáján található boot eprom segítségével (az ebbe égetett kernel segítségével) arra képes lesz a gép, hogy a hálózaton elérje azt a szervert, amin megtalálja a neki szükséges hálózati információkat és a többi, működéshez szükséges adatot. Ebben az esetben a legszükségesebb információkat a bootp szervertől kapja a kliens gép (a terminál).

Konfigurálása és indítása nagyon egyszerű.

A bootptab konfigurációs fájl

Működéséhez egyetlen konfigurációs fájlt kell elkészíteni. Ez alapértelmezés szerint a /etc/bootptab fájl.

Nézzünk meg egy lehetséges fájl részletét:

 

#                                                                               

# Boopt server config/database file.                                           

# 8 may 1997 by Root                                                           

#                                                                               

#                                                                              

# These are global definitons.                                                 

#                                                                               

.global:dn=nitro.hu:gw=192.168.1.1:ds=192.168.1.1:hn:ht=ethernet:sm=255.255.255.0:to=-3600:

#                                                                              

# These are the hosts' own config data                                          

#

billygate:ip=192.168.1.9:ha=0x02C00C229584:tc=.global:                         

feri:ip=192.168.1.11:ha=0x00E229062C46:tc=.global:                             

pisti:ip=192.168.1.12:ha=0x0048450038CE:tc=.global:                             

tamara:ip=192.168.1.18:ha=0x00E029062728:tc=.global:                           

viki:ip=192.168.1.23:ha=0x00E029062CA3:tc=.global:                             

magdi:ip=192.168.1.34:ha=0x0000C00730F7:tc=.global:                             

ani:ip=192.168.1.18:ha=0x00E029060A60:tc=.global:                              

A fájl láthatóan két részből áll. Az első rész egy általános, több gépnél is felhasználható tulajdonságok csoportja. Ilyen csoportot akár hányat csinálhatunk, és bárhol felhasználhatjuk őket. Azokat a tulajdonságokat érdemes így csoportba szedni, amik több gépnél is megegyeznek és nem akarjuk többször ugyanazt leírni. Ezt egyszerűen elnevezzük valahogy (pl .global-nak), és utána csak a nevével kell hivatkozni rá, amikor fel akarjuk használni valamelyik gépnél.

A második részben az egyes gépekre vonatkozó információk vannak. Minden új sor egy-egy gépet jelent.

A használt címkék:

 

dn:          a domén neve

gw          az átjáró (gateway) gép IP címe

ds           a névkiszolgáló IP címe

hn           nem csak a kliens gép IP címét küldi át a kliensnek a szerver, hanem a hozzá tartozó gépnevet is

ht           a hálózati interfész típusa (ethernet, ethernet3, token-ring, pronet, arcnet, chaos, ax.25)

sm          a géphez tartozó netmaszk

to           a helyi idő eltolódása az UTC-hez képest (másodpercekben mérve)

ip            a gép IP címe

ha           a gép hálózati kártyájának hardveres ethernet címe (minden kártyának van egy gyárilag beégetett, nem megváltoztatható egyedi azonosítója)

tc           a közös tulajdonságokat tartalmazó rész nevét adhatjuk itt meg

Indítás

A szolgáltatás indítása a szokásos két módon történhet. Önálló, mindig futó démonként indítva a bootpd programot, vagy az inetd-t használva. Kis hálózatoknál (kis igénybevételnek kitéve a bootp démont) jó megoldás az inetd-n keresztüli használat. Nagy gépszám esetén és főleg hálózatról bootoló gépek esetén viszont ajánlatosabb a mindig futó változatot használni.

Inetd használata esetén a következő sort írjuk be a /etc/inetd.conf fájlba:

 

bootps dgram udp wait root /usr/sbin/bootpd  bootpd bootptab

 

Önálló futtatás esetén megfelelő megoldás lehet egy

bottpd /etc/bootptab




tartalmú szkript indítása valamelyik rcx.d könyvtárban. Természetesen ezt kézzel is kiadhatjuk és indíthatjuk vele a bootp szolgáltatást.

Ne adjunk meg semmilyen beállítást a TCP/IP lapon


A Network File System használata

 

A UNIX-os világban a fájlok megosztására az NFS rendszert használják. A linuxban ezt a funkciót egy démon és a hozzá tartozó konfigurációs állomány valósítja meg.

 

A démon indítása

A programot a szokásos két módon lehet indítani. Inetd-n keresztül, amikor szükség van rá és kézzel, vagy automatikusan valamelyik rcx.d könyvtárban lévő indítószkript segítségével.

Az utóbbi a hagyományosan elterjedt indítási mód. Minden Linux disztribúcióban van egy indítószkript, amit indíthatunk kézzel (pl DEBIAN-ban:)

 

/etc/init.d/nfs-server start

 

vagy a szkriptre hivatkozhatunk egy linkkel a megfelelő rcx.d könyvtárban is:

 

goliat:~# ls -l /etc/rc3.d/S25nfs-server                                      

lrwxrwxrwx   1 root     root           20 May 31 14:29 /etc/rc3.d/S25nfs-server -> ../init.d/nfs-server

goliat:~#

 

Mivel a program rendszerbetöltéskor is indulhat, ügyelnünk kell arra, hogy csak a portmapper (rpc.portmap) után indítsuk, hiszen a portmapper szükséges az RPC alapú programok port hozzárendeléséhez.

 

Ha inetd-n keresztül akarjuk indítani a szolgáltatást, amikor szükség van rá, akkor a következő két sort vegyük fel a /etc/inetd.conf fájlba:

 

nfs/2 dgram  rpc/udp wait root /usr/sbin/rpc.nfsd rpc.nfsd

nfs/2 stream rpc/tcp wait root /usr/sbin/rpc.nfsd rpc.nfsd

A legfontosabb használható opciók

Bármelyik indítási módot választjuk, lehetőségünk van különböző opciókkal együtt indítani a programot. Általában működik ezek nélkül is, de ha jobban meg akarjuk ismerni a szolgáltató programot, akkor nem árt, ha végignézzük a lehetőségeket.

 

-f (vagy –exports-file) Meghatározza, hogy induláskor a program melyik fájlból vegye a szolgáltatáshoz szükséges információkat. Alapértelmezés szerint a /etc/exports fájlt fogja használni. Ennek felépítését tárgyalni fogjuk.

-d  or --debug                            

A naplózási lehetőségeket terjeszthetjük ki vele a jobb nyomkövetés elérése érdekében.

A d opció után használható lehetőségek:

  call       naplózza az RPC hívásokat

  fhcache a fájlkezelés során a cache használatról kapunk bővebb információt

  auth      Információ az azonosításról

  ugid      Információ a kliens gép user és group aktualizálásához, ha használjuk.

A naplóinformációk a syslogon keresztül tárolódnak, kivéve, ha a démon előtérben fut.

-F (--foreground) A démon normál üzem esetén leválik a terminálról az indítás után, tehát visszakapjuk a promptot és a démon a háttérben fut. Ha ezt az opciót használjuk, akkor a démon előtérben fog futni.

-h (--help) Egy rövid segítséget ad a program használatához.

-l (--log-transfers) Minden kiszolgálást megpróbál naplózni. A naplófájlba bekerül a kliens gép IP-je és a kért fájl neve.

-P portszám A démon alapértelmezés szerinti portszámát lehet vele megváltoztatni. Vegyük észre, hogy alapesetben 2049-es portot használ, ami azt jelenti, hogy nem szükséges a futtatásához root jogosultság.

-v (--version) A program verziószámát adja meg a felhasználónak.

 

Az exports konfigurációs fájl

Egy kliens gépen a szervernek csak azokat a könyvtárait mountolhatjuk be, amik engedélyezve vannak a kliens számára a /etc/exports fájlban.

A fájl formája nagyon egyszerű:

 

könyvtárnév gép(opció,opció,…) gép(opció,…) …

 

Egy lehetséges exports fájl:

 

/                                              samson(rw) tuti(rw,no_root_squash)

/tervek                                    terv*.nitro.hu(rw)

/usr                                         *.nitro.hu(ro) @jok(rw)

/pub                                        (ro,insecure,all_squash)

/pub/private                            (noaccess)

 

Az egyes sorok a következőket jelentik:

A szerver egész könyvtárszerkezetét el lehet érni a samson gépről irható, olvasható módon. A tuti gépről szintén írható olvasható módon de ezen felül, ha a kliens root jogot kér, azt is megadja. (vigyázzunk ezzel az opcióval: Ha a kliensen root jogosultsággal hozunk létre a szerver fájlrendszerén valamit, akkor az ott is root jogosultságú lesz, e nélkül nobody. Ha ezt használjuk, akkor érdemes még a ’nosuid’ és ’nodev’ opciókat is használni, mert ekkor nem hozhat létre a kliensről a szerveren is érvényesülő setuid-os és eszköz fájlokat egy –a kliens gépen- root jogú felhasználó!) Ezt az opciót egyébként a diszk nélküli gépeken ajánlatos használni.

  A /tervek könyvtárat bemountolhatja írható olvasható módon minden olyan gép, aminek neve terv-vel kezdődik és a nitro.hu doménen van.

  A /usr könyvtárat bemountolhatj csak olvasható módon minden gép, ami a nitro.hu doménben van, de ha a felhasználó a jok csoportba tartozik, akkor ő írhatja is azt.

  A /pub könyvtárat mindenki bemountolhatja csak olvasható módon és engedélyezünk minden gépről nem hitelesített hozzáférést és minden kérés nobody felhasználóként lesz kiszolgálva.

  A /pub/private könyvtárat nem érheti el senki sehonnan, felülbírálva az előző sort.

A fájlban található opciókon kívül jól használhatók még a ’root_squash’ opció, ami a kliensről root joggal jövő felhasználót nobody userré teszi. Az ’all_squash’ az előzőhöz hasonló, de az összes usert nobody-ként kezeli. Hasznos biztonsági funkció.

Ezzel végig is néztük a gyakran használt opciókat.

A fenti magyarázat segítségével bárki könnyen építhet NFS szervert. Ezek után már csak azt kell megnézni, hogy hogyan kell egy kliens gépről elérni a szerver szolgáltatásait.

 

Az NFS kötetek mountolása

Az NFS köteteket becsatolhatjuk egyszerűen a mount parancs kiadásával megfelelő szintaktikával és a szokásos /etc/fstab fájl segítségével is, ami –mint már leírtuk- a bemountolandó fájlrendszerekről tartalmaz információkat. (Hova, milyen opciókkal csatoltuk.) Nézzük meg először ezt a lehetőséget.

Egy minta fstab fájl részlete:

 

goliat:/usr/local/terv   /terv   nfs    rsize=8192,wsize=8192,timeo=10,intr

 

A fenti példában a goliat nevű gépről felcsatoljuk a /usr/local/terv könyvtárat a kliens gép fájlrendszerébe a /terv könyvtárba. Az opciók jelentése sorban:

nfs

Megmondjuk a csatolandó fájlrendszer típusát.

rsize=8192

Az adatblokk mérete olvasáskor bájtokban mérve.

wsize=8192

Az adatblokk mérete íráskor bájtokban mérve.

A fenti két opció alapértéke 1024 bájt, de az írási-olvasási sebesség nagymértékben meg fog javulni, ha megnöveljük ezeket 8192 bájtra.

timeo=10

Ennyi időt fog várni a kliens gép egy kérés teljesítésére, mielőtt újra próbálkozik a sikertelen átvitellel. Az alapérték 7.

Tizedmásodpercekben mér.

intr

Ha egy kérést nem lehet kielégíteni, akkor hasznos opció ez, mert ezzel megengedjük az NFS átvitel próbálkozás megszakítását.

 

Ezen kívül gyakran használt opció még a ’hard’ és a ’soft’.

Ha egy kérést nem sikerül teljesíteni, akkor a ’timeo’-val megadott idő megduplázódik. Ha ez sem elég, akkor megint. Ez 60 másodpercig mehet fel. Ekkor kapunk egy üzenetet a képernyőnkre és kezdődik az egész elölről, csak dupla időközökkel. Ez mehet a végtelenségig, ha ’hard’ opcióval van felcsatolva a könyvtár. (ekkor jó az ’intr’) Ha ’szoft’-tal csatoljuk fel, akkor I/O hibát kapunk 60 másodperc után. A ’hard’ csatolás biztonságosabb olyan szempontból, hogy a programok biztosak lehetnek abban, hogy az írási művelet sikeres volt, míg ez ’soft’ esetén nem igaz!

 

A ’rsize’ és a ’wsize’ opció a teljesítményre hatnak (kerneltől függő), a többieknek akkor van jelentőségük, ha a szerver valamiért nem válaszol.

 

Ha a mount parancsot használjuk, akkor a szintaktika a következő:

 

mount –t nfs gépnév:/könyvtárnév(mit) /könyvtárnév(hova) opciók

 

mount gépIPcíme:/könyvtárnév(mit) /könyvtárnév(hova) opciók

 

 

A ’–t nfs’ (ebben mondjuk meg, hogy milyen típusú fájlrendszert akarunk csatolni) elmaradhat, mivel a parancs formája elég sajátságos és a Linux rendszerünk fel fogja ismerni a típust.

 

pl:

mount goliat:/pub /mnt/nfs

 

Ezzel felcsatoljuk a /mnt/nfs könyvtárunkba a goliat gép /pub könyvtárát semmilyen külön opciót nem használva. A használható opciók természetesen ugyanazok, mint az fstab megoldás esetén.


Röviden az installálásról (I. függelék)

 

A ma forgalomba kerülő Linux disztribúciók sokkal könnyebben installálhatók, mint korábbi társaik. Néhány disztribúció már akár magyar üzenetekkel is segíti a felhasználót. De arra azért ne számítsunk, hogy „csak hátra kell dőlni és élvezzük a telepítést”, ami magától végbe megy. Természetesen ez a folyamat is annyira változatos tud lenni, ahány disztribúció létezik. Az alapvető lépések minden disztribúcióban megegyeznek.

Hol szerezzünk Linuxot

Be kell szerezni egy telepítő médiát. Ez nem nehéz feladat, hiszen majdnem minden neves számítástechnikával foglalkozó magazin (pl.: CHIP Magazin) CD mellékletén megjelent már és folyamatosan megjelenik egy-egy új verzió valamelyik disztribútortól. Boltban is vehetünk Linux-ot nem túl drágán. Ezen kívül letölthetők a teljes disztribúciók legfrissebb változatai a megfelelő FTP helyekről is.

Bootolás

Ez után rá kell venni a gépünket, hogy bootolja be a linuxot a telepítőről. Általában ez sem túl nehéz feladat, mivel a CD-k bootolhatók. Tehát egy egyszerű IDE felületű CD meghajtóról elindíthatjuk a telepítést. A telepítőn lévő kernel nagyon sok hardvert ismer, ezért valószínűleg nem fogunk problémába ütközni sem az IDE eszközök sem az SCSI eszközök területén. Ha mégis, akkor sajnos el kell olvasni a CD-n található segítséget, hogy melyik könyvtárban vannak az alternatív kernel image-k, amiket használhatunk. Ha ezt megtaláltuk, akkor vagy egy másik linuxos gépen a dd program segítségével, vagy egy DOS (WINx) gépen a rawrite program segítségével el kell készíteni a telepítő floppyt.

dd if=/fájl of=/dev/fd0

Ahol fájl a megfelelőnek vélt image elérési útja és neve.

A rawrite program megtalálható minden Linux CD dosutils könyvtárában. Használata nagyon egyszerű. Elindítjuk, megadjuk neki a fájl elérési útját, majd a floppy egység betűjelét és máris elkészíti a lemezt.

Ha esetleg ez a módszer sem segít, akkor sajnos kell fordítani egy olyan kernelt, ami ismeri azokat a hardver elemeket, amik a gépünkben vannak. (Ezt természetesen egy másik linuxos gépen tudjuk megtenni.) Ezek után (megint csak disztribúciótól függ, hogy hogyan) el kell készíteni ezzel a kernellel a telepítő lemezt. Most már biztosan el tudjuk kezdeni a telepítést. Eddigi tapasztalatom alapján még nem találkoztam olyan PC-vel, amire nem lehetett feltelepíteni a Linuxot és csak egyetlen eggyel találkoztam, ahol az utolsó módszert kellett alkalmazni. Az esetek 99 százalékában a CD-ről való bootolás a megszokott eljárás.

Első lépések

Ha már el tudtuk indítani a telepítést, akkor sínen vagyunk. Ez után általában minden disztribúcióban a telepítési környezet beállítása jön. Itt olyan kérdésekre kell felkészülni, hogy színes-e a monitorunk, milyen nemzeti karakterkiosztást akarunk használni a billentyűzeten, esetleg milyen nyelven kérjük a telepítést (SuSE).(A magyar terjesztések között található Debian eleve magyar nyelven kommentálja a telepítést.)

Partícionálás

Ha ezzel is megvagyunk, akkor jöhet a kiszemelt winchester partícionálása. A telepítő felajánlja a gépünkben talált winchestereket, csak ki kell választani a megfelelőt. A partícionálást vagy az fdisk programmal végezhetjük a lemezekről szóló fejezetben leírtaknak megfelelően, vagy a telepítő által felajánlott –vélhetően sokkal barátságosabb felülettel rendelkező- másik hasonló funkciójú programmal. Ha nem teljesen új winchesterünk van, hanem már léteznek rajta Linux partíciók és azok megfelelnek számunkra, akkor nem kell partícionálni. Ha esetleg más rendszert is tervezünk felrakni a gépre, akkor hagyjuk ki neki a helyet és a partícióinak létrehozásához használjuk a saját fdisk programot. (Használhatjuk a linuxét is, hiszen nagyon sok fajta partíciót ismer, de én mindig a saját eredeti programokat javaslom.) Ha eredetileg már volt a winchester teljes területén egy DOS (WIN’9x) rendszer és nem akarjuk letörölni, akkor még a Linux telepítés előtt le kell csökkenteni a partíció méretét. Erre való a fips nevű program, ami szintén a Linux CD dosutils könyvtárában található. (Lehet vágni vele a FAT32 partíciót is.) Először természetesen egy lemezrendező programmal rendezzük a lehető legjobban a fájljainkat.

Partíciók aktiválása

Ha a partícionálással készen vagyunk, akkor jöhet a partíciók aktiválása. Először a swap területet fogja aktiválni. Ne lepődjünk meg, ha esetleg több swap partíciót hoztunk létre és csak egyet fog használni. Majd később, amikor már fut a rendszer, a memóriáról szóló fejezetben leírtak szerint aktiválhatjuk a többit is. A swap után a root partíciónak kijelölt következik és ha van, akkor a többi is. Meg fogja kérdezni, hogy az egyes partíciók hova legyenek bemountolva. A hibás blokkokat érdemes végignézetni, bár elég sok időt vesz igénybe.

Alapbeállítások

Az ez után következő folyamat már erősen disztribúciótól függő. Egyiket sem szeretném részletezni, ez teljesen egyéni ízlés kérdése, ki melyiket szereti. Van olyan rendszer, ami először feltelepíti az alaprendszert, elvégez pár alapvető beállítást (hálózatba vagyunk-e kötve, milyen csatolóval –gép neve, domén név, ethernet, modem- IP cím, hálózati maszk, broadcast cím, name server, stb kérdésekre kell felkészülni) majd ezek után a kész alaprendszerhez válogathatunk a különböző feltelepíthető csomagok közül. Van olyan is, amelyik egyből felajánlja a telepíthető csomagok listáját és a telepítés közben kérdez rá bizonyos dolgokra. Bármelyikkel is találkozunk, az adott rendszer végig fog vezetni bennünket egy úton.

Csomagkezelés

A csomagkezelő az igazán különböző az egyes disztribúciók között. A Debian kezelője (a dpkg) elsőre elég barátságtalannak tűnik, viszont nagyon jól végigvezet a beállításokon. Mire feltelepítünk egy csomagot, az gyakorlatilag be is van állítva működésre készen. Kritikus pont a csomagok függőségének kezelése. Ez alatt azt értem, hogy mivel a linuxhoz nagyon sok program található és ezeket nem egy csapat fejleszti, bizonyos programok (fájlok) használhatósága függ mások meglététől. Szóval, ha fel akarunk telepíteni valamit és az közli velünk, hogy akkor még ezt is meg azt is szíveskedjünk kijelölni, akkor ne lepődjünk meg, legyünk engedelmesek, ha használni akarjuk. Csakhogy lehet, hogy amiket még felajánlott, azok működéséhez is kell valami más. És ez az, amit nem minden csomagkezelő old meg kifogástalanul. A SuSE kezelője a YaST kifogástalanul oldja meg ezt a feladatot. Kezdőknek ezért inkább a SuSE disztribúciót ajánlanám, míg a haladóbbak próbálkozhatnak a Debian és más disztribúciókkal is. Sok sikert.


Kernel fordítás (II. függelék)

 

Miután felinstalláltuk a Linux valamelyik disztribúcióját, új rendszerünk a "gyárilag" telepített kernelt használja. A kernel az operációs rendszerünk magja. A hagyományos rendszerekhez hasonlítva a feladata körülbelül úgy néz ki, mintha az io.sys, msdos.sys, processzek vezérlése és a betölthető eszközvezérlőket tartalmazó config.sys fájl tartalma lenne együtt és még a windows9x-hez tartozó eszközvezérlők, driverek (meghajtó programok).

Ha a rendszer indítása után minden hardverelemünk működik (CD, SCSI, hangkártya, stb...), akkor nem szükséges új kernelt készíteni. Egy profi rendszerhez azonban profi kernel is tartozik, amit természetesen nekünk illik elkészíteni a saját hardverünkhöz és igényeinkhez igazítva. Tudni kell, milyen hardverelemeket tartalmaz a számítógépünk (processzor típusa, alaplapi vezérlő chipkészlet típusa, hálózati kártya, monitorvezérlő kártya, hangkártya, ISDN kártya, SCSI kártya, stb.). Feltételezzük, hogy ezek jellemzőivel mindenki teljesen tisztában van, ilyen apróságok nem hoznak zavarba senkit.

A kernelt fejlesztő csapat munkáját dicséri, hogy nagyon jó minőségű driverek készülnek az egyes hardver elemekhez, melyek magas színvonalon használják ki az eszközök teljesítményét. (Ide értve a monitorvezérlő kártyákat és a hangkártyákat is.)

A minél újabb kernel használata azért is előnyösebb a „gyári” kernelnél, mert lehetnek benne olyan vezérlők, ami szükséges az új hardvereink kezeléséhez, lehetnek benne olyan javítások, amik valamilyen szempontból biztonságosabbá teszik a gép működését és ezen kívül természetesen teljesen testre van szabva. A Linux programozói csapat népességének és a párhuzamos debuggingnak (hibakeresésnek, tesztelésnek) köszönhetően a kernel nagyon gyorsan frissül, tehát havonta, de legalább kéthavonta érdemes beszerezni az újabb verziót. Ez egy óriási előny a „pénzes” rendszerekkel szemben, hiszen az esetlegesen előforduló hibákat nagyon könnyen és gyorsan felfedezik a nyílt forráskód miatt, és roppant gyorsan kijavítják azt. Ezért ha mi is kellően odafigyelünk, akkor nem fordulhat elő az, hogy a rendszerünk hosszú hetekig esetleg hónapokig védtelen, vagy ki van szolgáltatva a futó programok „jóindulatának”.

Honnan vegyünk új kernelt és milyet használjunk

Ha kernelépítésre adtuk a fejünket, akkor először is be kell szerezni egy új kernelforrás csomagot. Ez letölthető a szokásos ftp helyekről, de a komolyabb számítógépes magazinok CD mellékletén is meg szokott jelenni.

A másik fontos szempont, hogy stabil, vagy fejlesztői változatot akarunk használni. Aki a fejlesztői változatot választja, az lehet, hogy több újdonsághoz jut, de ennek az az ára, hogy a rendszer nem biztos, hogy kifogástalanul működik, hiszen ez a verzió még fejlesztés alatt van. (Aki mégis ezt választja, az úgyis tudja mit csinál és az információkat nem ebből a könyvből szerzi.) Átlagos felhasználóknak, kezdőknek érdemes a stabil verziókat használni. Ha szervert építünk, ehhez is mindenképpen a stabil, kiforrott változat javasolt. Honnan tudjuk, hogy melyik a stabil és melyik a fejlesztői változat? Jelenleg a 2.2.14-es verzió a legújabb stabil és a 2.3.x verzió a fejlesztői változat. A számsorban a második szám jelzi, hogy fejlesztői (páratlan), avagy stabil (páros) változattal van dolgunk. A harmadik szám minél nagyobb, annál újabb a kernel. Az első szám is a kernel korára utal. Ha a fejlesztők úgy érzik, hogy a fejlettségi szint már egy egészen más kategóriába emeli az új kernelt, amit már nem tükröz hűen a második szám ugrása, akkor ez is lép egyet. Tehát tegyük fel, hogy beszereztük a 2.2.14-es kernel forrását tömörített, archivált formában valahonnan. A fájlunk neve:

Linux-2.2.14.tar.gz, vagy Linux-2.2.14.tar.bz2

Kernel forrás telepítése

A következőkben leírt eljárás minden disztribúcióban ugyanúgy működik. A forrást másoljuk be a /usr/src könyvtárba. Ebben a könyvtárban tárolódik a kernelforrás. Az előző verziót tartalmazó könyvtárakat töröljük le innen. Ez ebben a könyvtárban általában a Linux nevű alkönyvtárban tárolódik. A legegyszerűbb, ha az új forráson kívül mindent letörlünk.

rm -rf Linux

Miután letöröltük, csomagoljuk ki az új kernelforrást. A kiterjesztésekből látható, hogy a csomag úgy készült, hogy először archiválták az egész forrást, majd utána betömörítették. Ebben az állapotban a kernelforrás kb. 13MB helyet foglal. Kicsomagolva kb 70MB helyet fog foglalni a winchesterünkön. A legegyszerűbben a következő paranccsal tudjuk kibontani az állományt:

tar xvzf Linux-2.2.14.tar.gz

vagy a bzip2-vel csomagolt változat esetén

bzip2 –d Linux-2.2.14.tar.bz2

tar xvf Linux-2.2.14.tar

Az új kernel forrása most már a most létrejött Linux könyvtárban van. Lépjünk be ebbe a könyvtárba. Ha bővebben akarunk olvasni az installálás módjáról, akkor olvassuk el a README fájlt. Ebben találhatunk útmutatást, hogyan kell nem egy teljes forrást felrakni, csak egy patch-el frissíteni a kernelünket és ezen kívül még számos lehetséges utat tárgyal a kernel frissítésére. Mi most a teljes kernel lecserélését nézzük végig. Adjuk ki a következő parancsokat:

cd /usr/src/Linux

make mrproper

A .config fájl elkészítése

Ezek után a kernelünk forrása megfelelő módon installálva van. Most már "csak" annyi a dolgunk, hogy az általunk összeállított .config fájl segítségével lefordítsuk az új kernelt és azt használatba vegyük. A .config fájl elkészítésére több mód is van.

Megtehetjük ezt kézzel megszerkesztve (profiknak és önmarcangolóknak ajánlott).

Megtehetjük a make config parancs kiadásával, amikor is párbeszédes módon a program rákérdez minden egyes beállítási lehetőségre. (Még mindig nem túl barátságos.)

Ha a make menuconfig utasítást adjuk ki, akkor egy az előzőekhez képest sokkal barátságosabb környezetben dolgozhatunk, de még karakteres menüzött felületen.

Ha van már X-Window rendszerünk akkor egy xterminálon kiadva a make xconfig parancsot egy minden igényt kielégítő grafikus beállító felületet kapunk, amin könnyen beállíthatjuk a szükséges paramétereket.

 

Mi a make menuconfig paranccsal követjük végig a lényegesebb beállításokat. Lépjünk be a /usr/src/linux könyvtárba (cd /usr/src/linux) és adjuk ki a parancsot (make menuconfig). Ennek hatására egy főmenübe jutunk, ahol csoportokba szedve megtalálhatjuk a beállítási lehetőségeket tartalmazó menüpontokat. Még mielőtt nekilátunk a menüpontok tárgyalásának, látható, hogy minden menüpontnak 3 beállítási lehetősége van: y (igen), m (modul), n (nem). A nem és az igen gondolom érthető, a modul-ról kicsit beszélnünk kell.

Modulok

Vannak bizonyára olyan hardverelemek a gépünkben, amiket nem használunk állandó jelleggel, sőt, elég ritkán van rá szükség. Ugyanígy nem minden –nem hardverre vonatkozó- kernelfunkciót használunk állandó jelleggel. Ezek a dolgok, amik nem létfontosságúak a működéshez, nem mindennapos a használatuk, de azért néha jól jön, ha működik, mind mind kernelmodulba rakhatók. Ez azért előnyös, mert a kernel betöltődésekor nem töltődnek be azonnal, tehát nem foglalják feleslegesen a memóriát. Csak akkor töltődnek be, ha szükség van rájuk. Vigyázzunk, mit rakunk modulba! Ha pl. egy IDE winchesterről bootol a gépünk, akkor az alaplapi IDE vezérlő driverét NE rakjuk modulba, mert egyébként kereshetünk egy boot lemezt gépünk felélesztéséhez... Ugyanis nem fog elindulni a gép, mert egy olyan eszközvezérlőt akarunk betölteni egy olyan helyről, ami épp azon a helyen van, aminek a vezérlőjét be akarom tölteni...(!?) Én személy szerint egy szervernek szánt számítógép kernelét sem készítem modulosra egy hacker barátom tanácsára, aki imád azon szerverekre behatolni, ahol modulos kernelt talál maga alatt. De ez már önbizalom kérdése... Tehát a modulok jelentőségét most már értjük. Ha modulos kernelt akarunk építeni, akkor a bootoláshoz nem létfontosságú dolgokat nyugodtan tegyük modulba. A használatukhoz esetleg szükséges további információkat adunk a „Függelék: Kernel paraméterek, modulok” fejezetben.

A lehetőségek

Tehát továbbra is a /usr/src/Linux könyvtárban állva adjuk ki a make menuconfig, vagy a make xconfig parancsot.

Ha X alatt fordítjuk a kernelt, barátságos menü vezet végig bennünket.


Vegyük sorba a lehetőségeket:

 

Code maturity level options  --->

                [ ] Prompt for development and/or incomplete code/drivers

Az első menüponton belül csak egy almenü található. Ez arra szolgál, hogy engedélyezzük, vagy tiltsuk a nem teljesen kiforrott, de már elég jól használható kódrészletek használatát. A tapasztalat azt mutatja, hogy nem szokott probléma lenni ezek használatával, de szerverek, vagy más kritikus munkaállomások kernelében én nem szoktam engedélyezni, már csak az illem kedvéért sem. Azt javaslom, hogy csak akkor használjuk, ha egy olyan egzotikus hardverelemünk van, amihez még csak fejlesztői meghajtót találunk.

Processor type and features  --->

                (Pentium/K6/TSC) Processor family                                                          

                               ( ) 386                                   

( ) 486/Cx486                             

( ) 586/K5/5x86/6x86                       

(X) Pentium/K6/TSC                        

( ) PPro/6x86MX                 

 

A következő főmenüpontban a processzorra vonatkozó beállításokat találjuk. 5 kategória közül választhatjuk ki, hogy a Linux mely processzortípus használatára legyen optimalizálva a 386-ostól a PentiumIII-Xeon típusig.

A 386 kategória azt hiszem elég világos (AMD/Cyrix/Intel 386DX/DXL/SL/SLC/SX, Cyrix/TI 486DLC/DLC2 and UMC 486SX-S.

A 486-ost használjuk AMD/Cyrix/IBM/Intel DX4 or 486DX/DX2/SL/SX/SX2,       AMD/Cyrix 5x86, NexGen Nx586 and UMC U5D or U5S processzortípus esetén.

Az 586/K5/... kategóriát használjunk olyan processzoroknál, melyekben (valószínűleg) van TSC (Time Stamp Counter) regiszter.

 

Ha kiadjuk a

less /proc/cpuinfo

parancsot, akkor a fájlban láthatók a processzor regiszterei.

processor       : 0

vendor_id       : GenuineIntel

cpu family      : 6

model           : 6

model name      : Celeron (Mendocino)

stepping        : 5

cpu MHz         : 400.914642

cache size      : 128 KB

fdiv_bug        : no

hlt_bug         : no

sep_bug         : no

f00f_bug        : no

coma_bug        : no

fpu             : yes

fpu_exception   : yes

cpuid level     : 2

wp              : yes

flags  : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pat pse36 mmx osfxsr

bogomips        : 399.77

 

A Pentium/K6/TSC kategóriát válasszuk eredeti Intel Pentium, AMD K6- (K6-2)- (K6III) processzorok esetén.

PPro/6x86MX kategóriát használjunk Cyrix/IBM/National Semiconductor 6x86MX, MII, Intel Pentium II/Pentium Pro Xeon Celeron Pentium III esetén.

Nem baj, ha XeonIII processzort használunk 386-ra optimalizált kernellel. Fordítva ne kövessük el ezt, mert az okozhat problémát.

(1GB) Maximum physical memory

[ ] Math emulation                                        

[*] MTRR (Memory Type Range Register) support             

[ ] Symmetric multi-processing support       

 

A 2.2.14-es kernelben véglegesítették a „nagy” memória méretek használatát. Ezt állíthatjuk be egyenlőre kétállású kapcsolóval. Ha „csak” 1GB alatti memóriával rendelkezünk, akkor hagyjuk meg a gyári beállítást.

 

Még mindig a processzornál maradva állítsuk be a Math emulation-t, ha nem tartalmaz a processzorunk matematikai koprocesszort.

 

Az MTRR support nagyon hasznos, ha valaki PCI, vagy AGP buszos kártyákat használ. Ezen kártyák sebessége megtöbbszöröződik, ha használjuk a funkciót. Csak bizonyos processzortípusoknál működik. Az AMD K6, K6-2, K6-III processzoroknak kettő ilyen regisztere is van, az Intel P6 család is tartalmaz ilyet és a Cyrixnek 6x86-tól felfelé van hasonló funkciót ellátó regisztere.

A Symmetric multi-processing support-ot kapcsoljuk be, ha egynél több processzort tartalmaz a gépünk. (Max. 16 processzort támogat a mostani kernel.) Ekkor különösen vigyázzunk, hogy ne használjunk PPro-ra optimalizált kernelt Pentiumos multiprocesszoros rendszeren. Használhatunk egy processzorra fordított kernelt SMP-s rendszeren, de csak egy processzort fog használni a Linux. SMP-re fordított kernelt viszont ne használjunk egy processzorral.

 

Loadable module support  --->

                [*] Enable loadable module support                             

[ ] Set version information on all symbols for modules         

[*] Kernel module loader       

 

A következő csoportban szabhatjuk meg, hogy modulos kernelt használunk, vagy nem engedélyezzük a modulok használatát. Mindenki az igényei és a feladat szerint döntse el, engedélyezi, vagy sem. Ha igen, akkor az Enable loadable module support be legyen kapcsolva. A verzió információk beállítása a modulokban nem ajánlott. Aki mégis megteszi, az biztosan tudja mit csinál.

A Kernel module loader opció nagyon hasznos. Ennek segítségével a kernelünk automatikusan, futás közben ki-be töltögeti a moduljainkat.

 

General setup  --->

                  [*] Networking support                                        

          [*] PCI support                                               

          (Any) PCI access mode                                         

          [*]    PCI quirks                                             

[*]    Backward-compatible /proc/pci                           

          [ ] MCA support                                               

          [ ] SGI Visual Workstation support                            

          [*] System V IPC                                              

          [ ] BSD Process Accounting                                    

          [*] Sysctl support  

                  <*> Kernel support for a.out binaries                         

          <*> Kernel support for ELF binaries                           

          <*> Kernel support for MISC binaries                          

          < > Kernel support for JAVA binaries (obsolete) (NEW)         

          <*> Parallel port support                                     

          < >    PC-style hardware                                       

          [*] Advanced Power Management BIOS support                    

          [ ]    Ignore USER SUSPEND                                    

          [*]    Enable PM at boot time                                 

          [ ]    Make CPU Idle calls when idle                          

          [ ]    Enable console blanking using APM                     

          [*]    Power off on shutdown                                  

          [ ]    Ignore multiple suspend                                 

          [ ]    Ignore multiple suspend/resume cycles                  

          [ ]    RTC stores time in GMT                                 

          [*]    Allow interrupts during APM BIOS calls                 

 

A következő csoportba a buszrendszerre, egyes speciális architektúrákra, a BIOS-ra, a futtatható kódra vonatkozó információk tartoznak.

 

[*] Networking support Engedélyezzük, ha bármilyen hálózati tevékenységet szeretnénk végeztetni a Linux géppel.

 

[*] PCI support

          (Any) PCI access mode

                               ( ) BIOS                             

( ) Direct                           

(X) Any         

          [*]    PCI quirks

          [ ]    PCI bridge optimization (experimental) (NEW)

          [*]    Backward-compatible

 

Ha rendszerünk használ PCI buszrendszert, akkor engedélyezzük a következő csomagot.

A PCI access mode ponton beállíthatjuk, hogy a kernel a biost megkerülve használja a PCI eszközöket (direct), vagy a bioson keresztül (BIOS), vagy először próbálja meg direkt módon, majd ha úgy nem megy, akkor a bioson keresztül (any). Az utolsót célszerű beállítani.

A PCI quirks menüpont hasznos lehet hibás, vagy gyenge minőségű bios kóddal ellátott rendszereken.

A Backward-compatible opció a visszafelé kompatibilitást segíti. A régebbi rendszerek a /proc/pci fájlban tárolnak információkat a PCI eszközeinkről. Néhány régebbi program igényli ennek a meglétét. Az új rendszerek a /proc/bus/pci fájlban tárolják a PCI információt.

 

Az MCA és az SGI support az IBM PS/2 gépeit (MicroChannel Architecture) és az SGI (volt Silicon Graphics) új, intel bázisú grafikus munkaállomásait támogatja.

 

[*] System V IPC A programok egymás közötti kommunikációjára szolgál. Mindenképpen kapcsoljuk be.

 

[ ] BSD Process Accounting Ha az egyes futó processzek CPU fogyasztásának számlázására van szükségünk, akkor kapcsoljuk be.

 

[*] Sysctl support Egy felületet ad a kernel bizonyos paramétereinek futás közbeni módosítására.

 

<*> Kernel support for a.out binaries

<*> Kernel support for ELF binaries

<*> Kernel support for MISC binaries

 

A következő opciókkal állíthatjuk be, hogy milyen futtatható bináris formátumokat támogasson a kernel. Mindenképpen kapcsoljuk be az ELF formátumot. Az új Linux programok ezt használják. A régi formátum az a.out. Nagyon hasznos a MISC. Ennek segítségével futtathatunk DOS, WINDOWS, JAVA programokat.

 

Ha akarunk párhuzamos portot használni (pl.: nyomtatót), akkor kapcsoljuk be a Parallel port support-ot.

 

A következő rész a "fejlett energiagazdálkodással rendelkező" gépekhez nyújt kernel szintű támogatást.

 

[*] Advanced Power Management BIOS support

          [*]    Enable PM at boot time

          [*]    Power off on shutdown

          [*]    Allow interrupts during APM BIOS calls

 

Itt mindenkinek a kísérletező kedvére bízom a beállításokat. Én általában a fenti beállításokat használom. Intel chipkészlettel rendelkező gépek szinte mindegyikén jó. A más gyártók chipkészletein is általában működik.

 

Plug and Play support  --->

[*] Plug and Play support                                 

               < >   Auto-probe for parallel devices (NEW)              

 

Van lehetőség néhány "plug and play" eszköz automatikus felismerésére is. Bár jelenleg csak a párhuzamos porton lévő eszközöket tudja detektálni.

 

Block devices  --->

    <*> Normal PC floppy disk support                                   

    <*> Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support             

    --- Please see Documentation/ide.txt for help/info on IDE drives    

    [ ]    Use old disk-only driver on primary interface                

    <*>    Include IDE/ATA-2 DISK support                               

    <*>    Include IDE/ATAPI CDROM support                              

    <M>    Include IDE/ATAPI TAPE support                                

    <M>    Include IDE/ATAPI FLOPPY support                             

    < >    SCSI emulation support                                       

    [ ]    CMD640 chipset bugfix/support                                

    [ ]    RZ1000 chipset bugfix/support                                

    [*]    Generic PCI IDE chipset support                              

    [*]      Generic PCI bus-master DMA support                         

    [ ]      Boot off-board chipsets first support                       

    [*]      Use DMA by default when available                          

    [ ]    Other IDE chipset support                                    

    --- Additional Block Devices                                        

    <*> Loopback device support                                         

    < > Network block device support                                    

    [*] Multiple devices driver support                                 

    < >    Linear (append) mode (NEW)                                    

    < >    RAID-0 (striping) mode (NEW)                                 

    < >    RAID-1 (mirroring) mode (NEW)                                

    < >    RAID-4/RAID-5 mode (NEW)                                     

    < > RAM disk support                                                

    < > XT hard disk support                                            

< >Mylex DAC960/DAC1100 PCI RAID Controller support

    < > Parallel port IDE device support                                

< > Compaq SMART2 Support

 

A Block devices csoportban a háttértárak legkülönbözőbb fajtáit és a vezérlő chipkészleteket állíthatjuk be.

A fenti felsorolás azt hiszem elég egyértelmű. Talán csak néhány opcióról kellene említést tenni.

 

SCSI emulation:

 

Hasznos lehet, ha pl. egy IDE vezérlős CD íróval van dolgunk és másképpen nem boldogulunk a bekonfigurálásával.            

Mindenképpen említést érdemel a

Multiple devices driver support

csoport. A Linux képes szoftveresen ellátni egy drága RAID vezérlő funkcióit. (Természetesen a kártyás hardveres megoldás sokkal gyorsabb és a Linux is támogat jó néhány ilyen kártyát.) Ha van két egyforma winchesterünk, akkor használhatjuk azokat nagy adatbiztonságú tükrözött üzemmódban, vagy a nagyon gyors winchester elérést biztosító stripping módban. (Az adatokat egyszerre több winchesterre írja fel, egyben láthatóvá téve a teljes területet.) De természetesen a RAID5 módozat is kivitelezhető. Ezek a funkciók működnek drágább SCSI, de olcsó IDE winchesterekkel is.

A RAM disk opcióra általában nincs szükség, de lemez nélküli gépeknél mindenképpen kell. Ha a loopback device opciót befordítjuk, akkor bemountolhatunk egyszerű image, vagy ISO fájlokat is, mint fájlrendszereket. A fenti beállítások általában elégségesek egy átlagos rendszerhez.

 

Networking options  --->

    <*> Packet socket                                                   

    [ ] Kernel/User netlink socket                                      

    [*] Network firewalls                                                

    [ ] Socket Filtering                                                

    <*> Unix domain sockets                                             

    [*] TCP/IP networking                                               

    [ ] IP: multicasting                                                 

    [ ] IP: advanced router                                             

    [ ] IP: kernel level autoconfiguration                              

    [*] IP: firewalling                                                  

    [*] IP: always defragment (required for masquerading)               

     [ ] IP: transparent proxy support                                   

    [ ] IP: masquerading                                                

    [ ] IP: optimize as router not host                                 

    < > IP: tunneling                                                   

    < > IP: GRE tunnels over IP                                         

    [*] IP: aliasing support                                             

    [ ] IP: TCP syncookie support (not enabled per default)             

    --- (it is safe to leave these untouched)                           

    < > IP: Reverse ARP                                                 

    [*] IP: Allow large windows (not recommended if <16Mb of memory)    

    ---                                                                 

    < > The IPX protocol                                                

    < > Appletalk DDP                                                    

 

<*> Packet socket                                                                                                

 

Az olyan programoknak hasznos lehetőség, amik nem egy magasabb szintű hálózati protokollon kommunikálnak. Nincs rá mindig szükség, de jó ha elérhető.

 

[*] Kernel/User netlink socket

 

Ezt mindenképpen kapcsoljuk be. Ezt használják a programok a kernel hálózati részével való kommunikációra. Szükség van rá útválasztási információkhoz, tűzfal riasztások esetén, arpd használatakor (hardvercím-IP cím táblázatok).

 

<*> Netlink device emulation (NEW)

 

Ez a funkció a visszafelé kompatibilitás miatt van most bent a kernelben. Most még használjuk.

 

[*] Network firewalls

                [*] IP: firewalling                                                  

                               [ ] IP: firewall packet netlink device (NEW)                        

                               [*] IP: always defragment (required for masquerading)               

                               [*] IP: transparent proxy support                                   

                               [ ] IP: masquerading               

 

A fenti opciók nem ilyen sorrendben vannak, de működésük függ egymástól. A Linux kernel szintű tűzfal funkcióit valósítják meg. Lehetőség van az IP maszkolásra, ami akkor hasznos, ha a hálózatunkon egyetlen gép van, aminek hivatalosan bejegyzett IP címe van és a többi gépen is szükség van Internet kapcsolatra. Ha nem elegendő a proxy használata (nem csak böngészőt futtatunk, hanem szükség van minden gépnek a telnet, ftp, IRC, Quake stb programok internet hálózaton való használatára), tehát úgy akarjuk használni gépeinket, mintha mindenkinek lenne saját bejegyzett IP címe, akkor az IP masquerading (IP maszkolás) funkcióra van szükségünk. Ha szabályozni akarjuk, hogy ki honnan milyen szolgáltatást érhet el szerverünkön, akkor is a firewall -t kell használni. Ennek használata elég alapos ismereteket kíván és nem tudunk rá kitérni e könyv keretein belül.

 

[*] TCP/IP networking

 

Ez a funkció legyen mindig bekapcsolva, ha TCP/IP alapú hálózatban dolgoztatjuk a gépet.

 

[ ] IP: multicasting

 

Ha a gépet egy MBONE, nagy sávszélességű hálózatban használjuk, kapcsoljuk be ezt a funkciót.

 

[*] IP: advanced router                                             

    [ ] IP: policy routing (NEW)                                        

    [ ] IP: equal cost multipath (NEW)                                  

    [ ] IP: use TOS value as routing key (NEW)                          

    [ ] IP: verbose route monitoring (NEW)                              

    [ ] IP: large routing tables (NEW)

 

Ha a gépet további útválasztási extrákkal akarjuk felszerelni, akkor kapcsoljuk be a fenti opciókat.

Beállítható, hogy a hagyományos rendszerekkel szemben a választott útvonal ne csak a címzettől függjön. (policy routing) A verbose route monitoring opció segít bővebb információhoz jutni az útválasztásról (hibásan konfigurált gépet segít felfedezni). Ha nagy forgalmú hálózatot üzemeltetünk, akkor a large routing tables opciót kapcsoljuk be a 64-nél több útválasztási bejegyzés tárolására.

 

 [*] IP: kernel level autoconfiguration                              

    [ ]       BOOTP support (NEW)                                       

    [ ]       RARP support (NEW)

 

A fenti opció bekapcsolásával lehetőség van arra, hogy a gép bootp-n, vagy RARP segítségével automatikusan kapjon IP címet.

 

[ ] IP: optimize as router not host

 

Ha a gépet kimondottan routernek akarjuk használni, akkor kapcsoljuk be ezt a lehetőséget.

 

< > IP: tunneling

 

Ez lehetőséget ad arra, hogy egy protokollt beágyazzunk egy másikba. Csak IP-t tud IP-be ágyazni. Nem igazán van rá szükség.

 

< > IP: GRE tunnels over IP

 

Ez is egy beágyazási módszer.

 

[*] IP: aliasing support

 

Nagyon hasznos funkció. Egy fizikai interfésznek lehet vele több IP címet kiosztani. Ezzel elérhető, hogy ha a gépünkben csak egy hálózati interfész van, akkor az úgy viselkedjen, mintha több lenne. (eth0, eth0:0, eth0:1, stb néven kell az ifconfig paranccsal konfigurálni, és a továbbiakban így kell rájuk hivatkozni)

 

[ ] IP: TCP syncookie support

 

A védtelen szervereket (és munkaállomásokat is) könnyen leterhelhetjük és ezzel működésképtelenné tehetjük, ha elég gyorsan küldünk neki kapcsolódási kérelmeket.

Az ilyen DOS (Denial of Service Attack) támadások kivédésére kapcsoljuk be a fenti opciót. (nem elég bekapcsolni, hanem minden indulás után, amikor már a /proc fájlrendszer mountolása megtörtént, ki kell adni a következő parancsot:

 

echo 1 >/proc/sys/net/ipv4/tcp_syncookies

 

< > IP: Reverse ARP

 

Ha olyan kliensek csatlakoznak szerverünkhöz, amik RARP-ot használnak az IP-jük megszerzéséhez, és mi akarjuk kiszolgálni őket, akkor engedélyezzük ezt a funkciót.

 

[*] IP: Allow large windows

 

Ha nagy sebességű hálózatot jól ki akarjuk használni, akkor nagyobb adatpufferre van szüksége a küldő gépnek. Ezt engedélyezi ez az opció. Ha 16MB-nál kevesebb memória van a gépben, akkor ne használjuk.

 

<*> The IPX protocol                                                 

   [ ] IPX: Full internal IPX network (NEW)                             

 

Ha Novelles IPX hálózathoz akarunk csatlakozni (akár mint kiszolgáló, akár mint kliens, akkor szükségünk van erre az opcióra.

A Full internal IPX network opciót csak az használja, aki tudja mit csinál.

 

<*> Appletalk DDP       

 

Ha Apple gépekkel kell kapcsolatot teremteni a saját protokolljukon keresztül (fájl és nyomtató szervert akarunk üzemeltetni Apple gépek számára a netatalk csomaggal), akkor kapcsoljuk be az opciót.

 

[*] SCSI support                                                   

--- SCSI support type (disk, tape, CD-ROM)                          

    [*] SCSI disk support (NEW)                                        

    [*] SCSI tape support (NEW)                                        

    [*] SCSI CD-ROM support (NEW)                                      

    [*]   Enable vendor-specific extensions (for SCSI CDROM) (NEW)     

    [*] SCSI generic support (NEW)                                     

    --- Some SCSI devices (e.g. CD jukebox) support multiple LUNs      

    [*] Probe all LUNs on each SCSI device (NEW)                       

    [*] Verbose SCSI error reporting (kernel size +=12K) (NEW)         

    [*] SCSI logging facility (NEW)                                    

    SCSI low-level drivers  --->                                       

 

Ha SCSI eszközöket akarunk használni, akkor engedélyezzük az SCSI support lehetőséget és az ezzel együtt járó további alopciók közül értelemszerűen válasszuk ki azt, amire szükségünk van. Az opciók egy része modulba is tehető. Természetesen, ha egy SCSI eszközről akarunk boot-olni, akkor az ne legyen modulban. (pl.: SCSI disk support) Érdemes külön szólni a Probe all LUNs on each SCSI device lehetőségről. Ez teszi lehetővé, hogy egy CD tömböt használhassunk mégpedig úgy, hogy külön eszközként szólíthassunk meg benne minden egyes CD egységet (Logical Unit Number).

 (/dev/scd0, /dev/scd1, /dev/scd2, ...)

 

SCSI low-level drivers  ---> Almenün belül találjuk meg a használható kártyák meghajtó programjait.

   [ ] 7000FASST SCSI support (NEW)                                     

   [ ] ACARD SCSI support (NEW)                                         

   [ ] Adaptec AHA152X/2825 support (NEW)                               

   [ ] Adaptec AHA1542 support (NEW)                                    

   [ ] Adaptec AHA1740 support (NEW)                                     

   [*] Adaptec AIC7xxx support (NEW)                                    

   [*]    Override driver defaults for commands per LUN (NEW)           

   (24)    Maximum number of commands per LUN (NEW)                     

   [*]    Collect statistics to report in /proc (NEW)                   

   (5)    Delay in seconds after SCSI bus reset (NEW)                   

   [ ] AdvanSys SCSI support (NEW)                                      

   [ ] Always IN2000 SCSI support (NEW)                                  

   [ ] AM53/79C974 PCI SCSI support (NEW)                               

   [ ] AMI MegaRAID support (NEW)                                       

   [ ] BusLogic SCSI support (NEW)                                      

   [ ] DTC3180/3280 SCSI support (NEW)                                  

   [ ] EATA ISA/EISA/PCI (DPT and generic EATA/DMA-compliant boards) sup

   [ ] EATA-DMA [Obsolete] (DPT, NEC, AT&T, SNI, AST, Olivetti, Alphatro

   [ ] EATA-PIO (old DPT PM2001, PM2012A) support (NEW)                 

   [ ] Future Domain 16xx SCSI/AHA-2920A support (NEW)                  

   [ ] GDT SCSI Disk Array Controller support (NEW)                     

   [ ] Generic NCR5380/53c400 SCSI support (NEW)                        

   [ ] Initio 9100U(W) support (NEW)                                    

   [ ] Initio INI-A100U2W support (NEW)                                 

   [ ] IOMEGA parallel port (ppa - older drives) (NEW)                  

   [ ] IOMEGA parallel port (imm - newer drives) (NEW)                  

   [ ] NCR53c406a SCSI support (NEW)                                    

   [ ] symbios 53c416 SCSI support (NEW)                                

   [ ] NCR53c7,8xx SCSI support (NEW)                                    

   [ ] NCR53C8XX SCSI support (NEW)                                     

   [ ] SYM53C8XX SCSI support (NEW)                                     

   [ ] PAS16 SCSI support (NEW)                                         

   [ ] PCI2000 support (NEW)                                            

   [ ] PCI2220i support (NEW)                                           

   [ ] PSI240i support (NEW)                                            

   [ ] Qlogic FAS SCSI support (NEW)                                     

   [ ] Qlogic ISP SCSI support (NEW)                                    

   [ ] Qlogic ISP FC SCSI support (NEW)                                 

   [ ] Seagate ST-02 and Future Domain TMC-8xx SCSI support (NEW)       

   [ ] Tekram DC390(T) and Am53/79C974 SCSI support (NEW)               

   [ ] Trantor T128/T128F/T228 SCSI support (NEW)                       

   [ ] UltraStor 14F/34F support (NEW)                                  

   [ ] UltraStor SCSI support (NEW)                                      

.

.

.

 

A lista alapján látható, hogy nagyon sok igényt ki tud elégíteni a driver gyűjtemény. Nem csak az "egyszerű" SCSI kártyák használhatók, hanem sok RAID kártya is.

 

A következő csoportban a hálózati interfészek meghajtói tartoznak. A lista most is minden igényt kielégít.

 

[*] Network device support                                         

     [*] ARCnet support                                                 

     [ ]   Enable arc0e (ARCnet "Ether-Encap" packet format)             

     [ ]   Enable arc0s (ARCnet RFC1051 packet format)                  

     [ ]   ARCnet COM90xx (normal) chipset driver                       

     [ ]   ARCnet COM90xx (IO mapped) chipset driver                    

     [ ]   ARCnet COM90xx (RIM I) chipset driver                        

     [ ]   ARCnet COM20020 chipset driver                               

     [*] Dummy net driver support                                       

     [ ] EQL (serial line load balancing) support                        

     [*] Ethernet (10 or 100Mbit)                                       

     [*] 3COM cards                                                     

     [ ] 3c501 support                                                  

     [ ] 3c503 support                                                   

     [ ] 3c505 support                                                  

     [ ] 3c509/3c579 support                                            

     [ ] 3c515 ISA Fast EtherLink                                        

     [ ] 3c590/3c900 series (592/595/597) "Vortex/Boomerang" support    

     [ ] AMD LANCE and PCnet (AT1500 and NE2100) support                

     [*] Western Digital/SMC cards                                      

     [ ] WD80*3 support                                                 

     [ ] SMC Ultra support                                              

     [ ] SMC Ultra32 EISA support                                       

     [ ] SMC 9194 support                                                

     [*] Racal-Interlan (Micom) NI cards                                

     [ ] NI5210 support                                                 

     [ ] NI6510 support                                                 

     [*] Other ISA cards                                                

     [ ] AT1700/1720 support                                            

     [ ] Cabletron E21xx support                                        

     [ ] DEPCA, DE10x, DE200, DE201, DE202, DE422 support               

     [ ] EtherWORKS 3 (DE203, DE204, DE205) support                     

     [*] EtherExpress 16 support                                        

     [ ] FMV-181/182/183/184 support                                    

     [ ] HP PCLAN+ (27247B and 27252A) support                          

     [ ] HP PCLAN (27245 and other 27xxx series) support                

     [ ] HP 10/100VG PCLAN (ISA, EISA, PCI) support                     

     [ ] NE2000/NE1000 support                                           

     [ ] SK_G16 support                                                 

     [*] EISA, VLB, PCI and on board controllers                        

     [ ] AMD PCnet32 (VLB and PCI) support                              

     [ ] Apricot Xen-II on board Ethernet                               

     [ ] CS89x0 support                                                 

     [ ] Generic DECchip & DIGITAL EtherWORKS PCI/EISA                  

     [*] DECchip Tulip (dc21x4x) PCI support                            

     [ ] Digi Intl. RightSwitch SE-X support                            

     [*] EtherExpressPro/100 support                                    

     [*] PCI NE2000 support                                              

     [ ] TI ThunderLAN support                                          

     [ ] VIA Rhine support                                              

     [*] Pocket and portable adaptors                                   

     [ ] AT-LAN-TEC/RealTek pocket adaptor support                      

     [ ] D-Link DE600 pocket adaptor support                            

     [ ] D-Link DE620 pocket adaptor support                            

     [*] FDDI driver support                                             

     [ ] Digital DEFEA and DEFPA adapter support                        

     [*] Frame relay DLCI support                                       

     (24)   Max open DLCI                                               

     (8)   Max DLCI per device                                          

     [ ]   SDLA (Sangoma S502/S508) support                             

     [ ] PLIP (parallel port) support                                   

     [*] PPP (point-to-point) support                                    

     --- CCP compressors for PPP are only built as modules.             

     [ ] SLIP (serial line) support                                     

     [*] Wireless LAN (non-hamradio)                                    

     [ ] STRIP (Metricom starmode radio IP) (NEW)                       

     [ ] AT&T WaveLAN & DEC RoamAbout DS support (NEW)                  

     [*] Token Ring driver support                                      

     [ ] IBM Tropic chipset based adaptor support                        

.

.

.

 

A legrégibb ARCNET kártyáktól a ma használt 100Mbps-os etherneteken keresztül egészen az FDDI(Fiber Distributed Data Interface) és HIPPI (HIgh Performacne Paralell Interface) 1600Mbps-os csúcstechnikákig. (clusterek kialakítása) (A linuxos beowulf szabad forráskódú cluster program segítségével építették meg az 5000 db PC-t tartalmazó szuperszámítógépet. PentiumIII/500MHz/512MB RAM/gép)

A listából itt is mindenki válassza ki a neki megfelelőt. Természetesen, ha modemet használunk, akkor is itt kell keresgélnünk. Állítsuk be a [*] PPP (point-to-point) support-ot. Választhatjuk a régebbi slip támogatást is. Sőt, ha az internet kapcsolat felépítéséhez a diald (automatikus tárcsázásra alkalmas) démont akarjuk használni, akkor a SLIP-re is szükségünk van. A 2.2-es kernel újdonsága az új ppp, ami képes automatikusan felépíteni a modemes kapcsolatot, amikor arra szükség van. Mi is ezt fogjuk bővebben tárgyalni.

A Wireless LAN (non-hamradio) support bekapcsolásával használhatjuk a mikrohullámú ethernet kártyákat is. (Általában 2Mbps sebességűek és 2,5GHz felett működnek. Ár/teljesítmény arányuk nagyon jó.)

 

Ha a hálózati kapcsolat megteremtéséhez az amatőr rádiózás eszközeit akarjuk használni, vagy egy egyszerű Sound Blaster hangkártyán keresztül akarunk kommunikálni a gépek között, akkor ezt a funkciót használjuk.

 

[*] Amateur Radio support                                            

   --- Packet Radio protocols                                           

   [*] Amateur Radio AX.25 Level 2 protocol (NEW)                       

   [ ]    AX.25 DAMA Slave support (NEW)                                

   [ ]    Amateur Radio NET/ROM protocol (NEW)                          

   [ ]    Amateur Radio X.25 PLP (Rose) (NEW)                            

   --- AX.25 network device drivers                                     

   [ ] Serial port KISS driver (NEW)                                    

   [ ] Serial port 6PACK driver (NEW)                                   

   [ ] BPQ Ethernet driver (NEW)                                        

   [ ] High-speed (DMA) SCC driver for AX.25 (NEW)                      

   [ ] Z8530 SCC driver (NEW)                                           

   [ ] BAYCOM ser12 fullduplex driver for AX.25 (NEW)                    

   [ ] BAYCOM ser12 halfduplex driver for AX.25 (NEW)                   

   [ ] BAYCOM picpar and par96 driver for AX.25 (NEW)                   

   [ ] BAYCOM epp driver for AX.25 (NEW)                                

   [ ] Soundcard modem driver (NEW)                                     

   --- Misc. hamradio protocols                                         

   [*] Shortwave radio modem driver (NEW)                               

   [ ]    HFmodem support for Soundblaster and compatible cards (NEW)   

   [ ]    HFmodem support for WSS and Crystal cards (NEW)               

.

.

.

 

Nem kiforrott a támogatás, de már a stabil kernelben van az infravörös port használata.

 

[*] IrDA subsystem support                                 

             --- IrDA protocols                                         

             [*] IrLAN protocol (NEW)                                   

             [*] IrCOMM protocol (NEW)                                  

             [*] IrLPT protocol (NEW)                                    

             [*]    IrLPT client support (NEW)                          

             [*]    IrLPT server support (NEW)                          

             [*] IrDA protocol options (NEW)                            

             ---    IrDA options                                        

             [*]    Cache last LSAP (NEW)                               

             [*]    Fast RRs (NEW)                                      

             [*]    Debug information (NEW)                             

             [*] IrLAP compression (NEW)                                

             ---    IrDA compressors                                    

             [*]    Deflate compression (experimental) (NEW)             

             Infrared-port device drivers  --->                         

                           [*] IrTTY (uses serial driver) (NEW)                       

                             ---    Dongle support                                      

                             [*]    Serial dongle support (NEW)                         

                             [ ]    ESI JetEye PC dongle (NEW)                          

                             [ ]    ACTiSYS IR-220L and IR220L+ dongle (NEW)            

                             [ ]    Tekram IrMate 210B dongle (NEW)                      

                             [ ]    Greenwich GIrBIL dongle (NEW)                       

                             [ ]   NSC PC87108 (NEW)                                    

                             [ ]   Winbond W83977AF (IR) (NEW)                          

                             [ ]   Sharp UIRCC (NEW)                                    

.

.

.

 

A manapság igen divatos ISDN használatához válasszuk ki a megfelelő opciókat az alábbi listából. És telepítsük fel az ISDNutils programcsomagot.

 

[*] ISDN support                                                  

       [*] Support synchronous PPP (NEW)                                

         [ ] Use VJ-compression with synchronous PPP (NEW)                

         [ ] Support generic MP (RFC 1717) (NEW)                          

       [ ] Support audio via ISDN (NEW)                                 

       [ ] ICN 2B and 4B support (NEW)                                  

       [ ] isdnloop support (NEW)                                       

       [ ] PCBIT-D support (NEW)                                         

       [*] HiSax SiemensChipSet driver support (NEW)                    

         [ ] HiSax Support for EURO/DSS1 (NEW)                            

         [ ] HiSax Support for german 1TR6 (NEW)                           

         [ ] HiSax Support for Teles 16.0/8.0 (NEW)                       

         [ ] HiSax Support for Teles 16.3 or PNP or PCMCIA (NEW)          

         [ ] HiSax Support for Teles 16.3c (NEW)                          

         [ ] HiSax Support for AVM A1 (Fritz) (NEW)                       

         [ ] HiSax Support for Elsa cards (NEW)                           

         [ ] HiSax Support for ITK ix1-micro Revision 2 (NEW)             

         [ ] HiSax Support for Eicon.Diehl Diva cards (NEW)               

         [ ] HiSax Support for ASUSCOM cards (NEW)                        

         [ ] HiSax Support for TELEINT cards (NEW)                        

         [ ] HiSax Support for Sedlbauer speed card/win/star (NEW)        

         [ ] HiSax Support for USR Sportster internal TA (NEW)            

         [ ] HiSax Support for MIC card (NEW)                             

         [ ] HiSax Support for NETjet card (NEW)                          

         [ ] HiSax Support for Niccy PnP/PCI card (NEW)                   

       [*] AVM-B1 with CAPI2.0 support (NEW)                            

         [ ] Verbose reason code reporting (kernel size +=7K) (NEW)

.

.

.

 

Mindenképpen kapcsoljuk be a Support synchronous PPP opciót, mivel az ISDN modemek a szinkron kapcsolatot használják az analóg modemek aszinkron kapcsolata helyett. Ha üzenetrögzítőként is akarjuk használni ISDN modemünket, akkor csak be kell kapcsolni a Support audio via ISDN opciót. (Az aszinkron modemeknél használt voice parancsokkal tudjuk az eszközt kezelni.)

 

Ha valaki esetleg még régi "kártyás" CD olvasót használ, annak itt be kell állítania a kívánt modellt.

 

[*] Support non-SCSI/IDE/ATAPI CDROM drives                          

   [ ] Aztech/Orchid/Okano/Wearnes/TXC/CyDROM  CDROM support (NEW)      

   [ ] Goldstar R420 CDROM support (NEW)                                

   [*] Matsushita/Panasonic/Creative, Longshine, TEAC CDROM support (NEW

   [ ] Matsushita/Panasonic, ... second CDROM controller support (NEW)  

   [*] Mitsumi (standard) [no XA/Multisession] CDROM support (NEW)      

   (11) MCD IRQ (NEW)                                                   

   (300) MCD I/O base (NEW)                                             

   [ ] Mitsumi [XA/MultiSession] CDROM support (NEW)                    

   [ ] Optics Storage DOLPHIN 8000AT CDROM support (NEW)                

   [ ] Philips/LMS CM206 CDROM support (NEW)                            

   [ ] Sanyo CDR-H94A CDROM support (NEW)                                

   [ ] ISP16/MAD16/Mozart soft configurable cdrom interface support (NEW

   [ ] Sony CDU31A/CDU33A CDROM support (NEW)                           

   [ ] Sony CDU535 CDROM support (NEW)                                  

 

Karakteres eszközöknek nevezzük azokat az eszközöket, melyeken szövegesen kommunikálunk. (soros port, párhuzamos port, stb., és amik az alábbi felsorolásban még láthatók)

Nagyon hasznos lehetőség a virtuális terminál használata. Azért virtuális, mert egy fizikai eszközt tudunk úgy használni, mintha több lenne belőle. Ez azt jelenti, hogy van egy billentyűzetünk és egy monitorunk és az Alt+F1, Alt+F2, stb billentyűkombinációkkal váltogathatunk a "virtuális képernyőink" között, mintha több lenne ezekből az eszközökből. Természetesen az egyes virtuális képernyőkön mást mást csinálhatunk. Van lehetőség a "hagyományos" szöveges képernyők mellett grafikus képernyőt is használni a Alt+Funkció billentyű alkalmazásával. Alapesetben 6 db karakteres termnál van definiálva a linuxon, tehát Alt+F1-től Alt+F6-ig szöveges virtuális termináljaim vannak és Alt+F7-re jön be a grafikus terminál (persze, ha előtte már elindítottuk). Visszaváltani a grafikusról a szövegesre a Crtl+Alt+Fvalahányas kombinációval lehet. A rendszerkonzol az az eszköz, amely a rendszerüzeneteket fogadja és megengedi a bejelentkezést egyfelhasználós "szervíz" módban. Ha engedélyezzük a Support for console on virtual terminal opciót, akkor a konzol az első elérhető virtuális terminál lesz (tty1). (Ez az általános, megszokott megoldás.) Ez módosítható pl a LILO prompt után beírva a console=tty3 paramétert.

A Standard/generic (dumb) serial support-ot engedélyezzük, ha használni akarjuk valamire a soros portokat. Ennek almenüjéből nyílik a lehetőség a soros porton való konzol használatára is.

Az Extended dumb serial driver options használatára annak van szüksége, aki egy standard soros eszköz nem standard lehetőségeit akarja elérni. (IRQ megosztás, több, mint négy COM port használata, stb.)

A Non-standard serial port support lehetőségre akkor van szükség, ha az előbbi már nem elég.

 

A Unix98 PTY support

        (256) Maximum number of Unix98 PTYs in use (0-2048)

 

lehetőség még nem igazán kiforrott és a szabványos unix pszeudo terminálok kezelésére szolgál.

Ha párhuzamos porton keresztül akarunk nyomtatni, akkor mindenképpen használjuk a Parallel printer support-ot. (A 2.2-es kernel biztosít egy egységes felületet a nyomtatáshoz az operációs rendszer oldalról nézve, ami minden hardver platformon ugyanaz. (ALPHA, PPC, SPARC, INTEL).

Ez fogja elindítani az adott hardvernek megfelelő hardverkezelőt.)

[*] Mouse Support (not serial mice)

Ha nem soros portra csatlakozó egeret használunk, akkor szükségünk van a fenti lehetőségre. Itt is mindenki válassza ki a neki megfelelőt.

 

A QIC-02 tape support-ra csak akkor van szükségünk, ha van egy ilyen, speciális protokollt használó eszközünk.

 

A Watchdog Timer Support lehetőséget ad a rendszer állapotának figyelésére.

 

A /dev/nvram support lehetőséget ad a CMOS memória elérésére ezen az eszközfájlon keresztül.

 

Az Enhanced Real Time Clock Support-al a gép rendszeróráját kezelhetjük. Ha több processzoros gépünk van, akkor kapcsoljuk be.

 

A Video For Linux támogatást ad számos video digitalizálóhoz, tv kártyához és FMrádió kártyához.

 

A Joystick support is magáért beszél. Ha esetleg van olyan Linux használó, aki játékra akarja használni ezt a rendszert.

 

A floppy vezérlőt és a különböző saját kártyákat igénylő nem túl szabványos szalagos egységek kezelésére használható a Ftape, the floppy tape device driver gyűjtemény.

 

Character devices  --->

                [*] Virtual terminal                                         

                [*] Support for console on virtual terminal                  

                [*] Standard/generic (dumb) serial support                   

                [ ]    Support for console on serial port                    

                [ ] Extended dumb serial driver options                      

                [ ] Non-standard serial port support                         

                [*] Unix98 PTY support                                       

                (256) Maximum number of Unix98 PTYs in use (0-2048)          

                [*] Parallel printer support                                 

                [ ]   Support IEEE1284 status readback                       

                [*] Mouse Support (not serial mice)                          

                Mice  --->                                                    

         [ ] ATIXL busmouse support                                     

         [ ] Logitech busmouse support                                  

         [ ] Microsoft busmouse support                                  

         [*] PS/2 mouse (aka "auxiliary device") support                

         [ ] C&T 82C710 mouse port support (as on TI Travelmate)        

         [ ] PC110 digitizer pad support                                

                [ ] QIC-02 tape support                                      

                [*] Watchdog Timer Support                                   

                Watchdog Cards  --->           

                [ ]    Disable watchdog shutdown on close               

                [ ]    WDT Watchdog timer                               

                [ ]    Software Watchdog                                

                [ ]    Berkshire Products PC Watchdog                   

                [ ]    Acquire SBC Watchdog Timer                       

                [ ] /dev/nvram support                                       

                [ ] Enhanced Real Time Clock Support                         

                Video For Linux  --->                                        

           [*] Video For Linux                                           

           [ ] AIMSlab RadioTrack (aka RadioReveal) support             

           [ ] AIMSlab RadioTrack II support                            

           [ ] Aztech/Packard Bell Radio                                

           [ ] ADS Cadet AM/FM Tuner                                    

           [ ] Miro PCM20 Radio                                         

           [ ] GemTek Radio Card support                                

           [ ] BT848 Video For Linux                                     

           [ ] Quickcam BW Video For Linux                              

           [ ] Colour QuickCam Video For Linux (EXPERIMENTAL)           

           [ ] Mediavision Pro Movie Studio Video For Linux             

           [ ] SAA5249 Teletext processor                               

           [ ] SF16FMI Radio                                            

           [ ] Typhoon Radio (a.k.a. EcoRadio)                          

           [ ] Zoltrix Radio                                             

                                                             

                Joystick support  --->                                       

                   [*] Joystick support                                                 

                   [ ]    Classic PC analog joysticks and gamepads                      

                   [ ]    FPGaming and MadCatz A3D controllers                          

                   [ ]    Gravis GrIP joysticks and gamepads                            

                   [ ]    Logitech Digital joysticks and gamepads                        

                   [ ]    Microsoft SideWinder, Genius Digital joysticks and gamepads   

                   [ ]    ThrustMaster DirectConnect joysticks and gamepads             

                   [ ]    PDPI Lightning 4 gamecards                                    

                   [ ]    NES, SNES, PSX, Multisystem joysticks and gamepads            

                   [ ]    Sega, Multisystem joysticks and gamepads                      

                   [ ]    TurboGraFX Multisystem joystick interface                     

                                            

                [ ] Double Talk PC internal speech card support              

                Ftape, the floppy tape device driver  --->                   

                [*] Ftape (QIC-80/Travan) support                       

                [ ] Zftape, the VFS interface                            

                [ ] Enable procfs status report (+2kb)                  

                (Normal) Debugging output                               

                --- Hardware configuration                              

                (Standard) Floppy tape controllers                      

                --- ONLY for DEC Alpha architectures                    

                (0) CPU clock frequency of your DEC Alpha               

.

.

.

 

A következő nagy egység a fájlrendszerek kezelését biztosítja. A Linux gyakorlatilag az összes elterjedt fájlrendszerhez hozzáférést biztosít. Mindenki válassza ki amire szüksége van. Most csak azokról teszünk említést, amiket semmiképpen nem érdemes kihagyni, vagy valamilyen más szempontot figyelembe véve kell szót ejteni róluk.

A quota support bekapcsolásával lehetőségünk van a felhasználók diszkfoglalását ellenőrizni. Kernel szinten mindössze ennyit kell beállítani a használathoz, részletesebben egy külön fejezetben foglalkozunk vele.

A Kernel automounter support-ot kapcsoljuk be, ha azt akarjuk, hogy a felhasználók könnyen használhassák a floppy és a CD egységet. (ne kelljen a mount parancs rejtelmeibe belebonyolódniuk) A feladat nem kernelre tartozó részét az automount program végzi.

A /proc filesystem support-ot mindenképpen kapcsoljuk be. Ez tárolja az információkat a futó rendszerünkről.

A Second extended fs support-ra is szükségünk van, hiszen ez a Linux által használt partíció fájlrendszere.

 

Filesystems  --->

   [*] Quota support                                                     

   [*] Kernel automounter support                                       

   [ ] Amiga FFS filesystem support                                     

   [ ] Apple Macintosh filesystem support (experimental)                 

   [*] DOS FAT fs support                                               

   [*]   MSDOS fs support                                               

   [*]   UMSDOS: Unix-like filesystem on top of standard MSDOS filesyste

   [*]   VFAT (Windows-95) fs support                                   

   [*] ISO 9660 CDROM filesystem support                                

   [*] Microsoft Joliet CDROM extensions                                

   [ ] Minix fs support                                                  

   [ ] NTFS filesystem support (read only)                              

   [ ] OS/2 HPFS filesystem support (read only)                         

   [*] /proc filesystem support                                         

   [ ] /dev/pts filesystem for Unix98 PTYs                              

   [ ] ROM filesystem support                                           

   [*] Second extended fs support                                       

   [ ] System V and Coherent filesystem support                          

   [ ] UFS filesystem support                                           

   Network File Systems  --->                                           

          [ ] Coda filesystem support (advanced network fs)             

          [*] NFS filesystem support                                    

          [ ]    Emulate SUN NFS server (NEW)                           

          [ ] SMB filesystem support (to mount WfW shares etc.)         

          [ ] NCP filesystem support (to mount NetWare volumes)         

   Partition Types  --->                                                

            [ ] BSD disklabel (BSD partition tables) support            

            [ ] Macintosh partition map support                         

            [ ] SMD disklabel (Sun partition tables) support            

            [ ] Solaris (x86) partition table support                   

   Native Language Support  --->                                        

                   [ ] Codepage 437 (United States, Canada)                             

                   [ ] Codepage 737 (Greek)                                             

                   [ ] Codepage 775 (Baltic Rim)                                        

                   [ ] Codepage 850 (Europe)                                             

                   [*] Codepage 852 (Central/Eastern Europe)                            

                   [ ] Codepage 855 (Cyrillic)                                          

                   [ ] Codepage 857 (Turkish)                                           

                   [ ] Codepage 860 (Portugese)                                         

                   [ ] Codepage 861 (Icelandic)                                         

                   [ ] Codepage 862 (Hebrew)                                            

                   [ ] Codepage 863 (Canadian French)                                    

                   [ ] Codepage 864 (Arabic)                                            

                   [ ] Codepage 865 (Norwegian, Danish)                                 

                   [ ] Codepage 866 (Cyrillic/Russian)                                  

                   [ ] Codepage 869 (Greek)                                             

                   [ ] Codepage 874 (Thai)                                              

                   [ ] NLS ISO 8859-1  (Latin 1; Western European Languages)            

                   [*] NLS ISO 8859-2  (Latin 2; Slavic/Central European Languages)     

                   [ ] NLS ISO 8859-3  (Latin 3; Esperanto, Galician, Maltese, Turkish) 

                   [ ] NLS ISO 8859-4  (Latin 4; Estonian, Latvian, Lithuanian)         

                   [ ] NLS ISO 8859-5  (Cyrillic)                                       

                   [ ] NLS ISO 8859-6  (Arabic)                                         

                   [ ] NLS ISO 8859-7  (Modern Greek)                                   

                   [ ] NLS ISO 8859-8  (Hebrew)                                         

                   [ ] NLS ISO 8859-9  (Latin 5; Turkish)                               

                   [ ] NLS ISO 8859-15 (Latin 9; Western European Languages with Euro)  

                   [ ] NLS KOI8-R (Russian)

 

A konzol video módját tudjuk beállítani az alábbi részben. A hagyományos szöveges konzol használatához engedélyezzük az első menüpontot. Ha a szöveges konzolon engedélyezni akarjuk a különböző felbontások használatát, akkor a másodikra is szükségünk van. Kísérleti állapotot jelezve, de már elérhető a stabil kernelben is az MDA text console (dual-headed) (EXPERIMENTAL) ami a két monitort kezelő kártyákhoz hasznos támogatás és a [ ] Support for frame buffer devices (EXPERIMENTAL), amivel a VESA2 módokat ismerő kártyákat érdemes használni.

[*] VGA text console                                         

[*] Video mode selection support                             

 

Az alábbi csomagot azok bogarásszák végig, akik arra kíváncsiak, vajon támogatott-e az általuk használt hangkártya. Valószínűleg igen...

Meg kell említeni azt is, hogy a Linux fejlesztése során a kernelbe befordított hangkártya drivereken kívül létezik egy még ennél is jobb csomag. Az ALSA (Advanced Linux Sound Architecture) driver (még ennél is) többet tud és -ami a lényeg- könnyebben használható.

 

Sound  --->

   [*] Sound card support                                                

   [*] Ensoniq AudioPCI (ES1370) (NEW)                                  

   [*] Joystick support at boot time (NEW)                              

   [*] Creative Ensoniq AudioPCI 97 (ES1371) (NEW)                      

   [*] Joystick support at boot time (NEW)                              

   (200) Gameport I/O 200,208,210,218 (NEW)                             

   [ ] S3 SonicVibes (NEW)                                              

   [*] Support for Turtle Beach MultiSound Classic, Tahiti, Monterey (NE

   --- Compiled-in MSND Classic support requires firmware during compila

          Full pathname of MSNDINIT.BIN firmware file: "/etc/sound/msndi

          Full pathname of MSNDPERM.BIN firmware file: "/etc/sound/msndp

   (5) MSND Classic IRQ 5,7,9,10,11,12 (NEW)                            

   (D0000) MSND Classic memory B0000,C8000,D0000,D8000,E0000,E8000 (NEW)

   (290) MSND Classic I/O 210,220,230,240,250,260,290,3E0 (NEW)         

   [*] Support for Turtle Beach MultiSound Pinnacle, Fiji (NEW)         

   --- Compiled-in MSND Pinnacle support requires firmware during compil

          Full pathname of PNDSPINI.BIN firmware file: "/etc/sound/pndsp

          Full pathname of PNDSPERM.BIN firmware file: "/etc/sound/pndsp

   (5) MSND Pinnacle IRQ 5,7,9,10,11,12 (NEW)                           

   (D0000) MSND Pinnacle memory B0000,C8000,D0000,D8000,E0000,E8000 (NEW

   (290) MSND Pinnacle I/O 210,220,230,240,250,260,290,3E0 (NEW)        

   [ ] MSND Pinnacle has S/PDIF I/O (NEW)                               

   [*] MSND Pinnacle non-PnP Mode (NEW)                                 

   --- MSND Pinnacle DSP section will be configured to above parameters.

   (250) MSND Pinnacle config port 250,260,270 (NEW)                     

   --- Pinnacle-specific Device Configuration (0 disables)              

   (0) MSND Pinnacle MPU I/O (e.g. 330) (NEW)                           

   (0) MSND Pinnacle MPU IRQ (e.g. 9) (NEW)                             

   (0) MSND Pinnacle IDE I/O 0 (e.g. 170) (NEW)                         

   (0) MSND Pinnacle IDE I/O 1 (e.g. 376) (NEW)                         

   (0) MSND Pinnacle IDE IRQ (e.g. 15) (NEW)                            

   (0) MSND Pinnacle joystick I/O (e.g. 200) (NEW)                       

   (128) MSND buffer size (kB) (NEW)                                    

   [*] OSS sound modules (NEW)                                          

   [ ] Persistent DMA buffers (NEW)                                     

   [ ] ProAudioSpectrum 16 support (NEW)                                

   [*] 100% Sound Blaster compatibles (SB16/32/64, ESS, Jazz16) support 

   (220) I/O base for SB Check from manual of the card (NEW)            

   (7) Sound Blaster IRQ Check from manual of the card (NEW)            

   (1) Sound Blaster DMA 0, 1 or 3 (NEW)                                

   (5) Sound Blaster 16 bit DMA (SB16, Jazz16, SMW) 5, 6 or 7 (use 1 for

   (330) MPU401 I/O base of SB16, Jazz16 and ES1688 Check from manual of

   --- MPU401 IRQ is only required with Jazz16, SM Wave and ESS1688.    

   --- Enter -1 to the following question if you have something else suc

   (-1) SB MPU401 IRQ (Jazz16, SM Wave and ES1688) Check from manual of 

   [ ] Generic OPL2/OPL3 FM synthesizer support (NEW)                   

   [ ] Gravis Ultrasound support (NEW)                                  

   [ ] MPU-401 support (NOT for SB16) (NEW)                             

   [ ] PSS (AD1848, ADSP-2115, ESC614) support (NEW)                    

   [ ] Microsoft Sound System support (NEW)                             

   [ ] Ensoniq SoundScape support (NEW)                                 

   [ ] MediaTrix AudioTrix Pro support (NEW)                            

   [ ] Support for OPTi MAD16 and/or Mozart based cards (NEW)           

   [ ] Full support for Turtle Beach WaveFront (Tropez Plus, Tropez, Mau

   [ ] Support for Crystal CS4232 based (PnP) cards (NEW)               

   [ ] Support for Yamaha OPL3-SA2, SA3, and SAx based PnP cards (NEW)  

   [ ] Limited support for Turtle Beach Wave Front (Maui, Tropez) synthe

   [ ] Support for Aztech Sound Galaxy (non-PnP) cards (NEW)            

   [ ] Support for AD1816(A) based cards (EXPERIMENTAL) (NEW)           

   [ ] Yamaha OPL3-SA1 audio controller (NEW)                           

   [ ] SoftOSS software wave table engine (NEW)                         

   [ ] FM synthesizer (YM3812/OPL-3) support (NEW)                      

   [ ] Loopback MIDI device support (NEW)                                

   [ ] 6850 UART support (NEW)                                          

   Additional low level sound drivers  --->                             

                   [*] Additional low level sound drivers (NEW)                         

                   [*] ACI mixer (miroPCM12) (NEW)                                      

                   [*] AWE32 synth (NEW)                                                

                   [*] Gallant Audio Cards (SC-6000 and SC-6600 based) (NEW)            

                   (220)   I/O base for Audio Excel DSP 16 220 or 240 (NEW)             

                   (330) I/O base for MPU401 Check from manual of the card (NEW)        

                   --- SC-6600 Audio Cards have no jumper switches at all               

                   [*] SC-6600 based audio cards (new Audio Excel DSP 16) (NEW)         

                   --- SC-6600 specific configuration                                   

                   [ ] Activate SC-6600 Joystick Interface (NEW)                        

                   (4) SC-6600 CDROM Interface (4=None, 3=IDE, 1=Panasonic, 0=?Sony?) (N

                   (0) SC-6600 CDROM Interface I/O Address (NEW)                        

                   [*] Audio Excel DSP 16 (SBPro emulation) (NEW)                       

                   --- Audio Excel DSP 16 [Sound Blaster Pro]                           

                   (220) I/O base for Audio Excel DSP 16 220, 240 (NEW)                 

                   (7) Audio Excel DSP 16 IRQ 5, 7, 9, 10, 11 (NEW)                     

                   (1) Audio Excel DSP 16 DMA 0, 1 or 3 (NEW)                           

.

.

.

 

Az alábbi opciót bekapcsolva az Alt+PrintScreen+valamilyengomb hatására különböző feladatokat tud elvégezni a kernel. (Alt+PrintScree+Enter-re egy listát kapunk ezekről.)

 

Kernel hacking  --->

                [*] Magic SysRq key

 

Az alábbi két menüpont segítségével egy már meglévő .config állományt tölthetünk be és nem kell végigjátszani a fenti beállításokat (vigyázzunk, hogy a kívánt .config milyen kernel verzióhoz készült) és a most elkészített beállításainkat egy más néven is elmenthetjük.

 

Load an Alternate Configuration File                      

Save Configuration to an Alternate File                   

 

Miután végigrágtuk magunkat és beállítottuk a szükséges opciókat, kiléphetünk a konfigurátorból (az utolsó kérdésre Yes-el válaszoljunk.)

Fordítás

Most nincs más hátra, hogy lefordítsuk az új kernelt és használatba vegyük. Ehhez adjuk ki a következő utasítássorozatot:

 

make dep; make clean; make bzImage

 

A bzImage helyett használhatunk mást is. Pl.: zImage (Ha biztosak vagyunk benne, hogy a kernel kisebb lesz, mint 512KB.)

 

Most géptől függően itt egy kis várakozás következik, amíg az új kernel elkészül. (3 perctől 1 óráig terjedően)

Ha elkészült, akkor a /usr/src/Linux/arch/i386/boot könyvtárban találjuk bzImage néven. Ezt másoljuk át a /boot könyvtárba nekünk tetsző néven. Itt vigyázzunk arra, hogy ebben a könyvtárban már lehet, hogy van egy ugyanilyen nevű fájl és nem biztos, hogy felül akarjuk írni.

Ha ezzel is készen vagyunk, akkor fordítsuk le a modulokat (ha vannak ilyenek) és rakjuk be a megfelelő helyre:

 

make modules; make modules_install

 

A modulok egy része ezek után automatikusan használható, van azonban jó néhány, ami további beállítást igényel.


A lilo.conf beállítása

Végül ellenőrizzük a lilo konfigurációs fájlját és végezzük el a szükséges módosításokat.

 

A /etc/lilo.conf fájlt hívjuk meg egy szövegszerkesztővel:

# Start LILO global Section

boot=/dev/hda

read-only

prompt

timeout=100

vga=ask

#vga = normal    # force sane state

append="mem=128M"

# End LILO global section

# Linux bootable partition config begins

other = /dev/hdc1

        label = win9x

        table = /dev/hdc

other = /dev/hda1

        label = winNT

        table = /dev/hda

image = /boot/bzImage

        root = /dev/hda3

        label = firewall

image = /boot/otthoni

        root = /dev/hda3

        label = home

# Linux bootable partition config ends

 

 

 

 

 

 

 

 

Egy másik példa:

 

boot=/dev/sda2      

root=/dev/sda2      

install=/boot/boot.b

vga=normal          

message=/root/uzenet.txt

delay=20            

image=/boot/zUj     

        label=Linux 

        read-only

 

A fenti két példa nagyrészt tartalmazza a leggyakoribb szükséges beállításokat. Nézzük mi mit jelent.

 

boot=/dev/…

Megadja, hogy a lilo melyik eszköz master boot rekordját használja.

 

root=/dev/…

Megadja, hogy melyik eszközt mountolja be, mint root fájlrendszert. (Nem kötelező az általános részben.)

 

prompt

Ez az opció biztosít a számunkra egy lilo promptot, ami hasznos lehet, ha közölni akarunk a kernellel valamit még az indulása előtt.

 

delay=szám

A lilo várni fog szám*0,1 másodpercet arra, hogy megnyomjuk a Shift billentyűt. Erre akkor van szükség, ha a lilo nem ad promptot és mi mégis szeretnénk, hogy adjon és választhassunk betöltendő kernelt. Ha nem nyomjuk meg a Shiftet, akkor sorrendben az első megadott bootolható partíció fog betöltődni. (A lilo.conf-ban megadott első.) Ha elfelejtettük volna, hogy milyen lehetőségek közül lehet választani, akkor a promptnál a Tabulátor megnyomásával kapunk egy listát a bootolási lehetőségekről.

 

message=fájlnév

Üzenetet is adhatunk a felhasználónak ezzel a bejegyzéssel.

 

timeout=szám

A lilo promptnál várakozik a rendszer szám*0,1 másodpercet, mielőtt tovább lép. Ha nem kap más utasítást, akkor betölti a lilo.conf-ban elsőként megadott bootolható partíciót.

 

read-only

Általában használni szokás ezt az opciót. Megadja, hogy a root fájlrendszert csak olvashatóként mountolja be. Később persze majd írható lesz, de pl nem szokás egy lemezellenőrzés (fsck) során írható partíciót ellenőrizni. Ha lefut a lemezellenőrzés, akkor majd a boot folyamat egy későbbi részében írhatóvá teszi a rendszer a root partíciót is.

 

vga=       (normal, extended, ask)

Fentebb volt már szó a vga opcióról. Itt közölhetjük a kernellel, hogy normál (80x25-ös szöveges mód), vagy extended (80x50-es szöveges mód), vagy ask (választ vár, Enter megnyomásával kiadja a lehetséges értékeket).

 

append=”mem=128M”

Ezzel az opcióval tudomására hozzuk a kernelnek, hogy 128MB RAM van a gépünkben.

 

install=boot szektor

Megadhatjuk, hogy melyik fájlt használja, mint boot szektor. (Ha nem adjuk meg, akkor a /boot/boot.d –t használja.)

 

Ez után következik a bootolható partíciók konfigurációja.

 

Tipikusan a következő két formát szokás használni:

Linuxos rendszert bootol a partíció, vagy nem Linux rendszert bootol.

 

Az other kulcsszóval megadott rész nem Linux rendszert fog bootolni. És egyben megadja a bootolni kívánt eszközt is.

 

A label kulcsszónál megadott szóval hivatkozhatunk a bootolni kívánt rendszerre a lilo promptnál. (Tabulátor hatására is ezek sorakoznak fel.)

 

A table kulcsszónál megadott eszköz tartalmazza a bootolni kívánt rendszer partíciós tábláját. nem Linux rendszernél használjuk ezt a kulcsszót.

 

Az image kulcsszó Linux rendszert fog bootolni és egyben megadjuk a bootolni kívánt kernelt is. Itt célszerű megadni a root, a label és a read-only kulcsszavakat is.

Az új kernel indítása

Ha ezzel megvagyunk és igény sszerint beállítottuk a lilo.conf fájlt, akkor mentsük el és addjuk ki a lilo parancsot.

goliat:~# lilo

Added Linux * 

goliat:~#

 

Ha rendben lefut, akkor újrabootolhatjuk a rendszert és használhatjuk az új kernelt.


A kernel paraméterei (III. függelék)

 

Meghajtók a kernelben

A PC hardvere számos részből áll. Ahhoz, hogy rendeltetésszerűen tudjuk használni a hardvert, szükség van egy „driver”-re (egy meghajtó programra), amivel az operációs rendszer (a Linuxban a „kernel”) elérheti azt. Általában két módja van annak, hogy integráljuk a drivereket a rendszerünkbe:

A drivert a kernel részévé tehetjük. Az ilyen kernelt monolitikus kernelnek is hívjuk. Néhány driver csak ilyen formában érhető el, ezzel is igazolva a monolitikus kernel szükségességét.

A driver betölthető kérésre is a kernelbe, amit azután modularizált kernelnek hívunk. Ennek az az előnye, hogy csak azok a driverek indulnak el, amikre ténylegesen szükség van, így a kernelben nincs felesleges töltelék.

A SuSE boot lemezen és CD-n megtalálhatóak a modulok, amik így támogathatják a legtöbb hardver konfigurációt.

Néhány driver még nem létezik modul formában.

Függetlenül attól, hogy a driver a kernel része vagy modulként indul el, elképzelhető, hogy egy hardver elemet nem ismer fel. Ha ez történik, pontosabban is megadhatjuk ennek az eszköznek a tulajdonságait.

A monolitikus kernelnél ezeket a paramétereket a boot promptnál kell megadni, vagy pedig a lilo boot loader segítségével. A moduláris driverekhez szükséges paraméterek az insmod vagy a modprobe paranccsal adhatóak meg, amelyek egyben fel is telepítik a modult.

A LILO paraméterek formátuma különbözik az insmod és a modprobe paramétereitől.

A legtöbb drivernek van „autoprobing” lehetősége, vagyis teszteli azokat a standard címeket, ahol a hardware általában megtalálható. Az autoprobing közben egy driver inicializálhat olyan címet is ami nem hozzá tartozik. Ez gépleállást okozhat.

Néhány modult úgy is lehet sikeresen feltelepíteni, hogy a hardver nincs is telepítve. (Pl.: a 3Com hálózati kártya driverei) Először próbáljuk meg az autoprobingot. A nem használt drivereket könnyen eltávolíthatjuk. Az olyan hardvert, amit nem ismert fel a gép automatikusan, indítsuk el a megfelelő paraméterek megadásával.

 

A paraméterek

 

A lehetséges kernel paraméterek teljes bemutatása megtalálható az installálás után a BootPrompt-HOWTO-ban a /usr/doc/howto könyvtárban és a /usr/src/linux/Documentation/kernel-parameters.txt fájlban.

Az alábbi lista ebből a fájlból készült.

 

Az alábbi paramétereket a fent említett két módok valamelyikén adhatjuk meg. Begépelhetjük őket a „boot:” boot prompt megjelenése után, vagy megadhatjuk a /etc/lilo.conf fájlban, vagy a /etc/modules.conf fájlban.

 

Például egy ethernet kártyát beállító paramétert a boot promptnál megadhatunk a következő sorral:

boot: linux ether=0,0,eth0

Itt a boot: promptot a lilo adja, a ’linux’ az indítandó konfiguráció a /etc/lilo.conf fájlból és ez után jöhet a paraméterezés.

 

Most pedig következzen egy viszonylag részletes leírás a használható paraméterekről. Nem áll rendelkezésre minden paraméter összes lehetséges értéke, ezét csak néhány helyen térünk ki a részletes leírásra. A többi helyen csak utalunk a használat módjára a következő rövidítésekkel:

 

A leírás elején található szögletes zárójelben lévő szöveg megerősíti, hogy a kernelre vonatkozó megszorítások érvényben vannak. Az ilyen megszorítások azt jelentik, hogy az odaillő opciók akkor érvényesek, ha:

 

    APIC            APIC támogatás engedélyezett.

    APM            Advanced Power Management támogatás engedélyezett.

    AX25            AX.25 támogatás engedélyezett.

    CD               CD támogatás engedélyezett.

    EIDE            EIDE/ATAPI támogatás engedélyezett.

    FB               A frame buffer eszköz támogatás engedélyezett.

    HW              A megfelelő hardware támogatás engedélyezett.

    ISDN            A megfelelő ISDN támogatás engedélyezett.

    JOY             A megfelelő joystick támogatás engedélyezett.

    LPT              Printer támogatás engedélyezett.

    MCA            MCA bus támogatás engedélyezett.

    MDA            Az MDA console támogatás engedélyezett.

    MOUSE        A megfelelő egér támogatás engedélyezett.

    NET             A megfelelő hálózati támogatás engedélyezett.

    NFS             Az NFS támogatás engedélyezett.

    PARIDE        A ParIDE alrendszer támogatás engedélyezett.

    PCI              PCI bus támogatás engedélyezett.

    PCMCIA       A PCMCIA támogatás engedélyezett.

    PNP             Plug & Play támogatás engedélyezett.

    PS2             A PS/2 támogatás engedélyezett.

    RAM            RAMdisc támogatás engedélyezett.

    SCSI            A SCSI támogatás engedélyezett.

    SERIAL        A soros vonalak használata engedélyezett.

    SMP            A kernel egy SMP kernel multiprocesszoros gépen.

    SOUND        A hangkártya támogatás engedélyezett.

    VGA             A VGA console engedélyezve lett.

    VT                Virtual terminal support támogatás engedélyezett.

    XT                IBM PC/XT MFM merev lemez támogatás engedélyezett.

 

Továbbá, a következő szöveg jelzi, hogy az opció:

 

    BUGS=        a processzor lehetséges hibáit jelzi

    KNL             |s         kernel indító paraméter.

 

Ne felejtsük el, hogy MINDEN kernel paraméternél számít a nagy illetve kis betű és, hogy a = jel bármely paraméternél azt jelöli, hogy a paraméter környezeti változóként szerepel, míg ennek hiánya azt jelenti, hogy kernel argumentumként fog megjelenni, amit a /proc/cmdline-ban olvashatnak a futó programok, amint elindul a rendszer.

 

53c7xx=

 

adb_buttons=

 

AdvanSys SCSI kártya paramétere:

 

advansys=<addr1>,<addr2>,...,<addrN>

 

A paraméter megmondja a kernelnek, hogy a kártyát a megadott címeken keresse.

 

 

Adaptec AHA-152061522/1510/1515/1505 SCSI kártyákhoz használható paraméter:

 

aha152x=<addr>,<irq>,<id>[,<rec>[,<par>]]

<id>: az adapter SCSI ID-je (0,1)

<rec>: reconnect (0,1) A nem eredeti 152x kártyákhoz használható A legtöbb típushoz az érték ’0’ legyen.

<par> paritás (0,1)

 

Az Adaptec AHA-1540/1542 SCSI kártyákhoz használható a következő paraméter:

 

aha1542=<addr>[,<buson>,<busoff>[,DMA speed>]]

<buson>: 2..15

<busoff>: 1..64

<DMA speed>: 5,6,7,8,10

 

Az Adaptec AHA-274x/284x/294x kártyákhoz használható paraméter:

 

aic7xxx=<modifier>[,<modifier>[,...]]

<modifier>:       extended

no_reset

irq_trigger:<x>

verbose reverse_scan

7895_irq_hack:<x>

pci_parity:<x>

 

Az AM53/79C974 SCSI kártya paramétere:

 

AM53C974=<host-id>,<target-id>,<rate>,<offset>

<host-id>: Az adapter SCSI ID-je (általában 7)

<target-id>: az eszköz SCSI ID-je (0..7)

<rate>: 3,5,10 MHz/s maximum átviteli sebesség

<offset>: átviteli mód (0=asynchron)

 

apm=               [APM] Advanced Power Management.

 

arcrimi=                        [HW,NET]

 

ataflop=                        [HW, M68k]

 

atamouse=                   [HW,MOUSE] Atari Mouse.

 

atascsi=                       [HW,SCSI] Atari SCSI.

 

aztcd=              [HW,CD] Aztec CD driver.

 

baycom_par=    [HW,AX25] BayCom Parallel Port AX.25 Modem.

 

baycom_ser_fdx=          [HW,AX25] BayCom Serial Port AX.25 Modem in Full

                                   Duplex Mode.

 

baycom_ser_hdx=         [HW,AX25] BayCom Serial Port AX.25 Modem in Half

                                   Duplex Mode.

 

bmouse=                      [HW,MOUSE,PS2] Bus mouse.

 

A BusLogic SCSI kártyához használható paraméter:

 

BusLogic=<addr>

BusLogic=<probing>

 

<addr>: Az adapterkártya címe (pl 0x300)

<probing>:        NoProbe

NoProbeISA

NoProbePCI

NoSortPCI

MultiMasterFirst

FlashPointFirst

InhibitTargetInquiry

TraceProbe

TraceHardwareReset

TraceConfiguration

TraceErrors

 

 

cdu31a=                       [HW,CD]

 

cm206=                        [HW,CD]

 

com20020=                  [HW,NET]

 

com90io=                     [HW,NET]

 

com90xx=                    [HW,NET]

 

console=                      [KNL] output console + comm spec (speed, control, parity)

 

cyclades=                    [HW,SERIAL] Cyclades multi-serial port adapter.

 

debug               [KNL] Enable kernel debugging (events log level).

 

decnet=                        [HW,NET]

 

digi=                 [HW,SERIAL] io parameters + enable/disable command

 

digiepca=                     [HW,SERIAL]

 

dmascc=                      [HW,AX25,SERIAL] AX.25 Z80SCC driver with DMA

                                   support available.

 

dmasound=                  [HW,SOUND] (sound subsystem buffers)

 

dtc3181e=                    [HW,SCSI]

 

eata=               [HW,SCSI]

 

eda=                [HW,PS2]

 

edb=                [HW,PS2]

 

 

Ethernet kártya használata esetén használhatjuk a következő paramétert:

 

ether=<irq>,<addr>,<dev>

<irq>: a kártya IRQ-ja (ha ’0’, akkor automatikusan próbálkozik)

<addr>: a kártya port címe (ha ’0’, akkor automatikusan próbálkozik)

<név>: Az interfész eszközfájljának a neve (eth0, eth1, eth2,   )

 

 

fd_mcs=                       [HW,SCSI]

 

 

Future Domain TMC-16x0 SCSI kártyához:

 

fdomain=<addr>,<irq>[,<id>]

<id>: a kártya SCSI ID-je

 

 

floppy=             [HW]

 

ftape=               [HW] Floppy Tape subsystem debugging options.

 

gdth=               [HW,SCSI]

 

gscd=               [HW,CD]

 

gvp11=             [HW,SCSI]

 

A következő paramétert IDE eszközök esetén kell használni, ha a BIOS túl régi az eszköz helyes felismeréséhez.

 

hd<x>=cdrom

hd<x>=serialize

hd<x>=<cylinders>,<heads>,<sectors>[,<write>[,<irq>]]

Az <x> értékei:

a          master az első csatornán

b          slave az első csatornán

c          master a második csatornán

d          slave a második csatornán

 

hd<x>=<trouble>

<trouble>:         noprobe

                        none

                        nowerr

                        cdrom

            autotune

                        slow

 

 

hfmodem=                    [HW,AX25]

 

HiSax=             [HW,ISDN]

 

hisax=              [HW,ISDN]

 

ibmmcascsi=    [HW,MCA,SCSI] IBM MicroChannel SCSI adapter.

 

icn=                 [HW,ISDN]

 

ide<szám>=<base>[,<control>[,<irq>]]

<szám>: az adapter száma (általában 0, 1, 3, 4)

<base>: az adapter memóriacíme

<control>: az adapter kontroll regiszterének címe

<irq>: az adapter megszakítási szintje

 

ide<szám>=<tune>

<tune>: autotune

            noautotune

            serialize

 

 

idebus=<speed>

 

in2000=                        [HW,SCSI]

 

init=                 [KNL]

 

initrd=               [KNL] initial ramdisk path

 

ip=                   [PNP]

 

isp16=              [HW,CD]

 

js_14=              [HW,JOY]

 

js_am=             [HW,JOY]

 

js_an=              [HW,JOY]

 

js_as=              [HW.JOY]

 

js_console=      [HW,JOY]

 

js_console2=    [HW,JOY]

 

js_console3=    [HW,JOY]

 

js_db9=                        [HW,JOY]

 

js_db9_2=                    [HW,JOY]

 

js_db9_3=                    [HW,JOY]

 

js_tg=               [HW,JOY]

 

js_tg_2=                       [HW,JOY]

 

js_tg_3=                       [HW,JOY]

 

kbd-reset                      [VT]

 

load_ramdisk=  [RAM] initrd loading boolean

 

lp=                   [LPT] Parallel Printer.

 

ltpc=                [HW]

 

mac5380=                    [HW,SCSI]

 

maxcpus=                    [SMP] A processzorok maximális számát adhatjuk meg itt.

 

Az SCSI eszközök száma ID-nként:

 

max_scsi_luns=number

 

Például, ha csak az első LUN-t (Logical Unit Number) akarjuk használni, akkor

max_scsi_luns=1

Tipikus felhasználási területe a több CD-t kezelni tudó meghajtók.

 

mca-pentium     [BUGS=ix86]

 

mcd=               [HW,CD]

 

mcdx=              [HW,CD]

 

md=                 [HW] RAID subsystems devices and level

 

mdacon=                      [MDA]

 

msmouse=                   [HW,MOUSE] Microsoft Mouse.

 

 

NCR 5380 SCSI kártyacsalád paramétere:

 

ncr5380=<addr>,<irq>,<dma>

 

NCR 53c400 SCSI kártyacsalád paramétere:

 

ncr53c400=<addr>,<irq>

 

ncr53c400a=     [HW,SCSI]

 

NCR 53c406a SCSI kártyacsalád paramétere:

 

ncr53c406a=<addr>[,<irq>[,<fastpio>]]

<fastpio>: 0, ha nem szükséges gyors PIO mód használata

 

 

ncr53c8xx=                  [HW,SCSI]

 

nfsaddrs=                     [NFS]

 

nfsroot=                        [NFS]

 

nmi_watchdog= [KNL, BUGS=ix86] hibakövető lehetőség SMP kernelek esetén

 

no387               [BUGS=ix86]

 

noapic              [SMP,APIC]

 

noasync                       [HW, M68K]

 

nodisconnect    [HW,SCSI, M68K] Disables SCSI disconnects.

 

no-halt              [BUGS=ix86]

 

noinitrd             [RAM]

 

no-scroll           [VGA]

 

nosmp              [SMP] Megmondja egy SMP kernelnek, hogy viselkedjen egyprocesszoros kernelként.

 

nosync             [HW, M68K]

 

optcd=              [HW,CD]

 

panic=             

 

parport=                       [HW,LP]

 

pas16=             [HW,SCSI]

 

pcbit=               [HW,ISDN]

 

pcd.                 [PARIDE]

 

pci=                 [PCI]

 

pd.                   [PARIDE]

 

pf.                    [PARIDE]

 

pg.                   [PARIDE]

 

pirq=                [SMP,APIC] mp-table

 

plip=                 [LP,NET] Párhuzamos porton keresztüli hálózati kapcsolat.

 

profile=

 

prompt_ramdisk=          [RAM]

 

 

pt.                    [PARIDE]

 

ramdisk=          [RAM]

 

ramdisk_size=  [RAM]

 

ramdisk_start=  [RAM]

 

A Linux újraindítási lehetőségei:

 

reboot=             [BUGS=ix86]

 

A használható értékek:

warm    (bootolás esetén nincsen memória ellenőrzés)

cold      (bootolás esetén van memória ellenőrzés)

bios      ((BIOS által vezérelt reboot)

hard      (CPU teljes kiürülésével egyenértékű)

 

Lehetőség memóriaszegmensek védelmére:

 

reserve=

 

Például ha van egy hálózati kártyánk (IRQ=7), ami a 0x300-as kezdetű címtartományt használja egy 32 bites adatbusz elérésekor, akkor adjuk ki a következő parancsot, ha e nélkül nem használható a kártya:

 

reserve=0x300,32 ether=7,0x300,eth0

 

riscom8=                      [HW,SERIAL] multi-port serial driver (io parameters)

 

ro                                 [KNL] Mount root device read-only on boot.

 

 

Meghatározhatjuk a root partíciót:

 

root=               

 

Pl: root=/dev/hda3

 

 

rw                                [KNL] Mount root device read-write on boot.

 

sbpcd=             [HW,CD] Soundblaster CD adapter.

 

scsi_logging=    [SCSI]

 

sjcd=                [HW,CD]

 

sonycd535=                  [HW,CD]

 

sound=             [SOUND]

 

soundmodem= [HW,AX25,SOUND] Sound cards used as AX.25 modems.

 

specialix=                     [HW,SERIAL] Specialix multi-serial port adapter.

 

 

Az SCSI szalagos meghajtókhoz tartozó puffer méret konfigurálható:

 

st=buffer,threshold(,max)

buffer: A puffer mérete (Amount 1KB blocks)

threshold: write threshold (Amount 1KB blocks)

Pl: st=1000,2000

 

 

Seagate ST01/02 SCSI kártya paramétere:

 

st0x=    <addr>,<irq>

 

stram_swap=    [HW]

 

switches=                     [HW, M68K]

 

sym53c416=                 [HW,SCSI]

 

sym53c8xx=                 [HW,SCSI]

 

 

Trantor T128/128F/228 SCSI kártya:

 

t128=<addr>,<irq>

 

 

Future Domain TMC-885/950 SCSI kártya paramétere:

 

tmc8xx=<addr>,<irq>

 

tmscsim=                     [HW,SCSI]

 

tp720=              [HW,PS2]

 

u14-34f=                       [HW,SCSI]

 

video=              [FB]

 

wd33c93=                     [HW,SCSI]

 

wd7000=                      [HW,SCSI]

 

wdt=                 [HW]

 

xd=                  [HW,XT] Original XT 8bit disk controllers

 

xd_geo=                       [HW,XT]

 

 

 

 

A modprobe paraméterek

 

Most nézzük meg nagy vonalakban, hogyan dolgoznak a modulként tölthető driverek. Ha nehézségünk támad egy driver feltöltése során (noha beírtuk a megfelelő paramétereket), inkább integráljuk ezt a drivert egy monolitikus kernelbe. Néhány drivert még nem lehet modulként felépíteni, míg mások csak akkor ismerik fel a hardvert, ha a kernel részét képezik. Ha egy drivert modulként töltünk fel, minden egyes változót felülírhatunk a parancssorban. Itt van például az io változó az NE2000 driverben, ami a használt I/O skálát határozza meg. Ebben az estben a helyes parancs a modul feltöltésére:

insmod ne io=0x300 irq=10

Vagy esetleg a modeprobe-bal:

modeprobe ne io=0x300 irq=10

Továbbra sincs szóköz az = jel előtt, vagy után.

Továbbá a hexadecimális változókat a fent megadott formában kell megadni.

Ha egynél több paramétert szeretnénk megadni, szóközzel válasszuk el őket.

Ebben különbözik a lilo promptnál használt paraméterektől, mert ott nem használunk üres helyet a paramétereken belül, ha egy driverről van szó.

A megadott paramétereket integrálhatjuk a /etc/modules.conf-ba is. Itt sok paramétert rendelhetünk hozzá egy bizonyos modulhoz. Ez modulonként egy sorban jelenik meg. A sornak így kell kinéznie:

options <modul név> <par1>=<érték1> …


Az X Window System konfigurálása (IV. függelék)

 

A Linux hívők egy része most biztosan nem ért velem egyet, de azt kell hogy mondjam, hogy szerintem egy linuxos rendszer elsősorban nem grafikus felülettel ellátott munkaállomás, hanem kiváló tulajdonságokkal bíró, golyóálló szerver gép. Ennek ellenére olyan grafikus rendszerrel van ellátva, ami páratlan lehetőségeket rejt a hozzáértők számára. Jelen pillanatban nem ismerek olyan PC-re írt operációs rendszert, amin ennyire igényes felületet lehet kialakítani. Tény azonban, hogy ennek a felületnek a beállítása több ismeretet igényel, mint más, pillanatnyilag még elterjedtebb rendszerek esetében.

Az X szerver és az X kliens

A Linux a UNIX világban elfogadott X Window System-et használja grafikus felületként. Két részre kell bontani ezt a grafikus rendszert.

Az egyik az X szerver, ami kezeli a hardvert és biztosítja az egységes, szabványos felületet a grafikus megjelenítést igénylő programok, a kliensek számára.

Egy speciális kliens az ablakkezelő program. Nevezhetnénk ezt grafikus operációs rendszernek, grafikus segédkörnyezetnek. Ez felelős azért, hogy milyen stílusban jelennek meg az ablakok, milyenek az ikonok, van e tálca, van e launch pad, stb. Ezekből az ablakkezelőkből rengeteg fajta van. Olyan, mintha borzasztó sok féle, "más gyártó által készített nagyon elterjedt grafikus operációs rendszert" tudnánk futtatni a gépünkön.

Ezek és a többi kliens program is mindösszesen annyit kér az őt futtatni kívánó X szervertől, hogy az ismerje az általánosan elterjedt X Window System-hez tartozó protokollt. Az "általánosan elterjedt" kifejezés itt annyit jelent, hogy a SCO unixtól kezdve a HP-UX-on, IBM AIX-en és SUN SOLARIS-on keresztül egészen a Silicon Graphics munkaállomásokig minden X-et ismerő program megjeleníthető egy linuxos PC-n is. Ugyanis egy X-es kliens programnak nem kell, hogy ugyanazon a gépen legyen, mint az X szerver, hiszen az csak egy szabványos felületet biztosít számára, ezért mindegy hol fut. Ha látja maga alatt a szabványos felületet, akkor ott meg tud jelenni. Mindössze annyi a dolgunk, hogy megadjuk neki annak a munkaállomásnak az IP címét és képernyőszámát, ahol látni kívánjuk. Erre tudomásom szerint pillanatnyilag más grafikus rendszer nem képes (legalábbis ilyen teljesítménnyel...).

Tehát az első dolgunk az X szerver beállítása, a második, hogy tobzódjuk az ablakkezelők adta lehetőségekben, a harmadik, hogy elvesszünk a töménytelen, grafikus felülettel ellátott program között.

Az X szerver konfigurálása (az XF86Config fájl)

Az X szerver jó konfigurálása nagyon fontos feladat, hiszen ettől függ, hogy a továbbiakban milyen minőségben tudunk dolgozni a grafikus felületen. Az XFree86 rendszer ma használt verziója már kiváló tulajdonságokkal rendelkezik és az összes, forgalomban lévő, elterjedt monitorvezérlő kártyát ismeri és messzemenőkig kihasználja a teljesítményüket. (Egy "noame" S3 Virge videochippel ellátott monitorvezérlővel is képes meghajtani egy jó monitort 120Hz-es képfrissítési frekvenciával, amikor az ehhez a kártyához adott "más rendszerhez illeszthető" driver program maximum 85Hz-re képes.)

Az X rendszert telepítsük fel a választott Linux disztribúcióval együtt a Linux install médiáról. Ezek után kell választani egy beállító programot, ami képes összeállítani nekünk egy saját hardverünkre szabott XF86Config állományt. Ezt a fájlt használja konfigurációs állományként az XFree86 rendszer. A beállító programok disztribúciótól függenek, de minden rendszerben biztosan megtalálható az xf86config program. (A SuSE itt is hű marad önmagához, és egy kiváló, könnyen kezelhető, grafikus(!) beállító programot ad a grafikai rendszer behangolásához. Ez a SaX. Csak indítsuk el és nagyon kevés kérdés után elkészíti az állományt.)

Nézzük meg az általánosabban használt xf86config programot.

Indítsuk el az xf86config parancs begépelésével.

 

 1.  Microsoft compatible (2-button protocol)

 2.  Mouse Systems (3-button protocol)

 3.  Bus Mouse

 4.  PS/2 Mouse

 5.  Logitech Mouse (serial, old type, Logitech protocol)

 6.  Logitech MouseMan (Microsoft compatible)

 7.  MM Series

 8.  MM HitTablet

 9.  Microsoft IntelliMouse

10.  Acecad tablet

 

If you have a two-button mouse, it is most likely of type 1, and if you have

a three-button mouse, it can probably support both protocol 1 and 2. There are

two main varieties of the latter type: mice with a switch to select the

protocol, and mice that default to 1 and require a button to be held at

boot-time to select protocol 2. Some mice can be convinced to do 2 by sending

a special sequence to the serial port (see the ClearDTR/ClearRTS options).

 

Enter a protocol number:    

 

Az első kérdés az egér protokolljára vonatkozik. Válasszuk ki a listából a nekünk megfelelőnek a számát. Általában 4 (PS/2 egér esetén), vagy 1 (2 gombos egér esetén), vagy 2 (három gombos egér esetén) választás a legelterjedtebb. Jól nézzük meg, hogy egerünkön van e három gombos üzemmód lehetőség és lehetőleg válasszuk azt.

 

If your mouse has only two buttons, it is recommended that you enable

Emulate3Buttons.

 

Please answer the following question with either 'y' or 'n'.

Do you want to enable Emulate3Buttons?  

 

Ha két gombos az egerünk, akkor válaszoljunk 'y' karakterrel, hogy emulálni lehessen a harmadik gombot a két gomb egyszerre történő lenyomásával.

Now give the full device name that the mouse is connected to, for example

/dev/tty00. Just pressing enter will use the default, /dev/mouse.

 

Mouse device:  

 

Itt az egér eszközfájljára kíváncsi a beállító program. (Soros egér esetén /dev/ttyS0, PS/2 egér vagy tauche pad esetén /dev/psaux)

 

Please answer the following question with either 'y' or 'n'.

Do you want to use XKB?    

 

Az új XFree86 3.3.5 verziójában található a billentyűzet kiterjesztett lehetőségeinek használata. Ha kedvünk van, próbáljuk ki.

 

Please answer the following question with either 'y' or 'n'.

Do you want to enable these bindings for the Alt keys?   

 

Magyar karakterkiosztás esetén hasznos funkció.

 

    hsync in kHz; monitor type with characteristic modes

 1  31.5; Standard VGA, 640x480 @ 60 Hz

 2  31.5 - 35.1; Super VGA, 800x600 @ 56 Hz

 3  31.5, 35.5; 8514 Compatible, 1024x768 @ 87 Hz interlaced (no 800x600)

 4  31.5, 35.15, 35.5; Super VGA, 1024x768 @ 87 Hz interlaced, 800x600 @ 56 Hz

 5  31.5 - 37.9; Extended Super VGA, 800x600 @ 60 Hz, 640x480 @ 72 Hz

 6  31.5 - 48.5; Non-Interlaced SVGA, 1024x768 @ 60 Hz, 800x600 @ 72 Hz

 7  31.5 - 57.0; High Frequency SVGA, 1024x768 @ 70 Hz

 8  31.5 - 64.3; Monitor that can do 1280x1024 @ 60 Hz

 9  31.5 - 79.0; Monitor that can do 1280x1024 @ 74 Hz

10  31.5 - 82.0; Monitor that can do 1280x1024 @ 76 Hz

11  Enter your own horizontal sync range

 

Enter your choice (1-11):           

 

Most fogjuk beállítani a monitorunk vízszintes frekvenciáját. Régi monitor esetén óvatosan bánjunk vele, mert könnyen sérülhet, ha nagyobbat kap, mint amit el tud viselni. (Utólag úgyis tudjuk módosítani a beállításainkat.)

 

You must indicate the vertical sync range of your monitor. You can either

select one of the predefined ranges below that correspond to industry-

standard monitor types, or give a specific range. For interlaced modes,

the number that counts is the high one (e.g. 87 Hz rather than 43 Hz).

 

 1  50-70

 2  50-90

 3  50-100

 4  40-150

 5  Enter your own vertical sync range

 

Enter your choice:            

 

Most a függőleges frissítési frekvenciát állítsuk be. Ugyanaz érvényes rá, mint az előbbinél.

 

The strings are free-form, spaces are allowed.

Enter an identifier for your monitor definition:  

 

Most adjuk meg a monitorunk azonosítóját, amivel majd a fájlban hivatkozik rá. Ez egy tetszőleges karaktersorozat lehet. Pl. sajátmonitor

 

Enter the vendor name of your monitor:

 

A gyártó nevét kéri. Tetszőleges karaktersorozat lehet. Pl.: DTK

 

Enter the model name of your monitor: 

 

A pontosabb modell nevet is megadhatjuk. (Tetszőleges karaktersorozat.)

 

Do you want to look at the card database?

 

Most következik a monitorvezérlő kártya beállítása. Nézzük meg a kártyaadatbázist, tehát 'y' a válasz.

 

  0  2 the Max MAXColor S3 Trio64V+                    S3 Trio64V+

  1  3DLabs Oxygen GMX                                 PERMEDIA 2

  2  928Movie                                          S3 928

  3  AGX (generic)                                     AGX-014/15/16

  4  ALG-5434(E)                                       CL-GD5434

  5  AOPEN PA50                                        (null)

  6  AOPEN PG80                                        (null)

  7  AOPEN PG975                                       (null)

  8  AOPEN PS66                                        (null)

  9  AOPEN PT60                                        (null)

 10  AOPEN PT70                                        (null)

 11  AOPEN PT75                                        (null)

 12  AOPEN PV60                                        (null)

 13  AOPEN PV70                                        (null)

 14  AOPEN PV75                                        (null)

 15  ASUS 3Dexplorer                                   RIVA128

 16  ASUS PCI-AV264CT                                  ATI-Mach64

 17  ASUS PCI-V264CT                                   ATI-Mach64

 18  ASUS Video Magic PCI V864                         S3 864

 19  ASUS Video Magic PCI VT64                         S3 Trio64

 20  AT25                                              Alliance AT3D

 21  AT3D                                              Alliance AT3D

 22  ATI 3D Pro Turbo                                  ATI-Mach64

 23  ATI 3D Pro Turbo PC2TV                            ATI-Mach64

 24  ATI 3D Xpression                                  ATI-Mach64

 25  ATI 3D Xpression+                                 ATI-Mach64

 26  ATI 3D Xpression+ PC2TV                           ATI-Mach64

 27  ATI 8514 Ultra (no VGA)                           ATI-Mach8

 28  ATI All-in-Wonder                                 ATI-Mach64

 29  ATI All-in-Wonder Pro                             ATI-Mach64

 30  ATI Graphics Pro Turbo                            ATI-Mach64

 31  ATI Graphics Pro Turbo 1600                       ATI-Mach64

 32  ATI Graphics Pro Turbo with AT&T 20C408 RAMDAC    ATI-Mach64

 33  ATI Graphics Pro Turbo with ATI68860 RAMDAC       ATI-Mach64

 34  ATI Graphics Pro Turbo with ATI68860B RAMDAC      ATI-Mach64

 35  ATI Graphics Pro Turbo with ATI68860C RAMDAC      ATI-Mach64

 36  ATI Graphics Pro Turbo with ATI68875 RAMDAC       ATI-Mach64

 37  ATI Graphics Pro Turbo with CH8398 RAMDAC         ATI-Mach64

 38  ATI Graphics Pro Turbo with STG1702 RAMDAC        ATI-Mach64

 39  ATI Graphics Pro Turbo with STG1703 RAMDAC        ATI-Mach64

 40  ATI Graphics Pro Turbo with TLC34075 RAMDAC       ATI-Mach64

 41  ATI Graphics Ultra                                ATI-Mach8

 42  ATI Graphics Ultra Pro                            ATI-Mach32

 43  ATI Graphics Xpression                            ATI-Mach64

 44  ATI Graphics Xpression with AT&T 20C408 RAMDAC    ATI-Mach64

.

.

.

346  Matrox Millennium G200 8MB                        mgag200

.

.

.

 

Közel 600 féle monitorvezérlőt ismer. Mindenki nézze végig és válassza ki a sajátját. Ha nem márkás kártyánk van, de ismerjük a rajta lévő video chipet, akkor annak alapján válasszuk ki a nekünk megfelelőt és adjuk meg a számát.

 

'346'

 

Your selected card definition:

 

Identifier: Matrox Millennium G200 8MB

Chipset:    mgag200

Server:     XF86_SVGA

Do NOT probe clocks or use any Clocks line.

 

Választásunk alapján tájékoztat bennünket a beállított kártyáról és a használandó X szerver programról. (Most az XF86_SVGA szervert fogja használni)

 

Now you must determine which server to run. Refer to the manpages and other

documentation. The following servers are available (they may not all be

installed on your system):

 

 

 1  The XF86_Mono server. This a monochrome server that should work on any

    VGA-compatible card, in 640x480 (more on some SVGA chipsets).

 2  The XF86_VGA16 server. This is a 16-color VGA server that should work on

    any VGA-compatible card.

 3  The XF86_SVGA server. This is a 256 color SVGA server that supports

    a number of SVGA chipsets. On some chipsets it is accelerated or

    supports higher color depths.

 4  The accelerated servers. These include XF86_S3, XF86_Mach32, XF86_Mach8,

    XF86_8514, XF86_P9000, XF86_AGX, XF86_W32, XF86_Mach64, XF86_I128 and

    XF86_S3V.

 

These four server types correspond to the four different "Screen" sections in

XF86Config (vga2, vga16, svga, accel).

 

 5  Choose the server from the card definition, XF86_SVGA.

 

Which one of these screen types do you intend to run by default (1-5)?  

 

Felajánlja, hogy választhatunk másik X szerver programot, de ez a legritkább esetben szükséges. Tehát az '5' a jó válasz.

 

The server to run is selected by changing the symbolic link 'X'. For example,

'rm /usr/X11R6/bin/X; ln -s /usr/X11R6/bin/XF86_SVGA /usr/X11R6/bin/X' selects

the SVGA server.

 

The directory /var/X11R6/bin exists. On many Linux systems this is the

preferred location of the symbolic link 'X'. You can select this location

when setting the symbolic link.

 

Please answer the following question with either 'y' or 'n'.

Do you want me to set the symbolic link?

 

Most felajánlja, hogy létre hozza e a szükséges linket a választott X

szerverre. 'y'

 

How much video memory do you have on your video card:

 

 1  256K

 2  512K

 3  1024K

 4  2048K

 5  4096K

 6  Other

 

Enter your choice: 6    

 

Mennyi video memóriánk van. A '6' általában jó válasz a mai kártyáknál. Úgy is felismeri használat közben...

 

Amount of video memory in Kbytes: 8192

... de azért adjuk meg neki.

 

Your card definition is Matrox Millennium G200 8MB.

 

The strings are free-form, spaces are allowed.

Enter an identifier for your video card definition:  

 

Most adjuk meg a kártyánk azonosító karaktersorozatát, mint a monitor esetében.

A következő két kérdés is hasonló, ezért nem írjuk le.

 

 1  Chrontel 8391                                               ch8391

 2  ICD2061A and compatibles (ICS9161A, DCS2824)                icd2061a

 3  ICS2595                                                     ics2595

 4  ICS5342 (similar to SDAC, but not completely compatible)    ics5342

 5  ICS5341                                                     ics5341

 6  S3 GenDAC (86C708) and ICS5300 (autodetected)               s3gendac

 7  S3 SDAC (86C716)                                            s3_sdac

 8  STG 1703 (autodetected)                                     stg1703

 9  Sierra SC11412                                              sc11412

10  TI 3025 (autodetected)                                      ti3025

11  TI 3026 (autodetected)                                      ti3026

12  IBM RGB 51x/52x (autodetected)                              ibm_rgb5xx

 

Just press enter if you don't want a Clockchip setting.

What Clockchip setting do you want (1-12)?                               

 

Megkérdezi, hogy milyen programozható órajel chip van a kártyánkon. Ezt általában nem tudjuk, ezért csak egy 'Enter'-t nyomjunk.

 

The card definition says to NOT probe clocks.

Do you want me to run 'X -probeonly' now?     

 

Akarjuk e futtatni az X szervert próba módban? NE akarjuk. 'n'

 

For each depth, a list of modes (resolutions) is defined. The default

resolution that the server will start-up with will be the first listed

mode that can be supported by the monitor and card.

Currently it is set to:

 

"640x480" "800x600" "1024x768" "1280x1024" for 8bpp

"640x480" "800x600" "1024x768" "1280x1024" for 16bpp

"640x480" "800x600" "1024x768" "1280x1024" for 24bpp

"640x480" "800x600" "1024x768" for 32bpp

 

Note that 16, 24 and 32bpp are only supported on a few configurations.

Modes that cannot be supported due to monitor or clock constraints will

be automatically skipped by the server.

 

 1  Change the modes for 8pp (256 colors)

 2  Change the modes for 16bpp (32K/64K colors)

 3  Change the modes for 24bpp (24-bit color, packed pixel)

 4  Change the modes for 32bpp (24-bit color)

 5  The modes are OK, continue.

 

Enter your choice:                         

 

Felsorolja, hogy milyen színmélységet tud felajánlani milyen felbontások mellett. A listát később is módosíthatjuk, ezért válasszuk az '5' választ.

 

I am going to write the XF86Config file now. Make sure you don't accidently

overwrite a previously configured one.

 

Shall I write it to /etc/XF86Config?     

 

Készen van a fájl összeállításával, akarjuk e, hogy elkészítse? 'y'

 

És máris készen vagyunk...

 

Adjuk ki az X -probeonly parancsot, ami csak végigpróbálja a beállításainkat, de le is kapcsolja utána az X szervert.

 

Itt látható egy X -probeonly kimenete:

 

XF86Config: /etc/XF86Config

(**) stands for supplied, (--) stands for probed/default values

(**) XKB: rules: "xfree86"

(**) XKB: model: "pc104"

(**) XKB: layout: "hg"

(**) Mouse: type: MouseMan, device: /dev/mouse, baudrate: 1200

(**) Mouse: buttons: 3, Chorded middle button

(**) SVGA: Graphics device ID: "Primary-Card"

(**) SVGA: Monitor ID: "Primary-Monitor"

(**) FontPath set to

"/usr/X11R6/lib/X11/fonts/misc:unscaled,/usr/X11R6/lib/X11/fonts/75dpi:unscaled,/usr/X11R6/lib/X11/fonts/100dpi:unscaled,/usr/X11R6/lib/X11/fonts/Type1,/usr/X11R6/lib/X11/fonts/Speedo,/usr/X11R6/lib/X11/fonts/misc,/usr/X11R6/lib/X11/fonts/75dpi"

(--) SVGA: PCI: Matrox MGA G200 AGP rev 1, Memory @ 0xe8000000, 0xe4000000

(--) SVGA: Linear framebuffer at 0xE8000000

(--) SVGA: MMIO registers at 0xE4000000

(--) SVGA: Video BIOS info block at 0x000c7540

(--) SVGA: Found and verified enhanced Video BIOS info block

(--) SVGA: detected an SDRAM card

(--) SVGA: chipset:  mgag200

(**) SVGA: videoram: 8192k

(**) SVGA: Option "dac_8_bit"

(**) SVGA: Using 32 bpp, Depth 24, Color weight: 888

(--) SVGA: Maximum allowed dot-clock: 250.000 MHz

(**) SVGA: Mode "800x600": mode clock =  72.800

(**) SVGA: Mode "1024x768": mode clock =  92.960

(**) SVGA: Mode "640x480": mode clock =  50.000

(**) SVGA: Virtual resolution set to 1024x768

(--) SVGA: Using hardware cursor

samson:~ #

Ha nem találtunk valamilyen gyanús üzenetet és nem recsegett túlságosan a monitorunk, akkor bátran kiadhatjuk a startx parancsot és élvezhetjük a Linux grafikai teljesítményét.

Finom beállítás

A /etc/XF86Config fájl utólagos finomhangolása nem árt.

 

# SaX autogenerated XF86Config file

# This file was generated from the SaX

# Version: 2.7 - sax@suse.de

# Date: Sat May  8 21:42:55 MEST 1999

# Xserver:SVGA

# MouseVendor:LOGITECH-DTK

# MouseName:M-S48

# RamDac:250

# Dac8:250

# Dac16:

# Dac24:

# Dac32:250

 

Section "Files"

  RgbPath                "/usr/X11R6/lib/X11/rgb"

  FontPath               "/usr/X11R6/lib/X11/fonts/misc:unscaled"

  FontPath               "/usr/X11R6/lib/X11/fonts/75dpi:unscaled"

  FontPath               "/usr/X11R6/lib/X11/fonts/100dpi:unscaled"

  FontPath               "/usr/X11R6/lib/X11/fonts/Type1"

  FontPath               "/usr/X11R6/lib/X11/fonts/Speedo"

  FontPath               "/usr/X11R6/lib/X11/fonts/misc"

  FontPath               "/usr/X11R6/lib/X11/fonts/75dpi"

EndSection

 

Section "ServerFlags"

  AllowMouseOpenFail

EndSection

 

Section "Module"

EndSection

 

Section "XInput"

EndSection

Section "Keyboard"

  Protocol "Standard"

  XkbRules              "xfree86"

  XkbModel              "pc104"

  XkbLayout             "hg"

  RightAlt  ModeShift

EndSection

 

Section "Pointer"

  Protocol                 "PS/2"

  Device                  "/dev/psaux"

  SampleRate                          60

  BaudRate                             1200

EndSection

 

Section "Monitor"    

  Identifier "Primary-Monitor"

  VendorName        "DTK"

  ModelName          "DE-570 BA"

  HorizSync             30-70

  VertRefresh           50-120

  Modeline "1024x768" 92.96 1024 1024 1200 1352 768 768 778 802

  Modeline "800x600" 72.80 800 816 928 1056 600 600 610 626

  Modeline "640x480" 50.00 640 656 720 832 480 480 489 501

EndSection

 

Section "Device"

  Identifier "Primary-Card"

  VendorName        "MATROX"

  BoardName          "Millenium G200-AGP"

  VideoRam             8192

EndSection

Section "Screen" 

  Driver    "SVGA"

  Device   "Primary-Card"

  Monitor  "Primary-Monitor"

  DefaultColorDepth 32

  SubSection "Display"

    Depth  32

    Modes "800x600" "1024x768" "640x480"

    Virtual  1024 768

  EndSubSection

EndSection

Különösen érdemes odafigyelni a monitor szekció ModeLine soraira, melyek meghatározzák az egyes felbontásokhoz tartozó képfrissítési frekvenciát. Itt nyugodtan javítsunk bele az alább felsorolt használható beállításokkal, csak a monitorunkra vigyázzunk.

 

# 640x480 @ 60 Hz, 31.5 kHz hsync

Modeline "640x480"     25.175 640  664  760  800   480  491  493  525

# 800x600 @ 56 Hz, 35.15 kHz hsync

ModeLine "800x600"     36     800  824  896 1024   600  601  603  625

# 1024x768 @ 87 Hz interlaced, 35.5 kHz hsync

Modeline "1024x768"    44.9  1024 1048 1208 1264   768  776  784  817 Interlace

# 640x480 @ 72 Hz, 36.5 kHz hsync

Modeline "640x480"     31.5   640  680  720  864   480  488  491  521

# 640x480 @ 75 Hz, 37.50 kHz hsync

ModeLine  "640x480"    31.5   640  656  720  840   480  481  484  500 -HSync -VSync

# 800x600 @ 60 Hz, 37.8 kHz hsync

Modeline "800x600"     40     800  840  968 1056   600  601  605  628 +hsync +vsync

# 640x480 @ 85 Hz, 43.27 kHz hsync

Modeline "640x480"     36     640  696  752  832   480  481  484  509 -HSync -VSync

# 1152x864 @ 89 Hz interlaced, 44 kHz hsync

ModeLine "1152x864"    65    1152 1168 1384 1480   864  865  875  985 Interlace

# 800x600 @ 72 Hz, 48.0 kHz hsync

Modeline "800x600"     50     800  856  976 1040   600  637  643  666 +hsync +vsync

# 1024x768 @ 60 Hz, 48.4 kHz hsync

Modeline "1024x768"    65    1024 1032 1176 1344   768  771  777  806 -hsync -vsync

# 640x480 @ 100 Hz, 53.01 kHz hsync

Modeline "640x480"     45.8   640  672  768  864   480  488  494  530 -HSync -VSync

# 1152x864 @ 60 Hz, 53.5 kHz hsync

Modeline  "1152x864"   89.9  1152 1216 1472 1680   864  868  876  892 -HSync -VSync

# 800x600 @ 85 Hz, 55.84 kHz hsync

Modeline  "800x600"    60.75  800  864  928 1088   600  616  621  657 -HSync -VSync

# 1024x768 @ 70 Hz, 56.5 kHz hsync

Modeline "1024x768"    75    1024 1048 1184 1328   768  771  777  806 -hsync -vsync

# 1280x1024 @ 87 Hz interlaced, 51 kHz hsync

Modeline "1280x1024"   80    1280 1296 1512 1568  1024 1025 1037 1165 Interlace

# 800x600 @ 100 Hz, 64.02 kHz hsync

Modeline  "800x600"    69.65  800  864  928 1088   600  604  610  640 -HSync -VSync

# 1024x768 @ 76 Hz, 62.5 kHz hsync

Modeline "1024x768"    85    1024 1032 1152 1360   768  784  787  823

# 1152x864 @ 70 Hz, 62.4 kHz hsync

Modeline  "1152x864"   92    1152 1208 1368 1474   864  865  875  895

# 1280x1024 @ 61 Hz, 64.2 kHz hsync

Modeline "1280x1024"  110    1280 1328 1512 1712  1024 1025 1028 1054

# 1024x768 @ 85 Hz, 70.24 kHz hsync

Modeline "1024x768"   98.9  1024 1056 1216 1408   768 782 788 822 -HSync -VSync

# 1152x864 @ 78 Hz, 70.8 kHz hsync

Modeline "1152x864"   110   1152 1240 1324 1552   864  864  876  908

# 1280x1024 @ 70 Hz, 74.59 kHz hsync

Modeline "1280x1024"  126.5 1280 1312 1472 1696  1024 1032 1040 1068 -HSync -VSync

# 1600x1200 @ 60Hz, 75.00 kHz hsync

Modeline "1600x1200"  162   1600 1664 1856 2160  1200 1201 1204 1250 +HSync +VSync

# 1152x864 @ 84 Hz, 76.0 kHz hsync

Modeline "1152x864"   135    1152 1464 1592 1776   864  864  876  908

# 1280x1024 @ 74 Hz, 78.85 kHz hsync

Modeline "1280x1024"  135    1280 1312 1456 1712  1024 1027 1030 1064

# 1024x768 @ 100Hz, 80.21 kHz hsync

Modeline "1024x768"   115.5  1024 1056 1248 1440  768  771  781  802 -HSync -VSync

# 1280x1024 @ 76 Hz, 81.13 kHz hsync

Modeline "1280x1024"  135    1280 1312 1416 1664  1024 1027 1030 1064

# 1600x1200 @ 70 Hz, 87.50 kHz hsync

Modeline "1600x1200"  189    1600 1664 1856 2160  1200 1201 1204 1250 -HSync -VSync

# 1152x864 @ 100 Hz, 89.62 kHz hsync

Modeline "1152x864"   137.65 1152 1184 1312 1536   864  866  885  902 -HSync -VSync

# 1280x1024 @ 85 Hz, 91.15 kHz hsync

Modeline "1280x1024"  157.5  1280 1344 1504 1728  1024 1025 1028 1072 +HSync +VSync

# 1600x1200 @ 75 Hz, 93.75 kHz hsync

Modeline "1600x1200"  202.5  1600 1664 1856 2160  1200 1201 1204 1250 +HSync +VSync

# 1600x1200 @ 85 Hz, 105.77 kHz hsync

Modeline "1600x1200"  220    1600 1616 1808 2080  1200 1204 1207 1244 +HSync +VSync

# 1280x1024 @ 100 Hz, 107.16 kHz hsync

Modeline "1280x1024"  181.75 1280 1312 1440 1696  1024 1031 1046 1072 -HSync -VSync

# 1800x1440 @ 64Hz, 96.15 kHz hsync

ModeLine "1800X1440"  230    1800 1896 2088 2392 1440 1441 1444 1490 +HSync +VSync

# 1800x1440 @ 70Hz, 104.52 kHz hsync

ModeLine "1800X1440"  250    1800 1896 2088 2392 1440 1441 1444 1490 +HSync +VSync

 

A screen szekcióban határozhatjuk meg, hogy milyen színmélységet használjon az X szerver és milyen felbontások között váltogathatunk a Ctrl+Alt+'összeadás jel a numerikus billentyűzeten' megnyomásával.

Indítás az xdm (kdm) démonnal

Már említettük, hogy az X windows rendszert indíthatjuk karakteres üzemmódból a startx parancs használatával. A másik lehetőség, ha az xdm  (X Desktop Manager), vagy a kdm (K Desktop Manager) programot használjuk. Ennek indításával valamelyik -a futási szintnek- megfelelő rcx.d könyvtárból elérhetjük azt, hogy a Linux már eleve grafikus környezettel indul és várja a felhasználók bejelentkezését. Persze kézzel is indíthatjuk az xdm-et (kdm-et), ha nem akarjuk automatizálni annak indulását. Ne felejtsük el, hogy egyikre sem vonatkozik a hosts.allow és hosts.deny fájlok korlátozása!

Lehetőségek

X terminál

Tipikus felhasználási lehetősége az olcsó linuxos PC-nek, hogy egy "nagy" unixos szerver X termináljaként üzemeltethető. (Nem kell megvenni a gyári X terminálokat 7-800 ezer forintért, elég egy jó monitorvezérlővel és monitorral ellátott, egyébként szerény képességű PC.)

Indítsuk az X szerverünket a következő formában:

 

X -query 192.168.1.200

 

Ahol a 192.168.1.200 a Unixos szerver IP címe.

 

A képernyőnkön máris megjelent a szerver X desktop manager-e (ha az el van indítva rajta) és bejelentkezés után új fényben látjuk az eddig szürke karakteres felületű UNIX szerverünket. Ügyeljünk arra, hogy a UNIX szerveren engedélyezve legyen a távoli X elérés. Ez a UNIX rendszertől függő beállítás. Általában alapértelmezés szerint engedélyezett a belépés. Linux esetén alapértelmezés szerint nem engedélyezett, tehát ha egy Linuxot használunk alkalmazásszervernek, akkor ügyelni kell az engedélyekre.

Programok nem saját képernyőn

Egy másik nagyon érdekes lehetőség, hogy lehetőségünk van úgy indítani programot, hogy annak képernyőkimenete (ablaka, képe, stb…) nem a mi gépünkön van, hanem egy másikon. Ez hasznos lehet, ha van egy nagyon jó grafikai tulajdonságokkal megáldott gép a hálózaton (21”-os LCD monitor, Matrox Millenium monitorvezérlő 16 MB RAM-mal, szép és jó hangrendszer, egér, billentyűzet, stb.) és ezen szeretnénk megjeleníteni kedvenc programunkat, mert a mi gépünknek nincs ilyen jó grafikája, de van benne 4db PentiumIII Xeon processzor és 512MB memória és biztosan sokkal gyorsabban dolgozná fel az adatokat, mint az a másik. Ilyenkor nem kell mást tenni, mint a jó grafikájú gépen (legyen ez goliat) kiadni az xhost +gépnév parancsot.

Pl: xhost +samson

Ezzel engedélyeztük a samson gép számára, hogy használja a gép X szerverét.

Ezek után csak el kell indítani a samson-on a kedvenc programot a következő formában:

prognév –display goliat:0

A prognév legyen a kívánt program, a ’–display goliat:0’ pedig utasítja a programot, hogy a goliat gép első képernyőjén kell megjelennie.

Így használhatjuk a goliat grafikai képességét a samson számolási teljesítményével. (Ne legyünk szkeptikusak a hálózaton át történő képernyővezérlést illetően. Egy 10Mbps hálózaton és 20-30 munkaállomás esetén is olyan a megjelenítés, mintha helyi gépről futna. Köszönhető ez az X Windows System kifinomult vezérlésének. Ha „más rendszeren” már volt rossz tapasztalatunk, arra ne alapozzunk, nem lehet összehasonlítani ezzel…)

Az ablakkezelők

A használható ablakkezelők, mint már mondtuk nagy számban léteznek. Csak a legelterjedtebbek:

kde, fwvm2, fwvm95, afterstep, olwm, mlwm, qvwm, blackbox, bowman, amiwm

·         Az afterstep NeXtStep stílusú.

·         Az fwvm95 Win'9x képűre szabja a desktopot

·         Ha valaki Open Look stílust szeretne, akkor használja az olwm-et

·         Ha a MAC OS tetszik, akkor a mlwm-et próbálja ki.

·         Az fvwm2 a "klasszikus" X felület.

·         Szerintem a legszebb, legkomfortosabb és legkönnyebben testre szabható a KDE, ezért mi most ezt nézzük meg egy kicsit részletesebben. A többi testre szabása egy kicsit nagyobb szakértelmet követel.

 

Mindenki válasszon tetszés szerint pl a kdm desktop manager login ablakában a felhasználó és a jelszó megadása után egy legördülő listából...