Нажмите "Enter", чтобы перейти к содержанию

Heavy r com обойти блокировку – Умный обход блокировок в Украине / Habr

Содержание

Умный обход блокировок в Украине / Habr


В статье описывается настройка бесплатного сервиса Zaborona.Help для обхода блокировок сайтов в Украине.

Особенность конфигурации в том, что через VPN маршрутизируется трафик только к заблокированным сетям, остальные сайты работают напрямую. Работает на всех основных платформах: Windows, Linux, iOS, MacOS, Android.

VPN не влияет на скорость интернета, не подменяет IP для остальных сайтов и не мешает работе онлайн-игр, голосового трафика и т.д.

Проблемы популярных средств обхода блокировок

  • Браузерные плагины — не работают для мобильных приложений, проксируют через свои сервера весь трафик. Имеют доступ к содержимому страницы и угрожают безопасности.
  • Обычные VPN — маршрутизируют через свои сервера весь трафик. Влияет на скорость интернета, увеличивают задержки, подменяет IP для всех сайтов.
  • Браузеры с прокси — не позволяют обойти блокировку мобильных приложений.

Процесс настройки описан на примере OpenVPN и может быть легко повторен за несколько минут.

Настройки на стороне клиента выполняются с помощью одного файла конфигурации и не требуют ручного ввода адресов и паролей.


Выбор сервера


Сервер для VPN должен иметь хорошую связность на сетевом уровне с вашим провайдером, чтобы задержки были минимальными, а также с ресурсами, которые планируется посещать через этот VPN. Датацентры в США, Китае, Японии — не лучший выбор.

Приведу несколько вариантов, которые я выбрал для сервиса Zaborona.help:



Linode.com — крутой и надежный хостинг с хорошими каналами.

Плюсы:

  • Гигабитный канал, хорошая связность в Европе
  • Маршрутизируемый блок /64 IPv6-адресов. Можно выдавать клиентам VPN реальные IP напрямую.

Минусы:
  • Минимальная стоимость $5
  • 1TB исходящего трафика на минимальном тарифе
  • $20 за каждый терабайт превышения лимита



Scaleway.com — дешевый хостинг с безлимитным трафиком.

Плюсы:

  • Минимальная цена за сервер €3
  • Безлимитный трафик, 200Mbit/s
  • Датацентр в Польше (близко к Украине)

Минусы:
  • Один IPv6 адрес на сервер (какая глупость!)
  • Не лучшая связность с заблокированными ресурсами



Для надежности используются сразу несколько серверов у обоих провайдеров. Балансировка выполняется примитивно, на уровне DNS.

Служебный домен, к которому подключаются клиенты vpn.zaborona.help, имеет несколько А-записей, направленных на все сервера сразу. Это позволяет равномерно размазать клиентов по серверам. Минимальный TTL записей позволяет быстро убрать проблемный сервер из общего списка и перенаправить клиентов.

Список заблокированных сервисов


Из указа президента Украины №133/2017 известен список компаний, подпадающих под блокировки. Зная этот список, можно составить список всех диапазонов IP, принадлежащих этим компаниям

Для этого можно использовать сервис bgp.he.net
Вот как выглядят BGP-анонсы Яндекса bgp.he.net/AS13238#_prefixes
Собираем все нужные диапазоны. Соседние сети объединяем в один диапазон, чтобы уменьшить общее число маршрутов на клиенте.

На выходе получаем такой список без учета IPv6-диапазонов:

Cписок сетей, маршрутизируемый через сервера Zaborona VPN# Vkontakte
— 87.240.128.0/18
93.186.224.0/20
95.142.192.0/20
95.213.0.0/18
185.29.130.0/24
185.32.248.0/22

2a00:bdc0::/36
2a00:bdc0:e003::/48
2a00:bdc0:e004::/46
2a00:bdc0:e008::/48
2a00:bdc0:f000::/36

# Yandex
— 5.45.192.0/18
5.255.192.0/18
37.9.64.0/18
37.140.128.0/18
77.75.152.0/22
77.75.159.0/24
77.88.0.0/18
84.201.128.0/18
87.250.224.0/19
93.158.128.0/18
95.108.128.0/17
100.43.64.0/19
109.235.160.0/21
130.193.32.0/19
141.8.128.0/18
178.154.128.0/17
185.32.185.0/24
185.32.186.0/24
185.71.76.0/22
199.21.96.0/22
199.36.240.0/22
213.180.192.0/19

2001:678:384::/48
2620:10f:d000::/44
2a02:6b8::/32
2a02:5180::/32

# 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

2a00:1148::/32
2a00:b4c0::/32

# Kaspersky Lab
— 77.74.176.0/22
77.74.181.0/24
77.74.183.0/24
93.159.228.0/22
185.54.220.0/23
185.85.12.0/24
185.85.14.0/23
77.74.176.0/21
91.103.64.0/21
93.159.224.0/21

2a03:2480::/33


Этот список меняется крайне редко, поэтому не составит труда его обновить при необходимости.

Настройка OpenVPN


На сервере будет использован OpenVPN 2.4. Рекомендуется использовать именно эту версию. В репозиториях Ubuntu LTS версия OpenVPN 2.3, поэтому нужную версию можно установить подключив официальный репозиторий openvpn.

Выпуск сертификатов


Для генерации сертификатов проще всего использовать утилиту easy-rsa. Данный форк от ValdikSS позволяет генерировать сертификаты, одновременно подходящие и для OpenVPN, и для Ipsec.
Генерация ключей с помощью easy-rsa
$ git clone https://github.com/ValdikSS/easy-rsa-ipsec.git
$ cd easy-rsa-ipsec/easyrsa3
$ ./easyrsa init-pki

init-pki complete; you may now create a CA or requests.

$ ./easyrsa build-ca nopass
Generating a 2048 bit RSA private key
…
Common Name (eg: your user, host, or server name) [Easy-RSA CA]:Cool VPN Server
…

$ ./easyrsa build-server-full zaborona.help nopass
Generating a 2048 bit RSA private key
…
Write out database with 1 new entries
Data Base Updated

# В данном случае public это имя клиента. Оно может быть любым.
$ ./easyrsa build-client-full public nopass    
Generating a 2048 bit RSA private key
…
Write out database with 1 new entries
Data Base Updated


После генерации сертификатов имеем такой список необходимых файлов:

Для сервера:

easyrsa3/pki/ca.crt — корневой сертификат
easyrsa3/pki/issued/zaborona.help.crt — серверный сертификат
easyrsa3/pki/private/zaborona.help.key — ключ от сертификата сервера

Для клиента:

easyrsa3/pki/ca.crt — корневой сертификат
easyrsa3/pki/issued/public.crt

— клиентский сертификат
easyrsa3/pki/private/public.key — клиентский ключ

Серверный конфиг


Полученный на предыдущем шаге список сетей добавляем в конфиг сервера. Таким образом при подключении клиенту будут устанавливаться маршруты к заблокированным сетям через VPN сервер. Маршрут по-умолчанию 0.0.0.0 при этом не будет изменен.

Так как многие провайдеры в Украине блокирует DNS запросы к запрещенным сайтам, важно установить клиенту наши резолверы, и сделать так, чтобы доступ к ним был через VPN.

Конфиг сервера OpenVPN
mode server
proto tcp

dev-type tun # Тип драйвера tun, так как нам не нужен L2 уровен
dev zaborona # Имя tun интерфейса на сервере

topology subnet
server 192.168.224.0 255.255.252.0 # Диапазон IP выдаваемых клиентам. Выбираем маску побольше, так как клиентов планируется много 
server-ipv6 2a01:7e01:e001:77:8000::/65 # Диапазон IPv6 адресов. Удалите, если у вас нет отдельной маршрутизируемой ipv6 сети на сервере

push "dhcp-option DNS 8.8.8.8" #Устанавливаем DNS резолверы
push "route 8.8.8.8"  # Маршрут до этого адреса через VPN

