Neostrada i Linux

Neostrada TP pod Linuksem

-- Zespół Akademii Linuksa

Jacek Fedoryński, Jacek Fiok

Tekst jest rozszerzoną i uaktualnioną wersją artykułu, który ukazał się w Linux+ nr 12/2005

(UWAGA: z racji daty publikacji ten tekst niestety stał się już co najmniej częściowo nieaktualny.)

Spis treści

Wstęp

Jeszcze kilka lat temu artykuł ten moglibyśmy rozpocząć słowami w rodzaju: nie sposób nie doceniać rosnącej roli Internetu w codziennym życiu, ewentualnie: coraz częściej w biurze niezbędny staje się stały dostęp do sieci. Dziś na szczęście tego typu zdania brzmią już śmiesznie, trudno znaleźć osobę, dla której Internet byłby nowością, a stałe łącze w biurze i w domu traktujemy równie naturalnie co prąd czy ciepłą wodę. A przynajmniej chcielibyśmy móc tak je traktować, bo na kompletność tej analogii nie pozwala kilka szczegółów. Po pierwsze, zwykle nie wybieramy sobie kto podłączy nam prąd i wodę. Pod tym względem łącze do Internetu wydaje się lepsze: możemy rozważyć oferty różnych dostawców i zdecydować która nam odpowiada. No właśnie, jeśli możemy. Nawet dzisiaj, kiedy Internet nie jest nowością, często w naszej okolicy działa tylko jeden dostawca, a i to nie jest najgorsza sytuacja - nawet w dużych miastach zdarza się, że nikt nie chce sprzedać nam stałego łącza, mimo iż zapłacilibyśmy mu za nie dobrymi pieniędzmi. (Wyobraźmy sobie przez chwilę naszą reakcję w sytuacji gdy ktoś chciałby nam wynająć mieszkanie bez prądu lub wody.) W takim przypadku nie musimy jeszcze się załamywać, można zawsze spróbować zorganizować sieć osiedlową lub przyjrzeć się ofertom sieci komórkowych. W ostateczności pozostaje jeszcze dostęp przez zwykły modem podłączany do linii telefonicznej, tak jak to robili nasi ojcowie w ubiegłym stuleciu. (Autorzy łączą się w bólu z osobami wciąż zmuszonymi do działania w ten sposób - wiemy jak to jest.)

Ale nie mieliśmy się zajmować sytuacją na rynku usług internetowych w naszym kraju. Załóżmy, że mieliśmy szczęście, udało nam się założyć stałe łącze i pozostał nam jedynie problem techniczny - uruchomienie go pod ulubionym systemem operacyjnym (czyli Linuksem). Załóżmy ponadto, iż zdecydowaliśmy się (lub nie mieliśmy innego wyboru) na usługę Neostrada TP, oferowaną przez znaną, choć nie przez wszystkich lubianą, Telekomunikację Polską.

W tym momencie być może zadajemy sobie pytanie dlaczego w ogóle ma jakieś znaczenie to, którego dostawcę wybraliśmy. Wracając na chwilę do analogii energetyczno-wodociągowej, czy biorąc prysznic albo podłączając telewizor do kontaktu musimy się zastanawiać kto przysyła nam rachunki za wodę i prąd? Oczywiście nasze zdziwienie jest trochę na pokaz - nie od dziś mamy do czynienia z komputerami i wiemy, że standardy to na tyle fajna rzecz, że każdy chce mieć swój. Dobrze byłoby gdyby nasze łącze do Internetu było po prostu gniazdkiem w ścianie, do którego podłączamy komputer i nie martwimy się o nic więcej. W istocie w wielu przypadkach tak właśnie jest, na przykład w przypadku łącz oferowanych przez telewizje kablowe często wystarczy mieć w komputerze kartę sieciową, podłączyć ją kablem ethernetowym do modemu, poprosić komputer, żeby skonfigurował interfejs sieciowy przez DHCP (co jest dość proste i możliwe w przytłaczającej większości systemów operacyjnych) i już możemy cieszyć się działającym Internetem.
Niestety w przypadku Neostrady TP sytuacja bywa bardziej skomplikowana.

Przejdźmy do rzeczy

Dość rozważań filozoficznych. Zdecydowawszy się na Neostradę TP, stajemy jeszcze przed co najmniej dwoma dylematami. Po pierwsze, musimy wybrać którąś opcję (różnią się ceną i prędkością), po drugie wybrać modem, za pomocą którego będziemy się łączyć. Te również różnią się miedzy sobą ceną, jak również możliwościami i czynnościami, które będziemy musieli wykonać, żeby osiągnąć upragniony cel, czyli działające łącze. Istnieją dwie zasadnicze grupy modemów: podłączane do komputera przez USB oraz podłączane przez ethernet (czyli tak jak sieć lokalna). Niektóre modele z tej drugiej grupy potrafią więcej niż tylko łączyć się z Internetem, miewają wbudowany switch i umożliwiają udostępnianie łącza na kilka komputerów. Modemy z ethernetem pozwalają zbliżyć się do sytuacji "gniazdka w ścianie", w której nie musimy martwić się o to czy nasz system operacyjny ma wsparcie dla danego modelu modemu i czy nasz komputer w ogóle ma USB. Oczywiście tak jak to zwykle bywa, jest kruczek. Modemy USB to proste urządzenia, i co za tym idzie, tańsze. Tańsze do tego stopnia, że zakładając Neostradę możemy taki modem dostać od Telekomunikacji Polskiej praktycznie za darmo. Za modem z ethernetem trzeba niestety trochę zapłacić. Na szczęście nie musimy decydować się na modele oferowane przez Telekomunikację, możemy poszukać też innych ofert. Tak czy inaczej nie sposób zaprzeczyć, że atrakcyjna cena modemów USB sprawia, że sporo ludzi decyduje się właśnie na nie. Przecież uda się nam je zmusić do współpracy z Linuksem, prawda? Prawda, ale nie będzie to takie proste jak włożenie wtyczki do gniazdka. Na szczęście nie będzie też wiele bardziej skomplikowane.

