Prvi korak k vzpostavitvi PPP povezave s funkcijo povratnega klica, je nastavitev "navadne" PPP povezave preko protokola MS-CHAP.
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
/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.
/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.
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]