push "dhcp-option DNS 74.82.42.42" # HE.net DNS в качестве вторичных 
push "route 74.82.42.42" # Route to HE.net DNS

txqueuelen 250
keepalive 300 900
persist-tun
persist-key

cipher AES-128-CBC
ncp-ciphers AES-128-GCM

user nobody
duplicate-cn

# log logs/openvpn.log
#status logs/status.log 30

ca ca.crt
cert zaborona.help.crt
key zaborona.help.key
dh dh3048.pem


# Routes

# Yandex network
push "route 5.45.192.0 255.255.192.0"
push "route 5.255.192.0 255.255.192.0"
push "route 37.9.64.0 255.255.192.0"
push "route 37.140.128.0 255.255.192.0"
push "route 77.88.0.0 255.255.192.0"
push "route 84.201.128.0 255.255.192.0"
push "route 87.250.224.0 255.255.224.0"
push "route 93.158.128.0 255.255.192.0"
push "route 95.108.128.0 255.255.128.0"
push "route 100.43.64.0 255.255.224.0"
push "route 130.193.32.0 255.255.224.0"
push "route 141.8.128.0 255.255.192.0"
push "route 178.154.128.0 255.255.128.0"
push "route 199.21.96.0 255.255.252.0"
push "route 199.36.240.0 255.255.252.0"
push "route 213.180.192.0 255.255.224.0"

push "route-ipv6 2620:10f:d000::/44"
push "route-ipv6 2a02:6b8::/32"

# Mail.ru network
push "route 5.61.16.0 255.255.248.0"
push "route 5.61.232.0 255.255.248.0"
push "route 79.137.157.0 255.255.255.0"
push "route 79.137.183.0 255.255.255.0"
push "route 94.100.176.0 255.255.240.0"
push "route 95.163.32.0 255.255.224.0"
push "route 95.163.248.0 255.255.248.0"
push "route 128.140.168.0 255.255.248.0"
push "route 178.22.88.0 255.255.248.0"
push "route 178.237.16.0 255.255.240.0"
push "route 185.5.136.0 255.255.252.0"
push "route 185.16.148.0 255.255.252.0"
push "route 185.16.244.0 255.255.252.0"
push "route 188.93.56.0 255.255.248.0"
push "route 194.186.63.0 255.255.255.0"
push "route 195.211.20.0 255.255.252.0"
push "route 195.218.168.0 255.255.255.0"
push "route 217.20.144.0 255.255.240.0"
push "route 217.69.128.0 255.255.240.0"

push "route-ipv6 2a00:1148::/32"
push "route-ipv6 2a00:a300::/32"
push "route-ipv6 2a00:b4c0::/32"

# VK.com network
push "route 87.240.128.0 255.255.192.0"
push "route 93.186.224.0 255.255.240.0"
push "route 95.142.192.0 255.255.240.0"
push "route 95.213.0.0 255.255.192.0"
push "route 185.32.248.0 255.255.252.0"

push "route-ipv6 2a00:bdc0::/36"
push "route-ipv6 2a00:bdc0:e006::/48"

# Kaspersky network
push "route 77.74.176.0 255.255.252.0"
push "route 77.74.181.0 255.255.255.0"
push "route 77.74.183.0 255.255.255.0"
push "route 93.159.228.0 255.255.252.0"
push "route 185.54.220.0 255.255.254.0"
push "route 185.85.12.0 255.255.255.0"
push "route 185.85.14.0 255.255.254.0"


Складываем все файлы на сервере в в папку /etc/openvpn

zaborona.conf — конфиг сервер
ca.crt — корневой сертификат
zaborona.help.crt — сертификат сервера
zaborona.help.key — ключ сервера

Клиентский конфиг


Для настройки подключения на стороне клиента, нужно сгенерировать конфигурационный файл, в котором будут вписаны настройки и ключи аутентификации.Клиентский конфигурационный файл .ovpn
nobind
client

# Адрес сервера. Используем имя домена для балансировки через DNS.
remote vpn.zaborona.help

remote-cert-tls server
cipher AES-128-CBC
setenv opt ncp-ciphers AES-128-GCM
setenv opt block-outside-dns
dev tun
proto tcp

<ca>
содержимое файла easyrsa3/pki/ca.crt
</ca>

<cert>
Содержимое файла easyrsa3/pki/issued/public.crt
</cert>

<key>
содержимое файла easyrsa3/pki/private/public.key 
</key>


Подключение


Процесс настройки подключения на клиенте состоит из двух шагов: установить OpenVPN клиент и импортировать файл с настройками.

Мы написали инструкции c картинками для всех популярных операционных систем:

Windows
MacOS
iOS
Android

Исходники всего проекта, в том числе сайта, доступны на Github. Если какая-то информация на сайте отсутствует, буду признателен за pull request-ы.

Тем, кто хочет настроить собственный VPN сервер для обхода блокировок, с удовольствием помогу. Можете задавать любые вопросы здесь, либо в комментариях на сайте.

habr.com

Как обойти блокировку любого ресурса с помощью VPN

Выполняя требования Роскомнадзора, российские провайдеры за последние несколько лет заблокировали множество популярных сайтов и не собираются останавливаться на достигнутом. Недавно в список запрещённых ресурсов попал Telegram, а уже в ближайшем будущем там может оказаться и Facebook. Самый простой способ сохранить доступ к любимым ресурсам и продолжить использовать их — это VPN-сервисы. Например, VPN99.

Как это работает

Принцип работы VPN достаточно прост: соединение с нужными интернет-ресурсами происходит не напрямую, а через промежуточный сервер. Все данные при этом передаются в зашифрованном виде, а сам VPN-сервер может находиться в любой стране мира.


За счёт последнего как раз и появляется возможность обойти заблокированные в определённом регионе ресурсы, например Telegram. После соединения с VPN-сервером все ваши действия будут осуществляться от его имени, а значит, вы виртуально измените своё местонахождение и сможете подключиться к серверам Telegram, несмотря на блокировку.

Как обойти блокировку сайтов

Чтобы попасть на заблокированный по какой-либо причине сайт, проще всего воспользоваться браузерным расширением VPN99 для Chrome или Firefox. Оно устанавливается в один клик и так же просто работает.

Разработчик: Разработчик

Цена: Бесплатно

Если нужно проводить через VPN трафик со всех приложений, то удобнее настроить VPN прямо на устройстве. Это можно сделать на компьютере, смартфоне, планшете или вообще в роутере. Разберём для примера, как настроить VPN на iOS-устройстве. Вот что потребуется сделать.

1. Регистрируемся в VPN99 и оформляем подписку.

2. Устанавливаем из App Store бесплатное приложение OpenVPN.

3. Открываем в Safari конфигурационный файл VPN99 и жмём «Открыть в программе OpenVPN».

Обход блокировокОбход блокировок с VPN

4. В открывшемся окне программы жмём кнопку «Добавить» и подтверждаем добавление профиля VPN.

Ввод логина и пароляСохранение

5. Вводим в поля User ID и Password логин и пароль, которые использовались при регистрации в VPN99, и включаем тумблер Save, чтобы не вводить данные при каждом включении VPN.

СохранениеСохранение

6. Включаем VPN и разрешаем установить соединение.

7. Теперь для активации VPN в следующий раз нужно будет лишь зайти в приложение и включить тумблер в настроенном подключении или воспользоваться меню VPN в настройках iOS.

У VPN99 есть подробные пошаговые инструкции по настройке VPN на любой платформе, включая Windows, macOS, Linux, Android, iOS и другие.

Почему стоит воспользоваться VPN99

Удобство

Удобство работы — одна из главных причин. Сервис настолько прост, насколько это вообще возможно: настройте подключение один раз и дальше всё будет просто работать. С VPN99 можно обходить блокировки различных ресурсов, включая Telegram, и использовать недоступные на территории России сервисы.

