Router

Automatyczna blokada internetu LTE w OpenWRT

Jakiś czas temu opisywałem darmowy internet LTE w RBM/PLAY. Jego niewątpliwą zaletą jest fakt, że jest za free, o ile posiadamy odpowiedni modem. Niemniej jednak, ta usługa jest na 30 dni, po upływie których trzeba ją aktywować na nowo. Jeśli z jakichś przyczyn się tego nie zrobi, to wtedy korzystanie z internetu może nas słono kosztować. Niby można zaprzęgnąć do pomocy gammu-smsd, który będzie nas powiadamiał SMS'em, że usługa została wyłączona lub włączona. Niemniej jednak, w dalszym ciągu pozostaje do ogarnięcia kwestia czasu, przez który czekamy na włączenie usługi. Najlepszym wyjściem jest całkowita blokada internetu na routerze, tak by przez ten moment nie nawiązać żadnego połączenia. Jeśli nie nawiążemy połączenia, to dane z pakietu danych nie będą nam uciekać. W momencie, gdy usługa zostanie aktywowana, to blokada będzie zdejmowana. Tego typu rozwiązanie można zaimplementować w OpenWRT za sprawą oprogramowania smstools dostępnego w pakiecie smstools3 . W tym wpisie postaramy się zaprojektować swojego rodzaju automatyczne blokowanie internet w zależności od otrzymywanych komunikatów od operatora GSM.

Sieć bezprzewodowa WiFi w OpenWRT (WLAN)

Sieć bezprzewodowa w dzisiejszych czasach to podstawa. Z reguły routery posiadają jedno radio operujące na częstotliwości 2,4 GHz. Te nieco nowsze (i droższe) modele mają do dyspozycji dwa radia: 2,4 GHz oraz 5 GHz. OpenWRT zapewnia wsparcie zarówno dla sieci pracującej w paśmie 2.4 GHz jak i tej nadającej w 5 GHz. Konfiguracja tych pasm w OpenWRT różni się nieco. Weźmy dla przykładu obsługę kanału 12 i 13, którą dotyczy tylko sieci pasma 2.4 GHz. Podobnie sprawa ma się z szerokością kanałów, która jest inna w przypadku obu tych pasm. Niemniej jednak, większość opcji pozostaje taka sama i w tym artykule rzucimy okiem na zagadnienie konfiguracji sieci WiFi w OpenWRT.

Podział switch'a na kilka VLAN'ów w OpenWRT

Każdy router ma w swoim wyposażeniu switch, czyli przełącznik umożliwiający rozdzielenie sygnału na kilka portów. W ten sposób przy pomocy przewodu możemy podłączyć więcej komputerów niż by to miało miejsce w przypadku posiadania tylko jednego gniazda RJ-45. Na oryginalnym firmware zwykle nie mamy możliwości dodatkowej konfiguracji switch'a. Z kolei ta co jest, oferuje nam jedynie jeden port WAN i kilka portów dla podłączenia komputerów w sieci lokalnej. Jeśli jednak pokusilibyśmy się o wgranie OpenWRT na nasz router, to będziemy mieli możliwość zarządzania konfiguracją switch'a. W ten sposób będziemy mogli tworzyć dowolne konfiguracje portów (VLAN), wliczając w to utworzenie, np. kilku portów WAN. Tego typu rozwiązanie może się przydać do bardziej zaawansowanych konfiguracji sieciowych, np. failover łącza czy load balancing w przypadku, gdy posiadamy kilku ISP i chcemy wykorzystać w pełni łącze oferowane przez te podmioty.

Konfiguracja interfejsów sieciowych w OpenWRT

Routery, które posiadamy w naszych domach, znane są z tego, że mają szereg interfejsów sieciowych. Taki przeciętny router jest wyposażony w switch z 5 portami RJ-45. Zwykle jest on też wirtualnie podzielony (VLAN) na kilka interfejsów, standardowo LAN i WAN. Do tego z reguły dochodzą jeszcze interfejsy bezprzewodowe WLAN na pasmo 2.5GHz i 5GHz. Jakby tego było mało, to mamy jeszcze wirtualny interfejs mostka, który spina ze sobą lokalne interfejsy switch'a z interfejsami bezprzewodowymi tworząc w ten sposób jeden interfejs, przez który pakiety wydostają się z naszej sieci i lecą dalej w świat przez interfejs WAN. Jest to trochę skomplikowane, dlatego też w tym wpisie przyjrzymy się całej tej konfiguracji interfejsów sieciowych w OpenWRT.

DHCP i DNS, czyli konfiguracja sieci w OpenWRT

Rutery WiFi są w stanie zorganizować przewodową i/lub bezprzewodową sieć w naszych domach. By taka sieć działała bez zarzutu, potrzebna jest odpowiednia adresacja wszystkich komputerów wewnątrz niej. W obecnych czasach już praktycznie nie stosuje się statycznej konfiguracji, bo to zadanie zostało zrzucone na barki serwera DHCP. W OpenWRT do tego celu oddelegowane jest oprogramowanie dnsmasq. Zapewnia ono nie tylko wspomniany wyżej serwer DHCP ale także serwer cache'ujący zapytania DNS. Ten drugi z kolei jest niezastąpiony w przypadku przekazywania zapytań o nazwy domen do upstream'owego serwera DNS, który zajmuje się rozwiązywaniem tych nazw na odpowiadające im adresy IP. Bez dnsmasq ogarnięcie naszej sieci przerodziłoby się w istne piekło. Dlatego też w tym artykule przybliżymy sobie nieco konfigurację tego narzędzia.

