Prywatność

Jak skonfigurować połączenie VPN przez SSH

Szukając informacji na temat ukrycia ruchu generowanego przez OpenVPN, natrafiłem także na sposób, który wykorzystuje do tego celu połączenie SSH. W efekcie jesteśmy w stanie upodobnić ruch VPN do tego, który zwykle służy do zarządzania zdalnymi systemami linux. Jako, że temat maskowania połączenia VPN jest kluczowy w walce z cenzurą internetu, to im więcej sposobów, by taki zabieg przeprowadzić, tym lepiej. Dlatego też postanowiłem odświeżyć nieco podlinkowany wyżej artykuł i sprawdzić czy jest on jeszcze aktualny. Wprawdzie nie dysponuję Ubuntu, a jedynie dystrybucją Debian ale raczej nie powinno być problemów z odwzorowaniem konfiguracji na tym systemie, choć artykuł jest dość leciwy już i pewnie trzeba będzie kilka rzeczy zaktualizować.

Jak ukryć ruch OpenVPN przy pomocy stunnel

Ci z nas, którzy korzystają codziennie z internetu, wiedzą, że większość nawiązywanych połączeń między dwoma punktami w tej sieci globalnej przechodzi przez szereg węzłów i jest podatnych na przechwycenie i podsłuchanie. Nawet jeśli ruch z określonymi serwisami jest szyfrowany, to w dalszym ciągu nie jesteśmy w stanie ukryć pewnych newralgicznych informacji, takich jak docelowy adres IP i port, na którym nasłuchuje zdalna usługa. Wszystkie połączenia sieciowe zestawiane z naszego komputera czy routera domowego przechodzą przez infrastrukturę ISP, u którego mamy wykupiony internet. Tacy ISP są nam w stanie pod naciskiem rządu zablokować połączenia z konkretnymi adresami wprowadzając na terenie danego kraju cenzurę treści dostępnej w internecie, czego obecnie jesteśmy świadkami w Europie, no i w Polsce. Można oczywiście posiłkować się rozwiązaniami opartymi o VPN, np. stawiając serwer OpenVPN w innym kraju. Problem jednak w tym, że ruch OpenVPN różni się od tego, z którym mamy do czynienia w przypadku choćby HTTPS. Jest zatem możliwość rozpoznania ruchu VPN i zablokowania go stosując głęboką analizę pakietów (Deep Packet Inspection, DPI). By się przed tego typu sytuacją ochronić, trzeba upodobnić ruch generowany przez OpenVPN do zwykłego ruchu SSL/TLS. Do tego celu służy narzędzie stunnel.

Jak skonfigurować klienta VPN na routerze z OpenWRT

Ostatnio pisałem trochę o konfiguracji serwera VPN na Debianie oraz podłączaniu do niego różnych linux'owych klientów, w tym też smartfonów wyposażonych w system Android. O ile konfiguracja pojedynczego klienta OpenVPN nie jest jakoś szczególnie trudna, to mając w swojej sieci domowej kilka urządzeń zdolnych łączyć się z internetem zarówno przewodowo jak i bezprzewodowo, to dostosowanie konfiguracji na każdym z tych sprzętów może być ździebko problematyczne. To co łączy te wszystkie urządzenia w naszym domu, to router WiFi. Zwykle każdy komputer, nawet ten najmniejszy, łączy się z takim routerem w celu nawiązania połączenia ze światem. Dlatego też zamiast konfigurować osobno wszystkie te urządzenia elektroniczne, możemy skonfigurować sobie router w taki sposób, by cały zebrany ruch z sieci lokalnej przesłał do serwera VPN. Standardowej klasy routery nie wspierają połączeń VPN i by taki mechanizm zaimplementować potrzebne nam będzie alternatywne firmware pokroju LEDE/OpenWRT. W tym artykule postaramy się skonfigurować połączenie VPN dla sieci domowej w oparciu o router Archer C2600 od TP-LINK, który ma wgrany najnowszy snapshot LEDE Chaos Calmer (r2392).

Jak skonfigurować połączenie VPN na smartfonie z Androidem

W artykule o postawieniu serwera VPN poruszyłem jedynie kwestię konfiguracji klienta mającego system operacyjny z rodziny linux, a konkretnie była to dystrybucja Debian. Niemniej jednak, mając działający serwer VPN gdzieś tam za granicą, możemy również do niego podłączyć się za pomocą smartfona z Androidem i to praktycznie z dowolnego miejsca na ziemi. W ten sposób możemy zabezpieczyć nasze połączenie przed cenzurą internetu, która obecnie jest przeprowadzana na naszych oczach. Jako, że smartfony są popularniejsze od komputerów czy laptopów i zwykle przesyłamy z nich tak samo ważne (albo i ważniejsze) dane, to wypadałoby zaszyfrować cały ruch z takiego telefonu. Niniejszy wpis będzie właśnie dotyczył tego tematu, który zostanie opisany w oparciu smartfon Neffos C5 od TP-LINK mający na pokładzie Androida w wersji 5.1 (Lollipop).

