Недавно я приобрел новый роутер 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 и необходимые вам ресурсы снова станут доступны.
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
Я честно говоря не знаю, меня вряд ли можно назвать экспертом в роутерах микротик, может как-нибудь займусь этим вопросом.