Настройка маршрутизации между двумя сетями через VPN, как открывать определенные сайты через VPN Mikrotik

Настройка пропускания трафика через VPN

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

Строим VPN-туннель в локальную сеть с помощью «WireGuard»

Настройка сервера

Для размещения сервера потребуется VPS. При выборе необходимо обратить внимание на технологию виртуализации: предпочтительно KVM, можно XEN, а вот OpenVZ следует избегать. Дело в том, что в WireGuard реализован как модуль ядра, а в OpenVZ ядро очень старое. Я буду использовать самый дешевый виртуальный сервер c операционной системой Ubuntu 20.04 (KVM 512 МБ RAM 20 ГБ SSD 1 CPU — такая конфигурация вполне подойдет).

Залогинимся на сервер с правами пользователя root и выполним следующие команды:

# устанавливаем Wireguard apt update && apt upgrade apt install wireguard # разрешаем проброс пакетов echo «net.ipv4.ip_forward=1» >> /etc/sysctl.conf sysctl -p # генерируем ключи для сервера: wg genkey | tee /etc/wireguard/privatekey | wg pubkey | tee /etc/wireguard/publickey

Создадим конфигурационный файл /etc/wireguard/wg0.conf со следующим содержимым:

[Interface] Address = 10.0.0.1/24 PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE ListenPort = 51820 PrivateKey =

Параметры PostUp/PostDown содержат правила iptables, которые будут применены при запуске/остановке сервиса. Обратите внимание на название сетевого интерфейса — оно должно соответствовать общедоступному сетевому адаптеру, в моем случае это eth0. Вывести список адаптеров можно командой:

ip aВыберите из списка тот, которому соответствует внешний IP-адрес. — заменяем содержимым файла /etc/wireguard/privatekey.

Запустим VPN-сервис и добавим его в автозагрузку:

wg-quick up wg0 systemctl enable [email protected]

Убедимся, что служба запустилась корректно:

[email protected]:/etc/wireguard# wg show wg0 interface: wg0 public key: private key: (hidden) listening port: 51820

Настройка клиента в LAN

Если ваш роутер поддерживает WireGuard (Zyxel KeeneticOS >=3.3, Mikrotik RouterOS >=7.1beta2, OpenWRT) — можно настроить VPN-клиент прямо на нем. Я буду использовать для этой цели сервер Ubuntu 20.04 (локальный адрес 192.168.100.7).

Первый этап настройки аналогичен конфигурации серверной части. Выполняем с правами root-пользователя:

# устанавливаем WireGuard apt update && apt upgrade apt install wireguard # разрешаем проброс пакетов echo «net.ipv4.ip_forward=1» >> /etc/sysctl.conf sysctl -p # генерируем ключи для клиента wg genkey | tee /etc/wireguard/privatekey | wg pubkey | tee /etc/wireguard/publickey

Редактируем /etc/wireguard/wg0.conf:

[Interface] PrivateKey =

Address = 10.0.0.2/32 PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o wlp2s0 -j MASQUERADE PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o wlp2s0 -j MASQUERADE [Peer] PublicKey = Endpoint = :51820 AllowedIPs = 10.0.0.0/24 PersistentKeepalive = 20

— заменяем содержимым /etc/wireguard/privatekey, — /etc/wireguard/publickey с сервера, — внешний IP-адрес сервера. Правила iptables в PostUp/PostDown необходимы для того, чтобы наш клиент выступал в роли шлюза в LAN. Указываем в правилах тот сетевой интерфейс, на который назначен локальный адрес (192.168.100.7, в моем случае это wlp2s0). Уточните его путем исполнения команды:ip a

В параметре AllowedIPs задаются адреса, маршрутизация к которым будет осуществляться через VPN-интерфейс. В поле PersistentKeepalive — периодичность проверки доступности соединения в секундах. Запускаем службу и добавляем в автозагрузку:

wg-quick up wg0 systemctl enable [email protected]

На сервере добавляем в файл /etc/wireguard/wg0.conf блок:

… [Peer] # PEER_LAN PublicKey =

AllowedIPs = 10.0.0.2/32, 192.168.100.0/24Где

