Речи о необходимости внедрения IPv6 ведутся уже давно (IPv6 — новая версия протокола IP, способная обеспечить более 300 млн IP-адресов на каждого жителя Земли).
Главным аргументом при этом обычно является исчерпание доступных «белых» IP-адресов, что рядового пользователя чаще всего не интересует.
Однако в последнее время актуальной проблемой для многих стали именно блокировки сайтов, причем, под лозунгом борьбы с наркотиками и CP блокируют оппозиционные сайты или ресурсы, высказывающие альтернативные точки зрения на исторические события.
Текущее законодательство Российской Федерации и Республики Беларусь не предусматривает наказания за получение доступа к заблокированным ресурсам, поэтому многие граждане, считающие себя вправе самостоятельно выбирать pulp fiction, обходят блокировки сайтов провайдерами.
Начнем с того, что некоторые заблокированные ресурсы сами по себе дают доступ по IPv6. Если ваш провайдер не предоставляет возможности работы через IPv6, вы можете сконфигурировать туннель IPv4-IPv6 с помощью туннельного брокера, различных туннельных сервисов, Teredo (для Windows) или Miredo (для Linux) (впрочем, про Miredo я вкратце напишу и в этой статье).
Многие блокируемые ресурсы позволяют доступ только по IPv4, и обход их блокировок часто производится с помощью Tor Browser. Однако Tor тоже начинают блокировать, в связи с чем я хочу предложить метод работы с Tor через IPv6.
Как вы уже поняли, нам понадобится туннель IPv4-IPv6. Расскажу, что надо сделать на примере Ubuntu.
Установим Miredo:
sudo apt install miredo
Проверим работоспособность:
$ ping6 ipv6.google.com
PING ipv6.google.com(waw02s08-in-x0e.1e100.net) 56 data bytes
64 bytes from waw02s08-in-x0e.1e100.net: icmp_seq=1 ttl=56 time=352 ms
64 bytes from waw02s08-in-x0e.1e100.net: icmp_seq=2 ttl=56 time=111 ms
64 bytes from waw02s08-in-x0e.1e100.net: icmp_seq=3 ttl=56 time=123 ms
64 bytes from waw02s08-in-x0e.1e100.net: icmp_seq=4 ttl=56 time=113 ms
64 bytes from waw02s08-in-x0e.1e100.net: icmp_seq=5 ttl=56 time=150 ms
^C
--- ipv6.google.com ping statistics ---
6 packets transmitted, 5 received, 16% packet loss, time 5007ms
rtt min/avg/max/mdev = 111.319/170.281/352.361/92.092 ms
Теперь мы можем работать с IPv6! Просто, не так ли? Остается небольшой шаг для настройки Tor.
Если вы используете Tor Browser, вам нужно зайти в подкаталог /path/to/tor/tor-browser_en-US/Browser/TorBrowser/Data/Tor/ и отредактировать файл torrc.
Смело удаляйте все содержимое конфига и вставляйте туда единственную строку:
ClientUseIPv4 0
Остальное содержимое конфига Tor при запуске дополнит самостоятельно.
Произведенная нами настройка запретит Tor'у подключаться к IPv4-адресам, которые могут блокироваться вашим провайдером. Здесь стоит отметить, что что в будущем могут блокироваться и IPv6-адреса, но на данный момент ни в России, ни в Беларуси этого не происходит.
Если вы под Linux используете установленный пакет Tor, приведите свой конфиг /etc/tor/torrc к примерно такому виду:
ClientUseIPv4 0
SocksPort 9050
Exitpolicy reject *:*
ExitPolicy reject6 *:*
ExtORPort auto
ClientTransportPlugin obfs4 exec /usr/bin/obfs4proxy managed
Заметьте, при использовании IPv6 можно по-прежнему обфусцировать трафик.
Как будет работать Tor при наших настройках? Первой из трех узлов в цепи Tor станет поддерживающая IPv6 нода, доступ к которой не заблокирован. Выходной останется IPv4-нода.
Нужно отметить, что работу с IPv6 поддерживают только относительно новые версии Tor (старше 0.2.3.9-alpha). Что интересно, у меня установленный в системе tor через IPv6 соединяется намного быстрее, чем Portable Tor Bundle.
Если вы хотите, чтобы ваша нода могла работать через IPv6, воспользуйтесь данной инструкцией.
Мостов, работающих через IPv6, кстати, совсем не много. Неопубликованные мосты, поддерживающие IPv6, я через bridges.torproject.org найти не смог вообще.
P.S. Хочу сказать отдельное спасибо ValdikSS за продвижение IPv6 на Хабре и Гиктаймс.
Автор: kedobear