Uwolnij swój router — OpenWRT z interfejsem Gargoyle

Routery internetowe w obecnych czasach są praktycznie wyposażeniem każdego nowoczesnego mieszkania, zaś ich rynek jest niezwykle rozwinięty - najtańsze modele kosztują nawet 60 złotych, ceny najdroższych sięgają już setki, jak nie więcej, złotych. Głównym zadaniem routera jest translacja adresów sieciowych między siecią zewnętrzną WAN (na przykład siecią operatora) a wewnętrzną siecią lokalną LAN łączącą kilka lub kilkanaście urządzeń (komputery, konsole, smartfony, telewizory). Umożliwia to oczywiście przydzielenie każdemu z nich dostępu do Internetu, poprzez przypisanie jednego zewnętrznego adresu IP do wielu urządzeń będących w sieci lokalnej, oraz wymianę danych między maszynami w obrębie sieci wewnętrznej oraz zabezpiecza ją przed niepożądanym dostępem z zewnątrz ze względu na wbudowany w router firewall filtrujący przychodzące połączenia po stronie WAN. Obecne routery jednak oferują o wiele więcej, standardem jest już wbudowany 5-portowy switch (w którym jeden z tych portów jest wykorzystywany jako port WAN) czy zintegrowany z routerem Access Point, czyli punkt dostępowy nadający sieć WiFi dla urządzeń ją obsługujących. Router jest też zwykle serwerem DHCP (Dynamic Host Configuration Protocol), którego głównym zadaniem jest zarządzanie adresacją IP hostów po stronie lokalnej, oraz serwerem DNS (Domain Name System), który zajmuje się przekazywaniem zapytań domenowych do zewnętrznych serwerów DNS ustawionych manualnie bądź przez operatora sieci zewnętrznej. Ze względu na zaawansowanie oraz mnogość działań jakie router wykonuje obecnie są to po prostu komputery o niskiej wydajności ze specjalnie zoptymalizowanym oprogramowaniem. Niestety - oprogramowanie to w znaczny sposób ogranicza potencjał urządzenia, a w niektórych przypadkach stanowi zagrożenie dla bezpieczeństwa całej sieci - router jako jedyne urządzenie w sieci jest bezpośrednio wystawione na zewnątrz, dlatego też jego oprogramowanie powinno być bezpieczne, aktualne i wolne od podatności... przynajmniej w teorii. 

W praktyce sytuacja wygląda wręcz tragicznie. Wśród polskich konsumentów królują urządzenia chińskiej marki TP-Link, które chociaż tanie i z dobrym stosunkiem ceny do jakości, to ich wsparcie producenckie woła o pomstę do nieba. Przykładem niech będzie TP-Link TL-WR841N V9, urządzenie które na dzień pisania artykułu (10.04.2018) w dalszym ciągu jest dostępne w sprzedaży, a najnowszą wersją dedykowanego dla niego oprogramowania producenta jest soft z 11-12-2015. Oczywiście nie znaczy to że każdy router jest fabrycznie nieaktualny, natomiast duża część sprzętu tego typu dość szybko traci wsparcie. W takiej sytuacji - podobnie jak w przypadku urządzeń mobilnych, pozostaje nam albo wymianę sprzętu na nowszy, co jest na rękę producentowi bądź też aktualizacja urządzenia na własną rękę korzystając z nieoficjalnego oprogramowania.

Jednym z takich softów jest Gargoyle

Na początku był OpenWRT, który de facto był... lekką dystrybucją linuksową uruchamianą na routerach. Router z takim softem posiadał pełny dostęp do pamięci urządzenia, zezwalał na instalację dodatkowych pakietów czy zaawansowane modyfikacje z poziomu konsoli poleceń. Niestety - OpenWRT, przynajmniej w części wydań, obsługiwany jest tylko i wyłącznie z konsoli (wówczas istnieje jednak możliwość instalacji dodatkowego interfejsu). Gargoyle jest po prostu... dystrybucją OpenWRT dodającą do niego własny interfejs graficzny. Tylko tyle i aż tyle, bowiem umieszczenie w pamięci routera (nierzadko mającej raptem 4MB, co jest obecnie minimalnym wymaganiem aby dane urządzenie było wspierane przez Gargoyle), całego webowego interfejsu graficznego wraz z systemem operacyjnym, łatwym zadaniem nie jest. Pokuszę się o stwierdzenie że Gargoyle w stosunku do OpenWRT jest tym czym jest Ubuntu w stosunku do Debiana - po prostu pierwszy jest przygotowany bezpośrednio do użycia, drugi zaś trafia do użytkownika w surowej postaci, co może wprawiać w zakłopotanie. Różnic więcej nie ma.

