Ostatnia aktualizacja: 15 maja 2004

Linki do instrukcji instalacji modemu Thomson SpeedTouch (rozdział 7)

Neostrada Plus w Linuksie

Napisane przez pewnego lamera, żeby ułatwić życie innym lamerom :-)



1. Tytułem wstępu

2. Jak to uruchomić

3. Niektóre kłopoty

4. Dzielenie połączenia - sieć lokalna, firewall, forwarding i inne

5. Inne zagadnienia

6. Modemy Sagem przez USB

7. Modemy Thomson SpeedTouch

8. Pozdrowienia, kontakt i tym podobne

Inne źródła:

Pakiety do Slackware 9.1
gotowe do zainstalowania
Instalacja w Slackware
www.slackware.com.pl, Igor Zakrzewski
Instalacja w OpenBSD
mak.ant.pl/~kanski/neostrada, Maciek Kanski
Instalacja w PLD (modem USB)
PLD Linx Portal - ustawiamy NEOUSB
Routing, firewalle i inne
Dużo, przystępnie i po polsku - Łukasz Bromirski
SieciLokalne.pl
Dla tych którzy chcą drążyć temat.
Jak pytać żeby nie dostać po głowie
Naprawdę, warto przeczytać... ;-)
SecurityFocus - w szczególności zasady stawiania firewalli
Warto też zapisać się na newsletter i śledzić co w trawie piszczy.


1. Tytułem wstępu

tux

Latem 2002 roku przyszli do mnie technicy TPSA zakładać Neostradę. Na dzień dobry dowiedziałem się od nich, że pod linuksem uruchomić się tego nie da - albowiem konieczna jest do tego aplikacja dostępowa, która działa tylko w Windowsach 97 do 2000 - nie działa w NTkach ani w Linuksie. Trochę mnie to zmartwiło, bo mam w domu więcej niż jeden komputer i chciałem sobie to połączenie rozdzielić (na siebie i żonę...). Przyciśnięci wydusili z siebie, że owszem, da się w Linuksie, ale to jest bardzo trudne.

Uniosłem się ambicją - uruchomiłem w windzie i zacząłem szukać porady w internecie. Co nieco znalazłem, po kilku dniach kombinowania udało się wreszcie uruchomić. Problem polegał głównie na tym, że nigdzie nie było napisane wprost co należy zrobić, a ludzie na usenecie byli już tak znudzeni powtarzającymi się co parę dni pytaniami o neostradę, że kolejnych pytających wysyłali bezpardonowo na drzewo. Pomyślałem sobie więc, że przydałaby się taka prosta, łopatologiczna instrukcja - i oto jest. Nie muszę chyba dodawać, że instalacja jest prosta i na ogół bezproblemowa, a żadna "aplikacja dostępowa" nie jest do tego potrzebna...

Od tego czasu korzystam z internetu prawie cały czas, tego zresztą wymaga moja obecna praca. Wciąż jednak nie mogę się tym nacieszyć - połączenie cały czas, nie trzeba nic wykręcać, słuchać pisków modemu, czekać na połączenie, a prędkości - przy downloadach dochodzą do 60 KB/s. Czasami co prawda nie działa, zdarzają się kilkugodzinne przerwy w dostępie do internetu, ale na szczęście niezbyt często.

2. Jak to uruchomić

Jako że nie uważam się za eksperta, nie mogę powiedzieć jak należy to zrobić, ani jaki jest najlepszy sposób. Jedyne co mogę to napisać jak sam to zrobiłem, a że zadziałało, więc pewnie nie był to najgorszy sposób.

A więc po kolei:

- oprogramowanie

W większości "współczesnych" dystrybucji (RH 8.0, Aurox itp) oprogramowanie obsługujące PPPOE instalowane jest standardowo, więc nic nie trzeba doinstalowywać. Jeśli nie ma, to można dołożyć - ja ściągnąłem sobie program "rp-pppoe" ze strony www.roaringpenguin.com , wersję nową. Jeśli oprogramowanie jest, to w katalogu /usr/sbin znajdują się skrypty adsl-start, adsl-stop, adsl-connect i adsl-setup.

- konfiguracja

Uruchomić skrypt adsl-setup; zada on serię pytań, z których na większość można odpowiedzieć "enter", pozostawiając w ten sposób wartości domyślne. Odpowiedzi udzielić należy na następujące pytania:

Opcja "0" jest wskazana, jeśli chcemy sami zająć się ustawieniem firewalla i/lub będziemy konfigurować sieć lokalną.

Po zapisaniu konfiguracji odpalamy skrypt adsl-start lub polecenie ifup ppp0, i po kilku sekundach powinniśmy już mieć połączenie. Jedyną osiągalną stroną będzie www.rejestracja.neostrada.pl - tam podajemy dostarczony przez techników ID i PIN, otrzymujemy login, wybieramy hasło. Żeby mieć dostęp do całego internetu, trzeba login i hasło wpisać do plików pap-secrets i chap-secrets - albo ręcznie, albo uruchomić jeszcze raz adsl-setup i wybrać opcję zmiany konfiguracji istniejącego interfejsu ppp0.

Efektem tego wszystkiego jest powstanie pliku pppoe.conf. Żadnych cudów tam nie potrzeba, mój plik wygląda tak , i działa bez zarzutu.

I to w zasadzie wszystko - potem tylko wklepać "adsl-start", i cieszyć się życiem.

3. Niektóre kłopoty

Czasem bywają, chociaż ja napytałem ich sobie głównie sam, wstyd się przyznać dlaczego... W każdym razie trochę musiałem z tym powalczyć, więc podzielę się doświadczeniami.

Bardzo dobrym źródłem wiedzy jest dokument DSL-HOWTO for Linux, polecam lekturę, zwłaszcza rozdziałów nt tablic routingu i ustawiania MTU.

- routing w routerze

Tablica rutingu powinna wyglądać tak, jak w niniejszym przykładzie, i nie inaczej - jeśli coś nie działa a tablica wygląda inaczej, to można próbować nią manipulować przy pomocy polecenia "route", ale najprawdopodobniej coś jest źle ustawione - u mnie np. w pliku /etc/sysconfig/network było wpisane GATEWAY=[inny adres lokalny], kompletnie niepotrzebnie.

- routing w komputerze w sieci

W windzie ustawia się bramkę (wewnętrzny adres naszego rutera) i podaje adresy DNSów, w linuksie trzeba w pliku /etc/sysconfig/network dodać wpis "GATEWAY=[adres lokalny routera]", a adresy DNSów wpisać w pliku /etc/resolv.conf poprzedzając je słowem "nameserver". To wszystko można też zrobić przy pomocy graficznych konfiguratorów, których kolejne dystrybucje linuksa mają coraz więcej.

- komunikat "you must be root to run this script"

Skrypty adsl-coś tam mogą być uruchamiane tylko przez root'a. Na początku skryptu jest polecenie sprawdzające ID użytkownika (if /usr/bin/id -u ! =0...). Korzysta ono z programu "id" - błąd może wystąpić jeżeli ten program znajduje się gdzie indziej niż w katalogu /usr/bin, albo w ogóle inaczej się nazywa - zdarza się tak w niektórych dystrybucjach. Trzeba po prostu zrobić drobną poprawkę w skrypcie. (problem zgłosił Heniek z Tych)

- kłopoty z przyznaniem interfejsowi sieciowemu właściwego adresu ip

Z tego co do mnie dotarło, czasami karta sieciowa zgłasza problemy z uzyskaniem właściwego ip. Dzieje się tak wtedy, kiedy karta do której jest podpięta neostrada zostaje uruchomiona z parametrem "dhcp"(dynamic host configuration protocol). Jest on niepotrzebny - w prawidłowo skonfigurowanym połączeniu interfejs do którego jest podłączona linia nie ma adresu ip i mieć go nie musi - ma go utworzony na potrzeby połączenia interfejs ppp0. Dla karty sieciowej wystarczy żeby we właściwym skrypcie (u mnie jest to ifcfg-eth1 w /etc/sysconfig/networking/devices albo w /etc/sysconfig/network-scripts) były wpisy "device=eth1" i "onboot=yes", resztę ustawi program podczas zestawiania połączenia. (zapodali: Artek i Skibbi)

- niektóre strony www działają, a niektóre nie, albo pojawiają się dziwne problemy z pocztą

Jeśli przed instalacją neostrady wszystko działało, a potem nagle przestało, to prawdopodobnie jest to problem z ustawienie MTU (maximum transfer unit). Standardowo jest to ustawione na 1500, ale w połączeniach adsl osiem bitów jest potrzebne do czegoś innego, stąd MTU na interfejsie 'internetowym' (karcie sieciowej do której przypięty jest modem) powinno być 1492. Dobrze jest obniżyć też na drugim końcu rutera, tj na interfejsie do sieci lokalnej. Zmienia się to w ustawieniach interfejsów sieciowych (poleceniem ifconfig albo skrypty ifup), sprawdza samym "ifconfig".

Jeśli komputer z sieci lokalnej w dalszym ciągu ma problemy, a pracuje pod windowsami, można spróbować zastosować któryś z patchy (sguide_tweak_2k albo sguide_tweak_98), instaluje się je po prostu i powinno to zlikwidować wszystkie problemy. (instrukcję i patche nadesłał: Musiker).

Można też spróbować doświadczalnie ustalić maksymalne MTU dla stacji windowsowej, w sposób następujący: z komputera z windowami pingować dowolny zewnętrzny host poleceniem 'ping' z parametrami -f (nie zezwala na fragmentację pakietu) i -l xxxx (ustawia wielkość wysyłanego pakietu. W ten sposób próbujemy przepchać przez naszą lokalną sieć i dalej do internetu pakietu różnej wielkości - zmieniamy parametr -l (to jest małe el) od 1492 w dół, i patrzymy kiedy zadziała. Ponieważ pakiet wysyłany przez pinga ma jeszcze nagłówek o wielkości 28 bajtów, do otrzymanej w ten sposób wartości należy dodać 28 i to będzie maksymalna wielkość pakietu, czyli MTU które na danej stacji windzianej ustawić należy. (podpowiedział i wyjaśnił: Edek z p.c.o.l., za co wielkie dzięki). W windowsach MTU ustawia się albo ręcznie, w rejestrze (HKEY_LOCAL_MACHNE\ System\ CurrentControlSet\ Services\ Class\ netTrans\000n - tych n-ów jest kilka, należy znaleźć właściwy), tam trzeba podać parametr MaxMTU - domyślnie go nie ma, a to oznacza że jest 1500. Można też poszukać sobie w internecie programu DrTCP, który właśnie do tego służy.

Alternatywnym sposobem rozwiązania tego samego problemu jest ustawienie odpowiedniej reguły w iptables na ruterze:

iptables -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

Osobiście nie testowałem, ale podobno skutecznie udrażnia to komunikację w przypadku stacji roboczych tak windzianych, jak i Maców. (wypraktykował i nadesłał: Przemek Borkowski)

- inne drobne porady

Jakby ktoś zapomniał, to żeby komputer przypięty do neostrady obsłużył sieć lokalną, w pliku /proc/sys/net/ipv4/ip_forward, a także w paru innych z tej okolicy muszą być wartości 1, a nie 0 (w niektórych dystrybucjach załatwia to skrypt /etc/rc.d/init.d/network za pomocą polecenia echo 1 > /proc/.../ip_forward, a w niektórych nie). Nie od rzeczy byłoby też dokonać w pliku /etc/sysconfig/network wpisu "FORWARD_IPV4=true"... Dobrze też sprawdzić zawartość pliku /etc/sysctl.conf, tam są domyślne ustawienia wielu istotnych parametrów.

4. Dzielenie połączenia - sieć lokalna, firewall, forwarding i inne

4.1 Czy można podzielić

Regulamin usługi mówi jasno, że "połączenie nie może być udostępniane poza lokal". Czyli - w obrębie swojego mieszkania można sobie robić co się chce, zrobić sieć lokalną ze stacjami dla wszystkich domowników z psem włącznie. Udostępniać sąsiadom, w świetle regulaminu, nie wolno - czy można, to już jest kwestia osobista (podobnie jak płacenie podatków i przestrzeganie ograniczeń prędkości...). Od niedawna TPSA świadczy nową usługę "InternetDSL" - jest to praktycznie to samo co Neostrada, różni się tym że daje stałe IP, można ją legalnie i z czystym sumieniem udostępniać komu się chce, i jest o połowę droższa.

4.2 Ustawienie sieci

Potrzebny jest do tego oczywiście hub (albo raczej switch) oraz jeden komputer, który będzie cały czas włączony i połączony z internetem i będzie pełnił rolę routera. Router musi być wpięty pomiędzy hub, a internet - musi mieć więc dwie karty sieciowe, jedną połączoną z hubem, a do drugiej będzie przypięty modem.

4.3 Wymagania od routera

Niewielkie - może to być stary pecet, procesor 486 w zupełności wystarczy. Nie musi mieć monitora ani klawiatury - można nim administrować przez telnet z innego komputera (trzeba na nim tylko uruchomić serwer telnetu). Teoretycznie nie musi mieć nawet twardego dysku - istnieją "dyskietkowe" dystrybucje linuxa, niektóre z nich przeznaczone właśnie dla domowych routerów. Przy ich pomocy powinno być możliwe także uruchomienie Neostrady; mi się wprawdzie jak dotąd nie udało, ale to przecież nie znaczy że to jest niemożliwe ;-)

4.4 Zabezpieczenie

Moja "sieć" nie jest wielka (ruter i dwie stacje robocze, moja i małżonki), ale chronić ją trzeba. Skorzystałem ze znalezionego w internecie bardzo dobrego tekstu Pawła Krawczyka Filtrowanie 'stateful-inspection' w Linuksie i BSD - wszystko tam jest łopatologicznie opisane, co i jak działa, jest tam też gotowiec z którego, przyznaję, skorzystałem prawie w całości.

Dla osób, które z iptables, maskaradą i tego typu rzeczami nie miały jeszcze do czynienia -

      tutaj jest garść podstawowych informacji (instalacja, konfiguracja itp)

Z innych środków zabezpiecznia polecam programy nasłuchujące na portach i sprawdzające, czy ktoś się do nas nie dobiera - na przykład PortSentry (szczegóły - man portsentry i www.google.com). Kopalnią wiedzy na temat routingu i zabezpieczeń sieci jest strona Łukasza Bromirskiego mr0vka.eu.org.

5. Różne inne zagadnienia i problemy

- jak podtrzymać połączenie

To jest akurat najprostsza rzecz - Neostrada rozłącza się po kilku godzinach braku ruchu na łączu. Wystarczy wrzucić do katalogu cron.hourly skrypt składający się z jednej linii w rodzaju "ping -c5 www.cokolwiek", i po sprawie :-) Zastosowanie któregoś z poniższych skryptów również załatwia sprawę, bo one pingują regularnie dla sprawdzenia połączenia.

- automatyczne nawiązywanie zerwanego połączenia

Jedną z zalet połączenia adsl jest to, że w przypadku przerwy w połączeniu nie ulega trwałemu zerwaniu - można na przykład wyjąć wtyczkę (telefoniczną oczywiście) z gniazdka, włożyć z powrotem i wszystko będzie działać jak przedtem. Tak więc przerwy w dostępie do netu wynikające np z tego, że tepsa coś majstruje, nie powinny powodować zerwania połączenia. Gdyby jednak z jakichś przyczyn połączenie padło, przydałoby się żeby zostało automatycznie uruchomione (gdyby na przykład padło kiedy nie ma mnie w domu, a moja żona potrzebowałaby wysłać pilnego maila...). Najprościej zrobić to przez crona - wpisać do np cron-hourly skrypcik który sprawdzi czy jest połączenie, a jeśli nie ma to rozłączy i połączy z powrotem (to jest o tyle potrzebne, że czasem pada ppp0, a adsl-start mówi że jest już połączenie, więc trzeba najpierw rozłączyć, a potem połączyć). Można to samo robić co pięć, dziesięć, piętnaście minut - jak kto chce, wpisać tylko co trzeba do crontab'a - polecam man cron :-)

Na podstawie znalezionego gdzieś w internecie skryptu (autor nieznany) zmajstrowałem swój własny, który sprawdza połączenie, w przypadku jego braku wywołuje adsl-stop i adsl-start, a wszystko loguje. Nie jest to profesjonalna robota, ale robi to co powinien.

Oto i on.

- czy komputer z neostradą może być serwerem (np www albo ftp)

To pytanie bardzo często się pojawia, więc oto odpowiedź: owszem, może, problemem jest natomiast adres ip, który co jakiś czas się zmienia. Rozwiązaniem tego jest system "dynamic DNS" - są to nameservery, które komunikują się stale ze swoimi "klientami" i w przypadku zmiany adresu ip natychmiast go aktualizują.

Wobec sporego zainteresowania tematem popełniłem tekst na ten temat:

Serwer przez Neostradę

- automatyczne informowanie o zmianie numeru IP

Ponieważ o to ludzie pytają, napisałem taki prosty skrypcik w Pythonie - sprawdza czy numer IP się nie zmienił, a jeśli się zmienił to wysyła informację mailem. Loguje swoje poczynania, ma parę opcji konfiguracyjnych. Jest przeznaczony do okresowego uruchamiania z crona. Oto on.

6. Modemy Sagem przez USB

Od jakiegoś czasu tepsa dostarcza modemy Sagem, podłączane do komputera przez port USB, a nie przez kartę sieciową. Na temat instalacji tych modemów niestety nie wiem nic, ponieważ takiego modemu nie mam, i nie bardzo mam skąd wziąć (nie poproszę przecież tepsy żeby mi dała nowy modem, bo chcę uaktualnić swoją stronę internetową...).

Dobre dusze przysłały mi dwa linki do stron na których jest coś na ten temat:

http://www.loria.fr/~stuber/adsl/debian-sagem-fast-800.html

http://www.linuxsos.desk.pl/neo.html

http://www.pld-linux.org/FAQ/UstawiamyNEOUSB

Natomiast witek opracował krótką i przystępną instrukcję konfiguracji Sagema na potrzeby Neostrady, pod RedHata 9.0, ale w innych dystrybucjach zapewne będzie to wyglądało dość podobnie:

http://www.witalis.neostrada.pl/instalacjaneo.php

(który to link podesłał Piotrek Śliwa, za co uprzejme podzięxy)

6. Modemy Thomson Speedtouch

Tutaj sytuacja jest podobna, tzn ja nie wiem nic, natomiast kilka osób podesłało linki do opracowanych przez siebie poradników:

Instalacja modemu Thomson SpeedTouch 330 w Slackware 9.1

http://pld-linux.org/FAQ/UstawiamyNEOUSBSpeedtouch

8. To wszystko

Pozdrawiam wszystkich, w szczególności techników TPSA :-)

Zapraszam do dzielenia się doświadczeniami, jeśli ktoś napotka inne problemy w instalacji Neo+, równie banalne, i w pocie czoła je pokona, to dla następnych biedaków można je tutaj dorzucić. Jak widać powyżej, spora część tej strony to wkład różnych osób które z niej korzystały i wniosły też coś swojego, ku pożytkowi następnych neostradowców - w ich imieniu serdeczne podziękowania..

Natomiast jeśli masz chwilowo dosyć komputerów i chciałbyś zająć się czymś innym - zapraszam do odwiedzenia mojego psa, oraz całego stada innych jemu podobnych: IRA zaprasza na Strony Miłośników Seterów.

Bartek Górny
bartek@erp5.pl

Post scriptum:

Inne moje strony:

Najpopularniejsze imiona nadawane w Warszawie (statystyka prowadzona wg GW).
ERP5 - Open Source ERP, CRM, MRP

Valid HTML 4.01!