Bezpieczniejsze i wydajne łącze mobilne

Nieco ponad pół roku temu opisałem możliwe sposoby przyspieszania łącza internetowego. Znowu jestem na urlopie, bez dostępu do „normalnego” łącza i korzystam z Aero2. Jak pisałem, najbardziej, ze względu na łatwość uruchomienia, przynajmniej w środowisku Linux, odpowiada mi wariant z socks proxy i ssh.

Poza tym, mignęła mi ostatnio – zupełnie nie pamiętam przy jakiej okazji, ale niezwiązana z tym tematem – informacja o polipo, czyli cache’ującym serwerze proxy, pomyślanym o użytku osobistym, domowym lub małych grupach użytkowników. W stosunku do pełnoprawnego proxy WWW, czyli popularnego squida ma parę ciekawych cech: jest lekki i szybki, prosty w konfiguracji, może robić za mostek między sieciami IPv4 i IPv6, umie socks proxy, posiada pewne opcje umożliwiające łatwe filtrowanie reklam i zwiększanie prywatności.

W kombinacji z tunelem SSH z którego korzystam, polipo będzie pełnił rolę cache oraz translatora socks proxy na zwykłe proxy WWW. O ile większość przeglądarek jakoś obsługuje socks proxy, o tyle chyba tylko w Firefoksie można to po prostu wyklikać, pozostałe wymagają zabawy z wierszem poleceń w celu uruchomienia obsługi. Poza tym, mając proxy WWW w systemie można je wykorzystać nie tylko do przeglądarek, ale do wszystkich programów, które umożliwiają ustawienie proxy HTTP.

Czyli całe rozwiązanie składa się więc z dwóch elementów: tunelu SSH, zapewniającego szyfrowanie przesyłanych danych (bezpieczeństwo) oraz kompresję (wydajność), oraz polipo zapewniającego cache plików (wydajność). Ponieważ moje łącze mobilne jest wolne (Aero2; DOWN/UP 512/256 kbps), zdecydowałem się umieścić serwer proxy na laptopie, przed tunelem SSH (patrząc od strony przeglądarki). Wydaje mi się, że tak będzie wydajniej – część zapytań nie trafi w ogóle do tunelu. Możliwa jest też konfiguracja z proxy uruchomionym na serwerze terminującym tunel – patrz linki na końcu wpisu. Topologia rozwiązania wygląda zatem następująco:

Internet - serwer - tunel SSH - polipo - przeglądarka

Serwer to maszyna z Linuksem (może być VPS dowolnego typu), serwerem SSH i przyzwoitym (optymalnie: lepszym od naszego mobilnego łączem).

Uruchomienie tunelu:

ssh -CND 9000 user@serwer

Konfiguracja serwera polipo (bardzo podstawowa, dostępnych jest znacznie więcej opcji, ale ich opis wykracza poza tematykę tego wpisu; cat /etc/polipo/config):

logSyslog = true
logFile = /var/log/polipo/polipo.log
socksParentProxy = 127.0.0.1:9000
socksProxyType = socks5

Następnie ustawiamy w przeglądarce WWW jako HTTP proxy: adres 127.0.0.1 i port 8123 (domyślny port na którym słucha polipo). Gotowe.

Uwaga dotycząca bezpieczeństwa: z uwagi na to, że w ww. rozwiązaniu szyfrowany jest tylko ruch HTTP, i tylko ten przechodzący przez proxy, należałoby pewnie ograniczyć dostęp dla pozostałego ruchu wychodzącego na firewallu. Jeszcze lepszym rozwiązaniem pod względem bezpieczeństwa, z uwagi na ew. spoofing DNS i uniezależnienie się od DNSów dostawców sieci, byłby VPN. Ale w tym przypadku nie to jest priorytetem, poza tym, korzystam z lokalnego serwera DNS.

Linki:

  1. Opis konfiguracji Aero2, wvdial i modemu Huawei E3131.
  2. Alternatywna konfiguracja z polipo uruchomionym na serwerze.

Automatyczny wybór najlepszego mirrora w Debianie

Co prawda pisałem o tym blisko trzy lata temu, ale warto przypomnieć, że jest nowa metoda wyboru najlepszego mirrora pakietów deb w Debianie. Okazja tym lepsza, że z http.debian.net awansowało na httpredir.debian.org. Czyli jest pełnoprawną, oficjalną częścią Debiana. Jest też możliwość wyboru tego repozytorium podczas instalacji, przynajmniej od wersji Jessie.

