Połączenie PPP przez minicom-a. Autor: Winfried Trümper, winni@xpilot.org v0.0, 9 Grudnia 1996 WWeerrssjjaa ppoollsskkaa:: BBaarrttoosszz MMaarruusszzeewwsskkii BB..MMaarruusszzeewwsskkii@@jjttzz..oorrgg..ppll v1.01, 26 Lipca 1997 Chcesz mieć ładne narzędzie z menu do obsługi PPP? Łatwą w obsłudze i zarazem bardzo zaawansowaną książkę telefoniczną z numerami telefonów twoich dostawców Internet-u? Chcesz widzieć co się dzieje jak się logujesz? Jeśli tak, to ten dokument jest dla ciebie! Dokument ten został napisany w standarcie ISO-8859-2. Oryginał znajduje się pod adresem ftp.icm.edu.pl w katalogu /pub/Linux/sunsite/docs/HOWTO/mini. ______________________________________________________________________ Spis treści 1. Wprowadzenie. 1.1 Program emulujący terminal - "minicom". 1.2 Komentarze. 1.3 Znane błędy. 2. Dzwonienie przy pomocy minicom-a. 2.1 Konfiguracja minicom-a. 2.2 Ręczne startowanie PPP. 2.3 Analizowanie logów. 2.4 Skonfiguruj numer telefonu. 2.5 Skrypt logujący. 2.6 Zautomatyzowane dzwonienie przy starcie. 2.7 Przyszłe rozszerzenia. 2.8 Od tłumacza. ______________________________________________________________________ 11.. WWpprroowwaaddzzeenniiee.. PPP stał się standardowym protokołem sieciowym jeśli chodzi o połączenia z Internet-em realizowane poprzez telefon. Odpowiedni demon "_p_p_p_d" dostarczany jest razem z bardzo prymitywnym narzędziem do dzwonienia, które obsługuje dobrze tylko bardzo proste ustawienia. Opiszę tutaj alternatywne rozwiązanie na podstawie "_m_i_n_i_c_o_m_-_a". Dokument ten jest krótszą wersją niemieckiego "_I_n_t_e_r_n_e_t_a_n_b_i_n_d_u_n_g _m_i_t _P_P_P" www.uni-koeln.de . (Może kiedyś to przetłumaczę - tłumacz). 11..11.. PPrrooggrraamm eemmuulluujjąąccyy tteerrmmiinnaall -- ""mmiinniiccoomm"".. "_m_i_n_i_c_o_m" jest bardzo wyrafinownym narzędziem służącym do dzwonienia do innych komputerów (dostawców internet-u lub BBS-ów). Ma fajne kolorowe menu, książkę telefoniczną i bardzo rozwinięty język skryptowy. Dlatego też idealnie nadaje się do użycia w połączeniu z "_p_p_p_d". Tak przy okazji: Jeśli użyjesz polecenia /sbin/mgetty /dev/modem to każdy, kto posiada konto na twoim komputerze może zadzwonić do ciebie (np. używając "minicom-a"). Ale to już inna historia. Przeczytaj dokumentację na temat "_m_g_e_t_t_y". 11..22.. KKoommeennttaarrzzee.. Jestem zainteresowany tylko tymi komentarzami, które wnoszą coś nowego do tego dokumentu. Nie będę odpowiadał na pytania ogólne dotyczące Linux-a, PPP, SLIP-a czy sieci. 11..33.. ZZnnaannee bbłłęęddyy.. W czasie pisania tego dokumentu, w programach "_m_i_n_i_c_o_m" i "_r_u_n_s_c_r_i_p_t" oraz w podanej niżej metodzie były błędy. ˇ "runscript" nie czeka na zakończenie programów zewnętrznych. print "blah" ! sleep 10 print "blup" Ten skrypt kończy się natychmiast (ale nie jeśli jest śledzony polece­ niem "strace"). ˇ "pppd" odbiera urządzenie szeregowe "minicom-owi" (jeśli dane nie są przekazywane przez stdin). Wyglada na to, że Miquel van Smoorenburg (autor "minicom-a") jest zbyt zajęty, żeby naprawić te błędy. Tak więc ochotnicy są mile widziani. 22.. DDzzwwoonniieenniiee pprrzzyy ppoommooccyy mmiinniiccoomm--aa.. Wiele podręczników dotyczących PPP zaleca wyjść z minicom-a po dodzwonieniu się. Ale naprawdę nie ma potrzeby wychodzenia z tego wygodnego programu. 22..11.. KKoonnffiigguurraaccjjaa mmiinniiccoomm--aa.. Wykonaj "minicom -s" i wybierz z menu "_S_e_r_i_a_l _p_o_r_t _s_e_t_u_p". Pierwszą pozycją powinno być "_S_e_r_i_a_l _D_e_v_i_c_e" - jest to najważniejsze z ustawień: urządzenie szeregowe, do którego podłączony jest twój modem. (Czy są jacyś ochotnicy, do przeróbki minicom-a tak, żeby obsługiwał kilka urządzeń szeregowych na raz?) Wciśnij , aby potwierdzić i , aby wyjść do pierwszego menu. Wybierz "_E_x_i_t _t_o _m_i_n_i_c_o_m" i wpisz "_a_t_d_t_9_9_9_9_9". Twój modem od razu powinien zacząć wybierać numer i powinieneś usłyszeć "kliknięcie" kiedy modem się dodzwoni. Oczywiście "_9_9_9_9_9" to nie jest prawidłowy numer telefonu. 22..22.. RRęęcczznnee ssttaarrttoowwaanniiee PPPPPP.. Może już próbowałeś zadzwonić do swojego dostawcy Internet-u. Widziałeś takie dziwne znaczki na ekranie po zalogowaniu się (jeśli nie, to wpisz "_p_p_p")? Są one wynikiem programu "_p_p_p" (albo jakiegoś odpowiednika) uruchomionego na drugim końcu linii. Jeśli tak, to możesz uruchomić u siebie demon "_p_p_p_d" i przeanalizować potem logi systemowe. Aby uruchomić "_p_p_p_d" w minicom-ie, możesz zdefiniować nową metodę ładującą (zobacz samemu jak to się robi) albo przedefiniować ustawienie "_k_e_r_m_i_t _p_r_o_g_r_a_m" z menu konfiguracyjnego "_F_i_l_e_n_a_m_e _a_n_d _p_a_t_h_s": A - Download directory : B - Upload directory : C - Script directory : D - Script program : /usr/bin/runscript E - Kermit program : /usr/sbin/pppd file /etc/ppp/mini_options Teraz jak zobaczysz te dziwne znaczki możesz wcisnąć , aby uruchomić "_p_p_p_d". Reszta tego dokumentu zajmuje się automatyzacją logowania i uruchamiania "_p_p_p_d". 22..33.. AAnnaalliizzoowwaanniiee llooggóóww.. Chociaż nie chcę wyjasniać jak ma być konfigurowane PPP, to pokażę małą sztuczkę jak czytać logi. Aby wyciągnąć ważne dla nas informacje z pliku "/var/log/debug" (albo alternatywnego "/var/log/daemon.log") wykonaj polecenie: tail -n 40 /var/log/debug |\ grep -E " pppd\[[0-9]*\]:" |\ sed -e "s/^.*pppd\[/[/" Powinieneś zobaczyć coś takiego: sent [LCP ConfReq id=0x1 ] rcvd [LCP ConfRej id=0x1 ] co pokazuje, że wysłaliśmy prośbę o konfigurację, aby ustawić maksymalną jednostę do otrzymania (mru) na 296. Druga strona odrzuciła naszą prośbę ("_c_o_n_f_i_g_u_r_a_t_i_o_n _r_e_j_e_c_t_e_d"). W tym przypadku po prostu usunąłem opcję "_m_r_u" z pliku "/etc/ppp/options". 22..44.. SSkkoonnffiigguurruujj nnuummeerr tteelleeffoonnuu.. Jeśli powyższe się udało, to może chcesz zapisać numer telefonu w książce telefonicznej "minicom-a". Wciśnij , aby wybrać menu dzwonienia i wybierz "_E_d_i_t": A - Name : Xeno B - Number : 022039697303 C - Dial string # : 1 D - Local echo : No E - Script : /etc/ppp/login.script F - Username : ppp-382 G - Password : top-secret H - Terminal Emulation : VT102 I - Backspace key sends : Delete J - Linewrap : Off K - Line Settings : Curr 8N1 To jest przykładowa pozycja, której używam do dzwonienia do swojego dostawcy Internet-u. Skrypt /etc/ppp/login.script jest pokazany niżej. Dwie specjalne zmienne są przekazywane do tego skryptu: $(LOGIN) i $(PASS), które są ustawione na identyfikator użytkownika (F) i hasło (G). Ta cecha czyni minicom-a trochę bardziej elastycznym, ponieważ potrzebujesz tylko jednego skryptu, żeby zautomatyzować logowanie się do kilku dostawców. 22..55.. SSkkrryypptt lloogguujjąąccyy.. "minicom" uruchamia skrypt logujący, po tym jak otrzyma łańcuch "_C_O_N_N_E_C_T". A dokładniej, "minicom" nie wykonuje tego skryptu samemu, tylko woła do tego zadania narzędzie "_r_u_n_s_c_r_i_p_t" jako podproces. Poniżej znajduje się przykład jakiego używam dla swojego dostawcy. # v1.0, 20.08.96 Winfried Trümper print "" print "Automatic login via /etc/ppp/login.script" ## odkomentuj jeśli musisz wcisnąć , aby otrzymać prompt #send "" expect { "ogin:" "ogin>" "sername:" "sername>" "NO CARRIER" exit 1 } send "$(LOGIN)" expect { "assword:" "assword>" timeout 20 } send "$(PASS)" expect { "port" send "ppp" "Start your PPP now" "}!}!}" timeout 10 } print "" print "Now switching into ppp-mode ..." print "" ! /usr/sbin/pppd file /etc/ppp/mini_options print "" print "the command killall -TERM pppd terminates pppd" Możliwość wykonywania programów zewnętrznych przez "_r_u_n_s_c_r_i_p_t" używana jest do uruchamiania "_p_p_p_d". Skopiuj swój oryginalny plik z opcjami dla ppp do "/etc/ppp/options.ttyS1" (gdzie "ttyS1" musisz zamienić na urządzenie, do którego dołączony jest twój modem) i skasuj wszystkie linie, które są specyficzne dla twojego modemu (takie jak: "connect", "crtscts" albo "modem") z /etc/ppp/options. Umieść opcje, które powinny być specyficzne dla połączenia ppp przez minicom-a w pliku "/etc/ppp/mini_options". Jedną z tych opcji powinno być disconnect "chat '' '\d\d+++\d\dATH\r\c'" Ta opcja MUSI być ponieważ "_p_p_p_d" pobiera dane z "_s_t_d_i_n" i nie może zawiesić modemu poleceniem "crtscts". 22..66.. ZZaauuttoommaattyyzzoowwaannee ddzzwwoonniieenniiee pprrzzyy ssttaarrcciiee.. Użyj opcji "_-_d", aby dzwownić pod wskazany numer od razu po uruchomieniu minicom-a. Możesz też spróbować open -sl -- minicom -d 1 Aby wrzucić minicom-a na inną konsolę - zobacz mini-HOWTO Consoles- Many. 22..77.. PPrrzzyysszzłłee rroozzsszzeerrzzeenniiaa.. Ponieważ "_p_p_p_d" jest demonem, więc nie jest on przeznaczony do działania w interakcji czy obserwacji. I to jest w porządku. Przecież używamy systemy "unixowego", nie ? Standardowym rozwiązaniem jest jakiś "front-end". Są jacyś chętni, do grzebania się z minicom-em? Fajnymi rozszerzeniami byłyby: ˇ automatyczne generowanie skryptu logującego przez obserwację ręcznego podłączania się. ˇ automatyczna analiza log-ów z korektą opcji. ˇ wyciąganie wiadomości jak to pokazano w punkcie ``2.3''. Koniec. 22..88.. OOdd ttłłuummaacczzaa.. Tłumaczenie to jest chronione prawami autorskimi Š Bartosza Maruszewskiego. Dozwolone jest rozprowadzanie i dystrybucja na prawach takich samych jak dokument oryginalny. Jeśli znalazłeś jakieś rażące błędy ortograficzne, gramatyczne, składniowe, techniczne to pisz do mnie: B.Maruszewski@jtz.org.pl Oficjalną stroną tłumaczeń HOWTO jest http://www.jtz.org.pl/ Aktualne wersje przetłumaczonych dokumentów znajdują się na tejże stronie. Dostępne są także poprzez anonimowe ftp pod adresem ftp.jtz.org.pl w katalogu /HOWTO/. Przetłumaczone przeze mnie dokumenty znajdują się także na mojej stronie WWW. Są tam też odwołania do Polskiej Strony Tłumaczeniowej. Kontakt z naszą grupą, grupą tłumaczy możesz uzyskać poprzez listę dyskusyjną jtz@ippt.gov.pl. Jeśli chcesz sie na nią zapisać, to wyślij list o treści subscribe jtz Imię Nazwisko na adres listproc@ippt.gov.pl