И без того простой процесс настройки VPN снабжён детальными пошаговыми инструкциями для каждого из поддерживаемых устройств. А если какие-либо вопросы по настройке или работе сервиса всё же возникнут, получить на них оперативные ответы можно у специалистов службы поддержки VPN99.

Безопасность

Даже если VPN вам интересен лишь в качестве инструмента для обхода блокировок, вы автоматически получаете при его использовании другие бонусы.

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

Выгода

Всего за один доллар вы получите полноценный VPN со всеми его возможностями. Никаких скрытых комиссий, дополнительных покупок и расширенных версий.

У VPN99 один-единственный тариф, в который всё включено, так что тратить время на изучение условий и выбор оптимального тарифа не придётся.

Подключить VPN

lifehacker.ru

Способы обхода блокировки сайтов

censoredpДобрый день! К сожалению, в последние годы законы, касающиеся соблюдения авторских прав, все более ужесточаются. Вполне возможно, что уже завтра ваш любимый сайт может быть заблокирован в России на неопределенное время. Поэтому, нужно быть готовым к такого рода событиям. Сегодня мы рассмотрим несколько простых методов обхода блокировки сайтов. Все эти методы просты, удобны и легальны. Потратьте 5 минут на прочтение статьи и вы сможете зайти на любой заблокированный сайт.

 Турбо-режим в Opera и Яндекс-браузере.

turbo-opera-webkit-00

35503

Пожалуй, самый простой, но не всегда адекватно работающий способ – это включить режим турбо в Opera и Яндекс-браузере. В данном случае ваш трафик будет сжиматься серверами браузеров и потом передаваться Вам. Сайт будет считать вам иностранцем и заблокированная информация будет доступна для Вас. Как дополнительный эффект – более быстрое открытие сайтов на медленном интернете.

В мобильных браузерах Opera и Google Chrome  существует режим сжатия трафика. Его также можно использовать для обхода блокировок сайтов. Метод вполне работоспособен. Заблокированные странички грузятся быстро.

Возможно, вам также знаком метод, когда заблокированный сайт открывается через Google Переводчик. Хотя этот вариант порой может помочь, но скорее всего попытка открыть заблокированный сайт через Google Переводчик будет неудачной либо сайт откроется с искажениями дизайна. Поэтому проще и удобнее использовать предыдущие методы.

Онлайн-сервисы для обхода блокировок сайтов

Image 014

Существует множество онлайн-сервисов для обхода блокировок сайтов. Функционал у них практически идентичен. Копируете адрес необходимого сайта, вводите в поле на главной странице сервиса – и вуаля. Несмотря на кажущуюся простоту, мне этот метод не нравится. Во-первых, неудобно постоянно вводить адреса заблокированных сайтов. Во-вторых, многие из подобных ресурсов перенасыщены рекламой, которую они выводят вместе со страницами необходимого Вам сайта. В-третьих, дизайн искомого сайта частенько выглядит криво после открытия онлайн-сервисом. Если все же этот способ вам удобен, то можно воспользоваться следующими онлайн-сервисами для обхода блокировок сайтов.

https://hidester.com/proxy/ – удобный бесплатный сервис для обхода блокировки сайта без рекламы. Работает быстро и четко.

https://www.vpnbook.com/webproxy – еще один, если первый не приглянулся

Программы для смартфона для обхода блокировок сайтов

screen568x568

Если вам необходимо посмотреть заблокированные ресурсы на iPhone или iPad, то самым простым и доступным решением будет воспользоваться браузером Onion, который использует в своей работе широко известную сеть Tor, трафик в которой практически невозможно отследить. Хоть и программа платная, но ее цена – всего лишь 1 доллар. Использовать вы ее сможете сразу на всех своих устройствах Apple.

Выглядит программа как обычный браузер, с той лишь разницей, что открывает абсолютно любые сайты.

Если вы являетесь счастливым обладателем устройства на базе Андроид, то можете воспользоваться аналогичной программой под названием Orweb.

Думаю, она придется вам по душе. Программа несомненно является простым и эффективным способом для обхода блокировок сайтов на мобильных устройствах.

 

Плагины для браузера для обхода блокировки сайта.

friGate_4

Использование плагинов браузеров для обхода блокировок сайтов является простым и доступным методом. Для Google Chrome и Mozilla Firefox существует прекрасный плагин friGate. Особенно важно, что этот плагин не влияет на скорость открытия незаблокированных сайтов, так как вступает в работу только когда вы заходите на заблокированный ресурс о чем вам и сообщает изменением иконки на панели браузера. Адреса заблокированных ресурсов плагин берез из собственного списка, который обновляется достаточно часто.

2895636-5-big

Также существует альтернатива в виде плагина HOLA. Данной плагин позволяет вручную выбрать страну, VPN которой вы будете использовать. Сайты иногда отображаются некорректно. Как отмечают создатели, в большей степени плагин предназначен для просмотра мультимедийного контента. Ускорение загрузки в данном случае достигается за счет устройств других пользователей, на которых установлен этот плагин.

snapshot-03

Один из лучших плагинов для открытия заблокированных сайтов – это Zenmate. Работает с Chrome, Firefox, Opera. Также функционирует на Android b iOS. Плагин бесплатный, обещает не только открывать заблокированные сайты, но и защищать и шифровать ваш трафик. Плагин и в самом деле замечательно справился со всеми видами блокировок, хотя и несколько замедлил серфинг в сети. Можно включать плагин по необходимости, благо для этого достаточно одного щелчка мышкой. Требует электронную почту для активации.

Программы для Windows и Mac для обхода блокировок сайтов.

tbb-screenshot3

Для обхода блокировок сайтов на Windows и Mac можно использовать специализированный браузер Tor. Браузер не только позволит вам заходить на любые сайты, но и будет шифровать передаваемые вами данные. К сожалению, сайты с помощью этого браузера открываются не всегда так быстро, как хотелось бы.

index

Еще один вариант настольного решения – мультиплатформенная программа TunnelBear. Программа будет пропускать весь ваш трафик (а не только тот, что идет через браузер) через зарубежные сервера, позволяя просматривать заблокированные сайты и пользоваться сервисами, недоступными в Росcии (например, прекрасный аудиосервис Spotify). В бесплатной версии программы доступно 500 мб трафика в месяц, чего должно хватить неискушенному пользователю. Если же этого вам недостаточно, то за 5 долларов в месяц вы можете приобрести пакет с неограниченным трафиком и пользоваться программой на 3 любых устройствах (включая мобильные). Очень удобная программа, серфинг доступен из нескольких стран, текущая страна меняется одним щелчком мышки.

Freemer – бесплатный браузер на движке Chromium со встроенным VPN-сервисом. Обеспечивает доступ на любые заблокированные ресурсы, надежно шифрует вам трафик. Кроме того браузер обладает каталогом заблокированных ресурсов. Пользователи могут сами добавлять сайты в каталог. Установка ничем не отличается от установки обычного браузера. Довольно удобное решение для пользователей, которые не хотят заморачиваться с установкой плагинов и покупкой своего VPN.

Использование сервиса ПростоVPN для обхода блокировки сайтов.

Снимокwr

И напоследок, немного о прекрасном бесплатном сервисе ПростоVPN. Антизапрет. Сервис предоставляет 3 способа просмотра заблокированных сайтов исходя из ваших нужд – через прокси, посредством VPN или через смену DNS. Я думаю, это один из самых простых и функциональных способов для просмотра заблокированных сайтов. Все проще простого – заходите на сайт, следуете несложной инструкции – и вы снова имеете доступ к любимому ресурсу. Для большинства начинающих пользователей самым простым способом является настройка прокси в браузере. На это уйдет пара минут, не больше.

 

Комплексное решение для доступа к заблокированным ресурсам со всех устройств домашней сети.

raspberry_pi_onionpi

