#use wml::debian::template title="Połączenie z internetem" NOHEADER="yes"

Połączenie z Internetem

Jak prosto i szybko zestawić połączenie PPP za pomocą dostępnych w naszej dystrybucji narzędzi

Możemy wymienić co najmniej kilka rzeczy, których spodziewamy się po nowo zainstalowanym systemie operacyjnym. Oprócz oczywistej poprawy działania (stabilność, szybkość, bezpieczeństwo) w odniesieniu do systemu poprzedniego (jeśli - tak jak w większości przypadków - jest nim znany produkt pewnej bardzo dużej firmy, nie będzie to szczególnie trudne), zazwyczaj chcemy by zostały nam zapewnione podstawowe warunki konieczne do wykonywania pracy lub po prostu uprawiania ulubionych zajęć. Dopiero potem zastanawiamy się nad rozszerzaniem możliwości i w konsekwencji przewyższeniem funkcjonalnością poprzedniego środowiska. Wróćmy jednak do elementów koniecznych - najczęściej chodzi tutaj o dostęp do dysków z innymi systemami plików, możliwość drukowania, graficzny interfejs, ułatwienia w pracy w środowisku tekstowym, obsługę myszki, polskie znaki, korzystanie z dyskietek i CD-ROM-ów, dźwięk, programy umożliwiające konwersję między różnymi formatami itd. Niebagatelną rolę odgrywa także połączenie z innymi komputerami lub siecią (naturalnie tylko wtedy, gdy mamy taką możliwość). Właściwie jest ono sprawą podstawową, gdyż zwykle dzięki niemu uzyskujemy dostęp do informacji pomocnych w dalszej konfiguracji i dostosowywaniu systemu do swoich potrzeb. W tym artykule opiszemy najczęściej chyba wykorzystywane połączenie sieciowe - modemowe połączenie przez łącze komutowane (linię telefoniczną) przy użyciu protokołu PPP (Point-to-Point Protocol) z siecią Internet. Jako przykładu użyję ogólnopolskiego numeru udostępnianego za cenę rozmowy lokalnej przez Telekomunikację Polską S.A. Oczywiście, tekst ten powinien również okazać się pomocny w przypadku innych usługodawców internetowych udostępniających połączenie z Siecią na podobnych zasadach. Wszystko zostało opisane w oparciu o dystrybucję Debian 2.2 Potato (przy czym posiadacze Debiana 2.0 Hamm i 2.1 Slink nie powinni czuć się pokrzywdzeni, gdyż artykuł można odnieść także do tych wersji Debian GNU/Linux) i dostępne w niej programy.

Co nam będzie potrzebne

Dobrze byłoby, gdybyśmy posiadali modem ;). Przy czym nie może być to tzw. ,,winmodem'', czyli urządzenie przekazujące część swoich obowiązków sterownikom Windows. Częstokroć znacznie tańsze, lecz przecież w pewien sposób wybrakowane, urządzenie to nie może pracować pod kontrolą np. Linuksa. Dlatego właśnie konieczny jest zwykły modem. Oprócz tego, oczywiście, potrzebujemy zainstalowanego i działającego Debiana. Jądro musi posiadać obsługę protokołu PPP (prawdopodobnie po zwykłej instalacji mamy ,,PPP Support'' wkompilowane na stałe, później ewentualnie można skompilować je jako moduł w celu zmniejszenia rozmiaru jądra). Ponadto konieczna jest instalacja pakietu ppp (w Potato numer wersji to 2.3.11-1.1) zawierającego niezbędny demon pppd oraz program chat. Gdy nie mamy jeszcze w katalogu /dev stworzonych urządzeń oznaczających porty szeregowe (są to odpowiednio ttyS0 - COM1, ttyS1 - COM2, ttyS2 - COM3 itp. ), należy tworzymy je za pomocą skryptu MAKEDEV: [root]# cd /dev [root]# /MAKEDEV ttySx <gdzie ,,x'' to ,,numer portu - 1''>

