  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.



  ______________________________________________________________________

  11..  WWssttpp..



  11..11..  OOppiinniiee..


  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.


  11..22..  RRoozzppoowwsszzeecchhnniiaanniiee..


  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.




  22..  AA mmooee ssiiee ww ddoommuu ......


  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.


  33..  PPiieerrwwsszzee kkrrookkii zz mmooddeemmeemm..


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


  44..  ZZaaddzzwwoo ddoo LLiinnuuxxaa..


  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.


  55..  TTeerraazz LLiinnuuxx ddzzwwoonnii ddoo mmnniiee ......


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


  66..  PPooddssuummoowwaanniiee..


  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




















