— /etc/wireguard/publickey клиента. Перезапустим службу и убедимся, что все настроено корректно:systemctl restart [email protected] [email protected]:/etc/wireguard# wg show wg0 interface: wg0 public key: private key: (hidden) listening port: 51820 peer: endpoint: :42946 allowed ips: 10.0.0.2/32, 192.168.100.0/24 latest handshake: 2 minutes, 8 seconds ago transfer: 3.24 KiB received, 828 B sent [email protected]:/etc/wireguard# ping -c 3 10.0.0.2 PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data. 64 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=31.1 ms 64 bytes from 10.0.0.2: icmp_seq=2 ttl=64 time=120 ms 64 bytes from 10.0.0.2: icmp_seq=3 ttl=64 time=40.9 ms — 10.0.0.2 ping statistics — 3 packets transmitted, 3 received, 0% packet loss, time 2002ms rtt min/avg/max/mdev = 31.093/63.987/119.950/39.774 ms [email protected]:/etc/wireguard# ping -c 3 192.168.100.5 PING 192.168.100.5 (192.168.100.5) 56(84) bytes of data. 64 bytes from 192.168.100.5: icmp_seq=1 ttl=63 time=31.8 ms 64 bytes from 192.168.100.5: icmp_seq=2 ttl=63 time=119 ms 64 bytes from 192.168.100.5: icmp_seq=3 ttl=63 time=40.0 ms — 192.168.100.5 ping statistics — 3 packets transmitted, 3 received, 0% packet loss, time 2002ms rtt min/avg/max/mdev = 31.834/63.573/118.915/39.273 ms

Проверим теперь с клиента:

[email protected]:/etc/wireguard# wg show wg0 interface: wg0 public key: private key: (hidden) listening port: 42946 peer: endpoint: :51820 allowed ips: 10.0.0.0/24 latest handshake: 8 seconds ago transfer: 21.34 KiB received, 83.03 KiB sent persistent keepalive: every 21 seconds [email protected]:/etc/wireguard# ping -c 3 10.0.0.1 PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data. 64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=32.0 ms 64 bytes from 10.0.0.1: icmp_seq=2 ttl=64 time=32.6 ms 64 bytes from 10.0.0.1: icmp_seq=3 ttl=64 time=32.2 ms — 10.0.0.1 ping statistics — 3 packets transmitted, 3 received, 0% packet loss, time 5ms rtt min/avg/max/mdev = 32.013/32.265/32.586/0.316 ms

Настройка удаленных клиентов

Сборки WireGuard доступны для основных платформ: Linux, Windows, Mac, Android, FreeBSD, OpenWRT и др. Рассмотрим настройку VPN-клиента на десктопах под управлением Linux и Windows, а так же на Android-смартфоне.

Удаленный Linux клиент

На клиенте выполняем с правами root:

# устанавливаем Wireguard apt update && apt upgrade apt install wireguard # генерируем ключи wg genkey | tee /etc/wireguard/peer_1_privatekey | wg pubkey | tee /etc/wireguard/peer_1_publickey

Конфигурационный файл /etc/wireguard/wg0.conf:

[Interface] PrivateKey =

Address = 10.0.0.3/32 DNS = 8.8.8.8 [Peer] PublicKey = Endpoint = :51820 AllowedIPs = 0.0.0.0/0 # AllowedIPs = 10.0.0.0/24, 192.168.100.0/24 PersistentKeepalive = 20

— заменяем содержимым /etc/wireguard/peer_1_privatekey, — /etc/wireguard/publickey с сервера.

Обратите внимание на строку «AllowedIPs = 0.0.0.0/0» — в данной конфигурации весь трафик будет маршрутизироваться через VPN-адаптер. Это может понадобиться для сокрытия реального IP при работе в интернет или для защиты трафика при подключении к недоверенным сетям (например публичные Wi-Fi точки доступа). В этом случае указываем «DNS = 8.8.8.8» (8.8.8.8 — DNS-сервер Google), чтобы DNS-запросы выполнялись через защищенное VPN-соединение.

Если VPN-туннель необходим только для доступа к LAN 192.168.100.0/24 — убираем строчку «DNS = 8.8.8.8» и в параметре AllowedIPs меняем «0.0.0.0/0» на «10.0.0.0/24, 192.168.100.0/24».

# запускаем службу wg-quick up wg0 # добавляем в автозапуск systemctl enable [email protected]

На сервере в конфигурационный файл /etc/wireguard/wg0.conf добавляем блок:

… [Peer] PublicKey =

AllowedIPs = 10.0.0.3/32Где

— содержимое файла /etc/wireguard/peer_1_publickey клиента и перезапускаем службу:systemctl restart [email protected]

Возвращаемся на клиент и проверяем доступность узлов в LAN через VPN-туннель:

