27.2. A felhasználói PPP alkalmazása

Frissítette és javította: Tom Rhodes. Eredetileg készítette: Brian Somers. Segített még: Nik Clayton, Dirk Frömberg, és Peter Childs.

Figyelem: A FreeBSD 8.0 változatától kezdődően a soros portokhoz tartozó eszközök nevei /dev/cuadN helyett /dev/cuauN, illetve /dev/ttydN helyett /dev/ttyuN lettek. A FreeBSD 7.X felhasználóknak ezeknek a változásoknak megfelelően kell olvasniuk az itt szereplő dokumentációt.

27.2.1. A felhasználói PPP

27.2.1.1. Előfeltételek

A leírás feltételezi, hogy rendelkezünk a következőkkel:

  • Olyan internet-előfizetés, ahol PPP-n keresztül csatlakozunk

  • Egy modem vagy más olyan rendszerünkhöz csatlakozó eszköz, amelyen keresztül el tudjuk érni az internet-szolgáltatónkat

  • Az internet-előfizetés betárcsázásához szükséges telefonszámok

  • A bejelentkezési nevünk és jelszavunk. (Vagy a megszokott UNIX®-os felhasználói név és jelszó páros, vagy egy PAP esetleg CHAP bejelentkezési név és jelszó.)

  • Egy vagy több névszerver IP-címe. Ehhez az internet-szolgáltatók általában két IP-címet adnak meg. Ha egyet sem kaptunk, akkor a ppp.conf állományban erre a célra használhatjuk az enable dns parancsot, és ekkor a ppp majd automatikusan be fogja állítani nekünk a névszervereket. Ezt a lehetőséget az befolyásolja, hogy az internet-szolgáltató oldalán működő PPP implementáció támogatja-e a névfeloldás egyeztetését (DNS negotiation).

A következő információkat is megkaphatjuk az internet-előfizetésünkhöz, de nem feltétlenül szükségesek:

  • Az internet-szolgáltató átjárójának IP-címe. Az átjáró az a gép, amelyen keresztül a gépünk csatlakozik és számára ez lesz az alapértelmezett átjáró. Ha nem rendelkezünk ezzel az információval, akkor csak állítsunk be valamit, és majd a csatlakozáskor a szolgáltató PPP szervere felülírja a megfelelő beállításokkal.

    Erre a címre a ppp HISADDR néven hivatkozik.

  • A használandó hálózati maszk. Amennyiben a szolgáltató ezt nem adta meg, nyugodtan használjuk erre a 255.255.255.255 értéket.

  • Ha a szolgáltatónk statikus IP-címet és rögzített hálózati nevet is biztosít nekünk, ezt is megadhatjuk. Minden más esetben egyszerűen csak hagyjuk, hogy a rendszer automatikusan válasszon nekünk egyet.

Ha a szükséges információknak nem vagyunk birtokában, akkor vegyük fel a kapcsolatot az internet-szolgáltatókkal.

Megjegyzés: Ebben a szakaszban a példákban szereplő konfigurációs állományok sorait számozva láthatjuk. Ezek a sorszámok a bemutatás és a tárgyalás megkönnyítése érdekében szerepelnek, és nem az eredeti állományok részei. Mindezek mellett a tabulátorok és szóközök megfelelő használata is fontos.

27.2.1.2. A PPP automatikus beállítása

A ppp és a pppd (a PPP rendszerszintű megvalósítása) egyaránt az /etc/ppp könyvtárban található konfigurációs állományokat használja. A felhasználói PPP-hez ezenkívül még a /usr/share/examples/ppp/ könyvtárban vannak példák.

A ppp parancs beállítása az igényeinktől függően számos állomány módosítását igényelheti. A tartalmukat nagyban befolyásolja, hogy a szolgáltatónk részéről a címeket kiosztása statikus (vagyis egy adott címet kapunk és folyamatosan azt használjuk) esetleg dinamikus (vagyis az IP-címünk minden egyes kapcsolódáskor más és más).

27.2.1.2.1. PPP statikus IP-címmel

Ebben az esetben az /etc/ppp/ppp.conf konfigurációs állományt kell átszerkesztenünk. Tartalma az alábbi példához hasonlítható.

