Adresy .onion w całej sieci lokalnej



Tor ma taką fajną umiejętność tworzenia ukrytych adresów z wykorzystaniem domeny .onion – jak http://sejnfjrq6szgca7v.onion, http://uj3wazyk5u4hnvtk.onion/ czy https://facebookcorewwwi.onion. Ma też drugą fajną umiejętność, dzięki czemu można udostępnić łączność do takich adresów wszystkim urządzeniom w sieci lokalnej, nawet nie znającym Tora.

Sztuczka działa dzięki temu, że Tor potrafi działać jako serwer DNS i syntetyzować rekordy dla domeny .onion. W konfiguracji podajemy z jakiej podsieci mają być zwracane. Trzeba tylko przekierować routing ww. podsieci na klienta tor i voila. Tor odbierając pakiety skierowane na adres X wie, że ten adres zwrócił po zapytaniu o xyz.onion i odpowiednio kieruje połączenia.

Konfiguracja jest prosta. Najpierw wybieramy sobie ta specjalne podsieci:

VirtualAddrNetworkIPv4 10.192.0.0/10
VirtualAddrNetworkIPv6 [fceb:001a::]/32

Dwa, każemy Torowi obsługiwać DNS na naszym wewnętrznym interfejsie. Dobrze się chwile zastanowić, czy nie mamy tu już przypadkiem jakiegoś unbound, deadwood, systemd-resolved czy innego serwera DNS nasłuchującego na tym porcie. Jeśli tak, trzeba go wyłączyć. There can be only one!

DNSPort 203.0.113.2:53
DNSPort [2001:db8:85a3::8a2e:370:7334]:53
AutomapHostsOnResolve 1

Na koniec konfiguracji Tora zostaje kazać mu nasłuchiwać jako transparetne proxy, tak jak umie to Squid:

TransPort 0.0.0.0:9040
TransPort [::]:9040

Zostały jeszcze 2 drobiazgi – przekierowanie ruchu do magicznych podsieci na naszego cichociemnego tora:

iptables -A PREROUTING -p tcp -d 10.192.0.0/10 -j REDIRECT --to-ports 9040
ip6tables -A PREROUTING -p tcp -d fceb:001a::/32 -j REDIRECT --to-ports 9040

Oraz poinformowanie naszego głównego DNS, że domenę .onion obsługuje ktoś inny:

  Zone name: onion.
  Zone active: TRUE
  Zone forwarders: 2001:db8:85a3::8a2e:370:7334, 203.0.113.2
  Forward policy: first
----------------------------
Number of entries returned 1
----------------------------

W tym momencie na każdej stacji powinno działać:

$ host facebookcorewwwi.onion
facebookcorewwwi.onion has address 10.207.220.42
facebookcorewwwi.onion has IPv6 address fceb:1a:39ba:123f:1d30:72d1:a46e:1f93

$ wget sejnfjrq6szgca7v.onion
--2016-11-03 13:14:09--  http://sejnfjrq6szgca7v.onion/
Resolving sejnfjrq6szgca7v.onion (sejnfjrq6szgca7v.onion)... 10.221.133.34, fceb:1a:437e:551f:ef67:b2c2:bb64:ece5
Connecting to sejnfjrq6szgca7v.onion (sejnfjrq6szgca7v.onion)|10.221.133.34|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 14760 (14K) [text/html]
Saving to: 'index.html'

index.html  100%[======================================================================================>]  14.41K  34.0KB/s    in 0.4s

2016-11-03 13:14:10 (34.0 KB/s) - 'index.html' saved [14760/14760]

Konfigurację dla innych systemów znajdziemy oczywiście na stronie projektu.

Comments


Comments powered by Disqus