1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
<META HTTP-EQUIV="content-type" content="text/html; charset=iso-8859-2">
<TITLE>Callback-miniHOWTO</TITLE>
</HEAD>
<BODY>
<H1>Callback-miniHOWTO<BR></H1>
<H2>Pawe Skonecki,
<A HREF="stona@fizyka.umcs.lublin.pl">e-mail: stona@fizyka.umcs.lublin.pl</A><BR>
v1.0, Marzec 2000<BR></H2>
<P><HR>
<EM>Dokument ten opisuje, jak za pomoc Linuxa ustawi poczenie zwrotne
przy pomocy modemu.
Program callbeck opracowa Gert Doering, <gert@greenie.muc.de>.
Chciabym podzikowa Annie za wyrozumiao dla pingwinw.</EM>
<HR>
<H2><A NAME="s1">1. Wstp.</A></H2>
<P>
<P>
<H2>1.1 Opinie.</H2>
<P>
<P>Czekam na wszystkie opinie, czy to dobre,
czy ze, na temat zawartoci tego dokumentu. Staraem si, aby informacje
w nim umieszczone byy jak najbardziej pewne i dokadne. Daj mi zna gdy
znajdziesz jakie bdy.
<P>Dzikujemy ludziom ktrzy przysali by
poprawki lub sugestie. Ich wkad uczyni ten dokument o wiele lepszym,
ni gdybym tworzy go sam. Wysyaj komentarze, sugestie i poprawki
na adres email autora podany powyej. Nie mam nic przeciwko odpowiadaniu
na pytania, jednak radz najpierw przeczyta dokument w caoci.
<P>
<H2>1.2 Rozpowszechnianie.</H2>
<P>
<P>Copyright ? 1999 by Pawe Skonecki. Ten
dokument moe zosta rozpowszechniany na warunkach ustalonych przez Licencj
Linux Documentation Project. Skontaktuj si z autorem, jeli nie jeste
w stanie otrzyma licencji.
<P>Ta dokumentacja jest darmowa. Jest rozpowszechniana
z nadziej, e okae si uyteczna, jednak bez adnej gwarancji.
<P>
<H2><A NAME="s2">2. A moe sie w domu ...</A></H2>
<P>
<P>Wikszo z nas uywa sieci korporacyjnych lub uczelnianych w swoim
miejscu pracy. Pojawia si jednak potrzeba skorzystania z sieci w domu
lub w innym miejscu. Moe przecie okaza si i pracownicy bdcy w terenie
musz mie dostp do danych znajdujcych si w Internecie lub te
w sieci firmowej. Moemy mie te do czynienia z sytuacj kiedy firmie
bdzie opaca si zapaci pracownikom za poczenia telefoniczne aby
pracowali w domach. Sdz e optymalnym rozwizaniem jest zainstalowanie
na serwerze z Linuxem i oprogramowania typu callback.
<P>Callback to nic innego jak oddzwanianie
pod wskazany numer na koszt firmy. Sprbuj przedstawi jego dziaanie.
Osoba posiadajca odpowiednie uprawnienia dzwoni pod numer modemu bdcego
w serwerze z Linuxem, tam weryfikuje si po raz pierwszy. Wtedy po stronie
uytkownika nastpuje "zawieszenie modemu" na stan oczekiwania. W tym czasie
serwer dzwoni po wskazany numer. Uytkownik weryfikuje si powtrnie. Nastpuje
zestawienie poczenia a impulsy bij po stronie serwera (czyli w firmie),
osoba do ktrej oddzwania serwer paci jedynie za zainicjowanie poczenia.
<P>Podwjna weryfikacja oraz dodatkowe parametry
w programie callback uniemoliwiaj by osoby nie powoane wtargny na nasz
rachunek. Mona take ograniczy osobom korzystajcym z tej usugi do dostp
do sieci wewntrznej lub te caego Internetu. Callback jest elastyczny
i pozwala na wiele opcji w stosunku do osb go uywajcych.
<P>W poniszym mini-HOWTO postaram si przedstawi
konfiguracj serwera callback na Linuxe wytumacz jak dostosowa swoj
maszyn do odbierania pocze.
<P>
<H2><A NAME="s3">3. Pierwsze kroki z modemem.</A></H2>
<P>
<P>Aby wszystko zadziaao jak naley potrzebujemy
niezego modemu do naszego serwera z Linuxem. W tej mierze istniej ,a rne
preferencje administratorw i nie mona wskaza tutaj adnej marki jako
faworyta. Warto jednak pamita przyzakupie o pewnych zasadach jakimi naley
si kierowa.
<P>
<UL>
<LI>Nie powinnimy kupowa pod adnym pozorem
modemw typu WinModem poniewa nie zadziaaj one z Linuxem.</LI>
<LI>Modem zewntrzny jest szybszy od urzdzenia
wewntrznego poniewa w ograniczonym zakresie korzysta z zasobw komputera.
Ich wad natomiast jest to i zajmuj one com-a co moe potem utrudnia
podczanie nastpnych urzdze korzystajcych z com-w.</LI>
<LI>Warto zainwestowa modem w standardzie
v.90 poniewa daje on moliwo szybszej pracy chocia nie zawsze si to
udaje to udaje na sabych czach.</LI>
<LI>Jeeli ju modem wewntrzny to lepiej
z szyna ISA jak PCI poniewa szkoda zcza PCI na modem</LI>
<LI>Nie zaleca si take modemw typu Plug&Play,
jeeli ju jest taki naley wyczy opcj Plug&Play i nastawi w nim
wzorki na nastpnego wolnego coma.</LI>
</UL>
<P>Jeeli mamy ju modem ktry bdziemy wykorzystywa
do komunikacji pomidzy serwerem a osobami do niego dzwonicymi. Musimy
go zainstalowa go w systemie. Aby to zrobi musimy sprawdzi na jaki com-ie
jest nastawiony modem i czy nie pokrywa si z ju wykorzystywanym. Jeeli
tak jest to trzeba przestawi modem na kolejny wolny com.
<P>Instalacja jest prosta i nie powinna nastrcza
problemw. Wystarczy e bdziemy si trzyma zasad jakie istniej ,a w systemie.
<P>Aby Linux "zobaczy" modem naley poprowadzi
poczenie symboliczne z com-a do urzdzenia /dev/modem. Przykadowo jeeli
mamy modem na com 2 piszemy:
<P>
<HR>
<PRE>
ln -s /dev/cua1 /dev/modem
</PRE>
<HR>
<P>sprawdzamy teraz komend <CODE>ls -l</CODE> czy wszystko jest w porzdku:
<P>
<PRE>
lrwxrwxrwx 1 root root 4 Dec 28 15:28 modem -> cua1
</PRE>
<P>Jeeli wynik jest jak powyej to oznacza
e tak wanie si stao. Jeeli modem znajduje si na innym com-ie winnimy
zastosowa si do poniszych zasad i poprowadzi odpowiednie poczenie
symboliczne.
<P>
<UL>
<LI>/dev/cua0 to com1</LI>
<LI>/dev/cua1 to com2</LI>
<LI>/dev/cua2 to com3</LI>
<LI>/dev/cua3 to com4</LI>
</UL>
<P>Sprawdzamy teraz czy wszystko chodzi przy
pomocy minicoma, ktry powinien znajdowa si w wikszoci dystrybucji.
Przy jego pomocy dzwonimy pod jakikolwiek numer gdzie znajduje si modem.
Teraz czas na dzwonienie do nas ....
<P>
<H2><A NAME="s4">4. Zadzwo do Linuxa.</A></H2>
<P>
<P>Pierwszym krokiem w udostpnieniu usugi
callback na Linuxe jest ustawienie odpowiednich parametrw w jdrze systemu.
W tym celu musimy sprawdzi czy nasze jdro systemu obsuguje protok
ppp. Jeeli tak nie jest to powinno si w kompilowa go w jdro systemu
albo pozostawi jako modu do adowania. Nie jest to miejsce na przedstawiane
tego problemu. Dlatego te prosz zapozna si z Kernel-HOWTO.
<P>Jeeli ju mamy odpowiednio przygotowane
jdro czas zabra si za konfiguracj oprogramowania. W tym celu winnimy
zainstalowa na naszym serwerze pakiet o nazwie mgetty-sendfax, poniewa
on zawiera w sobie program do oddzwaniania. Nie jest to jego jedyna moliwo,
moe take wysya fax-y oraz pracowa jako access-server.
<P>Tu warto wspomnie o pracy callback-u.
Kiedy inicjujemy poczenie z serwerem nastpuje pierwotna weryfikacja
uytkownika. Poproszony jest on o wpisanie hasa a kiedy to uczyni nastpuje
"zawieszenie" modemu po stronie dzwonicego a serwer oddzwania pod wskazany
numer zwizany z uytkownikiem. Jeeli nastpi poczenie nastpuje drugi
monit o username oraz haso. Jeeliwszystko
pjdzie dobrze to poczenie zostaje zestawione pomidzy komputerem lokalnym
i zdalnym (user uruchomi protok ppp po stronie serwera).
<P>Tak wic caa operacja skada si z dwch
elementw. Mamy wic do czynienia z dwoma rodzajami uytkownikw: pierwszy
to uytkownik do callbacku a drugi to ten kry ma uruchomi protok ppp
po stronie serwera.
<P>Najpierw zajmijmy si drugim z nich. Zakadamy
konto o dowolnym username testowo niech to bdzie user pppuser.
<P>
<PRE>
pppuser:klkIOM89mn65H:230:PPP Dialin:/home/pppuser:/etc/ppp/ppplogin
</PRE>
<P>Nastpnie zmieniamy mu haso. Jak mona
zauway nie ma on normalnego shall-a do logowania ale pliczek w /etc/ppp/ppplogin.
Musimy go wasnorcznie przygotowa.
<P>Przechodzimy do tego katalogu i przy pomocy jakiegokolwiek edytora
tworzymy plik i wprowadzamy odpowiednie parametry
np.: vi ppplogin. Wewntrz niego wpisujemy.
<P>
<PRE>
#!/bin/sh
exec /usr/sbin/pppd -detach 192.168.1.1:192.168.1.2
</PRE>
<P>gdzie adres 192.168.1.1 to adres serwera w ktrym jest modem a adres
192.168.1.2 to adres jaki przypisalimy naszemu
modemowi. Pamitajmy nada temu plikowi prawo wykonywania.
<P>Poniewa ppp domylnie sprawdza co znajduje
si w pliku /etc/ppp/options musimy go stworzy aby wpisa odpowiednie
wartoci.
<P>Podobnie jak w powyszym przypadku tworzymy
plik przy pomocy dowolnego edytora i wpisujemy odpowiednio:
<P>
<PRE>
netmask 255.255.255.0
proxyarp
lock
crtscts
modem
</PRE>
<P>Najwaniejsza z powyszych opcji jest proxyarp,
umoliwia on wyjcie na wiat poprzez modem w serwerze. Jej brak moe by
korzystny jeeli nie chcemy aby nasi pracownicy uywali Internetu a jedynie
sieci lokalnej. Pozostae z nich oprcz netmask (tego nie trzeba tumaczy),
dotycz kontroli modemu.
<P>Teraz przechodzimy do konfiguracji modemu
w systemie w taki sposb aby zaraz po jego starcie by gotowy do pracy
czyli odbierania pocze.
<P>Uruchamiamy dowolny edytor a w nim plik
/etc/inittab gdzie dopisujemy ponisz lin.
<P>
<PRE>
s1:2345:respawn:/sbin/mgetty ttyS1 -D /dev/ttyS1 vt100
</PRE>
<P>jest ona prawidowa dla modemw ktre znajduj si na com2, jeeli
jest inaczej poprawiamy j. Np dla com-a 1 wyglda
powinna
<P>
<PRE>
s0:2345:respawn:/sbin/mgetty ttyS0 -D /dev/ttyS0 vt100
</PRE>
<P>Wykonujemy teraz polecenie <CODE>init q</CODE> i jeeli
nie mamy informacji o bdach w logach sytemu przechodzimy do nastpnego
etapu.
<P>Wracamy do katalogu /etc/ppp gdzie tworzymy
plik options.ttyS1 (jeeli mamy modem na com 1 options.ttyS0) a w nim wpisujemy
adesy IP.
<P>
<PRE>
IP_localne:IP_dla_modemu_zdalnego
</PRE>
<P>dla naszej sieci bdzie to 192.168.1.1:192.168.1.2
<P>Mamy ju wiele - przed zadzwonieniem do naszego
systemu, sprawdzamy co znajduje si w pliku /etc/mgetty+sendfax/login.config
<P>Najwaniejsza jest linia podobna do tej:
<P>
<PRE>
/AutoPPP/ - a_ppp /usr/sbin/pppd auth -chap +pap login detach kdebug 7 debug
</PRE>
<P>Pozostae moemy zaznaczy znakiem #. Wan
spraw jest take nadanie odpowiedniego suida demonowi ppp, tak aby uytkownik
pppuser mg go uruchomi oraz podnie na nim interfejs.
<P>
<HR>
<PRE>
chmod u+s /usr/sbin/pppd
</PRE>
<HR>
<P>czego efektem bdzie
<P>
<PRE>
-rwsr-xr-x 1 root root 106892 Jan 11 1999 /usr/sbin/pppd
</PRE>
<P>Od tego momentu uytkownik pppuser bdzie
mg uruchomi demona ppp. Warto dopisa
zmian preferencji pppd w cronie, u mnie po restarcie systemu dochodzio
do samoczynnej zmiany preferencji. Aby
zweryfikowa nasze dokonania dzwonimy pod numer naszego serwera. Jeeli
robimy to z Windows-o'w wywoujemy okno terminala a jeeli wykorzystujemy
do tego Linuxa to poprawiamy skrypty z ktrych korzystamy dzwonic do naszego
provaidera. Logujemy si do systemu jako pppuser z haslem mu nadanym. Mam
nadziej e wszystko jest w porzdku.
<P>
<H2><A NAME="s5">5. Teraz Linux dzwoni do mnie ...</A></H2>
<P>
<P>Moemy dodzwania si ju do naszego Linuxa.
Pora teraz na to aby on do nas zadzwoni. Nie wymaga to specjalnego ju
wysiku wystarczy wyedytowa jeden plik. Zanim jednak to zrobimy musimy
zebra numery telefonw od osb ktre maj ,a korzysta z tej usugi. Sprawdzamy
teraz czy w katalogu /etc/mgetty+sendfax znajduje si plik o nazwie callback.config.
Jeeli tam si znajduje to pozostawiamy
go w spokoju. Mona wypeni go treci ale nie ma najmniejszej potrzeby
poniewa jego pusta zawarto nie ma wpywu na funkcjonowanie callbacku.
Wane tylko aby tam by.
<P>Teraz czas na wpisanie numerw telefonw
jakie wczeniej zebralimy. Bdziemy kreowa pseudo uytkownikw powizanych
z numerami ich telefonw.
<P>W tym celu wpisujemy do pliku /etc/mgetty+sendfax/login.conf
linijk tekstu podobn do poniszej
<P>
<PRE>
call - - /usr/sbin/callback - S 123456
</PRE>
<P>gdzie <I>call</I> to pseudo uytkownik potrzebny
do zainicjowania poczenia zwrotnego, a linia
<I>/etc/mgetty+sendfax/</I> uruchamia
program ktry oddzwania pod wskazany numer (w tym przypadku jest to 123456).
Podobnie czynimy z innymi uytkownikami przypisujc pseudo uytkownikom
poszczeglne numery telefonw. Postaram si teraz wytumaczy jak ca
operacja wyglda w praktyce. Gdy dzwonimy do naszego serwera ten prosi
nas o weryfikacj. Wtedy to logujemy si jako pseudo uytkownik, w tym
przypadku call. Skrypt w naszym komputerze zawesza modem w oczekiwaniu
a poczenie zostaje przerwane. Program callbeck zaczyna dziaa i oddzwania
do nas. Weryfikujemy si powtrnie jako pppuser zestawiamy poczenie oraz
postawienie interfejsu ppp na serwerze. I to ju wszystko.
<P>Czeka nas teraz skonfigurowanie stacji roboczych
pracujcych z naszym serwerem.
<P>W przypadku Windows operacja jest do
prosta. Instalujemy Dial-up dla naszego numeru dostpowego a nastpnie
we waciwociach modemu znajdujemy zakadk "Waciwoci" --> Rozszerzone
---> Ekstra gdzie wpisujemy
<P>
<PRE>
&c0 s0=1
</PRE>
<P>Zamykamy okienko i dzwonimy. Logujemy si
wedug opisu powyej. Gdy chcemy zastosowa Linux-a, to musimy odwoa
si do skryptw. Trudno jest poda jaki jeden dobry skrypt dla naszego
Linuxa. Wane jest to aby mie dobrze skonfigurowane ppp w systemie (sprawd
to dzwonic jako pppuser najpierw przez skrypty).
<P>Poniej skrypty napisane przez A. Gdzia.
Najlepiej jak wsadzisz wszystko do katalogu /etc/ppp i tam bdziesz odpala
swoje skrypty. Nie musisz tego koniecznie robi tego w tym miejscu jest
to tylko moja sugestia. Dokadnie o pisaniu skryptw pod Linuxem moesz
poczyta w PPP-HOWTO.
<P>Najpierw jednak plik konfiguracyjny dla
demona ppp (przykad dla modemu na comie 2).
<P>
<PRE>
/etc/options
lock
defaultroute
noipdefault
modem
/dev/cua1
33600
crtscts
debug
passive
asyncmap 0
</PRE>
<P>I waciwe skrypty:
<P>
<UL>
<LI>Pierwszy o nazwie ppp-call
<PRE>
#!/bin/bash
teksta="Polaczenie nieudane"
tekstb="Chyba bedziesz polaczony"
# /sbin/setserial /dev/cua1 spd_vhi
killall -INT pppd 2>/dev/null
rm -f /var/lock/LCK* /var/run/ppp*.pid
(/usr/sbin/pppd -detach /dev/ttyS1 115200 \
connect "/usr/sbin/chat -v -f /etc/ppp/pppcallback" &) || \
(echo $teksta; ls marsss >/dev/null; exit 1)
echo $tekstb
exit 0
</PRE>
</LI>
<LI>Drugi nazwany pppcallback
<PRE>
TIMEOUT 60
ABORT 'ERROR'
ABORT 'BUSY'
ABORT 'NO ANSWER'
ABORT 'NO DIALTONE'
ABORT '\nVOICE\r'
ABORT '\nRINGING\r\n\r\nRINGING\r'
'' AT&FH0
'OK-+++\c-OK' 'AT&C0S0=1'
TIMEOUT 75
OK ATDT5376443
CONNECT ''
ogin:-ogin: ppp_pseudouser
'\nNO CARRIER\r' ''
TIMEOUT 180
'\nRING\r' AT&C1A
CONNECT ''
TIMEOUT 20
ogin:-ogin: pppuser
sword:-sword ppp
</PRE>
</LI>
</UL>
<P>Powysze dwa skrypty powinny
wystarczy dla prawidowego funkcjonowania caoci. Pozostaje teraz odpali
ppp-call :)
<P>
<H2><A NAME="s6">6. Podsumowanie.</A></H2>
<P>
<P>Jak wida konfiguracja oddzwaniania nie
jest skomplikowana i polega gwnie na prawidowym zestawieniu serwera
ppp na Linuxie. Nie znam lepszej drogi na zrobienie acces-servera. Przedstawiona
konfiguracja jest wynikiem prb i bdw, mona zrobi j cakowicie inaczej.
Dlatego proponuj przejrzenie wszelkiej dokumentacji do tego zagadnienia
to jest man pppd, NET3-HOWTO oraz PPP-HOWTO.
<P>Callback moe by przyjemn alternatyw w pracy zdalnej.
<P>Inne moje dokumenty znajdziesz
<A HREF="ftp://ftp.fizyka.umcs.lublin.pl/pub/priv/stona">ftp://ftp.fizyka.umcs.lublin.pl/pub/priv/stona</A><P>Pawe Skonecki
<P>e-mail:
<A HREF="mailto:stona@fizyka.umcs.lublin.pl">stona@fizyka.umcs.lublin.pl</A></BODY>
</HTML>
|