Posts

NAT Reflection oraz NAT Loopback w OpenWRT

Mechanizm NAT Loopback nazywany też NAT Reflection lub NAT Hairpinning często jest pomijany przy omawianiu tematyki firewall'a. Chodzi generalnie o możliwość uzyskiwania dostępu do zasobów w sieci lokalnej po adresie, który jest na zewnętrznym interfejsie sieciowym routera. W taki sposób mając dwa hosty w sieci lokalnej, jeden z nich jest w stanie uzyskać dostęp do usług znajdujących się na drugim hoście przez wykorzystanie zewnętrznego często też publicznego adresu IP. W tym wpisie przybliżymy sobie zasadę działania tego mechanizmu.

Kompromitacja firewall'a OpenWRT za sprawą ping

Ten standardowy firewall, który oferuje OpenWRT, ma w zamiarze blokować wszystkie nowe próby połączeń od strony WAN. Faktycznie tak jest w istocie. Niemniej jednak, mamy tam jedną regułę, która zezwala na wysyłanie żądań ping . Niby te żądania wydają się być niepozorne ale przy takiej konfiguracji iptables jaką oferuje OpenWRT istnieje ryzyko, że ktoś z zewnątrz może utworzyć sporo sesji bez jakiegokolwiek nadzoru. Każda z tych sesji musi być śledzona przez kernel w tablicy conntrack'a. Nie mając kontroli nad tym ile takich sesji może zostać utworzonych, łatwo może dojść do zapełnienia tej tablicy. Jeśli do tego dojdzie, to router przestanie nawiązywać nowe połączenia. Przydałoby się zatem jakoś ten cały ping ogarnąć i to niekoniecznie blokując go po stronie WAN. W tym wpisie zaimplementujemy sobie mechanizm ochrony przez tego typu zagrożeniem.

SMStools i smsd, czyli automat do wysyłania SMS

Pod linux'em jest całe mnóstwo oprogramowania, które może realizować zadanie odbierania i wysyłania wiadomości SMS. Są również narzędzia, dzięki którym cały proces związany z przetwarzaniem SMS'ów można zautomatyzować. Jakiś czas temu opisywałem tego typu funkcjonalność na przykładzie gammu-smsd. Nadal uważam, że jest to przyzwoite narzędzie ale jakby nie patrzeć wymaga ono wielu zależności. Właśnie przez nie gammu-smsd nie nadaje się do zastosowań, gdzie ma się do dyspozycji niewiele miejsca. Niemniej jednak, w przypadku OpenWRT mamy tam możliwość zainstalowania pakietu smstool3 , w którym jest dostępny demon smsd . Tak się też składa, że debian również ma swoich repozytoriach to narzędzie posiada, z tym, że w pakiecie smstools. W tym wpisie skonfigurujemy sobie działającą bramkę SMS, która będzie automatycznie odbierać wiadomości SMS i podejmować stosowne działanie w zależności od numeru czy treści otrzymanego komunikatu.

WPS, czyli WiFi Protected Setup w OpenWRT

Wi-Fi Protected Setup (WPS) powstał w celu ułatwienia konfiguracji urządzeń w sieci WiFi. Przy WPS nie musimy ustawiać wszystkich parametrów połączenia ręcznie. Nie musimy także pamiętać nazwy sieci czy samego hasła, które może mieć nawet 64 znaki. Zamiast tego, cała konfiguracja sprowadza się to wciśnięcia dwóch przycisków: jednego na karcie WiFi, drugiego na obudowie routera. Niemniej jednak, wszędzie gdzie nie spojrzeć, ludzie rozpisują się na temat tego jakim to niebezpieczeństwem jest włączenie w routerach WiFi opcji WPS. O tych zagrożeniach, jeśli kogoś interesują, można poczytać, np. tutaj. W tym wpisie rozprawimy się raz na zawsze z mitami dotyczącymi WPS, który jest implementowany w routerach WiFi. Postaramy się skonfigurować ten mechanizm pod OpenWRT i zobaczymy czy cokolwiek z tego co ludzie piszą na necie ma zastosowanie w praktyce.

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.