Posts

Konfiguracja DMZ w OpenWRT

Strefa zdemilitaryzowana (DMZ, demilitarized zone) to taki mechanizm, który ma na celu poprawę bezpieczeństwa usług w sieci lokalnej. Generalnie chodzi o podział sieci na kilka mniejszych podsieci i oddzielenie ich od siebie fizycznie lub logicznie. W OpenWRT możemy wydzielić taką strefę DMZ przy pomocy VLAN'ów. Z kolei odpowiednio skonfigurowany firewall odseparuje nam tę strefę od pozostałych maszyn pracujących w sieci LAN. W taki sposób nawet w przypadku włamania mającego miejsce w strefie DMZ, maszyny w pozostałych segmentach sieci będą bezpieczne. W tym wpisie postaramy się skonfigurować strefę zdemilitaryzowaną na routerze wyposażonym w firmware OpenWRT.

Implementacja kluczy GPG na github'ie

Github to serwis, w którym użytkownicy mogą pracować wspólnie nad różnymi projektami utrzymywanymi w systemie kontroli wersji GIT. Konto w w/w serwisie może być łakomym kąskiem dla przestępców, zwłaszcza gdy uczestniczymy w dość rozbudowanych projektach i przyczyniamy się do ich tworzenia w dużym stopniu. Z tego powodu github implementuje rozwiązania, które mają na celu poprawić bezpieczeństwo naszej pracy. Mamy już uwierzytelnianie dwuetapowe, obsługę kluczy SSH ale nadal brakowało odpornego systemu, który by uwierzytelnił osoby współdziałające z nami. Chodzi o to, że wszelkie zmiany w repozytorium GIT muszą być przez kogoś poczynione. Każdy commit ma zatem swojego właściciela ale my nigdy nie mamy pewności co do tego, kto tak naprawdę tej zmiany dokonał. Dlatego też github umożliwił ostatnio podpisywanie tagów i commit'ów przy pomocy kluczy GPG. To właśnie temu tematowi będzie poświęcony niniejszy wpis.

Unexpected Inconsistency: Inode has corrupt extent header

Dzisiaj system plików jednej z partycji mojego głównego dysku uległ awarii z niewiadomych przyczyn. Dałbym sobie nawet głowę uciąć, że wszystkie partycje zostały poprawnie odmontowane podczas wyłączania maszyny. Niemniej jednak, z jakiegoś powodu podczas startu systemu, ten wyrzuca szereg komunikatów dotyczących głównego systemu plików, tj. / . Sam komunikat brzmi mniej więcej tak: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY . Oznacza to, że błędy w systemie plików nie są łatwe do naprawy i wymagana jest nasza ingerencja w ten proces. Przy sprawdzaniu systemu plików w poszukiwaniu błędów przy pomocy fsck.ext4 można było dostrzec min. taką wiadomość: Inode 556975 has corrupt extent header . Co ona tak naprawdę oznacza i czy damy radę wybrnąć z tej sytuacji bez szwanku?

Sieciowy system plików w OpenWRT (NFS)

Network File System) to sieciowy system plików, za pomocą którego maszyny mające na pokładzie system operacyjny linux, w tym tez OpenWRT, są w stanie udostępniać pliki w sieci. Zatem NFS to głównie domena linux'ów. W przypadku windowsów można korzystać z protokołu SMB (samba). Sposób udostępniania zasobów przy pomocy tego sieciowego systemu plików jest bardzo podobny do tego, który jest realizowany w przypadku protokołu SSHFS. Zasadniczą różnicą między NFS i SSHFS jest brak szyfrowania komunikacji. W warunkach domowej sieci, ta cecha raczej nie stanowi większego problemu. Poza tym, trzeba też brać pod uwagę fakt, że szyfrowanie znacznie obciążyłoby router, co przełożyłoby się na spadek prędkości transferu. W tym wpisie zobaczymy jak na routerze z OpenWRT zaimplementować protokół NFS i udostępnić za jego pomocą zasoby w sieci lokalnej.

Serwer FTP na routerze z OpenWRT (vsftpd)

Usługa FTP jest w miarę wygodnym rozwiązaniem w przypadku, gdy chcemy korzystać z zasobów udostępnianych przez router zarówno na linux'ach jak i na windowsach. Jedyne czego potrzebujemy to kawałek przeglądarki albo jakiegoś klienta FTP. W tym protokole nie ma też znaczenia system plików, w którym znajdują się udostępniane pliki. Jedyne co nas interesuje, to postawienie serwera na routerze i podanie klientom namiarów na niego. W OpenWRT możemy do tego celu zaprzęgnąć vsftpd . W tym wpisie pokażę jedynie jak tego typu usługę uruchomić na domowym routerze WiFi i jak ją wstępnie skonfigurować. Wszelkie kwestie techniczne związane z działaniem samego serwera FTP jak i jego wszystkich parametrów już opisywałem przy okazji wdrażania vsftpd w dystrybucji debian. Zachęcam zatem do zapoznania się również z tym podlinkowanym wpisem.

Stałe nazwy urządzeń w OpenWRT (hotplug, udev)

