chaos-calmer

Router OpenWRT jako serwer i klient RADIUS

Ten poniższy artykuł ma na celu pokazanie w jaki sposób stworzyć infrastrukturę WiFi w oparciu o oprogramowanie freeradius (serwer RADIUS), które zostanie zainstalowane na przykładowym routerze TP-Link Archer C7 v2. Router ma wgrany firmware OpenWRT Chaos Calmer w wersji 15.05.1 (r49294). Zostanie tutaj opisane dokładnie jak wdrożyć protokół WPA2 Enterprise z obsługą trzech metod uwierzytelniania: EAP-TLS, EAP-TTLS oraz PEAP (v0) .

Losowy adres MAC dla WAN w OpenWRT

Na dużych dystrybucjach linux'a adres MAC można zmienić bez problemu. Podobnie sprawa ma się w przypadku automatycznego generowania takiego adresu MAC za każdym razem, gdy chcemy nawiązać połączenie z internetem. W OpenWRT rozwiązanie tego zadania nie jest tak oczywiste jak, np. na debianie, ale też znowu nie jest niemożliwe. W repozytorium OpenWRT mamy dostępny pakiet macchanger . Niemniej jednak, w przypadku routerów o małych pamięciach flash, instalowanie dodatkowych pakietów może nie być dobrym pomysłem. Przydałoby się zatem zaprojektować mechanizm generowania i zmiany adresu MAC interfejsu WAN za każdym razem, gdy będziemy resetować router i to zadanie postaramy się zrealizować w tym artykule.

Statystyki routera w OpenWRT (collectd, rrdtool)

Domowe routery WiFi chodzą zwykle 24 godziny na dobę. Ich moc obliczeniowa, choć zwykle niewielka, czasem się marnuje. Mając router z OpenWRT, możemy przerobić go tak, by zbierał różnego rodzaju dane dla statystyki. Te dane mogą pochodzić z różnych źródeł i nie koniecznie muszą one dotyczyć samego routera. Tego typu funkcjonalność mogą zapewnić nam narzędzia collectd oraz rrdtool . W tym artykule spróbujemy zaprogramować router, by zbierał pewne dane dotyczące połączenia sieciowego. Na podstawie tych informacji będą rysowane wykresy, które następnie będą udostępniane przez serwer uhttpd .

Quality of Service (QoS) w OpenWRT

Wszyscy spotkaliśmy się z sytuacją, w której z bliżej nieokreślonego powodu nie mogliśmy przeglądać stron w internecie. Niby połączenie jest, mamy też dobrej klasy ISP ale net nam muli. W olbrzymiej części przypadków winą można obarczyć sieć Peer to Peer (P2P). Przy nieodpowiedniej konfiguracji klientów tej sieci może dojść do nawiązywania całej masy połączeń w ułamku chwili. W ten sposób nawet jeśli nic aktualnie nie wysyłamy lub nie pobieramy, to i tak te połączenia same w sobie zapychają łącze, no bo przecież nawet puste pakiety w protokołach TCP/UDP zawierają nagłówki, a te już swoje ważą. Gdy sami korzystamy z łącza, to taka sytuacja nie stanowi większego problemu, bo wystarczy odpalić klienta torrent'a w wolnym czasie. Natomiast w przypadku, gdy zachodzi potrzeba wejścia na jakiś serwis www, to możemy zwyczajnie tego klienta wyłączyć. Nie jest to jednak wygodne. Jak zatem wyeliminować problemy związane z siecią P2P? Jeśli na routerze mamy wgrany firmware OpenWRT, to możemy zaimplementować na nim mechanizm QoS (Qality of Service). W ten sposób możemy nadać usługom priorytety. W niniejszym wpisie postaramy się wdrożyć takie rozwiązanie w oparciu o narzędzia iptables oraz tc .

Failover i load balancing w OpenWRT (mwan3)

Może się zdarzyć tak, że będziemy mieli kiedyś dostęp do łącz kilku różnych providerów internetowych. Jeśli chcielibyśmy skorzystać z internetu w takiej sytuacji, to trzeba by się zdecydować na jednego z tych dostępnych ISP. Natomiast łącze pozostałych ISP będzie niewykorzystane w tym danym momencie, a przecie nie za to im płacimy. Jeśli mamy router z OpenWRT i skonfigurowaliśmy przy tym switch tak, by mieć kilka portów WAN, to możemy korzystać z usług wielu ISP w tym samym czasie. Oczywiście, ten mechanizm działa również w przypadku, gdy ISP świadczy nam usługi za pomocą technologi LTE. Trzeba tylko odpowiednio skonfigurować modem USB do pracy na routerze. W tym artykule zostanie opisane narzędzie mwan3, za pomocą którego zaprojektujemy sobie prosty failover (łącze awaryjne) lub load balancing (równoważenie ruchu) mając do wykorzystania dwóch różnych ISP.

Wake On LAN z etherwake pod OpenWRT