Warto też stworzyć specjalne dowiązanie: [root]# ln -s /dev/ttyS1 /dev/modem <gdy mamy modem na COM2>

W /etc/syslog.conf powinniśmy dodać następujący wiersz (jeśli jeszcze jej tam nie ma): *.* -/var/log/ppp.log <pierwszą gwiazdkę możemy zastąpić nazwą podsystemu logowania np. local0 czy local2>

Istotne jest ustawienie adresów serwerów DNS (Domain Name System) w pliku /etc/resolv.conf, dzięki czemu nie będziemy musieli używać tylko numerów IP, ale także zwykłych nazw domenowych. Można też wpisać do niego wiele innych rzeczy - odsyłam do strony podręcznikowej resolv.conf(5) (man 5 resolv.conf). My skoncentrujemy się jednak na numerach serwerów DNS - tak powinien wyglądać efekt naszych modyfikacji (numery IP serwerów TP S.A. - podstawowego i uzupełniającego): nameserver 194.204.152.34
nameserver 194.204.159.1

Dalsze wymagania zależą od metody, którą wybierzemy. Gdy zamierzamy ,,pójść na łatwiznę'' (część pierwsza, ,,Inteligentny'' WvDial), potrzebny nam będzie pakiet wvdial_1.41 (sekcja comm, numer wersji jak w Potato). W przypadku drugiego sposobu (opisanego w kolejnym rozdziale), nie obejdzie się bez pppconfig_2.0.4 (Potato). Gdy zdecydujemy się na sposób trzeci (część Połączenie w środowisku KDE - kppp), wymagane jest zainstalowanie środowiska KDE (pakiety zaczynające się od kde* z różnych sekcji działu contrib).

,,Inteligentny'' WvDial

