Sieć

Modem LTE pod OpenWRT (Huawei E3372s-153)

Modem LTE jest zwykle przeznaczony dla jednej stacji roboczej. Podpina się go do portu USB i zwykle po chwili można zestawić połączenie z siecią. W przypadku, gdy mamy kilka komputerów i na każdym z nich chcemy mieć internet, to mamy z grubsza trzy wyjścia. Pierwszym z nich jest dokupienie kolejnych modemów LTE, co zwykle nie wchodzi w grę. Drugą opcją jest zakup routera LTE. Różni się on od zwykłego routera WiFi tym, że ma już wbudowany modem LTE. Jeśli jednak dysponujemy własnym routerem WiFi, to niekoniecznie musimy się go pozbywać, zwłaszcza w przypadku, gdy już zakupiliśmy osobno modem LTE. Jeśli na tym routerze WiFi jesteśmy w stanie zainstalować firmware OpenWRT, to istnieje duża szansa na to, że damy radę ten router przerobić na router LTE. W tym wpisie postaramy się ten zabieg przeprowadzić z wykorzystaniem routera TP-LINK Archer C7 v2 oraz modemu LTE Huawei E3372s-153 w wersji NON-HiLink.

Darmowy internet LTE od RBM (Play)

We wpisie dotyczącym konfiguracji serwerów DNS na potrzeby Aero2 wspomniałem, że ten operator daje możliwość korzystania z internetu LTE praktycznie za darmo. Trzeba tam, co prawda, złożyć wniosek i zapłacić jakieś grosze za przysłanie karty SIM ale opłat jako takich za połączenie internetowe nie ma żadnych. Uporczywy może być jedynie kod CAPTCHA, który trzeba wpisywać co 60 minut. Szukając na necie informacji na temat darmowego internetu LTE doszukałem się tego oto wpisu. Jest tam przedstawiony sposób na włączenie bezpłatnej usługi internetu LTE u operatora RBM (Play). Z początku wydawało mi się to niezbyt wiarygodne, by tego typu oferta była w ogóle dostępna ale okazało się jednak, że nie ma tutaj żadnego haczyka i ten internet LTE faktycznie można włączyć i korzystać z niego za free. W tym wpisie postaramy się skonfigurować Debiana właśnie na potrzeby tej usługi.

Aero2 w połączeniu z dnsmasq i dnscrypt-proxy

Aero2 już od dość dawna oferuje darmowy dostęp do internetu w technologi LTE ale jakoś wcześniej nie byłem tym tematem zainteresowany. Parę dni temu złożyłem jednak wniosek o kartę SIM, tak by posiadać zapasowe łącze na wypadek, gdyby mój obecny ISP z jakiegoś powodu padł. Aero2 oferuje wersję komercyjną jak i tę za free i każda z nich ma swoje wady i zalety. Jako, że to łącze ma robić jedynie za zapas, to korzystam z wersji FREE, a jest ono dość poważne ograniczenie, tj. występuje tutaj kod CAPTCHA, który trzeba wpisywać tak co godzinę, po czym należy resetować modem. Ten kod może zostać zaserwowany jedynie w przypadku korzystania z DNS Aero2 i pozornie odpada możliwość używania własnego systemu DNS opartego o dnsmasq i dnscrypt-proxy. Po kilku dniach eksperymentów udało mi się wypracować przyzwoitą konfigurację, która potrafi obejść to ograniczenie, poprawiając tym samym prywatność i bezpieczeństwo w internecie korzystając z darmowego LTE za sprawą Aero2. W tym wpisie postaramy się zaimplementować ten mechanizm na debianie.

Konfiguracja tunelu 6in4 w OpenWRT (IPv6)

Ludzie z IETF prawie 20 lat temu opracowali protokół IPv6. Niemniej jednak, w dalszym ciągu ogromna część providerów internetowych nie ma zamiaru zaimplementować u siebie jego obsługi. Ilość użytkowników, którzy mają natywne wsparcie dla protokołu IPv6 oscyluje w granicach 10% . Jeśli jednak mamy do dyspozycji router z firmware OpenWRT na pokładzie, to możemy pokusić się o skonfigurowanie tunelu 6in4. Jedynym warunkiem jest posiadanie zewnętrznego adresu IP. Tunel 6in4 jest bardzo podobny do tego 6to4, który był opisywany na przykładzie debiana. Tutaj jednak ten tunel zostanie ustawiony na routerze i w ten sposób cała wewnętrzna sieć będzie miała przydzieloną określoną przestrzeń adresową z puli IPv6.

Implementacja protokołu SSL/TLS w vsftpd

Kwestię konfiguracji serwera FTP na debianie w oparciu o vsftpd już przerabialiśmy. Została nam jeszcze do omówienia implementacja protokołu SSL/TLS. FTP nie jest bezpiecznym protokołem i wszelkie dane logowania są przesyłane przez sieć otwartym tekstem. W przypadku, gdy stawiamy lokalny serwer FTP w zaufanej sieci lub też będziemy korzystać jedynie z dostępu anonimowego, to raczej nie potrzebujemy szyfrować danych. Trzeba pamiętać, że każde szyfrowanie dość mocno obciąża procesor, który może stanowić wąskie gardło przy przesyle danych. W tym wpisie założenie jest takie, że bezpieczeństwo danych, które będziemy przesyłać za pomocą protokołu FTP, jest rzeczą najważniejszą i dlatego wdrożyć szyfrowanie.

Konfiguracja vsftpd w Debianie