Oczywiście OpenWRT wraz z Gargoyle nie są jedynymi softami pisanymi pod routery. Obecnie rozwijane są też takie projekty jak LEDE (fork OpenWRT, obecnie następuje ponowne połączenie obu projektów), LibreCMC (fork OpenWRT nastawiony na wspieranie Free Software Foundation, pozbawiony własnościowych blobów binarnych), DD-WRT (firmware przygotowywane z myślą o routerach Linksys), DebWRT (fork OpenWRT z systemem paczkowania znanym z Debiana), HyperWRT (modyfikowane stockowe oprogramowanie z routerów Linksys) czy różne odmiany Tomato (firmware bazowane na HyperWRT, na szczególną uwagę zasługuje AdvancedTomato wywodzące się z Tomato by Shibby). Jak widać scena modyfikacji routerów rozwija się zdecydowanie bardziej prężnie niż nawet modyfikacje smartfonów, co jednak ze względu na sam fakt iż jest to bardzo wrażliwe na ataki hakerskie urządzenie dziwić nie powinno.

Z testowanych przeze mnie softów pod routery TP-Link i D-Link najwygodniejszym okazywał się zawsze Gargoyle i jest on wychwalany na forach ze względu na dopracowany interfejs, dlatego też jest on wykorzystywany w tej publikacji.

Platforma testowa

Router na którym będziemy instalować i testować Gargoyle w wersji 1.10.0 jest TP-Link TL-WR740ND V4, którego parametry prezentują się następująco:

  • 5-portowy switch Fast Ethernet, programowo rozdzielony na 1xWAN/4xLAN.
  • 4MB pamięci flash, 32MB pamięci RAM.
  • SoC Atheros AR9331 taktowany zegarem 400MHz.
  • WiFi: układ zintegrowany w standardzie 802.11b/g/n do 150Mbps (jedna antena).

Nie jest to zatem router, który może poszczycić się wybitną specyfikacją, a wręcz przeciwnie - nazywając rzeczy po imieniu jest to kolokwialnie mówiąc kapeć. Pozwoli nam to jednak obiektywnie ocenić na ile zmiana firmware w routerze takiej klasy jest sensowna i korzystna, a także sprawdzić jak OpenWRT z interfejsem radzi sobie z ograniczeniami sprzętowymi. 

Pobieranie i instalacja

Oprogramowanie najlepiej jest pobierać z oficjalnej strony, tak i zrobimy w tej sytuacji. Przechodząc na witrynę https://www.gargoyle-router.com/download.php, ukazuje nam się domyślnie lista dostępnych plików dla pobrania zawierających najnowszą stabilną wersję Gargoyle dla routerów z układem Atheros, zatem w tym przypadku nie ma konieczności zmiany ustawień filtra, a jedynie odnalezienie pliku o pasującej nazwie. Mają one ustandaryzowane nazwy, wedle następującego schematu:

gargoyle_<wersja_softu>-<skrot_ukladu>-generic-<model_routera>-kernel.bin
gargoyle_<wersja_softu>-<skrot_ukladu>-generic-<model_routera>-squashfs-sysupgrade.bin
gargoyle_<wersja_softu>-<skrot_ukladu>-generic-<model_routera>-squashfs-factory.bin

Ostatni człon nazwy definiuje rodzaj i zastosowanie obrazu. Squashfs-factory jest do obraz służący do czystej instalacji oprogramowania i tego typu też będziemy zwykle używać. Squashfs-sysupgrade jest to obraz który służy do aktualizacji starszej wersji Gargoyle do nowszej. Nie może on być pod żadnym pozorem użyty do instalacji na czysto. Kernel jest obrazem jądra w routerach, w których kernel musi być wgrywany osobno - nie dotyczy to jednak urządzeń TP-Linka.

Dla TL-WR740N V4 pasującym obrazem zatem będzie gargoyle_1.10.0-ar71xx-generic-tl-wr740n-v4-squashfs-factory.bin, którego też pobieramy i zmieniamy jego nazwę na przykład na soft.bin, a także sprawdzamy jego sumę kontrolną otwierając okno terminala w miejscu gdzie znajduje się pobrany plik i sprawdzić sumę MD5 komendą md5sum <nazwa_pliku_bin>, i wynik działania polecenia porównać z tym dostępnym na stronie obok każdego pliku - jeżeli jest ona inna plik nie może zostać załadowany do routera i musi być pobrany na nowo. Pozwoli to uniknąć ewentualnych błędów transmisji podczas pobierania pliku, co finalnie mogłoby skutkować brickiem, czyli uszkodzeniem routera, w taki sposób że konieczne będzie jego rozebranie.

Po pobraniu pliku możemy przystąpić do instalacji oprogramowania. Warto przed nią zalogować się do panelu routera, aby zapisać wszystkie obecne konfiguracje, niestety nie można tutaj użyć funkcji eksportu ustawień do pliku (Gargoyle może mieć problem z odczytem kopii zapasowej ustawień wykonanej na producenckim sofcie TP-Link). Następnie należy odłączyć wszystkie urządzenia z gniazd 8P8C, pozostawiając jedynie podłączony komputer, którego używamy do instalacji softu, w jednym z gniazd będących po stronie WAN.

