VPN туннели для Mikrotik
MikroTik VPN Comparison //rickfreyconsulting.com
Введение
Сравнительный тест протоколов
Тестирование различных типов туннелей проводились не для того, чтобы увидеть, какой могла бы быть максимальная пропускная способность между маршрутизаторами, а для того, чтобы показать потерю пропускной способности при прохождении туннеля. Тесты проводились между двумя 8-портовыми маршрутизаторами CRS под управлением RouterOS 6.27. В каждом туннеле использовался самый высокий метод шифрования. Более низкий стандарт шифрования должен дать более благоприятные результаты, но это не всегда так.
После обновлений и улучшений со времени тестирования эти результаты могут быть неточны. Fast Track и другие функции могут обеспечить гораздо более высокие значения пропускной способности, чем то, что было в ROS 6.27:
Протокол | Канал | Туннель | Потери | Wiki link |
---|---|---|---|---|
IPSEC | 691M RX | 667M RX | 3.50% | //wiki. |
VLAN | 691M RX | 582M RX | 15.80% | //wiki. |
IPIP | 691M RX | 204M RX | 70.50% | //wiki. |
GRE | 691M RX | 195M RX | 71.80% | //wiki. |
EOIP | 691M RX | 190M RX | 72.50% | //wiki. |
PPPoE | 691M RX | 94M RX | 86.40% | //wiki. |
PPtP | 691M RX | 61M RX | 91.20% | //wiki. |
L2TP | 691M RX | 59M RX | 91.50% | //wiki. |
OVPN | 691M RX | 29M RX | 95.90% | //wiki. |
SSTP | 691M RX | 29M RX | 95.80% | //wiki. |
Интранет Удаленный доступ в корпоративную сеть
//
Связка L2TP + IPSec
Протокол L2TP обеспечивает туннель канал передачи данных, а
IPSec обеспечивает шифрование.
Сервер VPN
Пакет PPP
Необходимые для настройки VPN средства включены в состав пакета PPP, который должен быть разрешен для того, чтобы раздел PPP присутствовал в меню.
Если раздел меню PPP отсутствует, то разрешение пакета выполняется в WinBox:IP->System->Packages.
После разрешения пакета RouterOS необходимо перезагрузить.
1 2 |
/system package enable ppp; /system reboot; Reboot, yes? [y/N]: |
Пул адресов
Специальный пул адресов для vpn подключений
Учетные записи для vpn подключений
WinBox:IP->PPP->Secrets.
Доступ через Firewall
Для L2TP необходимо открыть стандартный порт UDP:1701, а для IPsec ISAKMP establishing PHASE 1 UDP:500 и IPsec NAT traversal UDP:4500
1 2 3 |
/ip firewall filter add chain=input action=accept protocol=udp port=1701,500,4500 add chain=input action=accept protocol=ipsec-esp |
Клиент VPN
Сетевое VPN подключение
Для соединения подходит стандартный Windows VPN клиент начиная с Windows 7.
В свойствах подключения следует указать Тип VPN.
... и в [Дополнительные параметры] внести Ключ установленный в Winbox->PPP->Interface->L2TP Server->IPSec Secret и Winbox->IP->IPSec->Peers->0.0.0.0/0->Secret
Маршрут
Установленное подключение VPN перенаправляет через себя весь сетевой трафик. Если этого не требуется, то следует создать маршрут на основе приведенного шаблона:
1 |
route add 192.168.2.0 mask 255.255.255.0 192.168.2.2 -p |
Дополнения
Настройка туннеля SSTP
//help.mikrotik.com/docs/display/ROS/SSTP
Протокол безопасного туннелирования сокетов (SSTP) передает туннель PPP по каналу TLS. Использование TLS через TCP-порт 443 позволяет SSTP проходить практически через все брандмауэры и прокси-серверы.
L2TP
L2TP (англ. Layer 2 Tunneling Protocol — протокол туннелирования второго уровня) — в компьютерных сетях туннельный протокол, использующийся для поддержки виртуальных частных сетей. Главное достоинство L2TP состоит в том, что этот протокол позволяет создавать туннель не только в сетях IP, но и в таких, как ATM, X.25 и Frame Relay.
Несмотря на то, что L2TP действует наподобие протокола Канального уровня модели OSI, на самом деле он является протоколом Сеансового уровня и использует зарегистрированный UDP-порт 1701.
IKEv2 от
HIDE.me (IPsec)
IKE (Internet Key Exchange) - стандартный протокол набора протоколов IPsec для обеспечения защищённого взаимодействия в виртуальных частных сетях. Предназначение IKE - защищенное согласование и доставка идентифицирующей информации для "ассоциации безопасности" (SA).
Протокол IKEv2 рекомендован для HIDE.me, т.к. устойчив к кратковременным потерям подключения и работает через UDP, чтобы обходить файрволлы и свести к минимуму возможные проблемы, характеризуется наивысшими показателями защищенности, скорости и стабильности.
- Чтобы упростить настройку, скопируйте эти команды и вставьте их в терминал Mikrotik. Пожалуйста, измените имя пользователя, пароль, имя хоста и переменные диапазона.
Обратите внимание, что диапазон установлен на диапазон Mikrotik dhcp по умолчанию, поэтому измените его в соответствии с вашей ситуацией. Чтобы найти адрес адреса сервера для местоположения, к которому вы хотите подключиться, посетите список серверов в зоне для участников.
Имя хоста должно быть стабильным DNS-именем, таким как то, которое вы получаете при запросе «зарезервированного IP-адреса» через раздел «Фиксированный IP-адрес» или IP-адрес. Интерфейс VPN активируется автоматически.
To ease the setup, copy these commands and paste them into your Mikrotik's Terminal.
Please change the username, password, hostname and range variables.
Please note that the range is set to the default Mikrotik dhcp range, so change it according to your situation.
To find the address of the server address for the location you wish to connect to, visit server list in the members area.
Hostname must be a stable DNS name, like the one you get when requesting a "reserved IP" through Fixed IP section, or an IP address.
The VPN interface is automatically active.
1 2 3 4 |
:global username "USERNAME" :global password "PASSWORD" :global range "192.168.88.0/24" :global hostname "roosendaal-1-1.hideservers.net" |
2. Загрузите и импортируйте сертификат hide.me, необходимый для подключения.
Download and import the hide.me certificate required for the connection.
1 2 |
/tool fetch url="https://hide.me/downloads/hide.me.pem" /certificate import file-name=hide.me.pem passphrase="" |
Теперь в хранилище сертификатов должен быть доверенный сертификат hide.me.
There should now be a trusted hide.me certificate in the certificate store.
1 |
/certificate print |
2.1 Если вы видите в своем журнале сообщение «Размер CRL превышает память/пространство на диске, обновление прерывается», это означает, что на вашем маршрутизаторе недостаточно памяти для CRL. Отключите CRL с помощью следующей команды:
If you see "CRL size exceeds memory/disk space, aborting update" message in your log, that means that your router does not have enough memory for CRL.
Disable CRLs using the following command:
1 |
/certificate settings set crl-download=no crl-use=no |
3. Рекомендуется создать отдельный профиль для фазы 1 и конфигурации предложения для фазы 2, чтобы не мешать какой-либо существующей или будущей конфигурации IPsec.
It is advised to create a separate Phase 1 profile and Phase 2 proposal configurations to not interfere with any existing or future IPsec configuration.
1 2 |
/ip ipsec profile add hash-algorithm=sha512 enc-algorithm=aes-256 dh-group=ecp521 name="hide.me" /ip ipsec proposal add auth-algorithms=sha256 enc-algorithms=aes-256-cbc pfs-group=ecp521 name="hide.me" |
Хотя для создания политики можно использовать шаблон политики по умолчанию, лучше создать новую группу политик и шаблон, чтобы отделить эту конфигурацию от любой другой конфигурации IPsec.
While it is possible to use the default policy template for policy generation, it is better to create a new policy group and template to separate this configuration from any other IPsec configuration.
1 2 3 4 |
/ip ipsec policy group add name="hide.me" /ip ipsec policy add dst-address=0.0.0.0/0 group=hide.me proposal=hide.me src-address=0.0.0.0/0 template=yes /ip ipsec mode-config add responder=no name="hide.me" /ip ipsec peer add address=[:put $hostname] exchange-mode=ike2 profile=hide.me send-initial-contact=yes name="hide.me" |
** В качестве альтернативы, если ваш интернет-провайдер блокирует порты 500 и 4500, настройте одноранговый узел на использование порта 443.
**Alternatively, if your ISP is blocking ports 500 and 4500, set peer to use port 443.
1 |
/ip ipsec peer add address=[:put $hostname] exchange-mode=ike2 profile=hide.me send-initial-contact=yes name="hide.me" port=443 |
Создайте удостоверение IPSec, используя ранее установленные переменные для имени пользователя и пароля.
Create an IPSec identity using previously set variables for username and password.
1 |
/ip ipsec identity add auth-method=eap eap-methods=eap-mschapv2 generate-policy=port-strict mode-config=hide.me peer=hide.me policy-template-group=hide.me remote-certificate=hide.me.pem_0 username=[:put $username] password=[:put $password] |
Чтобы проверить, успешно ли создано соединение, выполните следующее:
To verify if the connection is successfully created, execute the following:
1 2 |
/ip ipsec active-peers print /ip ipsec installed-sa print |
Чтобы отправить весь трафик в сети через туннель, выполните следующие команды, используя переменную диапазона:
To send all the traffic on the network over the tunnel, execute the following commands using the range variable:
1 |
/ip firewall address-list add address=[:put $range] list=local |
Чтобы отправлять трафик только некоторых IP-адресов через туннель, вы можете настроить его следующим образом:
To send the traffic of only some IP addresses over the tunnel, you can configure it like this instead:
1 2 |
/ip firewall address-list add address=192.168.88.12 list=local /ip firewall address-list add address=192.168.88.78 list=local |
Когда это будет сделано, мы можем назначить вновь созданный список IP/брандмауэра/адресов конфигурации режима IPSec.
When this is done, we can assign newly created IP/Firewall/Address list to IPSec mode-config configuration.
1 |
/ip ipsec mode-config set [ find name=hide.me ] src-address-list=local |
Убедитесь, что правильное исходное правило NAT создается динамически при установке туннеля.
Verify correct source NAT rule is dynamically generated when the tunnel is established.
1 |
/ip firewall nat print |
4. Отмени ранее установленные переменные, чтобы они не находились в памяти.
1 |
:set hostname "";:set password "";:set username "";:set range "" |
Источник: Как установить IKEv2 на Mikrotik //hide.me
SSTP от
HIDE.me
Протокол обеспечивает отличную защищенность и стабильность при хорошей скорости.
Пошаговая инструкция настройки избирательного перенаправления соединений через VPN:
1. Для настройки подготовь:
- username и password актуальной учетной записи в //member.hide.me
- выбери один из серверов, доступный учетной записи //member.hide.me/ru/server-status
- подготовь список подсетей, маршрутизация которых должна выполняться через VPN.
2. Создай и настрой интерфейс SSTP Client подключения:
1 |
/interface sstp-client add authentication=mschap2 connect-to=free-de.hideservers.net disabled=no name="hide-me-sstp" profile=default-encryption tls-version=only-1.2 user="reks" password="p^ssw0rd" |
3. Добавь правило маркирования MANGLE для соединений с подсетями из адресного списка hide-me-list:
1 |
/ip firewall mangle add chain=prerouting action=mark-routing new-routing-mark=sstp passthrough=yes protocol=tcp dst-address-list=hide-me-list dst-port=80,8080,443 log=no |
4. Добавь правило маскарада NAT для исходящих соединений интерфейса hide-me-sstp:
1 |
/ip firewall nat add chain=srcnat action=masquerade out-interface=hide-me-sstp log=no |
5. Добавить правило маршрутизации для соединений маркированных "SSTP":
1 |
/ip route add distance=1 gateway="hide-me-sstp" routing-mark=SSTP |
6. Добавь в адресный список hide-me-list все подсети, которые необходимо маршрутизировать в интерфейс hide-me-sstp. Например для habr.com:
1 |
/ip firewall address-list add address=178.248.224.0/20 list=hide-me-list |
7. Проверь успешность подключения и маршрутизации трафика.
При полном туннелировании всего трафика проверку успешной настройки можно сделать на сайте //hide.me/ru/check
8. Создай задание в System Scheduler для ежесуточного обновления подключения SSTP клиента (иначе соединение перестанет обслуживаться):
1 |
/system scheduler add name=hide-me-reconnection start-date=jan/1/2023 start-time=04:00:00 interval=1d policy=read,write,test on-event=":log info \"refreshing hide-me-sstp connection\"\r\n/interface disable hide-me-sstp\r\n:delay 60000ms\r\n/interface enable hide-me-sstp" |
В задании в on-event будет создан скрипт:
1 2 3 4 |
:log info "refreshing hide-me-sstp connection\" /interface disable hide-me-sstp :delay 60000ms /interface enable hide-me-sstp |
Источник: Как установить SSTP на Mikrotik //hide.me
Маршрутизация
Описанные выше протоколы и средства позволяют установить защищенное подключение, которое будет представлено в RouterOS сетевым интерфейсом со всеми соответствующими атрибутами (ip-адрес и подсеть). Для направления трафика через интерфейс VPN одной настройки его подключения недостаточно, необходимо настроить маршрутизацию в соответствии с назначениями, описанными ниже.
- Анонимизация
При использовании VPN для полного сокрытия местоположения и характера сетевой активности весь интернет трафик направляют через vpn-интерфейс. - Избирательная маршрутизация Интернет
При необходимости получения доступа к сетевому ресурсу, который блокируется в текущий сетевой локации, рационально направлять через vpn-интерфейс только блокируемый трафик. Реализовать это можно несколькими способами, в зависимости от дополнительных факторов: - Интранет !!!
Для любого варианта маршрутизации из локальной сети в vpn-интерфейс требуется трансляция NAT:
1 |
/ip firewall nat add action=masquerade chain=srcnat out-interface="hide-me-sstp" |
Анонимизация Интернет через VPN
Для шлюзования всего трафика в vpn-интерфейс в свойствах необходимо установить Add Default Route:
1 |
/interface ... add ... add-default-route=yes |
Избирательная маршрутизация Интернет
Для маршрутизации в vpn-интерфейс соединений по признаку целевого IP можно использовать список адресов, заполненный целевыми адресами или адресными масками, которые будут маршрутизироваться иначе, чем по умолчанию:
1 |
/ip firewall address-list add list=hide-me-list address=172.67.137.0/24 comment="rutracker.org" |
Все соединения с целевым адресом из списка необходимо маркировать до маршрутизации:
1 |
/ip firewall mangle add action=mark-routing chain=prerouting dst-address-list=hide-me-list routing-mark=hide-me log=no passthrough=yes |
Все маркированные соединения необходимо маршрутизировать в vpn-интерфейс:
1 |
/ip route add distance=1 gateway=hide-me-sstp routing-mark=hide-me |
Критерии отбора соединений для маршрутизации в vpn-интерфейс могут быть любыми другими.
Интранет
!!!
Источники
MikroTik VPN Comparison () //rickfreyconsulting.com
Настройка VPN IPSec/L2TP сервера Mikrotik bozza.ru
Настройка PPP интерфейсов и серверов в Mikrotik asp24.com.ua
Авторский Aleksov's Blog: ...Часть 3 — Настройка VPN //blog.set-pro.net
История «болезней» VPN osp.ru
Сравнительный обзор реализаций технологии VPN: что выбрать? на 1cloud.ru
Настройка OpenVPN-сервера на Windows Server 2008/2012 на 1cloud.ru
Пошаговая инструкция по объединению сетей с помощью L2TP и L2TP/IPSec на Mikrotik lanmarket.ua