Naprej Nazaj Kazalo

4. Povezava PPP z MSCHAP

Prvi korak k vzpostavitvi PPP povezave s funkcijo povratnega klica, je nastavitev "navadne" PPP povezave preko protokola MS-CHAP.

4.1 Klicni skript pppd

Klicni skript 'pppd', ki je opisan v tem odstavku je en primer klicnega skripta.

#!/bin/bash
# Pokličimo Windows NT 4.0 Server
/usr/sbin/pppd /dev/modem 38400 file "/etc/ppp/options.nt"

Datoteka: dial_winnt

Datoteka z razlago parametrov dial_winnt:

/dev/modem                   : naprava, na katero je priklopljen modem
38400                        : hitrost vrat
file "/etc/ppp/options.nt"   : datoteka z ostalimi možnostmi - glej naslednji razdelek

4.2 Konfiguracijska datoteka /etc/ppp/options.nt

V tej datoteki so ostale možnosti za prikriti proces pppd.

connect '/usr/sbin/chat -v -f /etc/ppp/win_nt.chat'
crtscts
bsdcomp 15
lock
debug
192.168.0.3:0.0.0.0
name "domain\\my_login"
remotename "inbelnt"
-detach
receive-all

Datoteka /etc/ppp/options.nt z razlago parametrov:

connect '....'             : Modemska povezava je vzpostavljena s programom
                           : 'chat'.
                           : Informacije, ki so potrebne za 'chat' so v datoteki
                           : win_nt.chat (to pomeni možnost -f).
                           : Datoteka win_nt.chat je razložena spodaj.
                           : Parameter -v pomeni, da so vse dnevniške datoteke
                           : prek syslogd shranjene v /var/log/messages. 
 crtscts                   : Uporabi strojni nadzor
 bsdcomp 15                : Uporabi komprimiranje v slogu BSD
 lock                      : Zakleni modem 
 debug                     : Aktiviraj razhroščevalno datoteko. Vsa sporočila
                           : so shranjena v /var/log/messages. 
 192.168.0.3:0.0.0.0       : Definicija oddaljenega ter lokalnega naslova IP
                           : v slogu: from <local_ip_addr>:<remote_ip_addr>. 
 name "domain\\my_login"   : Vaše NT uporabniško ime. To mora biti enako kot
                           : v datoteki chap-secrets.
                           : Najvarneje je uporabiti obliko domena\\uporabnik.
 remotename "inbelnt"      : Ime vašega NT strežnika. PPPD ga potrebuje za
                           : datoteko chap-secrets. 
 -detach                   : Odklopi se z nadzornega terminala. PPPD bo postal
                           : proces v ozadju. 
 receive-all               : To je za "čukaste" OS, kot MS, ki ne znajo prav
                           : dobro uporabljati asyncmap. 

Datoteka /etc/ppp/win_nt.chat z razlago parametrov:

TIMEOUT 60          : Prekini po 60 sekundah, če ni odziva.
ABORT BUSY          : Prekliči, če je modem zaseden.
ABORT "NO DIALTONE" : Prekliči, če ni klicnega signala.
ABORT ERROR         : Prekliči, če modem javi napako.
ABORT "NO CARRIER"  : Prekliči, če ni nosilca.
"" +++ATZ           : Inicializiraj modem.
OK ATE1Q0&C1&S0DT555222 : Kliči 555222
CONNECT ""          : Čakaj, da modem javi vzpostavljeno povezavo.

4.3 Datoteka /etc/ppp/chap-secrets

Strežnik PPPD uporablja chap-secrets za avtentikacijo z NT strežnikom. Videti naj bi bila nekako takole:

# Skrivnosti za avtentikacijo z uporabo CHAP protokola
# odjemnik strežnik skrivnost naslov IP
domena\\uporabnisko_ime streznik_nt moje_geslo
streznik_nt domain\\uporabnisko_ime moje_geslo

V tej datoteki ne uporabljajte presledkov! Najboljši način za ločitev parametrov je s pomočjo tipke 'TAB'.

Odjemniški parameter 'uporabnisko_ime' je enak vašemu uporabniškemu imenu za NT. Strežniški parameter 'streznik_nt' je poljuben. Potreben je samo lokalno - za delovanje demona PPPD. NT strežnik pri avtentikacijskem postopku ne uporablja tega parametra.

4.4 Protokol PPP/MSCHAP-Link