Если вам требуется, чтобы весь ваш трафик был защищен и чтобы каждое устройство в вашей домашней сети имело доступ к заблокированным ресурсам, советую присмотреться к Onion Pi. Устройство работает на базе компьютера Raspberry Pi. Весь ваш трафик проходит через систему Tor и шифруется. Устройство умеет раздавать wi-fi. Стоит девайс около 100 долларов, но В России не так просто. Если все же надумаете – вот сайтик, где можно приобрести столь чудный аппарат.

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

misterit.ru

Как обойти блокировку сайтов: быстро, просто, бесплатно - FAQPC

Вам нравится, что кто-то решает за вас, какие сайты посещать, что читать, что смотреть, что скачивать, с кем общаться и как жить? Мне – определенно нет. Между тем, практика блокирования веб-ресурсов за те или иные провинности распространяется шире и шире.

Почти еженедельно мы слышим о закрытии то одного, то другого Интернет-портала от российских посетителей. Плюс свою лепту вносят работодатели. Не будем же мы, глядя на это, сидеть сложа руки! Поговорим, как обойти блокировку сайтов простыми и бесплатными способами.

Как обойти блокировку сайтов: быстро, просто и бесплатно

VPN

VPN (виртуальные частные сети) используют не только для доступа в корпоративный или частный Интранет, но и для анонимности во «Всемирной паутине». В отличие от браузерных расширений, они пропускают через прокси весь трафик компьютера или локальной сети.

Для серфинга по закрытым сайтам необходимо установить VPN-приложение. Большинство из них, к сожалению, платные, но я подобрал для вас несколько бесплатных.

Лучший из бесплатный сервисов VPN, на мой взгляд, это Freemer.org. Он:

  • Русскоязычный.
  • Понятный.
  • Не имеет ограничений по объему трафика.
  • Поддерживает каталог часто посещаемых сайтов, который вы можете формировать самостоятельно. Вы просто заходите на Freemer.org, добавляете нужный веб-ресурс в список и через некоторое время он появляется в приложении. Это удобнее, чем пользоваться закладками браузера.
  • Работает автоматически. Не имеет ручных настроек, а значит,  не позволит вам запутаться или сделать что-то неправильно.
  • Всегда выбирает сервер, способный обеспечить самую стабильную и быструю связь с нужным веб-ресурсом.
  • Надежно защищает ваш реальный IP и все передаваемые данные от утечки в руки посторонних.

Как пользоваться Freemer

Чтобы внести заблокированный сайт в каталог Freemer, зайдите на главную, введите его URL в показанное на скриншоте поле и нажмите кнопку добавления.

Добавить сайт в freemer.org.

Для перехода на любой ресурс, уже включенный в список, запустите приложение и кликните “Каталог сайтов“. Либо впишите его URL в адресную строку и нажмите “Найти“.

Переход в каталог сайтов Freemer.

Отыскав нужный веб-сайт в каталоге, просто щелкните мышкой по его миниатюре. Через несколько секунд он откроется на этой же странице.

Переход на сайт через Freemer.

Хотите попасть на RuTracker.org? Никаких проблем! А кликнув по звездочке в верхнем правом углу окна, вы добавите его в визуальные закладки браузера Freemer.

Открытие сайта Rutracker.org через Freemer.

Чтобы получить дополнительную информацию о любом сайте из каталога – описание, поисковые теги, скриншот главной страницы, нажмите на миниатюре кнопку “Подробнее“.

Описание сайта в приложении Freemer.

Для быстрого перехода на этот сайт со страницы описания нажмите “Играть“. Вот так всё просто!

На второе место в списке лучших VPN-сервисов я бы поставил CyberGhost 5 за то, что он:

  • кроссплатформенный – работает под Windows, Linux, OS X, Android и iOS;
  • ведет проксирование через сервера различных государств;
  • не ставит ограничений по объему трафика;
  • обеспечивает неплохую скорость соединения;
  • надежно скрывает исходные данные пользователя;
  • дает возможность подменять информацию об операционной системе и веб-браузере.

CyberGhost 5.

Из недостатков отмечу только показ рекламы (своеобразная плата за бесплатность) и не слишком быстрый поиск доступных серверов.

Настройки CyberGhost.

Другие приложения услуг VPN:

Spotflux – второй по популярности бесплатный VPN-сервис без ограничения трафика, однако забанен на некоторых видео- и игровых порталах.

TunnelBear – ограничивает трафик до 500 mb в месяц, не имеет никаких настроек, кроме выбора прокси, но работает быстрее CyberGhost 5.

Private Tunnel – в бесплатной версии тоже ограничивает трафик до 500 mb.

Анонимайзеры*

Использование веб-анонимайзеров – это простейший способ обхода блокировок. Анонимайзер представляет собой обычный сайт, который играет роль посредника между вами и заблокированным ресурсом: вы заходите на страницу, вводите в соответствующее поле адрес закрытого сайта, нажимаете кнопку перехода и оказываетесь там, где нужно.

Один из самых популярных российских веб-анонимайзеров – «Хамелеон». Его достоинства – быстрая связь, отсутствие рекламы и необходимости регистрации.
«Хамелеон» идеально подходит для доступа к социальным сетям. Чтобы зайти, например, на ВК, введите vk.com в указанное на скриншоте поле и нажмите «Go»

Как обойти блокировку сайтов с помощью анонимайзера Хамелеон.

Вот так будет выглядеть целевая страница:

Страница VK, открытая через Хамелеон.

Другие популярные веб-анонимайзеры:

Anonymouse.org

Anonymizer.ru

Hideme.ru

Обход блокировок с помощью анонимайзеров удобен и красив, но не лишен изъяна. Недостаток всех подобных сервисов – ограниченная поддержка: к примеру, для доступа на игровые и мультимедийные порталы они бесполезны. Часто в них плохо открываются многоструктурные веб-ресурсы – с многочисленными скриптами и сложными переходами. Бывает, что искажается дизайн страниц – смещаются блоки и расползается текст. Словом, анонимайзеры лучше использовать для того, подо что они «заточены».

*Со времени написания статьи часть упомянутых здесь анонимайзеров, к сожалению, закрылась. Однако уходят одни – появляются другие. Ищите – и вам воздастся!

Турбо-режим браузера

Турбо-режим, ускоряющий загрузку веб-контента, тоже используют для доступа к заблокированным сайтам. Правда, не ко всем и не везде. Работая в режиме турбо, браузер направляет трафик не по обычному пути, а через прокси-сервер (промежуточный сетевой узел), где происходит сжатие данных. Обход блокировки – это недокументированная функция и приятный подарок пользователям.

Опция «Turbo» есть по умолчанию в Opera, Yandex.Browser и некоторых веб-обозревателях для мобильных платформ. В остальные его нужно устанавливать как расширение.

В Опере кнопка активации турбо-режима находится в главном меню:

Главное меню Opera.

В Yandex.Browser функция включается в настройках:

Настройка Turbo в Yandex.Browser.

Турбо-расширение для Google Chrome называется «Data Saver» (Экономия трафика), а Mozilla Firefox, к сожалению, сегодня аналогов ему не имеет.

Расширения для браузеров

Для доступа к блокированным ресурсам удобно использовать анонимайзеры в виде браузерных расширений, которые направляют веб-трафик сначала на прокси-сервера, а оттуда – на просторы глобальной сети под измененными IP. Так, если сайт закрыт для посетителей из России, IP-адрес другого государства послужит для него «ключом от входной двери».

Расширение friGate CDN разработано для снятия блокировки ресурсов, попавших под санкции госорганов, кстати, сегодня в их числе наши любимые Рутрекер и Рутор. Список опальных страниц хранится в самом приложении, и пользователь имеет возможность его пополнять.

Прокси-сервера friGate находятся в разных государствах. При открытии запрещенной страницы в небольшом окошке будет показано, под флагом какой страны вы здесь находитесь. Если хотите выбрать другой сервер, щелкните по изображению флага.

friGate

