Обход блокировок используя VPN и роутер Mikrotik

 

Недавно я приобрел новый роутер Mikrotik hAP ac lite и услышал что можно настроить бесшовный обход блокировок с автоматической загрузкой заблокированных IP адресов. Т.е. обычный трафик идет как всегда, а вот в случае если мы обращаемся к заблокированному ресурсу, роутер это понимает и направляет трафик через VPN.

 

VPN

Я решил настроить pptp или openvpn на своем сервере, но не вышло, там у меня отключен tun/tap и nat. Потому пришлось обратиться к платным VPN-провайдерам. Первым делом я пошел к TunnelBear которым уже пользовался, но из-за настроек их VPN-сервером, мне не удалось к ним подключиться. К сожалению роутер не поддерживате lzo и SHA256. Пришлось искать другой и я нашел StrongVPN, у них даже есть инструкция как настроить VPN на роутерах Mikrotik. Здесь важно снять или не ставить галочку напротив default route потому что мы будем использовать VPN как запасной канал.

После настройки необходимо добавить правила для роутера, идем IP — Firewall — Mangle — Add

  • General: Src. Address меняем на свой, у меня он был такой 192.168.88.10-192.168.88.254
  • Advanced: Dst. Address List на rkn
  • Action: Action — mark routing, New Routing Mark — rkn_mark, и ставим галочку Passthrough

Теперь когда мы пометили пакеты, нужно создать для них правило, идем IP — Routes — ADD и на вкладке General настраиваем:

  • Dst.Address — 0.0.0.0/0
  • Gateway — <Ваш VPN>
  • Type — unicast
  • Routing Mark — rkn_mark <— та метка что мы раньше создали

И теперь добавляем маскарадинг IP — Firewall — NAT — Add :

  • General: Out. Interface <Ваш VPN>
  • Action: Action — masquerade

Теперь единственное что осталось сделать это импортировать Address List.

 

Импорт Address List

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

Итак, я создал репозиторий в который автоматически выгружается самый свежий список заблокированных ресурсов в виде скрипта для импортирования, с ним мы и будем работать. Идем в System — Scripts — Add

{
/tool fetch url="https://raw.githubusercontent.com/Driim/mikrotik_rkn/master/subnets.rsc" mode=https
}

Обзываем этот скрипт DownloadSubnets и сохраняем, этот скрипт просто скачивает subnets.rsc, следующий скрипт немного сложней, создаем новый скрипт:

:if ([:len [/file find name=subnets.rsc]] > 0) do={
/ip firewall address-list remove [/ip firewall address-list find list="rkn"]
import file=subnets.rsc
/file remove subnets.rsc
}

Этот скрипт, проверяет наличие файла subnets.rsc, если файл есть, то он удаляет все старые записи списка rkn и импортирует новые, после чего удаляет файл. Обзываем скрипт SetSubnets и сохраняем.

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

 

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

dreamway89

dreamway89 wrote 29 posts

Post navigation


Comments

  • george

    все сделал по инструкции, скрипт SetSubnets вешает роутер (CPU 100%)

    • dreamway89

      Ну на некоторое время конечно, скрипт добавляет около 20 тыс. подсетей и пока это происходит роутер занят на 100%, но это занимает от силы минуту-две и будет происходить раз в день, в 5 утра(если делали все как у меня)

      • Sergey

        Приветствую!
        Не сталкивались с такой историей, что добавление 100 000 подсетей не отрабатывает?
        Микротик шуршит 10 минут и все 🙁

        • dreamway89

          Вообще, когда список разросся до 40 тыс подсетей роутер уже стал странно себя вести, потому я поменял немного скрипты, что бы список был около 20 тыс. подсетей.

  • Alexander

    Не могли бы добавить в список адресов 91.132.60.11/32

    • dreamway89

      Я не добавляю адреса в список. Список формируется автоматически на основе данных от https://github.com/zapret-info/z-i
      Но вы можете создать свой список на роутере, используя этот мануал(просто поменять его имя) и вручную добавить в address list все интересующие вас IP адреса.

  • Georgio

    В таком варианте, при перезагрузке роутера старый список удаляется, а новый ждет выполнения 1d
    Как сделать так, чтобы или старый список сохранялся при пререзагрузке или событие наступало при загрузке при этом сохраняя цикличность запуска скрипта

    • dreamway89

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

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

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>