Ikev2 client mikrotik: Настраиваем IKEv2 VPN-сервер на роутерах Mikrotik с аутентификацией по сертификатам
Чистый IPsec IKEv2 между белым и серым IP |
Здравствуйте, уважаемые читатели!
В этой статье я затрону достаточно не простую тему создания шифрованного канала связи на базе набора протоколов IPsec.
В свое время я настроил достаточно удобную связку из OpenVPN и EoIP для организации единой локальной сети на нескольких удаленных точках.
Вот эти статьи:
Все вроде бы здорово, за исключением низкой скорости передачи по такому типу туннеля – Send – 31 Mbps / Receive – 31 Mbps. В RouterOS, OpenVPN работает достаточно медленно и использует только одно ядро на многоядерных системах. И это по моему основная проблема. Т.к. то же ограничение на работу в TCP не сильно сказывается на производительности системы в целом, даже с учетом EoIP туннеля.
В общем эта несправедливость сподвигла меня на поиск более лучшего решения с сохранением или улучшением шифрования.
Оба моих роутера по информации производителя поддерживают аппаратное шифрование: IPsec#Hardware_acceleration, но не для OpenVPN, а для IPsec.
Это модели: RB750Gr3(hEX) и RB760iGS(hEX S)
Так почему бы не использовать эту особенность себе во благо?
Забегая немного вперед скажу, что прогоняя трафик через роутеры(forward), с помощью iperf3, мне удалось получить 83-85 Mbps при наименьшем канале в 100 Mbps.
Интересно? Тогда Добро пожаловать!!!
Настройка IPsec IKEv2 туннеля
Как известно сообществу специалистов по RouterOS, компания MikroTik существенно перекроила IPsec и начиная с прошивки 6.44 принцип настройки изменился.
Будьте внимательны. Большинство мануалов в интернете написаны для предыдущего типа конфигурирования!!!
Я придерживаюсь использования Long-term прошивок и данная статья написана с использованием прошивки 6.45.8
IPsec характерен тем, что умеет работать через NAT провайдера(NAT-T), имеет отличное шифрование, да и в целом более защищен. Но есть одна проблема…
Кол-во настроек в IPsec отбивают всякое желание, что либо на нем делать. Потому, далеко не многие дошли до корректной настройки при которой все бы работало согласно их ожиданиям или даже не начинали пробовать разбираться.
Данная статья позиционируется, как “Вводная”, поэтому я применил стандартный Example от MikroTik для того, чтобы показать, как это можно настроить.
IPsec#Road_Warrior_setup_using_IKEv2_with_RSA_authentication
IPsec IKEv2 использует сертификаты для взаимодействия(RSA), вместо простой аутентификации.
Поэтому перед настройкой создадим сертификаты. К сертификатам предъявляется ряд требований:
- Поле “Common name” должно содержать IP или DNS адрес публичного IP серверной стороны
- Поле “SAN” (subject alternative name) должно содержать IP или DNS адрес публичного IP серверной стороны
- Требуются “EKU” (extended key usage) для сертификатов. Серверный tls-server, клиентский tls-client
Убедитесь, что дата и время на роутерах настроена корректно. Например включите NTP синхронизацию.
Т.к. механизм работы SSL сильно зависит от точного времени.
Настройка RB760iGS(hEX S) – IPsec Server
Для примера я возьму публичный IP адрес 2.2.2.2
Создаем основной сертификат, сертификат сервера и сразу сертификат клиента.
Winbox создание сертификатов для IPsec IKEv2
/certificate
add common-name=ipsec-ca name=ipsec-ca
/certificate
sign ipsec-ca ca-crl-host=2.2.2.2
/certificate
add common-name=2.2.2.2 subject-alt-name=IP:2.2.2.2 key-usage=tls-server name=ipsec-server
/certificate
sign ipsec-server ca=ipsec-ca
/certificate
add common-name=rw-client1 name=rw-client1 key-usage=tls-client
/certificate
sign rw-client1 ca=ipsec-ca
Winbox добавление Profile и Proposal
Добавляем ProfileДобавляем Proposals
Добавляем Profile для Phase_1(для IKEv2 это IKE_SA_INIT) и Proposal для Phase_2(для IKEv2 это IKE_AUTH)
/ip ipsec profile
add name=ike2
/ip ipsec proposal
add name=ike2 pfs-group=none
Winbox добавление IP Pool и IPsec Mode Config
Создаем пул IP адресов для IPsecСоздаем конфигурацию для передачи клиентам IPsec
Создадим IP пул адресов для IPsec. И используем Mode Config для раздачи IP адресов из пула.
/ip pool
add name=ipsec-pool ranges=172.20.0.2-172.20.0.254
/ip ipsec mode-config
add address-pool=ipsec-pool address-prefix-length=32 name=ike2-conf split-include=172.20.0.1 system-dns=no
Winbox добавление Group и Policies
Добавляем отдельную группуНастраиваем шаблон политикДобавляем шаблон политик
Создаем отдельную группу Group и шаблон политик Policies для нашей конфигурации.
/ip ipsec policy group
add name=ike2-policies
/ip ipsec policy
add dst-address=172.20.0.0/24 group=ike2-policies proposal=ike2 src-address=172.20.0.1/32 template=yes
Winbox добавление Peer
Добавляем пир IKEv2 для прослушивания
Создаем новый IPsec Peer, который будет слушать все входящие запросы IKEv2
/ip ipsec peer
add exchange-mode=ike2 name=ike2 passive=yes profile=ike2
Winbox добавление Identity
Добавляем идентификатор для клиентов
Создаем идентификатор Identity по умолчанию для сопоставления конкретных удаленных одноранговых узлов.
Она будет обрабатывать все пиры, но будет проверять идентичность пира с помощью его сертификата.
/ip ipsec identity
add auth-method=digital-signature certificate=ipsec-server generate-policy=port-strict mode-config=ike2-conf peer=ike2 policy-template-group=ike2-policies
Winbox добавление IPsec-Bridge
Добавляем пустой сетевой мостДобавляем IP адрес для сетевого моста IPsec
Добавляем loopback интерфейс т.к. у IPsec нет своего интерфейса для привязки IP адреса.
Таким интерфейсом будет служить обычный пустой Bridge, которому мы назначим IP адрес 172.20.0.1
/interface bridge
add name=IPsec-Bridge comment="IPsec"
/ip address
add address=172.20.0.1 interface=IPsec-Bridge
Winbox экспорт сертификата клиента
Находим наш сертификат и экспортируем егоВыбираем PKCS12 и обязательно вводим пароль, иначе основой сертификат CA не экспортируетсяНаходим файл в файловой системе роутера
Настройку IPsec на принимающей стороне закончили. Перед переходом к клиенту, необходимо выгрузить его сертификат из hEX S и загрузить в hEX
Экспортируем клиентсткий сертификат из hEX S
Выгружать будем в формате PKCS12. Пароль(export-passphrase) указывать обязательно!
/certificate
export-certificate rw-client1 export-passphrase=1234567890 type=pkcs12
PKCS12 это набор сертификатов, основной CA и клиенсткий. Поэтому при импорте мы получим сразу оба.
Сертификат будет лежать в файловой системе роутера.
Настройка RB750Gr3(hEX) – IPsec Client
Переносим каким-либо образом клиенсткий сертификат на hEX и импортируем его.
Я просто перетаскиваю через Winbox.
/certificate
import file-name=cert_export_rw-client1.p12 passphrase=1234567890
Далее мы повторяем большинство пунктов проделанных на стороне IPsec сервера с некоторыми изменениями.
Winbox создание Profile и Proposal на клиенте
Добавляем ProfileДобавляем Proposals
Создаем отдельный Profile для Phase_1(для IKEv2 это IKE_SA_INIT) и Proposal для Phase_2(для IKEv2 это IKE_AUTH)
/ip ipsec profile
add name=ike2-rw
/ip ipsec proposal
add name=ike2-rw pfs-group=none
Winbox создание Policies и Group на клиенте
Добавляем отдельную группуДобавляем шаблон политик
Для отделения новой конфигурации от конфигурации по умолчанию создаем отдельный шаблон политик Policies и группу Group
/ip ipsec policy group
add name=ike2-rw
/ip ipsec policy
add group=ike2-rw proposal=ike2-rw template=yes
Winbox создание Mode Config на клиенте
Создаем конфигурацию для получения параметров от сервера
Создаем конфигурацию Mode Config с responder=no для получения параметров от сервера
/ip ipsec mode-config
add name=ike2-rw responder=no
Winbox создание Peer и Identity на клиенте
Добавляем пир IKEv2 для подключенияДобавляем идентификатор клиента с указанием импортированного сертификата
Наконец, создаем конфигурации пира Peer и идентификатора Identity
/ip ipsec peer
add address=2.2.2.2/32 exchange-mode=ike2 name=ike2-rw-client profile=ike2-rw
/ip ipsec identity
add auth-method=digital-signature certificate=cert_export_rw-client1.p12_0 generate-policy=port-strict mode-config=ike2-rw peer=ike2-rw-client policy-template-group=ike2-rw
В логах двух роутеров вы должны увидеть записи процесса установления связи.
Например на hEX S:
new ike2 SA (R): 2.2.2.2[4500]-35.17.2.78[4500] spi:2d3453dd0ffda81a:a6a4ca7bhhha8098
peer authorized: 2.2.2.2[4500]-35.17.2.78[4500] spi:2d3453dd0ffda81a:a6a4ca7bhhha8098
acquired 172.20.0.2 address for 35.17.2.78, rw-client1
Ну или ошибки, если что-то не так 🙂
Winbox проверяем установилось ли IPsec соединение
Проверяем активные пирыПроверяем установленные ключи и аппаратное шифрование
Проверяем установилось ли IPsec соединение
/ip ipsec active-peers print
/ip ipsec installed-sa print
Для топологий, где необходимо связывать различные подсети, нужно больше настроек, в том числе применять Firewall! Но это тема для отдельной статьи.
Настройка туннелей для единой локальной сети
Я заметил интересную особенность, EoIP туннель просто так не работает на базе только IP адресов IPsec. Для EoIP необходим дополнительный уровень инкапсуляции, которую может обеспечить например еще один туннель GRE, даже с учетом того, что EoIP сам инкапсулирует ethernet фреймы в GRE, но как-то по своему.
Да, такая надстройка выглядит не красиво и накладывает свой Overhead на пропускную способность, но в рамках полученного результата я могу считать это допустимой мерой.
Напомню – основная цель использования EoIP, это возможность засунуть его в Bridge (для единой локальной подсети это важно)
Настройка GRE
Добавляем интерфейс GRE на двух роутерах и присваиваем им свои IP адреса.
Роутер RB760iGS(hEX S)
/interface gre
add comment=GRE local-address=172.20.0.1 name=GRE-IPsec-hEX remote-address=172.20.0.2
/ip address
add address=172.17.0.1/24 interface=GRE-IPsec-hEX
Роутер RB750Gr3(hEX)
/interface gre
add comment=GRE local-address=172.20.0.2 name=GRE-IPsec-hEX-S remote-address=172.20.0.1
/ip address
add address=172.17.0.2/24 interface=GRE-IPsec-hEX-S
Настройка EoIP
Мне достаточно было изменить IP адреса Local и Remote для EoIP интерфейсов, но я добавлю создание самих интерфейсов, если вы делаете с нуля.
Роутер RB760iGS(hEX S)
/interface eoip
add comment=EoIP local-address=172.17.0.1 name=EoIP-hEX remote-address=172.17.0.2 tunnel-id=100
/interface bridge port
add bridge=LAN-Bridge interface=EoIP-hEX
Роутер RB750Gr3(hEX)
/interface eoip
add comment=EoIP local-address=172.17.0.2 name=EoIP-hEX-S remote-address=172.17.0.1 tunnel-id=100
/interface bridge port
add bridge=LAN-Bridge interface=EoIP-hEX-S
Тестирование
Для проверки канала связи использовал встроенную утилиту Bandwidth Test и дополнительно Iperf3 для проверки проходящего трафика.
С роутера RB760iGS(hEX S)(тариф 500 Mbps) до роутера RB750Gr3(hEX)(тариф 100 Mbps)
UDP Random Data: Send=80 Mbps; Receive=60 Mbps;
TCP Random Data: Send=27.6 Mbps; Receive=33.5 Mbps;
Тестирование iperf3
Результаты тестирования iperf3 между узлами в разных зонах одной локальной подсети через IPsec+GRE+EoIP
Для iperf3 запустил сервер на хосте Proxmox, провод в роутер RB760iGS(hEX S).
Клиентом являлся ПК с Windows 10, подключенный через Wifi(PCE-AC68) к Asus RT-AC66U, а Asus в свою очередь подключен кабелем к роутеру RB750Gr3(hEX).
iperf3-TCP: Send=84.6 Mbps; Receive=84.3 Mbps;
Про скорость через туннель OpenVPN + EoIP я говорил в начале статьи. Хотя иногда бывали скачки до 40 Mbps, но их можно не брать в расчет. Т.е. утилизация канала связи в 100 Mbps у OpenVPN в RouterOS очень слабая.
Можно его использовать для каких-то не требующих высоких скоростей каналов.
Заключение
По итогу мы получили интересную картину с улучшенными скоростными характеристиками, но несколько более сложной настройкой.
Не могу сказать, что это сложно. Просто требуется чуть больше времени, чтобы разобраться и научиться. Хотя параметров у IPsec существенно больше.
Главное помнить, что IPsec сам по себе не VPN, а всего лишь набор протоколов для обеспечения защиты передаваемых данных и обеспечения связности между несколькими узлами.
А уже непосредственно VPN, строится на базе установленной IPsec связи.
Схема связности топологии сети на IPsec-GRE-EoIP
Высказывайте свои мысли по поводу IPsec, с какими вы столкнулись сложностями, как вышли из таких ситуаций, может быть расскажите о каких-то подводных камнях!
Если есть, чем поделиться с сообществом, добро пожаловать в комментарии! Глядишь насобираем на статью 🙂
P.S.
Для более простого создания VPN, я перешел на L2TP/IPsec+EoIP, аппаратное шифрование присутствует, скорость держит на том же уровне, что и IPsec+GRE+EoIP
Пришлось чутка с MTU разобраться, но все работает стабильно 😉
Благодарю за ваше время!
Всего хорошего на просторах Интернета 😉
Выразить благодарность автору
Если Вам не безразлична судьба блога или Вы просто хотите отблагодарить Автора за его труд, смело переходите на страницу Поддержки, там описана вся информация, по тому, как это сделать. Заранее благодарен вам за данную инициативу!
#seo
- IPsec VPN
- Site to Site IPsec через NAT провайдера
- Настройка туннеля IPsec
- IPsec протокол для VPN
VPN-сервер IKEv2
Настраиваем часовой пояс, NTP-клиента.
/system clock set time-zone-autodetect=no time-zone-name=Europe/Astrakhan /system ntp client set enabled=yes server-dns-names=1.ru.pool.ntp.org,2.ru.pool.ntp.org,3.ru.pool.ntp.org
Добавляем бридж и вешаем пул адресов на него же
/interface bridge add name=IKE2-loopback /ip address add address=10.0.100.1/24 interface=IKE2-loopback network=10.0.100.0 /ip pool add name="IKE2" ranges=10.0.100.100-10.0.100.200
Настройку DNS вам нужно провести самостоятельно в зависимости от вашей специфики, но в итоге нам нужно, чтобы по адресу vpn.dnsname.ru пинговался IP-адрес настраиваемого VPN-сервера 66.66.66.66.
Следующий шаг — генерация сертификатов. Я разбил команды на блоки не случайно. Ошибки при генерации сертификатов нам не нужны. Выполняем по порядку, дожидаясь завершения процесса подписания, не прерывать!!!!
Генерируем корневой сертификат:
/certificate add name=CA.vpn.dnsname.ru country=RU state=RU \ locality="Astrakhan region" organization=Astrakhan \ common-name=CA.vpn.dnsname.ru subject-alt-name=IP:66.66.66.66 \ key-size=2048 days-valid=3650 trusted=yes \ key-usage=digital-signature,key-encipherment,data-encipherment,key-cert-sign,crl-sign sign CA.vpn.dnsname.ru
Генерируем сертификат VPN-сервера:
add [email protected] country=RU state=RU locality="Astrakhan region" \ organization=Astrakhan [email protected] subject-alt-name=DNS:vpn.dnsname.ru \ key-size=2048 days-valid=3560 trusted=yes key-usage=tls-server sign [email protected] ca=CA.vpn.dnsname.ru
Создаём шаблон для дальнейшего создания сертификатов через копирование с шаблона:
add [email protected] country=RU state=RU locality="Astrakhan region" \ organization=Astrakhan [email protected] \ subject-alt-name=email:[email protected] key-size=2048 days-valid=3650 \ trusted=yes key-usage=tls-client
Сертификат для схемы Site 2 Site (для микротика Site-2):
add [email protected] [email protected] \ [email protected] subject-alt-name=email:[email protected] sign [email protected] ca=CA.vpn.dnsname.ru
Для первого клиента:
add [email protected] [email protected] \ [email protected] subject-alt-name=email:[email protected] sign [email protected] ca=CA.vpn.dnsname.ru
Для второго клиента, а остальные по той же схеме:
add [email protected] [email protected] \ [email protected] subject-alt-name=email:[email protected] sign [email protected] ca=CA.vpn.dnsname.ru
Далее экспортируем сгенерированные ключи, но обратите внимание, что сертификаты экспортируются в разных форматах (pem и pkcs12). Обязательно установите пароль при экспорте, т.к. при его отсутствии ошибок не будет, но работать VPN тоже не будет. Ни в коем случае не экспортируйте CA-сертификат с паролем, т.к. тогда экспортируется и закрытый ключ.
/certificate export-certificate CA.vpn.dnsname.ru type=pem /certificate export-certificate [email protected] type=pem export-passphrase=passwordforexport /certificate export-certificate [email protected] type=pem export-passphrase=passwordforexport /certificate export-certificate [email protected] type=pkcs12 export-passphrase=passwordforexport /certificate export-certificate [email protected] type=pkcs12 export-passphrase=passwordforexport
Скачиваем экспортированные сертификаты и сохраняем в одну папку. Я еще и переименовал скаченные сертификаты для удобства, удалив начало cert_export_.
Чуть настроим FireWall и изменим MSS. Правила размещайте перед запрещающими!!!! Я расположу их в самом начале списка (place-before=0)
/ip firewall filter add action=accept chain=input comment="IKE2 - Accept UDP 500,4500 IPSec" \ dst-address=66.66.66.66 dst-port=500,4500 protocol=udp place-before=0 add action=accept chain=input comment="IKE2 - Accept IPSec-esp" dst-address=\ 66.66.66.66 protocol=ipsec-esp place-before=0 add action=accept chain=input comment="Accept - In Ipsec" ipsec-policy=\ in,ipsec src-address=10.0.100.0/24 place-before=0 add action=accept chain=forward comment=\ "Accept - All Traffic from VPN to ANY" dst-address=192.168.0.0/22 \ ipsec-policy=in,ipsec src-address=10.0.100.0/24 place-before=0 add action=accept chain=forward comment=\ "Accept - All Traffic from VPN to ANY" dst-address=0.0.0.0/0 \ ipsec-policy=in,ipsec src-address=10.0.100.0/24 place-before=0 /ip firewall mangle add action=change-mss chain=forward dst-address=10.0.100.0/24 ipsec-policy=\ in,ipsec new-mss=1360 passthrough=yes protocol=tcp tcp-flags=syn tcp-mss=\ !0-1360 place-before=0
Добавим правила NAT и поместим их над правилом основного маскарада:
/ip firewall nat add action=masquerade chain=srcnat comment="ike2 masq non ipsec" \ ipsec-policy=out,none out-interface-list="WAN interfaces" place-before=0 add action=masquerade chain=srcnat comment="ike2 masq non ipsec" \ ipsec-policy=out,none out-interface-list="WAN interfaces" src-address=\ 10.0.100.0/24 place-before=0 add action=src-nat chain=srcnat comment="ike2 masq non ipsec" ipsec-policy=\ out,none out-interface=WAN src-address=10.0.100.0/24 to-addresses=\ 66.66.66.66 place-before=0
Настраиваем параметры IPSec. Настройка едина как для конфигурации Client 2 Site, так и для Site 2 Site:
/ip ipsec policy group add name="clients" add name="s2s" /ip ipsec profile add dh-group=modp2048,modp1536,modp1024 enc-algorithm=aes-256,aes-192,aes-128 \ hash-algorithm=sha256 name="vpn.dnsname.ru" /ip ipsec peer add exchange-mode=ike2 local-address=66.66.66.66 name=\ "peer VPN" passive=yes profile="vpn.dnsname.ru" /ip ipsec proposal add auth-algorithms=sha512,sha256,sha1 enc-algorithms="aes-256-cbc,aes-256-ctr\ ,aes-256-gcm,aes-192-ctr,aes-192-gcm,aes-128-cbc,aes-128-ctr,aes-128-gcm" \ lifetime=8h name="vpn.dnsname.ru" pfs-group=none /ip ipsec mode-config add address-pool=IKE2 address-prefix-length=32 name=clients.vpn.dnsname.ru split-include=\ 0.0.0.0/0 static-dns=10.0.100.1 system-dns=no add address=10.0.100.2 name=s2s.vpn.dnsname.ru split-include=10.0.100.1 static-dns=10.0.100.1 \ system-dns=no /ip ipsec identity add auth-method=digital-signature [email protected] \ generate-policy=port-strict match-by=certificate mode-config=clients.vpn.dnsname.ru \ peer="peer VPN" policy-template-group="clients" \ [email protected] remote-id=user-fqdn:[email protected] add auth-method=digital-signature [email protected] \ generate-policy=port-strict match-by=certificate mode-config=clients.vpn.dnsname.ru \ peer="peer VPN" policy-template-group="clients" \ [email protected] remote-id=user-fqdn:[email protected] add auth-method=digital-signature [email protected] \ generate-policy=port-strict match-by=certificate mode-config=s2s.vpn.dnsname.ru \ peer="peer VPN" policy-template-group="s2s" \ [email protected] remote-id=user-fqdn:[email protected] /ip ipsec policy add dst-address=10.0.100.2/32 group=s2s proposal=vpn.dnsname.ru src-address=10.0.100.1/32 template=yes add dst-address=10.0.100.0/24 group=clients proposal=vpn.dnsname.ru src-address=0.0.0.0/0 template=yes
Сразу добавим GRE-туннель, который в дальнейшем позволит нам легко настроить маршрутизацию между офисами:
/interface gre add local-address=10.0.100.1 name="IKEv2-GRE-Tunnel" remote-address=10.0.100.2 /ip route add distance=1 dst-address=10.10.10.0/24 gateway="IKEv2-GRE-Tunnel"
На этом настройку VPN-сервера можно считать законченной и пора переходить на сторону клиента.
Первым на очереди комп с установленной Windows 10 Pro x64 версия 1903.
В винде кликаем правой кнопкой мыши на значок сетевого подключения и выбираем пункт ОТКРЫТЬ ПАРАМЕТРЫ СЕТИ И ИНТЕРНЕТ.
Слева выбираем раздел VPN и справа ДОБАВИТЬ VPN ПОДКЛЮЧЕНИЕ:
Поставщик — Windows (встроенные)
Имя подключения — произвольно
Имя или адрес сервера — vpn.dnsname.ru
Тип VPN — IKEv2
и нажимаем сохранить.
Далее кликаем правой кнопкой мыши на значок сетевого подключения и выбираем пункт ОТКРЫТЬ ПАРАМЕТРЫ СЕТИ И ИНТЕРНЕТ.
В правой части левый клик на пункте НАСТРОЙКА ПАРАМЕТРОВ АДАПТЕРА и в открывшемся окне правый клик на созданном VPN-подключении -> СВОЙСТВА.
В разделе БЕЗОПАСНОСТЬ пункт ШИФРОВАНИЕ ДАННЫХ — самое стойкое (отключиться, если нет шифрования)
ПРОВЕРКА ПОДЛИННОСТИ — выбираем ИСПОЛЬЗОВАТЬ СЕРТИФИКАТЫ КОМПЬЮТЕРА.
В случае если вам нужно выходить в интернет через шлюз подключенной через VPN сети, то выбираем вкладку СЕТЬ, двойной левый клик на IP версии 4, в открытом окне ДОПОЛНИТЕЛЬНО и далее во вкладке ПАРАМЕТРЫ IP ставьте галку ИСПОЛЬЗОВАТЬ ОСНОВНОЙ ШЛЮЗ В УДАЛЕННОЙ СЕТИ.
Далее импортируем сертификаты, которые экспортировали на предыдущем этапе:
-
[email protected]. Двойной левый клик по сохраненному серту, установить и в пункте РАСПОЛОЖЕНИЕ ХРАНИЛИЩА выбираем ЛОКАЛЬНЫЙ КОМПЬЮТЕР, а в пункте ХРАНИЛИЩЕ СЕРТИФИКАТОВ выбираем ПОМЕСТИТЬ ВСЕ СЕРТИФИКАТЫ В ВЫБРАННОЕ ХРАНИЛИЩЕ и по кнопке выбираем хранилище ДОВЕРЕННЫЕ КОРНЕВЫЕ ЦЕНТРЫ СЕРТИФИКАЦИИ. Остальное по схеме далее -> далее -> готово. -
[email protected]. Здесь также нужно выбрать хранилище ЛОКАЛЬНЫЙ КОМПЬЮТЕР, а в пункте ХРАНИЛИЩЕ СЕРТИФИКАТОВ выбираем ПОМЕСТИТЬ ВСЕ СЕРТИФИКАТЫ В ВЫБРАННОЕ ХРАНИЛИЩЕ и по кнопке выбираем хранилище ЛИЧНОЕ. Не забываем ввести пароль, который использовали при экспорте (в этой заметке пароль passwordforexport). Далее -> далее -> готово.
Можно подключаться.
Настраиваем часовой пояс, NTP-клиента.
/system clock set time-zone-autodetect=no time-zone-name=Europe/Astrakhan /system ntp client set enabled=yes server-dns-names=1.ru.pool.ntp.org,2.ru.pool.ntp.org,3.ru.pool.ntp.org
Заходим на МикроТик Site-2 и перекидываем на него скаченные сертификаты CA, VPN и S2S. В сумме у вас должно быть 6 файлов:
- CA.vpn.dnsname.ru.crt
- CA.vpn.dnsname.ru.key
- [email protected]
- [email protected]
- [email protected]
- [email protected]
и импортируем их по порядку. Обратите внимание, что импортировать нужно сначала CRT, а затем KEY.
/certificate import [email protected] passphrase=passwordforexport import [email protected] passphrase=passwordforexport import [email protected] passphrase=passwordforexport import [email protected] passphrase=passwordforexport import [email protected] passphrase=passwordforexport import [email protected] passphrase=passwordforexport
Настроим FireWall, параметры IPsec, добавим GRE-туннель и добавим маршрут в сеть Site-1:
/ip firewall filter add action=accept chain=input comment="IKE2 - Accept UDP 500,4500 IPSec" \ src-address=66.66.66.66 dst-port=500,4500 protocol=udp place-before=0 add action=accept chain=input comment="IKE2 - Accept IPSec-esp" src-address=\ 66.66.66.66 protocol=ipsec-esp place-before=0 add action=accept chain=input comment="Accept - In Ipsec" ipsec-policy=\ in,ipsec dst-address=10.0.100.0/24 place-before=0 add action=accept chain=forward comment=\ "Accept - All Traffic from VPN to ANY" dst-address=10.10.10.0/24 \ ipsec-policy=in,ipsec src-address=10.0.100.0/24 place-before=0 add action=accept chain=forward comment=\ "Accept - All Traffic from VPN to ANY" dst-address=0.0.0.0/0 \ ipsec-policy=in,ipsec src-address=10.0.100.0/24 place-before=0 /ip ipsec policy group add name="s2s" /ip ipsec profile add dh-group=modp2048,modp1536,modp1024 enc-algorithm=aes-256,aes-192,aes-128 \ hash-algorithm=sha256 name="vpn.dnsname.ru" /ip ipsec peer add address=66.66.66.66/32 exchange-mode=ike2 name="peer VPN" profile=vpn.dnsname.ru /ip ipsec proposal add auth-algorithms=sha512,sha256,sha1 enc-algorithms="aes-256-cbc,aes-256-ctr\ ,aes-256-gcm,aes-192-ctr,aes-192-gcm,aes-128-cbc,aes-128-ctr,aes-128-gcm" \ lifetime=8h name="vpn.dnsname.ru" pfs-group=none /ip ipsec mode-config add name=s2s.vpn.dnsname.ru responder=no /ip ipsec policy add dst-address=10.0.100.1/32 group=s2s proposal=vpn.dnsname.ru src-address=10.0.100.2/32 template=yes /ip ipsec identity add auth-method=digital-signature [email protected] \ generate-policy=port-strict match-by=certificate mode-config=s2s.vpn.dnsname.ru \ peer="peer VPN" policy-template-group="s2s" \ [email protected] remote-id=user-fqdn:[email protected] /interface gre add local-address=10.0.100.2 name="IKEv2-GRE-Tunnel" remote-address=10.0.100.1 /ip route add distance=1 dst-address=192.168.0.0/22 gateway="IKEv2-GRE-Tunnel"
Если вы всё сделали по инструкции, то на данном этапе туннель должен заработать! Если же это не так, то попробуйте отключить запрещающие правила на FireWall на обоих маршрутизаторах.
Настраиваем IKEv2 VPN-сервер на роутерах Mikrotik с аутентификацией по сертификатам
01:28 26.04.2020
Настраиваем IKEv2 VPN-сервер на роутерах Mikrotik с аутентификацией по сертификатам
Сейчас, когда многие настраивают VPN для работы удаленных сотрудников, выбор протокола становится как никогда актуальным. С одной стороны стоят поддерживаемые современными ОС протоколы PPTP и L2TP, которые имеют ряд существенных недостатков и ограничений, с другой OpenVPN, который всем хорош, но требует установки стороннего ПО. При этом как-то забывают о быстром и безопасном IKEv2, основанном на IPsec новом протоколе, также поддерживаемом всеми современными ОС.
Почему именно IKEv2? Данный протокол входит в группу протоколов IPsec и обеспечивает высокий уровень безопасности, включая аутентификацию клиента с использованием сертификата, а также проверку подлинности сервера клиентом, что исключает атаки типа «человек посередине». При поддержке аппаратного ускорения IPsec со стороны оборудования показывает хорошую скорость соединения относительно других типов VPN в RouterOS и весьма прост в настройке с клиентской стороны, не требует добавления маршрутов.
К недостаткам можно отнести достаточную сложность настройки серверной части, которая требует выполнения определенных условий и наличия базового объема знаний о работе IPsec. В данной статье мы не будем углубляться в теорию, сделав упор на практическую сторону вопроса, ограничившись краткими пояснениями необходимости тех или иных настроек.
Создание центра сертификации и выпуск сертификатов
Когда мы говорим об использовании сертификатов для аутентификации, то подразумеваем наличие инфраструктуры открытых ключей (PKI), образующей область доверия, за счет чего появляется возможность проверки подлинности любого субъекта инфраструктуры без привлечения третьих служб и списков пользователей. В основе PKI лежит центр сертификации — CA, выпускающий сертификаты и дающий возможность убедиться в их подлинности при помощи корневого публичного сертификата.
В нашем случае центр сертификации будет создан средствами RouterOS прямо на маршрутизаторе. Для этого перейдем в System — Certificate и выпустим корневой сертификат нашего CA.
Красным указаны обязательные к заполнению поля. Name — видимое имя сертификата и Common Name — имя субъекта, которому выдан сертификат, в нашем случае это ca. Key Size — размер ключа, ключи размером менее 2048 байт не считаются безопасными, Days Valid — время действия сертификата, в нашем случае 10 лет.
Выделенный зеленым блок не является обязательным, но мы советуем его заполнять, дабы в дальнейшем не пришлось угадывать, что это за сертификат и кому и кем он выдан.
Затем перейдем на закладку Key Usage и оставим только crl sign и key cert. sign, затем нажмем Apply, чтобы применить изменения, после чего подпишем сертификат. нажав кнопку Sign, в открывшемся окне укажем CA CRL Host, в качестве которого следует использовать один из IP-адресов роутера.
В терминале эти же действия можно выполнить командой:
/certificate
add name=ca country="RU" state="31" locality="BEL" organization="Interface LLC" common-name="ca" key-size=2048 days-valid=3650 key-usage=crl-sign,key-cert-sign
sign ca ca-crl-host=192.168.103.1
Следующим шагом выпустим сертификат сервера. Обратите внимание, что сервер обязательно должен иметь выделенный IP адрес и, желательно, доменное имя. Последнее условие не является обязательным, но предпочтительно, так как позволит отвязаться от использования адреса и в случае изменения IP вам не придется перевыпускать сертификаты и менять настройки клиентских подключений.
Заполнение полей в целом повторяет предыдущий пример, за исключением Common Name и Subject Alt. Name. Здесь мы указываем IP-адрес или FQDN по которому клиенты будут подключаться к серверу. Если вы используете IP-адрес, то тип записи в поле Subject Alt. Name нужно сменить на IP.
Обратите внимание, если вы выпустили сертификат с указанием FQDN, а подключить клиента попытаетесь по IP-адресу, либо наоборот, то такое соединение окажется невозможным.
На закладке Key Usage укажем единственное значение tls server и подпишем наш сертификат закрытым ключом центра сертификации CA.
Эти же действия в терминале:
/certificate
add name=vpn.interface31.lab country="RU" state="31" locality="BEL" organization="Interface LLC" common-name="vpn.interface31.lab" subject-alt-name=DNS:"vpn.interface31.lab" key-size=2048 days-valid=3650 key-usage=tls-server
sign vpn.interface31.lab ca="ca"
Теперь можно выпускать клиентские сертификаты, это можно сделать как сразу, так и потом. Никаких особых требований здесь нет, в качестве имени указывайте максимально понятное значение, скажем, ФИО сотрудника или наименование офиса. Потому как понять кому принадлежит сертификат с CN IvanovIA не составит особого труда, в отличие от какого-нибудь безликого client3. Также обратите внимание на опцию Days Valid, не следует выдавать клиентские сертификаты на большой срок.
В Key Usage также указываем единственное назначение сертификата — tls client и подписываем его закрытым ключом CA.
Команды для терминала:
/certificate
add name=SmirnovaMV country="RU" state="31" locality="BEL" organization="Interface LLC" common-name="SmirnovaMV" key-size=2048 days-valid=365 key-usage=tls-client
sign SmirnovaMV ca="ca"
Для использования на клиентских устройствах сертификаты следует экспортировать, наиболее удобно использовать для этого формат PKCS12, который в одном файле содержит закрытый ключ клиента, его сертификат и корневой сертификат CA. Для этого выберите сертификат в списке и в меню правой кнопки мыши укажите действие Export. В поле Type укажите PKCS12, а в Export Passphrase следует указать пароль (не менее 8 символов), в противном случае закрытый ключ выгружен не будет.
Это же можно сделать командой:
/certificate
export-certificate SmirnovaMV type=pkcs12 export-passphrase=0123456789
Скачать экспортированные сертификаты можно из раздела Files.
Настройка IKEv2 VPN-сервера
Здесь мы вступаем в достаточно сложную область настройки IPsec, объем статьи не позволяет подробно останавливаться на назначении каждой настройки, поэтому если вы не уверены в своих действиях, то мы не рекомендуем отклоняться от указанных ниже настроек.
Перейдем в IP — IPsec — Profiles и создадим новый профиль, который задает параметры для установления соединения. Все параметры оставляем по умолчанию, кроме наименования, которому следует дать осмысленное имя.
Либо выполните команду в терминале:
/ip ipsec profile
add name=IKEv2
Затем перейдем на закладку Proposals — предложения, который содержит параметры криптографии предлагаемые для соглассования подключающимся клиентам. Создадим новое предложение, которое сформировано с учетом используемых современными ОС алгоритмов и изменение его состава может либо ослабить безопасность, либо сделать подключение некоторых клиентов невозможным.
Параметры по умолчанию нам не подойдут, поэтому в блоке Encr. Algorithms убираем 3des и добавляем aes-128-cbc, aes-192-cbc, aes-256-cbc.
В терминале достаточно простой команды:
/ip ipsec proposal
add name=IKEv2 pfs-group=none
Здесь мы сталкиваемся с одной особенностью: создаваемые через терминал и Winbox предложения содержат различный набор параметров. То, что создается в терминале полностью соответствует приведенным выше на скриншоте требованиям.
Для выдачи VPN-клиентам нам потребуется отдельный диапазон адресов, перейдем в IP — Pool и создадим новый пул, в нашем случае будет использован диапазон адресов 10.20.0.100 — 10.20.0.199:
Снова вернемся к настройкам IPsec и создадим конфигурацию, передаваемую клиенту для настройки его сетевых параметров, для этого перейдем на в IP — IPsec — Mode Configs. При создании новой конфигурации установим флаг Responder, в поле Address Pool укажем имя созданного нами пула, в поле Address Prefix Lenght укажем префикс адреса — 32, поле Split Include указываем подсети, запросы к которым следует направлять в туннель, здесь следует указать одну или несколько внутренних сетей, доступ к которым должны получать удаленные клиенты. В нашем случае это сеть условного офиса — 192.168.111.0/24. Наконец флаг System DNS предписывает клиенту использовать собственные DNS сервера.
Это же действие в терминале:
/ip ipsec mode-config
add address-pool=ikev2-pool address-prefix-length=32 name=IKEv2-cfg split-include=192.168.111.0/24
Если же вам нужно, чтобы клиенты использовали внутренние сервера имен, например, в Active Directory, то флаг System DNS следует снять и указать адреса требуемых DNS-серверов.
Команда для терминала будет выглядеть так:
/ip ipsec mode-config
add address-pool=ikev2-pool address-prefix-length=32 name=IKEv2-cfg split-include=192.168.111.0/24 static-dns=192.168.111.101,192.168.111.201 system-dns=no
На закладке Groups создадим новую группу, никаких настроек здесь нет, просто укажите уникальное имя:
/ip ipsec policy group
add name=ikev2-policies
Затем на закладке Policices создадим шаблон политики, которая будет указывать какой именно трафик будет подвергаться обработке IPsec и отправляться в туннель. В поле Src. Address оставляем 0.0.0.0/0, в поле Dst. Address указываем выделенный для VPN-сети диапазон: 10.20.0.0/24, устанавливаем флаг Template и указываем созданную нами ранее группу в поле Group.
На закладке Action в поле Proposal укажите созданный нами ранее набор предложений.
Эти же действия в терминале:
/ip ipsec policy
add dst-address=10.20.0.0/24 group=ikev2-policies proposal=IKEv2 src-address=0.0.0.0/0 template=yes
После чего перейдем в IP — IPsec — Peers создадим новый пир для приема подключений. Сразу установим флаг Passive, в поле Address указываем 0.0.0.0/24 (разрешаем подключаться из любого места), в поле Profile указываем созданный нами профиль, а в поле Exchange Mode укажем протокол обмена ключами — IKE2.
В терминале для получения аналогичного результата выполните:
/ip ipsec peer
add exchange-mode=ike2 name=IKEv2-peer passive=yes profile=IKEv2
На закладке Identities создадим новую настройку идентификации подключающихся клиентов. Здесь много настраиваемых полей и нужно быть предельно внимательными, чтобы ничего не упустить и не перепутать. В поле Peer — указываем созданный нами пир, Auth. Method — способ аутентификации — digital signature, Certificate — сертификат сервера. Policy Template Group — группа шаблонов политик — выбираем созданную нами группу, Mode Configuration — указываем созданную нами конфигурацию для клиентов, Generate Policy — port strict.
Команда для терминала:
/ip ipsec identity
add auth-method=digital-signature certificate=vpn.interface31.lab generate-policy=port-strict mode-config=IKEv2-cfg peer=IKEv2-peer policy-template-group=ikev2-policies
На этом настройка сервера завершена, осталось лишь добавить правила брандмауэра, разрешающие работу с ним. Для того, чтобы клиенты могли подключаться к серверу перейдем в IP — Firewall — Filter Rules и добавим правило: Chain — input, Protocol — udp, Dst. Port — 500, 4500, In. Interface — ваш внешний интерфейс (в нашем случае это ether1). Действие не указываем, так как по умолчанию применяется accept.
Для добавления правила в терминале:
/ip firewall filter
add action=accept chain=input dst-port=500,4500 in-interface=ether1 protocol=udp
Но это еще не все, чтобы VPN-клиенты могли получить доступ к внутренней сети, следует добавить еще одно правило. На закладке General укажите Chain — forward и Interface — внешний интерфейс, затем на Advanced: IPsec Policy — in:ipsec.
/ip firewall filter
add action=accept chain=forward in-interface=ether1 ipsec-policy=in,ipsec
Оба правила следует расположить выше, чем запрещающие в каждой из цепочек.
Настройка подключения клиента в Windows
Прежде всего импортируем сертификат, для этого можно просто выполнить двойной клик на файле сертификата, в открывшемся Мастере импорта в качестве Расположения хранилища укажите Локальный компьютер, остальные параметры принимаются по умолчанию.
Затем создадим новое подключение штатными инструментами. А качестве Типа VPN укажем IKEv2, а в качестве Типа данных для входа — Сертификат. Также обратите внимание, что в строка Имя или адрес сервера должно совпадать с Common Name сертификата сервера, в противном случае подключение установить не удастся.
После чего откроем свойства созданного подключения и перейдем на закладку Безопасность, где установим переключатель Проверка подлинности в положение Использовать сертификаты компьютеров.
Теперь можно подключаться, если все сделано правильно — подключение будет успешно. Проверим таблицу маршрутов:
Как видим, маршрут к нашей внутренней сети 192.168.111.0/24 был добавлен автоматически и никаких ручных настроек клиента не требуется.
Настройка подключения клиента в Linux
Точно также начнем с сертификата, но в данном случае нам потребуется немного больше действий. Будем считать, что сертификат находится в корневой директории пользователя, для которого мы настраиваем подключение. Все последующие команды также следует выполнять от его имени.
Перейдем в домашнюю директорию и создадим скрытую папку для хранения ключей и сертификатов:
cd ~
mkdir .ikev2
Теперь нам нужно экспортировать из PKCS12 файла корневой сертификат CA, а также ключ и сертификат пользователя. Начнем с корневого сертификата:
openssl pkcs12 -in cert_export_SmirnovaMV.p12 -out .ikev2/IKEv2_CA.crt -nodes -nokeys -cacerts
Затем экспортируем сертификат клиента:
openssl pkcs12 -in cert_export_SmirnovaMV.p12 -out .ikev2/SmirnovaMV.crt -nodes -nokeys
И его закрытый ключ. При экспорте закрытого ключа нас попросят установить для него пароль, минимальная длинна пароля 8 символов. Пропустить этот шаг нельзя.
openssl pkcs12 -in cert_export_SmirnovaMV.p12 -out .ikev2/SmirnovaMV.pass.key -nocerts
На каждом из этих этапов нам нужно будет вводить парольную фразу, указанную при экспорте сертификата пользователя на роутере.
И наконец уберем пароль с закрытого ключа пользователя:
openssl rsa -in .ikev2/SmirnovaMV.pass.key -out .ikev2/SmirnovaMV.key
Во время этого действия вы должны будете ввести пароль, который указали при создании ключа.
Для того, чтобы иметь возможность создавать VPN-подключения в графическом интерфейсе установим необходимый плагин для Network Manager:
sudo apt install network-manager-strongswan
После чего вам станут доступны настройки VPN IKEv2 соединения.
Настройки соединения достаточно просты. В секции Gateway указываем адрес сервера и путь к корневому сертификату CA. В секции Client устанавливаем Authentication: Certificate/private key и указываем пути к сертификату и закрытому ключу клиента. И в секции Option обязательно устанавливаем флаг Request an inner IP address. На этом настройка соединения окончена, можно подключаться.
Если мы после подключения проверим таблицу маршрутизации, то не обнаружим маршрута к офисной сети, но при этом она будет доступна:
Но никакой ошибки здесь нет. Просто Linux в данной ситуации поступает более правильно, вместо маршрута в системе создается соответствующая политика IPsec, которая направляет трафик к внутренней сети в туннель согласно тому, что мы указали в конфигурации клиента (Mode Configs) на роутере.
read more at Записки IT специалиста
Strongswan и клиент Mikrotik как связать? — Хабр Q&A
Не могу настроить связку из Strongswan и клиента Mikrotik
Другие вариант — windows и android работают без проблем
Сейчас конфигурация выглядит так:
Strongswan ———————-> Mikrotik
109.122.11.31 195.16.10.10 : PSK «01234567899876543210»
conn Mikrot
rightsendcert=never
forceencaps=yes
left=109.122.11.31
leftsubnet=10.86.86.0/24
right=195.16.10.10
rightsubnet=172.23.36.0/24
ike=aes256-sha256-modp1024!
esp=aes256-sha256-modp1024!
keyingtries=0
ikelifetime=1h
lifetime=24h
authby=secret
auto=start
keyexchange=ikev1
type=tunnel
В логах постоянные попытки
spoiler
Sep 8 17:53:16 server-1117368-1 charon: 09[ENC] parsed ID_PROT request 0 [ SA V V ]
Sep 8 17:53:16 server-1117368-1 charon: 09[IKE] received Cisco Unity vendor ID
Sep 8 17:53:16 server-1117368-1 charon: 09[IKE] received DPD vendor ID
Sep 8 17:53:16 server-1117368-1 charon: 09[IKE] 195.16.35.154 is initiating a Main Mode IKE_SA
Sep 8 17:53:16 server-1117368-1 charon: 09[ENC] generating ID_PROT response 0 [ SA V V ]
Sep 8 17:53:16 server-1117368-1 charon: 09[NET] sending packet: from 109.120.171.31[500] to 195.16.10.10[500] (120 bytes)
Sep 8 17:53:16 server-1117368-1 charon: 12[NET] received packet: from 195.16.10.10[500] to 109.122.11.31[500] (188 bytes)
Sep 8 17:53:16 server-1117368-1 charon: 12[ENC] parsed ID_PROT request 0 [ KE No ]
Sep 8 17:53:16 server-1117368-1 charon: 12[ENC] generating ID_PROT response 0 [ KE No ]
Sep 8 17:53:16 server-1117368-1 charon: 12[NET] sending packet: from 109.122.11.31[500] to 195.16.10.10[500] (196 bytes)
Sep 8 17:53:16 server-1117368-1 charon: 13[IKE] sending DPD request
Sep 8 17:53:16 server-1117368-1 charon: 13[ENC] generating INFORMATIONAL_V1 request 1615391926 [ HASH N(DPD) ]
Sep 8 17:53:16 server-1117368-1 charon: 13[NET] sending packet: from 109.122.11.31[500] to 195.16.10.10[500] (108 bytes)
Sep 8 17:53:16 server-1117368-1 charon: 09[NET] received packet: from 195.16.10.10[500] to 109.122.11.31[500] (92 bytes)
Sep 8 17:53:16 server-1117368-1 charon: 09[ENC] parsed ID_PROT request 0 [ ID HASH ]
Sep 8 17:53:16 server-1117368-1 charon: 09[CFG] looking for pre-shared key peer configs matching 109.122.11.31…195.16.10.10[195.16.10.10]
Sep 8 17:53:16 server-1117368-1 charon: 09[CFG] selected peer config «Mikrot»
Sep 8 17:53:16 server-1117368-1 charon: 09[IKE] IKE_SA Mikrot[3] established between 109.122.11.31[CN=czalls.hldns.ru]…195.16.10.10[195.16.10.10]
Sep 8 17:53:16 server-1117368-1 charon: 09[ENC] generating ID_PROT response 0 [ ID HASH ]
Sep 8 17:53:16 server-1117368-1 charon: 09[NET] sending packet: from 109.122.11.31[500] to 195.16.10.10[500] (108 bytes)
Sep 8 17:53:26 server-1117368-1 charon: 16[IKE] deleting IKE_SA Mikrot[2] between 109.122.11.31[CN=zcalls.hldns.ru]…195.16.10.10[195.16.10.10]
Sep 8 17:53:26 server-1117368-1 charon: 16[IKE] sending DELETE for IKE_SA Mikrot[2]
Sep 8 17:53:26 server-1117368-1 charon: 16[ENC] generating INFORMATIONAL_V1 request 941903393 [ HASH D ]
Sep 8 17:53:26 server-1117368-1 charon: 11[NET] received packet: from 195.16.10.10[500] to 109.122.11.31[500] (92 bytes)
Sep 8 17:53:26 server-1117368-1 charon: 11[IKE] received retransmit of request with ID 0, retransmitting response
Чистый IPsec IKEv2 между белым и серым IP |
Здравствуйте, уважаемые читатели!
В этой статье предлагается достаточно не простую тему создания шифрованного канала связи на базе набора протоколов IPsec.
В свое время я настроил достаточно удобную связку из OpenVPN и EoIP для организации единой локальной сети на нескольких удаленных точках.
Вот эти статьи:
Все вроде бы здорово, за небольшую скорость передачи по такому типу туннеля — Передача — 31 Мбит / с / Прием — 31 Мбит / с .В RouterOS, OpenVPN работает достаточно медленно и использует одно ядро на многоядерных системах. И это по моему основной проблеме. Т.к. то же ограничение на работу в TCP не сильно сказывается на производительность системы в целом, даже с учетом EoIP туннеля.
В общем эта несправедливость сподвигла меня на поиск лучшего решения с сохранением или улучшением шифрования.
Оба моих роутера по информации производителя аппаратное шифрование: IPsec # Hardware_acceleration, но не для OpenVPN, а для IPsec.
Это модели: RB750Gr3 (hEX) и RB760iGS (hEX S)
Так почему бы не использовать эту особенность себе во благо?
Забегая немного вперед скажу, что прогоняя трафик через роутеры (вперед), с помощью iperf3, мне удалось получить 83-85 Мбит / с при наименьшем канале в 100 Мбит / с.
Интересно? Тогда Добро пожаловать !!!
Настройка IPsec IKEv2 туннеля
Как известно сообществу специалистов по RouterOS, компания MikroTik впервые перекроила IPsec, начиная с прошивки 6.44 настройки принцип изменился.
Будьте внимательны. Большинство мануалов в интернете написаны для предыдущего типа конфигурирования !!!
Я придерживаюсь использования долгосрочных прошивок и настоящая статья написана с использованием прошивки 6.45.8
IPsec характерен тем, что умеет работать через NAT-провайдера (NAT-T), имеет отличное шифрование, да и в целом более защищен. Но есть одна проблема…
Кол-во настроек в IPsec отбивают всякое желание, что либо на нем делать. Потому что далеко не многие дошли до корректной настройки при которой все бы работало согласно их ожиданиям или даже не начинали пробовать разбираться.
Данная статья позиционируется, как «Вводная», поэтому я применил стандартный Пример от MikroTik для того, чтобы показать, как это можно настроить.
IPsec # Road_Warrior_setup_using_IKEv2_with_RSA_authentication
IPsec IKEv2 использует сертификаты для взаимодействия (RSA), вместо простой аутентификации.
Поэтому перед настройкой создадим сертификаты. К сертификатам предъявляется ряд требований:
- Поле «Общее имя» должно содержать IP или адрес публичного IP-сервера стороны
- Поле «SAN» (альтернативное имя субъекта) должно содержать IP или DNS адрес публичного IP сервера стороны
- Требуются «EKU» (расширенное использование ключей) для сертификатов.Серверный tls-сервер, клиентский tls-client
Убедитесь, что дата и время на роутерах настроена корректно. Например включите NTP синхронизацию.
Т.к. механизм работы SSL сильно зависит от точного времени.
Настройка RB760iGS (hEX S) — IPsec Server
Для примера я возьму публичный IP адрес 2.2.2.2
Создаем основной сертификат, сертификат сервера и сразу сертификат клиента.
Winbox создание сертификатов для IPsec IKEv2
/ сертификат
добавить common-name = ipsec-ca name = ipsec-ca
/ сертификат
подписать ipsec-ca ca-crl-host = 2.2.2.2
/ сертификат
добавить common-name = 2.2.2.2 subject-alt-name = IP: 2.2.2.2 key-usage = tls-server name = ipsec-server
/ сертификат
подписать ipsec-server ca = ipsec-ca
/ сертификат
добавить common-name = rw-client1 name = rw-client1 key-usage = tls-client
/ сертификат
подписать rw-client1 ca = ipsec-ca
Winbox добавление Профиль и Предложение
Добавляем ПрофильДобавляем Предложения
Добавляем Profile для Phase_1 (для IKEv2 это IKE_SA_INIT) и Proposal для Phase_2 (для IKEv2 это IKE_AUTH)
/ ip профиль ipsec
добавить имя = ike2
/ ip ipsec предложение
добавить name = ike2 pfs-group = none
Winbox добавление IP Pool и IPsec Mode Config
Создаем пул IP-адресов для IPsecСоздаем конфигурацию для передачи клиентов IPsec
Создадим IP пул адресов для IPsec.И Конфигурация режима для раздачи используется IP-адреса из пула.
/ ip бассейн
добавить name = ipsec-pool range = 172.20.0.2-172.20.0.254
/ ip ipsec режим-конфигурация
добавить пул адресов = ipsec-pool длина-префикса-адреса = 32 имя = ike2-conf split-include = 172.20.0.1 system-dns = no
Winbox добавление Группа и Политики
Добавляем отдельную группуНастраиваем шаблон политикДобавляем шаблон политик
Создаем отдельную группу Группа и шаблон политик Политики для нашей конфигурации.
/ ip группа политик ipsec
добавить name = ike2-policy
/ ip политика ipsec
добавить dst-адрес = 172.20.0.0 / 24 группа = предложение ike2-политик = ike2 src-адрес = 172.20.0.1 / 32 шаблон = да
Winbox добавление Peer
Добавляем пир IKEv2 для прослушивания
Создаем новый IPsec Peer, который будет слушать все входящие запросы IKEv2
/ ip IPsec одноранговый
добавить exchange-mode = ike2 name = ike2 passive = yes profile = ike2
Winbox добавление Identity
Добавляем идентификатор для клиентов
Создаем идентификатор по умолчанию для сопоставления конкретных удаленных одноранговых узлов.
Она будет обрабатывать все пиры, но будет проверять идентичность пира с помощью его сертификата.
/ ip идентификация ipsec
добавить auth-method = digital-signature certificate = ipsec-server generate-policy = port-strict mode-config = ike2-conf peer = ike2 policy-template-group = ike2-policy
Winbox добавление IPsec-Bridge
Добавляем пустой сетевой мостДобавляем IP-адрес для сетевого моста IPsec
Добавляем loopback интерфейс т.к. у IPsec нет своего интерфейса для привязки IP адреса.
Таким интерфейсом будет служить обычный пустой Bridge, которому мы назначили IP-адрес 172.20.0.1
/ интерфейсный мост
добавить name = IPsec-Bridge comment = "IPsec"
/айпи адрес
добавить адрес = 172.20.0.1 interface = IPsec-Bridge
Winbox экспорт сертификата клиента
Находим наш сертификат и экспортируем егоВыбираем PKCS12 и обязательно вводим пароль, иначе файл сертификата CA не экспортируетсяНаходим файл вой системе роутера
Настройку IPsec на принимающей закончили.Перед переходом к клиенту необходимо выгрузить его сертификат из hEX S и загрузить в hEX
Экспортируем клиентсткий сертификат из hEX S
Выгружать будем в формате PKCS12. Пароль (экспортная парольная фраза) указывать обязательно!
/ сертификат
экспорт-сертификат rw-client1 экспорт-пароль = 1234567890 тип = pkcs12
PKCS12 — это набор сертификатов, основной CA и клиенсткий. Поэтому при импорте мы получим сразу оба.
Сертификат будет лежать в файловой системе роутера.
Настройка RB750Gr3 (hEX) — Клиент IPsec
Переносим каким-либо образом клиенсткий сертификат на hEX и импортируем его.
Я просто перетаскиваю через Winbox.
/ сертификат
import file-name = cert_export_rw-client1.p12 passphrase = 1234567890
Другие типы сообщений IPsec с некоторыми изменениями.
Winbox создание профиля и предложение на клиенте
Добавляем ПрофильДобавляем Предложения
Создаем отдельный Профиль для Phase_1 (для IKEv2 это IKE_SA_INIT) и Proposal для Phase_2 (для IKEv2 это IKE_AUTH)
/ ip профиль ipsec
добавить имя = ike2-rw
/ ip ipsec предложение
добавить имя = ike2-rw pfs-group = none
Winbox создание политик и группы на клиенте
Добавляем отдельную группуДобавляем шаблон политик
Для отделения новой конфигурации от конфигурации по умолчанию создаем отдельный шаблон политик Политики и группа Группа
/ ip группа политик ipsec
добавить имя = ike2-rw
/ ip политика ipsec
добавить группу = ike2-rw предложение = ike2-rw template = да
Winbox Настройка режима создания на клиенте
Создаем конфигурацию для обеспечения параметров от сервера
Создаем конфигурацию Mode Config с Responder = no для получения параметров от сервера
/ ip ipsec mode-config
добавить имя = ike2-rw ответчик = нет
Winbox создание Peer и Identity на клиенте
Добавляем пир IKEv2 для подключенияДобавляем идентификатор клиента с указанием импортированного сертификата
Наконец, создаем конфигурацию пира и идентификатора Identity
/ ip IPsec одноранговый
добавить адрес = 2.2.2.2 / 32 exchange-mode = ike2 name = ike2-rw-client profile = ike2-rw
/ ip ipsec идентификатор
добавить auth-method = digital-signature certificate = cert_export_rw-client1.p12_0 generate-policy = port-strict mode-config = ike2-rw peer = ike2-rw-client policy-template-group = ike2-rw
В логах двух роутеров вы должны увидеть записи регистрации связи.
Например на hEX S:
новый ike2 SA (R): 2.2.2.2 [4500] -35.17.2.78 [4500] spi: 2d3453dd0ffda81a: a6a4ca7bhhha8098
авторизованный партнер: 2.2.2.2 [4500] -35.17.2.78 [4500] spi: 2d3453dd0ffda81a: a6a4ca7bhhha8098
приобрел адрес 172.20.0.2 для 35.17.2.78, rw-client1
Ну или ошибки, если что-то не так 🙂
Winbox проверяем установил соединение IPsec
Проверяем активные пирыПроверяем установленные ключи и аппаратное шифрование
Проверяем установилось соединение IPsec
/ ipsec печать активных узлов
/ ipsec установлен-sa печать
Для топологий, где необходимо связывать больше настроек, в том числе использовать Firewall! Но это тема для отдельной статьи.
Настройка туннелей для единой локальной сети
Я заметил интересную особенность, EoIP туннель просто так не работает на базе только IP адресов IPsec. Для EoIP необходим дополнительный уровень инкапсуляции, который может обеспечить, например, еще один туннель GRE, даже с учетом того, что EoIP сам инкапсулирует Ethernet-фреймы в GRE, но как-то по своему.
Да, такая надстройка не красиво и накладывает свои накладные расходы на пропускную способность, но в рамках результата результата можно считать это допустимой мерой.
Напомню — основная цель использования EoIP, это возможность засунуть его в мост (для единой локальной подсети это важно)
Настройка GRE
Добавляем интерфейс GRE на двух роутерах и присваиваем им свои IP-адреса.
Роутер RB760iGS (hEX S)
/ интерфейс gre
добавить комментарий = GRE local-address = 172.20.0.1 name = GRE-IPsec-hEX remote-address = 172.20.0.2
/айпи адрес
добавить адрес = 172.17.0.1 / 24 interface = GRE-IPsec-hEX
Роутер RB750Gr3 (hEX)
/ интерфейс gre
добавить комментарий = GRE local-address = 172.20.0.2 имя = GRE-IPsec-hEX-S удаленный-адрес = 172.20.0.1
/айпи адрес
добавить адрес = 172.17.0.2 / 24 interface = GRE-IPsec-hEX-S
Настройка EoIP
Мне достаточно было изменить локальные и удаленные IP-адреса для интерфейсов EoIP, но я добавлю самих интерфейсов, если вы делаете с нуля.
Роутер RB760iGS (hEX S)
/ интерфейс eoip
добавить комментарий = локальный-адрес EoIP = 172.17.0.1 имя = удаленный-адрес EoIP-hEX = 172.17.0.2 идентификатор-туннеля = 100
/ интерфейсный мост порт
добавить мост = LAN-Bridge interface = EoIP-hEX
Роутер RB750Gr3 (hEX)
/ интерфейс eoip
добавить комментарий = локальный-адрес EoIP = 172.17.0.2 имя = EoIP-hEX-S удаленный-адрес = 172.17.0.1 идентификатор-туннеля = 100
/ интерфейсный мост порт
добавить мост = LAN-Bridge interface = EoIP-hEX-S
Тестирование
Для проверки канала связи используйте встроенную утилиту Bandwidth Test и дополнительно Iperf3 для проверки проходящего трафика.
С роутера RB760iGS (hEX S) (тариф 500 Мбит / с) до роутера RB750Gr3 (hEX) (тариф 100 Мбит / с)
UDP Random Data: Send = 80 Мбит / с; Прием = 60 Мбит / с;
Случайные данные TCP: отправка = 27,6 Мбит / с; Получите = 33.5 Мбит / с;
Тестирование iperf3
Результаты тестирования iperf3 между узлами в разных периодических подсети через IPsec + GRE + EoIP
Для iperf3 запустил сервер на хосте Proxmox, провод в роутер RB760iGS (hEX S).
Клиентом являлся ПК с Windows 10, подключенный через Wi-Fi (PCE-AC68) к Asus RT-AC66U, а Asus в свою очередь подключен кабелем к роутеру RB750Gr3 (hEX).
iperf3-TCP: Отправить = 84,6 Мбит / с; Прием = 84,3 Мбит / с;
Про скорость через туннель OpenVPN + EoIP я говорил в начале статьи.Хотя иногда бывали скачки до 40 Мбит / с, но их можно не брать в расчет. Т.е. утилизация канала связи в 100 Мбит / с у OpenVPN в RouterOS очень слабая.
Можно его использовать для каких-то не требующих высоких скоростей каналов.
Заключение
По итогу мы получили интересную картину с улучшенными скоростными характеристиками, но несколько более сложной настройкой.
Не могу сказать, что это сложно. Просто требуется чуть больше времени, чтобы разобраться и научиться. Хотя параметров у IPsec больше.
Главное помнить, что IPsec сам по себе не VPN, а всего лишь набор протоколов для защиты передаваемых данных и сообщений между узлами.
А уже непосредственно VPN, строится на базе установленной IPsec связи.
Схема связности топологии сети на IPsec-GRE-EoIP
Высказывайте свои мысли по поводу IPsec, с какими вы столкнулись сложностями, как вышли из таких ситуаций, может быть расскажите о каких-то подводных камнях!
Если есть, чем поделиться с сообществом, добро пожаловать в комментарии! Глядишь насобираем на статью 🙂
стр.S.
Для более простого создания VPN, перешел на L2TP / IPsec + EoIP, аппаратное шифрование присутствует, скорость держит на том же уровне, что и IPsec + GRE + EoIP
Пришлось чутка с MTU разобраться, но все работает стабильно 😉
Благодарю за ваше время!
Всего хорошего на просторах Интернета
Выразить благодарность автору
Если Вам не безразлична судьба блога или Вы просто хотите отблагодарить Автора за его труд, смело переходите на страницу Поддержки, там описана вся информация, по тому, как это сделать.Заранее благодарен вам за эту инициативу!
#seo
- IPsec VPN
- Межсайтовый IPsec через NAT провайдера
- Настройка туннеля IPsec
- IPsec протокол для VPN
.
VPN-сервер IKEv2
Настраиваем часовой пояс, NTP-клиента.
/ системные часы установить time-zone-autodetect = no time-zone-name = Europe / Astrakhan / system ntp client set enabled = yes server-dns-names = 1.ru.pool.ntp.org, 2.ru.pool.ntp.org, 3.ru.pool.ntp.org
Добавляем бридж и вешаем пул на него же
/ интерфейсный мост добавить имя = IKE2-loopback / IP-адрес добавить адрес = 10.0.100.1 / 24 interface = IKE2-loopback network = 10.0,100,0 / ip pool add name = "IKE2" диапазоны = 10.0.100.100-10.0.100.200
Настройку DNS вам нужно провести самостоятельно в зависимости от конкретной специфики сервера, чтобы по адресу vpn.dnsname.ru был настроен IP-адрес настраиваемого VPN-66.66.66.66.
Следующий шаг — генерация сертификатов. Я разбил команды на блоки не случайно. Ошибки при генерации сертификатов нам не нужны. Выполняем по порядку, дожидаясь завершения подписания, не прерывать !!!!
Генерируем основной сертификат:
/ сертификат добавить name = CA.vpn.dnsname.ru страна = RU состояние = RU \ locality = Организация "Астраханская область" = Астрахань \ common-name = CA.vpn.dnsname.ru subject-alt-name = IP: 66.66.66.66 \ размер ключа = 2048 дней-действителен = 3650 доверенных = да \ использование ключа = цифровая подпись, шифрование ключа, шифрование данных, подпись сертификата ключа, подпись crl подпишите CA.vpn.dnsname.ru
Генерируем сертификат VPN-сервера:
добавить [email protected] country = RU state = RU locality = "Астраханская область" \ организация = Астрахань нарицательное = vpn @ vpn.dnsname.ru subject-alt-name = DNS: vpn.dnsname.ru \ размер ключа = 2048 дней действителен = 3560 доверенных = да использование ключа = tls-сервер подпишите [email protected] ca = CA.vpn.dnsname.ru
Создаём шаблон для дальнейшего создания сертификатов через копирование шаблон:
добавить [email protected] country = RU state = RU locality = "Астраханская область" \ организация = Астрахань [email protected] \ тема-alt-name = электронная почта: ~ clienttemplate @ vpn.dnsname.ru размер ключа = 2048 дней, срок действия = 3650 \ доверенный = да использование ключа = tls-client
Сертификат для схем Site 2 Site (для микротика Site-2):
добавить [email protected] [email protected] \ [email protected] subject-alt-name = электронная почта: [email protected] подпишите [email protected] ca = CA.vpn.dnsname.ru
Для первого клиента:
добавить [email protected] name = client-1 @ vpn.dnsname.ru \ [email protected] subject-alt-name = email: [email protected] подпишите [email protected] ca = CA.vpn.dnsname.ru
Для второго клиента, а остальные по той же схеме:
добавить [email protected] [email protected] \ [email protected] subject-alt-name = email: [email protected] подпишите [email protected] ca = CA.vpn.dnsname.ru
Далее экспортируем сгенерированные ключи, но обратите внимание, что сертификаты экспортируются в разных форматах (pem и pkcs12).Обязательно установите пароль при экспорте, т.к. при его отсутствии ошибок не будет, но работать VPN тоже не будет. Ни в коем случае не экспортируйте CA-сертификат с паролем, т.к. тогда экспортируется и закрытый ключ.
/ сертификат экспорт-сертификат CA.vpn.dnsname.ru type = pem / сертификат экспорт-сертификат [email protected] type = pem export-passphrase = passwordforexport / сертификат экспорт-сертификат [email protected] type = pem export-passphrase = passwordforexport / сертификат экспорт-сертификат клиент-1 @ vpn.dnsname.ru type = pkcs12 export-passphrase = passwordforexport / сертификат экспорт-сертификат [email protected] type = pkcs12 export-passphrase = passwordforexport
Скачиваем экспортированные сертификаты и сохраняем в одну папку. Я еще и переименовал скаченные сертификаты для удобства, удалив начало cert_export_.
Чуть настроим FireWall и изменим MSS. Правила размещайте перед запрещающими !!!! Я расположу их в самом начале списка (place-before = 0)
/ ip фильтр межсетевого экрана add action = accept chain = input comment = "IKE2 - Accept UDP 500,4500 IPSec" \ dst-адрес = 66.66.66.66 dst-port = 500,4500 протокол = udp place-before = 0 add action = accept chain = input comment = "IKE2 - Accept IPSec-esp" dst-address = \ 66.66.66.66 протокол = ipsec-esp место-перед = 0 add action = accept chain = input comment = "Accept - In Ipsec" ipsec-policy = \ in, ipsec src-address = 10.0.100.0 / 24 place-before = 0 добавить действие = принять цепочку = переслать комментарий = \ «Принять - весь трафик из VPN на ЛЮБОЙ» dst-address = 192.168.0.0 / 22 \ ipsec-policy = in, ipsec src-address = 10.0.100.0 / 24 place-before = 0 добавить действие = принять цепочку = переслать комментарий = \ «Принять - весь трафик от VPN к ЛЮБОМУ» dst-address = 0.0,0.0 / 0 \ ipsec-policy = in, ipsec src-address = 10.0.100.0 / 24 place-before = 0 / ip firewall mangle добавить действие = change-mss chain = forward dst-address = 10.0.100.0 / 24 ipsec-policy = \ in, ipsec new-mss = 1360 passthrough = yes protocol = tcp tcp-flags = syn tcp-mss = \ ! 0-1360 место до = 0
Добавим правила NAT и поместим их над правилами основного маскарада:
/ IP брандмауэр нат добавить действие = маскарадная цепочка = srcnat comment = "ike2 masq non ipsec" \ ipsec-policy = out, none out-interface-list = "интерфейсы WAN" place-before = 0 добавить действие = маскарадная цепочка = srcnat comment = "ike2 masq non ipsec" \ ipsec-policy = out, none out-interface-list = "Интерфейсы WAN" src-address = \ 10.0.100.0 / 24 место до = 0 добавить действие = src-nat chain = srcnat comment = "ike2 masq non ipsec" ipsec-policy = \ out, none out-interface = WAN src-address = 10.0.100.0 / 24 to-address = \ 66.66.66.66 место до = 0
Настраиваем параметры IPSec. Настройка едина как для конфигурации Client 2 Site, так и для Site 2 Site:
/ ip группа политик ipsec добавить name = "clients" добавить name = "s2s" / ip профиль ipsec добавить dh-group = modp2048, modp1536, modp1024 enc-algorithm = aes-256, aes-192, aes-128 \ хэш-алгоритм = sha256 name = "vpn.dnsname.ru " / ip ipsec одноранговый добавить режим обмена = ike2 local-address = 66.66.66.66 name = \ "peer VPN" passive = yes profile = "vpn.dnsname.ru" / ip ipsec предложение добавить auth-алгоритмы = sha512, sha256, sha1 enc-алгоритмы = "aes-256-cbc, aes-256-ctr \ , aes-256-gcm, aes-192-ctr, aes-192-gcm, aes-128-cbc, aes-128-ctr, aes-128-gcm "\ время жизни = 8h name = "vpn.dnsname.ru" pfs-group = none / ip ipsec режим-конфигурация добавить пул адресов = длина префикса-адреса IKE2 = 32 name = clients.vpn.dnsname.ru split-include = \ 0.0.0.0 / 0 static-dns = 10.0.100.1 system-dns = no добавить адрес = 10.0.100.2 name = s2s.vpn.dnsname.ru split-include = 10.0.100.1 static-dns = 10.0.100.1 \ system-dns = нет / ip ipsec идентификатор добавить auth-method = digital-signature [email protected] \ generate-policy = port-strict match-by = certificate mode-config = clients.vpn.dnsname.ru \ peer = "peer VPN" policy-template-group = "clients" \ [email protected] remote-id = user-fqdn: [email protected] добавить auth-method = digital-signature certificate = vpn @ vpn.dnsname.ru \ generate-policy = port-strict match-by = certificate mode-config = clients.vpn.dnsname.ru \ peer = "peer VPN" policy-template-group = "clients" \ [email protected] remote-id = user-fqdn: [email protected] добавить auth-method = digital-signature [email protected] \ generate-policy = port-strict match-by = certificate mode-config = s2s.vpn.dnsname.ru \ peer = "peer VPN" policy-template-group = "s2s" \ [email protected] remote-id = user-fqdn: s2s @ vpn.dnsname.ru / ip политика ipsec добавить dst-адрес = 10.0.100.2 / 32 группа = s2s предложение = vpn.dnsname.ru src-address = 10.0.100.1 / 32 шаблон = да добавить dst-адрес = 10.0.100.0 / 24 группа = клиенты предложение = vpn.dnsname.ru src-address = 0.0.0.0 / 0 шаблон = да
Сразу добавим GRE-туннель, который в дальнейшем позволит нам легко настроить маршрутизацию между офисами:
/ интерфейс gre добавить local-address = 10.0.100.1 name = "IKEv2-GRE-Tunnel" удаленный адрес = 10.0.100.2 / ip маршрут добавить расстояние = 1 dst-адрес = 10.10.10.0 / 24 шлюз = "IKEv2-GRE-Tunnel"
На этом настройку VPN-сервера можно считать законченной и пора переходить на сторону клиента.
Первым на очереди комп с установленной Windows 10 Pro x64 версия 1903.
В винде кликаем правой кнопкой мыши на значок сетевого подключения и выбираем пункт ОТКРЫТЬ ПАРАМЕТРЫ СЕТИ И ИНТЕРНЕТ.
Слева выбираем раздел VPN и справа ДОБАВИТЬ VPN ПОДКЛЮЧЕНИЕ:
Поставщик — Windows (встроенные)
Имя подключения — произвольно
Имя или адрес сервера — vpn.dnsname.ru
Тип VPN — IKEv2
и нажимаем сохранить.
Далее кликаем правой кнопкой мыши на значок сетевого подключения и выбираем пункт ОТКРЫТЬ ПАРАМЕТРЫ СЕТИ И ИНТЕРНЕТ.
В правой части левый клик на рабочем столе НАСТРОЙКА ПАРАМЕТРОВ АДАПТЕРА и в открывшемся окне правый клик на созданном VPN-подключении -> СВОЙСТВА.
В разделе БЕЗОПАСНОСТЬ пункт ШИФРОВАНИЕ ДАННЫХ — самое стойкое (отключиться, если нет шифрования)
ПРОВЕРКА ПОДЛИННОСТИ — выбираем ИСПОЛЬЗОВАТЬ СЕРТИФИКАТЫ КОМПЬЮТЕРА.
В случае, если вам нужно выходить в интернет через шлюз подключенной через сеть VPN, выберите вкладку СЕТЬ, двойной левый клик на IP версии 4, в открытом окне ДОПОЛНИТЕЛЬНО и далее во вкладке ПАРАМЕТРЫ IP ставьте галку ИСПОЛЬЗОВАТЬ ОСНОВНОЙ ШЛЮЗ В УДАЛЕННОЙ СЕТИ.
Далее импортируем сертификаты, которые экспортировали на предыдущем этапе:
- [email protected]. Двойной левый клик по сохраненному серту, установить и в начало ХРАНИЛИЩА выбираем ЛОКАЛЬНЫЙ КОМПЬЮТЕР, а в поле ХРАНИЛИЩЕ СЕРТИФИКАТОВ выбираем ПОМЕСТИТЬ ВСЕ СЕРТИФИКАТЫ В ВЫБРАННОЕ ХРАНИЛИЩЕ и по кнопке выбираем хранилище ДЕРЕНЕВНЫЕ ЦОРФЕ ДЕРЕНЕВНЫЕ КЛАПАНЫ.Остальное по схеме далее -> далее -> готово.
- [email protected]. Здесь также нужно выбрать хранилище ЛОКАЛЬНЫЙ КОМПЬЮТЕР, и в разделе ХРАНИЛИ СЕРТИФИКАТОВ выбираем ПОМЕСТИТЬ ВСЕ СЕРТИФАТЫ В ВЫБРАННОЕ ХРАНИЛИЩЕ и по кнопке выбираем хранилище ЛИЧНОЕ. Не забываем пароль, который использовали при экспорте (в этой заметке пароль passwordforexport). Далее -> далее -> готово.
Можно подключаться.
Настраиваем часовой пояс, NTP-клиента.
/ системные часы установить time-zone-autodetect = no time-zone-name = Europe / Astrakhan / system ntp client set enabled = yes server-dns-names = 1.ru.pool.ntp.org, 2.ru.pool.ntp.org, 3.ru.pool.ntp.org
Заходим на МикроТик Site-2 и перекидываем на него скаченные сертификаты CA, VPN и S2S. В сумме у вас должно быть 6 файлов:
- CA.vpn.dnsname.ru.crt
- CA.vpn.dnsname.ru.key
- [email protected]
- s2s @ vpn.dnsname.ru.key
- [email protected]
- [email protected]
и импортируем их по порядку. Обратите внимание, что импортировать нужно сначала CRT, а затем КЛЮЧ.
/ сертификат import [email protected] passphrase = passwordforexport import [email protected] passphrase = passwordforexport import [email protected] passphrase = passwordforexport импортировать имя-файла = vpn @ vpn.dnsname.ru.key passphrase = passwordforexport import [email protected] passphrase = passwordforexport import [email protected] passphrase = passwordforexport
Настроим FireWall, параметры IPsec, добавим GRE-туннель и добавим маршрут в сеть Site-1:
/ ip фильтр межсетевого экрана add action = accept chain = input comment = "IKE2 - Accept UDP 500,4500 IPSec" \ src-address = 66.66.66.66 dst-port = 500,4500 протокол = udp place-before = 0 add action = accept chain = input comment = "IKE2 - Accept IPSec-esp" src-address = \ 66.66.66.66 протокол = ipsec-esp place-before = 0 add action = accept chain = input comment = "Accept - In Ipsec" ipsec-policy = \ in, ipsec dst-address = 10.0.100.0 / 24 place-before = 0 добавить действие = принять цепочку = переслать комментарий = \ «Принять - весь трафик из VPN на ЛЮБОЙ» dst-address = 10.10.10.0 / 24 \ ipsec-policy = in, ipsec src-address = 10.0.100.0 / 24 place-before = 0 добавить действие = принять цепочку = переслать комментарий = \ «Принять - весь трафик из VPN на ЛЮБОЙ» dst-address = 0.0.0.0 / 0 \ ipsec-policy = in, ipsec src-address = 10.0.100.0 / 24 место до = 0 / ip группа политик ipsec добавить name = "s2s" / ip профиль ipsec добавить dh-group = modp2048, modp1536, modp1024 enc-algorithm = aes-256, aes-192, aes-128 \ хеш-алгоритм = sha256 name = "vpn.dnsname.ru" / ip ipsec одноранговый добавить адрес = 66.66.66.66 / 32 exchange-mode = ike2 name = "peer VPN" profile = vpn.dnsname.ru / ip ipsec предложение добавить auth-алгоритмы = sha512, sha256, sha1 enc-алгоритмы = "aes-256-cbc, aes-256-ctr \ , aes-256-gcm, aes-192-ctr, aes-192-gcm, aes-128-cbc, aes-128-ctr, aes-128-gcm "\ время жизни = 8h name = "vpn.dnsname.ru "pfs-group = none / ip ipsec режим-конфигурация добавить имя = s2s.vpn.dnsname.ru респондент = нет / ip политика ipsec добавить dst-адрес = 10.0.100.1 / 32 группа = s2s предложение = vpn.dnsname.ru src-address = 10.0.100.2 / 32 шаблон = да / ip ipsec идентификатор добавить auth-method = digital-signature [email protected] \ generate-policy = port-strict match-by = certificate mode-config = s2s.vpn.dnsname.ru \ peer = "peer VPN" policy-template-group = "s2s" \ [email protected] remote-id = user-fqdn: [email protected] / интерфейс gre добавить local-address = 10.0.100.2 name = "IKEv2-GRE-Tunnel" удаленный адрес = 10.0.100.1 / ip маршрут добавить расстояние = 1 dst-адрес = 192.168.0.0 / 22 шлюз = "IKEv2-GRE-Tunnel"
Если вы всё сделали по инструкции, то на данном этапе туннель должен заработать! Если же это не так, то попробуйте отключить запрещающие правила на FireWall на обоих маршрутизаторах.
.
Настраиваем IKEv2 VPN-сервер на роутерах Mikrotik с аутентификацией по сертификатам
01:28 26.04.2020
Настраиваем IKEv2 VPN-сервер на роутерах Mikrotik с аутентификацией по сертификатам
Сейчас, когда настраивают VPN для удаленных сотрудников, выбор протокол становится как никогда актуальным. С одной стороны поддерживают современные протоколы PPTP и L2TP, которые имеют ряд существенных недостатков и ограничений, с другой стороны OpenVPN, который всем хорош, но требует установки стороннего ПО.При этом как-то забывают о быстром и безопасном IKEv2, основанном на IPsec новом протоколе, также поддерживаемом всеми современными ОС.
Почему именно IKEv2? Данный протокол входит в группу протоколов IPsec и включает аутентификацию с использованием сертификата, включая проверку подлинности сервера клиентом, что исключает аутентификацию типа «человек посередине». При поддержке аппаратного ускорения IPsec со стороны оборудования отображается хорошая скорость соединения других типов VPN в RouterOS и довольно простая настройка с клиентской стороны, не требует добавления маршрутов.
К недостаткам можно отладить настройки серверной части, которая требует выполнения условий и наличия базового объема знаний о работе IPsec. В данной статье мы не будем углубляться в теорию, сделав упор на практическую сторону вопроса, ограниченными краткими пояснениями необходимости тех или использования настроек.
Создание центра сертификации и выпусков сертификатов
Когда мы говорим об использовании сертификатов для аутентификации, подразумеваем наличие инфраструктуры открытых ключей (PKI), образующую область доверия, за счет чего появляется возможность проверки подлинности любого субъекта инфраструктуры без привлечения третьих служб и списков пользователей.В основе PKI лежит центр сертификации — CA, выпускающий сертификаты и обеспечивающий возможность проверки подлинности при помощи корневого публичного сертификата.
В нашем центре сертификации будет эффективен RouterOS прямо на маршрутизаторе. Для этого перейдем в систему — Сертификат и выпустим отдельный сертификат нашего CA.
Красным указаны обязательные к заполнению поля. Имя — видимое имя сертификата и Общее имя — имя субъекта, которому выдан сертификат, в нашем случае это ca . Размер ключа — размер ключа, ключи размером менее 2048 байт не считаются безопасными, срок действия дней — время действия сертификата, в нашем случае 10 лет.
Выделенный зеленым блоком не является обязательным, но мы советуем его заполнять, дабы не пришлось угадывать, что это за сертификат и кому и кем он выдан.
Затем перейдем на закладку Key Usage и оставим только crl sign и key cert. знак , нажмем Применить , чтобы применить изменения, после чего подпишем сертификат.использовать кнопку Sign , в открывшемся окне укажем CA CRL Host , в качестве которого следует использовать один из IP-адресов роутера.
В терминале эти же действия можно выполнить команду:
/ сертификат
добавить name = ca country = "RU" state = "31" locality = "BEL" organization = "Interface LLC" common-name = "ca" key-size = 2048 days-valid = 3650 key-usage = crl-sign, key-cert-sign
sign ca ca-crl-host = 192.168.103.1
Следующим шагом выпустим сертификат сервера.Обратите внимание, что сервер обязательно должен иметь выделенный IP-адрес и, желательно, доменное имя. Последнее условие не является обязательным, но позволяет отвязаться от использования адреса и в случае изменения IP вам не придется перевыпускать сертификаты и менять настройки клиентских подключений.
Заполнение полей в целом повторяет предыдущий пример, за исключением Общее название и Тема Доп. Имя .Здесь мы указываем IP-адрес или FQDN по которым будут подключаться к серверу. Если вы используете IP-адрес, то тип записи в поле Subject Alt. Имя нужно сменить на IP .
Обратите внимание, что , если вы выпустили сертификат с указанием FQDN, подключите клиента, попытавшись по IP-адресу, либо наоборот, то такое соединение не может быть .
На закладке Key Usage укажем единственное значение tls server и подпишем наш сертификат закрытым ключом центра сертификации CA.
Эти же действия в терминале:
/ сертификат
add name = vpn.interface31.lab country = "RU" state = "31" locality = "BEL" organization = "Interface LLC" common-name = "vpn.interface31.lab" subject-alt-name = DNS: "vpn.interface31.lab" размер ключа = 2048 дней-действителен = 3650 использование ключа = tls-server
подпись vpn.interface31.lab ca = "ca"
Теперь можно выпускать клиентские сертификаты, это можно сделать сразу, так и потом. Никаких особых требований здесь нет, в качестве имени указывайте максимально понятное значение, скажем, ФИО сотрудника или наименование офиса.Потому как понять кому принадлежит сертификат с CN IvanovIA не составляет особого труда, в отличие от какого-нибудь безликого client3 . Также обратите внимание на опцию Days Valid , не следует выдавать клиентские сертификаты на большой срок.
В Key Usage также указывается единственное назначение сертификата — tls client и подписываем его закрытым ключом CA.
Команды для терминала:
/ сертификат
add name = SmirnovaMV country = "RU" state = "31" locality = "BEL" organization = "Interface LLC" common-name = "SmirnovaMV" key-size = 2048 days-valid = 365 key-usage = tls-client
знак СмирноваMV ca = "ca"
Для использования на клиентских устройствах сертификаты следует экспортировать наиболее удобно использовать этот формат PKCS12, который в одном файле содержит закрытый ключ клиента, его сертификат и основной сертификат CA.Для этого выберите сертификат в списке и в меню правой кнопкой мыши укажите действие Export . В поле введите укажите PKCS , а в укажите пароль для экспорта укажите пароль (не менее 8 символов), в случае опасности закрытый ключ выгружен не будет.
Это же можно сделать командой:
/ сертификат
экспорт-сертификат SmirnovaMV type = pkcs12 экспорт-пароль = 0123456789
Скачать экспортированные сертификаты можно из раздела Файлы .
Настройка IKEv2 VPN-сервера
Здесь мы вступаем в достаточно сложную область настройки IPsec, объем статьи позволяет подробно останавливаться на назначении каждой настройки, поэтому если вы не уверены в своих действиях, то мы не рекомендуем отклоняться от указанных ниже настроек.
Перейдем в IP — IPsec — Профили и создадим новый профиль, который задает параметры для соединения. Все параметры оставляем по умолчанию , кроме наименования.
Либо выполните команду в терминале:
/ ip ipsec profile
добавить имя = IKEv2
Затем перейдем на закладку Proposals — предложения, которые содержат параметры криптографии, предлагаемые для согласования подключаемым клиентам. Создадим новое предложение, созданное с учетом использования современных ОС алгоритмов и изменение его состава, может либо ослабить безопасность, либо сделать подключение невозможным.
Параметры по умолчанию нам не подойдут, поэтому в блоке Прим. Алгоритмы убираем 3des и добавляем aes-128-cbc, aes-192-cbc, aes-256-cbc .
В терминале достаточно простые команды:
/ ip ipsec предложение
добавить имя = IKEv2 pfs-group = none
Здесь мы сталкиваемся с одной особенностью: создаваемые через терминал и Winbox предложения содержат набор параметров. То, что создается в терминале полностью соответствует приведенным выше скриншоте требованиям.
Для выдачи VPN-клиентов нам потребуется отдельный диапазон адресов, перейдем в IP — Pool и создадим новый пул, в нашем случае будет диапазон адресов 10.20.0.100 — 10.20.0.199 :
Снова вернемся к настройкам IPsec и создадим конфигурацию, передаваемую клиенту для настройки его сетевых параметров, для этого перейдем на в IP — IPsec — Конфигурации режима . При создании новой конфигурации установим флаг Ответчик , в поле Пул адресов имя созданного нами пула , в поле Длина префикса адреса укажем префикс адреса — 32 , поле Разделить Включить указываем подсети, запросы к которому следует направлять в туннель, здесь следует указать одну или несколько внутренних сетей, которым следует получать удаленные клиенты.В нашем случае это сеть условного офиса — 192.168.111.0/24. Наконец System DNS предписывает клиенту использовать собственный сервер DNS флаг.
Это же действие в терминале:
/ ip ipsec mode-config
add address-pool = ikev2-pool address-prefix-length = 32 name = IKEv2-cfg split-include = 192.168.111.0 / 24
Если же вам нужно, чтобы клиенты использовали внутренние сервера имен, например, в Active Directory, то флаг System DNS следует снять и указать адреса требуемых DNS-серверов.
Команда для терминала будет так выглядеть:
/ ip ipsec mode-config
add address-pool = ikev2-pool address-prefix-length = 32 name = IKEv2-cfg split-include = 192.168.111.0 / 24 static-dns = 192.168.111.101,192.168.111.201 система -dns = нет
На закладке Группы создадим новую группу, никаких настроек здесь нет, укажите просто уникальное имя:
/ ip ipsec policy group
add name = ikev2-policy
Затем на закладке Policices создадим шаблон политики, которая будет указывать какой именно трафик будет подвергаться обработке IPsec и отправляться в туннель.В поле Src. Адрес оставляем 0.0.0.0/0 , в поле Dst. Address указываем выделенный для VPN-сети диапазон: 10.20.0.0/24 , устанавливаем флаг Template и указываем созданную нами ранее группу в поле Group .
На закладке Действие в поле Proposal укажите созданный ранее набор предложений.
Эти же действия в терминале:
/ ip ipsec policy
добавить dst-address = 10.20.0.0 / 24 группа = предложение ikev2-политик = IKEv2 src-address = 0.0.0.0 / 0 шаблон = да
После чего перейдем в IP — IPsec — Peers создадим новый пир для приема подключений. Сразу установим флаг Пассивный , в поле Адрес указываем 0.0.0.0/24 (разрешаем подключаться из любого места), в поле Профиль указываем созданный нами профиль, а в поле Режим обмена укажем протокол обмена ключами — IKE2 .
В терминале для получения аналогичного результата:
/ ipsec peer
add exchange-mode = ike2 name = IKEv2-peer passive = yes profile = IKEv2
На закладке Identities создадим новую настройку идентификации подключающихся клиентов. Здесь много настраиваемых полей и нужно быть предельно внимательными, чтобы ничего не упустить и не перепутать. В поле Peer — указываем созданный нами пир, Auth.Метод — способ аутентификации — цифровая подпись , Сертификат — сертификат сервера. Policy Template Group — группа шаблонов политик — выбираем созданную нами группу, Mode Configuration — предоставляем созданную нами конфигурацию для клиентов, Generate Policy — port strict .
Команда для терминала:
/ ip ipsec identity
add auth-method = digital-signature certificate = vpn.interface31.lab generate-policy = port-strict mode-config = IKEv2-cfg peer = IKEv2-peer policy-template-group = ikev2-policy
На этой настройке сервера завершена, осталось лишь правила брандмауэра добавить, разрешающие работу с ним.Для того, чтобы клиенты могли подключиться к серверу перейдем на IP — Firewall — правила фильтрации и добавим правило: Chain — input, Protocol — udp, Dst. Порт — 500, 4500, В. Интерфейс — ваш внешний интерфейс (в нашем случае это ether1 ). Действие не указываем, так как по умолчанию принять .
Для добавления правил в терминале:
/ ip firewall filter
add action = accept chain = input dst-port = 500,4500 in-interface = ether1 protocol = udp
. Это еще не все, чтобы VPN-клиенты могли получить доступ к внутренней сети, следует добавить еще одно правило.На закладке General укажите Chain — forward и Interface — внешний интерфейс, затем на Advanced : IPsec Policy — в: ipsec .
/ ip firewall filter
add action = accept chain = forward in-interface = ether1 ipsec-policy = in, ipsec
Оба правила расположить выше, чем запрещается в каждой из цепочек.
Настройка подключения клиента в Windows
Прежде всего импортируем сертификат, для этого можно просто выполнить двойной клик на файле сертификата, в открывшемся Мастере импорта в качестве Расположения хранилища укажите Локальный компьютер , остальные параметры принимаются по умолчанию.
Затем создадим новое подключение штатными инструментами. А качестве Типа VPN укажем IKEv2 , а в качестве Типа данных для входа — Сертификат . Также обратите внимание, что в строке Имя или адрес сервера должно совпадать с Common Name сертификата сервера, в случае подключения установить не удастся.
После чего откроем свойства созданного подключения и перейдем на закладку Безопасность , где установим переключатель Проверка подлинности в положении Использовать сертификаты компьютеров .
Теперь можно подключаться, если все сделано правильно — подключение будет успешно. Проверим таблицу маршрутов:
Как видим, маршрут к внутренней сети 192.168.111.0/24 был добавлен автоматических ручных настроек клиента не требуется.
Настройка подключения клиента в Linux
Точно также начнем с сертификата, но в случае нам потребуется немного больше действий. Будем считать, что сертификат находится в основной директории пользователя, для которого мы настраиваем подключение.Все последующие команды также следует выполнять от его имени.
Перейдем в домашнюю директорию и создадим скрытую папку для хранения ключей и сертификатов:
cd ~
mkdir .ikev2
Теперь нам нужно экспортировать из PKCS12 файл основного сертификата CA, а также ключ и сертификат пользователя. Начнем с корневого сертификата:
openssl pkcs12 -в cert_export_SmirnovaMV.p12 -out .ikev2 / IKEv2_CA.crt -nodes -nokeys -cacerts
Затем экспортируем сертификат клиента:
openssl pkcs12 -в cert_export_SmirnovaMV.p12 -out .ikev2 / SmirnovaMV.crt -nodes -nokeys
И его закрытый ключ. При экспорте закрытого ключа нас попросят установить для него пароль, минимальная длинна пароля 8 символов. Пропустить этот шаг нельзя.
openssl pkcs12 -в cert_export_SmirnovaMV.p12 -out .ikev2 / SmirnovaMV.pass.key -nocerts
На каждом из этих этапов необходимо ввести парольную фразу, указанную при экспорте сертификата пользователя на роутере.
И наконец уберем пароль с закрытого ключа пользователя:
openssl rsa -in.ikev2 / СмирноваMV.pass.key -out .ikev2 / SmirnovaMV.key
Во время этого действия вы должны ввести пароль, указали при создании ключа.
Для того, чтобы иметь возможность создать VPN-подключение в графическом интерфейсе, установил необходимый плагин для Network Manager:
sudo apt установить сетевой менеджер-strongswan
После чего вам станут доступны настройки VPN IKEv2 соединения.
Настройки достаточно просты.В секции Gateway указываем адрес сервера и путь к корневому сертификату CA . В секции Клиент устанавливает Аутентификация: сертификат / закрытый ключ и указываем пути к сертификату и закрытому ключу клиента. И в секции Опция обязательно установить флаг Запросить внутренний IP-адрес . На этом настройка соединения окончена, можно подключаться.
Если мы после подключения проверим таблицу маршрутизации, то не обнаружим маршрута к офисной сети, но при этом она будет доступна:
Но никакой ошибки здесь нет.Просто Linux в данной ситуации поступает более правильно, вместо маршрута в системе создается соответствующая политика IPsec, которая направляет трафик к внутренней сети в туннель согласно, что мы указали в конфигурации клиента (конфигурация режима ) на роутере.
подробнее на Записки IT специалиста
.
Strongswan и клиент Mikrotik как связать? — Хабр Q&A
Не могу связку из Strongswan и клиента Mikrotik
Другой вариант — windows и android работают без проблем
Сейчас конфигурация выглядит так:
Strongswan ———————-> Mikrotik
109.122.11.31 195.16.10.10: PSK «01234567899876543210»
conn Mikrot
rightsendcert = никогда
forceencaps = yes
left = 109.122.11.31
leftsubnet = 10.86.86.0 / 24
right = 195.16.10.10
rightubnet = 172.23.36.0 / 24
ike = aes256-sha256-modp1024!
esp = aes256-sha256-modp1024!
keyingtries = 0
ikelifetime = 1h
Life = 24h
authby = secret
auto = start
keyexchange = ikev1
type = tunnel
В логах постоянные попытки
спойлер
8 сентября 17:53:16 server- 1117368-1 charon: 09 [ENC] проанализировал запрос ID_PROT 0 [SA VV]
8 сентября 17:53:16 server-1117368-1 charon: 09 [IKE] получил идентификатор поставщика Cisco Unity
8 сентября 17:53:16 server -1117368-1 charon: 09 [IKE] получил идентификатор поставщика DPD
8 сентября 17:53:16 server-1117368-1 charon: 09 [IKE] 195.16.35.154 инициирует основной режим IKE_SA
8 сентября 17:53:16 server-1117368-1 charon: 09 [ENC] генерирует ответ ID_PROT 0 [SA VV]
8 сентября 17:53:16 server-1117368-1 charon : 09 [NET] отправка пакета: от 109.120.171.31 [500] до 195.16.10.10 [500] (120 байт)
8 сентября 17:53:16 server-1117368-1 charon: 12 [NET] получил пакет: от 195.16 .10.10 [500] — 109.122.11.31 [500] (188 байт)
8 сентября 17:53:16 server-1117368-1 charon: 12 [ENC] проанализировал запрос ID_PROT 0 [KE No]
8 сентября 17:53: 16 server-1117368-1 charon: 12 [ENC] генерирует ответ ID_PROT 0 [KE No]
8 сентября 17:53:16 server-1117368-1 charon: 12 [NET] отправляет пакет: от 109.122.11.31 [500] — 195.16.10.10 [500] (196 байт)
8 сентября 17:53:16 server-1117368-1 charon: 13 [IKE] отправка DPD-запроса
8 сентября 17:53:16 server-1117368 -1 charon: 13 [ENC] генерирует запрос INFORMATIONAL_V1 1615391926 [HASH N (DPD)]
8 сентября 17:53:16 server-1117368-1 charon: 13 [NET] отправка пакета: с 109.122.11.31 [500] на 195.16 .10.10 [500] (108 байт)
8 сентября 17:53:16 server-1117368-1 charon: 09 [NET] получил пакет: от 195.16.10.10 [500] до 109.122.11.31 [500] (92 байта)
8 сентября 17:53:16 server-1117368-1 charon: 09 [ENC] проанализировал запрос ID_PROT 0 [ID HASH]
8 сентября 17:53:16 server-1117368-1 charon: 09 [CFG] ищет предварительно общий доступ сопоставление конфигураций ключевых узлов 109.122.11.31 … 195.16.10.10 [195.16.10.10]
8 сен 17:53:16 server-1117368-1 charon: 09 [CFG] выбранная конфигурация узла «Mikrot»
8 сентября 17:53:16 server-1117368 -1 charon: 09 [IKE] IKE_SA Mikrot [3] установлен между 109.122.11.31 [CN = czalls.hldns.ru] … 195.16.10.10 [195.16.10.10]
8 сентября 17:53:16 server-1117368- 1 charon: 09 [ENC] генерирует ответ ID_PROT 0 [ID HASH]
8 сентября 17:53:16 server-1117368-1 charon: 09 [NET] отправляет пакет: от 109.122.11.31 [500] до 195.16.10.10 [500 ] (108 байт)
8 сентября 17:53:26 server-1117368-1 charon: 16 [IKE] удаление IKE_SA Mikrot [2] между 109.122.11.31 [CN = zcalls.hldns.ru] … 195.16.10.10 [195.16.10.10]
8 сен 17:53:26 server-1117368-1 charon: 16 [IKE] отправка DELETE для IKE_SA Mikrot [2]
8 сентября 17:53:26 server-1117368-1 charon: 16 [ENC] генерирует запрос INFORMATIONAL_V1 941903393 [HASH D]
8 сентября 17:53:26 server-1117368-1 charon: 11 [NET] получил пакет: от 195.16.10.10 [500] — 109.122.11.31 [500] (92 байта)
8 сентября 17:53:26 server-1117368-1 charon: 11 [IKE] получил повторную передачу запроса с ID 0, повторная передача ответа
.