Router wyposażony w firmware OpenWRT potrafi wybudzać maszyny w sieci lokalnej. Wake On LAN (WOL) nie działa przez internet, a jedynie, jak sama nazwa sugeruje, w sieci LAN. W tym mechanizmie wykorzystywany jest broadcast, a routery nie forward'ują pakietów rozgłoszeniowych. Oczywiście, nic nie stoi na przeszkodzie, by zalogować się na router via SSH od strony WAN i wybudzić jakąś maszynę z poziomu routera. Komputery, które chcemy budzić muszą mieć odpowiednią płytę główną. Prawdopodobnie wszystkie nowsze płyty już taką właściwość posiadają. Dodatkowo, trzeba w BIOS'ie ustawić odpowiednie opcje. Ważną rzeczą jest, by nie wyłączać PC przyciskiem w obudowie (lub na zasilaczu), bo wtedy nie będzie możliwe wybudzenie maszyny, nawet po dostarczeniu jej zasilania. Wyłączenia maszyny musimy dokonać z poziomu systemu operacyjnego, tylko wtedy WOL zadziała. W tym wpisie pokażemy jak przy pomocy etherwake wybudzić określonego hosta w sieci LAN.

Drukarka sieciowa w OpenWRT (serwer wydruku)

OpenWRT daje możliwość doinstalowania całej masy aplikacji, które są w stanie realizować pewne dość wyrafinowane zadania. Jednym z takich zadań jest serwer wydruku, czyli możliwość obsługi różnego rodzaju drukarek. Jeśli nasz router posiada port USB, to taką drukarkę jesteśmy w stanie do niego podłączyć. Nawet jeśli router dysponuje tylko jednym portem USB i do tego zajętym już, to nic nie stoi na przeszkodzie, by dokupić HUB'a i rozgałęzić sobie ten pojedynczy port. Serwer wydruku ma tę zaletę, że drukarka jest udostępniana przez router w sieci domowej. W efekcie odpada nam utrzymywanie dedykowanego komputera, który zajmowałby się tylko obsługą takiej drukarki. Możemy zatem oszczędzić nieco na rachunku za prąd. W tym wpisie skonfigurujemy sobie właśnie taki serwer wydruku w oparciu o drukarkę EPSON Stylus Color 760 i oprogramowanie p910nd .

Jak zablokować Facebook i YouTube w OpenWRT

Serwisy społecznościowe takie jak Facebook, Twitter czy YouTube coraz bardziej dają się we znaki przedsiębiorcom, który muszą cały czas pilnować, by ich pracownicy nie siedzieli ciągle w internecie, przynajmniej w czasie pracy. Problem nagminnego przebywania w tych w/w portalach można bardzo łatwo rozwiązać przez... porozmawianie z pracownikami. No może nie zawsze ale co nam szkodzi spróbować? W przypadku, gdy upomnienia nie są w stanie zmusić ludzi w naszej firmie do pracy, a nie możemy przy tym ich zwolnić, to możemy pójść o krok dalej i spróbować im założyć blokadę na te powyższe serwisy. Oczywiście blokada szeregu adresów IP nie wchodzi w rachubę. Korporacje typu Facebook czy Google mają wiele adresów IP na których świadczą swoje usługi. Nie wszystkie z nich są uwzględniane na różnego rodzaju listach. Niemniej jednak, tak na dobrą sprawę to nie musimy nawet znać tych adresów. Jedyne czego nam potrzeba to nazwa domeny oraz kilka pakietów standardowo dostępnych w repozytorium OpenWRT. Mowa o iptables , dnsmasq oraz ipset . W OpenWRT, przy pomocy tych narzędzi możemy zaprojektować filtr, który może zablokować ludziom z naszej sieci dostęp do praktycznie każdego serwisu www. W tym artykule zobaczymy jak taki filtr skonstruować.

Filtr pakietów sieciowych w OpenWRT (firewall)

Router wyposażony w firmware OpenWRT posiada wbudowany firewall, który ma za zadnie stać na straży bezpieczeństwa naszej sieci domowej. Standardowo ta zapora przepuszcza cały ruch sieciowy z obszaru LAN do WAN, czyli z sieci lokalnej do sieci naszego ISP. W ten sposób komputery znajdujące się w naszej sieci mają dostęp do internetu i mogą z niego korzystać bez przeszkód. Niemniej jednak, ten mechanizm nie działa tak samo w drugą stronę, czyli z WAN do LAN. Tutaj są już blokowane wszystkie próby nawiązania nowych połączeń (za wyjątkiem żądań ping) ale nic nie stoi na przeszkodzie, by zastosować przekierowanie portów. Dzięki takiemu rozwiązaniu możemy przekierować ruch, który jest kierowany na dany port w routerze, do określonego hosta w sieci lokalnej. Wszystkie te zadania realizowane są przez iptables i w tym wpisie postaramy się ogarnąć to narzędzie.

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.