FreeBSD kézikönyv
Előző | Fejezet 27. A PPP és a SLIP | Következő

# 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/cuad`N`` helyett `/dev/cuau`N``, illetve `/dev/ttyd`N`` helyett `/dev/ttyu`N`` 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 `tun`N`` 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 `tun`N`` 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.

Előző | Tartalom | Következő
A PPP és a SLIP | Fel | A rendszerszintű PPP alkalmazása

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>.