friGate поддерживают браузеры Opera, Mozilla Firefox и Google Chrome.

Есть и другие расширения с похожими функциями:

Zenmate

Browsec

В отличие от friGate, Zenmate, Browsec и Hola шифруют и перенаправляют на разбросанные по миру сервера весь трафик браузера.

Tor

Последнее в сегодняшнем обзоре средство обхода блокировки – это анонимная сеть Tor. Она использует технологию «луковой маршрутизации», суть которой в том, что вся пересылаемая информация многократно (послойно) шифруется и проходит через цепь промежуточных узлов. Это обеспечивает высочайший уровень анонимности и гарантирует доступ к любым заблокированным сайтам, хотя заметно замедляет связь.

Для постоянного серфинга сети Tor, как правило, не нужен, но когда исчерпаны все возможности попасть на заветный ресурс – спасает только он.

***

И еще один вопрос волнует многих: используя средства обхода блокировки, не нарушаем ли мы закон? Нет! Ничто из того, о чем я рассказал в статье, в России не запрещено. По крайней мере, сегодня нам не грозят за это никакие наказания.

faqpc.ru

Обход блокировок сайтов для iOS устройств.

В данном руководстве подробно описаны и продемонстрированы способы обхода блокировок сайтов для устройств на iOS.

Если Вы не можете получить доступ к сайту или у Вас появляется надпись «Доступ запрещён» (доступ заблокирован провайдером по решению Роскомнадзора) — данное руководство поможет решить эту проблему.

 

I. Обход блокировок сайтов при помощи VPN

VPN (Virtual Private Network., Виртуальная частная сеть) — обобщённое название технологий, позволяющих сохранить конфиденциальность данных, изменить или скрыть местоположение, а также получить доступ к заблокированным ресурсам.

Способ №1. Opera VPN.

Opera VPN для мобильных устройств на iOS позволяет оставаться анонимным в Интернете, защищает при подключении к открытым Wi-Fi-сетям и предоставляет доступ к заблокированном контенту: веб-сайтам и приложениям.

1. Перейдите в магазин приложений App Store для загрузки Opera VPN (прим. кнопка ниже). В открывшемся окне нажмите Загрузить, затем Установить, после чего начнётся установка Opera VPN.
Установить Opera VPN

2. После установки, кликните на значке Opera VPN (Рис.1).

Рис.1

.

3. Нажмите Начать работу (Рис.2).

Рис.2

.

4. В появившемся окне нажмите Allow (Рис.3).

Рис.3

.

5. В окне запроса разрешения на отправку уведомлений нажмите Не разрешать (Рис.4).

Рис.4

.

6. В открывшемся окне, в правом верхнем углу нажмите крестик (Рис.5).

Рис.5

.

7. Нажмите Включить (Рис.6).

Рис.6

.

8. В верхней части экрана появится иконка с надписью VPN (Рис.7). Можно закрыть/свернуть приложение. Теперь заблокированные сайты станут доступны.

Рис.7

.

Способ №2. Hotspot Shield. 

Hotspot Shield — программное обеспечение для организации VPN, обеспечивающей безопасную передачу данных по шифрованному соединению, защищённому от прослушивания. Соединение устанавливается с одним из множества серверов компании, разбросанных по всему миру, которые присваивают пользователю временный IP-адрес, что позволяет использовать Hotspot Shield как полноценное средство обеспечения анонимности в Интернете и преодоления интернет-цензуры.

1. Перейдите в магазин приложений App Store для загрузки Hotspot Shield (прим. кнопка ниже). В открывшемся окне нажмите Загрузить, затем Установить, после чего начнётся установка Hotspot Shield.
Установить Hotspot Shield

2. После установки, кликните на значке Hotspot Shield (Рис.8).

Рис.8

.

3. В открывшемся окне, в правом верхнем углу нажмите крестик (Рис.9).

Рис.9

.

4. Нажмите крестик (Рис.10).

Рис.10

.

5. Нажмите на кнопку включения (прим. в центре экрана) (Рис.11).

Рис.11

.

6. В правом верхнем углу нажмите крестик (Рис.12).

Рис.12

.

7. В появившемся окне нажмите Allow (Рис.13).

Рис.13

.

8. После установления соединения появится таймер подключения, а в верхней части экрана появится иконка с надписью VPN. Можно закрыть/свернуть приложение. Теперь заблокированные сайты станут доступны. Для того, чтобы выключить Hotspot Shield — кликните на кнопке Выкл. с таймером (Рис.14).

Рис.14

.

Способ №3. Betternet.

Betternet — небольшая программа, которая через защищенный VPN меняет ваше местоположение в Интернет, позволяя анонимно находиться в Сети и предоставляет доступ к заблокированном контенту: веб-сайтам и приложениям.

1. Перейдите в магазин приложений App Store для загрузки Betternet (прим. кнопка ниже). В открывшемся окне нажмите Загрузить, затем Установить, после чего начнётся установка Betternet.
Установить Betternet

2. После установки, кликните на значке Betternet (Рис.15).

Рис.15

.

3. В открывшемся окне, в правом верхнем углу нажмите крестик (Рис.16).

Рис.16

.

4. Пролистайте (прим. вправо) информационные сообщения (Рис.17).

Рис.17

.

5. Нажмите INSTALL PROFILE (Рис.18).

Рис.18

.

6. В появившемся окне нажмите Allow (Рис.19).

Рис.19

.

7. В окне запроса разрешения на отправку уведомлений нажмите Don’t Allow (Рис.20).

Рис.20

.

8. Нажмите CONNECT (Рис.21).

Рис.21

.

9. В верхней части экрана появится иконка с надписью VPN (Рис.22). Можно закрыть/свернуть приложение. Теперь заблокированные сайты станут доступны.

Рис.22

.

II. Обход блокировок сайтов при помощи браузеров
Способ №1. Режим экономии трафика в Opera.

Принцип работы технологии состоит в том, что данные передаются через сжимающий (до 80 %) прокси-сервер компании Opera Software. Оpera Turbo может работать с любым типом соединения. Позволяет обходить блокировки сайтов, так как трафик проходит не напрямую, а через серверы Opera.

1. Откройте браузер Opera Mini (прим. если у Вас его нет — скачайте из магазина приложений App Store) (Рис.23).

Рис.23

.

2. В окне запроса разрешения на отправку уведомлений нажмите Не разрешать (Рис.24).

Рис.24

.

3. В правом нижнем углу нажмите на иконку Opera (Рис.25).

Рис.25

.

4. Нажмите на область Экономия включена Opera Turbo (Рис.26).

Рис.26

.

5. Используя кнопку переключатель, включите Блокировать рекламу, убедитесь, что режим Opera Turbo активен (Рис.27). Теперь заблокированные сайты станут доступны в этом браузере.

Рис.27

.

Способ №2. Режим Турбо в Яндекс.Браузер. 

Режим Турбо — это режим, который включается при медленном соединении с интернетом в браузере. Он ускоряет загрузку страниц и экономит трафик. Содержимое страницы, включая видео, сжимается на серверах Яндекса и затем передается в браузер. Позволяет обходить блокировки сайтов, так как трафик проходит не напрямую, а через серверы Яндекса.

1. Откройте браузер Яндекс.Браузер (прим. если у Вас его нет — скачайте из магазина приложений App Store) (Рис.28).

Рис.28

.

2. Откройте меню (Рис.29).

Рис.29

.

3. В открывшемся меню выберите Настройки (Рис.30).

Рис.30

.

4. Выберите Режим Турбо (Рис.31).

Рис.31

.

5. Выберите Включен (Рис.32).

Рис.32

.

6. В открывшемся окне выберите Добавить и включить (Рис.33).

Рис.33

.

7. Нажмите Allow (Рис.34).

Рис.34

.

8. В верхней части экрана появится иконка с надписью VPN (Рис.35). Теперь заблокированные сайты станут доступны.

Рис.35

.