[email protected]:/etc/wireguard# wg show wg0 interface: wg0 public key:

private key: (hidden) listening port: 34022 peer: endpoint: :51820 allowed ips: 10.0.0.0/24, 192.168.100.0/24 latest handshake: 44 seconds ago transfer: 6.91 KiB received, 8.96 KiB sent persistent keepalive: every 20 seconds [email protected]:/etc/wireguard# ping -c 3 192.168.100.5 PING 192.168.100.5 (192.168.100.5) 56(84) bytes of data. 64 bytes from 192.168.100.5: icmp_seq=1 ttl=62 time=66.3 ms 64 bytes from 192.168.100.5: icmp_seq=2 ttl=62 time=65.7 ms 64 bytes from 192.168.100.5: icmp_seq=3 ttl=62 time=67.2 ms — 192.168.100.5 ping statistics — 3 packets transmitted, 3 received, 0% packet loss, time 2003ms rtt min/avg/max/mdev = 65.748/66.387/67.157/0.582 ms

Удаленный Windows клиент

Скачиваем WireGuard для Windows с официального сайта и устанавливаем.

На сервере сгенерируем ключи для Windows-клиента:

wg genkey | tee /etc/wireguard/peer_2_windows_privatekey | wg pubkey | tee /etc/wireguard/peer_2_windows_publickey

Добавим блок Peer в файл /etc/wireguard/wg0.conf:

…​[Peer] PublicKey =

AllowedIPs = 10.0.0.4/32

Перезапустим сервер:

systemctl restart [email protected]

Конфигурационный файл windows.conf:

[Interface] PrivateKey =

Address = 10.0.0.4/32 [Peer] PublicKey = Endpoint = :51820 AllowedIPs = 10.0.0.0/24, 192.168.100.0/24 PersistentKeepalive = 20

В приложении WireGuard открываем конфигурационный файл и нажимаем кнопку «подключение».

Конфигурационные файлы можно генерировать и на клиентах, а после отправлять открытые части ключей на сервер.

Удаленный Android клиент

Приложение для Android доступно в Google Play.

Генерируем ключи для клиента и добавляем Peer в конфигурационный файл сервера.

wg genkey | tee /etc/wireguard/peer_3_android_privatekey | wg pubkey | tee /etc/wireguard/peer_3_android_publickey

/etc/wireguard/wg0.conf:

… [Peer] PublicKey =

AllowedIPs = 10.0.0.5/32

Не забываем перезапускать сервер после каждого изменения конфигурации:

systemctl restart [email protected]

Создадим конфигурационный файл для Android клиента mobile.conf:

[Interface] PrivateKey =

Address = 10.0.0.5/32 [Peer] PublicKey = Endpoint = :51820 AllowedIPs = 10.0.0.0/24, 192.168.100.0/24 PersistentKeepalive = 20

Устанавливаем пакет qrencode:

sudo apt install qrencode

И генерируем QR-код с конфигурацией для PEER_3:

В Android-приложении выбираем пункт меню «сканировать QR-код»:

И подключаемся к VPN-туннелю:

Объединяем сети при помощи SoftEther VPN

Установка VPN сервера на Windows

Установка SoftEther VPN Server достаточно проста. Проиллюстрирую ее картинками с небольшими комментариями. Скачиваем дистрибутив SoftEther VPN Server c официального сайта и запускаем.
Выбираем вариант установки — VPN Server и жмем «Далее».

Затем принимаем условия соглашения и выбираем стандартную установку.

После запуска VPN сервера появится окно администрирования, нажимаем кнопку «Connect». Задаем пароль администратора сервера.

Указываем тип сервера — Site-to-Site VPN Server. (Center)

Далее необходимо указать имя виртуального хаба.