Program wvdialconf powinien uruchomić się zaraz po zakończeniu instalacji niezbędnych pakietów. Automatyczna konfiguracja połączenia tym sposobem ma swoje niewątpliwe zalety: musimy podać tylko trzy parametry (numer telefonu, nazwę użytkownika i hasło) - trwa to dość szybko, wykrywanie modemu przebiega bez naszego aktywnego udziału i, co najważniejsze, nie musimy angażować zbytnio naszych szarych komórek ;). Według mnie wad jest jednak więcej, a najważniejsza z nich to niemożność ustawienia wielu ważnych opcji (program robi to za nas) i co za tym idzie olbrzymia nieelastyczność narzędzia. Jest to dobre rozwiązanie, gdy nie zamierzamy zgłębiać tajników konfiguracji pppd. Jednak w przypadku późniejszych problemów z połączeniem, warto sięgnąć po pppconfig. Cała konfiguracja znajduje się w pliku /etc/wvdial.conf (wydruk 4). Możemy ją później ręcznie aktualizować (gdy chcemy wyłącznie zmienić ustawienia modemu, wykonujemy polecenie # /usr/sbin/wvdialconf /etc/wvdial.conf). Opcje pppd umieszczone są w /etc/ppp/peers/wvdial. Więcej informacji o formacie pliku /etc/vwdial.conf znajdziemy na stronach podręcznikowych wvdial(1) oraz wvdialconf(1).

Konfiguracja i połączenia przy użyciu pppconfig

Jedynym zadaniem graficznej nakładki o nazwie pppconfig jest pomoc w ustawianiu i uruchomienie połączenia PPP. Gdy już stworzymy w ten sposób odpowiednie wpisy w plikach konfiguracyjnych pppd (Point-to-Point Protocol Daemon), możemy się łączyć i rozłączać przy użyciu specjalnych skryptów: pon oraz poff. W katalogu /etc/ppp znajdziemy większość interesujących nas informacji (te dotyczące konkretnych połączeń znajdują się w /etc/ppp/peers/nazwa_polaczenia). W plikach /etc/chatscripts/nazwa_polaczenia możemy obejrzeć skrypty programu chat służącego do przeprowadzania ,,negocjacji'' między naszym i zdalnym demonem pppd (lub też między naszym komputerem i modemami - zależy od punktu widzenia). Również one są tworzone za pomocą pppconfig. Oto kolejne kroki całej procedury:

  1. Uruchamiamy jako użytkownik root program pppconfig poleceniem /usr/sbin/pppconfig. Po ekranie menu poruszamy się za pomocą strzałek, tabulatorem przełączamy się z menu do przycisków ,,OK'' i ,,CANCEL''. Enter służy do zatwierdzenia (OK) lub cofnięcia zmian (CANCEL - wtedy wracamy do pierwszego ekranu).
  2. W pierwszym oknie wybieramy Create a connection.
  3. Następnie ustawiamy nazwę połączenia. Gdy nie zamierzamy tworzyć innych, to po prostu zostawmy provider - wtedy pozostanie domyślne (i możemy odwoływać się do niego za pomocą poleceń pon i poff bez podawania nazwy). W tym przykładzie postępujemy jednak inaczej - wpisujemy tpsa.
  4. Kolejnym krokiem jest wybór metody identyfikacji. Przekazywanie hasła czystym tekstem (czyli używanie Chat lub PAP w formie podstawowej) nie jest sposobem najbezpieczniejszym. Istnieje groźba podsłuchu, a poza tym niepokoi sam wygląd plików dziennika po próbie nawiązania takiego połączenia (to dotyczy szczególnie podawania hasła bezpośrednio w skrypcie jak to jest w przypadku Chat). Zaznaczamy CHAP (gdyby nasz usługodawca nie obsługiwał tej metody, zawsze mamy do dyspozycji 2 pozostałe).
  5. Tu wpisujemy hasło (w przypadku gdy zawiera spacje i inne dziwne znaki, należy koniecznie ująć je w podwójny cudzysłów) - ppp. Teraz przechodzimy do podstawowej konfiguracji.
  6. Nazwa użytkownika - ppp.
  7. Port, na którym mamy modem. Dla COM2 będzie to /dev/ttyS1 (należy postępować zgodnie z konfiguracją własnego systemu - sposób przyporządkowania urządzeń portom został omówiony na wstępie).
  8. Na pytanie Czy użyć domyślnego routera w zdalnej sieci? w większości przypadków odpowiemy twierdząco. Zaznaczamy (spacją) Enable default route.
  9. Tutaj wpisujemy nasz adres IP, jeżeli jest statyczny. Ponieważ w przypadku naszego numeru zostanie przydzielony dynamicznie, zostawiamy noipdefault.
  10. Szybkość modemu. Najlepiej nie zmieniać domyślnej wartości, czyli 115200.
  11. Sposób inicjalizacji modemu. Powinniśmy pozostać przy ATZ, chyba że mamy uzasadnione powody, by użyć innego ustawienia.
  12. Numer telefonu. U nas 0202122.
  13. Rodzaj wybierania. Tonowe (ATDT) lub pulsowe (ATDP). W przypadku większości central telefonicznych zaznaczamy to pierwsze.
  14. Możemy jeszcze raz przejrzeć konfigurację. Wybranie Finished spowoduje zapisanie zmian.

Teraz już możemy nawiązać połączenie wpisując (jako superużytkownik) pon tpsa, a przerwać je poleceniem poff tpsa. Gdy chcemy uruchamiać te skrypty z uprawnieniami zwykłego użytkownika (/usr/sbin/pppd ma bit SUID i jest własnością użytkownika root), powinniśmy dodać go do grup dialout i dip, zmieniając odpowiednio plik /etc/group (a także /etc/gshadow, jeśli taki posiadamy). Aby dowiedzieć się jak to zrobić, należy zajrzeć na stronę podręcznikową group(5).

Połączenie w środowisku KDE - kppp

Nie zawsze konieczne jest użycie pppconfig. Posiadając zainstalowane środowisko graficzne KDE, dysponujemy programem kppp doskonale sprawdzającym się w tej samej roli. Żeby zacząć z niego korzystać, musimy usunąć opcję lock z pliku /etc/ppp/options (kppp sam dba o blokowanie modemu). Oprócz tego, aby program mógł uruchamiać nie tylko superużytkownik, należy postąpić tak samo jak w przypadku poprzedniego programu, czyli przypisać odpowiedniego użytkownika do odpowiednich grup. Gdy program kppp nie ma bitu SUID (co jest bezpiecznym rozwiązaniem), trzeba także nadać tej grupie pełne prawa do urządzenia reprezentującego nasz modem - np. gdy /dev/ttyS1 jest własnością grupy dialout i ma prawa dostępu 644, jako root musimy wykonać polecenie chmod 664 /dev/ttyS1. Oto krótka instrukcja konfiguracji omawianego narzędzia. (Zakładam, że wcześniej zmieniono już w KDE domyślny język na polski)

  1. Uruchamiamy kppp z menu (pozycja Internet) lub z emulatora terminala (wpisując kppp).
  2. Ukaże nam się okno programu. Lewym przyciskiem myszy wprowadzamy zmiany, prawym możemy uzyskać pomoc dotyczącą wybranych opcji (które uprzednio wskażemy kursorem). Należy utworzyć nowe połączenie. W tym celu wybieramy Opcje...->Nowe...
  3. W pierwszym okienku (Dzwonienie) wpisujemy:
    Nazwa połączenia: tpsa
    Numer telefonu: 0202122 <jeśli musimy używać wybierania pulsowego, na początku numeru dodajemy literę ,,P'' np. P0202122>
    Identyfikacja: CHAP
    Reszta nie ma większego znaczenia - możemy ją zmieniać według naszego uznania.
  4. Adres IP - pozostawiamy Dynamiczny
  5. DNS - najlepiej nie wpisywać tu nic, a opcję Dezaktywuj istniejące DNS w czasie połączenia pozostawić niezaznaczoną. Stosowane będą wtedy serwery nazw, których adresy umieszczone są w pliku /etc/resolv.conf.
  6. Router - pozostawiamy Domyślny router
  7. W oknie Skrypt logowania nie wpisujemy nic, ponieważ nie zamierzamy korzystać z tego typu identyfikacji. Opcjonalnie możemy sobie ustawić zliczanie kosztów połączenia (Koszty) - musimy wtedy odwołać się do Poland->Poland Local. Zamykamy Ustawienia połączenia i przechodzimy do innych zakładek.
  8. Port:
    Port szeregowy: /dev/ttyS1
    Szybkość portu: 115200
    Zaznaczmy też Używaj pliku blokującego, resztę pozostawmy bez zmian
  9. W następnej części (Modem) możemy sprawdzić działanie naszego modemu, w kolejnej (PPP) ustawić bardziej szczegółowe instrukcje dotyczące późniejszego zachowania się programu. W pierwszej raczej nie należy eksperymentować (chyba że modem nie jest wykrywany), drugą można sobie zostawić na później.
  10. Zamykamy Opcje..., wpisujemy hasło i nazwę użytkownika w widoczne na panelu miejsce. Możemy włączyć podgląd terminala (opcja Pokaż podgląd). Klikamy Połącz.

Teraz powinniśmy już słyszeć nasz modem. Miłej zabawy!

Podsumowanie

W Potato istnieje jeszcze kilka metod zestawienia połączenia. Jako przykład można wymienić program z pakietu minicom_1.82.1-1 (sekcja comm), czy też skrypty związane z narzędziem ifconfig. Nie ma jednak sensu ich opisywanie - trzy podstawowe sposoby omówione w tym artykule wystarczą nam w zupełności. Życzę wszystkim owocnej pracy i dobrej zabawy w Internecie - mam nadzieję, że ten tekst okazał się pomocny.