Serwery FTP umożliwiają przesyłanie plików przez sieć za pomocą protokołu TCP. Raczej wszyscy mieliśmy z nimi już do czynienia. Może niekoniecznie zarządzaliśmy takimi serwerami ale na pewno zdarzyło nam się pobierać pliki za ich pomocą. W tym wpisie jednak postaramy się skonfigurować taki serwer FTP w oparciu o oprogramowanie vsftpd.

Backup dysku przez sieć przy pomocy dd i netcat

Dyski talerzowe mają to do siebie, że zawierają elementy mechaniczne, np. ramię głowicy czy też sam napęd dysku. Te ruchome elementy się zużywają podczas eksploatacji dysku i trzeba mieć na uwadze, że prędzej czy później taki dysk ulegnie awarii. Statystycznie rzecz biorąc, około 5% dysków rocznie zdycha. Oczywiście to tylko statystyka i w sporej części przypadków dyski twarde ulegają awarii znacznie wcześniej. Niekoniecznie musimy mieć tutaj do czynienia z planowanym postarzaniem sprzętu i zwyczajnie możemy trafić na trefny model, którego wada fabryczna wyjdzie po 2-3 miesiącach użytkowania. Poza tym, producenci dysków implementują w nich te energooszczędne rozwiązania, które znacznie skracają żywotność nośników. Można o tym przekonać się analizując 193 parametr SMART (Load/Unload Cycle) odpowiadający za parkowanie głowicy w dyskach firmy Western Digital. Także na dobrą sprawę nie możemy być pewni kiedy nam ten dysk zwyczajnie odmówi posłuszeństwa. Dlatego też powinniśmy się zabezpieczyć na taką ewentualność robiąc kopię bezpieczeństwa (backup) danych zawartych na dysku. W tym wpisie postaramy się zrobić kompletny obraz dysku laptopa przy pomocy narzędzi dd i nc (netcat). Nie będziemy przy tym rozkręcać urządzenia czy też podłączać do portu USB zewnętrznego nośnika. Dane prześlemy zwyczajnie przez sieć.

Implementacja protokołu IPv6 za pomocą tunelu 6to4

Ogromna cześć lokalnych ISP zdaje się nie nadążać za ciągle zmieniającą się rzeczywistością. Problem dotyczy implementacji protokołu IPv6, który jest już z nami od bardzo wielu lat. W przypadku mojego obecnego ISP raczej nie mam co liczyć na to, by w bliżej nieokreślonej przyszłości dodał on obsługę tego protokołu. Istnieje jednak mechanizm zwany tunelowaniem pakietów protokołu IPv6 wewnątrz pakietów protokołu IPv4 (w skrócie 6to4), którym warto się zainteresować. W ogromnym skrócie, część puli adresowej IPv6 jest zarezerwowana i zmapowana na adresy protokołu IPv4. Dzięki takiemu podejściu, każdy kto posiada stały zewnętrzny adres IPv4 ma również adres w puli IPv6. Mając zatem zarezerwowany adres, możemy pokusić się o utworzenie tunelu 6to4, co aktywuje w naszej infrastrukturze ten nowszy protokół obchodząc jednocześnie ograniczenia ISP. Trzeba jednak mieć na względzie, że nie jest to natywne wsparcie dla protokołu IPv6 i jest niemal pewne, że wystąpią mniejsze lub większe problemy z wydajnością.

Streaming obrazu za sprawą ffmpeg i netcat

Na forum DUG'a pojawił się ciekawy post, w którym autor wątku chciał wykonać coś co określił jako "display mirroring". Poszukałem trochę informacji na temat tego zagadnienia i okazało się, że to nic innego jak tylko wyświetlenie tej samej zawartości, np. na dwóch monitorach. Nie jest to nic zaawansowanego, bo przecie Xserver jest w stanie tego typu zadanie zrealizować. Niemniej jednak, oba monitory muszą być podłączone do tego samego komputera. W tym przypadku mamy dwie maszyny i dwa osobne monitory. Celem jest przesłanie obrazu z jednej maszyny na drugą za pomocą sieci. W tym podlinkowanym wątku została poruszona kwestia przechwycenia obrazu przy pomocy ffmpeg i przesłania go przez sieć za pomocą nc (netcat). Tak bardzo zainteresowało mnie to rozwiązanie, że postanowiłem zobaczyć jak wygląda ono w praktyce.

Jak skonfigurować bonding w Debian linux (eth0+wlan0)

W artykule poświęconym konfiguracji sieci WiFi na Debianie z wykorzystaniem narzędzia wpa_supplicant wspomniałem parę słów na temat interfejsu bond. Bonding na linux wykorzystywany jest w zasadzie do spięcia kilku interfejsów sieciowych, w tym przewodowych ( eth0 ) i bezprzewodowych ( wlan0 ) w jeden (zwykle bond0 ). Takie rozwiązanie sprawia, że w przypadku awarii któregoś z podpiętych interfejsów, my nie tracimy połączenia z siecią i nie musimy nic nigdzie przełączać, by to połączenie przywrócić. To rozwiązanie jest o tyle użyteczne, że w przypadku, gdy podepniemy przewód do gniazda RJ-45 w naszym laptopie, to komunikacja będzie odbywać się po kablu. Natomiast jeśli przewód zostanie odłączony, to system automatycznie przejdzie na komunikację bezprzewodową. W tym wpisie spróbujemy zaprojektować sobie właśnie tego typu mechanizm zarówno za sprawą pakietu ifupdown , gdzie konfiguracja interfejsów sieciowych jest zarządzana przez plik /etc/network/interfaces , jak i przy pomocy natywnego rozwiązania jakie oferuje systemd/networkd.