Настройка выборочного доступа к сайтам через VPN на роутерах Mikrotik

  • Автор:

Mikrotik-VPN-internet-000.pngВ наших прошлых материалах мы уже поднимали тему использования VPN не только как средства для организации корпоративной сети, но и как способа доступа в интернет для повышения безопасности работы в общественных сетях и обхода разного рода региональных ограничений. В последнем случае имеет смысл использовать VPN-канал не для всего трафика, а только для тех сайтов, доступ к которым в вашем расположении затруднен. Это несложно сделать, если в вашем распоряжении имеется роутер Mikrotik, а если нет, то появляется еще одна причина его купить.

Будем считать, что у вас уже есть интернет-подключение с точкой выхода трафика в том расположении, откуда возможен неограниченный доступ к требуемым ресурсам. Это может быть как собственный сервер, либо аккаунт у одного из многочисленных VPN-провайдеров. Выбирая расположение точки выхода, следует учитывать как возможность доступа к требуемым ресурсам, так и задержки при передаче данных. Так сервера расположенные в США обладают гораздо более высоким временем доступа, нежели сервера расположенные в Европе, поэтому их следует выбирать, когда требуется доступ именно к американским ресурсам, скажем, Netflix или покупкам у американских продавцов на Amazon и Ebay.

В нашем случае будет использоваться OpenVPN сервер на базе бесплатного VPS от Oracle с расположением в США. Вы можете использовать любой доступный вариант, а о настройке Mikrotik в качестве VPN-клиента для различных типов подключения вы можете более подробно прочитать в нашей статье.

При создании подключения в обязательном порядке снимите флаг Add Default Route, нам не требуется направлять весь трафик в VPN-канал, а маршрутизацию мы настроим позже вручную.

Mikrotik-VPN-internet-001.pngДля того, чтобы клиенты нашей локальной сети могли выходить в интернет через VPN-подключение, следует настроить NAT. Для этого перейдем в IP - Firewall - NAT и создадим новую запись со следующими параметрами: Chain - srcnat, Src. Address - диапазон вашей локальной сети, Out. Interface - интерфейс вашего VPN-подключения, в нашем случае это выглядит так:

Mikrotik-VPN-internet-002.pngЗатем перейдите на закладку Action и укажите требуемое действие: masquerade. Также можно быстро выполнить все это в командной строке:

/ip firewall nat
add action=masquerade chain=srcnat out-interface=ovpn-out1 src-address=192.168.186.0/24

Следующим шагом создадим список сайтов, которые должны будут выходить в интернет через VPN-подключение и добавим в него какой-нибудь сайт. Для этого перейдем в IP - Firewall - Address Lists и добавим новую запись. В поле Name следует указать имя списка, либо выбрать его, если список существует, в Address укажите IP-адрес или доменное имя, в последнем случае роутер сам будет определять требуемые IP-адреса.

Mikrotik-VPN-internet-003.pngЭта же настройка через консоль:

/ip firewall address-list
add address=2ip.ru list=US_only

Теперь промаркируем все необходимые пакеты, для этого переместимся в IP - Firewall - Mangle и добавим новое правило: на закладке General укажем Chain - prerouting, In. Interface - bridge1, на закладке Advanced выберем Dst. Address List - US-only, а на закладке Action укажем Action - mark routing, New Routing Mark - произвольное имя метки - в нашем случае ORA и ниже снимаем флаг Passthrough.

Mikrotik-VPN-internet-004.pngЭто же действие в консоли:

/ip firewall mangle
add action=mark-routing chain=prerouting dst-address-list=US_only in-interface=bridge1 new-routing-mark=ORA passthrough=no

Таким образом мы добавим к пакетам, направляемым к сайтам из списка специальную метку, на основании которой будет приниматься решение о их маршрутизации.

И наконец перейдем к самой маршрутизации, перейдем в IP - Routes и создадим новый маршрут. В качестве адреса назначения Dst. Address укажем 0.0.0.0/0, а в поле Gateway укажем интерфейс VPN-соединения, ниже выберем поле Routing Mark и укажем там нашу метку ORA.

Mikrotik-VPN-internet-005.pngЧерез командную строку данное действие можно выполнить так:

/ip route
add distance=1 gateway=ovpn-out1 routing-mark=ORA

Только что мы создали дополнительную таблицу маршрутизации, в которую будут попадать все промаркированные нами пакеты. Если шлюз, указанный в данной таблице недоступен, то пакет перейдет в основную таблицу маршрутизации - main - и уйдет в интернет через шлюз провайдера. Если это по каким-либо причинам нежелательно, то следует выполнить еще одну настройку. Перейдем в IP - Routes - Rules и создадим новое правило: Routing mark - ORA, Action - lookup only in table, Table - выберите имя, соответствующее вашей метке маршрутизации, в нашем случае также ORA.

Mikrotik-VPN-internet-006.pngВ консоли для создания правила выполните:

/ip route rule
add action=lookup-only-in-table routing-mark=ORA table=ORA

Таким образом мы замкнем промаркированные пакеты в собственной таблице маршрутизации и при недоступности VPN-соединения эти сайты также окажутся недоступны. Через основного провайдера эти пакеты отправлены не будут.

Теперь самое время проверить, что все работает как надо. Мы не даром добавили в список сайт 2ip, перейдем на него и убедимся, что доступ к нему был осуществлен через наш VPN c выходом в США.

Mikrotik-VPN-internet-007.pngВ дальнейшем вам потребуется только добавлять необходимые сайты в список, либо убирать из него. Также вы можете настроить несколько VPN-каналов с разными точками выхода и несколько таблиц маршрутизации, направляя пакеты к различным сайтам через разные туннели.

Дополнительные материалы:


  1. Оборудование MikroTik класса SOHO. Общий обзор и сравнение возможностей
  2. Базовая настройка роутера MikroTik
  3. Расширенная настройка DNS и DHCP в роутерах Mikrotik
  4. Автоматическое резервное копирование настроек Mikrotik на FTP
  5. Проброс портов и Hairpin NAT в роутерах Mikrotik
  6. Настройка IPTV в роутерах Mikrotik на примере Ростелеком
  7. Настройка VPN-подключения в роутерах Mikrotik
  8. Настройка черного и белого списков в роутерах Mikrotik
  9. Настройка выборочного доступа к сайтам через VPN на роутерах Mikrotik