Posts

Extroot i whole_root (fullroot) pod OpenWRT

Domowe routery WiFi zwykle nie dysponują flash'em o dużej pojemności. W ogromnej części przypadków pamięć flash w takich urządzeniach nie przekracza 16 MiB. W zasadzie jest to wystarczająca ilość miejsca ale tylko w przypadku korzystania z oryginalnego firmware producenta routera. Gdy w grę wchodzi OpenWRT, to przy tak niewielkiej przestrzeni jest duże prawdopodobieństwo, że przy instalowaniu dodatkowych pakietów zwyczajnie zabraknie nam miejsca. Jeśli nasz router dysponuje chociaż jednym portem USB, to możemy rozszerzyć system plików routera do rozmiarów partycji pendrive, który zostanie podłączony. W ten sposób z tych 16 MiB może nam się zrobić, np. 1-2 GiB, a to już w zupełności wystarczy na instalację dowolnych pakietów z repozytorium OpenWRT. Cały ten zabieg nosi nazwę extroot (external root) lub whole_root (fullroot) i w tym wpisie prześledzimy procedurę tworzenia tego mechanizmu.

Przeciek DNS (DNS leak) w VPN (resolvconf)

Przeciek DNS (dns leak) to nic innego jak wyciek poufnej informacji, za sprawą nieprawidłowej konfiguracji resolver'a DNS. Może niekoniecznie jest winne tutaj samo oprogramowanie, które realizuje zapytania DNS, czy też serwer domen jakiejś organizacji. Chodzi głównie o tematykę VPN, gdzie cały ruch sieciowy powinien być wrzucany do tunelu SSL/TLS i szyfrowany. W pewnych sytuacjach, zapytania DNS mogą zostać wysyłane pod zewnętrzny resolver, często w formie niezaszyfrowanej i do tego poza połączeniem VPN. Ten ruch można podsłuchać, przechwycić i poddać analizie. Celem tego artykułu jest tak skonfigurowanie linux'a (w tym przypadku dystrybucja Debian), by te przecieki wyeliminować. Jest to możliwe za sprawą narzędzia resolvconf.

Konfiguracja dnscrypt-proxy w OpenWRT

Realizowanie zapytań DNS jest kluczowe do poprawnego działania min. stron internetowych. Router z OpenWRT na pokładzie bez problemu potrafi rozwiązywać domeny na adresy IP. Jest to realizowane przez oprogramowanie dnsmasq . Problem w tym, że zwykle resolver, który będzie uwzględniany w konfiguracji routera, wskazuje na serwery DNS naszego ISP, czy też jakiejś większej korporacji. W ten sposób, wszystkie dane z przeglądania stron internetowych podajemy tym organizacjom za free. Przy pomocy narzędzia dnscrypt-proxy jesteśmy w stanie zabezpieczyć naszą sieć przed tego typu zabiegami zbierania danych. Po części też możemy uchronić się przed cenzurą, którą może nam zafundować lokalny provider internetowy. W tym artykule zaimplementujemy obsługę szyfrowanego resolver'a DNS na naszym domowym routerze.

OPKG, czyli menadżer pakietów w OpenWRT

W OpenWRT do zarządzania pakietami wykorzystywany jest menadżer pakietów opkg. To przy jego pomocy instalujemy i usuwamy pakiety. Niemniej jednak, to narzędzie nie ogranicza się jedynie do tych dwóch powyższych czynności. Przy pomocy opkg jesteśmy w stanie przeprowadzić szereg innych operacji dotyczących zarządzania pakietami w systemie operacyjnym naszego domowego routera. W tym wpisie prześledzimy sobie poszczególne opcje jakie ten menadżer pakietów nam oferuje.

Klucze szyfrujące RSA w OpenWRT (ssh)

Klucze RSA w protokole SSH mogą być wykorzystane jako sposób identyfikacji danej osoby przy logowaniu się do zdalnego serwera. Te klucze zawsze występują w parach. Jeden prywatny, drugi publiczny. Pierwszy z nich jest znany tylko nam i powinien być trzymany w sekrecie i pilnie strzeżony. Klucz publiczny z kolei zaś jest przesyłany na każdy serwer SSH, z którym chcemy się połączyć. Gdy serwer jest w posiadaniu naszego klucza publicznego i widzi przy tym, że próbujemy nawiązać połączenie, używa on tego klucza, by wysłać do nas zapytanie (challange). Jest ono zakodowane i musi na nie zostać udzielona prawidłowa odpowiedź. Tej z kolei może udzielić ktoś, kto jest w posiadaniu klucza prywatnego. Nie ma innej opcji, by rozkodować wiadomość. Dlatego też nikt inny nie może udzielić na nią prawidłowej odpowiedzi. To rozwiązanie eliminuje wrażliwość na różne formy podsłuchu. Ten kto nasłuchuje nie będzie w stanie przechwycić pakietów zawierających hasło, bo ono nie jest nigdy transmitowane prze sieć. No i oczywiście jeśli chodzi o samo hasło, to odpadają nam ataki bruteforce pod kątem jego złamania. W tym wpisie postaramy się zaimplementować na routerze z OpenWrt system logowania oparty o klucze RSA.