Способ №3. Puffin Web Browser. 

К основным особенностям Puffin Web Browser относятся: Высокая скорость работы (за счёт облачных серверов), шифрование трафика, поддержка flash, предоставление доступа к заблокированном контенту (веб-сайтам и приложениям).

1. Откройте браузер Puffin (прим. если у Вас его нет — скачайте из магазина приложений App Store) (Рис.36).

Рис.36

.

2. Нажмите Далее (Рис.37).

Рис.37

.

3. Нажмите Далее (Рис.38).

Рис.38

.

4. Нажмите Далее (Рис.39).

Рис.39

.

5. Выберите Мобильный сайт (Рис.40).

Рис.40

.

6. В окне запроса разрешения на отправку уведомлений нажмите Не разрешать (Рис.41). Теперь заблокированные сайты станут доступны в этом браузере.

Рис.41

.

 Надеемся, что данное руководство было для Вас полезно!

.

lyapidov.ru

Как обойти блокировку сайтов провайдером

Всех активных пользователей интернета на Украине шокировал указ президента о запрете российской социальной сети Вконтакте. Помимо этого, на Украине заблокировали Одноклассники, Мейл.ру, Яндекс, и все сопутствующие сервисы данных компаний.

Мы предлагаем вашему вниманию пошаговую инструкцию по разблокировке доступа к запрещенным сайтам. Данное руководство актуально и для российских пользователей интернета, с его помощью можно вернуть доступ к Рутрекеру, Флибусте и множеству других торрентов и полезных сайтов!

Предлагается несколько вариантов того, как обойти блокировку сайтов в Украине:

Как обойти блокировку сайтов провайдером с помощью VPN 

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

Для установки такого соединения в браузере Google Chrome необходимо зайти в каталог расширений, путь к ним лежит через настройки.

Как только нужная опция будет найдена – необходимо зайти в поиск расширений, то есть попасть в интернет-магазин. В поисковой графе прописываем VPN и получим в ответ несколько расширений, которые помогут справиться с поставленной задачей.

Собственно говоря, откройте любое из них и устанавливайте, после включите и получите себе стабильную работу поисковика Яндекс и социальной сети Одноклассники как в былые времена.

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

Как только все эти нехитрые операции будут проведены, необходимо выбрать страну, через которую пойдет трафик, а вопрос как обойти блокировку сайтов провайдером будет уже не актуальный.

Можно выбрать еще другое расширение под названием HOLA! Однако он имеет недостаток, связанный в нарушением внешнего вида некоторых страниц. Из преимуществ можно выделить возможность быстрого просмотра различного медиаконтента, так как ускоряется загрузка потокового видео путем использования компьютеров иных юзеров, которые также установили плагин.

Помимо этих расширений VPN-подключение можно использовать немного иначе, воспользовавшись таким браузером, как Opera. Для настройки соединения необходимо зайти в настройки, найти вкладку безопасность и там поставить галочку на VPN.

Обход блокировки на смартфоне (VPN-приложения)

Стоит отметить, что для обхода блокировки ВК и Одноклассников с телефона существуют аналогичные сервисы, такие как Opera VPN, Turbo VPN, TunnelBear, ZenMate и другие. Найдите их в Android маркете, установите и подтвердите регистрацию в самом приложении (при необходимости).

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

Использование прокси-сервера

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

Доступ к заблокированной странице получают следующим образом: найти в интернете прокси-сервер, примером которых могут служить ProxFree, Hide My Ass, Ninjacloak и т.д., после чего в поле ввести адрес интересующей страницы. Спустя несколько секунд запрос отобразится на экране. В целом, использование VPN видится нам гораздо более удобным решением

Как открыть заблокированный сайт с помощью Tor

Существует программа под названием Tor, она-то здесь и нужна. Анонимная сеть, что занимается передачей трафика в шифрованном виде, а также дает гарантии на абсолютную анонимность.

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

Выбрав его, пройдет немного времени, конфигурация приложения будет завершена и готова к использованию. По сути это обычный браузер, в котором серфинг сети происходит аналогично Chrome, Opera, Яндекс-Браузер и т.д.

Теперь вы знаете, как зайти на заблокированные правительством сайты. Пользуйтесь свободным интернетом без абсурдных ограничений!

geeksus.ru

Обход блокировок РКН с помощью DNSTap и BGP / Habr

Тема довольно изъезжена, знаю. К примеру, есть отличная статья, но там рассматривается только IP-часть блоклиста. Мы же добавим еще и домены.

В связи с тем, что суды и РКН блокируют всё направо и налево, а провайдеры усиленно пытаются не попасть под штрафы, выписанные "Ревизорро" — сопутствующие потери от блокировок довольно велики. Да и среди "правомерно" заблокированных сайтов много полезных (привет, rutracker)

Я живу вне юрисдикции РКН, но на родине остались родители, родственники и друзья. Так что было решено придумать легкий для далеких от ИТ личностей способ обхода блокировок, желательно вовсе без их участия.

В этой заметке я не буду расписывать базовые сетевые вещи по шагам, а опишу общие принципы как можно реализовать эту схему. Так что знания как работает сеть вообще и в Linux в частности — must have.


Для начала освежим в памяти что же блокируется.

В выгружаемом XML от РКН несколько типов блокировок:


Мы их сведем для простоты к двум: IP и домен, а из блокировок по URL будем просто вытаскивать домен (точнее за нас это уже сделали).

Хорошие люди из Роскомсвободы реализовали прекрасный API, через который можно получать то, что нам нужно:



Для этого нам нужен какой-нибудь маленький зарубежный VPS, желательно с безлимитным траффиком — таких много по 3-5 баксов. Брать нужно в ближнем зарубежье чтобы пинг был не сильно большой, но опять-таки учитывать, что интернет и география не всегда совпадают. А так как никакого SLA за 5 баксов нет — лучше взять 2+ штуки у разных провайдеров для отказоустойчивости.

Далее нам необходимо настроить зашифрованный туннель от клиентского роутера до VPS. Я использую Wireguard как самый быстрый и простой в настройке т.к. клиентские роутеры у меня тоже на базе Linux (APU2 или что-то на OpenWRT). В случае каких-нибудь Mikrotik/Cisco можно использовать доступные на них протоколы вроде OpenVPN и GRE-over-IPSEC.


Можно, конечно, завернуть вообще весь интернет-траффик через зарубеж. Но, скорее всего, от этого сильно пострадает скорость работы с локальным контентом. Плюс требования к полосе пропускания на VPS будут сильно выше.

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

Для управления траффиком мы будем использовать протокол BGP и анонсировать маршруты до необходимых сетей с нашего VPS на клиентов. В качестве BGP-демона возьмём BIRD, как один из наиболее функциональных и удобных.


IP

С блокировками по IP всё понятно: просто анонсируем все заблокированные IP с VPS. Проблема в том, что подсетей в списке, который отдает API, около 600 тысяч, и подавляющее большинство из них — это хосты /32. Такое количество маршрутов может смутить слабые клиентские роутеры.

Поэтому было решено при обработке списка суммировать до сети /24 если в ней 2 и более хоста. Таким образом количество маршрутов сократилось до ~100 тысяч. Скрипт для этого будет дальше.


Домены

Тут сложнее и способов есть несколько. Например, можно поставить прозрачный Squid на каждом клиентском роутере и делать там перехват HTTP и подглядывание в TLS-хендшейк с целью получения запрашиваемого URL в первом случае и домена из SNI во втором.

Но из-за всяких новомодных TLS1.3+eSNI анализ HTTPS с каждым днем становится всё менее реальным. Да и инфраструктура со стороны клиента усложняется — придется использовать как минимум OpenWRT.

Поэтому я решил пойти по пути перехвата ответов на DNS-запросы. Тут тоже над головой начинает витать всякий DNS-over-TLS/HTTPS, но эту часть мы можем (пока что) контролировать на клиенте — либо отключить, либо использовать свой сервер для DoT/DoH.


Как перехватывать DNS?

Тут тоже может быть несколько подходов.


  • Перехват DNS-траффика через PCAP или NFLOG
    Оба эти способа перехвата реализованы в утилите sidmat. Но она давно не поддерживается и функционал очень примитивен, так что к ней нужно всё равно нужно писать обвязку.
  • Анализ логов DNS-сервера
    К сожалению, известные мне рекурсоры не умеют логгировать ответы, а только запросы. В принципе это логично, так как в отличии от запросов ответы имеют сложную структуру и писать их в текстовой форме трудновато.
  • DNSTap
    К счастью, многие из них уже поддерживает DNSTap для этих целей.

Что такое DNSTap?

Это клиент-серверный протокол, основанный на Protocol Buffers и Frame Streams для передачи с DNS-сервера на некий коллектор структурированных DNS-запросов и ответов. По сути DNS-сервер передает метаданные запросов и ответов (тип сообщения,IP клиента/сервера и так далее) плюс полные DNS-сообщения в том (бинарном) виде в котором он работает с ними по сети.

Важно понимать, что в парадигме DNSTap DNS-сервер выступает в роли клиента, а коллектор — в роли сервера. То есть DNS-сервер подключается к коллектору, а не наоборот.

На сегодняшний день DNSTap поддерживается во всех популярных DNS-серверах. Но, например, BIND во многих дистрибутивах (вроде Ubuntu LTS) часто собран почему-то без его поддержки. Так что не будем заморачиваться пересборкой, а возьмём более легкий и быстрый рекурсор — Unbound.


Чем ловить DNSTap?

Есть некоторое количество CLI-утилит для работы с потоком DNSTap-событий, но для решения нашей задачи они подходят плохо. Поэтому я решил изобрести свой велосипед, который будет делать всё что необходимо: dnstap-bgp

Алгоритм работы:


  • При запуске загружает из текстового файла список доменов, инвертирует их (habr.com -> com.habr), исключает битые строки, дубликаты и поддомены (т.е. если в списке есть habr.com и www.habr.com — будет загружен только первый) и строит префиксное дерево для быстрого поиска по этому списку
  • Выступая в роли DNSTap-сервера ждет подключения от DNS-сервера. В принципе он поддерживает как UNIX- так и TCP-сокеты, но известные мне DNS-сервера умеют только в UNIX-сокеты
  • Поступающие DNSTap-пакеты десериализуются сначала в структуру Protobuf, а затем само бинарное DNS-сообщение, находящееся в одном из Protobuf-полей, парсится до уровня записей DNS RR
  • Проверяется есть ли запрашиваемый хост (или его родительский домен) в загруженном списке, если нет — ответ игнорируется
  • Из ответа выбираются только A/AAAA/CNAME RR и из них вытаскиваются соответствующие IPv4/IPv6 адреса
  • IP-адреса кешируются с настраиваемым TTL и анонсируются во все сконфигурированные BGP-пиры
  • При получении ответа, указывающего на уже закешированный IP — его TTL обновляется
  • После истечения TTL запись удаляется из кеша и из BGP-анонсов

Дополнительный функционал:


  • Перечитывание списка доменов по SIGHUP
  • Синхронизация кеша с другими экземплярами dnstap-bgp через HTTP/JSON
  • Дублирование кеша на диске (в базе BoltDB) для восстановление его содержимого после перезапуска
  • Поддержка переключения в иной network namespace (зачем это нужно будет описано ниже)
  • Поддержка IPv6

Ограничения:


  • IDN домены пока не поддерживаются
  • Мало настроек BGP

Я собрал RPM и DEB пакеты для удобной установки. Должны работать на всех относительно свежих OS с systemd, т.к. зависимостей у них никаких нет.


Итак, приступим к сборке всех компонентов воедино. В результате у нас должна получиться примерно такая сетевая топология:

Логика работы, думаю, понятна из диаграммы:


  • У клиента настроен наш сервер в качестве DNS, причем DNS запросы тоже должны ходить по VPN. Это нужно для того чтобы провайдер не мог использовать перехват DNS для блокировки.
  • Клиент при открытии сайта посылает DNS-запрос вида "а какие IP у xxx.org"
  • Unbound резолвит xxx.org (или берет из кеша) и отправляет ответ клиенту "у xxx.org такие-то IP", параллельно дублируя его через DNSTap
  • dnstap-bgp анонсирует эти адреса в BIRD по BGP в том случае если домен есть в списке заблокированных
  • BIRD анонсирует маршрут до этих IP с next-hop self клиентскому роутеру
  • Последующие пакеты от клиента к этим IP идут уже через туннель

На сервере для маршрутов к заблокированным сайтам у меня внутри BIRD используется отдельная таблица и с ОС она никак не пересекается.

В этой схеме есть недостаток: первый SYN пакет от клиента, скорее всего, успеет уйти через отечественного провайдера т.к. маршрут анонсируется не мгновенно. И тут возможны варианты в зависимости от того как провайдер делает блокировку. Если он просто дропает траффик, то проблем нет. А если он редиректит его на какой-то DPI, то (теоретически) возможны спецэффекты.

Также возможны чудеса с несоблюдением клиентами DNS TTL, что может привести к тому что клиент будет юзать какие-то устаревшие записи из своего протухшего кеша вместо того чтобы спросить Unbound.

На практике у меня ни первое ни второе не вызывало проблем, but your mileage may vary.


Настройка сервера

Для удобства раскатывания я написал роль для Ansible. Она может настраивать как сервера, так и клиенты на базе Linux (рассчитано на deb-based дистрибутивы). Все настройки достаточно очевидны и задаются в inventory.yml. Эта роль вырезана из моего большого плейбука, поэтому может содержать ошибки — pull requests welcome 🙂

Пройдёмся по основным компонентам.


BGP

При запуске двух BGP-демонов на одном хосте возникает фундаментальная проблема: BIRD никак не хочет поднимать BGP-пиринг с локалхостом (или с любым локальным интерфейсом). От слова совсем. Гугление и чтение mailing-lists не помогло, там утверждают что это by design. Возможно есть какой-то способ, но я его не нашёл.

Можно попробовать другой BGP-демон, но мне нравится BIRD и он используется везде у меня, не хочется плодить сущности.

Поэтому я спрятал dnstap-bgp внутрь network namespace, которое связано с корневым через veth интерфейс: это как труба, концы которой торчат в разных namespace. На каждый из этих концов мы вешаем приватные p2p IP-адреса, которые за пределы хоста не выходят, поэтому могут быть любыми. Это тот же механизм который используется для доступа к процессам внутри любимого всеми Docker и других контейнеров.

Для этого был написан скрипт и в dnstap-bgp был добавлен уже описанный выше функционал перетаскивания себя за волосы в другой namespace. Из-за этого его необходимо запускать под root либо выдать бинарнику CAP_SYS_ADMIN через команду setcap.


Пример скрипта для создания namespace
#!/bin/bash

NS="dtap"

IP="/sbin/ip"
IPNS="$IP netns exec $NS $IP"

IF_R="veth-$NS-r"
IF_NS="veth-$NS-ns"

IP_R="192.168.149.1"
IP_NS="192.168.149.2"

/bin/systemctl stop dnstap-bgp || true

$IP netns del $NS > /dev/null 2>&1
$IP netns add $NS

$IP link add $IF_R type veth peer name $IF_NS
$IP link set $IF_NS netns $NS

$IP addr add $IP_R remote $IP_NS dev $IF_R
$IP link set $IF_R up

$IPNS addr add $IP_NS remote $IP_R dev $IF_NS
$IPNS link set $IF_NS up

/bin/systemctl start dnstap-bgp

dnstap-bgp.conf
namespace = "dtap"
domains = "/var/cache/rkn_domains.txt"
ttl = "168h"

[dnstap]
listen = "/tmp/dnstap.sock"
perm = "0666"