Затем идет настройка функции dynamic DNS, жмем Exit. Позже её можно отключить, изменив в файле конфигурации строку на: “declare DDnsClient { bool Disabled true “ .

Далее необходимо указать физическую сетевую карту для соединения виртуального хаба с локальной сетью. Соединение осуществляется на канальном уровне OSI, поэтому виртуальный хаб не получает никакого IP адреса в сети. Однако некоторые роутеры могут заметить в локальной сети появление IP адреса подсети 172.31.0.0/16. Этот адрес используется для отслеживания соответствия ARP записей IP адресам или чего-то подобного.

Далее предлагается настроить доступ по L2TP и включить Azure VPN. Пропустим эти шаги, т.к. в этой схеме они не участвуют. Azure VPN можно отключить, если у вас белый IP. Если адрес серый, то не отключайте и используйте доменный адрес Azure VPN вместо IP.

Настройка VPN сервера

По окончании первичной настройки попадаем в окно администрирования сервера. Первым делом, удалим ненужные порты (все, кроме 5555 — он используется для подключения к панели администрирования). Задаем какой-нибудь нестандартный TCP порт для прослушивания, например, 7710. Если у Вас нет белого IP адреса, то для использования Azure VPN необходимо слушать 443 порт.
Теперь необходимо создать второй виртуальный хаб, к которому будет подключаться удаленная сеть. Чтобы создать второй хаб, кликаем кнопку «Create a Virtual Hub». Назовем его, например, по номеру удаленной сети — 12. В этом виртуальном хабе создавать Local Bridge ненужно.

Далее, выбираем 12 хаб и нажимаем «Mange Virtual Hub», затем «Manage Users» создаем пользователя для удаленной сети. Назовем его «Network 12», вместо пароля будем использовать самоподписанный сертификат с тайным ключом.

Кликаем «Create Certificate» и заполняем строчку “Common name”.

Выбираем формат сертификата — X509 (сертификат отдельно, тайный ключ отдельно).

Сохраненный сертификат и тайный ключ необходимо будет загрузить в клиент SoftEther VPN Bridge.
Далее необходимо открыть порт в роутере — тот самый, который слушает сервер, и настроить трансляцию порта на ПК с сервером. Подробнее о том, как открывать порты, можно прочитать в этой статье.
Например, в pfSense правило для открытия порта выглядит примерно так. pfSense — при создании правила для NAT, автоматически создает правило и для Firewall. Другие роутеры могут этого не делать, поэтому надо создавать оба правила ручками.

Также, в межсетевом экране на обоих роутерах необходимо разрешить прохождение трафика между сетями. Для разрешения прохождения любого трафика правило будет выглядеть так:

Если на компьютерах включен брандмауэр, то там тоже необходимо разрешить прохождение трафика для нужной сети.
Далее необходимо создать виртуальный роутер. Кликаем кнопку «Layer 3 Switch Settings», создаем новый виртуальный роутер и кликаем кнопку «Edit». Затем, необходимо создать виртуальные интерфейсы для каждого хаба. Для хаба с именем 10 создаем интерфейс с адресом 192.168.10.100, для хаба с именем 12 — 192.168.12.100. Адреса можно придумать свои, главное, чтобы они не были заняты и принадлежали каждый к своей подсети. Разработчики уверяют, что маршруты добавлять необязательно, но лучше на всякий случай добавить. Для запуска роутера нажимаем кнопку «Start».

Настройка VPN клиента

Запускаем установку SoftEther VPN Server, при этом выбираем вариант установки SoftEther VPN Bridge. Жмем все время «Далее», затем задаем пароль администратора.

Здесь, ничего не изменяя, жмем также «Далее».

На этом шаге указываем сетевую карту для создания моста с локальной сетью.

После этого попадаем в панель управления SoftEther VPN Bridge. Как видим, многие функции в этом режиме отключены.

Далее необходимо создать каскадное подключение к серверу SoftEther VPN. Нажимаем «Mange Virtual Hub» затем «Mange Cascade Connection» и заполняем данные для подключения.

  • Settings name — имя подключения.
  • Host Name — белый IP адрес или доменное имя DDNS роутера сети, где установлен сервер. Если у вас нет белого IP адреса, то используем службу Azure VPN и пишем доменное имя, полученное в этой службе (vpn123456789.vpnazure.net). Думаю, понятно, что без белого IP адреса открывать порты на роутере ненужно.
  • Port Number — порт, который слушает сервер.
  • Virtual Hub Name — имя виртуального хаба на сервере.
  • User Authentication Settings — настройки аутентификации пользователя. Поскольку мы решили использовать вместо пароля самоподписанный сертификат, то выбираем строчку «Client Certificate Authentication». Пишем имя пользователя (в примере это — Network 12). Кликаем «Specify Client Certificate», загружаем сертификат и тайный ключ шифрования.

Теперь необходимо настроить параметры соединения — кликаем “Advanced Settings”. Здесь необходимо задать количество TCP соединений, для широкополосного соединения рекомендуется 8.

Настройка маршрутизации

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

На роутере 192.168.10.1 (см. схему) прописываем маршрут до сети 192.168.12.0. Выглядеть он будет так: 192.168.12.0 маска 255.255.255.0 шлюз 192.168.10.100.

На роутере 192.168.12.1 прописываем маршрут до сети 192.168.10.0: 192.168.10.0 маска 255.255.255.0 шлюз 192.168.12.100.

Для надежности перезагружаем оба ПК и роутера.

Настройка VPN-подключения в роутерах Mikrotik

С ростом значения интернета в нашей повседневной жизни все более востребованными становятся различные сетевые технологии. Если раньше VPN был преимущественно уделом крупных организаций, то сегодня он используется чуть ли не в каждой сети, действительно, сотрудники стали мобильными и удаленный доступ к ресурсам сети уже не блажь, а насущная необходимость. Настройка роутера Mikrotik как VPN-клиента вопрос, на первый взгляд, простой, но есть некоторые не очевидные моменты, которые мы разберем в данной статье.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

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

В рамках данной статьи мы будем рассматривать варианты настройки Mikrotik именно в качестве клиента для поддерживаемых типов VPN-серверов, оставив за кадром туннельные подключения (GRE, IP-IP, EoIP и т.д.). Для работы с этим типом соединений используется специальный раздел PPP, на закладке Interfaces которого можно добавить сетевой интерфейс для нужного типа VPN-клиента. Поддерживаются PPTP, L2TP, SSTP и OpenVPN подключения. Также в списке присутствуют устаревший PPP и PPPoE, который используется для организации доступа в интернет, в данном контексте эти протоколы интереса не представляют.


Также аналогичные действия можно выполнить и в разделе Interfaces, никакой разницы откуда вы будете добавлять сетевой интерфейс нет. Но не будем спешить и перейдем на закладку Profiles, где находятся профили используемые при коммутируемых подключениях. По умолчанию созданы два профиля: default и default-encryption, в которых содержатся некоторые настройки для подключения. Почему некоторые? Потому что большинство опций подключения задаются сервером и клиент должен применять именно их, иначе подключение будет невозможным. Поэтому если вы заглянете в эти профили, то увидите, что большинство настроек там не активно.


Единственным различием двух профилей является опция Use Encryption, которая в default-encryption установлена в положение yes и требует обязательного шифрования подключения. Данная опция игнорируется протоколами SSTP и OpenVPN, которые всегда используют шифрованные подключения.

Означает ли это, что если мы выберем профиль default, то ваше соединение не будет шифроваться? Нет, если сервер использует шифрование и не допускает небезопасных подключений, то ваше соединение также будет зашифровано. Но вот если сервер разрешает небезопасные подключения, то клиент вполне может подключиться без шифрования, таким образом можно осуществить атаку с подменой сервера, когда вы получите незашифрованное подключение и не будете знать об этом. Поэтому если вам явно требуется шифрование канала всегда выбирайте профиль default-encryption.

Мы не советуем менять настройки в стандартных профилях, если вам нужно явно задать иные настройки подключения, то создайте собственный профиль. Также учтите, что опция Use Compression игнорируется для OpenVPN соединений, которые в реализации от Mikrotik не могут использовать сжатие трафика.

PPTP-клиент

Пожалуй, это самый простой в настройке тип соединений. Несмотря на то, что используемое в PPTP шифрование не является надежным, этот протокол продолжает широко использоваться благодаря низким накладным расходам и высокой скорости работы, например, для доступа в интернет.

Для настройки PPTP клиента добавьте интерфейс типа PPTP Client и перейдите на закладку Dial Out, где расположены сетевые настройки.


Настроек немного, и они просты. В поле Connect To укажите FQDN или IP-адрес VPN-сервера, в поля User и Password — имя пользователя и пароль. В Profile выбирается в зависимости от необходимости шифрования нужный профиль. В самом низу рядом с опцией Allow (разрешить) указаны допустимые к использованию протоколы аутентификации, на сегодня безопасным считается только MS-CHAP v2 и следует использовать по возможности только его. Однако помните, что используемый протокол аутентификации должен поддерживаться сервером, в противном случае установить связь вы не сможете.

Опция Keepalive Timeout указывает время переподключения соединения в случае обрыва связи. Бытует мнение, что лучше делать это значение поменьше, мол быстрее будет переподключаться туннель. Но это не так, во-первых, при неполадках на сервере вы будете активно забивать канал и нагружать сервер служебным трафиком, а во-вторых, при кратковременных перебоях связи короткое время будет вызывать переподключение с обрывом всех соединений в канале, а большее значение позволит сохранить туннель. Особенно это актуально для мобильного интернета или беспроводных каналов.

Опция Add Default Route создаст маршрут по умолчанию через туннель, т.е. направит туда весь исходящий трафик, указывайте ее только в том случае, если данный туннель основной способ доступа в интернет.

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

L2TP-клиент

Говоря про L2TP, обычно подразумевают L2TP/IPsec, потому как без шифрования данный протокол в корпоративной среде не используется. Но есть и исключения, некоторые провайдеры, например, Билайн, используют чистый L2TP без шифрования. В этом случае настройки подключения будут выглядеть так:


Обратите внимание на используемый профиль — default, так как соединение не зашифрованное, с профилем default-encryption вы не сможете подключиться к серверу провайдера. Add Default Route ставим только если это основное соединение с интернет. Также имеет смысл использовать опцию Allow Fast Path, для разгрузки CPU, особенно на младших моделях, но учтите, что с данной опцией соединение может работать неустойчиво, в таком случае ее придется отключить.

Для работы с L2TP/IPsec настройки будут немного иные, во-первых, используем профиль default-encryption и включаем использование IPsec установкой флага Use IPsec, при этом становится активным поле IPsec Secret, куда вводим предварительный ключ.


Опция Allow Fast Path при использовании IPsec игнорируется и в ее установке нет никакого смысла, так же не забывайте про опцию Add Default Route, в большинстве корпоративных сценариев устанавливать ее не следует.

Вроде бы тоже ничего сложного в настройках L2TP/IPsec нет, но если вы попытаетесь подключиться к Windows Server, то у вас ничего не получится. В чем же дело? А дело в настройках IPsес, перейдем в IP — IPsec — Proposal и откроем настройку по умолчанию. Proposal или предложение IPsec содержит список алгоритмов защиты канала, которые устройство предлагает для установления соединения. Понятно, что для успешного установления канала поддерживаемые методы защиты должны совпадать.


В предложении IPsec по умолчанию обращаем внимание на опцию PFS Group, она отвечает за применение технологии совершенной прямой секретности (Perfect forward secrecy, PFS), которая предусматривает создание уникальных сессионных ключей по алгоритму Диффи-Хеллмана, что делает невозможным расшифровку перехваченного IPsec трафика даже при наличии долговременных ключей (в данном случае предварительного ключа).

Windows Server по умолчанию не поддерживает совершенную прямую секретность, поэтому PFS Group нужно выставить в состояние none, после чего соединение успешно установится.

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

Хотя более правильным является создание своего предложения (Proposal) и политики (Police) для каждого соединения, но эта тема далеко выходит за рамки статьи.

SSTP-клиент

Мы не будем останавливаться на уже описанных нами опциях, которые общие для всех видов коммутируемых подключений, а сосредоточимся на новых, свойственных именно этому типу VPN. SSTP относится к отдельной подгруппе SSL VPN, которые используют трафик практически не отличимый от HTTPS, что серьезно затрудняет выявление и блокирование таких туннелей.

На что следует обратить внимание при настройке? Давайте сначала посмотрим на окно настроек:


Как видим, появилась опция Port, где мы можем указать порт подключения, по умолчанию это 443, но можно использовать и любой иной, если 443 порт занят, например, веб-сервером. Также SSTP может прекрасно работать через прокси, в этом случае вам потребуется указать адрес прокси-сервера и используемый им порт в опциях Proxy и Proxy Port.

Также вспоминаем, что SSTP всегда использует шифрование канала, поэтому оно будет работать вне зависимости от выбранного профиля, в данном случае default и default-encryption будут работать одинаково.

Теперь перейдем к специфичным для протокола настройкам, которые мы обвели зеленой рамкой. Поле Certificate используется для указания клиентского сертификата в том случае, если сервер использует аутентификацию по сертификатам, в этом случае его потребуется загрузить на устройство и импортировать в разделе System — Certificates. Во всех остальных случаях в поле должно стоять none.

TLS Version указывает на допустимые к использованию версии TLS, однако это определяется сервером, но следует стараться использовать только протокол TLS 1.2, что позволяет исключить атаки с понижением протокола.

Опция Verify Server Certificate не является обязательной, но позволяет проверить подлинность сервера, исключая атаки типа человек посередине, для этого потребуется импортировать на Mikrotik сертификат центра сертификации (СА) выдавшего сертификат серверу.

Опция Verify Server Address From Certificate позволяет убедиться, что IP-адрес подключения соответствует адресу для имени, указанного в сертификате. Также не является обязательной, но позволяет дополнительно убедиться, что подключаетесь вы именно к тому серверу.

Установка флага в поле PFS включает совершенную прямую секретность, но эта опция должна поддерживаться со стороны сервера.

OpenVPN-клиент

Реализация OpenVPN в Mikrotik вызывает много нареканий, так как сводит на нет все сильные стороны данной технологии и делает ощутимыми слабые. OVPN-клиент не поддерживает сжатие данных и работу по протоколу UDP, если первое не столь значимо на современных каналах, то OpenVPN поверх TCP имеет очень большие накладные расходы и вызывает как повышенную нагрузку на оборудование, так и плохую утилизацию канала. Поэтому от использования OpenVPN на Mikrotik по возможности следует отказаться.

Обычно комплект для подключения OpenVPN клиента составляют сертификат СA, сертификат и закрытый ключ клиента, конфигурационный файл. Нам понадобятся только сертификат и ключ клиента, а если мы хотим проверять подлинность сервера, то еще и сертификат CA, но он не является обязательным для настройки подключения.

Прежде всего загрузим сертификаты и ключи на Mikrotik, затем перейдем в System — Certificates и импортируем сертификат клиента. Он появится в списке сертификатов и напротив него будет буква T, что обозначает trusted, т.е. устройство доверяет этому сертификату. Затем импортируем ключ, здесь важно соблюдать именно эту последовательность, сначала сертификат, потом ключ.


После успешного импорта ключа флаги сменятся на KT, где буква K обозначает наличие закрытого ключа для сертификата. Затем аналогичным образом импортируем сертификат CA сервера, импорт ключа для данного сертификата не нужен. Закрытый ключ CA является самой большой тайной и должен хранится с соблюдением всех мер предосторожности и не при каких обстоятельствах не должен покидать узел СA (центра сертификации).

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


Но сначала коснемся опций User и Profile. Первая используется только в случае аутентификации на сервере по имени и паролю, большинство OpenVPN серверов такой тип аутентификации не используют и в этом поле вы можете написать все что угодно, просто оно должно быть заполнено. Профиль также не имеет значения, так как OpenVPN всегда шифрует канал, а опцию сжатия игнорирует.

Mode задает режим работы канала, в терминах OpenVPN ip — это tun (L3), а ethernet — это tap (L2), следует помнить, что режим работы определяется сервером. В поле Certificate укажите импортированный сертификат клиента. Опции Auth и Cipher указывают на используемые сервером криптографические алгоритмы для аутентификации и шифрования, если вы укажете отличные от указанных в конфигурации сервера — то соединение установить не удастся. Если алгоритм аутентификации явно не указан в конфигурации сервера, то по умолчанию используется SHA1.

При настройке OpenVPN клиента на Mikrotik следует помнить, что сервер должен поддерживать соединения по протоколу TCP, без сжатия и TLS-аутентификации, в противном случае подключиться к серверу не удастся.

Опция Verify Server Certificate позволяет проверить подлинность сертификата сервера, что защищает от атак типа человек посередине, но требует импорта сертификата CA сервера.

Маршрутизация

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


В данном примере мы отправляем все пакеты к сети 192.168.200.0/24 через L2TP-подключение l2tp-out1. Если вы понимаете основы маршрутизации, то указание правильных маршрутов для вас не составит труда.

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

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Как в Chrome открывать только определенные сайты через VPN (прокси)?

Настраиваем расширение Proxy SwitchyOmega

Запустите расширение Proxy SwitchyOmega, если это не произошло автоматически и откажетесь от ознакомления с ПО.

Во вкладке InterFace, установите в Startup Profile параметр «proxy»

Переходим во вкладку proxy и вводим следующие параметры:

  • Protocol — SOCKS5
  • Server — 127.0.0.1
  • Port — 9999

После чего сохраняем внесенные изменения нажав на кнопку «Apple changes».

Переходим в раздел «auto switch» и настраиваем:

  • В поле Condition Type — Host wildcard
  • Condition Details — адрес домена
  • Profile — Proxy

Настраиваем Kronymous

Запускаем расширение Kronymous для этого перейдите во вкладку сервисов Chrome, для этого перейдите по адресу chrome://apps

После запуска произойдет подключение, советую также добавить автозапуск

Направляем определенные сайты через защищенную сеть

В верхней панели Chrome выберите расширение Proxy SwitchyOmega, и активируйте профиль «auto switch», теперь необходимые сайты направляются через защищенную сеть TOR, а все остальные, через обычное подключение!

Как на iPhone настроить VPN-соединение для некоторых сайтов и приложений

Сейчас расскажем, как можно довольно гибко настроить VPN на iPhone, чтобы соединение работало только для избранных приложений, сервисов или сайтов в браузере.

1. Найдите подходящий VPN-сервис

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

Если настраивать свой VPN по нашей инструкции, придется подыскать другой скрипт или немного поработать с командной строкой. Потребуется установка модуля Python на сервер и небольшая перенастройка клиентской части.

В данном случае рекомендую запросить бесплатную ссылку через Telegram-бот сервиса Hi!Load VPN – @hlvpnbot.

2. Установите клиентское приложение на iPhone

Нам потребуется, не официальная утилита того или иного сервиса, а универсальный клиент с расширенными настройками. Рекомендую самое мощное приложение из App Store в данной нише – Shadowrocket.

Утилита платная (279 руб.), но имеет практически безграничные возможности по настройке туннельных соединений.

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

В качестве альтернативы рекомендуем WireGuard или Outline App. Утилиты бесплатные, но, к сожалению, не имеют расширенных настроек и будут работать исключительно в режиме “включить/выключить”.

3. Перенесите настройки VPN соединения в Shadowrocket

Для этого потребуется открыть Shadowrocket на вкладке Home и нажать кнопку +. Если в буфере обмена уже будет находиться скопированное ссылка на подключение, приложение самостоятельно распознает и предложит настроить его.

Если же вы используете какой-то сторонний сервис, вам потребуется перенести все параметры подключения (адрес, логин, пароль и т.п.) вручную.

Когда все сделано верно, iPhone подключится к VPN и весь трафик будет перенаправлен через него.

4. Настройте работу VPN для отдельных приложений и сервисов

Отключите главный тумблер приложения и перейдите на вкладку Config. Здесь можно добавлять конфигурационные файлы которые будут определять, какие приложения или сайты будут загружаться напрямую, а какие – через установленное VPN соединение.

Конфигурационный файл можно создать и настроить самостоятельно либо скачать уже готовый и внести все необходимые правки.

Нашел ссылку на уже готовый файл конфигурации в Telegram-канале сервиса Hi!Load VPN.

Просто скачайте и импортируйте его в приложении Shadowrocket.

5. Внесите изменения в файл конфигурации

Вы можете отредактировать загруженный файл или по примеру создать собственный. Для этого добавьте все необходимые сайты, которые вы хотите посещать с активированным VPN соединением, в список. В качестве действия выберите прокси соединение.

Добавленные в список сайт или приложение сервиса будет подключаться через установленое VPN соединение.


Скорость работы на 100-мегабитном подключении через европейский сервер

Проще всего проверить правильность настройки при помощи утилиты SpeedTest. Добавьте соответствующую строку для подключения на сайт сервиса в конфигурацию и установите для неё подключение через VPN. Теперь проверьте скорость соединения через приложение и в браузере.

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

6. Создайте удобную автоматизацию для включения и отключения VPN

Кроме возможности перенаправлять часть трафика на iPhone утилита Shadowrocket имеет расширенную поддержку команд автоматизации iOS.

Вы сможете настроить включение или отключение VPN соединения по времени, местоположению или любому другому условию.

Кроме этого можно создать кнопку для быстрого переключения соединения на противоположное состояние (включение/отключение). Для этого создайте простейший скрипт в приложении Быстрые команды с настройками как на скриншоте выше.

В параметрах вы сможете изменить название, иконку и разместить ярлык скрипта на рабочем столе iPhone.

Если потратить немного времени на внесение всех необходимых данных в конфигурационный файл приложения, то получите VPN подключение, которое будет действовать только для нужных вам сайтов и приложений. Можно и вовсе не отключать такое соединение на iPhone.

Источники

  • https://vc.ru/dev/155768-stroim-vpn-tunnel-v-lokalnuyu-set-s-pomoshchyu-wireguard
  • https://soft-navigator.ru/useful/bridge_softether_vpn
  • https://interface31.ru/tech_it/2019/09/nastroyka-vpn-soedineniya-v-routerah-mikrotik.html
  • https://androidp1.ru/kak-otkryvat-v-chrome-tolko-opredelennye-sajty-cherez-vpn-proksi/
  • https://www.iphones.ru/iNotes/kak-na-iphone-nastroit-umnyy-vpn-on-budet-rabotat-tolko-dlya-nuzhnyh-saytov-i-prilozheniy-09-22-2022

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: