Tę sekcję napisał w całości Tomasz Kaźmierski, któremu niniejszym dziękuję!
Po pierwsze musisz mieć wkompilowaną obsługę protokołu PPP w jądrze, tzn podczas konfiguracji jądra odpowiedz twierdząco na następujące pytanie:
PPP (point-to-point) support (CONFIG_PPP) [N/y/m/?] y
Obsługę protokołu PPP możesz skompilować także jako moduł (zob. Module-HOWTO). W takim przypadku naciśnij ,,m''.
Po drugie musisz zainstalować demona ppp. Znajdziesz go w każdej popularnej dystrybucji Linux'a, lub na serwerze sunsite.icm.edu.pl w katalogu:
Debian: /pub/Linux/debian/bo/binary/net
RedHat: /pub/Linux/redhat-contrib/i386
Slackware: /pub/Linux/slackware/slakware/n3/ppp.tgz
Do testów przyda się też program terminalowy minicom. Znajdziesz go także w każdej dystrybucji.
To jest chyba najczęściej zadawane pytanie na p.c.o.linux. Jego rozwiązanie jest bardzo proste. Nie będę tu przytaczał jakichś kosmicznych przykładów, a tylko przedstawię najprostszy sposób przyłączenia się do Internet'u. Po bardziej specyficzne parametry odsyłam do PPP-HOWTO. Wszystko starałem się wytłumaczyć łopatologicznie (czyt. krok-po-kroku)
Na początek przypominam nowicjuszom nazewnictwo portów w Linux'ie:
DOS Linux
-----------------
com1 /dev/cua0
com2 /dev/cua1
com3 /dev/cua2
com4 /dev/cua3
(Hubert: Pozwolę sobie wtrącić, że w 2.1.*
DOS Linux
-----------------
com1 /dev/ttyS0
com2 /dev/ttyS1
com3 /dev/ttyS2
com4 /dev/ttyS3
Koniec wtrącenia.)
Wybierz właściwy port, do którego podłączony jest modem. Dla modemów
zewnętrznych w większości wypadków będzie to /dev/cua1, a dla
modemów
wewnętrznych /dev/cua2 lub /dev/cua3. W Linux'ie nie
określa się modemu
jako takiego, tylko wskazuje się port, do którego jest podłączony. Od
razu uprzedzam, że jeśli jesteś (nie)szczęśliwym posiadaczem winmodemu
to raczej nie będziesz mógł z niego korzystać pod Linux'em. W poniższym
opisie będę używał portu /dev/cua1, jako tego, to którego podłączony
jest modem. Szybkość modemu to 14440 b/s, ale w parametrze do
pppd
podaje się prędkość pomiędzy portem, a modemem. W zasadzie jest to
prędkość modemu*4, czyli dla 14400b/s jest to 57600b/s , a dla 28800b/s
115200b/s itd.
Następnie proponuję zrobić linka o nazwie "modem" do naszego portu. Takie posunięcie z pewnością ułatwi na życie:
ln -s /dev/cua1 /dev/modem
Potem uruchom minicom'a, aby przetestować, czy aby wszystkie kabelki są na swoich miejscach i czy jesteśmy w stanie dodzwonić się ręcznie do servera TPSA. Po ukazaniu się terminala wpisujemy
atdp0202122
Po krótkiej chwili powinieneś ujrzeć issue zdalnego hosta i dokonać na nim autoryzacji (username:ppp password:ppp). Jak na razie wszystko jest OK, ale jeśli coś Ci po drodze się popsuło to na 99% wybrałeś zły port lub minicom jest źle poinformowany o nim (zajrzyj do helpa Ctrl-A Z). Po wstukaniu dwa razy ppp na ekranie terminala będą się pokazywać dziwne znaki. To właśnie zdalny host wymaga od Ciebie uruchomienia demona pppd. Wyjdź z minicom'a nie resetując połączenia (Ctrl-A Q). Teraz wpisz taką linijkę:
pppd /dev/modem 57600 crtscts lock noipdefault defaultroute &
Mówi ona, że Twoje połączenie będzie realizowane przez port COM2
(/dev/cua1) o prędkości (57600 b/s) przy włączonym
sprzętowym sterowaniu
modemem (crtscts). Dostawca internetu przydzieli Ci dynamiczne IP
(noipdefault) , a twój defaultowy routing (okno na świat) będzie ustawiony
właśnie na połączenie modemowe.
Jeśli do tego miejsca wszystko było OK , to gratuluję. Powinieneś być w Internecie. Spróbuj sprawdzić, czy masz połączenie z innymi serwerami np pingiem:
ping 194.181.178.33
Powinieneś także mieć interfejs ppp0 (pokazuje to polecenie
"ifconfig").
Może to wyglądać na przykład tak:
lo Link encap:Local Loopback
inet addr:127.0.0.1 Bcast:127.255.255.255 Mask:255.0.0.0
UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1
RX packets:12 errors:0 dropped:0 overruns:0
TX packets:12 errors:0 dropped:0 overruns:0
ppp0 Link encap:Point-Point Protocol
inet addr:194.204.177.31 P-t-P:194.204.177.37 Mask:255.255.255.0
UP POINTOPOINT RUNNING MTU:296 Metric:1
RX packets:7 errors:0 dropped:0 overruns:0
TX packets:8 errors:0 dropped:0 overruns:0
Do tego zadania potrzebne sa dwa skrypty, których (jeżeli jesteś początkujący) na 100% nie napiszesz. Dlatego przedstawiam je poniżej, jako prawie gotowe do użycia. "Prawie" dlatego, ponieważ część modemów TPSA w Polsce wstawia spację za słowem "username" i "password", a część nie. Tutaj jest przedstawiona wersja ze spacją. Jeśli skrypt nie działa wyrzuć ją...
-------------------skrypt /etc/ppp/scripts/ppp-on------------------------
#!/bin/sh
TELEPHONE=0202122
ACCOUNT=ppp
PASSWORD=ppp
export TELEPHONE ACCOUNT PASSWORD
DIALER_SCRIPT=/etc/ppp/scripts/ppp-on-dialer
exec /usr/sbin/pppd lock modem crtscts /dev/cua1 57600 noipdefault \
defaultroute connect $DIALER_SCRIPT &
-------------------------------------------------------------------------
Pojawiła się tu opcja "connect". Wskazuje ona, jaki skrypt należy
wykonać,
aby dodzwonić się do provider'a. W tym przypadku skrypt nazywa się
ppp-on-dialer i znajduje się w katalogu
/etc/ppp/scripts/
-------skrypt /etc/ppp/scripts/ppp-on-dialer UWAGA NA SPACJE!!!----------
#!/bin/sh
exec chat -v \
TIMEOUT 3 \
ABORT '\nBUSY\r' \
ABORT '\nNO ANSWER\r' \
ABORT '\nRINGING\r\n\r\nRINGING\r' \
'' \rAT \
'OK-+++\c-OK' ATH0 \
TIMEOUT 50 \
OK ATDP$TELEPHONE \
CONNECT '' \
sername: $ACCOUNT \
assword: $PASSWORD
-------------------------------------------------------------------------
Sprawdź, czy skrypty działają:
./ppp-on
Jeśli po wstukaniu tego wyskakuje Ci komunikat "Permission denied", to zrób jako root
chmod +x ppp-on ppp-on-dialer
Jeśli modem rozłącza się z niewiadomych przyczyn, to spróbuj zmienić
TIMEOUT'a z 50 sekund na np. 70.
Jeśli występuje jakiś inny problem, to upewnij się, że na
pewno zastosowałeś się do umieszczonych tu rad, a w ostateczności wyślij
ostatnie kilka linijek pliku /var/log/messages dotyczących
pppd na
p.c.o.linux z zapytaniem o co w tym wszytkim chodzi... ;-)
Autoryzacja przez PAP polega na wymianie informacji o użytkowniku poprzez specjalny protokół pomiędzy dwoma partnerami. Nie ma tu więc standardowego pytania o login o password. Te dwa parametry podaje się osobno: w linii poleceń i w specjalnym pliku. Autoryzacje poprzez PAP poznasz po tym, że po dodzwonieniu się do zdalnego systemu minicom'em na terminalu nie pojawią się żadne napisy, a po krótkiej chwili połączenie zostanie zerwane. Jeśli chcesz dowiedzieć sie więcej o ideii protokołu PAP/CHAP zajrzyj do PPP-HOWTO (paragraf 13.)
Przy autoryzacji PAP hasło (tu nazywane także sekretem) wpisuje się w pliku
/etc/ppp/pap-secrets
Oto wzór takiego pliku:
------------------------/etc/ppp/pap-secrets-----------------------------
# Secrets for authentication using PAP
# client server secret IP addresses
kazik * kazik123
-------------------------------------------------------------------------
"kazik" to jest mój login u provider'a, a "kazik123" to jest hasło. W polu "server" powinna być wpisana nazwa komputera, który dokonuje autoryzacji. Jeśli nie znasz jego nazwy, a masz tylko jednego provider'a to możesz zamiast nazwy wstawić gwiazdkę ("*"). Oznacza ona, że nie obchodzi cię to. W razie, gdy masz wielu providerów dopisujesz kolejne wiersze i wtedy musisz wpisać nazwę hosta. W polu "IP addresses" możesz wpisać lokalny numer IP, jeśli taki został ci przydzielony przez dostawcę Internetu. Jeśli jednak korzystasz z dynamicznego przyznawania IP, to zostawiasz to pole puste. Jeśli połączenie nie chce się nawiązać, a w logach nie możesz się dopatrzeć niczego szczególnego, to sprawdź poprawność wpisów w tym pliku.
Jeśli nie czytałeś paragrafu 7.2.1, to przejrzyj go teraz. Nie będę się powtarzał i podam tylko różnicę pomiędzy dwoma sposobami autoryzacji. Oczywista zmiana jest numer telefonu. Wraz z umową provider podał Ci na pewno numery dostępowe. Aby wykręcić ten numer minicom'em poprzedź go ciągiem znaków "atdp" np:
atdp427828
"427828" to mój przykładowy numer dostępowy. Następnie jak modemy skończą handshaking (skończą "ćwierkać"), wyjdź z minicoma i odpal pppd:
pppd /dev/modem 57600 crtscts lock noipdefault defaultroute user kazik &
Ważny tu jest parametr "user", który informuje pppd, jak brzmi twój
login u providera (tu jest przykładowe "kazik"). Reszta parametrów jest
opisana w paragrafie 7.2.1. Jeśli wszystko poszło OK to powinieneś mieć
urządzenie ppp0 (pokazuje to polecenie "ifconfig") np:
lo Link encap:Local Loopback
inet addr:127.0.0.1 Bcast:127.255.255.255 Mask:255.0.0.0
UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1
RX packets:69 errors:0 dropped:0 overruns:0
TX packets:69 errors:0 dropped:0 overruns:0
ppp0 Link encap:Point-Point Protocol
inet addr:195.136.0.103 P-t-P:195.136.0.100 Mask:255.255.255.0
UP POINTOPOINT RUNNING MTU:296 Metric:1
RX packets:21 errors:0 dropped:0 overruns:0
TX packets:21 errors:0 dropped:0 overruns:0
oraz mieć możliwość ping'nięcia jakiegoś hosta np:
ping 194.181.178.33
Oto skrypty, które automatycznie połącza Cię z providerem. Nie zapomnij zmienić swojego login'a !
-------------------/etc/ppp/scripts/pap-ppp-on---------------------------
#!/bin/bash
TELEPHONE=$1
export TELEPHONE
DIALER_SCRIPT=/etc/ppp/scripts/pap-ppp-on-dialer
exec /usr/sbin/pppd /dev/modem 57600 crtscts lock noipdefault defaultroute \
connect $DIALER_SCRIPT user kazik &
-------------------------------------------------------------------------
Jako, że ja mam kilka numerów dostępowych, wpisuje numer telefonu jako argument do skryptu. Jeśli Ty masz tylko jeden, to zmień "$1" na swój numer dostępowy.
-----------------/etc/ppp/scripts/pap-ppp-on-dialer----------------------
#!/bin/sh
exec chat -v \
TIMEOUT 3 \
ABORT '\nBUSY\r' \
ABORT '\nNO ANSWER\r' \
ABORT '\nRINGING\r\n\r\nRINGING\r' \
'' \rAT \
'OK-+++\c-OK' ATH0 \
TIMEOUT 40 \
OK ATDP$TELEPHONE \
CONNECT ''
-------------------------------------------------------------------------
W moim FAQ przyjąłem, że korzystasz z centrali impulsowej, ponieważ
jeszcze nie słyszałem, żeby TPSA wprowadziła wybieranie tonowe. Jeśli
jednak jesteś podłączony do centrali tonowej, to zmień ciąg znaków
"atdp" przed numerem telefonu na "atdt" np
atdt0202122
Jeśli coś nie działa, a postąpiłeś zgodnie z opisem, to skontaktuj się ze mną, a ja postaram się Ci pomóc.
Jeśli masz jakieś zastrzeżenia do tego FAQ koniecznie wyślij swoje uwagi na mój adres kazik@man.koszalin.pl
Można ostatnio w sieci znaleźć coraz więcej programów, które prowadząc usera za rączkę pomagają konfigurować połączenie ppp. Taki program, bardzo przypominający dial-up networking z Win95 ma np. KDE. Poza tym np. Debian standardowo jest wyposażany w program pon.