Wiele się nie zmieniło, więc po szczegóły odsyłam do starego opisu albo na stronę projektu. Ze zmian: pojawił się adres IPv6, debootstrap też nie ma od jakiegoś czasu problemów z redirectorem. Ja korzystałem przez te trzy lata na różnych systemach (także produkcyjnych) i nie zauważyłem większych problemów, przynajmniej w wersji podstawowej, bo z niszami typu debootstrap czy apt-p2p kiedyś problemy były. Polecam.

Jak nie zainstalowałem Google Hangouts w Debianie Wheezy

Z własnej nieprzymuszonej woli bym z Google Hangouts nie skorzystał, bo jeśli już muszę korzystać z niewolnych wynalazków, to mam Skype od Microsoftu, ale w pracy była potrzeba skontaktowania się grupowo, grupa już ma wybrane rozwiązanie i używa Hangouts, więc… co może pójść źle? System to Debian Wheezy plus backporty, czyli nic nietypowego czy niestabilnego. Skype od Microsoft daje gotową paczkę deb, co prawda multiarch, a nie natywne amd64, ale działa bez problemu, po dodaniu architektury i386. Google ma opinię firmy bardziej przyjaznej Linuksowi, poza tym na rynek weszli później, więc pewnie bardziej się starają.

Oczywiście wszedłem na stronę Google Hangouts z Iceweasel, czyli Firefoksa. Są wersje dla mobilków, jest pobierz na swój komputer. Klikam… i komunikat, że ta przeglądarka się nie nadaje, pobierz sobie Chrome. Czyli nie wersja Hangouts na komputer, tylko jako dodatek do przeglądarki. Pod pewnymi względami może to mieć nawet sens, zresztą mam Chromium (opensource’owa wersja Chrome), co mi szkodzi wrzucić tam Hangouts? Odpalam Chromium, strona Google Hangouts i… link do wersji „stacjonarnej” nie jest aktywny.

No dobrze, wiem, że dają działającą paczkę z Chrome, więc chociaż nie potrzebuję tej przeglądarki, to mogę ją zainstalować i tylko do tego jednego celu mogę jej używać. Instalacja Chrome bez problemu (nie, nie będzie domyślną przeglądarką w systemie…), wchodzę na stronę Hangouts, dodał appkę. Uruchamiam i… chat działa, ale w momencie kliknięcia rozmowy video (znaczy audio/video, samego audio chyba się nie da, choć by wystarczyło…) nie uruchamia jej w Chrome, tylko… próbuje uruchomić w Iceweasel, który jest domyślną przeglądarką. Tym razem jednak proponuje pobranie pluginu w postaci paczki deb. Nie można tak było od razu? Pobieram oferowany plugin, instaluję i…

dpkg: problemy z zależnościami uniemożliwiają skonfigurowanie pakietu google-talkplugin:
google-talkplugin zależy od libc6 (>= 2.14); jednakże:
Wersją libc6:amd64 w systemie jest 2.13-38+deb7u8.

Brawo Google!

Źródło: http://gifrific.com/wp-content/uploads/2012/04/joker-clap-hq.gif

Oczywiście problemu pewnie by nie było, gdyby Chrome był domyślną przeglądarką w systemie, ale nie ze mną te numery, Brunner^HGoogle. Skończyło się odinstalowaniem i Chrome, i nieszczęsnego pluginu na podstawowym systemie. Oczywiście za tydzień problemu pewnie nie będzie, bo najprawdopodobniej Jessie będzie stable, ale póki co – nie da się w rozsądny sposób korzystać z Hangouts pod stabilnym Debianem.

Oczywiście z tym nie zainstalowałem z tytułu lekko przesadzam[1], bo nie kijem go, to pałką i skończyło się szybkim postawieniem osobnej wirtualki (AQEMU, KVM) tylko pod Hangouts. Ale faktem jest, że w podstawowym systemie poległem.

Pozytyw całej akcji jest taki, że przetestowałem instalator Jessie (rc2). Jest parę fajnych opcji, choćby wybór, które dokładnie środowisko chcemy zainstalować (jest LXDE i działa w zasadzie od kopa – jedyna rzecz, która wymagała interwencji to wyciszony mikrofon – musiałem doinstalować jakiś xfce4-mixer, który chyba zresztą jakoś nie zapamiętuje ustawień. Potem się przyjrzę dokładniej, podobnie jak udostępnieniu wbudowanej kamery do wirtualki…

[1] Pierwotnie w tytule nie było nic o wersji Debiana.