UWAGA! Instalacja nowego softu nie może być wykonywana przez sieć bezprzewodową - w trakcie wgrywania wyłączane jest radio Wi-Fi, co gwarantuje uszkodzenie sprzętu. Do instalacji używamy jedynie przewodowego połączenia z użyciem skrętki kategorii 5 lub wyższej.

Na koniec będąc wciąż zalogowanym do panelu zarządzania routera, przechodzimy do zakładki xxx --> yyy, a następnie, korzystając z umieszczonego na podstronie formularza wybieramy plik z firmwarem i potwierdamy chęć instalacji kliknięciem przycisku Update. Instalacja trwa zwykle około dwóch-trzech minut, w czasie tym nie należy wyłączać kabla sieciowego, przeglądarki internetowej oraz zasilania urządzenia. Pozytywne zakończenie operacji zasygnalizowane zostanie odświeżeniem routera z zupełnie nową witryną logowania do panelu zarządzania. Jeżeli jednak tak się nie stało, należy odczekać 15 minut, a po tym czasie ręcznie uruchomić ponownie router i wejść na stronę http://192.168.1.1 (jest to domyślny adres IP panelu zarządzania Gargoyle) oraz dokonać autoryzacji za pomocą hasła password.

Następnie poproszeni zostaniemy o podanie nowego hasła do routera, którym będziemy się logować za każdym kolejną próbą dostępu do panelu zarządzania oraz dokonać wstępnej konfiguracji urządzenia.

Na tym ekranie możemy dokonać konfiguracji interfejsów WLAN, LAN oraz WAN. Możemy nawet użyć routera jako switcha zarządzalnego, mapując port sieci zewnętrznej jako jedno z gniazd sieci lokalnej (opcja Bridge to LAN).

Także ustawienia dotyczące sieci bezprzewodowej zostały znacznie wzbogacone względem oficjalnego oprogramowania.

Router może być nadajnikiem sieci WiFi, a także... odbiornikiem, łącząc się bezprzewodowo z innym punktem dostępowym. Pozwala to na szybką i łatwą rozbudowę sieci lokalnej bez konieczności zmian w okablowaniu czy też pozwala na wprowadzanie tymczasowych zmian w infrastrukturze sieci komputerowej.

Rozbudowane zostały również opcje takie jak DDNS czyli
możliwość podłączenia domeny do naszego routera, korzystającego
z dynamicznego adresu zewnętrznego, możliwe jest również
kontrolowanie wykorzystania łącza za pomocą rozbudowanych
statystyk, jak i ograniczanie transferów dla poszczególnych klientów.

Warto również wspomnieć o wbudowanym systemie wtyczek, które dostępne są do pobrania bezpośrednio z interfejsu Gargoyle, używając do tego celu zewnętrznych repozytoriów, które mogą wzbogacić router o kolejne opcje czy też zmienić jego szatę graficzną z użyciem motywów. Podczas instalacji wtyczek jedynym ograniczeniem jest tak naprawdę ilość posiadanej przez router pamięci wewnętrznej oraz kompatybilność dodatku z wersją Gargoyle.

Dla bardziej zaawansowanych użytkowników, twórcy zostawili dostęp do powłoki tekstowej urządzenia. Dostęp do niej możliwy jest z konsoli poleceń, używając komendy:

ssh root@192.168.1.1

gdzie root jest domyślną nazwą użytkownika administracyjnego, zaś 192.168.1.1 to adres IP urządzenia. Daje to pełny dostęp do systemu plików i wszystkich funkcji urządzenia, jest to konsola linuksowa, więc jej używanie jest łatwe i wygodne.

Podsumowanie.

Po dłuższych testach oraz codziennego korzystania z Gargoyle 1.10.0 na kilku routerach TP-Link, w tym na opisywanym TL-WR740ND V4 nie widzę problemu ze stabilnością pracy, Nie występują żadne awarie czy dziwne błędy, jest więc pod tym względem naprawdę dobrze, urządzenie pracuje jak na oprogramowaniu producenckim. Poprawiła się natomiast wydajność Wi-Fi przy używaniu w połączeniach z innymi urządzeniami sieci lokalnej (streaming mediów czy lokalny serwer plików), warto jednak podkreślić iż i tak nie jest to poziom dedykowanych access point'ów. Sam interfejs panelu Gargoyle jest również bardziej responsywny niż ten znany z softu TP-Link, natomiast może być to kwestią przeglądarki (Firefox ESR 52.7.3, Linux Mint Sylvia). Największym atutem dla którego warto utracić gwarancję jest, w mojej ocenie, dostęp do linuksowej powłoki, co umożliwia maksymalne skonfigurowanie urządzenia do naszych potrzeb. Każdy wymagający użytkownik komputera, powinien przetestować takie modyfikowane oprogramowanie routera, tym bardziej że istnieje możliwość powrotu do firmware producenta w razie potrzeby.