LINUX.ORG.RU
решено ФорумAdmin

Доступ к заблокированному сайту

 , ,


0

2

Доброго времени суток.
Помогите советом. Есть несколько сайтов, заблокированных провайдером. Инет получает машина-шлюз с Gentoo, которая далее раздаёт его всем остальным (ноутбук, планшет, сматфон). Задача состоит в том, чтобы запросы к заблокированному сайту резолвились в Tor прозрачно для всех подключающихся.
На шлюзе стоит nftables, tor, dnsmasq.
Достаточно ли будет перенаправления в Tor на уровне nftables? Как обеспечить резолв DNS запросов в этом случае?

ps Анонимность не преследуется.

С помощью dnsmasq или ipset-dns формируешь лист ipset, дальше форвардишь все из листа через tor transport. Таким же образом можно и .onion-домены завернуть, если захочется.

pekmop1024 ★★★★★
()
Ответ на: комментарий от post-factum

Спасёт если у провайдера не используется анализ SNI в https. Однако попробовать в любом случае стоит - хуже от этого не будет.

Pinkbyte ★★★★★
()
Ответ на: комментарий от post-factum

Ну это пока не используется :-)
Если у вас там такие же упор^W упёртые как у нас - всё еще впереди. Хорошо бы конечно, чтобы я был не прав...

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

В Украине нет нефтедолларового бюджета, пилить особо нечего... Вот ведь повезло ;)

anonymous
()
Ответ на: комментарий от post-factum

Ага, и я помню, жаль Лафокс уже не тот.
На mail.ru надо попасть. Не знаю, что такое SNI, но DPI мой провайдер похоже таки использует...

Объясните, пожалуйста, по подробнее про списки. Вот айпишники mail.ru:
5.61.16.0/21
5.61.232.0/21
79.137.157.0/24
79.137.183.0/24
94.100.176.0/20
95.163.32.0/19
95.163.248.0/21
128.140.168.0/21
178.22.88.0/21
178.237.16.0/20
185.5.136.0/22
185.16.148.0/22
185.16.244.0/22
188.93.56.0/21
194.186.63.0/24
195.211.20.0/22
195.218.168.0/24
217.20.144.0/20
217.69.128.0/20
178.22.91.0/24
178.22.92.0/23
185.16.244.0/23
195.211.128.0/22
208.87.94.0/24

С nftables всё понятно, добавляем их через запятую в ихнешний set, и потом редиректим куда надо.
Как быть с dnsmasq, как ему скормить этот список для правильного резолва? не могу понять какой должен быть синтаксис, понятно когда один айпишник и много имён, а когда наоборот?

sspphheerraa
() автор топика
Ответ на: комментарий от sspphheerraa

жаль Лафокс уже не тот

Ну, теперь его вообще нет, вообще-то :).

Как быть с dnsmasq, как ему скормить этот список для правильного резолва? не могу понять какой должен быть синтаксис, понятно когда один айпишник и много имён, а когда наоборот?

https://trac.torproject.org/projects/tor/wiki/doc/TransparentProxy

Оно? Похоже, тебе нужно настроить это прозрачное проксирование и завернуть все подсети на виртуальный интерфейс ТОР'а.

Я не очень в теме, на самом деле, как с ТОР'ом лучше сделать. На твоём месте я бы копал в сторону VPN'а. UDP, например, через TOR ты не прогонишь, только TCP.

post-factum ★★★★★
()
Ответ на: комментарий от sspphheerraa

С DNS так же — у dnsmasq есть conditional forwarding. Так вот, наверное, можно для *.mail.ru сделать форвардинг запосов по TCP на нужный резолвер, а роут к этому резолверу перенаправить через TOR, как по ссылке в предыдущем комментарии.

О conditional forwarding тут: http://pyther.net/2010/12/dns-conditional-forwarding-dnsmasq/

post-factum ★★★★★
()
Последнее исправление: post-factum (всего исправлений: 1)
Ответ на: комментарий от post-factum

