D-Link DIR-320 a DD-WRT

dir-320front

Stało się, zrezygnowałem z linii telefonicznej (która i tak była na stale zawieszona, jako że rolę telefonu stacjonarnego przejął już dawno VoIP). W zamian wziąłem Internet z kablówki, która ma całkiem niezłą ofertę (z uwagi na brak konieczności utrzymania “nieużywanej” linii telefonicznej). Przy okazji sprzedałem router ASDL - dobrego, stabilnego Linksysa. Jego miejsce zajął D-Link DIR-320. Co mnie skusiło? Port USB i fakt, że to “edycja OpenSource”. Bardzo mi się podoba podejście producenta, który na swoich stronach umieścił instrukcję, jak wgrać do routera alternatywne oprogramowanie.

Zanim jednak przejdziemy dalej, opowiem jak wygląda moja sieć domowa i jaka jest moja docelowa jej wizja. Centralnym punktem systemu jest “mała serwerownia” - szafka w przedpokoju ze sprzętem. Stoi tam rzeczony router, modem z kablówki, bramka VoIP Linksysa i stary desktop z Linuksem. Poza tym z sieci korzysta przewodowo jeden komputer stacjonarny i bezprzewodowo dwa laptopy, telefon komórkowy i iPod.

Sensownym pytaniem i kluczem do dalszej wizji infrastruktury jest - po cholerę ten desktop w szafce? Jak mam jakieś duże pliki do ściągnięcia to go włączam i ściągam, może pracować choćby całą noc i cały dzień. Gdy wychodzę z domu i potrzebuję się dostać do prywatnych plików - loguję się do niego przez ssh i w razie potrzeby ściągam. Jeżeli jestem gdzieś poza domem połączony do sieci WiFi, do której nie mam zaufania - łączę się z nim i zestawiam połączenie VPN i mogę bezpiecznie surfować po sieci. Czasami nie potrzebuję nawet VPNa, przez ssh otwieram sobie tunel do lokalnego proxy i też mogę bezpiecznie przeglądać strony www. Zastosowań jest wiele. Problemy też są - komputer pobiera sporo prądu, jest dość głośny i wydziela ciepło. Poza tym trzeba pamiętać, żeby go włączyć czy wyłączyć. Idealną sytuacją byłoby, gdyby wszystkie jego funkcje mógł przejąć router. Nierealne? A jednak.

dir320-ztylu

Trochę o routerze. DIR-320 - niewielkie pudełko z 5 portami Ethernet (4 LAN i 1 WAN), portem USB i WiFi. Nawet estetyczny, szczególnie jak wisi w szafce i się na niego nie patrzy, a co najważniejsze cichy. Firmowe oprogramowanie specjalnie nie zachwyca, ale też nie jest złe. Ot standard routerowy plus gratis printserver. A co siedzi w środku? Na szczęście w dobie Internetu pudełka rozkręcać nie trzeba, w sieci można znaleźć zdjęcia, specyfikacje. Sercem systemu jest chipset Broadcom BCM5354 przy częstotliwości 240MHz, do tego mamy 32MB pamięci RAM i 4MB pamięci flash. Niby nie za dużo, ale jak się okaże wcale nie tak mało. A gdyby dało się na tym uruchomić Linuksa?

Dochodzimy do sedna - DD-WRT . Alternatywne oprogramowanie, oparte na Linuksie, otwierające naprawdę duże możliwości. Oczywiście do pełni szczęścia i rozwinięcia skrzydeł port USB wydaje się niezbędny. Na szczęście DIR-320 takowy posiada.

Tutaj chyba pora na małe zastrzeżenie - to co przeczytasz poniżej to tylko moje doświadczenia. Tobie może się nie udać, możesz uszkodzić router, podczas pracy możesz spaść z drabiny, może spaść jakiś samolot… Ok, ostrzegłem, a teraz postaram się opisać drogę, którą ja przeszedłem. Jako, że to dopiero początek zabawy, to pewnie dalsze doświadczenia będę przekazywał z czasem, o ile będzie zainteresowanie. Jeszcze jedno małe zastrzeżenie - cały opis pisany jest przez człowieka, który praktycznie nie używa Windowsa, z dość dużym doświadczeniem Linuksowym. Być może w tekście pojawią się przez to jakieś uproszczenia czy skróty myślowe, dla mnie oczywiste. Będę się starał jednak tego unikać.