[bgp]
as = 65000
routerid = "192.168.149.2"

peers = [
    "192.168.149.1",
]

bird.conf
router id 192.168.1.1;

table rkn;

# Clients
protocol bgp bgp_client1 {
    table rkn;
    local as 65000;
    neighbor 192.168.1.2 as 65000;
    direct;
    bfd on;
    next hop self;
    graceful restart;
    graceful restart time 60;
    export all;
    import none;
}

# DNSTap-BGP
protocol bgp bgp_dnstap {
    table rkn;
    local as 65000;
    neighbor 192.168.149.2 as 65000;
    direct;
    passive on;
    rr client;
    import all;
    export none;
}

# Static routes list
protocol static static_rkn {
    table rkn;
    include "rkn_routes.list";
    import all;
    export none;
}

rkn_routes.list
route 3.226.79.85/32 via "ens3";
route 18.236.189.0/24 via "ens3";
route 3.224.21.0/24 via "ens3";
...

DNS

По умолчанию в Ubuntu бинарник Unbound зажат AppArmor-профилем, который запрещает ему коннектиться ко всяким там DNSTap-сокетам. Можно либо удалить нафиг этот профиль, либо отключить его:

# cd /etc/apparmor.d/disable && ln -s ../usr.sbin.unbound .
# apparmor_parser -R /etc/apparmor.d/usr.sbin.unbound

Это, наверное, надо добавить в плейбук. Идеально, конечно, поправить профиль и выдать нужные права, но мне было лень.


unbound.conf
server:
    chroot: ""
    port: 53
    interface: 0.0.0.0
    root-hints: "/var/lib/unbound/named.root"
    auto-trust-anchor-file: "/var/lib/unbound/root.key"
    access-control: 192.168.0.0/16 allow

remote-control:
    control-enable: yes
    control-use-cert: no

dnstap:
    dnstap-enable: yes
    dnstap-socket-path: "/tmp/dnstap.sock"
    dnstap-send-identity: no
    dnstap-send-version: no

    dnstap-log-client-response-messages: yes

Скачивание и обработка списков

Скрипт для скачивания и обработки списка IP-адресов
Он скачивает список, суммаризует до префикса pfx. В dont_add и dont_summarize можно сказать IP и сети, которые нужно пропустить или не суммаризовать. Мне это было нужно т.к. подсеть моего VPS оказалась в блоклисте 🙂

Самое смешное что API РосКомСвободы блокирует запросы с дефолтным юзер-агентом Питона. Видать скрипт-кидди достали. Поэтому меняем его на Огнелиса.

Пока что он работает только с IPv4 т.к. доля IPv6 невелика, но это будет легко исправить. Разве что придется использовать еще и bird6.


rkn.py
#!/usr/bin/python3

import json, urllib.request, ipaddress as ipa

url = 'https://api.reserve-rbl.ru/api/v2/ips/json'
pfx = '24'

dont_summarize = {
    # ipa.IPv4Network('1.1.1.0/24'),
}

dont_add = {
    # ipa.IPv4Address('1.1.1.1'),
}

req = urllib.request.Request(
    url,
    data=None, 
    headers={
        'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36'
    }
)

f = urllib.request.urlopen(req)
ips = json.loads(f.read().decode('utf-8'))

prefix32 = ipa.IPv4Address('255.255.255.255')

r = {}
for i in ips:
    ip = ipa.ip_network(i)
    if not isinstance(ip, ipa.IPv4Network):
        continue

    addr = ip.network_address

    if addr in dont_add:
        continue

    m = ip.netmask
    if m != prefix32:
        r[m] = [addr, 1]
        continue

    sn = ipa.IPv4Network(str(addr) + '/' + pfx, strict=False)

    if sn in dont_summarize:
        tgt = addr
    else:
        tgt = sn

    if not sn in r:
        r[tgt] = [addr, 1]
    else:
        r[tgt][1] += 1

o = []
for n, v in r.items():
    if v[1] == 1:
        o.append(str(v[0]) + '/32')
    else:
        o.append(n)

for k in o:
    print(k)

Скрипт для обновления
Он у меня запускается по крону раз в сутки, может стоит дергать раз в 4 часа т.к. это, по-моему, период обновления который РКН требует от провайдеров. Плюс, есть какие-то еще суперсрочные блокировки у них, которые может и быстрее прилетают.

Делает следующее:


  • Запускает первый скрипт и обновляет список маршрутов (rkn_routes.list) для BIRD
  • Релоадит BIRD
  • Обновляет и подчищает список доменов для dnstap-bgp
  • Релоадит dnstap-bgp

rkn_update.sh
#!/bin/bash

ROUTES="/etc/bird/rkn_routes.list"
DOMAINS="/var/cache/rkn_domains.txt"

# Get & summarize routes
/opt/rkn.py | sed 's/\(.*\)/route \1 via "ens3";/' > $ROUTES.new

if [ $? -ne 0 ]; then
    rm -f $ROUTES.new
    echo "Unable to download RKN routes"
    exit 1
fi

if [ -e $ROUTES ]; then
    mv $ROUTES $ROUTES.old
fi

mv $ROUTES.new $ROUTES

/bin/systemctl try-reload-or-restart bird

# Get domains
curl -s https://api.reserve-rbl.ru/api/v2/domains/json -o - | jq -r '.[]' | sed 's/^\*\.//' | sort | uniq > $DOMAINS.new

if [ $? -ne 0 ]; then
    rm -f $DOMAINS.new
    echo "Unable to download RKN domains"
    exit 1
fi

if [ -e $DOMAINS ]; then
    mv $DOMAINS $DOMAINS.old
fi

mv $DOMAINS.new $DOMAINS

/bin/systemctl try-reload-or-restart dnstap-bgp

Они были написаны не особо задумываясь, поэтому если видите что можно улучшить — дерзайте.


Настройка клиента

Тут я приведу примеры для Linux-роутеров, но в случае Mikrotik/Cisco это должно быть еще проще.

Для начала настраиваем BIRD:


bird.conf
router id 192.168.1.2;
table rkn;

protocol device {
    scan time 10;
};

# Servers
protocol bgp bgp_server1 {
    table rkn;
    local as 65000;
    neighbor 192.168.1.1 as 65000;
    direct;
    bfd on;
    next hop self;
    graceful restart;
    graceful restart time 60;
    rr client;
    export none;
    import all;
}

protocol kernel {
    table rkn;
    kernel table 222;
    scan time 10;
    export all;
    import none;
}

Таким образом мы будем синхронизировать маршруты, полученные из BGP, с таблицей маршрутизации ядра за номером 222.

После этого достаточно попросить ядро глядеть в эту табличку перед тем как заглядывать в дефолтную:

# ip rule add from all pref 256 lookup 222
# ip rule
0:  from all lookup local
256:    from all lookup 222
32766:  from all lookup main
32767:  from all lookup default

Всё, осталось настроить DHCP на роутере на раздачу туннельного IP-адреса сервера в качестве DNS и схема готова.


При текущем алгоритме формирования и обработки списка доменов в него попадает, в том числе, youtube.com и его CDNы.

А это приводит к тому что все видео будут ехать через VPN, что может забить весь канал. Возможно стоит составить некий список популярных доменов-исключений, которые блокировать у РКН пока что кишка тонка. И пропускать их при парсинге.


Описанный способ позволяет обходить практические любые блокировки, которые реализуют провайдеры на данный момент.

В принципе, dnstap-bgp можно использовать для любых других целей где необходим некий уровень управления траффиком на основе доменного имени. Только нужно учитывать что в наше время на одном и том же IP-адресе может висеть тысяча сайтов (за каким-нибудь Cloudflare, например), так что этот способ имеет довольно низкую точность.

Но для нужд обхода блокировок этого вполне достаточно.

Дополнения, правки, пуллреквесты — приветствуются!

habr.com

Ваш комментарий будет первым

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *