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,
. 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
Paweł Skonecki
e-mail: stona@fizyka.umcs.lublin.pl
Wyszukiwarka
Podobne podstrony:
callback pl 6
Callback pl (3)
callback pl 4
callback pl 3
callback pl 1
Callback pl (2)
callback pl 5
callback pl 2
TI 99 08 19 B M pl(1)
bootdisk howto pl 8
BORODO STRESZCZENIE antastic pl
notatek pl sily wewnetrzne i odksztalcenia w stanie granicznym
WSM 10 52 pl(1)
amd102 io pl09
PPP HOWTO pl 6 (2)
bridge firewall pl 3
więcej podobnych podstron