Приватная точка доступа

Jan 12, 2020 10:53

Несколько лет уже продвигаются коробочки, создающие при подключении к интернет анонимный канал. Фактически, это роутер с точкой доступа WiFi и предустановленным TOR, использующий даркнет в качестве прокси для всех соединений клиентов.

Те, кто не хочет покупать отдельную коробочку, могут практически на любом роутере с openwrt бесплатно сделать себе отдельную точку доступа с такой же функциональностью.

Для этого нужно установить из репозитория сам TOR, создать дополнительную точку доступа, сконфигурировать в файрвол отдельную зону и специальные правила, отделяющие трафик этой зоны от обычного пользовательского. Привязать интерфейс новой точки доступа к созданной зоне. Всё довольно просто, но есть ряд нюансов, которые необходимо учитывать, чтобы не допустить нарушения приватности.

В частности, это как раз обработка запросов DNS, о которых я на днях писал. По умолчанию dnsmasq в openwrt выполняет и функции dhcp server, и recursive DNS resolver. Значит он откроет порт 53 на созданном интерфейсе и будет разрешать имена для анонимных запросов тоже. Для нас это неприемлемо, но мы не можем просто запретить ему привязку к анонимному интерфейсу потому, что тогда устройства на этой точке доступа не получат IP адреса. Простой финт для решения этой проблемы можно сделать с помощью файрвол. Мы перенаправим все запросы к 53 порту этого интерфейса на другой порт - порт DNS resolver предоставляемый TOR. В итоге на интерфейсе будет порт dnsmasq, но недоступный для клиентов. С остальными TCP запросами клиентов мы поступим также - перенаправим на порт прозрачного прокси TOR. А маршрутизацию любого трафика на другие интерфейсы просто запретим.

Из сказанного, в целом, ясно что нужно делать. Но я прилагаю и части конфигов с готовым решением.

Вот что следует добавить в файл /etc/config/wireless

config wifi-iface 'tor'
option device 'radio0'
option mode 'ap'
option encryption 'none'
option ifname 'tor'
option network 'tor'
option isolate '1'
option ssid 'privatenet'

Это должно оказаться в файле /etc/config/network

config interface 'tor'
option proto 'static'
option ipaddr '192.168.1.1'
option netmask '255.255.255.0'
option ifname 'tor'
option metric '10'
option dns '192.168.1.1'

А это в /etc/config/firewall

config zone 'tor_zone'
option name 'tor'
option network 'tor'
option forward 'DROP'
option input 'DROP'
option output 'DROP'

config rule 'private_rule_dhcp_req'
option proto 'udp'
option family 'ipv4'
option name 'Allow private DHCP request'
option src 'tor'
option src_port '68'
option dest_port '67'
option target 'ACCEPT'

config rule 'private_rule_dhcp_ans'
option proto 'udp'
option family 'ipv4'
option name 'Allow private DHCP answer'
option dest 'tor'
option src_port '67'
option dest_port '68'
option target 'ACCEPT'

config rule 'private_rule_dns'
option family 'ipv4'
option proto 'tcp udp'
option name 'Allow private DNS queries'
option src 'tor'
option dest_port '53'
option src_ip '192.168.1.1/24'
option target 'ACCEPT'

config rule 'private_internet'
option family 'ipv4'
option proto 'tcp'
option name 'Allow private internet'
option src 'tor'
option src_ip '192.168.1.1/24'
option target 'ACCEPT'

config redirect
option target 'DNAT'
option src 'tor'
option dest 'tor'
option proto 'tcp udp'
option src_dport '53'
option name 'Control private DNS'
option dest_ip '192.168.1.1'
option reflection '0'
option src_dip '192.168.1.1'
option dest_port '9053'
option src_ip '192.168.1.1/24'

config redirect
option target 'DNAT'
option dest 'tor'
option src 'tor'
option proto 'tcp'
option dest_port '9040'
option name 'Torify private'
option src_ip '192.168.1.1/24'
option reflection '0'

В файл /etc/tor/torrc для нашего случая нужно добавить только пару строк с открытием портов прозрачного прокси и ресолвера на новом интерфейсе. Но если у вас не был ранее установлен TOR, то можно взять файл конфигурации целиком такой:

User tor
DataDirectory /tmp/lib/tor
PidFile /tmp/run/tor.pid

SOCKSPolicyaccept 127.0.0.1
SOCKSPolicyaccept 192.168.0.0/16
# SOCKSPolicy accept6 FC00::/7
SOCKSPolicy reject *

ExcludeNodes {SC},{LR},{BR},{AR},{AU},{NZ},{MX},{CN},{CL},{JP}
ExcludeExitNodes {RU},{UA},{KZ},{BY},{??}
EntryNodes {CH},{NO},{PL},{GB},{FR},{SE},{DE},{FI},{NL},{AT},{DK},{BE},{CZ},{SK},{IT},{LT},{LV},{EE},{IE},{IS}
StrictNodes 1

VirtualAddrNetwork 172.16.0.0/12 # for .exit, .onion
AutomapHostsOnResolve 1
AutomapHostsSuffixes .exit, .onion

TransPort 127.0.0.1:9040
TransPort 192.168.1.1:9040 # +all Lan networks here

DNSPort 127.0.0.1:9053
DNSPort 192.168.1.1:9053

HardwareAccel 1

Теоретически, вы можете на всех клиентах локальной сети комфортно ходить на сайты .onion Не только с отдельной точки доступа, если добавите пару строк в конфиг dnsmasq. Но это отдельная история. Нужно помнить, что сайты в даркнет тоже могут пытаться вас отследить. Действительно анонимный доступ только с отдельной точки доступа (или из отдельного браузера).

Дополнения в /etc/config/dhcp такие:

config dhcp 'tor'
option interface 'tor'
option start '50'
option limit '200'
option leasetime '1h'

Понятное дело, что все вставки в файлы конфигурации сделаны исходя из предположения, что ваша адресация локальной сети не 192.168.1.1/24, а какая-то другая. Совпадения подсетей на интерфейсах допускать нельзя. Это касается и адресации, создаваемой TOR для сайтов даркнет.

Точка доступа созданная в итоге получится открытой для всех. Если ваш интернет трафик платный, это неправильно. Тогда ставьте шифрование и пароль как на основной вашей точке.
В остальных случаях все резоны не закрывать окружающим доступ налицо, если вы не вредный по жизни. Ведь не только вас, но и любого другого, использующего это соединение, тоже не смогут вычислить по оставленным с этой точки доступа следам.
Эта же точка сойдёт и в качестве гостевой для ваших друзей, если они не планируют смотреть онлайн видео высокого разрешения. Ведь весь трафик трижды шифруется процессором вашего роутера, что существенно ограничивает полосу пропускания этого интерфейса.

NB. Никакая коробочка, никакая маршрутизация и TOR не сотрут за вас куки в вашем привычном браузере, не отключат геолокацию в телефоне и не устранят следы авторизаций в соцсетях.

Это сообщение было опубликовано на DreamWidth
Комментирование в ЖЖ не безопасно в связи с практикой правоприменения в РФ.
Я рекомендую комментировать там, как это уже сделали
читателей

openwrt, безопасность, связь

Previous post Next post
Up