Linux

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ć 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.

Przesyłanie dźwięku i plików ze smartfona przez bluetooth

Praktycznie każdy telefon czy komputer/laptop jest wyposażony już w adapter bluetooth. Obecnie coraz rzadziej ten protokół jest wykorzystywany do przesyłania plików jako takich, bo przecie mamy WiFi. Niemniej jednak, w starszych modelach urządzeń bluetooth może być dla nas jedyną opcją, by przesłać pliki bezprzewodowo. Nawet jeśli dysponujemy smartfonem z jednym z nowszych Androidów, to i tak są pewne sytuacje, w których bluetooth może znaleźć ciekawe zastosowanie, np. streaming dźwięku. Urządzenia bluetooth bardzo często sprawiają problemy pod linux i przydałoby się zebrać trochę informacji na temat ich konfiguracji, by przesyłanie dźwięku i plików nie stanowiło dla nas większego wyzwania w sytuacjach podbramkowych, gdzie wszelkie inne alternatywy komunikacji zawodzą.

Przerabianie zdjęć i innych plików graficznych z Imagemagick

Imagemagick to zestaw tekstowych narzędzi do manipulacji obrazami graficznymi. Łapie on takie formaty jak DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PhotoCD, PNG, Postscript, SVG, oraz TIFF. Przy pomocy Imagemagick można przeprowadzać cała masę operacji na plikach począwszy od tych podstawowych, kończąc na tych najbardziej zaawansowanych. W sumie to nie wiem czy jest coś czego by nie dało się zrobić przy pomocy tego magika. Czasami korzystanie z wiersza poleceń jest też o wile wygodniejsze w przypadku przeróbki całej masy zdjęć, gdzie graficzne narzędzia typu GIMP raczej średnio się nadają. Postanowiłem zatem zrobić wpis o Imagemagick (pakiet imagemagick w dystrybucji Debian) i zawrzeć w nim wszystkie te ciekawsze polecenia, na które w przyszłości natrafię podczas przerabiania fotek, skrinów czy innych grafik.

Jak ukryć zaszyfrowany kontener LUKS pod linux

Gdy w grę wchodzi poufność informacji, to przeciętny użytkownik komputera od razu zaczyna rozważać szyfrowanie danych. Są różne narzędzia, które te kwestię realizują w mniejszym lub większym stopniu. Kiedyś wszyscy korzystali z TrueCrypt ale po jego dziwnych przygodach ludzie stopniowo zaczęli od tego oprogramowania odchodzić. W jego miejscu zaczęły pojawiać się różne forki, np. VeraCrypt. Abstrahując od tych ww. narzędzi, w każdym linux'ie mamy również dostępny mechanizm szyfrujący na bazie LUKS i jego gołą wersję wykorzystującą dm-crypt. Przy pomocy każdego z tych narzędzi jesteśmy w stanie zaszyfrować dysk komputera, pendrive, czy nawet kartę SD, w taki sposób, by nikt inny nie uzyskał dostępu do danych zgromadzonych na tych nośnikach informacji. Problem w tym, że w dalszym ciągu ktoś może nas torturować, by wydobyć od nas hasło czy keyfile i uzyskać dostęp do tych zaszyfrowanych danych bez większego trudu. Dlatego też pojawiło się coś nazwanego Plausible Deniability, gdzie wykorzystywane są tak naprawdę dwa nośniki z czego jeden robi za przykrywkę, a na drugim mamy zgromadzone poufne pliki. W ten sposób agresorowi podajemy hasło do trefnego kontenera i wszyscy są zadowoleni. Czy aby na pewno?

Android: Jak zainstalować ADB i fastboot pod linux

Bawiąc się smartfonem Neffos C5 od TP-LINK chciałem sprawdzić czy da radę zainstalowanemu na nim Androidowi 5.1 (Lollipop) zrobić root'a. Chodzi o uzyskanie dostępu administracyjnego do systemu plików na flash'u telefonu. Proces się powiódł, z tym, że by do niego przystąpić, potrzebne są narzędzia takie jak adb i fastboot , bo przy ich pomocy możemy sterować telefonem, np. z poziomu jakiegoś linux'a. Niemniej jednak, system komputera jak i smartfona trzeba pierw przygotować odpowiednio, by taka komunikacja była możliwa i ten proces zostanie właśnie opisany poniżej.

Jak wykryć komputer w sieci przy pomocy nmap

Opisywane jakiś czas temu przeze mnie ekstendery powerline, tak bardzo mi przypadły do gustu, że korzystam z nich praktycznie bez przerwy. Po skonfigurowaniu roamingu sieci WiFi w linux'ie, mój laptop w nieodczuwalny dla mnie w sposób rekonfiguruje połączenie w obrębie sieci domowej. Sygnał jest na prawdę bardzo dobrej jakości w każdym zakątku domu, przez co w ogóle zapomniałem o istnieniu tych transmiterów sieciowych. Chciałem przenieść jeden z ekstenderów z kanału 1 (domyślny), na kanał 6, który jest najmniej zatłoczony. Problem w tym, że zapomniałem jakim adresem IP dysponuje AP tego urządzenia. Przestrzeń adresowa tej sieci to 192.168.1.0/24, czyli adresów jest 254 (192.168.1.0, 192.168.0.255 zarezerwowane dla broadcast). Nie uśmiechało mi się wpisywanie każdego z tych adresów w przeglądarce, by ten panel admina odszukać metodą na chybił trafił. Na szczęście są o wiele szybsze metody szukania maszyn w sieci, np. zapytania o adres IP w protokole ARP. A przy pomocy skanera nmap możemy w parę sekund ustalić adres IP wszystkich aktualnie podłączonych komputerów do sieci.

Jak przenieść kontakty ze starego telefonu do smartfona

Przy zmianie telefonu, zwłaszcza z tych nieco starszych na te nowsze smartfony, może pojawić się problem z przeniesieniem listy kontaktów. Jeśli nasz stary telefon ma slot na kartę SD, to kontakty zapisane w pamięci tego telefonu można zrzucić na kartę SD i na nowym telefonie z niej zaimportować. Co jednak w przypadku, gdy nasz stary telefon nie dysponuje takim slotem, a my na liście kontaktów mamy zapisanych ze 100-200 pozycji albo nawet i więcej? Nie będziemy raczej przepisywać każdego kontaktu ręcznie, bo trochę się nam z tym zejdzie. Możemy za to nieco inaczej podejść do procesu przenoszenia kontaktów. Najprościej to wykonać backup listy kontaktów starego telefonu do pliku i zapisać go na komputerze. Oczywiście zwykle jest do tego celu potrzebny przewód USB, bluetooth czy IrDA. Na linux'ach będzie nam także niezbędne narzędzie Wammu, które umożliwi nam zrobienie takiego backupu.

Smartfon z Androidem pod linux'em (MTP/PTP)

Wpadł mi w łapki smartfon Neffos C5 od TP-LINK, który ma na pokładzie Androida. Chciałem nim zrobić parę fotek, tylko pojawił się problem uzyskania dostępu do zasobów tego telefonu. Samo urządzenie pod linux'em identyfikowane jest jako idVendor=2357 oraz idProduct=0314 ale po jego podłączeniu do portu USB komputera nie pojawiły się żadne nowe dyski, które można by przejrzeć w celu zgania ich zawartości. Problem tkwił w konfiguracji mojego Debiana, w którym to brakowało obsługi protokołu MTP. Po chwili rozgryzłem tę zagadkę instalując w systemie pakiet jmtpfs , co umożliwiło interakcję z systemem plików telefonu i zgranie zrobionych zdjęć.

Mostek eth0 + wlan0 z bridge-utils i wpa_supplicant

Posiadając w komputerze kilka interfejsów sieciowych, prędzej czy później dostrzeżemy wady jakie niesie ze sobą konfiguracja wszystkich posiadanych kart sieciowych. Skonfigurowanie szeregu interfejsów przewodowych nie stanowi raczej większego wyzwania. Można je spiąć w jeden za pomocą bonding'u czy też konfigurując wirtualny interfejs mostka (bridge). A co w przypadku bezprzewodowych interfejsów? Tu również możemy skonfigurować interfejs bond0 lub też podpiąć interfejs wlan0 pod mostek. Jako, że bonding już opisywałem, to w tym artykule zajmiemy się mostkowaniem interfejsu przewodowego i bezprzewodowego, które zwykle dostępne są w naszych laptopach. Ten proces zostanie opisany w oparciu o dystrybucję linux'a Debian i skontrastujemy go sobie z w/w bonding'iem.