Dostęp do routera OpenWRT (telnet, ssh, sshfs)

Standardowa instalacja OpenWRT nie zawiera w sobie żadnego trybu graficznego czy też panelu www. Wszelkie operacje trzeba przeprowadzać przy pomocy terminala. Mimo to, OpenWRT daje nam kilka możliwości na uzyskanie dostępu do routera. Ten firmware ma zaimplementowaną obsługę protokołu telnet, który swoją drogą nie należy do bezpiecznych. Oprócz niego, mamy możliwość logowania się za pomocą protokołu SSH. Tutaj sprawa bezpieczeństwa ma się o wiele lepiej. Poza tym, można bardzo łatwo zaimplementować klucze SSH eliminując tym samym dostęp oparty o wprowadzanie hasła przy logowaniu. Czy takie zabezpieczenia nam są potrzebne w domowych warunkach? Tę kwestię niech sobie każdy użytkownik rozważy sam. Dodatkowo, jeśli już wspomnieliśmy o protokole SSH, to warto poruszyć kwestię protokołu SSHFS, czyli możliwości zamontowania systemu plików routera lokalnie na komputerze. Daje nam to możliwość przeglądania takiego systemu plików jak zwykłego katalogu. No i mamy też uproszczoną edycję plików, która może odbywać się w trybie graficznym przy pomocy narzędzi, z których zwykle korzystamy na swoim PC. W tym wpisie rzucimy okiem na te poszczególne metody i przy pomocy każdej z nich spróbujemy uzyskać dostęp do routera.

Tryb ratunkowy (failsafe) w OpenWRT

Obrazy OpenWRT mają wbudowany tryb failsafe obchodzący całą konfigurację, która została zapisana na partycji JFFS2. To jest ta części pamięci flash routera, w której możemy dokonywać własnych zmian w konfiguracji tego firmware. Jak to zwykle bywa, czasem coś uszkodzimy przez przypadek i masz router nie chce zbytnio działać tak jak byśmy od niego oczekiwali. Tryb failsafe nie jest tym samym co firstboot, który resetuje ustawienia do fabrycznych. W przypadku failsafe , wszelkie zmiany jakich dokonaliśmy w procesie konfiguracji zostają i nic nie tracimy. Jedynie co, to nie jest montowana partycja, na której ten zmiany figurują. Dodatkowo, ilość odpalonych usług jest ograniczona do minimum. Nie mamy, np. dostępu do internetu, nie działa WiFi, resolver DNS i nie mamy możliwości uzyskania adresu za pomocą protokołu DHCP. W tym wpisie przyjrzymy się nieco bliżej temu mechanizmowi.

Reset ustawień w OpenWRT (firstboot)

Routery zwykle nie posiadają monitorów, klawiatur czy myszy. Gdy z takim urządzeniem zaczynają się dziać problemy, mamy bardzo niewielkie pole manewru. Nie dość, że nie mamy jak zarządzać takim routerem, to jeszcze rozebranie go zwykle nic nam nie da. Nie są to przecie dekstop'y, z których można wymontować dysk czy podpiąć do nich pendrive live i odratować znajdujący się na nich system operacyjny. Czasem wystarczy drobny błąd konfiguracyjny, by router nie chciał się nam odpalić lub nie będziemy w stanie się z nim połączyć. Z powodu tak ograniczonego dostępu do systemu routerów w przypadku awarii, ich firmware zwykle jest wyposażony w mechanizm resetowania konfiguracji do ustawień fabrycznych. Podobnie sprawa ma się w przypadku firmware OpenWRT. Cały mechanizm resetowania ustawień nosi nazwę firstboot lub factory defaults albo też factory reset . W tym wpisie postaramy się zresetować ustawienia routera na kilka sposobów.

Obsługa SMS i kodów USSD w OpenWRT

W artykule poświęconym 3ginfo omawialiśmy monitorowanie połączenia 3G/LTE pod OpenWRT. Zabrakło tam jednak pewnej funkcjonalności, która ucieszyłaby chyba każdego użytkownika tego firmware. Chodzi oczywiście o wysyłanie i odbieranie SMS oraz przesyłanie kodów USSD. Okazuje się, że 3ginfo potrafi nam tę funkcjonalność zapewnić, tylko wymagane jest doinstalowanie kilku pakietów i odpowiednie skonfigurowanie systemu. W tym wpisie spróbujemy sobie ten mechanizm wysyłania SMS i kodów USSD skonfigurować.

Monitor połączenia 3G/LTE W OpenWRT (3ginfo)

W pewnych sytuacjach lub też ze zwykłej ciekawości możemy chcieć sprawdzić jak sprawuje się połączenie LTE, którego obsługę zaimplementowaliśmy na naszym routerze mającym na pokładzie firmware OpenWRT. Nie będę tutaj opisywał samej konfiguracji takiego połączenia, bo to zostało zrobione we wpisie poświęconym konfiguracji modemu Huawei E3372 pod OpenWRT, jak i przy okazji konfiguracji połączenia Aero2. W tym wpisie zaś skupimy się na monitorowaniu za pomocą 3ginfo już działającego połączenia, które jest realizowane za pomocą modemu LTE podłączonego do portu USB routera.