Megjegyzés: A : karakterrel végződő sorok mindig az első oszlopban kezdődnek (tehát a sor elején), míg az összes többi sort tabulátorok vagy szóközök használatával bentebb kell raknunk.

1     default:
2       set log Phase Chat LCP IPCP CCP tun command
3       ident user-ppp VERSION (built COMPILATIONDATE)
4       set device /dev/cuau0
5       set speed 115200
6       set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \
7                 \"\" AT OK-AT-OK ATE1Q0 OK \\dATDT\\T TIMEOUT 40 CONNECT"
8       set timeout 180
9       enable dns
10
11    szolgaltato:
12      set phone "(123) 456 7890"
13      set authname ize
14      set authkey mize
15      set login "TIMEOUT 10 \"\" \"\" gin:--gin: \\U word: \\P col: ppp"
16      set timeout 300
17      set ifaddr x.x.x.x y.y.y.y 255.255.255.255 0.0.0.0
18      add default HISADDR

1. sor:

Ez azonosítja be az alapértelmezett bejegyzést. Az itt szereplő parancsok a ppp minden egyes futásakor magukból végrehajtódnak.

2. sor:

Beállítja a naplózás paramétereit. Amikor a beállításaink már kifogástalanul működnek, akkor ezt a sort érdemes átírni a következőre:

set log phase tun

Ezzel jelentős mértékben vissza tudjuk fogni a naplózás mértékét.

3. sor:

Ezzel mondjuk meg a PPP-nek, hogy a többiek felé miként azonosítsa magát. A PPP akkor azonosítja magát a társak felé, ha valamilyen gondja akad az egyeztetésekkel és a kapcsolat beállításával. Az így továbbított információk a másik oldal rendszergazdái számára nyújthatnak segítséget az ilyen jellegű problémák felderítésében.

4. sor:

Itt adjuk meg az eszközt, amelyre a modem csatlakozik. A COM1 neve /dev/cuau0, a COM2 neve pedig /dev/cuau1.

5. sor:

A csatlakozás sebességét adjuk meg. Ha a 115 200-as érték itt nem működne (ez egyébként minden újabb gyártmányú modem esetében elfogadható), akkor helyette használjuk a 38400-as beállítást.

6. és 7. sorok:

A híváshoz használt karakterlánc. A felhasználói PPP a chat(8) programhoz hasonló “küldök-várok” típusú szerkesztést alkalmaz. A kihasználható lehetőségekről a man oldalán olvashatunk részletesebben.

Az olvashatóság kedvéért a parancs a következő sorban folytatódik. A ppp.conf állományban bármelyik parancs, ahol a \ karakterrel zárjuk a sort, az ugyanígy folytatható a következőben.

8. sor:

A kapcsolathoz tartozó üresjárati időt állítja be. Ennek értéke alapból 180 másodperc, így ez a sor pusztán csak az érthetőséget szolgálja.

9. sor:

Arra utasítja a PPP-t, hogy a többiektől kérdezze le a helyi névfeloldó beállításait. Ha saját névszervert futtatunk, akkor ezt a sort tegyük inkább megjegyzésbe vagy töröljük ki.

10. sor:

Ez az üres sor az átláthatóság kedvéért került bele. A PPP az összes üres sort figyelmen kívül hagyja.

11. sor:

Itt kezdődik a “szolgaltato” nevű szolgáltatóhoz tartozó bejegyzés. Ezt később akár ki is cserélhetjük az internet-szolgáltatónk nevére, így a load szolgáltató beállítással tudjuk majd beindítani a kapcsolatot.

12. sor:

Beállítjuk a szolgáltatóhoz tartozó telefonszámot. A kettőspont (:) vagy a csővezeték (|) karakterekkel elválasztva több telefonszámot is meg tudunk adni. A ppp(8) oldalon olvashatunk a két elválasztó közti különbségekről. Röviden ezeket úgy foglalhatnánk össze, hogy ha váltogatni akarunk a számok között, akkor használjuk a kettőspontot. Ha mindig az elsőként megadott számot akarjuk hívni és a többit csak akkor, ha ez nem működik, akkor a csővezeték karakterre lesz szükségünk. Ahogy a példa is mutatja, az összes telefonszámot tegyük mindig idézőjelek közé.

