Настройка VPN на MikroTik и маршрутизация только определенного трафика

Просили пост, пилю пост.


Цель поста - рассказать, как на роутерах MikroTik настроить VPN и пускать через него только определенный трафик. Например, только instagram, youtube, при этом весь остальной "интернет" не трогать.


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

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

https://superuser.com/questions/999196/mikrotik-and-vpn-for-specific-web-sites-only


Настраивать будем через winbox на примере роутера RB4011iGS+5HacQ2HnD (много буков, но настройка, скорее всего, для всех микротиков будет одинаковая).


В качестве VPN провайдера я использую frootvpn, подключение типа PPTP.

Через Winbox подключение к VPN создается очень просто:

Заходим на вкладку PPP -> Interface нажимаем на синий плюсик, выбираем PPTP Client (здесь можно посмотреть инструкции конкретно у вашего VPN провайдера, если он предоставляет не PPTP, а что-то еще)


Указываем имя соединения на вкладке General, так же я сразу несколько опустил значение MTU.

Настройка VPN на MikroTik и маршрутизация только определенного трафика VPN, Сети, IT, Mikrotik, Инструкция, Роутер, Длиннопост

На вкладке Dial Out указываем хост VPN сервера, к которому будем подключаться, имя пользователя и пароль. Профиль я оставил дефолтный.

Важно! - здесь нужно обязательно снять галку Add Default Route, если хотите пускать через VPN только определенный трафик. Если ее поставить, через VPN пойдет весь трафик.

Настройка VPN на MikroTik и маршрутизация только определенного трафика VPN, Сети, IT, Mikrotik, Инструкция, Роутер, Длиннопост

Тыкаем Apply, если все хорошо, соединение пройдет успешно (как на картинке выше - running, Status: connected).


Далее нам нужно открыть вкладку IP -> Routes и снова нажать на синий плюсик. Если в предыдущем пункте не была убрана галка Add Default Route, здесь будет прописан маршрут, но мы ее убрали, поэтому добавим его сами только для определенной метки, которую настроем позже.

В качестве Gateway указываем имя созданного нами подключения, в Dst. Adres оставляем дефолтные нолики, обязательно указываем Routing Mark и запоминаем, чего мы тут указали.

Настройка VPN на MikroTik и маршрутизация только определенного трафика VPN, Сети, IT, Mikrotik, Инструкция, Роутер, Длиннопост

Теперь идем в IP -> Firewall -> NAT.

Добавляем правило с Chain srcnat, указываем наш интерфейс, в Action - masquerade.


Вкладка General

Настройка VPN на MikroTik и маршрутизация только определенного трафика VPN, Сети, IT, Mikrotik, Инструкция, Роутер, Длиннопост

Вкладка Action

Настройка VPN на MikroTik и маршрутизация только определенного трафика VPN, Сети, IT, Mikrotik, Инструкция, Роутер, Длиннопост

Затем переключаемся на вкладку IP -> Firewall -> Mangle. Тут для Chain prerouting будем помечать нужный нам трафик меткой, которую мы запомнили.

На вкладке General указываем только Chain prerouting

Настройка VPN на MikroTik и маршрутизация только определенного трафика VPN, Сети, IT, Mikrotik, Инструкция, Роутер, Длиннопост

На вкладке Advanced придумываем и указываем название списка адресов в Dst. Adress List (в дальнейшем в него добавим как раз те адреса, которые хотим пускать через VPN)

Настройка VPN на MikroTik и маршрутизация только определенного трафика VPN, Сети, IT, Mikrotik, Инструкция, Роутер, Длиннопост

На вкладке Action выбираем mark routing и вводим название метки New Routing Mark, которую все еще помним.

Настройка VPN на MikroTik и маршрутизация только определенного трафика VPN, Сети, IT, Mikrotik, Инструкция, Роутер, Длиннопост

Тут готово.


Осталось заполнить наш список адресов. Делается это на вкладке IP -> Firewall -> Address Lists. Сюда можно добавить как хосты (они автоматом зарезолвятся до айпишника), так и IP или даже маски подсетей.

Не буду показывать тут весь список, но в итоге получим что-то схожее.

Настройка VPN на MikroTik и маршрутизация только определенного трафика VPN, Сети, IT, Mikrotik, Инструкция, Роутер, Длиннопост

Не знаю, как на пикабу красиво добавить список сетей, который я добавил для работы инстаграма и фейсбука (которым не пользуюсь, это была тренировка перед ютубом))) ), но все это дело можно найти в интернете, например, тут

https://buananetpbun.github.io/mikrotik/IP-Address-list-Facebook.html

Если что, смогу поделиться своим списком адресов, но еще не знаю, как.

Однако, мне этого не хватило.

Но про это чуть позже.

На данном этапе у нас уже должно все работать и указанные хосты должны у нас работать через VPN.


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


Теперь про подводные камни.


Добавили хосты из списка, а картинки в инстаграме все равно не грузятся (это пример, не кидайтесь сразу тапками:) ).

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


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

Тут проблема может быть в DNS, если провайдер выдает собственные DNS сервера.

На вкладке IP -> DNS нужно посмотреть, есть ли там Dynamic Servers. Если есть, значит используются сервера провайдера. Я указал гугловские 8.8.8.8, 8.8.4.4 (так же у меня стоит галка Allow Remote Requests, так как роутер выступает в качестве локального DNS сервера).

Настройка VPN на MikroTik и маршрутизация только определенного трафика VPN, Сети, IT, Mikrotik, Инструкция, Роутер, Длиннопост

На вкладке IP -> DHCP Client при этом нужно убрать галку Use Peer DNS, именно она отвечает за получение DNS серверов от провайдера.

Настройка VPN на MikroTik и маршрутизация только определенного трафика VPN, Сети, IT, Mikrotik, Инструкция, Роутер, Длиннопост

Чтобы остальные локальные устройства использовали роутер в качестве DNS сервера, нужно не забыть в IP -> DHCP Server -> Networks -> Ваша подсеть, указать адрес роутера.

Настройка VPN на MikroTik и маршрутизация только определенного трафика VPN, Сети, IT, Mikrotik, Инструкция, Роутер, Длиннопост

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


Добро пожаловать в интернет!

Настройка VPN на MikroTik и маршрутизация только определенного трафика VPN, Сети, IT, Mikrotik, Инструкция, Роутер, Длиннопост