Jak sklonować adres MAC w OpenWRT

Każde urządzenie sieciowe ma przypisany jakiś adres MAC. Jest to numer, który identyfikuje je w strukturze sieci. Gdy zachodzi potrzeba rozbudowania sieci domowej, możemy napotkać problemy z naszym obecnym ISP. Załóżmy, że posiadaliśmy do tej pory jeden komputer, który był wpięty bezpośrednio do łącza ISP. Jeśli dokupiliśmy router i podłączymy go w miejsce komputera, to urządzenie, które widzi nasz provider, ulega zmianie. W takim przypadku nie ma znaczenia samo urządzenie, a liczy się jedynie zmiana adresu MAC. Providerzy internetowi mają powiązane adresy MAC z adresami IP i nowo wpięty router nie otrzyma adresu IP, bo ma nieautoryzowany MAC. W takiej sytuacji zwykle wystarczy telefon do ISP z prośbą o aktualizację tego adresu. Niemniej jednak, czasami ISP każą sobie dodatkowo płacić za tę czynność. Jeśli jesteśmy postawieni w takiej sytuacji, to możemy sklonować sobie adres MAC tej maszyny, którą wcześniej widział nasz ISP. Z jego perspektywy nic się nie zmieni, a my będziemy mogli sobie rozdzielić sygnał na tyle komputerów, ile tylko chcemy, nie ponosząc przy tym dodatkowych opłat. W niniejszym artykule zostanie opisany sposób na przeprowadzenie klonowania adresu MAC na routerze z wgranym firmware OpenWRT.

Konfiguracja przycisków w OpenWRT

Każdy router w standardzie ma na swojej obudowie kilka przycisków. Zwykle są to przyciski zasilania, restartu i przełącznik sieci bezprzewodowej. Różnie są one oznaczane i można się spotkać z QSS, WPS, reset czy WiFi. O ile z przyciskiem zasilania nic więcej się nie da zrobić, bo po naciśnięciu go router jest odcinany od źródła zasilania ale w przypadku pozostałych przycisków mamy zwykle pełną swobodę w ich konfiguracji i można je sobie odpowiednio zaprogramować. Oczywiście trzeba widzieć jak tego dokonać i dlatego właśnie powstał ten artykuł.

Konfiguracja diod w routerze pod OpenWRT (LED)

Praktycznie każdy router posiada szereg diod LED, które wizualizują stan pracy takiego urządzenia. W taki sposób jesteśmy w stanie stwierdzić czy sieć WiFi jest aktualnie włączona albo czy odbywa się wymiana danych za jej pomocą. Podobnie możemy ocenić aktywność mechanizmu WPS oraz czy połączenie przewodowe zostało ustanowione. Routery TP-LINK'a mają także w standardzie diodę system , która informuje nas czy router działa prawidłowo i nie uległ powieszeniu. W OpenWRT wszystkie te wyżej opisane właściwości można skonfigurować, tak by dioda LED reagowała w określony sposób na pewne zaistniałe zdarzenie. W tym wpisie przyjrzymy się bliżej konfiguracji diod routera.

Szyfrowanie logów w OpenWRT (syslog-ng)

We wpisie dotyczącym logread została podniesiona kwestia przesłania logów przez sieć. OpenWRT jest w stanie tego typu zadanie realizować po określeniu kilku dodatkowych opcji w pliku /etc/config/system . Trzeba jednak zdawać sobie sprawę, że tak przesyłane komunikaty nie będą w żaden sposób zabezpieczone. W sieci domowej raczej nie musimy sobie zawracać głowy tym mankamentem. Niemniej jednak, gdy w grę wchodzi przesyłanie logów do zdalnego serwera zlokalizowanego gdzieś w internecie, to taką komunikację należy zabezpieczyć przed podsłuchem. Niestety OpenWRT standardowo nie wspiera takich udziwnień ale dysponuje on pakietami, które mogą nam zapewnić taką funkcjonalność. Szyfrowanie logów możemy w łatwy sposób wdrożyć za pomocą pakietu syslog-ng3 . W nim znajduje się demon syslog-ng , który jest kompatybilny w pełni z innymi linux'owymi demonami logowania. Nie powinno zatem być problemów ze skonfigurowaniem tego całego mechanizmu.

W OpenWRT w wersji Chaos Calmer nie ma pakietu syslog-ng3 . W efekcie szyfrowanie logów routera nie jest obecnie możliwe. Ten wpis dotyczy jedynie wydania Barrier Breaker i zostanie zaktualizowany jak tylko wspomniany pakiet trafi do repozytorium.

Logread, czyli system logowania w OpenWRT

Każdy szanujący się system, nawet ten najmniejszy na bazie OpenWRT, musi posiadać mechanizm logowania komunikatów. Logi routera to bardzo ważna rzecz. Jeśli coś dolega naszemu małemu przyjacielowi, to jest niemal pewne, że właśnie wśród tych wiadomości znajdziemy przyczynę problemów. Każda usługa systemowa działająca na routerze przesyła logi, które są zbierane przez demon logowania. W Chaos Calmer odpowiadają za to logd oraz logread . Standardowa konfiguracja logów w OpenWRT nie jest raczej skomplikowana ale niewiele osób wie, że logi routera można zapisywać w pliku lub przesłać je przez sieć do innego hosta. W tym wpisie postaramy się właśnie zrealizować te dwa zadania.