Pierwsze co trzeba zrobić to wybrać wersję oprogramowania, którą chce się wgrać. Nie powiem, żeby było to banalne. Ba, to jeden z trudniejszych kroków, które do tej pory wykonałem. Mnogość wersji jest olbrzymia. Dlaczego? DD-WRT obsługuje wiele routerów, z różną ilością pamięci, różnym wyposażeniem, wersje mają różne możliwości. Oczywiście dostępny jest przegląd podstawowych rodzajów dystrybucji . W zasadzie do DIR-320 możnaby wgrać wersję standard i się niczym nie przejmować. Ja jednak, mając na względzie potrzeby wybrałem dystrybucję Mini z dodaną obsługą USB i FTP. Co więcej, jako że miałem niejasne podejrzenia (na podstawie lektury forum), że obecna stabilna wersja (v24 SP1) nie do końca dobrze obsłuży USB w DIR-320, zdecydowałem się na wersję preSP2 - czyli wydanie nieoficjalne, konkretnie - dd-wrt.v24-12461_NEWD_mini_usb_ftp.bin. Jak na razie - strzał w dziesiątkę, a jak wyjdzie oficjalna wersja SP2, to zrobię upgrade. Skąd ściągnąć plik z firmware do routera? W dziale Downloads mamy podział na wersje. Wybrany przeze mnie można znaleźć w katalogu others/eko/V24_TNG. Ostrzegam, że nie zawsze może to być dobry wybór, bo wersje, które nie są oznaczone jako “stabilne” mogą rodzić różne problemy.

Cóż, problemy to jednak moja specjalność, więc zabrałem się do pracy. Pierwsze - zmiana nazwy pliku na firmware.bin. Potem dla pewności reset routera do ustawień fabrycznych. Router stoi na stole, zasilanie jest, komputer połączony do portu numer 1 routera (nie WAN), wszystko inne odłączone. Na komputerze uruchomione Ubuntu, choć od biedy może to być nawet jakiś Windows. W Ubuntu mam pakiet tftp (sudo apt-get install tftp), więc zaczynamy. Na początku musimy sobie zdefiniować na sztywno adres IP w komputerze - niech to będzie 192.168.0.10 (z maską 255.255.255.0). Sprawdzamy, czy sieć działa (router pinguje - ping 192.168.0.1) Przechodzimy do katalogu, gdzie jest plik firmware.bin. Uruchamiamy tftp i definiujemy wstępne parametry # tftp tftp> binary tftp> trace tftp> rexmt 1 tftp> connect 192.168.0.1 I teraz ważny krok - wyłączamy i włączamy router i szybko (pół sekundy, sekunda) wydajemy komendę tftp> put firmware.bin Jeżeli trafiliśmy we właściwe okno czasowe (a jest duża szansa, że tak) to nie zobaczymy komunikatu o timeoucie, tylko serię bardzo szybkich informacji o wysyłaniu pliku i dalej nic. BARDZO WAŻNE, nie wyłączać po tej operacji routera. Trzeba spokojnie odczekać jakieś 10 minut aby dać czas aby DIR-320 wgrał otrzymane oprogramowanie do pamięci flash. Jak zbyt wcześnie odłączysz prąd - możesz zepsuć router. Jeżeli natomiast wszystko poszło ok, na liście dostepnych sieci WiFi powinna się pokazać nowa o SSID dd-wrt. Wtedy zmieniasz konfigurację komputera, aby pobierał adres przez DHCP. Powinna być możliwość zalogowania do routera przez www pod adresem 192.168.1.1. Przy pierwszym logowaniu router poprosi Cię o podanie nowej nazwy użytkownika administracyjnego i nowego hasła. W wersji, którą ja wgrałem nie wymagał wstępnego podania standardowego hasła, jeżeli jednak by pytał spróbuj root/admin.