Modemy USB

Telekomunikacja Polska oferuje obecnie dwa modele modemów podłączanych przez USB: Sagem F@st 800 oraz SpeedTouch 330, produkowany przez firmę Thomson. Łączy je to, że są urządzeniami prostymi - za każdym razem po włączeniu trzeba im załadować tzw. firmware, czyli kawałek oprogramowania dostarczony przez producenta. Dopiero po jego załadowaniu modem potrafi połączyć się z Internetem. Po odłączeniu zasilania (czyli kabla USB), modem wszystko zapomina i firmware trzeba załadować od nowa. Oczywiście skonfigurujemy system tak, żeby nie musieć robić tego ręcznie, ale niestety nie oznacza to, że możemy zupełnie zapomnieć o sprawie. Przynajmniej jeśli nasz modem to SpeedTouch. Otóż firma Thomson, z nie do końca jasnych pobudek, nie zgadza się na swobodną dystrybucję firmware'u do swojego modemu. Można go za darmo pobrać z ich strony internetowej, jak również znaleźć na płytce CD, którą dostajemy wraz z modemem od Telekomunikacji Polskiej, ale nie może się on pojawić w paczce z open-source'owym sterownikiem do modemu, ani znaleźć się w swobodnie dostępnej w Internecie dystrybucji Linuksa. Również nie wszystkie dystrybucje zawierają standardowo sterowniki do modemów USB, może to powodować swoisty problem kury i jajka - żeby uruchomić łącze do Internetu będziemy potrzebować paru plików z Internetu. Zobaczmy jak to wygląda w praktyce.

Modem SpeedTouch pod Fedora Core (4 i 5)

Teraz już naprawdę przechodzimy do rzeczy. Uruchomienie modemu SpeedTouch w FC4 (w wersji 5 jest analogicznie) przebiega gładko i bezproblemowo. W przypadku tego modemu istnieją dla Linuksa dwa sterowniki - jeden z nich działa w jądrze, drugi w przestrzeni użytkownika. Fedora Core zawiera standardowo sterownik w jądrze, jak również przychodzi z jądrem nowszym niż 2.6.10, co jest nie bez znaczenia, bo właśnie w tej wersji jądro Linuksa zyskało umiejętność ładowania firmware'u do modemu bez dodatkowych narzędzi z przestrzeni użytkownika (oczywiście nadal potrzebujemy samego pliku z firmwarem, o czym za chwilę). Decydujemy się więc na użycie sterownika z jądra. Postępujemy według instrukcji ze strony http://www.linux-usb.org/SpeedTouch/fedora/, która jest zrelacjonowana poniżej.

Po pierwsze, musimy umieścić pliki zawierające firmware w odpowiednim miejscu. Jednym ze sposobów zdobycia pliku jest odnalezienie go na płytce CD, którą dostaliśmy od Telekomunikacji Polskiej. Zakładając, że mamy ją zamontowaną w /media/cdrom, możemy wydać następującą komendę, żeby rozpakować paczkę:

tar xzf /media/cdrom/Linux/ST330/neostrada_tp.tgz

Dostaniemy katalog neostrada_tp, w którym znajduje się m.in. plik ST330_firmware_3012.zip. Rozpakowujemy go:

cd neostrada_tp
unzip ST330_firmware_3012.zip

W efekcie otrzymujemy plik ZZZL_3.012, zawierający interesujący nas firmware, ale musimy go jeszcze podzielić na dwa pliki, bo takiej postaci oczekuje jądro:

dd bs=1 count=935 skip=32 if=ZZZL_3.012 of=speedtch-1.bin
dd bs=1 count=775545 skip=967 if=ZZZL_3.012 of=speedtch-2.bin

Otrzymane pliki kopiujemy do katalogu /lib/firmware:

cp speedtch-*.bin /lib/firmware/

Jeśli nie mamy płytki, możemy ściągnąć firmware ze strony producenta: http://www.speedtouch.com/driver_upgrade_lx_3.0.1.2.htm, zgodziwszy się na umowę licencyjną. W ten sposób dostajemy plik o tej samej zawartości, a trochę innej nazwie: SpeedTouch330_firmware_3012.zip i postępujemy z nim tak samo.

Po drugie, do pliku /etc/ppp/chap-secrets dodajemy następującą linijkę:

'użytkownik@neostrada.pl' * 'hasło'

wstawiając nazwę użytkownika i hasło przyznane nam przez Telekomunikację Polską.

