В этом пошаговом руководстве я расскажу, как настроить Mikrotik, чтобы запрещённые сайты автоматом открывались через этот VPN и вы могли избежать танцев с бубнами: один раз настроил и все работает.
В качестве VPN я выбрал SoftEther: он настолько же прост в настройке как и RRAS и такой же быстрый. На стороне VPN сервера включил Secure NAT, других настроек не проводилось.
В качестве альтернативы рассматривал RRAS, но Mikrotik не умеет с ним работать. Соединение устанавливается, VPN работает, но поддерживать соединение без постоянных реконнектов и ошибок в логе Mikrotik не умеет.
Настройка производилась на примере RB3011UiAS-RM на прошивке версии 6.46.11.
Теперь по порядку, что и зачем.
1. Устанавливаем VPN соединение
В качестве VPN решения был выбран, конечно, SoftEther, L2TP с предварительным ключом. Такого уровня безопасности достаточно кому угодно, потому что ключ знает только роутер и его владелец.
Переходим в раздел interfaces. Сначала добавляем новый интерфейс, а потом вводим ip, логин, пароль и общий ключ в интерфейс. Жмем ок.
То же самое командой:
/interface l2tp-client
name="LD8" connect-to=45.134.254.112 user="Administrator" password="PASSWORD" profile=default-encryption use-ipsec=yes ipsec-secret="vpn"
SoftEther заработает без изменения ipsec proposals и ipsec profiles, их настройку не рассматриваем, но скриншоты своих профилей, на всякий случай, автор оставил.
Для RRAS в IPsec Proposals достаточно изменить PFS Group на none.
Теперь нужно встать за NAT этого VPN сервера. Для этого нам нужно перейти в IP > Firewall > NAT.
Тут включаем masquerade для конкретного, или всех PPP интерфейсов. Роутер автора подключен сразу к трём VPN’ам, поэтому сделал так:
То же самое командой:
/ip firewall nat
chain=srcnat action=masquerade out-interface=all-ppp
2. Добавляем правила в Mangle
Первым делом хочется, конечно, защитить все самое ценное и беззащитное, а именно DNS и HTTP трафик. Начнем с HTTP.
Переходим в IP > Firewall > Mangle и создаем новое правило.
В правиле, Chain выбираем Prerouting.
Если перед роутером стоит Smart SFP или еще один роутер, и вы хотите к нему подключаться по веб интерфейсу, в поле Dst. Address нужно ввести его IP адрес или подсеть и поставить знак отрицания, чтобы не применять Mangle к адресу или к этой подсети. У автора стоит SFP GPON ONU в режиме бриджа, таким образом автор сохранил возможность подключения к его вебморде.
По умолчанию Mangle будет применять свое правило ко всем NAT State’ам, это сделает проброс порта по вашему белому IP невозможным, поэтому в Connection NAT State ставим галочку на dstnat и знак отрицания. Это позволит нам отправлять по сети исходящий трафик через VPN, но все еще прокидывать порты через свой белый IP.
Далее на вкладке Action выбираем mark routing, обзываем New Routing Mark так, чтобы было в дальнейшем нам понятно и едем дальше.
То же самое командой:
/ip firewall mangle
add chain=prerouting action=mark-routing new-routing-mark=HTTP passthrough=no connection-nat-state=!dstnat protocol=tcp dst-address=!192.168.1.1 dst-port=80
Теперь переходим к защите DNS. В данном случае нужно создать два правила. Одно для роутера, другое для устройств подключенных к роутеру.
Если вы пользуетесь встроенным в роутер DNS, что делает и автор, его нужно тоже защитить. Поэтому для первого правила, как и выше мы выбираем chain prerouting, для второго же нужно выбрать output.
Output это цепь которые использует сам роутер для запросов с помощью своего функционала. Тут все по аналогии с HTTP, протокол UDP, порт 53.
То же самое командами:
/ip firewall mangle
add chain=prerouting action=mark-routing new-routing-mark=DNS passthrough=no protocol=udp
add chain=output action=mark-routing new-routing-mark=DNS-Router passthrough=no protocol=udp dst-port=53
3. Строим маршрут через VPN
Переходим в IP > Routes и создаем новые маршруты.
Маршрут для маршрутизации HTTP по VPN. Указываем название наших VPN интерфейсов и выбираем Routing Mark.
На этом этапе вы уже почувствовали, как ваш оператор перестал встраивать рекламу в ваш HTTP трафик.
То же самое командой:
/ip route
add dst-address=0.0.0.0/0 gateway=LD8 routing-mark=HTTP distance=2 comment=HTTP
Ровно так же будут выглядеть правила для защиты DNS, просто выбираем нужную метку:
Тут вы ощутили, как ваши DNS запросы перестали прослушивать. То же самое командами:
/ip route
add dst-address=0.0.0.0/0 gateway=LD8 routing-mark=DNS distance=1 comment=DNS
add dst-address=0.0.0.0/0 gateway=LD8 routing-mark=DNS-Router distance=1 comment=DNS-Router
Ну под конец, разблокируем Rutracker. Вся подсеть принадлежит ему, поэтому указана подсеть.
Вот настолько было просто вернуть себе интернет. Команда:
/ip route
add dst-address=195.82.146.0/24 gateway=LD8 distance=1 comment=Rutracker.Org
Ровно этим же способом, что и с рутрекером вы можете прокладывать маршруты корпоративных ресурсов и других заблокированных сайтов.
Автор надеется, что вы оцените удобство захода на рутрекер и корпоративный портал в одно и тоже время не снимая свитер.
pewpew
А можно такую-же, но без VPN, например, как в GoodbyeDPI? Цены бы не было.
dartraiden
github.com/bol-van/zapret
Renaissance
Работает на OpenWRT без проблем, вообще красота. Никуда ничего не заворачивается (есть вариант с проксированием), все обрабатывается локально и никакие списки не нужны по сути. Моему провайдеру оказалось достаточно смены DNS и nfqws в простом режиме disorder или split.
RouterOS конечно не поддерживает, но есть Metarouter… правда не уверен что это будет нормально работать.
20ivs
Работать не будет совсем, т.к. относительно недавно Metarouter выпилили из RouterOS, к сожалению.
Renaissance
Странно, не вижу нигде в Changelog про удаление. В Stable и Testing MetaROUTER на месте. Про ROS7 ничего не могу сказать, но она еще не готова просто-напросто.
20ivs
Действительно, не верно трактовал инфу в ветке об CCR1036. RB*** и HAP** это не касается, видимо. Дико извиняюсь.
ClearAirTurbulence
Для меня закгадка этот GoodbyeDPI. Сколько не пробовал на разных провайдерах, ни разу не работало…
Alligattor
Там есть несколько режимов и каждый можно проверить на своем провайдере, затем задействовать это как службу и радоваться. На Ростелекоме работает, на двух из воронежских провайдеров.