Гонять UDP на mail.ru? Мне лишь бы логин с паролем не увели при авторизации, всё остальное не актуально.
Прозрачное проксирование, это понятно. Вопрос в том, как делить трафик на основе DNS запросов.
Или уже все DNS запросы отправлять в Tor, а dnsmasq пусть сам формирует свой cache-список?

th3m3, интересная статья, но в ряд ли это будет работать для моего прова, проверить не могу (перестраиваться обратно на iptables нет желания).

Пищу для размышлений подала статья в которой используется связка squid+privoxy+tor, но в ней предполагается в браузере устанавливать использование прокси.

sspphheerraa
() автор топика
Ответ на: комментарий от sspphheerraa

Или можно связку заменить на
nftables->squid->privoxy->tor
дабы убрать необходимость прописывать использование прокси в браузерах?

sspphheerraa
() автор топика
Ответ на: комментарий от sspphheerraa

как делить трафик на основе DNS запросов

Говорю же, conditional routing в dnsmasq. Прописываешь нужную зону, форвардишь её по TCP к какому-нибудь публичному резолверу. Этот трафик заворачиваешь через TOR.

Не-DNS трафик (TCP-only) тоже заворачиваешь через TOR.

В такой схеме нигде прокси прописывать не нужно.

post-factum ★★★★★
()
Ответ на: комментарий от post-factum

Спасибо, настроил. Теперь DNS запросы на mail.ru резолвятся «лично» dnsmasq через Tor (проверено).
Конфиг /etc/tor/torrc

User tor
Log notice syslog
SocksPort 0
TransPort 9040
DNSPort 9053
Пробую основной TCP трафф завернуть в Tor на 9040.
Настраиваю nftables (eth0 смотрит в интернет, eth1 - в локальную сеть):
table ip filter {
        chain input {
                type filter hook input priority 0; policy drop;
                ct state invalid drop
                ct state established,related accept
                iifname "lo" ip daddr 127.0.0.0/8 accept
                ip protocol icmp accept
                iifname "eth1" accept
        }

        chain output {
                type filter hook output priority 0; policy accept;
        }

        chain forward {
                type filter hook forward priority 0; policy drop;
                iifname "eth1" accept
                oifname "eth1" accept
        }
}

table ip nat {
        chain prerouting {
                type nat hook prerouting priority 0; policy accept;
                ip daddr { 217.69.139.199} tcp dport https redirect to :9040
        }

        chain postrouting {
                type nat hook postrouting priority 100; policy accept;
                oifname "eth0" ip saddr 192.168.10.20 masquerade
        }
}

Но, что-то не так, mail.ru не грузится (но не грузится и любой другой сайт по этой схеме). Что пропустил?

sspphheerraa
() автор топика
Ответ на: комментарий от sspphheerraa

Поставил для эксперимента sinoptik.ua, добавил счётчик

ip daddr { 212.42.76.150} tcp dport { http, https} counter packets 1 bytes 60 redirect to :9040

Похоже, что пакеты в Tor отправляются, но сайт почему-то всё равно не грузится.

sspphheerraa
() автор топика
Ответ на: комментарий от post-factum

Если на шлюзе выставить браузер на использование socks (127.0.0.1:9050), - то работает;
если на клиенте в локалке выставить socks 192.168.10.1:9050 (внутренний адрес шлюза), то нет.
Проблема таки в Tor'е похоже...

sspphheerraa
() автор топика
Ответ на: комментарий от sspphheerraa

Я думаю, тебе в конфиге тора нужно биндиться не просто на порт, а на адрес:порт. Я у себя так делал. Адрес пользуешь тот, который внутренний шлюза.

post-factum ★★★★★
()
Ответ на: комментарий от post-factum

О! Вот это оно:

TransPort 127.0.0.1:9040
TransPort 192.168.10.1:9040

Теперь всё заработало :)

post-factum, Спасибо и дай Вам Бог здоровья, добрый человек!

sspphheerraa
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.