Wybór kraju w sieci Tor

Dawno nie było notki. W sumie to chyba jeszcze nie było tak długiej przerwy między wpisami. Nie dlatego, że nic się nie dzieje, bo się dzieje aż za dużo, ale po pierwsze jakaś blokada przed jakimkolwiek pisaniem (nie tylko na blogu), po drugie, jakiś taki wypompowany z pracy przychodzę, że mi się nie chce już pisać, nawet jak są ciekawe tematy. No to może na przełamanie o wyborze kraju podczas korzystania z sieci Tor…

Logo Tor

Źródło: https://media.torproject.org/image/official-images/2011-tor-logo-flat.svg

Ostatnio jeden z czytelników przysłał maila z pytaniem: czy jest możliwość zmodyfikowania TOR-a tak by zawsze przydzielał polski adres IP? Już zacząłem odpisywać, że byłoby to bez sensu, bo przecież wybór exit node tylko z jednego kraju znacznie zmniejsza poziom anonimowości (nie rozwijając: i łatwiej podsłuchać, i łatwiej namierzyć korzystającego), ale… coś mnie tknęło i zacząłem drążyć temat. Bo patrząc na to z drugiej strony, do pewnych usług dostęp może być tylko z pewnych lokalizacji geograficznych, więc funkcjonalność w postaci możliwości wyboru kraju w sieci Tor miałaby sens.

Podrążyłem nieco temat i – ku memu niewielkiemu zdziwieniu – okazuje się, że można wybrać kraj.  Oznacza to, że można na przykład użyć sieci Tor do obejścia blokady regionalnej. Co lepsze, można wybrać zarówno konkretny exit node, z którego chcemy korzystać, jak i sam kraj. W obu przypadkach może to być zbiór, nie pojedyncza wartość.

Wybór konkretnego exit node wygląda następująco:

ExitNodes server1, server2, server3
StrictExitNodes 1

Natomiast wybór kraju (lub krajów) w sieci Tor:

ExitNodes {pl}, {de}
StrictNodes 1

Za każdym razem zmiany należy wprowadzić w pliku torrc (pod Debian/Ubuntu: /etc/tor/torrc) i przeładować konfigurację demona Tor. Podobno działa, ale nie testowałem, bo wykorzystując dystrybucję TAILS nie udało się wyedytować konfiga i uruchomić ponownie Tora. Nie drążyłem specjalnie, bo nie zależało mi i nie mam powodu nie wierzyć dokumentacji.

Źródła, czyli więcej informacji, w tym lista kodów krajów:

  1. wybór serwera w sieci Tor [en]
  2. wybór kraju w sieci Tor, lista kodówkrajów [en]

Chef i cookbooki bez metadata.rb

W firmie korzystamy z Chefa, niby robi swoją robotę, ale nie przepadam za nim z różnych względów. Jedna z rzeczy, która mnie drażni, to wersjonowanie i niekompatybilność (bardziej: pozorna kompatybilność) pomiędzy wersjami. W Debianie Jessie, którego mam na desktopie jest chef w wersji 11, który generalnie działał. Na serwerach mamy Chefa 12.

Ostatnio instaluję cookbook nodejs:

knife cookbook site install nodejs
Installing nodejs to /home/rozie/chef-repo/cookbooks
Checking out the master branch.
Pristine copy branch (chef-vendor-nodejs) exists, switching to it.
Downloading nodejs from the cookbooks site at version 2.4.2 to /home/rozie/chef-repo/cookbooks/nodejs.tar.gz
Cookbook saved: /home/rozie/chef-repo/cookbooks/nodejs.tar.gz
Removing pre-existing version.
Uncompressing nodejs version 2.4.2.
removing downloaded tarball
No changes made to nodejs
Checking out the master branch.
ERROR: IOError: Cannot open or read /home/rozie/chef-repo/cookbooks/nodejs/metadata.rb!

Zacząłem szukać i widywać różne dziwne rozwiązania na nieistniejące metadata.rb, przez chwilę przyszło mi dogenerowanie „brakującego” pliku na podstawie obecnego metadata.json, ale… coś mnie tknęło i postanowiłem najpierw spróbować z nowszym Chefem u siebie na lapku.

Ależ oczywiście, że instalacja Chefa w wersji 12 rozwiązała problem.

Orange, wvdial i modem Huawei E1752C

Ponieważ w ramach jednego projektu (hm, na razie nic nie nadaje się do publikacji) klikałem na dwa modemy GSM, to obok mojego Huawei E3131 w laptopie pojawił się pożyczony modem GSM Huawei E1752C z kartą sieci Orange. Dla pamięci i gdyby komuś miało się przydać – konfiguracja dostępu do internetu dla sieci Orange pod Linuksem.

W lsusb Huawei E1752C jest widoczny jako:

new high-speed USB device number 11 using ehci-pci
New USB device found, idVendor=12d1, idProduct=141b
New USB device strings: Mfr=3, Product=2, SerialNumber=4
Product: HUAWEI Mobile
Manufacturer: HUAWEI Technology

w dmesg jako:

Bus 002 Device 011: ID 12d1:141b Huawei Technologies Co., Ltd.

Sam modem działał od kopa (kernel 4.1.0-1-amd64, Debian unstable) i nie wymagał żadnych ingerencji, ale zaznaczam, że trafił do mnie jako używka, więc nie wiem, czy było grzebane.

Szybka przeróbka mojej konfiguracji dla Aero2, w oparciu o oficjalne instrukcje ze strony Orange nie zakończyła się sukcesem. Poszukiwania w sieci naprowadziły mnie na ten artykuł nt. konfiguracji modemu GPRS dla sieci Orange w Debianie. Potwierdzam, działa. Ale IMO trochę przydługie, więc postanowiłem skrócić do wersji mniej więcej minimalnej. Skończyłem z takim konfigiem do wvdial:

[Dialer orange-pin]
Modem = /dev/ttyUSB0
Init1 = ATZ
Init2 = AT+CPIN=1234

[Dialer orange]
Modem = /dev/ttyUSB0
Init3 = AT+CGDCONT=1,"IP","internet"
Username = "internet"
Password = "internet"
Phone = "*99#"
Dial Command = ATDTW
Stupid Mode = yes
Dial Attempts = 0

Najpierw trzeba wywołać wvidal orange-pin, a gdy się zakończy, można połączyć się z siecią przy pomocy wvidal orange. Jak widać, kluczową różnicą było ustawienie parametru Dial Command.

Samo połączenie z Orange można uruchomić na Linuksie prościej, ponieważ na desktopie da się wyklikać konfigurację w network manager. Sprawdzone na Debianie Jessie z kernelem w okolicach 4.0. Czasem jednak może przydać się wersja bardziej ręczna, szczególnie jeśli ktoś nie ma GUI w maszynce.