Sedaj je čas za vzpostavitev povezave. Ker je v vseh konfiguracijskih datotekah parameter 'debug' vklopljen, se sporočila dodajajo v dnevniško datoteko /var/log/messages. Kako spremeniti datoteko syslog.conf je opisano v dodatku. V oknu zaženite skript dial_winnt. Če želite sproti spremljate beleženje sporočil, v drugem oknu napišite ,tail -f /var/log/messages`.

Ustrezen del dnevniške datoteke /var/log/messages bi morala izgledati nekako takole:

Jan 26 15:50:25 dijklinux pppd[487]: pppd 2.3.5 started by root, uid 0
Jan 26 15:50:27 dijklinux chat[488]: timeout set to 60 seconds
Jan 26 15:50:27 dijklinux chat[488]: abort on (BUSY)
Jan 26 15:50:27 dijklinux chat[488]: abort on (NO DIALTONE)
Jan 26 15:50:27 dijklinux chat[488]: abort on (ERROR)
Jan 26 15:50:27 dijklinux chat[488]: abort on (NO CARRIER)
Jan 26 15:50:27 dijklinux chat[488]: send (+++ATZ^M)
Jan 26 15:50:27 dijklinux chat[488]: expect (OK)
Jan 26 15:50:28 dijklinux chat[488]: +++ATZ^M^M
Jan 26 15:50:28 dijklinux chat[488]: OK
Jan 26 15:50:28 dijklinux chat[488]: -- got it
Jan 26 15:50:28 dijklinux chat[488]: send (ATE1Q0&C1&S0DT555222^M)
Jan 26 15:50:28 dijklinux chat[488]: expect (CONNECT)
Jan 26 15:50:28 dijklinux chat[488]: ^M
Jan 26 15:50:48 dijklinux chat[488]: ATE1Q0&C1&S0DT555222^M^M
Jan 26 15:50:48 dijklinux chat[488]: CONNECT
Jan 26 15:50:48 dijklinux chat[488]: -- got it
Jan 26 15:50:48 dijklinux chat[488]: send (^M)
Jan 26 15:50:48 dijklinux pppd[487]: Serial connection established.
Jan 26 15:50:49 dijklinux kernel: PPP: version 2.2.0 (dynamic channel allocation)
Jan 26 15:50:49 dijklinux kernel: PPP Dynamic channel allocation code copyright 1995 Caldera, Inc.
Jan 26 15:50:49 dijklinux kernel: PPP line discipline registered.
Jan 26 15:50:49 dijklinux kernel: registered device ppp0
Jan 26 15:50:49 dijklinux pppd[487]: Using interface ppp0
Jan 26 15:50:49 dijklinux pppd[487]: Connect: ppp0 <--> /dev/modem
Jan 26 15:50:49 dijklinux pppd[487]: sent [LCP ConfReq id=0x1 <magic 0xf64ec667> <pcomp> <accomp>]
Jan 26 15:50:50 dijklinux pppd[487]: rcvd [LCP ConfReq id=0x0 <asyncmap 0x0> <auth chap 80> <magic 0x2d9a> <pcomp> <accomp>]
Jan 26 15:50:50 dijklinux pppd[487]: sent [LCP ConfAck id=0x0 <asyncmap 0x0> <auth chap 80> <magic 0x2d9a> <pcomp> <accomp>]
Jan 26 15:50:50 dijklinux pppd[487]: rcvd [LCP ConfAck id=0x1 <magic 0xf64ec667> <pcomp> <accomp>]
Jan 26 15:50:50 dijklinux pppd[487]: rcvd [CHAP Challenge id=0x6 <1287ba1a2a0db761>, name = ""]
Jan 26 15:50:50 dijklinux pppd[487]: sent [CHAP Response id=0x6 <000000000000000000000000000000000000000000000000cd01dbc384fc5f3bd6f747bb642a1addfaefac7f654f48ab01>, name = "my_login"]
Jan 26 15:50:50 dijklinux pppd[487]: rcvd [CHAP Success id=0x6 ""]
Jan 26 15:50:50 dijklinux pppd[487]: sent [IPCP ConfReq id=0x1 <addr 192.168.0.3> <compress VJ 0f 01>]
Jan 26 15:50:50 dijklinux pppd[487]: rcvd [CCP ConfReq id=0x1 < 12 06 00 00 00 01>]
Jan 26 15:50:50 dijklinux pppd[487]: sent [CCP ConfReq id=0x1]
Jan 26 15:50:50 dijklinux pppd[487]: sent [CCP ConfRej id=0x1 < 12 06 00 00 00 01>]
Jan 26 15:50:50 dijklinux pppd[487]: rcvd [IPCP ConfReq id=0x2 <compress VJ 0f 01> <addr 192.168.0.1>]
Jan 26 15:50:50 dijklinux pppd[487]: sent [IPCP ConfAck id=0x2 <compress VJ 0f 01> <addr 192.168.0.1>]
Jan 26 15:50:50 dijklinux pppd[487]: rcvd [IPXCP ConfReq id=0x3 <network 4b484d98> <node 000000000001>]
Jan 26 15:50:50 dijklinux pppd[487]: Unsupported protocol (0x802b) received ; This is IPX
Jan 26 15:50:50 dijklinux pppd[487]: sent [LCP ProtRej id=0x2 80 2b 01 03 00 12 01 06 4b 48 4d 98 02 08 00 00 00 00 00 01]
Jan 26 15:50:50 dijklinux pppd[487]: rcvd [IPCP ConfAck id=0x1 <addr 192.168.0.3> <compress VJ 0f 01>]
Jan 26 15:50:50 dijklinux pppd[487]: local IP address 192.168.0.3
Jan 26 15:50:50 dijklinux pppd[487]: remote IP address 192.168.0.1
Jan 26 15:50:50 dijklinux pppd[487]: rcvd [CCP ConfAck id=0x1]
Jan 26 15:50:50 dijklinux pppd[487]: rcvd [CCP TermReq id=0x4 00 00 02 dc]
Jan 26 15:50:50 dijklinux pppd[487]: sent [CCP TermAck id=0x4]
Jan 26 15:50:53 dijklinux pppd[487]: sent [CCP ConfReq id=0x1]
Jan 26 15:50:53 dijklinux pppd[487]: rcvd [CCP TermAck id=0x1]
Jan 26 15:50:53 dijklinux pppd[487]: sent [CCP TermReq id=0x2"No compression negotiated"]
Jan 26 15:50:54 dijklinux pppd[487]: rcvd [CCP TermAck id=0x2]


Naprej Nazaj Kazalo