Jak skonfigurować serwer VPN na Debianie (OpenVPN)

Co raz częściej słychać w mediach o próbie cenzurowania internetu i blokowaniu dostępu do kolejnych serwisów i stron www. Ostatnio znowu podnieśli kwestię blokowania pokemonów bezpośrednio u ISP tak, by za zgodą ISP (władzy) można przeglądać tego typu serwisy. W sumie mam już tego dość i korzystając z okazji, że posiadam za granicą niewielkich rozmiarów VPS, który i tak nie jest zbytnio obciążony, to postanowiłem sobie skonfigurować na nim serwer VPN w oparciu o oprogramowanie OpenVPN, które jest standardowo dostępne w każdej dystrybucji linux'a. Proces konfiguracji serwera jak i klienta z zainstalowanym Debianem zostanie opisany poniżej. Niemniej jednak, inne urządzenia takie jak routery WiFi i smartfony również wymagają zaimplementowania w nich mechanizmu szyfrującego ruch ale te rozwiązania zostaną opisane w osobnych wątkach.

Debian: Bezpieczne pobieranie aktualizacji (apt-transport-https)

Posiadanie aktualnego systemu za sprawą regularnych aktualizacji może znacząco przyczynić się do poprawy bezpieczeństwa naszego linux'a. Niemniej jednak, niezabezpieczony proces aktualizacji może zdradzić pewne informacje, które mogą się okazać przydatne dla potencjalnego atakującego. Dlatego też menadżer pakietów apt/aptitude w Debianie wyposażony jest w dodatkowe transporty umożliwiające komunikację z serwerem repozytorium w oparciu o różne protokoły. Standardowy protokół, którym posługują się maszyny mające na pokładzie dystrybucję Debian, to HTTP (ewentualnie FTP). Oba z nich ślą wszelkie informacje w postaci czystego tekstu, który nadaje się do analizy przez człowieka. Możemy jednak skorzystać z protokołu SSL/TLS i zaszyfrować proces pobierania aktualizacji za sprawą pakietu apt-transport-https .

Jak ukryć user-agent w nagłówku email

Na każdym kroku można natknąć się na przecieki informacyjne, które zagrażają naszej prywatności. Widzieliśmy to choćby i na przykładzie prywatnego adresu IP widocznego w nagłówku w wiadomości email. Przeglądając ten podlinkowany wpis mogliśmy z grubsza zobaczyć jak wygląda taki nagłówek wiadomości. Bardziej uważni czytelnicy zwrócili uwagę na jego zawartość. Poza polem zawierającym adres IP, można było też zobaczyć pole odpowiadające za user-agent. Ciąg zawarty w tym polu zdradza informacje na temat wykorzystywanego klienta pocztowego oraz systemu operacyjnego. Ten komunikat możemy jednak ukryć i w tym wpisie zostanie to pokazane na przykładzie Thunderbird'a.

Jak ukryć prywatny adres IP w nagłówku email

Korzystając z różnego rodzaju klientów email udostępniamy serwerom mailowym nieco więcej informacji niż gdybyśmy to robili z panelu webowego serwera pocztowego. Chodzi generalnie o adres IP hosta, który przesłał wiadomość na serwer. Tradycyjnie w nagłówku email'a znajdzie się nasz adres zewnętrzny, ten przypisany przez ISP. Niemniej jednak, w części przypadków będzie załączony również adres IP z przestrzeni prywatnej, np. 10.0.0.0/8 lub 192.168.0.0/16 . O ile nie damy rady zataić publicznego IP naszego ISP, to jesteśmy w stanie ukryć ten prywatny adres i tym samym nieco poprawić naszą prywatność. W tym wpisie zostanie pokazane, to jak ten adres prywatny ukryć w nagłówku wiadomości email w kliencie Thunderbird.

Jak ukryć hostname w protokole DHCP

Darmowe hotspoty sieci WiFi są dostępne w każdym mieście. Dzięki nim możemy uzyskać połączenie z internetem praktycznie za free. Niemniej jednak, takie połączenie nie jest do końca bezpieczne i może zagrażać naszej prywatności. Wiele osób stara się temu przeciwdziałać generując losowy adres MAC. No i to jest jakieś wyjście, o ile ten adres jest generowany z głową. Niemniej jednak, w takich sieciach WiFi, host ma przydzielaną adresację za pomocą protokołu DHCP. Ci, którzy wiedza, jak odbywa się konfiguracja za pomocą tego protokołu, wiedzą też, że nasz komputer przesyła pewne dane do serwera DHCP. Jakie dane? To zwykle zależy od konfiguracji klienta DHCP. Na linux'ach domyślnym klientem DHCP jest dhclinet i on standardowo przesyła nazwę hosta (hostname) w zapytaniu o adresację. Co nam zatem po losowym adresie MAC, gdy można nas zidentyfikować po nazwie hosta? W tym artykule postaramy się ukryć lub też losowo wygenerować hostname danej maszyny w sieci.

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.