Bezprzewodowy router WiFi to w miarę proste urządzenie, które w zasadzie realizuje kilka podstawowych aspektów pracy sieci domowej. Wielu użytkownikom jednak jest nieustannie potrzebna jakaś nowa funkcjonalność, której oryginalny firmware producenta nie oferuje. Dlatego też mamy do dyspozycji OpenWRT będący minimalistyczną formą bardziej rozbudowanej dystrybucji linux'a. Może i OpenWRT daje nam możliwość zaawansowanej konfiguracji naszej sieci ale tego typu opcja powoduje też szereg problemów. Chodzi o to, że kernel dynamicznie tworzy nazwy dla wszystkich podłączanych urządzeń do routera. W dużych dystrybucjach linux'a do ogarnięcia tych nazw wykorzystywany jest UDEV. W przypadku OpenWRT też możemy skorzystać tego mechanizmu. Jeśli jednak mamy niewiele miejsca na pamięci flash routera, to możemy też skorzystać ze zdarzeń hotplug. W tym wpisie postaramy się przepisać nazwy pendrive/dysków twardych oraz modemów USB (LTE), tak by ich kolejność podłączania do routera nie stwarzała problemów w konfiguracji.

Most bezprzewodowy w OpenWRT (tryb WDS)

Tryb WDS (Wireless Distribution System) umożliwia stworzenie mostu bezprzewodowego, w którym to nadrzędny AP (Access Point) przekazuje pakiety do klientów WDS. Ci z kolei przesyłają te pakiety dalej do podrzędnych AP. Z reguły routery posiadają funkcję WDS i po jej aktywowaniu, ten drugi AP będzie wzmacniał i rozsyłał otrzymany sygnał dalej w granicach swojego zasięgu. Tryb WDS nie jest jednak standardem i producenci firmware oraz sterowników implementują go inaczej, co przekłada się na problemy z kompatybilnością. Jeśli chcemy korzystać z opcji WDS w OpenWRT, to najlepiej posiadać kilka takich samych urządzeń i dobrze jest mieć na nich wgrane to samo oprogramowanie. W tym wpisie zaprojektujemy sobie taki most bezprzewodowy w oparciu o dwa routery firmy TP-LINK: TL-WDR3600 v1 oraz Archer C7 v2, na których jest wgrany firmware OpenWRT Chaos Calmer 15.05.1 .

Konfiguracja WISP w OpenWRT (tryb STA + AP)

Routery wyposażone w firmware OpenWRT mają tę zaletę, że ich bezprzewodowe karty sieciowe można w miarę dowolnie sobie skonfigurować. Oryginalne oprogramowanie producenta takiego sprzętu zwykle nie umożliwia nam przełączenia kart routera w inny tryb niż AP (Access Point). W OpenWRT możemy ustawić praktycznie dowolny tryb, o ile pozwala na to sterownik karty WiFi. W ten sposób możemy aktywować, np. tryb MONITOR. W tym wpisie jednak będzie nas interesował tryb STA (STATION), czyli postaramy się przełączyć karty WiFi routera w tryb klienta. Jest to bardzo przydatna opcja w przypadku, gdy mamy do czynienia z Wireless Internet Service Provider (WISP), czyli bezprzewodowymi dostawcami internetu.

Narzędzia nice, renice, ionice, taskset i trickle

W każdym systemie operacyjnym cała masa procesów rywalizuje ze sobą o zasoby, w skład których wchodzą min. pamięć operacyjna RAM, procesor i operacje I/O dysku twardego. Czasami zdarza się tak, że niektóre aplikacje są w stanie zdusić inne programy, bo mają zbyt duże wymagania co do zasobów systemowych. W takich przypadkach administrator systemu powinien zatroszczyć się o przydział zasobów konkretnym procesom. W linux'ie do tego typu prac przeznaczony jest mechanizm cgroups obecny w kernelu. Niemniej jednak, jeśli cgroups przerasta nasze umiejętności albo też z jakiegoś powodu nie możemy z niego korzystać, to istnieje inne rozwiązanie, które może nam pomóc ograniczyć zasoby przydzielane procesom przez nasz system. Chodzi generalnie o narzędzia nice/renice (procesor) , ionice (dysku twardy) , taskset (przypisanie procesu do konkretnego procesora) oraz trickle (sieć). W tym wpisie zobaczymy jak przy pomocy tych powyższych narzędzi limitować procesy systemowe.

Karta WiFi w trybie MONITOR w OpenWRT

Routery WiFi, zwłaszcza te na podzespołach firmy Qualcomm, mają zwykle bardzo dobre wsparcie w alternatywnym firmware OpenWRT. Te bezprzewodowe routery posiadają na pokładzie zwykle jedną lub dwie karty WiFi, w zależności od obsługiwanego pasma (2,4 GHz i/lub 5 GHz). Karty tych routerów działają standardowo w trybie AP (Access Point), czyli punktu dostępowego. W taki sposób jesteśmy w stanie bezprzewodowo połączyć szereg urządzeń w sieci domowej z internetem. Niemniej jednak, karta WiFi może pracować w kilku innych trybach. W tym wpisie zobaczymy jak przełączyć kartę WiFi routera w tryb MONITOR.