File: Callback.pl.txt

package info (click to toggle)
doc-linux-pl 2002.06.14-2
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k, jessie, jessie-kfreebsd, lenny, squeeze, wheezy
  • size: 6,900 kB
  • ctags: 968
  • sloc: makefile: 66
file content (528 lines) | stat: -rw-r--r-- 15,954 bytes parent folder | download | duplicates (4)
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
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
  Callback-miniHOWTO
  Pawe Skonecki, e-mail: stona@fizyka.umcs.lublin.pl
  v1.0, Marzec 2000


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

  Spis treci


  1. Wstp.

     1.1 Opinie.
     1.2 Rozpowszechnianie.

  2. A moe sie w domu ...

  3. Pierwsze kroki z modemem.

  4. Zadzwo do Linuxa.

  5. Teraz Linux dzwoni do mnie ...

  6. Podsumowanie.



  ______________________________________________________________________

  11..  WWssttpp..



  11..11..  OOppiinniiee..


  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.

  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.


  11..22..  RRoozzppoowwsszzeecchhnniiaanniiee..


  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.

  Ta dokumentacja jest darmowa. Jest rozpowszechniana z nadziej, e
  okae si uyteczna, jednak bez adnej gwarancji.




  22..  AA mmooee ssiiee ww ddoommuu ......


  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.

  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.

  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.

  W poniszym mini-HOWTO postaram si przedstawi konfiguracj serwera
  callback na Linuxe wytumacz jak dostosowa swoj maszyn do
  odbierania pocze.


  33..  PPiieerrwwsszzee kkrrookkii zz mmooddeemmeemm..


  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.


    Nie powinnimy kupowa pod adnym pozorem modemw typu WinModem
     poniewa nie zadziaaj one z Linuxem.

    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.

    Warto zainwestowa modem w standardzie v.90 poniewa daje on
     moliwo szybszej pracy chocia nie zawsze si to udaje to udaje
     na sabych czach.

    Jeeli ju modem wewntrzny to lepiej z szyna ISA jak PCI poniewa
     szkoda zcza PCI na modem

    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.

  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.

  Instalacja jest prosta i nie powinna nastrcza problemw. Wystarczy
  e bdziemy si trzyma zasad jakie istniej ,a w systemie.

  Aby Linux "zobaczy" modem naley poprowadzi poczenie symboliczne z
  com-a do urzdzenia /dev/modem. Przykadowo jeeli mamy modem na com 2
  piszemy:


  ______________________________________________________________________
  ln -s /dev/cua1 /dev/modem
  ______________________________________________________________________



  sprawdzamy teraz komend ls -l czy wszystko jest w porzdku:


  lrwxrwxrwx 1 root root 4 Dec 28 15:28 modem -> cua1



  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.


    /dev/cua0 to com1

    /dev/cua1 to com2

    /dev/cua2 to com3

    /dev/cua3 to com4

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


  44..  ZZaaddzzwwoo ddoo LLiinnuuxxaa..


  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.

  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.

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

  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.

  Najpierw zajmijmy si drugim z nich. Zakadamy konto o dowolnym
  username testowo niech to bdzie user pppuser.


  pppuser:klkIOM89mn65H:230:PPP Dialin:/home/pppuser:/etc/ppp/ppplogin



  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.

  Przechodzimy do tego katalogu i przy pomocy jakiegokolwiek edytora
  tworzymy plik i wprowadzamy odpowiednie parametry np.: vi ppplogin.
  Wewntrz niego wpisujemy.


  #!/bin/sh
  exec /usr/sbin/pppd -detach 192.168.1.1:192.168.1.2



  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.

  Poniewa ppp domylnie sprawdza co znajduje si w pliku
  /etc/ppp/options musimy go stworzy aby wpisa odpowiednie wartoci.

  Podobnie jak w powyszym przypadku tworzymy plik przy pomocy dowolnego
  edytora i wpisujemy odpowiednio:


  netmask 255.255.255.0
  proxyarp
  lock
  crtscts
  modem



  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.

  Teraz przechodzimy do konfiguracji modemu w systemie w taki sposb aby
  zaraz po jego starcie by gotowy do pracy czyli odbierania pocze.

  Uruchamiamy dowolny edytor a w nim plik /etc/inittab gdzie dopisujemy
  ponisz lin.


  s1:2345:respawn:/sbin/mgetty ttyS1 -D /dev/ttyS1 vt100


  jest ona prawidowa dla modemw ktre znajduj si na com2, jeeli
  jest inaczej poprawiamy j. Np dla com-a 1 wyglda powinna


  s0:2345:respawn:/sbin/mgetty ttyS0 -D /dev/ttyS0 vt100



  Wykonujemy teraz polecenie init q i jeeli nie mamy informacji o
  bdach w logach sytemu przechodzimy do nastpnego etapu.

  Wracamy do katalogu /etc/ppp gdzie tworzymy plik options.ttyS1 (jeeli
  mamy modem na com 1 options.ttyS0) a w nim wpisujemy adesy IP.


  IP_localne:IP_dla_modemu_zdalnego



  dla naszej sieci bdzie to 192.168.1.1:192.168.1.2

  Mamy ju wiele - przed zadzwonieniem do naszego systemu, sprawdzamy co
  znajduje si w pliku /etc/mgetty+sendfax/login.config

  Najwaniejsza jest linia podobna do tej:


  /AutoPPP/ - a_ppp /usr/sbin/pppd auth -chap +pap login detach kdebug 7 debug



  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.


  ______________________________________________________________________
  chmod u+s /usr/sbin/pppd
  ______________________________________________________________________



  czego efektem bdzie


  -rwsr-xr-x 1 root root 106892 Jan 11 1999 /usr/sbin/pppd



  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.


  55..  TTeerraazz LLiinnuuxx ddzzwwoonnii ddoo mmnniiee ......


  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.

  Teraz czas na wpisanie numerw telefonw jakie wczeniej zebralimy.
  Bdziemy kreowa pseudo uytkownikw powizanych z numerami ich
  telefonw.

  W tym celu wpisujemy do pliku /etc/mgetty+sendfax/login.conf linijk
  tekstu podobn do poniszej


  call - - /usr/sbin/callback - S 123456



  gdzie _c_a_l_l to pseudo uytkownik potrzebny do zainicjowania poczenia
  zwrotnego, a linia _/_e_t_c_/_m_g_e_t_t_y_+_s_e_n_d_f_a_x_/ 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.

  Czeka nas teraz skonfigurowanie stacji roboczych pracujcych z naszym
  serwerem.

  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


  &c0 s0=1



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

  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.

  Najpierw jednak plik konfiguracyjny dla demona ppp (przykad dla
  modemu na comie 2).








  /etc/options
  lock
  defaultroute
  noipdefault
  modem
  /dev/cua1
  33600
  crtscts
  debug
  passive
  asyncmap 0



  I waciwe skrypty:


    Pierwszy o nazwie ppp-call


     #!/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



    Drugi nazwany pppcallback


     TIMEOUT 60
     ABORT 'ERROR'
     ABORT 'BUSY'
     ABORT 'NO ANSWER'
     ABORT 'NO DIALTONE'
     ABORT '\nVOICE\r'
     ABORT '\nRINGING\r\n\r\nRINGING\r'
     'OK-+++\c-OK' 'AT&C0S0=1'
     TIMEOUT 75
     OK ATDT5376443
     CONNECT ''
     ogin:-ogin: ppp_pseudouser
     TIMEOUT 180
     CONNECT ''
     TIMEOUT 20
     ogin:-ogin: pppuser
     sword:-sword ppp



  Powysze dwa skrypty powinny wystarczy dla prawidowego
  funkcjonowania caoci. Pozostaje teraz odpali ppp-call :)


  66..  PPooddssuummoowwaanniiee..


  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.

  Callback moe by przyjemn alternatyw w pracy zdalnej.

  Inne moje dokumenty znajdziesz
  ftp://ftp.fizyka.umcs.lublin.pl/pub/priv/stona
  <ftp://ftp.fizyka.umcs.lublin.pl/pub/priv/stona>

  Pawe Skonecki

  e-mail: stona@fizyka.umcs.lublin.pl