Po trzecie, tworzymy plik /etc/sysconfig/network-scripts/ifcfg-ppp0, i wpisujemy do niego co następuje, pamiętając ponownie o wpisaniu właściwej nazwy użytkownika w linijce USER.

PEERDNS=yes
TYPE=xDSL
DEVICE=ppp0
BOOTPROTO=dialup
PIDFILE=/var/run/pppoa-adsl.pid
LCP_FAILURE=86400
LCP_INTERVAL=1
CONNECT_POLL=6
CONNECT_TIMEOUT=604800
SYNCHRONOUS=no
DEFROUTE=yes
USER='użytkownik@neostrada.pl'
VPI=0
VCI=35
LINUX_PLUGIN=pppoatm.so

I to wszystko. Podłączamy modem, wydajemy komendę service network restart, ewentualnie rebootujemy komputer i cieszymy się działającym łączem do Internetu. (Warto jeszcze zadbać o bezpieczeństwo i przeczytać fragment o konfiguracji firewalla.)

Modem SpeedTouch pod Debianem

W Debianie instalacja modemu SpeedTouch przebiega według podobnego schematu. Dystrybucyjne jądro zawiera odpowiedni sterownik, jednak w chwili, gdy to piszemy, najnowsze stabilne jądro nosi numerek niższy niż 2.6.10, więc aby załadować firmware do modemu, potrzebna nam będzie pomoc ze strony programu modem_run. Na szczęście debianowy pakiet speedtouch zawiera ten program, jak również odpowiednie wpisy w konfiguracji mechanizmu hotplug, dzięki którym będziemy mogli łączyć się z Internetem po prostu podłączając modem. Instalujemy zatem pakiet speedtouch naszym ulubionym sposobem, na przykład programem dpkg, jeśli mamy już plik z pakietem na dysku:

dpkg -i speedtouch_1.3.1-3_i386.deb

Następnie, podobnie jak w Fedora Core, musimy zadbać o umieszczenie firmware'u w odpowiednim miejscu. Zakładając, że mamy paczkę z firmwarem w bieżącym katalogu (o tym skąd ją wziąć piszemy wyżej), następującymi komendami kopiujemy właściwy plik do katalogu, w którym będzie go szukał skrypt inicjujący modem:

unzip SpeedTouch330_firmware_3012.zip
mkdir /usr/local/lib/speedtouch
cp ZZZL_3.012 /usr/local/lib/speedtouch

Jeszcze tylko kilka plików konfiguracyjnych dzieli nas od działającego łącza z Internetem. Po pierwsze tworzymy plik /etc/ppp/peers/neostrada i wpisujemy do niego poniższe linijki:

user "użytkownik@neostrada.pl"
plugin pppoatm.so
0.35
noipdefault
usepeerdns
defaultroute
persist
noauth
nopcomp
noccp
novj

Wpisując w linii "user" właściwą nazwę użytkownika. Do pliku /etc/ppp/chap-secrets dodajemy linię:

"użytkownik@neostrada.pl" * "hasło"

Pamiętamy o wstawieniu odpowiedniego użytkownika i hasła. Wreszcie, żeby nasze łącze uruchamiało się automatycznie, tworzymy plik /etc/default/speedtouch i wpisujemy do niego:

PPPD_PEER=neostrada

(Czujny czytelnik zauważy, że "neostrada" to wybrany przez nas arbitralnie ciąg, musi się jedynie zgadzać w tym miejscu z nazwą pliku, który stworzyliśmy w /etc/ppp/peers.) I już, w tej chwili podłączenie modemu powinno spowodować połączenie z Internetem, również będzie ono automatycznie uruchamiane po restarcie komputera.

Modem Sagem

Dla modemu Sagem F@st 800 również trwają prace nad sterownikiem działającym w jądrze, ale jak dotąd sensowny stopień rozwoju osiągnął sterownik z przestrzeni użytkownika i jego użyjemy. Jego obsługa pod różnymi dystrybucjami jest podobna, o różnice martwią się skrypty instalujące. Pierwszym problemem może okazać się ściągnięcie samego sterownika - otóż strona projektu, http://www.eagle-usb.org/, jest w większości w języku francuskim. Nawet jednak nie władając tym językiem, można zorientować się, że najnowsza wersja sterownika (w chwili, gdy to piszemy) znajduje się pod adresem: http://baud123.free.fr/eagle-usb/eagle-usb-2.3/eagle-usb-2.3.2.tar.bz2.

UAKTUALNIENIE, 2006-10-12: jakiś czas temu pojawił się nowy, i jak raportują użytkownicy - stabilniejszy - sterownik do modemów Sagem o nazwie ueagle-atm.

UAKTUALNIENIE, 2007-01-29: pojawiła się również zmieniona wersja samego modemu Sagem. Sprzęt oznaczyony jest: SAGEM FAST 800 E4 (kluczowe jest właśnie to E4). UWAGA: stare sterowniki eagle-usb nie działają z tymi modemami. Nie rozpoznają ich; po podpięciu modemu nie ładuje się do niego firmware; jedyne co widać, to standardowe komunikaty dmesg-a o nowym (jakimś) urządzeniu na USB.