Ha a telefonszámban egyébként is szerepelnek szóközök, akkor is idézőjelek (") közé kell tennünk. Ennek elhagyásával egy egyszerű, ámde kényes hibát ejtünk.

13. és 14. sor:

A felhasználói nevet és jelszót tartalmazza. Amikor egy UNIX fajtájú bejelentkezést kapunk, akkor ezekre az értékekre a set login parancsban \U és \P változókkal tudunk hivatkozni. Ha PAP vagy CHAP használatával jelentkezünk be, akkor ezek az értékek a hitelesítéskor kerülnek felhasználásra.

15. sor:

Ha a PAP vagy CHAP protokollok valamelyikét használjuk, akkor nem lesz szükségünk a login változóra, ezért ezt megjegyzésbe is tehetjük, vagy akár ki is törölhetjük. A PAP és CHAP hitelesítésről szóló részben olvashatjuk ennek további részleteit.

A bejelentkezéshez használt karakterlánc hasonlít a behíváshoz használt, chat-szerű felépítéssel rendelkező karakterlánchoz. A példában látható karakterlánc egy olyan szolgáltatáshoz illeszkedik, ahol a bejelentkezés valahogy így néz ki:

A Világ Legjobb Szolgáltatója
login: izé
password: mizé
protocol: ppp

Ezt a szkriptet alakítsuk a saját igényeinkhez. Ha először próbálkozunk ilyen szkript írásával, akkor lehetőleg kapcsoljuk be a rendszerek között lezajló “beszélgetés” naplózását, hogy ellenőrizni tudjuk minden a megfelelően módon történik-e.

16. sor:

Beállítjuk a kapcsolathoz tartozó alapértelmezett időkorlátot (másodpercben). Itt a kapcsolat automatikusan lezárul 300 másodperc tétlenséget követően. Ha nem akarunk ilyen korlátot szabni, akkor ezt az értéket állítsuk nullára vagy használjuk a -ddial paranccsori kapcsolót.

17. sor:

A felülethez tartozó címeket állítja be. A x.x.x.x helyére a szolgáltató által kiosztott IP-címet kell beírnunk. A y.y.y.y helyett pedig a szolgáltató átjárója kerül be (lényegében az a gép, amelyhez csatlakozunk). Amennyiben az internet-szolgáltatónk nem adott meg semmilyen átjárót, erre a célra a 10.0.0.2/0 címet is használhatjuk. Amikor “nekünk kell kitalálnunk” ezeket a címeket, akkor ne felejtsünk el létrehozni hozzájuk egy bejegyzést az /etc/ppp/ppp.linkup állományban a PPP dinamikus IP-címmel szakaszban szereplőek szerint. Ha nem adjuk meg ezt a sort, akkor a ppp parancs nem képes -auto módban működni.

18. sor:

A szolgáltató átjárójához felvesz egy alapértelmezett útvonalat. A HISADDR kulcsszót a 17. sorban megadott átjáró címével helyettesítjük. Ezért fontos, hogy ez a 17. sor után szerepeljen, különben a HISADDR nem lesz képes inicializálódni.

Ha a ppp parancsot nem akarjuk -auto módban futtatni, akkor ezt a sort a ppp.linkup állományba is átrakhatjuk.

Ha statikus IP-címmel rendelkezünk és a ppp -auto módban fut, akkor a ppp.linkup állományba egészen addig nem kell semmit sem írnunk, amíg a csatlakozás előtt az útválasztási táblázatokban a megfelelő adatok találhatóak. Olyankor is jól jöhet, amikor a csatlakozást követően meg akarunk hívni bizonyos programokat. Ezt majd a sendmailes példában fogjuk bővebben kifejteni.

Erre példákat a /usr/share/examples/ppp/ könyvtárban találhatunk.

27.2.1.2.2. PPP dinamikus IP-címmel

Ha az internet-szolgáltatónktól nem kaptunk statikus IP-címet, akkor a ppp paranccsal is be tudjuk állítani a helyi és távoli címeket. Ez az IP-címek “kitalálásával” történik, valamint úgy, hogy a ppp számára a csatlakozás után lehetővé tesszük az IP konfigurációs protocol (IP Configuration Protocol, IPCP) használatát. A ppp.conf tartalma szinte teljesen megegyezik a PPP statikus IP-címmel részben szereplővel, egyetlen apró különbséggel:

17      set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.255

Ismét szeretnénk elmondani, hogy a sorszámot ne írjuk bele, hiszen az csak hivatkozási céllal szerepel. Legalább egy szóközzel kezdjünk bentebb.

17. sor:

A / után megjelenő szám azoknak a biteknek a számát adja meg, amire a ppp támaszkodik. A környezetünknek jobban megfelelő IP-címeket is megadhatunk, de a fenti példa minden esetben működni fog.

Az utolsó paraméterrel (0.0.0.0) azt mondjuk a PPP-nek, hogy az egyeztetést ne a 10.0.0.1, hanem a 0.0.0.0 címmel kezdje meg, amire egyes szolgáltatók esetén szükségünk is lesz. A set ifaddr első paramétereként azonban soha ne adjuk meg a 0.0.0.0 címet, mivel ezzel a PPP -auto módban nem tudja beállítani a kezdeti útvonalat.

Ha nem -auto módban indítjuk, akkor az /etc/ppp/ppp.linkup állományban meg kell adnunk még egy bejegyzést is. A ppp.linkup állományt a kapcsolat létrejötte után dolgozzuk fel. Itt már a ppp megkapta a felülethez tartozó címeket, így az útválasztási táblázatba fel tudjuk venni hozzájuk a megfelelő bejegyzéseket:

1     szolgaltato:
2      add default HISADDR

1. sor:

A kapcsolat felépítése során a ppp a ppp.linkup állományban a következő szabályok szerint fogja keresni a bejegyzéseket: először a ppp.conf állományban megadott címkét próbálja megtalálni. Ha ez nem sikerül, akkor az átjárónknak megfelelő bejegyzést kezdi el keresni. Ez egy négy byte-ból álló, felírásában az IP-címekhez hasonlító címke. Ha még ez a címke sem található, akkor a MYADDR bejegyzést keresi.

2. sor:

Ez a sor mondja meg a ppp programnak, hogy vegyen fel egy HISADDR címre vonatkozó alapértelmezett útvonalat. A HISADDR címet az IPCP által egyeztetett átjáró IP-címére cseréljük ki.

Ha erre a részletesebb példát akarunk látni, akkor a /usr/share/examples/ppp/ppp.conf.sample és /usr/share/examples/ppp/ppp.linkup.sample állományokban a pmdemand bejegyzést nézzük meg.

27.2.1.2.3. A bejövő hívások fogadása

Amikor egy helyi hálózathoz csatlakozó gépen akarjuk a ppp programot beállítani a bejövő hívások fogadására, akkor azt is el kell döntenünk, hogy engedélyezzük-e a csomagok továbbküldését a belső hálózat felé. Amennyiben igen, akkor a becsatlakozó gépenek a belső hálózatunkon ki kell osztani egy külön címet és az /etc/ppp/ppp.conf állományban, és meg kell adnunk az enable proxy parancsot. Emellett még az /etc/rc.conf állományban se feleljtsük el megadni a következő sort:

gateway_enable="YES"

27.2.1.2.4. Melyik getty?

A FreeBSD beállítása betárcsázós kapcsolatokhoz nagyon jól bemutatja a betárcsázós szolgáltatások beállítását a getty(8) segítségével.

A getty helyett egyébként az mgetty, a getty egy ügyesebb változata is használható (a comms/mgetty+sendfax portból), amely kifejezetten a betárcsázós vonalakhoz készült.

A mgetty használatának többek közt az egyik előnye, hogy aktívan tartja a kapcsolatot a modemekkel, tehát hogy ha az /etc/ttys állományban letiltjuk a modemet, akkor nem is fog válaszolni a hívásokra.

Emellett az mgetty későbbi változatai (a 0.99 beta változatától kezdve) még a PPP folyamok automatikus észlelését is támogatják, ezáltal a kliensek szkriptek nélkül is képesek elérni a szerverünket.

Ha erről többet akarunk megtudni, akkor az mgetty paranccsal kapcsolatban olvassuk el Az mgetty és az AutoPPP című szakaszt.

27.2.1.2.5. A PPP engedélyei

A ppp parancsot általában root felhasználóként kell futtatni. Ha viszont a ppp parancsot tetszőleges felhasználóval akarjuk szerver módban futtatni az iméntiek szerint, akkor ahhoz fel kell vennünk az /etc/group állományban szereplő network csoportba.

Ezeken kívül még az allow paranccsal is engedélyeznünk kell konfigurációs állomány egy vagy több részének elérését is:

allow users fred mary

Ha ezt a parancsot a default bejegyzésnél adjuk meg, akkor az így megadott felhasználók mindenhez hozzá tudnak férni.

27.2.1.2.6. PPP shellek a dinamikus IP-címek használóinak

Hozzunk létre egy /etc/ppp/ppp-shell nevű állományt, amelyben a következők szerepelnek:

#!/bin/sh
IDENT=`echo $0 | sed -e 's/^.*-\(.*\)$/\1/'`
CALLEDAS="$IDENT"
TTY=`tty`

if [ x$IDENT = xdialup ]; then
        IDENT=`basename $TTY`
fi

echo "PPP for $CALLEDAS on $TTY"
echo "Starting PPP for $IDENT"

exec /usr/sbin/ppp -direct $IDENT

Ez a szkript legyen végrehajtható. Ezután az alábbi paranccsal ppp-dialup néven készítsünk egy szimbolikus linket erre a szkriptre:

# ln -s ppp-shell /etc/ppp/ppp-dialup

Ez a szkript lesz az összes betárcsázó felhasználónk shellje. A most következő példa az /etc/passwd állományban szereplő, pchilds nevű PPP felhasználó bejegyzését mutatja be (ne felejtsük el, hogy soha ne közvetlenül szerkesszük a jelszavakat tároló állományt, hanem a vipw(8) segítségével).

pchilds:*:1011:300:Peter Childs PPP:/home/ppp:/etc/ppp/ppp-dialup

Hozzunk létre egy /home/ppp nevű könyvtárat a következő bárki által olvasható 0 byte-os állományokkal:

-r--r--r--   1 root     wheel           0 May 27 02:23 .hushlogin
-r--r--r--   1 root     wheel           0 May 27 02:22 .rhosts

Ezek hatására az /etc/motd állomány tartalma nem jelenik meg.

27.2.1.2.7. PPP shellek a statikus IP-címek használóinak

Az iméntiekhez hasonló módon készítsük el a ppp-shell állományt, és mindegyik statikus IP-vel rendelkező hozzáféréshez csináljunk egy szimbolikus linket a ppp-shell szkriptre.

Például, ha három betárcsázós ügyfelünk van, fred, sam és mary, feléjük 24 bites CIDR hálózatokat közvetítünk, akkor a következőket kell begépelnünk:

# ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-fred
# ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-sam
# ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-mary

A fentebb szereplő betárcsázós felhasználók eléréseihez tartozó shelleket állítsuk be az itt létrehozott szimbolikus linkekre (így tehát mary shellje az /etc/ppp/ppp-mary lesz).

27.2.1.2.8. A ppp.conf beállítása a dinamikus IP-címek használóinak

Az /etc/ppp/ppp.conf állományban a következő sorok valamelyikének kellene szerepelnie:

default:
  set debug phase lcp chat
  set timeout 0

ttyu0:
  set ifaddr 203.14.100.1 203.14.100.20 255.255.255.255
  enable proxy

ttyu1:
  set ifaddr 203.14.100.1 203.14.100.21 255.255.255.255
  enable proxy

Megjegyzés: A bentebb kezdett sorokat mi is kezdjünk bentebb.

A default: szakasz minden kapcsolat esetén betöltődik. Az /etc/ttys állományban engedélyezett mindegyik betárcsázós vonal létrehoz a fenti ttyu0: szakaszhoz hasonló bejegyzést. Minden vonal kap egy egyedi IP-címet a dinamikus felhasználók számára szánt címtartományból.

27.2.1.2.9. A ppp.conf beállítása a statikus IP-vel rendelkezők számára

A /usr/share/examples/ppp/ppp.conf állományban szereplő tartalom mellett az összes statikus kiosztású IP-címmel rendelkező betárcsázó felhasználóhoz még hozzá kell tennünk egy szakaszt. A példánkban ezek továbbra is fred, sam és mary.

fred:
  set ifaddr 203.14.100.1 203.14.101.1 255.255.255.255

sam:
  set ifaddr 203.14.100.1 203.14.102.1 255.255.255.255

mary:
  set ifaddr 203.14.100.1 203.14.103.1 255.255.255.255

Amennyiben szükséges, az /etc/ppp/ppp.linkup tartalmazhat további útválasztási információkat is az egyes statikus IP-címmel rendelkező felhasználókhoz. A lentebb bemutatott sor a kliens ppp összekötettésén keresztül vesz fel egy útvonalat a 203.14.101.0/24 hálózat felé.

fred:
  add 203.14.101.0 netmask 255.255.255.0 HISADDR

sam:
  add 203.14.102.0 netmask 255.255.255.0 HISADDR

mary:
  add 203.14.103.0 netmask 255.255.255.0 HISADDR

27.2.1.2.10. Az mgetty és az AutoPPP

Az comms/mgetty+sendfax port alapértelmezés szerint az AUTO_PPP beállítással érkezik, amely lehetővé teszi, hogy az mgetty képessé legyen a PPP kapcsolatok LCP fázisát észlelni és magától létrehozni hozzá egy ppp shellt. Mivel az alapértelmezett név/jelszó páros azonban ilyenkor nem jelenik meg, a felhasználókat a PAP vagy a CHAP protokollon keresztül lehet hitelesíteni.

Ez a szakasz most feltételezi, hogy a sikeresen beállítottuk, lefordítottuk és telepítettük az comms/mgetty+sendfax portot.

Az /usr/local/etc/mgetty+sendfax/login.config állományban ne felejtsük ellenőrizni, hogy szerepel a következő:

/AutoPPP/ -     -		      /etc/ppp/ppp-pap-dialup

Ezzel utasítjuk az mgetty programot arra, hogy az észlelt PPP kapcsolatokhoz futtassa le a ppp-pap-dialup szkriptet.

Hozzunk létre az /etc/ppp/ppp-pap-dialup nevű állományt, amelyben majd a következők fognak szerepelni (az állomány legyen végrehajtható):

#!/bin/sh
exec /usr/sbin/ppp -direct pap$IDENT

Az /etc/ttys állományban engedélyezett összes betárcsázós vonalhoz készítsük el a megfelelő bejegyzést az /etc/ppp/ppp.conf állományban. Ezek remekül meg fognak férni az imént készített definíciókkal.

pap:
  enable pap
  set ifaddr 203.14.100.1 203.14.100.20-203.14.100.40
  enable proxy

Minden olyan felhasználónak, aki ezzel a módszerrel jelentkezik be, szüksége lesz egy név/jelszó kombinációra az /etc/ppp/ppp.secret állományban, vagy az alábbi beállítás megadásával választhatjuk azt is, hogy a felhasználókat az /etc/passwd állományon keresztül a PAP protokoll segítségével azonosítjuk.

enable passwdauth

Ha statikus IP-címet akarunk kiosztani némely felhasználóknak, akkor az /etc/ppp/ppp.secret állományban ezt megadhatjuk a harmadik paraméternek. Erről bővebben a /usr/share/examples/ppp/ppp.secret.sample állományban láthatunk példát.

27.2.1.2.11. A Microsoft kiterjesztései

A PPP úgy is beállítható, hogy kérésre DNS és NetBIOS típusú névfeloldáshoz is szolgáltasson információkat.

A PPP 1.x változatával úgy lehet engedélyezni ezeket a kiterjesztéseket, ha az /etc/ppp/ppp.conf állomány megfelelő részeibe felvesszük a következő sorokat:

enable msext
set ns 203.14.100.1 203.14.100.2
set nbns 203.14.100.5

A PPP második és későbbi változataiban pedig:

accept dns
set dns 203.14.100.1 203.14.100.2
set nbns 203.14.100.5

Ezzel a kliens megkapja az elsődleges és másodlagos névszerverek címeit, valamint a NetBIOS névszervert.

Ha a második és az azt követő verziókban a set dns sort elhagyjuk, akkor a PPP az /etc/resolv.conf állományban található értékeket fogja használni.

27.2.1.2.12. A PAP és CHAP hitelesítés

Egyes internet-szolgáltatók úgy állítják be a rendszerüket, hogy a kapcsolat felépítése során a hitelesítés a PAP vagy CHAP mechanizmusok valamelyikével történik. Ilyenkor a szolgáltató nem egy login: sorral fogja bekérni a szükséges adatokat, hanem közvetlenül a PPP kapcsolatot kezdi el használni.

A PAP nem olyan biztonságos, mint a CHAP, de itt a biztonság nem is annyira fontos, mivel a jelszavak, amelyeket ugyan a PAP titkosítatlan formában küld tovább, csak egy soros vonalon haladnak át. A rossz indulatú támadók itt nem sok mindent tudnak “lehallgatni”.

A PPP statikus IP-címmel és a PPP dinamikus IP címmel című szakaszokhoz képest a következő módosításokat kell elvégeznünk:

13      set authname AFelhasználóiNevem
14      set authkey AJelszavam
15      set login

13. sor:

Ebben a sorban adjuk meg a PAP/CHAP felhasználói nevünket, amelyet AFelhasználóiNevem helyett kell beírni.

14. sor:

Ebben a sorban adjuk meg a PAP/CHAP jelszavunkat, AJelszavam helyett. Szándénkunk egyértelműsítése érdekében ezek mellett még egy további sort is érdemes felvennünk, tehát:

16      accept PAP

vagy

16      accept CHAP

Alapértelmezés szerint a PAP és CHAP is egyaránt elfogadott.

15. sor:

A PAP és CHAP alkalmazásakor általában nem is kell bejelentkeznünk a szolgáltató szerverére. Ezért a “set login” parancsnál használt karakterláncot le is kell tiltanunk.

27.2.1.2.13. A ppp beállításainak megváltoztatása menet közben

A háttérben futó ppp programhoz menet közben is tudunk beszélni, de csak olyankor, amikor az ehhez szükséges portot megadtuk. Ezt úgy tudjuk megtenni, ha beállítások közé felvesszük az alábbit:

set server /var/run/ppp-tun%d DiagnosticPassword 0177

Így a PPP az előre megadott UNIX tartománybeli socketen keresztül fogja várni a kapcsolódásunkat, és a konkrét hozzáféréshez jelszót kér. A névben szereplő %d a használatban levő tun eszköz sorszámát jelöli.

Miután a csatlakozás beállítódott, a szkriptekben a pppctl(8) program használható a futó program vezérléséhez.

27.2.1.3. A PPP hálózati címfordítási képességének kihasználása

A PPP képes a rendszermag rásegítése nélkül képes hálózati címfordítást végezni. Ezt a lehetőséget a következő sor hozzáadásával tudjuk aktiválni az /etc/ppp/ppp.conf állományban:

nat enable yes

A PPP-be épített hálózati címfordítás a -nat parancssori paraméterrel is bekapcsolható. Az /etc/rc.conf állományban is található hozzá egy ppp_nat változó, amely alapértelmezés szerint engedélyezett.

Amikor használjuk ezt a lehetőséget, az /etc/ppp/ppp.conf állományban a következő opciókkal engedélyezhetjük a bejövő kapcsolatok továbbítását:

nat port tcp 10.0.0.2:ftp ftp
nat port tcp 10.0.0.2:http http

vagy egyáltalán ne bízzunk meg a külvilágban:

nat deny_incoming yes

27.2.1.4. A rendszer végső beállítása

Mostanra ugyan már beállítottuk a ppp programot, azonban még néhány dolgot be kell állítanunk, mielőtt ténylegesen nekilátnánk használni. Ezek mindegyike az /etc/rc.conf állomány módosítását igényli.

Az állományt fentről lefelé fogjuk feldolgozni, de előtte ne felejtsünk el értéket adni a hostname= változónak, például:

hostname="ize.minta.com"

Amennyiben a szolgáltatónk statikus IP-címet és nevet biztosít számunkra, az lesz a legjobb, ha itt a tőle kapott nevet adjuk meg.

Keressük meg a network_interfaces változót. Ha a rendszerünkben kérésre akarjuk tárcsázni a szolgáltatónkat, akkor a tun0 eszközt mindenképpen vegyük fel az értékébe, minden más esetben pedig távolítsuk el.

network_interfaces="lo0 tun0"
ifconfig_tun0=

Megjegyzés: Az ifconfig_tun0 változónak üres értéket kell megadnunk, és létre kell hoznunk egy /etc/start_if.tun0 nevű állományt. Ebben a következő sornak kell szerepelnie:

ppp -auto arendszerem

Ez a szkript a hálózat beállításakor fut le, és a ppp démont automatikus módban indítja el. Ha az adott gép egy helyi hálózat átjárója is egyben, akkor az -alias kapcsolót is érdemes megadnunk mellette. A pontosabb részletek tekintetében olvassuk el a megfelelő man oldalt.

Az /etc/rc.conf állományban a NO érték megadásával tiltsuk le az útválasztást végző program használatát:

router_enable="NO"

Fontos, hogy a routed démon ne induljon el, mivel routed hajlamos törölni a ppp által létrehozott alapértelmezett útválasztási bejegyzéseket.

Ezenkívül még a sendmail_flags változóról szóló sorból is érdemes kivenni a -q opciót, máskülönben a sendmail minden művelet megkezdése előtt nekiáll felderíteni a hálózatot, és ezzel megindítja a tárcsázást. Próbáljuk meg így átírni az értékét:

sendmail_flags="-bd"

Ezért cserébe viszont a sendmail programot a ppp kapcsolat létrejöttekor mindig utasítanunk kell, hogy újból ellenőrizze a levelezési sort. Ezt a következők begépelésével érhetjük el:

# /usr/sbin/sendmail -q

Ugyanezt automatikusan is meg tudjuk tenni a !bg paranccsal a ppp.linkup állományban:

1     szolgaltato:
2       delete ALL
3       add 0 0 HISADDR
4       !bg sendmail -bd -q30m

Ha nem felelne meg ez a megoldás, akkor egy “dfilter” is beállítható az SMTP forgalom szűrésére. A példák között megtaláljuk ennek pontos minkéntjét.

Ezután már csak a gépünk újraindítása maradt hátra. Az újraindítás után már be is gépelhetjük:

# ppp

ahol a dial szolgaltato parancs kiadásával meg tudjuk kezdeni a PPP kapcsolat felépítését, vagy a ppp programot megkérhetjük arra, hogy automatikusan kezdje el, amint van kimenő forgalom (és nem készítettük el a start_if.tun0 szkriptet). Ekkor gépeljük be ezt:

# ppp -auto szolgaltato

27.2.1.5. Összefoglalás

Gyorsan foglaljuk össze, hogy az ppp beállításához milyen lépések megtétele szükséges az első alkalommal:

A kliens oldalán:

  1. Győződjünk meg róla, hogy a tun eszköz benne van a rendszermagban.

  2. Ellenőrizzük, hogy a tunN eszközhöz tartozó állomány rendelkezésre áll a /dev könyvtárban.

  3. Hozzunk létre egy bejegyzést az /etc/ppp/ppp.conf állományban. A pmdemand példából a legtöbb szolgáltató esetében ki tudunk indulni.

  4. Ha dinamikus IP-címet kapunk, akkor az /etc/ppp/ppp.linkup állományba is vegyünk fel egy bejegyzést.

  5. Frissítsük az /etc/rc.conf állományunkat.

  6. Ha igény szerint akarunk tárcsázni, akkor hozzunk létre start_if.tun0 néven egy szkriptet.

A szerver oldalán:

  1. Gondoskodjunk róla, hogy a tun eszköz támogatása szerepel rendszermagban.

  2. Győződjünk meg róla, hogy a tunN eszköz megtalálható a /dev könyvtárban.

  3. Az /etc/passwd állományban (a vipw(8) program használatával) hozzunk létre bejegyzéseket.

  4. A felhasználók könyvtáraiban hozzunk létre egy olyan profilt, amely ppp -direct direct-server vagy egy ehhez hasonló parancsot futtat le.

  5. Az /etc/ppp/ppp.conf állományban adjuk meg egy bejegyzést. A direct-server példa ehhez egy remek alapot biztosít.

  6. Az /etc/ppp/ppp.linkup állományban hozzunk létre egy bejegyzést.

  7. Frissítsük az /etc/rc.conf állományunkat.

Ha kérdése van a FreeBSD-vel kapcsolatban, a következő címre írhat (angolul): <freebsd-questions@FreeBSD.org>.
Ha ezzel a dokumentummal kapcsolatban van kérdése, kérjük erre a címre írjon: <gabor@FreeBSD.org>.