Jeżeli używasz Windowsa, to podobno możesz wgrać oprogramowanie komendą tftp -i 192.168.0.1 put firmware.bin, jednak musisz ją wydać około dwóch sekund po włączeniu routera do prądu, mieszcząc się w krótkim oknie czasowym.

Jeżeli doszedłeś do tego momentu i wszystko jest w porządku, możesz przyjąć gratulacje - na twoim routerze działa DD-WRT. Nie spoczywaj jednak zbyt szybko na laurach i zabezpiecz sieć bezprzewodową. W zakładce Wireless/Basic settings wybieramy tryb pracy (AP), SSID i kanał (zależnie od tego jakie sieci pracują w okolicy). Zapisujemy i przechodzimy do zakładki Wireless Security i ustawiamy tryb WPA2 Personal Mixed, algorytm TKIP i podajemy sekretny klucz. Niestety w tej chwili powinniśmy włożyć trochę wysiłku i wpisać długi klucz, nie opierając się na słowach - będzie bezpieczniej. Zapisujemy i restartujemy router.

Potem w moim przypadku pozostało przeniesienie routera do szafki, podłączenie wszystkich kabli, restart routera, a przy okazji modemu kablowego i bramki VoIP. Komputer połączył się z siecią bezprzewodową i uzyskał połączenie z Internetem.

Dalsze kroki konfiguracji to standard znany z klasycznego oprogramowania routera. Obowiązkowo (jeżeli nie mamy stałego IP) konfigurujemy usługę DDNS, żeby łatwo zawsze móc dostać się z zewnątrz. Przekierowania portów, jeżeli tego potrzebujemy. Możemy też zmienić adresacje sieci LAN, jeżeli mamy inne preferencje niż 192.168.1.0, a warto mieć bo może kiedyś będziemy chcieli zestawić VPN do obcej sieci, która przypadkiem może mieć tę popularną adresację.

Nie będę się na razie rozwodził jaki to DD-WRT jest wspaniały, że możemy definiować VLANy, mamy całkiem duże możliwości priorytetyzacji pakietów o ograniczania pasma. Od ręki możemy też zestawić na stałe połączenie VPN z serwerem PPTP lub sami taki serwer uruchomić. Co więcej cały interfejs webowy jest przyjemnie dynamiczny - możemy obserwować na bieżąco siłę sygnału podłączonych przez WiFi klientów czy oglądać wykresy z ilością wysyłanych i odbieranych danych.

Na podziwianiu interfejsu spędzić można wiele czasu, my jednak pomijając fajerwerki włączymy w zakładce Services dostęp przez SSH i od razu SSH TCP Forwarding, zezwalając (przynajmniej na razie) na użycie logowania z użyciem haseł. Możemy także zmienić port ssh na inny. Na wszelki wypadek pozostawiamy włączony telnet (przynajmniej na początku). Przy odrobinie odwagi możemy także udostępnić logowanie przez ssh ze strony Internetu w zakładce Administration / Managment. W tym wypadku pewnie warto zmienić standardowy port - dla niektórych przyszłych zastosowań, np. na 443 (o ile nie używamy zarządzania przez https i nie planujemy instalować bezpiecznego serwera www). Możemy oczywiście dopuścić logowanie tylko z wybranego zakresu adresów zewnętrznych.

Jakie dalsze plany? W następnych krokach włączymy obsługę USB, podłączymy pendrive do routera i zainstalujemy na nim dodatkowe oprogramowanie - ncFTP, tinyproxy, może klienta torrentów, a może coś jeszcze. Zobaczymy też co się da zrobić z drukarką, a potem zapewne przeniesiemy dane z pendrive na 2,5" dysk podłączany przez USB. Zastanowimy się jakie jeszcze potencjalne zastosowania może mieć taki router.

To wszystko jednak w kolejnym odcinku, o ile będzie zainteresowanie tematem. Zachęcam więc do komentowania.