Artykuł napisany do Linux+; nie opublikowali go, ale przyda się mimo to....


Bartłomiej Górny

Autor -- z wykształcenia ekonomista, z powołania programista, z zawodu informatyk, analityk i menedżer projektów --obecnie zarządza serwisem internetowym Brytyjsko Polskiej Izby Handlowej (www.bpcc.org.pl).

Serwer przez Neostradę

Adresy:

www.no-ip.com

www.dyndns.org

www.iptables.org

Wiele osób korzystających ze stałego połączenia z Internetem poprzez popularną Neostradę lub inne połączenie typu DSL chciałoby postawić swój własny, ogólnodostępny serwer -- czy to www, czy ftp, czy któryś z licznych gameserwerów lub jeszcze coś innego. Często zadawane jest więc pytanie, jak to zrobić, skoro adres IP naszego hosta jest dynamiczny? Zarejestrowanie domeny mijałoby się z celem, skoro domena przypisywana jest do konkretnego adresu, a my nigdy nie wiemy kiedy nasz adres się zmieni i na jaki.

Rozwiązaniem problemu jest usługa "dynamic DNS", świadczona przez wiele firm. Najpopularniejszym dostawcą tej usługi jest NO-IP -- dalsza część niniejszego artykułu odnosić się będzie właśnie do tego dostawcy. Przeważnie w podstawowym zakresie jest to usługa bezpłatna -- dopiero bardziej zaawansowane usługi są płatne.

Jak to działa

Mechanizm działania systemu "dynamic DNS" jest następujący:

Instalacja i konfiguracja

Tips:

>> domena funkcjonuje w sieci dokładnie w takiej formie w jakiej została wpisana, tj jeśli wpiszemy "mojastrona.hopto.org", to adres "www.mojastrona.hopto.org" nie będzie działać
>> warto wybrać opcję "Allow Wildcards" -- sprawia ona, że wszystkie adresy kończące się nazwą naszej domeny są na nią przekierowywane; wtedy do domeny zarejestrowanej jak powyżej można trafić wpisując "www.mojastrona.hopto.org", "www.gierki.mojastrona.hopto.org" itp -- używając zmiennej $_SERVER['HTTP_HOST'] możemy kierować użytkownika do odpowiednich części naszego serwisu.
>> zarejestrowane domeny nie działają od razu -- aktualizacja danych w DNS-ie trwa około 5-10 minut

Pierwszym etapem jest zarejestrowanie się w serwisie i odebranie maila z hasłem dostępu. Potem dodajemy domenę -- wpisujemy nazwę domenu, wybieramy z listy domenę wyższego rzędu, "host type" zostawiamy "DNS Host (A), i to w zasadzie wszystko.

W następnej kolejności trzeba zainstalować klienta (auto-update client). Ściągamy plik no-ip.2.0.7.tar.gz, rozpakowujemy, make, make install -- to ostatnie polecenie uruchamia od razu program konfiguracyjny; wybieramy interfejs do internetu (w naszym przypadku ppp0), hasło do no-ip, i jeśli domena była już aktywna, na tym się procedura kończy. Potem uruchamiamy klienta poleceniem /usr/local/bin/noip2. Konfigurację można sprawdzać poleceniem noip2 -S, zmieniać noip2 -C itp.

Od tej chwili program będzie co 1 minutę sprawdzał aktualność naszego adresu IP i w razie jego zmiany informował serwer no-ip o konieczności aktualizacji. Możemy więc uruchomić serwer, udostępnić usługi i -- zacząć się martwić kwestiami zabezpieczenia przed użytkownikami o wysokich kompetencjach, lecz niskich motywacjach, a takich w internecie nie brakuje...

Serwer na komputerze w sieci lokalnej

Powyższy opis dotyczył uruchamiania serwera na komputerze bezpośrednio podłączonym do internetu poprzez łącze typu DSL. Może się jednak zdarzyć, że korzystając z Neostrady czy InternetDSL poprzez linuksowy router będziemy chcieli udostępnić usługi komputera będącego stacją roboczą w naszej sieci lokalnej -- chociażby dlatego, że chodzi nam o uruchomienie jakiegoś Windowsowego gameserwera lub programu typu P2P. Rozwiązaniem jest tutaj przekierowywanie portów (port forwarding). Polega to na dodaniu do ustawień firewalla reguł przekierowywujących cały ruch przychodzący na dany port routera na określony adres w sieci lokalnej - jeśli np nasz program nasłuchuje na porcie nr 589, a uruchamiamy go na stacji roboczej o adresie 192.168.0.5, reguły będą wyglądały mniej więcej tak:

iptables -t nat -A PREROUTING -p tcp -dport 589 -j DNAT -to-destination 192.168.0.5:589

iptables -t nat -A PREROUTING -p udp -dport 589 -j DNAT -to-destination 192.168.0.5:589