Найти в Дзене
Заметки в сети

Mikrotik, настраиваем IKEv2, авторизация по сертификату

Пошаговая заметка по настройке IKEv2 на Mikrotik в терминале. При настройке не забываем указывать свои данные: пользователи, адреса, сети, dns. Подробное описание протокола и параметров можно найти в официальной документации https://help.mikrotik.com/docs/spaces/ROS/pages/11993097/IPsec Генерация сертификатов для сервера и клиента. #Сертификат центра сертификации /certificate add name="ca-vpn" country="RU" state="00" locality="IT" organization="IT" common-name="ca-vpn" key-size=2048 days-valid=3650 key-usage=crl-sign,key-cert-sign #подписываем сертификат /certificate sign "ca-vpn" ca-crl-host=192.168.88.2 #Сертификат сервера, лучше использовать доменное имя. Если ip-адрес сменится, не придется выпускать заново сертификаты. /certificate add name="vpn.example.com" country="RU" state="00" locality="IT" organization="IT" common-name="vpn.example.com" subject-alt-name=DNS:"vpn.example.com" key-size=2048 days-valid=3650 key-usage=tls-server #подписываем сертификат сервера /certificate sign "
Оглавление

Пошаговая заметка по настройке IKEv2 на Mikrotik в терминале. При настройке не забываем указывать свои данные: пользователи, адреса, сети, dns. Подробное описание протокола и параметров можно найти в официальной документации https://help.mikrotik.com/docs/spaces/ROS/pages/11993097/IPsec

Создание сертификатов:

Генерация сертификатов для сервера и клиента.

#Сертификат центра сертификации

/certificate add name="ca-vpn" country="RU" state="00" locality="IT" organization="IT" common-name="ca-vpn" key-size=2048 days-valid=3650 key-usage=crl-sign,key-cert-sign

#подписываем сертификат

/certificate sign "ca-vpn" ca-crl-host=192.168.88.2

#Сертификат сервера, лучше использовать доменное имя. Если ip-адрес сменится, не придется выпускать заново сертификаты.

/certificate add name="vpn.example.com" country="RU" state="00" locality="IT" organization="IT" common-name="vpn.example.com" subject-alt-name=DNS:"vpn.example.com" key-size=2048 days-valid=3650 key-usage=tls-server

#подписываем сертификат сервера

/certificate sign "vpn.example.com" ca="ca-vpn"

#Сертификат клиента

/certificate add name="UserVpn" country="RU" state="00" locality="IT" organization="IT" common-name="UserVpn" key-size=2048 days-valid=3650 key-usage=tls-client

#Подписываем

/certificate sign "UserVpn" ca="ca-vpn"

#Экспорт сертификата клиента, после экспорта скачать на пк

/certificate export-certificate "UserVpn" type=pkcs12 export-passphrase=0123456789

#Экспорт сертификата CA

/certificate export-certificate "ca-vpn" type=pem

Настройка IPsec:

Конфигурация параметров IPsec, включая создание профилей и предложений. Параметры сервера IKEv2 на MikroTik, совместимы с Windows10 и macOS

Порядок настройки:

  1. Address pool
  2. Mode-config
  3. Proposal
  4. Profile
  5. Policy
  6. Peer
  7. Identity

#диапазон адресов для клиентов ikev2

/ip pool add name=IKEv2-pool ranges=10.0.0.10-10.0.0.20

#сетевые настройки для клиентов

/ip ipsec mode-config add address-pool=IKEv2-pool address-prefix-length=32 name=IKEv2-cfg split-include=192.168.88.0/24 system-dns=yes

#параметры шифрования

/ip ipsec proposal add name=IKEv2 auth-algorithms=sha256,sha1 enc-algorithms=aes-256-cbc,aes-192-cbc,aes-128-cbc lifetime=30m pfs-group=modp2048

#новый профиль

/ip ipsec profile add name=IKEv2 hash-algorithm=sha256 enc-algorithm=aes-256,aes-192,aes-128,3des dh-group=ecp384,modp4096,modp2048,modp1024 lifetime=1d proposal-check=obey nat-traversal=yes dpd-interval=2m dpd-maximum-failures=5

#создаем новую группу с уникальным именем

/ip ipsec policy group add name=IKEv2-policies

#новый пир

/ip ipsec peer add exchange-mode=ike2 name=IKEv2-peer passive=yes profile=IKEv2

#натройка для подключающегося клиента

/ip ipsec identity add auth-method=digital-signature certificate="vpn.example.com" remote-certificate="UserVpn" generate-policy=port-strict mode-config=IKEv2-cfg peer=IKEv2-peer policy-template-group=IKEv2-policies

#настройка файервола, если не настроено

/ip firewall filter
add action=accept chain=input dst-port=500,4500 in-interface=ether1 protocol=udp

/ip firewall filter
add action=accept chain=forward in-interface=ether1 ipsec-policy=in,ipsec

Если IKEv2 уже настроен и возникли проблемы с подключением из разных систем. Ниже нужные параметры proposal и profile для вашего сервера IKEv2 на MikroTik, совместимые с Windows10 и macOS (название ваших настроек может отличаться)

/ip ipsec proposal
set name="IKEv2" auth-algorithms=sha256,sha1 enc-algorithms=aes-256-cbc,aes-192-cbc,aes-128-cbc lifetime=30m pfs-group=modp2048
/ip ipsec profile
name="IKEv2" hash-algorithm=sha256 enc-algorithm=aes-256,aes-192,aes-128,3des dh-group=ecp384,modp4096,modp2048,modp1024 lifetime=1d proposal-check=obey nat-traversal=yes dpd-interval=2m dpd-maximum-failures=5

Настройка клиента Windows, powershell

Параметр -MachineCertificateIssuerFilter не нужен если на пк только одно IKEv2 подключение.

Add-VpnConnection `
-Name "Vpn" ` #имя вашего подключения
-ServerAddress "vpn.example.com" ` #адрес vpn сервера
-TunnelType IKEv2 ` #тип туннеля
-AuthenticationMethod MachineCertificate ` #метод аутентификации
-EncryptionLevel Maximum ` #уровень шифрования
-SplitTunneling ` #раздельное туннелирование трафика
-PassThru ` #просто выводит параметры подключения после создания
-MachineCertificateIssuerFilter "C:\software\cert\ca-vpn.crt"

Параметр -MachineCertificateIssuerFilter нужен когда на пк используется несколько подключений IKEv2 с авторизацией по сертификату. Указываем сертификат CA. Своего рода "привязка" сертификата к подключению. Когда в локальное хранилище компьютера импортировано несколько сертификатов, при подключении получаю ошибку

неприемлемые учетные данные при проверке подлинности IKE

Без этой настройки так и не смог заставить работать несколько IKEv2 на одном пк с Windows10

Ошибка "сопоставления групповой политики" может означать, что Windows ожидает определённые параметры шифрования, которые не совпадают с MikroTik.

Логи и диагностика

На MikroTik

/log print

Ищите ошибки типа no matching policy found или authentication failed.

На Windows

  • Откройте Просмотр событий (eventvwr.msc) → Журналы Windows → Система.
  • Ищите ошибки от RasClient или IKEEXT.

Ошибки чаще всего связаны с:

  1. Несоответствием алгоритмов (MikroTik vs Windows).
  2. Блокировкой брандмауэром.
  3. Отсутствием правильных политик IPsec.