Sophie

Sophie

distrib > Mandriva > 8.1 > i586 > by-pkgid > 1d876fa8c1caf5809b8232d098efff65 > files > 45

howto-text-pl-8.1-1mdk.noarch.rpm

  Callback-miniHOWTO
  Pawe³ Skonecki, e-mail: stona@fizyka.umcs.lublin.pl
  v1.0, Marzec 2000


  Dokument ten opisuje, jak za pomoc± Linuxa ustawiæ po³±czenie zwrotne
  przy pomocy modemu.  Program callbeck opracowa³ Gert Doering,
  <gert@greenie.muc.de>.  Chcia³bym podziêkowaæ Annie za wyrozumia³o¶æ
  dla pingwinów.
  ______________________________________________________________________

  Spis tre¶ci


  1. Wstêp.

     1.1 Opinie.
     1.2 Rozpowszechnianie.

  2. A mo¿e sieæ w domu ...

  3. Pierwsze kroki z modemem.

  4. Zadzwoñ do Linuxa.

  5. Teraz Linux dzwoni do mnie ...

  6. Podsumowanie.



  ______________________________________________________________________

  11..  WWssttêêpp..



  11..11..  OOppiinniiee..


  Czekam na wszystkie opinie, czy to dobre, czy z³e, na temat zawarto¶ci
  tego dokumentu. Stara³em siê, aby informacje w nim umieszczone by³y
  jak najbardziej pewne i dok³adne. Daj mi znaæ gdy znajdziesz jakie¶
  b³êdy.

  Dziêkujemy ludziom którzy przys³ali by poprawki lub sugestie. Ich
  wk³ad uczyni³ ten dokument o wiele lepszym, ni¿ gdybym tworzy³ go sam.
  Wysy³aj komentarze, sugestie i poprawki na adres email autora podany
  powy¿ej. Nie mam nic przeciwko odpowiadaniu na pytania, jednak radzê
  najpierw przeczytaæ dokument w ca³o¶ci.


  11..22..  RRoozzppoowwsszzeecchhnniiaanniiee..


  Copyright ? 1999 by Pawe³ Skonecki. Ten dokument mo¿e zostaæ
  rozpowszechniany na warunkach ustalonych przez Licencjê Linux
  Documentation Project. Skontaktuj siê z autorem, je¶li nie jeste¶ w
  stanie otrzymaæ licencji.

  Ta dokumentacja jest darmowa. Jest rozpowszechniana z nadziej±, ¿e
  oka¿e siê u¿yteczna, jednak bez ¿adnej gwarancji.




  22..  AA mmoo¿¿ee ssiieeææ ww ddoommuu ......


  Wiêkszo¶æ z nas u¿ywa sieci korporacyjnych lub uczelnianych w swoim
  miejscu pracy. Pojawia siê jednak potrzeba skorzystania z sieci w domu
  lub w innym miejscu. Mo¿e przecie¿ okazaæ siê i¿ pracownicy bêd±cy w
  terenie musz± mieæ dostêp do danych znajduj±cych siê w Internecie lub
  te¿ w sieci firmowej. Mo¿emy mieæ te¿ do czynienia z sytuacj± kiedy
  firmie bêdzie op³acaæ siê zap³aciæ pracownikom za po³±czenia
  telefoniczne aby pracowali w domach. S±dzê ¿e optymalnym rozwi±zaniem
  jest zainstalowanie na serwerze z Linuxem i oprogramowania typu
  callback.

  Callback to nic innego jak oddzwanianie pod wskazany numer na koszt
  firmy. Spróbujê przedstawiæ jego dzia³anie.  Osoba posiadaj±ca
  odpowiednie uprawnienia dzwoni pod numer modemu bêd±cego w serwerze z
  Linuxem, tam weryfikuje siê po raz pierwszy. Wtedy po stronie
  u¿ytkownika nastêpuje "zawieszenie modemu" na stan oczekiwania. W tym
  czasie serwer dzwoni po wskazany numer. U¿ytkownik weryfikuje siê
  powtórnie. Nastêpuje zestawienie po³±czenia a impulsy bij± po stronie
  serwera (czyli w firmie), osoba do której oddzwania serwer p³aci
  jedynie za zainicjowanie po³±czenia.

  Podwójna weryfikacja oraz dodatkowe parametry w programie callback
  uniemo¿liwiaj by osoby nie powo³ane wtargnê³y na nasz rachunek. Mo¿na
  tak¿e ograniczyæ osobom korzystaj±cym z tej us³ugi do dostêp do sieci
  wewnêtrznej lub te¿ ca³ego Internetu. Callback jest elastyczny i
  pozwala na wiele opcji w stosunku do osób go u¿ywaj±cych.

  W poni¿szym mini-HOWTO postaram siê przedstawiæ konfiguracjê serwera
  callback na Linuxe wyt³umaczê jak dostosowaæ swoj± maszynê do
  odbierania po³±czeñ.


  33..  PPiieerrwwsszzee kkrrookkii zz mmooddeemmeemm..


  Aby wszystko zadzia³a³o jak nale¿y potrzebujemy niez³ego modemu do
  naszego serwera z Linuxem. W tej mierze istniej ,a ró¿ne preferencje
  administratorów i nie mo¿na wskazaæ tutaj ¿adnej marki jako faworyta.
  Warto jednak pamiêtaæ przyzakupie o pewnych zasadach jakimi nale¿y siê
  kierowaæ.


  ·  Nie powinni¶my kupowaæ pod ¿adnym pozorem modemów typu WinModem
     poniewa¿ nie zadzia³aj± one z Linuxem.

  ·  Modem zewnêtrzny jest szybszy od urz±dzenia wewnêtrznego poniewa¿ w
     ograniczonym zakresie korzysta z zasobów komputera.  Ich wad±
     natomiast jest to i¿ zajmuj± one com-a co mo¿e potem utrudniaæ
     pod³±czanie nastêpnych urz±dzeñ korzystaj±cych z com-ów.

  ·  Warto zainwestowaæ modem w standardzie v.90 poniewa¿ daje on
     mo¿liwo¶æ szybszej pracy chocia¿ nie zawsze siê to udaje to udaje
     na s³abych ³±czach.

  ·  Je¿eli ju¿ modem wewnêtrzny to lepiej z szyna ISA jak PCI poniewa¿
     szkoda z³±cza PCI na modem

  ·  Nie zaleca siê tak¿e modemów typu Plug&Play, je¿eli ju¿ jest taki
     nale¿y wy³±czyæ opcjê Plug&Play i nastawiæ w nim wzorki na
     nastêpnego wolnego coma.

  Je¿eli mamy ju¿ modem który bêdziemy wykorzystywaæ do komunikacji
  pomiêdzy serwerem a osobami do niego dzwoni±cymi. 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. Je¿eli tak jest to trzeba przestawiæ modem na kolejny
  wolny com.

  Instalacja jest prosta i nie powinna nastrêczaæ problemów. Wystarczy
  ¿e bêdziemy siê trzymaæ zasad jakie istniej ,a w systemie.

  Aby Linux "zobaczy³" modem nale¿y poprowadziæ po³±czenie symboliczne z
  com-a do urz±dzenia /dev/modem. Przyk³adowo je¿eli mamy modem na com 2
  piszemy:


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



  sprawdzamy teraz komend± ls -l czy wszystko jest w porz±dku:


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



  Je¿eli wynik jest jak powy¿ej to oznacza ¿e tak w³a¶nie siê sta³o.
  Je¿eli modem znajduje siê na innym com-ie winni¶my zastosowaæ siê do
  poni¿szych zasad i poprowadziæ odpowiednie po³±czenie 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, który
  powinien znajdowaæ siê w wiêkszo¶ci 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 udostêpnieniu us³ugi callback na Linuxe jest
  ustawienie odpowiednich parametrów w j±drze systemu.  W tym celu
  musimy sprawdziæ czy nasze j±dro systemu obs³uguje protokó³ ppp.
  Je¿eli tak nie jest to powinno siê w kompilowaæ go w j±dro systemu
  albo pozostawiæ jako modu³ do ³adowania. Nie jest to miejsce na
  przedstawiane tego problemu. Dlatego te¿ proszê zapoznaæ siê z Kernel-
  HOWTO.

  Je¿eli ju¿ mamy odpowiednio przygotowane j±dro czas zabraæ siê za
  konfiguracjê oprogramowania. W tym celu winni¶my zainstalowaæ na
  naszym serwerze pakiet o nazwie mgetty-sendfax, poniewa¿ on zawiera w
  sobie program do oddzwaniania. Nie jest to jego jedyna mo¿liwo¶æ, mo¿e
  tak¿e wysy³aæ fax-y oraz pracowaæ jako access-server.

  Tu warto wspomnieæ o pracy callback-u.  Kiedy inicjujemy po³±czenie z
  serwerem nastêpuje pierwotna weryfikacja u¿ytkownika. Poproszony jest
  on o wpisanie has³a a kiedy to uczyni nastêpuje "zawieszenie" modemu
  po stronie dzwoni±cego a serwer oddzwania pod wskazany numer zwi±zany
  z u¿ytkownikiem. Je¿eli nast±pi po³±czenie nastêpuje drugi monit o
  username oraz has³o. Je¿eliwszystko pójdzie dobrze to po³±czenie
  zostaje zestawione pomiêdzy komputerem lokalnym i zdalnym (user
  uruchomi protokó³ ppp po stronie serwera).

  Tak wiêc ca³a operacja sk³ada siê z dwóch elementów. Mamy wiêc do
  czynienia z dwoma rodzajami u¿ytkowników: pierwszy to u¿ytkownik do
  callbacku a drugi to ten kóry ma uruchomiæ protokó³ ppp po stronie
  serwera.

  Najpierw zajmijmy siê drugim z nich. Zak³adamy konto o dowolnym
  username testowo niech to bêdzie user pppuser.


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



  Nastêpnie zmieniamy mu has³o. Jak mo¿na zauwa¿yæ nie ma on normalnego
  shall-a do logowania ale pliczek w /etc/ppp/ppplogin.  Musimy go
  w³asnorêcznie przygotowaæ.

  Przechodzimy do tego katalogu i przy pomocy jakiegokolwiek edytora
  tworzymy plik i wprowadzamy odpowiednie parametry np.: vi ppplogin.
  Wewn±trz 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 którym jest modem a adres
  192.168.1.2 to adres jaki przypisali¶my naszemu modemowi. Pamiêtajmy
  nadaæ temu plikowi prawo wykonywania.

  Poniewa¿ ppp domy¶lnie sprawdza co znajduje siê w pliku
  /etc/ppp/options musimy go stworzyæ aby wpisaæ odpowiednie warto¶ci.

  Podobnie jak w powy¿szym przypadku tworzymy plik przy pomocy dowolnego
  edytora i wpisujemy odpowiednio:


  netmask 255.255.255.0
  proxyarp
  lock
  crtscts
  modem



  Najwa¿niejsza z powy¿szych opcji jest proxyarp, umo¿liwia on wyj¶cie
  na ¶wiat poprzez modem w serwerze. Jej brak mo¿e byæ korzystny je¿eli
  nie chcemy aby nasi pracownicy u¿ywali Internetu a jedynie sieci
  lokalnej. Pozosta³e z nich oprócz netmask (tego nie trzeba t³umaczyæ),
  dotycz± kontroli modemu.

  Teraz przechodzimy do konfiguracji modemu w systemie w taki sposób aby
  zaraz po jego starcie by³ gotowy do pracy czyli odbierania po³±czeñ.

  Uruchamiamy dowolny edytor a w nim plik /etc/inittab gdzie dopisujemy
  poni¿sz± linê.


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


  jest ona prawid³owa dla modemów które znajduj± siê na com2, je¿eli
  jest inaczej poprawiamy j±. Np dla com-a 1 wygl±daæ powinna


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



  Wykonujemy teraz polecenie init q i je¿eli nie mamy informacji o
  b³êdach w logach sytemu przechodzimy do nastêpnego etapu.

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


  IP_localne:IP_dla_modemu_zdalnego



  dla naszej sieci bêdzie 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

  Najwa¿niejsza jest linia podobna do tej:


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



  Pozosta³e mo¿emy zaznaczyæ znakiem #. Wa¿n± spraw± jest tak¿e nadanie
  odpowiedniego suida demonowi ppp, tak aby u¿ytkownik pppuser móg³ go
  uruchomiæ oraz podnie¶æ na nim interfejs.


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



  czego efektem bêdzie


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



  Od tego momentu u¿ytkownik pppuser bêdzie móg³ uruchomiæ demona ppp.
  Warto dopisaæ zmianê preferencji pppd w cronie, u mnie po restarcie
  systemu dochodzi³o do samoczynnej zmiany preferencji. Aby zweryfikowaæ
  nasze dokonania dzwonimy pod numer naszego serwera. Je¿eli robimy to z
  Windows-o'w wywo³ujemy okno terminala a je¿eli wykorzystujemy do tego
  Linuxa to poprawiamy skrypty z których korzystamy dzwoni±c do naszego
  provaidera. Logujemy siê do systemu jako pppuser z haslem mu nadanym.
  Mam nadziejê ¿e wszystko jest w porz±dku.


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


  Mo¿emy dodzwaniaæ siê ju¿ do naszego Linuxa.  Pora teraz na to aby on
  do nas zadzwoni³. Nie wymaga to specjalnego ju¿ wysi³ku wystarczy
  wyedytowaæ jeden plik. Zanim jednak to zrobimy musimy zebraæ numery
  telefonów od osób które maj ,a korzystaæ z tej us³ugi. Sprawdzamy
  teraz czy w katalogu /etc/mgetty+sendfax znajduje siê plik o nazwie
  callback.config.  Je¿eli tam siê znajduje to pozostawiamy go w
  spokoju. Mo¿na wype³niæ go tre¶ci± ale nie ma najmniejszej potrzeby
  poniewa¿ jego pusta zawarto¶æ nie ma wp³ywu na funkcjonowanie
  callbacku.  Wa¿ne tylko aby tam by³.

  Teraz czas na wpisanie numerów telefonów jakie wcze¶niej zebrali¶my.
  Bêdziemy kreowaæ pseudo u¿ytkowników powi±zanych z numerami ich
  telefonów.

  W tym celu wpisujemy do pliku /etc/mgetty+sendfax/login.conf linijkê
  tekstu podobn± do poni¿szej


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



  gdzie _c_a_l_l to pseudo u¿ytkownik potrzebny do zainicjowania po³±czenia
  zwrotnego, a linia _/_e_t_c_/_m_g_e_t_t_y_+_s_e_n_d_f_a_x_/ uruchamia program który
  oddzwania pod wskazany numer (w tym przypadku jest to 123456).
  Podobnie czynimy z innymi u¿ytkownikami przypisuj±c pseudo
  u¿ytkownikom poszczególne numery telefonów. Postaram siê teraz
  wyt³umaczyæ jak ca³± operacja wygl±da w praktyce. Gdy dzwonimy do
  naszego serwera ten prosi nas o weryfikacjê. Wtedy to logujemy siê
  jako pseudo u¿ytkownik, w tym przypadku call. Skrypt w naszym
  komputerze zawesza modem w oczekiwaniu a po³±czenie zostaje przerwane.
  Program callbeck zaczyna dzia³aæ i oddzwania do nas. Weryfikujemy siê
  powtórnie jako pppuser zestawiamy po³±czenie oraz postawienie
  interfejsu ppp na serwerze. I to ju¿ wszystko.

  Czeka nas teraz skonfigurowanie stacji roboczych pracuj±cych z naszym
  serwerem.

  W przypadku Windows operacja jest do¶æ prosta. Instalujemy Dial-up dla
  naszego numeru dostêpowego a nastêpnie we w³a¶ciwo¶ciach modemu
  znajdujemy zak³adkê "W³a¶ciwo¶ci" --> Rozszerzone ---> Ekstra gdzie
  wpisujemy


  &c0 s0=1



  Zamykamy okienko i dzwonimy. Logujemy siê wed³ug opisu powy¿ej. Gdy
  chcemy zastosowaæ Linux-a, to musimy odwo³aæ siê do skryptów. Trudno
  jest podaæ jaki¶ jeden dobry skrypt dla naszego Linuxa. Wa¿ne jest to
  aby mieæ dobrze skonfigurowane ppp w systemie (sprawd¼ to dzwoni±c
  jako pppuser najpierw przez skrypty).

  Poni¿ej skrypty napisane przez A. Gó¼dzia.  Najlepiej jak wsadzisz
  wszystko do katalogu /etc/ppp i tam bêdziesz odpala³ swoje skrypty.
  Nie musisz tego koniecznie robiæ tego w tym miejscu jest to tylko moja
  sugestia. Dok³adnie o pisaniu skryptów pod Linuxem mo¿esz poczytaæ w
  PPP-HOWTO.

  Najpierw jednak plik konfiguracyjny dla demona ppp (przyk³ad dla
  modemu na comie 2).








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



  I w³a¶ciwe 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



  Powy¿sze dwa skrypty powinny wystarczyæ dla prawid³owego
  funkcjonowania ca³o¶ci. Pozostaje teraz odpaliæ ppp-call :)


  66..  PPooddssuummoowwaanniiee..


  Jak widaæ konfiguracja oddzwaniania nie jest skomplikowana i polega
  g³ównie na prawid³owym zestawieniu serwera ppp na Linuxie. Nie znam
  lepszej drogi na zrobienie acces-servera. Przedstawiona konfiguracja
  jest wynikiem prób i b³êdów, mo¿na zrobiæ j± ca³kowicie inaczej.
  Dlatego proponujê przejrzenie wszelkiej dokumentacji do tego
  zagadnienia to jest man pppd, NET3-HOWTO oraz PPP-HOWTO.

  Callback mo¿e 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