Обход блокировки на mikrotik

Добрый день. Не нашёл тему про настройку обхода блокировки на роутерах Mikrotik и решил написать свою инструкцию. Может кому пригодится.

  1. Скачиваем конфигурационный файл .ovpn и открываем его c помощью NotePad++
  2. Из него нам нужно вытащить клиентский сертификат и ключ. Выделяем сертификат, который заключён в тег <cert></cert>, начиная с “-----BEGIN CERTIFICATE-----” и заканчивая “-----END CERTIFICATE-----”.
    Копируем, создаём новый текстовый файл, вставляем туда и сохраняем под именем, например antizapret.crt. Тоже проделываем с ключом, который заключён в тег <key></key>, и сохраняем с именем antizapret.key.
  3. Теперь нам нужно подключиться к вашему роутеру Mikrotik с помощью Winbox и положить в него созданные сертификат и ключ. Открываем меню Files и перетаскиваем файлы в папку flash.
  4. Добавляем сертификат с ключом в хранилище:
    Открываем меню System => Certificates, нажимаем во вкладке Certificates на Import и выбираем в поле Only File наш сертификат flash/antizapret.crt, нажимаем Import. В списке появится сертификат с флагом T. Теперь аналогично добавим ключ flash/antizapret.key. Заметьте, что у сертификата добавился флаг K.
  5. Теперь создадим профиль для подключения:
    Открываем меню PPP, переходим во вкладку Profiles, нажимаем плюсик. Обзываем профиль как-нибудь понятно, например profile_antizapret. Все настройки оставим по-умолчанию.
  6. Создадим само подключение к OpenVPN:
    Нажимаем плюсик и в выпадающем меню выбираем OVPN Client. Обзываем понятным именем, например ovpn-antizapret.
    Переходим во вкладку Dial Out и заполняем данными сверяясь с файлом конфигурации.
    Connect To: vpn.antizapret.prostovpn.org
    Port оставляем 1194
    Mode оставляем ip
    User пишем любой, например user
    Password не нужен
    Profile выбираем созданный на предыдущем шаге profile_antizapret
    Certificate выбираем тот, что добавили antizapret.crt_0
    Auth. оставим sha1
    Cipher меняем на aes 128, иначе не пройдёт авторизация
    Use Peer DNS обязательно выставляем в exclusively, чтобы при подключении все DNS-запросы шли через туннель. Иначе заблокированные сайты останутся заблокированными.
    Add Default Route галку не ставим
    Нажимаем ОК и должно сразу пройти подключение, о чём нам скажет флаг R и статус connected, при двойном клике по созданному подключению.
    Вот и всё. Теперь при подключении OpenVPN будет использоваться DNS туннеля, и заблокированные сайты будут открываться на любом устройстве, подключенном к роутеру.

От себя я бы ещё добавил очистку dns-кэша при каждом подключении и отключении VPN-соединения. Для этого нужно опять открыть PPP, перейти на вкладку Profiles, открыть наш профиль profile-antizapret, перейти на вкладку Scripts и добавить в поля On UP и On Down следующую строку:
/ip dns cache flush

Спасибо, добавил на сайт.

Подскажите, на какой версии RouterOS проделывали эти операции. И отдельно прописывали какие-то еще маршруты?

Antizapret ovpn-client самостоятельно маршруты добавит и будет удалять, если кусок команды из этой заметки будете использовать будет еще круче.

/ip dns cache flush

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

Под MIKROTIK HAP AC² данный способ пойдёт? В отзывах пишут что у данной модели ограниченный функционал openvpn (не поддерживает сжатие и определённые типы аутентификации).

Настраивалось как раз на hap ac2

volq, большое спасибо за приведенную инструкцию.
Попробовал настроить MIKROTIK HAP AC² RouterOS 6.47.3.
Интерфейс opvn-antizapret запустился, но блокировки не снялись.
Провайдер МГТС. В чем может быть проблема?

Пробуйте добавить Маскарад для интерфейса: opvn-antizapret

Вот так: /ip firewall nat add chain=srcnat action=masquerade out-interface=opvn-antizapret

И еще позаботьтесь о DNS, чтобы обход работал - все ваши устройства в сети должны использовать DNS-ресолвер от Антизапрета.

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

Делаю так,
Очищаю список Servers в разделе IP - DNS
В результате там должно остаться только Dynamic Servers
Выглядит адрес примерно вот так 192.168.104.1
Включаю пункт Allow Remote Requets

И добавляю правила такие:
/ip firewall nat add chain=dstnat action=redirect protocol=tcp dst-port=53,5353,1253
/ip firewall nat add chain=dstnat action=redirect protocol=udp dst-port=53,5353,1253

На случай непредвиденных проблем, отключения сервера Антизапрета и чего либо еще я оставляю несколько DNS ресолверов в настройках IP - DHCP Server - Networks - Выбираем свой DHCP сервер - DNS Servers, чтобы быстро можно было отключить два правила Файрвола, которые выше, и интернет продолжил работать как раньше, но уже без обхода блокировок, и обратно так же быстро вернуть настройки. Выключил - Включил.

Большое спасибо! Ваш совет сработал!

В прошивке версии 6.44.5 нет выпадающего списка Use Peer DNS. Как быть?

А что там, галочка? Тогда её ставь.

Здравствуйте. У меня настроены 2 бриджа с разными портами в каждом. И после того как я всё добавил, антизапрет заработал на первом бридже, хотя должен на втором. Как это исправить?

Какие dns адреса используют клиенты первого и второго бриджа?

Уже разобрался, спасибо)

1 Like

Интересная проблема возникла. Когда активен обход на микротике, не могу получить доступ к домену, который обслуживается на cloudflare. Выдаёт ошибку dns_probe_finished_nxdomain. Как только вводишь другие dns серверы (например гугловский или от cloudflare), то работает. Но, естественно, тогда не работает обход блокировок. Как это исправить?

Возникла проблема. Все настроено, как написано и все работало около недели. Потом перестали работать только заблокированные ресурсы.
Подключение к VPN - есть.
DNS Антизапрета получен.
Никаких других ДНС в системе нет.
При отключении от VPN - интернет не работает совсем с ошибкой по ДНС, при подключении все сайты работают, кроме заблокированных

Спасибо, разобрался. Была проблема с файрволом на маршрутизаторе

Приветствую, после добавления этого правила у клиента l2tp (android) в обще все перестает открываться.

Проверьте какой DNS-сервер получил микротик: IP - DNS, Dynamic Servers
Проверьте IP - Firewall - Filter Rules, не закрыт ли порт 53

Укажите в вашем правиле scr-address=“пул ip вашей локальной сети”
Либо в in-interface=“интерфейс вашей локальной сети”

Я редиректы не использую. При отключении и включении ВПН прекрасно справляется скрипт на очищение ДНС. Я уже и забыл, что у меня антизапрет настроен, пока вы не написали)