Do tego modemu należy ściągnąć sterowniki ueagle-atm4 (następną wersję z rodziny opisanej powyżej), lub ewentualnie wersję 2.3.3+ starych sterowników eagle-usb.

Ściągamy zatem ten plik (lub nowszą wersję). Zanim przystąpimy do instalacji sterownika, upewnijmy się, że mamy zainstalowane pakiety z kompilatorem (gcc) i z nagłówkami źródeł jądra, potrzebnymi do kompilacji własnych modułów (pakiet kernel-devel w Fedora Core i odpowiedni dla naszej wersji jądra kernel-headers w Debianie). Żeby rozpakować, skompilować, zainstalować i skonfigurować sterownik, wydajemy następujące komendy:

tar xjf eagle-usb-2.3.2.tar.bz2
cd eagle-usb-2.3.2
./configure
make
make install
eagleconfig

Ostatnia komenda będzie wymagała od nas podania kilku parametrów. Najpierw skrypt pyta nas z usług jakiego operatora korzystamy, wpisujemy PL01 i naciskamy enter.

post-install: modem sagem

Potem zapyta nas o nazwę użytkownika i hasło, przyznane nam przez Telekomunikację Polską, wprowadzamy je zatem (użytkownika razem z członem "@neostrada.pl"), zwracając uwagę na fakt, że skrypt podczas wprowadzania hasła nie wypisuje go na ekran. Następnie konfigurator pyta nas czy nasz operator używa szyfrowania, odpowiadamy y lub po prostu naciskamy enter, gdyż jest to domyślna odpowiedź. Ostatnie pytanie dotyczy kwestii czy chcemy, aby łącze było uruchamiane przy starcie systemu, odpowiadamy na nie zgodnie z prawdą. W tym momencie eagleconfig spróbuje porozumieć się z modemem. Niestety czasem mu się to nie udaje, w takim wypadku pomaga zwykle odłączenie na chwilę modemu, ponowne podłączenie go i uruchomienie jeszcze raz eagleconfig (na szczęście skrypt pamięta ustawienia). W przypadku gdyby skonfigurowane przez instalator podnoszenie połączenia przy starcie systemu nie chciało działać (co niestety przydarzyło nam się na dystrybucji Fedora Core 4), można temu zaradzić dopisując do /etc/rc.local (lub jego odpowiednika w naszej dystrybucji) następujące komendy:

eaglectrl -w
sleep 2s
startadsl

Co ładuje firmware do modemu i podnosi łącze (przydatne również kiedy potrzebujemy podnieść je ręcznie, na przykład po tym jak rozłączyliśmy się przez stopadsl).

Rejestracja

Opisując sposoby uruchamiania Neostrady w różnych konfiguracjach, za każdym razem w którymś momencie mówiliśmy, że wprowadzamy nazwę użytkownika i hasło, które otrzymaliśmy od Telekomunikacji Polskiej. Jeśli nie pierwszy raz łączymy się przez Neostradę na tej linii telefonicznej, to rzeczywiście mamy już w ręku użytkownika i hasło i po prostu podajemy je w odpowiednim miejscu. Jeśli jednak dopiero co założyliśmy sobie stałe łącze i próbujemy uruchomić je po raz pierwszy, to aby uzyskać hasło musimy przejść procedurę rejestracyjną. Rejestracja odbywa się przez stronę WWW, ale żeby na nią wejść, musimy najpierw jakoś połączyć się z Internetem, a przecież nie mamy jeszcze użytkownika i hasła. Na potrzeby rejestracji jako nazwę użytkownika wpisujemy "rejestracja@neostrada.pl", a jako hasło "rejestracja". Połączywszy się przy ich użyciu, wchodzimy przeglądarką na stronę http://rejestracja.neostrada.pl/ i przechodzimy procedurę rejestracji, aby ostatecznie otrzymać od operatora naszą nową nazwę użytkownika i hasło (do zarejestrowania się będą nam potrzebne dane z umowy). Teraz musimy uaktualnić konfigurację na naszym komputerze - zastąpić hasło "rejestracja" już tym prawdziwym, podobnie nazwę użytkownika - dopiero wtedy będziemy mogli połączyć się z resztą Internetu, nie tylko ze stroną rejestracyjną. Nazwa użytkownika i hasło znajdują się w plikach tekstowych, jednak ponieważ zależnie od danej konfiguracji mogą być to różne pliki, najprościej jest uaktualnić parametry konfigurując ponownie łącze tak samo jak to zrobiliśmy za pierwszym razem (czyli na przykład w przypadku modemu Sagem uruchomić program eagleconfig; w przypadku modemu SpeedTouch pod FC4 wpisywaliśmy parametry ręcznie do plików, i tam należy je uaktualnić).

Firewall i dzielenie łącza

Podłączając komputer do Internetu, zawsze musimy rozważyć kwestie bezpieczeństwa. Oczywiście wybrawszy Linuksa, już na starcie jesteśmy w lepszej pozycji niż użytkownicy niektórych innych systemów operacyjnych, jednak nie wolno nam na tym naszych rozważań zakończyć. O zagadnieniu można by napisać niejeden artykuł (w istocie ukazują się tytuły poświęcone wyłącznie bezpieczeństwu), z konieczności zasygnalizujemy jedynie podstawowe kwestie.

Po pierwsze, należy regularnie aplikować łaty związane z bezpieczeństwem, wypuszczane przez twórców naszej dystrybucji. Obecnie w dużym stopniu proces ten jest zautomatyzowany, w przypadku dystrybucji Fedora Core, nasz system aktualizujemy wydając komendę:

yum update

Jeśli jesteśmy użytkownikami Debiana, sprawdzamy czy ukazały się jakieś uaktualnienia i aplikujemy je za pomocą komend:

apt-get update
apt-get upgrade

Musimy pamiętać, że te mechanizmy nie zapewniają aktualizacji programów, które zainstalowaliśmy sami ręcznie.

Drugą kwestią, o której można by napisać niejeden artykuł, jest właściwe skonfigurowanie firewalla. Nie wdając się w szczegóły, przedstawimy konfiguracje odpowiednie dla najprostszych przypadków. Zadaniem firewalla jest sprawowanie kontroli nad ruchem sieciowym, który widzi nasz komputer (przychodzącym, wychodzącym, a także przechodzącym przez niego, jeśli pełni funkcję routera).

Do zmiany ustawień firewalla pod Linuksem służy polecenie iptables, często tej nazwy używa się na cały mechanizm ściany przeciwogniowej w jądrze. Przykładowo, obecną konfigurację możemy obejrzeć, wydając komendę:

iptables -L -v

Poszczególne reguły firewalla również możemy dodawać za pomocą tej komendy, jednak minimalnie wygodniej będzie użyć programu iptables-restore. Program ten w pewnym sensie działa w parze z iptables-save, ten drugi potrafi zapisać do pliku bieżącą konfigurację, którą możemy potem odtworzyć za pomocą iptables-restore. Możemy również ręcznie wyedytować taki plik, za chwilę to zrobimy.

Rozważmy najpierw najprostszy przypadek - jeden komputer podłączony do Internetu, bez sieci lokalnej. W tej sytuacji zadowolimy się nieprzyjmowaniem żadnych połączeń ze świata zewnętrznego, poza tymi jawnie wymienionymi. Plik z konfiguracją firewalla mógłby wyglądać wtedy następująco:

*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
COMMIT

Po szczegóły odsyłamy do dokumentacji - w skrócie zaś: taka konfiguracja odrzuca domyślnie wszystkie pakiety przychodzące, poza tymi, które są częścią rozpoczętych przez nas połączeń. Dopuszcza także połączenia na port 22 (ssh), oraz wszelkie połączenia na interfejsie lokalnym (loopback) i wszelkie połączenia wychodzące. Jeśli nasza dystrybucja to Fedora Core, konfigurację wpisujemy do pliku /etc/sysconfig/iptables i upewniamy się, że będzie uwzględniana przy starcie komputera wydając komendę:

chkconfig iptables on

Jeśli nie chcemy restartować komputera, możemy nakazać ponowne odczytanie ustawień firewalla z tego pliku poleceniem:

service iptables restart

Jeśli nasza dystrybucja nie ma wbudowanego mechanizmu ładowania firewalla, nagrywamy konfigurację do pliku o wybranej przez nas nazwie (np. /etc/firewall.conf) i dopisujemy do skryptów startowych wywołanie wspomnianego wcześniej programu iptables-restore:

iptables-restore < /etc/firewall.conf

(Programy iptables-restore i iptables-save nie przyjmują nazw plików jako parametrów, operują na standardowym wejściu i wyjściu.)

Jeśli mamy oprócz naszego komputera z Linuksem jakieś inne maszyny w sieci lokalnej (działające również pod Linuksem lub pod dowolnym innym systemem z obsługą TCP/IP), naturalnie chcielibyśmy mieć dostęp do Internetu również z nich. Szczegóły wykraczają nieco poza zakres tego artykułu, przedstawimy jednak konfigurację firewalla zapewniającą dostęp dla całej sieci lokalnej, dzięki mechanizmowi zwanemu często w przypadku Linuksa maskaradą (ang. masquerading), będącym szczególnym przypadkiem techniki nazywanej w ogólności NAT (network address translation). Ponownie po szczegóły odsyłamy do dokumentacji.

*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth0 -j ACCEPT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -s 10.0.0.0/24 -j MASQUERADE
COMMIT

Nasza konfiguracja zakłada, że sieć lokalna to interfejs eth0, oraz że adresy w tej sieci pochodzą z puli 10.0.0.1-10.0.0.254. Wpuszcza wszystkie połączenia z sieci lokalnej, natomiast z Internetu, podobnie jak poprzednio, tylko port 22 (ssh). Na końcówkach sieci lokalnej musimy zadbać co najmniej o prawidłowe ustawienie adresów komputerów i adresów serwerów DNS (co wygodnie jest zrobić stawiając na serwerze Linuksowym serwer DHCP).

Oprócz powyższej konfiguracji firewalla musimy jeszcze dokonać drobnej modyfikacji ustawień jądra, żeby pozwolić na dostęp do Internetu komputerom z sieci lokalnej. Jeśli nasza dystrybucja to Fedora Core, otwieramy plik /etc/sysctl.conf, znajdujemy linijkę zawierającą napis "net.ipv4.ip_forward" i zmieniamy ją tak, żeby wyglądała następująco:

net.ipv4.ip_forward = 1

Jeśli używamy Debiana, odpowiedniej zmiany dokonujemy w pliku /etc/network/options, znajdujemy linijkę zawierającą tekst "ip_forward" i upewniamy się, że brzmi ona:

ip_forward=yes

Jeśli nie wiemy gdzie wykonać zmianę w naszej dystrybucji, możemy dopisać do skryptów startowych linijkę:

echo 1 > /proc/sys/net/ipv4/ip_forward

Stały adres dla naszego komputera

Jedną z mniej pożądanych cech Neostrady TP jest fakt, że nasz komputer nie otrzymuje stałego adresu w Internecie. Operator co jakiś czas wymusza na nas zmianę adresu IP, przypuszczalnie po to, żeby dać nam do zrozumienia, że jeśli chcemy na naszym komputerze postawić na przykład serwer WWW, powinniśmy zainteresować się innymi usługami z oferty Telekomunikacji Polskiej (lub konkurencji). Rzeczywiście, częsta zmiana adresu IP utrudnia postawienie na podłączonym przez Neostradę komputerze poważnego serwera. Jeśli jednak nasz serwer ma być raczej hobbystyczny i służyć udostępnieniu paru plików znajomym, istnieją sposoby, aby mimo zmieniającego się adresu IP, nasz komputer był cały czas widoczny pod stałą nazwą. Osiągamy to aktualizując każdorazowo wpis w serwerze DNS tak, żeby wskazywał na bieżący adres. W Internecie działają firmy ułatwiające ten manewr - udostępniają nam swoje odpowiednio skonfigurowane serwery DNS, w których wpisy możemy aktualizować automatycznie, instalując na naszym komputerze niewielki program. Jedną z takich firm można znaleźć pod adresem www.dyndns.com, pokażemy jak używając ich serwisu oraz programu ddclient sprawić, że nasz komputer będzie widoczny zawsze pod takim samym adresem (nazwą), mimo zmieniającego się numeru IP.

Najpierw musimy się zarejestrować, wchodzimy na stronę główną www.dyndns.com, klikamy odnośnik "Sign Up Now" i wybieramy dla siebie nazwę użytkownika, hasło oraz podajemy swój adres e-mail. Po zatwierdzeniu formularza, czekamy na list od serwisu, w którym znajdziemy odnośnik, który musimy odwiedzić, aby potwierdzić nasze zgłoszenie. Uczyniwszy to, wybieramy z menu na górze strony dział "Services", a następnie z listy "Dynamic DNS". Pojawia się krótka informacja o usłudze, klikamy "Add Dynamic DNS". Wreszcie możemy wybrać nazwę, pod jaką chcemy, żeby nasz komputer był widoczny w Internecie. Do wyboru mamy całkiem sporo domen, takich jak dyndns.org czy homelinux.net. Wybrawszy domenę oraz samą nazwę hosta, czyli to, co pojawia się przed domeną, klikamy "Add Host". Przy odrobinie szczęścia nasza nazwa nie jest jeszcze zajęta.

Nasz stały adres w Internecie już istnieje, pora zadbać o to, by był aktualizowany, gdy zmieni się adres IP przyznany nam przez operatora. Jednym z popularniejszych programów do tego służących jest ddclient.

Znajduje się on w repozytorium pakietów Fedora Extras, więc jeśli nasza dystrybucja to Fedora Core 4, instalujemy go wydając po prostu komendę:

yum install ddclient

Następnie do pliku /etc/ddclient.conf dopisujemy następujące linijki:

use=if, if=ppp0
login=użytkownik
password=hasło
naszanazwa.dyndns.org

Wstawiając nazwę użytkownika i hasło, które wybraliśmy rejestrując się na stronie. Ostatnia linijka to nazwa, którą wybraliśmy dla naszego komputera, razem z domeną. Uaktywniamy serwis ddclient tak, żeby zawsze był uruchamiany przy starcie systemu:

chkconfig ddclient on

I już możemy podawać znajomym nasz adres, nie martwiąc się o to, że się szybko zdezaktualizuje.

Jeśli należymy do obozu Debiana to instalacja ddclienta jest jeszcze przyjemniejsza. Zaczynamy klasycznie od:

apt-get install ddclient

Instalator pakietu zada nam kilka pytań. Po pierwsze z jakiego serwisu korzystamy - wybieramy www.dyndns.org. Potem pyta nas o nazwę, jaką wybraliśmy dla naszego komputera - wpisujemy ją razem z domeną i naciskamy enter. Dalej wprowadzamy nazwę użytkownika i hasło, które wpisaliśmy rejestrując się na stronie. Zapytani o interfejs sieciowy wpisujemy "ppp0". Następnie konfigurator pyta nas w jakim trybie powinien działać ddclient. Aby działał jako demon, odpowiadamy na pierwsze pytanie "No", na drugie "Yes". W pytaniu o częstość aktualizacji potwierdzamy domyślną odpowiedź, naciskając enter. I to wszystko, w Debianie nie musimy ręcznie edytować pliku konfiguracyjnego.

Modemy ethernetowe

Wspomnieliśmy wcześniej, że alternatywą dla modemów USB są modemy ze złączem ethernetowym - takim jak sieć lokalna. Pod wieloma względami są one wygodniejsze niż modemy podłączane przez USB, jednak wielu ludzi nie decyduje się na nie ze względu na cenę. Jeśli uznamy, że jesteśmy gotowi wydać pewną kwotę na modem ethernetowy, dobrze jest rozważyć różne modele - nie tylko te oferowane przez Telekomunikację Polską.

Konfiguracja większości modemów ethernetowych przebiega według tego samego schematu. Podłączamy modem do linii telefonicznej i do sieci lokalnej (lub po prostu do naszego komputera, jeśli nie mamy sieci). Konfiguracja odbywa się zazwyczaj przez stronę WWW - żeby się na nią dostać nasz komputer musi mieć jakiś adres w sieci lokalnej, na szczęście jednak nie musimy się o to martwić - modemy standardowo uruchamiają serwer DHCP i przyznają naszemu komputerowi odpowiedni adres, jedyne co musimy zrobić, to skonfigurować interfejs sieciowy tak, żeby automatycznie konfigurował się przez DHCP (w przypadku wielu dystrybucji Linuksa i innych systemów operacyjnych jest to domyślna opcja). Jeśli kabel do modemu podłączyliśmy już po starcie komputera, możemy nakazać odświeżenie konfiguracji interfejsu sieciowego, w Fedora Core robimy to za pomocą komendy service network restart, lub po prostu zrestartować maszynę.

Gdyby okazało się, że adres musimy ustawić ręcznie (wspomni o tym na pewno instrukcja modemu), wystarczy komenda w rodzaju ifconfig eth0 10.0.0.1 up - to jaki adres trzeba ustawić zależy od modelu modemu. Taka sytuacja nie powinna się jednak zdarzyć dla większości dostępnych na rynku modeli.

Drugą kwestią jest to, jaki adres wpisać w przeglądarce WWW, żeby dostać się do panelu administracyjnego modemu. W przypadku części modemów to również nie jest problemem - niezależnie od tego jaki adres wpiszemy, w swojej domyślnej konfiguracji po wyjęciu z pudełka modem przechwytuje wszystkie połączenia i przekierowuje je na swoją stronę. Jeśli to nie zadziała, w instrukcji od modemu znajdziemy adres, który musimy wpisać (w przypadku modemów SpeedTouch 510, które oferuje Telekomunikacja Polska, modem czeka na nas domyślnie pod adresem http://10.0.0.138/).

Interfejsy webowe różnych modemów mogą wyglądać nieco inaczej, każdy jednak musi umożliwiać wpisanie parametrów łącza. W wielu przypadkach gdy po raz pierwszy korzystamy z interfejsu WWW, modem prowadzi nas za rękę, pytając o kolejne dane. Musimy mieć pod ręką swoją nazwę użytkownika i hasło (lub, jeśli jeszcze go nie mamy, wprowadzić hasło "rejestracja", o czym pisaliśmy wyżej), na pytanie o VPI i VCI odpowiadamy odpowiednio 0 i 35, jako typ połączenia wybieramy "PPPoA", a zapytani o to, czy modem ma działać w trybie routera czy bridge'a, wybieramy "router". Modemy zwykle pozwalają również na ustalenie hasła, które trzeba będzie podawać w przyszłości, żeby zmieniać konfigurację.

Zależnie od modelu, modem może oferować różne usługi, które zazwyczaj konfiguruje się również przez interfejs webowy - z dowolnego komputera w naszej sieci możemy dostać się do panelu administracyjnego wpisując w przeglądarce adres modemu (10.0.0.138, w przypadku niektórych modemów 192.168.1.254 lub inny, który znajdziemy w instrukcji). Niektóre modemy pełnią jednocześnie funkcję bezprzewodowego punktu dostępowego, jak na przykład oferowany przez Telekomunikację Polską Sagem F@st 1400 W. Aby skonfigurować taki modem postępujemy podobnie jak w przypadku zwykłych routerów - najpierw podłączamy modem do komputera kablem ethernetowym, wchodzimy przeglądarką na interfejs webowy modemu (dla modemu Sagem znajduje się on pod adresem http://192.168.1.1/, musimy podać domyślnego użytkownika "root" i hasło "1234"), gdzie oprócz konfiguracji łącza z Internetem, możemy ustawić parametry sieci bezprzewodowej, takie jak SSID czy klucze WEP, których konfiguracja musi pokrywać się z konfiguracją interfejsów na naszych maszynach. W Debianie odpowiednie wpisy umieszczamy w /etc/network/interfaces:

iface eth1 inet dhcp
        wireless-essid naszasiec
        wireless-key 123456789e

W Fedora Core żeby ustawić te parametry możemy użyć konfiguratora graficznego ("Network" w menu "System Settings"), jego działanie przekłada się na wpisy w jednym z plików w katalogu /etc/sysconfig/network-scripts.

UAKTUALNIENIE: Z powodu błędów w konstrukcji szyfrowania WEP, jest ono łatwe do złamania. Zamiast niego należy używać do zabezpieczania sieci bezprzewodowych szyfrowania WPA.

konfiguracja wifi (kreator FC4)

Który modem?

To który modem powinniśmy wybrać, zależy od naszych potrzeb i chęci wydawania pieniędzy. Jeśli mamy jeden komputer, rozsądną opcją są modemy USB, które obecnie można od Telekomunikacji Polskiej dostać za złotówkę przy zakładaniu Neostrady. Wybór pomiędzy modemami SpeedTouch i Sagem jest nieoczywisty, ale w naszym odczuciu minimalnie sprawniej i bardziej bezawaryjnie pracuje się z modemem SpeedTouch. Jeśli chcemy oszczędzić sobie bólu głowy związanego z konfiguracją modemu USB, lub nasz komputer nie posiada złącza USB, możemy wybrać modem z interfejsem ethernetowym. Jeśli chcemy podłączyć do sieci kilka komputerów, jednocześnie nie decydując się na wyznaczenie jednego z nich na router (co wiąże się choćby z tym, że nie możemy go wyłączyć, jeśli chcemy żeby pozostałe komputery miały nieprzerwany dostęp do Internetu), modem pełniący funkcję routera wydaje się rozsądnym wyborem. Telekomunikacja Polska oferuje kilka takich modeli, za najprostszy przyjdzie nam zapłacić ok. 300 złotych, za model z wbudowanym switchem czteroportowym ok. 400 złotych, a za modem Sagem z interfejsem bezprzewodowym ok. 650 złotych (podane ceny dotyczą sytuacji gdy właśnie zakładamy sobie Neostradę; warto też sprawdzić czy Telekomunikacja nie prowadzi akurat jakiejś promocji). O ile nie sposób zaprzeczyć, że złotówka za modemy USB to cena atrakcyjna, o tyle w przypadku modemów z funkcjonalnością routera, warto rozpoznać ofertę konkurencji - korzystając z Neostrady nie musimy wcale kupować modemu od Telekomunikacji Polskiej. Może się okazać, że znajdziemy bardziej nam odpowiadający model w rozsądnej cenie. Na przykład popularny i bogaty funkcjonalnością Linksys WAG354G z interfejsem bezprzewodowym i czteroportowym switchem to wydatek około 400 złotych.

Dobre rady

Mając nadzieję, że powyższe informacje pomogą w okiełznywaniu Neostrady TP pod Linuksem, zdajemy sobie jednocześnie sprawę, że nie o wszystkim mogliśmy napisać. Niestety czasem nawet w identycznych konfiguracjach sprzętu i w tej samej dystrybucji Linuksa pojawiają się nieprzewidziane problemy (szczególnie modemy USB wydają się być dużym źródłem niedeterminizmu i dają pole do popisu prawom Murphy'ego). Jednak jeśli instalacja łącza nie przebiegnie tak sprawnie jak mieliśmy nadzieję, nie należy od razu rozpaczać. Obecnie zdecydowaną większość problemów z komputerami można rozwiązać dysponując zdrowym rozsądkiem i dostępem do Google'a. Istnieje spore prawdopodobieństwo, że ktoś natrafił na nasz problem już wcześniej i trochę mniejsze, ale również spore prawdopodobieństwo, że jakoś ten problem rozwiązał. Oczywiście spotykamy się tu z wcześniej wspomnianym problemem kury i jajka - jak mamy szukać rozwiązania naszych problemów w Internecie, jeśli naszym głównym problemem jest fakt, że nie możemy się z Internetem połączyć.

Szukając rad w sieci, dobrze jest kierować się kilkoma prostymi regułami. Jeśli używamy wyszukiwarki, niezłym pomysłem jest wpisać komunikat o błędzie (jeśli jakiś znaleźliśmy w logu systemowym), pomijając fragmenty wyglądające na specyficzne dla naszej maszyny (w przypadku Google'a możemy zastąpić je gwiazdką - "*"). Jeśli zdecydujemy się zadać pytanie na grupie dyskusyjnej (koniecznie najpierw przeszukajmy archiwa!), postarajmy się opisać nasz problem wystarczająco precyzyjnie, żeby ktoś mógł nam pomóc. Jeśli napiszemy tylko "Neostrada mi nie działa", raczej nikt nie domyśli się dlaczego. Korzystając ze znajdujących się w sieci stron - poradników, pokazujących jak zmusić do działania daną konfigurację sprzętu i oprogramowania (podobnych duchem do niniejszego artykułu), upewnijmy się, że konfiguracja opisywana jest możliwie zbliżona do naszej.

Wystrzegajmy się stron zdezaktualizowanych: jeśli autor wspomina w kontekście Neostrady o technologii PPPoE (PPP over Ethernet), lub w kontekście firewalla o ipchains (i nie jest to fragment wstępu historycznego) to najprawdopodobniej znaleźliśmy stronę, która przekroczyła już swój termin przydatności. Należy również raczej stronić od poradników, które każą nam przekompilowywać jądro - obecnie w przypadku większości dystrybucji nie jest to konieczne.

UAKTUALNIENIE: Niestety niniejsza strona zalicza się już do tej kategorii.

Z nadzieją, że nasze rady okażą się przydatne, życzymy powodzenia.

Masz pytanie?

Tu możesz zadać niezobowiązujące i szybkie pytanie na temat szkolenia

* Wyrażam zgodę na przetwarzanie danych osobowych przez ALX Academy sp. z o.o. z siedzibą w Warszawie w celu realizacji zgłoszenia.