Сервер в кармане, или просто о сложном!

главная - Статьи - Mikrotik



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

Дата обновления: 04.02.2022

Теги: VPN сервер Mikrotik

В этой инструкции описана настройка VPN сервера IKEv2 на Mikrotik на базе ключей, без паролей. Это максимально безопасный вариант VPN, подбирать пароль в этом случае бессмысленно. Это затрудняет начальную настройку сервера, требует отправки клиенту сформированных сертификатов, что в некоторых случаях может быть менее удобным. Но, как и всегда, действует правило "вам шешчки или ехать?" - больше безопасности - меньше удобства. Это верно почти всегда.

IKE означает "Internet Key Exchange" и чтобы было, чем обмениваться, это надо сначала настроить. В общем, весь процесс настройки VPN сервера состоит из двух частей, по большому счету: выпуск и экспорт ключей и сертификатов и настройка IPSec. Дополнительно приведен пример firewall. Итак, есть микротик, VPN IKEv2 будем "вешать" на IP адрес 1.2.3.4. Можно и по доменному имени, а можно по публичному IP-адресу, без доменного имени. Рассмотрю вариант, когда доменного имени нет.

UPD: Можно также использовать сервис sn.mynetname.net (url микротика станет вроде 12345.sn.mynetname.net, где 12345 - серийный номер вашего микротика) но, честно говоря, просто не пользовался этим сервисом сам в течении длительного времени, поэтому рекомендовать этот вариант доменного имени не стал.

 

1. Точное время

Настройка времени важна для любого VPN, поэтому сразу проверим/настроим часовой пояс и синхронизацию времени:

Mikrotik - NTP

В терминале:

/system clock set time-zone-name=Europe/Moscow
/system ntp client set enabled=yes server-dns-names=0.ru.pool.ntp.org,1.ru.pool.ntp.org

2. Сертификаты и ключи

Наш микротик будет:
а) выдавать и удостоверять ключи для себя (сервер VPN) и удаленных клиентов, для чего сначала будет настроен CA ("удостоверяющий центр"), 
б) выполнять роль VPN-сервера.

CA ("удостоверяющий центр" - выдает заверенные сертификаты сервера и клиентов):

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

Mikrotik - CA

В терминале:

/certificate add name=cacert organization="Bozza.ru" common-name="cacert" key-size=4096 days-valid=3650 key-usage=crl-sign,key-cert-sign trusted=yes 
/certificate sign cacert

Не забывайте подписывать все выпускаемые сертификаты! CA подписывает сам себя, а потом CA подписывает все остальные сертификаты!

Серверный сертификат:

Mikrotik - VPN server certificate

В терминале:

/certificate add name=Mikrotik organization="Bozza.ru" common-name="1.2.3.4" subject-alt-name=IP:"1.2.3.4" key-size=4096 days-valid=3650 key-usage=tls-server 
/certificate sign Mikrotik ca="cacert"

Клиентский сертификат:

Внимательно и аккуратно заполняйте поля Common Name и Subject Alt. Name - на основании этих полей на клиенте будет происходить проверка пользователя! Если допустить опечатку на этом месте, потом придется перевыпускать этот сертификат, а это немного заморочный процесс - выпуск, экспорт, скопировать, перенести и т.д.

Либо по стечению обстоятельств, либо это реально такое ограчение, но при выпуске сертификата, в левой части которого (до символа @) были заглавные буквы, Windows не подключалась к серверу с ошибкой 13801 "Неприемлемые учетные данные проверки подлинности ike".

Mikrotik VPN Client Certificate

В терминале:

/certificate add name="vpnuser1@1.2.3.4" organization="Bozza.ru" common-name="vpnuser1@1.2.3.4" key-size=4096 days-valid=1095 key-usage=tls-client subject-alt-name=email:vpnuser1@1.2.3.4 
/certificate sign vpnuser1 ca="cacert"

В итоге, у нас есть ключи и сертификаты "cacert" (CA, выпускает и подписывает сертификаты), "Mikrotik" (VPN сервер), "vpnuser1" (клиент).

Экспорт ключей

Для установки на клиентский компьютер/смартфон надо экспортировать сертификат и ключ клиента, защитив пакет паролем:

Mikrotik VPN - Export Client Key and Certificate

В терминале:

/certificate export-certificate vpnuser1@1.2.3.4 type=pkcs12 export-passphrase=p@ssw0rd555

и сертификат CA "cacert" (только сертификат, БЕЗ ПРИВАТНОГО КЛЮЧА!):

Mikrotik Export Server Certificate (PEM)

На картинке опечатка закралась, экспорт происходит именно cacert, а не Mikrotik.

В терминале:

/certificate export-certificate cacert type=pem

Скачайте из Files файлы "cert_export_cacert.crt" и "cert_export_vpnuser1@1.2.3.4.p12" на клиентский компьютер и импортируйте сертификат и закрытый ключ в Личные сертификаты (если это Windows). Сертификат "ca" надо установить в "Доверенные корневые центры сертификации".

Сертификат должен стать для клиента VPN (неважно, Mac, Win, iPhone, Android) ДОВЕРЕННЫМ! Для этого и нужно экспортировать cacert и сделать его доверенным сертификатом CA на клиенте.

На iPhone можно отправить письмо с вложенными файлами сертификатов и установить их через Профили.

3. IKE VPN

3.1) Pool:
Клиентам VPN лучше всегда давать отдельные IP-адреса, отличные от основного диапазона. Создадим пул адресов для VPN:

Address pool

В терминале:

/ip pool add name="ike_vpn_pool" ranges="10.0.100.2-10.0.100.30"

 

3.2) Modeconfig:

IPSec - Mode Config

В терминале:

/ip ipsec mode-config add name="modeconfig_ikev2" address-pool="ike_vpn_pool" address-prefix-length=32 split-include=0.0.0.0/0 static-dns=10.0.100.1 system-dns=no

Вариации:

/ip ipsec mode-config add address-pool="ike_vpn_pool" address-prefix-length=32 name="modeconfig_ikev2" split-include=192.168.88.0/24 static-dns=10.0.100.1 system-dns=no

где 192.168.88.0/24 - сеть, маршрут к которой будет передан клиенту. Т.е. после установки VPN соединения клиент сможет сразу обращаться к ресурсам этой сети.

Если клиенты после подключения к удаленной сети должны иметь возможность обращаться к ресурсам удаленной сети не по IP, а по имени (например, server.office.local, а не 192.168.88.146), то надо передать клиенту не только маршрут до сети, но и сообщить ему адрес DNS сервера, отвечающего за разрешение имен в удаленной сети:

/ip ipsec mode-config add address-pool="ike_vpn_pool" address-prefix-length=32 name="modeconfig_ikev2" split-include=192.168.88.0/24 static-dns=192.168.88.1 system-dns=no

где 192.168.88.1 - IP-адрес DNS-сервера (в данном случае, это IP самого микротика).

 

3.3) Profile:

Касается т.н. фазы 1 (Phase 1, Security Association, SA), на которой согласовываются тип аутентификации, группа Diffie-Hellman, алгоритм шифрования. SA (фазы 1) существует определенное время, в течение которого устройства должны завершить вторую фазу. Если не успевают, то повторяется фаза 1. 

IPSec Profile

В терминале:

/ip ipsec profile add name="profile_ikev2" dh-group=modp1024,modp1536,modp2048 enc-algorithm=aes-128,aes-192,aes-256 hash-algorithm=sha256 nat-traversal=yes proposal-check=obey

 

3.4) Peer (кого и куда принимаем):

IPSec - Peer

В терминале:

/ip ipsec peer add name="peer_ikev2" exchange-mode=ike2 address=0.0.0.0/0 local-address=1.2.3.4 passive=yes send-initial-contact=yes profile="profile_ikev2"

- принимаем всех (0.0.0.0/0) на внешний адрес микротика (1.2.3.4) - адресов-то может быть много и не обязательно это будет публичный IP.

 

3.5) Proposal:

IPSec Proposal

В терминале:

/ip ipsec proposal add name="proposal_ikev2" auth-algorithms=sha1,sha256,sha512 enc-algorithms=aes-128-cbc,aes-128-ctr,aes-128-gcm,aes-192-ctr,aes-192-gcm,aes-256-cbc,aes-256-ctr,aes-256-gcm lifetime=1h pfs-group=none

Относится к так называемой второй фазе (Phase 2, IPSec SA), когда устанавливается, как будет проходить шифрование и аутентификация (проверка, что получены именно те данные, которые были отправлены) данных, а также частота обновления ключей. По-умолчанию, ключи обновляются каждые 8 часов (это время можно менять параметром lifetime).

 

3.6) Policy group:

IPSec Group

В терминале:

/ip ipsec policy group add name=group_ikev2

 

3.7) Policy:

IPSec Policy

В терминале:

/ip ipsec policy add src-address=0.0.0.0/0 dst-address=10.0.100.0/24 protocol=all template=yes group="group_ikev2" action=encrypt ipsec-protocols=esp proposal="proposal_ikev2"

 

3.8) Identity (для каждого пользователя - свой):

Внимательно и аккуратно выбирайте параметры. Для сертификата "vpnuser1@1.2.3.4" указывается Remote ID "vpnuser1@1.2.3.4" и проверка того, имеет ли право удаленный пользователь подключиться или нет, будет происходить на основании данных из сертификата:

IPSec Identity

  • "Remote ID Type" определяет, какой ID ожидается от удаленного клиента. Например, тип "user fqdn", доступный только в IKEv2, позволяет указать полное имя удаленного клиента в виде  "vpnuser1@1.2.3.4".
  • "Match By" определяет, с чем сравнивать "peers identity" (ID удаленного клиента) - с сертификатом (из Remote Certificate) или с данными из поля Remote ID. Не все клиенты могут прислать кастомный ID. Например, встроенный VPN клиент в Windows не позволяет указать Remote ID, а просто предлагает "использовать сертификат компьютера".

В терминале:

/ip ipsec identity add auth-method=digital-signature certificate=Mikrotik remote-certificate=vpnuser1@1.2.3.4 generate-policy=port-strict match-by=certificate mode-config="modeconfig_ikev2" peer="peer_ikev2" policy-template-group="group_ikev2" remote-id=user-fqdn:vpnuser1@1.2.3.4

Дальше надо настроить firewall.

 

4. FIREWALL

Сферический firewall в вакууме, нужно аккуратно адаптировать эти правила в ваш firewall.

Пожалуйста, внимательно смотрите, что вы разрешаете или запрещаете в firewall. Любые сертификаты будут бессмысленны, если вы случайно разрешите input на внемнем интерфейсе.

Mikrotik VPN IKEv2 Firewall Example

 

INPUT (разрешить входящие на 500/udp И 4500/udp):

/ip firewall filter
add action=drop chain=input comment="invalid" connection-state=invalid
add action=accept chain=input comment="established" connection-state=established
add action=accept chain=input comment="related" connection-state=related
add action=accept chain=input connection-state=new dst-port=500 protocol=udp
add action=accept chain=input connection-state=new dst-port=4500 protocol=udp
...
add action=drop chain=input comment="drop everything else"

ЗЫ: еще пишут в примерах, что надо разрешить протокол ipsec-esp, но я проверял :) отключение ни чему не мешает, поэтому и добавлять лишнее не будем.

 

FORWARD:

/ip firewall filter
add action=drop chain=forward comment="invalid" connection-state=invalid
add action=accept chain=forward comment="established" connection-state=established
add action=accept chain=forward comment="related" connection-state=related
add action=accept chain=forward comment="in:ipsec" ipsec-policy=in,ipsec
add action=accept chain=forward comment="VPN-to-LAN" dst-address=\
    192.168.88.0/24 ipsec-policy=in,ipsec src-address=10.0.100.0/24
 

NAT

Чтобы VPN-клиенты могли выходить в интернет, настроим NAT:

Mikrotik Firewall NAT IPSec

/ip firewall nat
add action=src-nat chain=srcnat ipsec-policy=out,none out-interface=ether1-gateway src-address=10.0.100.0/24 to-addresses=1.2.3.4
add action=masquerade chain=srcnat comment="default" out-interface=ether1-gateway

 

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

iPhone

Передать сертификаты в iPhone можно следующими способами:

1) по email (сертификаты как вложение), открыть вложенный cacert и vpnclient1 программой Mail и установить профиль;
2) по ссылке открыть в Safari и установить профиль
3) передать по AirDrop с MacBook, к примеру.

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

Например, можно на компе открыть микро-веб сервер, например, с помощью Python:

cd c:\certs\
python -m http.server 8080

и с iPhone в Safari открыть http://ip-address-компа 

Установите сертификаты и ключ через профили (там все интуитивно, описывать, думаю, не стоит). А саму настройку VPN IKEv2 - просто приведу картинку-скрин экрана:

Обратите внимание на то, что локальный ID повторяет имя (Name, Common Name, Subject Alternative Name) клиентского сертификата.

Аутентификация пользователя происходит автоматически, на основании данных из сертификата.

iPhone IKEv2 VPN Settings

MacOS

Суть процесса: открываете "Связка ключей", в ней импортируете сначала cacert (доверенный центр сертификации), а потом сертификат vpnuser1. В "Системные настройки" в пункте "Сеть" добавляете VPN подключение, тип IKEv2, поля заполняете так же как в iOS (картинка выше), выбираете сертификат и все. Готово.

Windows 7/10

Суть такая - сертификат устанавливается в учетную запись компьютера, а не пользователя (по-умолчанию, certmgr.msc предлагает именно Пользователя). mmc.exe - Сертифкаты - Учетная запись компьютера.

Там уже добавляете в доверенные корневые cacert, а в Личные - vpnuser1 (Сертификаты - Личное - Сертификаты, правой мышкой - Все задачи - Импорт).

Ну и настраиваете IKEv2 VPN стандартно.

Что меня в этом месте бесит прямо-таки сильно - сертификат доступен ЛЮБОЙ учетной записи на компьютере. Например, установили вы так VPN в учетке user1. Потом зашли под другой учеткой в windows, а сертификат там уже есть. А вариант, когда сертификат устанавливается в Личные пользовательские сертификаты, не сработает, потому что это уже потребует EAP-TLS аутентификации (протокол расширенной проверки подлинности), а, как это часто бывает в мелочах, микротик как сервер не поддерживает EAP.

 

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



13.12.2020 23:40 Makarenko
Спасибо! А что насчет your-serail-number.sn.mynetname.net если нет доменного имени? В интерфейсе есть, VPN Access?
13.12.2020 23:47 bzzz
Хороший вопрос, кстати. Сам просто не пользовался этим sn.mynetname.net. Может, зря. Добавил про это в статью небольшую ремарку. Спасибо!
15.01.2021 21:34 mikemousse
На макоси проверил вчера - все пашет, спасибо.
19.01.2021 13:48 pkpav
Настроил, спасибо! Но вопрос - не пингуются хосты локалок, если подключаюсь к vpn изнутри. Локалки две. Vpn адреса не из локалок. Снаружи все ок, изнутри - трабл. Что может быть?
19.01.2021 13:57 bzzz
Проверьте firewall, можно так замудрить, что мама дорогая. Запустите torch, посмотрите трафик, который идет. Пингуйте, к примеру, и смотрите трафик.
19.01.2021 13:58 bzzz
Идея в том, что надо найти откуда ноги у проблемы растут. А потом искать решение проблемы.
02.03.2021 12:57 Михаил
Сделал всё по мануалу применительно к своим сетям и IPшникам. Но как бы я не пытался подключить Win10 либо Win server 2016. Одна и та же ошибка "Срок действия контекста истёк, и его использование не допускается". По логам ошибка "Пользователь test установил удалённое подключение test, которое завершилось сбоем. Возвращен код ошибки 1931." Перепробовал все возможные вариант в Identities, перепроверил все сертификаты, результат тот же. Куда дальше копать?
03.03.2021 19:59 bzzz
Любопытно. Ни разу такой ошибки не встречал еще. А логи на микроте что показывают? Может быть опечатка с датой? Например, на микроте дата неактуальная?
03.03.2021 20:02 bzzz
Ну еще возможно что firewall неверно настроен? Можете ради теста разрешить входящие с вашего определенного IP и проверить?
03.03.2021 20:13 bzzz
Включите еще на микроте расширенные логи для IPSec: System - Logging - Add
Topics:
ipsec
! debug
Action: memory
03.03.2021 20:19 bzzz
1) It turned out that the IKE and AuthIP IPsec Keying Modules service was disabled on my PC for some reason. All I had to do was set it to automatic and start it.
2) не проходят исходящие соединения?
It turned out that this error is generated when client cannot actually connect.
It was the case of user being a guest at friends & they router did not allow passthrough for UDP 500/4500 to make IKEv2 to workBack at home on own router, user was fine.
3) My issue was corrected with a driver update, in particular the HP Hotkey that controls LAN/WLAN switching
Все отсюда: https://social.technet.microsoft.com/Forums/lync/en-US/6e44ea1a-a5d7-4b28-b763-8df95da157eb/rasclient-error-1931?forum=winserversecurity
03.03.2021 20:36 bzzz
Попробуйте настроить VPN клиента на смарте и подключиться через мобильную сеть. Опсосы не зверствуют с резанием VPN-трафика, по крайней мере я не сталкивался с этим. SSL-сертификаты могут подкладывать, это да :) но сам трафик не режут. Можете проверить так, хотя бы до микротика идет или нет связь.
11.05.2021 08:09 MayBee
Спасибо за статью! Настроил все по ней, и андроид подключается без проблем. Однако, при подключении с Wibdows ошибка "Возвращен код ошибки 13801". В логах микротика при этом ошибки "identity not found for peer: ADDR4: ххх.ххх.ххх.ххх". То есть, насколько я понимаю, имя в сертификате не совпадает с именем удаленного компьютера. Но как в этом случае действовать, подскажите пожалуйста?
13.05.2021 14:42 bzzz
Может, на винде не установили доверенный корневой сертификат?
13.05.2021 14:43 bzzz
Сертификат один и тот же используется?
19.05.2021 07:34 MayBee
- Может, на винде не установили доверенный корневой сертификат?
+ Установил.
Заметил разницу, если при этом клиентский сертификат установить также в доверенные корневые, то в ошибке фигурирует имя компьютера, а если в пользовательские, то ip адрес компьютера.
21.05.2021 12:39 bzzz
Может, я не так вас понял, но пользовательский сертификат не надо устанавливать ни в какие доверенные корневые (ни в корневые, ни в пользовательские). Сертификат устанавливается в учетную запись компьютера (mmc.exe - Сертифкаты - Учетная запись компьютера)
24.06.2021 23:00 MayBee
Блин, плохо что нет оповещений о новых комментариях, вспомнил об ответе только сейчас.
Нет, установка сертификата в Учетную запись компьютера (с удалением сертификатов из учетной записи пользователя) не помогло. Все та же ошибка на Микротике: "identity not found for peer: ADDR4:ххх.ххх.ххх.ххх" где ххх.ххх.ххх.ххх почему то локальный ИПец Винды с которой хочу подключаться.
Нашел даже ссылку на Powershell, чотбы заставить подключение выбирать конкретный сертификат:
Set-VpnConnection -Name "My VPN Connection" -MachineCertificateIssuerFilter 'C:\mycerts\cert_export_MikrotikIKEv2-CA.crt'
Но это также не проходит, так как сертификат в формате .p12
Можете пожалуйста написать инструкцию, как корректно настроить подключение с Вин на Микрот, куда и как конкретно подсунуть какой сертификат? Спасибо.
24.06.2021 23:48 MayBee
Нашел проблему, надо было в свойствах VPN подключения в Windows дополнительно выбрать "Использовать сертификаты компьютеров".
Но теперь вообще какая то ересь: на микротике ошибок не возникает, подключение проходит, выдается ИПец и в Active Peers появляется подключение. При этом на клиенте Win "Возвращен код ошибки 13801" сохраняется и ВПН не инициализируется. Бред какой то.
25.06.2021 00:26 MayBee
В общем, окончательно заработало после добавления в реестр клиента параметра:
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\Parameters" /v DisableIKENameEkuCheck /t REG_DWORD /d 1

Подсмотрел в презентации Козлова Романа.

Спасибо за статью!
25.06.2021 09:52 bzzz
Супер! Спасибо, что ответили, что именно помогло! Удачи!
08.07.2021 09:03 MayBee
Разбираюсь с IKE дальше. Новая проблема - на Strongswan Android клиент не пробрасывается две подсети. То есть, в modeconfig указаны две подсети: 192.168.1.0/24 и 192.168.2.0/24, пробрасывается только первая. Если же в modeconfig их поменять местами, то соответственно пробрасывается только вторая. Подскажите, куда копать?
08.07.2021 11:40 bzzz
Мне представляется, что это глюк. Не нашел вариантов решения.
05.08.2021 23:24 anrib
Всем привет !
На Windows всё работает спасибо
А не подскажите на Iphone если крепить сертификат и выбирать эти настройки VPN не выходит пишет в логах Микротика identity not found for peer: FQDN: "имя что подставил в локальный ID" оно совпадает с сертификатом
05.08.2021 23:52 anrib
Всем привет !
На Windows всё работает спасибо
А не подскажите на Iphone если крепить сертификат и выбирать эти настройки VPN не выходит пишет в логах Микротика identity not found for peer: FQDN: "имя что подставил в локальный ID" оно совпадает с сертификатом
06.08.2021 09:40 bzzz
На iPhone все работает совершенно точно, проверено уже не раз и не два. С этим же сертификатом все работает на другом устройстве, например, на Win? Или сертификат не установлен в телефон нормально? Попробуйте на микроте disable/enable соотв. identity.
06.08.2021 09:43 bzzz
В настройках телефона сервер - IP-адрес mikrotik, remote-id: IP-адрес mikrotik, local-id: username@IP-адрес ? Сертификат выбран (в поле Аутентификация)?
06.08.2021 10:56 anrib
У меня в сертифкате просто фамилия сотрудника Ivanov.AA (Common name и Alt name) в identity так же Ivanov.AA в Remote ID
В настройках телефона :
Сервер : Статический Ip удаленки
Удаленный ID тот же
Локальный ID Ivanov.AA
Сертификат выбран Ivanov.AA
06.08.2021 11:00 anrib
На Win всё без проблем работает, на iphone все сертификаты проверены
Сейчас пишет peer's ID does not match certificate
06.08.2021 14:50 bzzz
В iPhone в настройках VPN:
Сервер: 1.2.3.4
Удаленный ID: 1.2.3.4
Локальный ID: Ivanov.AA@1.2.3.4

Аутент. польз. Нет
Сертификат: включено
Сертификат: выбран по имени Ivanov.AA@1.2.3.4

Все так?
06.08.2021 16:27 anrib
да
peer's ID does not match certificate
06.08.2021 21:44 anrib
Работает на айфон если только ставить на микротике в identity Remote ID type: ignore
09.08.2021 09:30 bzzz
Я бы проверил еще вариант сертификата без точки до символа @. IvanovAA@1.2.3.4, например. Вдруг это такой заскок у Apple?
09.08.2021 16:00 anrib
Я просто немного не понимаю как у Вас сделано , у Вас сразу выпущено имя везде vpnuser1@1.2.3.4
Я должен выпускать сертификат формата : IvanovAA@1.2.3.4 или могу просто написать Ivanov
Зачем писать через собаку еще символы IP сервера?
10.08.2021 14:14 bzzz
Имя пользователя - полностью, вида "IvanovAA@1.2.3.4". Микрот сравнивает все имя, а не только часть слева от @.
10.08.2021 14:16 bzzz
Поэтому в идеале, наверное, неплохо бы использовать доменные имена вместо внешнего IP-роутера, но я это не проверял ни разу, не знаю, какие могут быть подводные камни и не описывал это в руководстве.
16.08.2021 18:49 anrib
А еще такой вопрос при таких настройках VPN при бездействии рвется через 7 часов 45 минут , есть решение вопроса чтоб это не происходило ?)
17.08.2021 16:43 bzzz
Посмотрите здесь: https://forum.netgate.com/topic/153034/ipsec-ikev2-road-warriors-mobile-%D1%80%D0%B0%D0%B7%D1%80%D1%8B%D0%B2-%D1%81%D0%BE%D0%B5%D0%B4%D0%B8%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F-%D1%87%D0%B5%D1%80%D0%B5%D0%B7-8-%D1%87%D0%B0%D1%81%D0%BE%D0%B2/24

добавления параметра реестра в раздел:
HKLM\SYSTEM\CurrentControlSet\Services\RasMan\Parameters

Параметр (DWORD):
NegotiateDH2048_AES256
значение:
1

Может, еще что-то потребуется.

26.08.2021 20:32 treefox
А как сделать так, чтобы в windows при установке соединения было какое-то подтверждение, какой именно сертификат используется?
27.08.2021 16:53 Makarenko
Как вы хотите - не выйдет. Используется сертификат того хоста, к которому коннектитесь. Грубо говоря, сертификат выбирается исходя из имени компа, указанного в свойствах vpn-соединения. На выбор - не выйдет.
03.12.2021 14:27 iDeAl
Всем добрый день. делал не по этой статье. Но суть та же. В общем у меня несколько роутеров, решил везде сделать ikev2. Сделал пока 2.
Создаю 1 подключение, закидываю серты. Все ок. Коннект.
Создаю 2 подключение, закидываю серты. Ошибка. "Не приемлемые учетные данные проверки IKE".
Беру команду Set-VpnConnection -Name "Имя соединения" -MachineCertificateIssuerFilter Путь к СА серту.
Все ок. Обоим соединениям явно указываю этой командой их CA. Все срабатывает. Но результат такой же. "Не приемлемые учетные данные проверки IKE". Перемещаешь 1 (любой) личный серт в другое место. Ну или удаляешь. И оставшееся соединение работает.
Я понимаю, что это скорее проблема компа (Win10 последнее обновление.) Но найти косяк не могу. Грохал все vpn соединения (порядка 15) Удалял дрова сетевухи, удалял rasphone.pbk везде. Ничего не помогает. Кто то ловил такие приколы?
03.12.2021 14:35 iDeAl
Всем добрый день. делал не по этой статье. Но суть та же. В общем у меня несколько роутеров, решил везде сделать ikev2. Сделал пока 2.
Создаю 1 подключение, закидываю серты. Все ок. Коннект.
Создаю 2 подключение, закидываю серты. Ошибка. "Не приемлемые учетные данные проверки IKE".
Беру команду Set-VpnConnection -Name "Имя соединения" -MachineCertificateIssuerFilter Путь к СА серту.
Все ок. Обоим соединениям явно указываю этой командой их CA. Все срабатывает. Но результат такой же. "Не приемлемые учетные данные проверки IKE". Перемещаешь 1 (любой) личный серт в другое место. Ну или удаляешь. И оставшееся соединение работает.
Я понимаю, что это скорее проблема компа (Win10 последнее обновление.) Но найти косяк не могу. Грохал все vpn соединения (порядка 15) Удалял дрова сетевухи, удалял rasphone.pbk везде. Ничего не помогает. Кто то ловил такие приколы?
06.12.2021 15:58 bzzz
Возможно, дело в том, что сертификаты CA у вас называются одинаково. Поэтому глупая винда, не делая жестких привязок ключ-сертификат, идет тупо по алфавиту, при этому первый добавленный - работает, а второй уже нет.
13.02.2022 08:32 tonny
Всем здравствуйте, ситуация аналогичная "03.12.2021 14:35 iDeAl". СА серты называются по разному. После выполнения команды в PowerShell , в адрес настраиваемого подключения встаёт "-MachineCertificateIssuerFilterC:\mycerts\CA....". PowerShell ошибок не выдает. Стоит win10. У кого получилось настроить 2 подключения таким способом, что в адресе подключения встает после выполнения команды?
14.02.2022 08:37 bzzz
Это вот таким способом пытаетесь?
Set-VpnConnection -Name "My VPN Connection" -MachineCertificateIssuerFilter ''C:\mycerts\cert_export_MikrotikIKEv2-CA.crt''
?
14.02.2022 12:41 tonny
bzzz, именно так, только у пути до сертификата вместо кавычек апострофы.
14.02.2022 12:47 tonny
Так, все получилось. Извиняюсь за беспокойство.
14.02.2022 12:49 tonny
четыре раза))
16.02.2022 12:05 Leonid
Всем добрый день. Выпустил сертификаты. Настроил по этой статье IKEV2. Использую подключение по доменному имени. При авторизации VPN выдает ошибку: 13860 IKE не удалосьнайти действующий сертификат компьютера. Проверил через оснастку Сертификаты. СА находится в Доверительные корневые сертификаты, сертификат пользователя - в Личные. Все эти разделы относятстя к Локальному компьютеру. Подскажите, куда копать?
17.02.2022 08:10 Leonid
В дополнению к предыдущему посту (их три, я не заикаюсь )), посты дублируются, когда делаешь обновление страницы, без выхода с регистрации, сразу после отправки поста).
Я никак не могу понять, как система при авторизации выбирает какой сертификат ей использовать и как она его идентифицирует? У меня домен со статическим IP, я в Common Name указываю mydomain.uu Alt. Mame указываю IP домена.Отсюда вопросы:
1. как правильно, если критично, именовать сертификаты
2. как правильно давать имена Common Name и Alt/ Name, и к чему они критичны при авторизации?
3. Зачем нужен сертификат сервера VPN?
17.02.2022 12:43 Leonid
Почистил сертификаты на клиенте (Винда7).
Удалил корневой сертификат на Микроте.
Остальные уlлились соответственно.
Заново перегенерил сертификаты, длина 2048:
корневой СА
Common Name: ca.mydomain.uu
Alt. name: IP 123.123.123.123
VPN сервера
Common Name: vpn.mydomain.uu
Alt. name: DNS mydomain.uu
пользователь
Common Name: user@mydomain.uu
Alt. name: EMAIL user@mydomain.uu

сертификат СА (в формате PEM) поместил
в Доверительные центры (Локальный компьютер).
сертификат пользователя (в формате PKCS12)
поместил в Личные (Локальный компьютер).
Картина изменилась:Ошибка:13801
: Неприемлемые учетные данные проверки подлинности IKE
Подскажите, где я косячу?
18.02.2022 10:26 bzzz
tonny, Leonid, дубликаты сообщений удалил, сори.
18.02.2022 10:33 bzzz
Leonid
vpn.mydomain.uu - доменное имя чего? микрота? Тогда ca.mydomain.uu - это уже не микротик? Или то же микротик? Кто выпускает сертификат - тот микрот, что является vpn-сервером?
21.02.2022 15:09 Leonid
bzzz
"vpn.mydomain.uu - доменное имя чего? микрота?"
Доменное имя mydomain.uu (пример реального со статич, айпи).
ca.mydomain.uu -это сертификат центра сертификации на микроте.
vpn.mydomain.uu- это сертификат сервера VPV здесьже на микроте. И его выпускает этот же микрот, который является VPN-сервером
21.02.2022 15:34 Leonid
я тут пока ждал ответный коммент, немножко по своих настройкам IPSec-Peer поразбирался, и нашел, что у меня не был указан Auth. metod - поставил rsa signatur, после чего стал доступен параметр certifacate где я и указал имя сертификата VPN-сервера - vpn.mydomain.uu.После чего авторизация прошла успешно.
Все ресурсы внутренней сети офиса 192.168.0.0/24 доступны из адреса пула сети VPN 10/20/0/0/24, но выхода в инет не стало после подключения. Не пингуется 8.8.8.8, но если пинговать по имени хоста (например google.com), то трансляция адреса проходит, а пинга все равно нет. галочка на Использовать шлюз удаленной сети установлена. Каким способом добится доступа в инет при поднятом VPN соединении?
22.02.2022 15:48 bzzz
Leonid, Возможно, у вас NAT не пускает. Проверьте настройки в IP-FIREWALL-NAT. Или в FORWARD посмотрите. Пинг по имени разрешается, т.к. в кеше днс микротика может быть уже такая запись есть. Для дебага "что-куда-идет" запустите Torch на внешнем интерфейсе или на том, который создается при установлении VPN-соединения.
20.03.2022 01:57 ex3me
Доброго? А что нужно сделать, что бы клиенты имели статический ip, а не из пула?
03.06.2022 21:37 dima_ikar
помогите ! 2 vpn соединения с разными сертификатами p12
как привязать этот сертификат к определенному vpn
спасибо
08.06.2022 00:23 Леопольд
Подскажите, пожалуйста, как быть если в локальной сети есть NAT правила для маршрутизации трафика, приходящего из внешней сети (Interface list WAN), на внутренний web-сервер (порты 80 и 443). Проблема заключается в том, что если они включены, то все попытки открыть любую страницу в браузере с ВПН клиента направляются на внутренний веб-сервер.

И второй вопрос: как быть, если используется динамический IP + DDNS? Можно ли как-то обойтись без указания внешнего адреса в настройке NAT? (add action=src-nat chain=srcnat ipsec-policy=out,none out-interface=ether1-gateway src-address=10.0.100.0/24 to-addresses=1.2.3.4)
08.06.2022 01:07 Леопольд
С первым вопросом разобрался, добавив исключение (Src.Address !10.0.100.0/24)
16.07.2022 16:10 Eugene
А можно как то передать клиенту конкретный ip адрес из vpn пула?
16.01.2023 16:33 Vladimir
У кого-нибудь была ошибка "identity IP required". Перерыл кучу форумов - везде пишут, что якобы в SAN не указан IP. Но у меня это есть. Главное из венды подключается, а вод управление strongswan - из linux и android - выдаёт эту ошибку. Какая-то особенность у strongswan ?
20.01.2023 14:36 bzzz
С identity вообще всегда траблы. Надо очень точно заполнять все необходимые поля. И, из личного опыта, опираясь на IP, можно легко получить ситуацию, когда при смене внешнего адреса все сертификаты приходится перевыпускать.
25.01.2023 16:31 Влад
Спасибо за статью! Все работает, но есть проблема с подключением клиентов на Win7 и Win8. Выдает ошибку 809. В инете по данной ошибке советуют проверить порты на роутере и добавить в реестр AssumeUDPEncapsulationContextSendRule. Все это было сделано, но не помогло. На клиентах с win10 все ок. Можете что-то посоветовать?
26.01.2023 18:04 bzzz
Не сталкивался никогда. Честно говоря, как раз Win7 доставляла мне меньше хлопот.
Конкретно по вашей проблеме: IP-роутера белый (внешний)? Что-то связанное с NAT мешает. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent
параметр AssumeUDPEncapsulationContextOnSendRule (тип DWORD), значение: 2
Это про то, что клиент и сервер VPN могут быть за NAT.
28.01.2023 17:02 Влад
IP роутера белый. Клиент за NAT. Пробовал данный параметр с разными значениями (1 и 2), не работает.
28.01.2023 17:03 Влад
Может баг Микрота? Версия 7.7.
31.01.2023 12:05 bzzz
Может и баг. Хотя... У меня до сих пор 6.47.4, на 7-ку не тороплюсь.
31.01.2023 19:00 Влад
Проблема решена. В файерволе(RAW) блокировались фрагментированные пакеты.
01.02.2023 18:06 bzzz
Спасибо, что ответили, в чем была причина.
16.02.2023 10:15 Vladimir
"У кого-нибудь была ошибка "identity IP required". Перерыл кучу форумов - везде пишут, что якобы в SAN не указан IP. Но у меня это есть. Главное из венды подключается, а вод управление strongswan - из linux и android - выдаёт эту ошибку. Какая-то особенность у strongswan ?"

По данной ошибке есть какие-нибудь идеи ? У меня кончились идеи. Причем, если выпустить серт с SAN=DNS, а не IP, то ошибка будет ... "identity DNS required". ГДЕ бл.. required. Ну подключается же из венды, что strongswan надо
16.02.2023 10:26 Vladimir
"У кого-нибудь была ошибка "identity IP required". Перерыл кучу форумов - везде пишут, что якобы в SAN не указан IP. Но у меня это есть. Главное из венды подключается, а вод управление strongswan - из linux и android - выдаёт эту ошибку. Какая-то особенность у strongswan ?"

По данной ошибке есть какие-нибудь идеи ? У меня кончились идеи. Причем, если выпустить серт с SAN=DNS, а не IP, то ошибка будет ... "identity DNS required". ГДЕ бл.. required. Ну подключается же из венды, что strongswan надо
16.02.2023 11:55 Vladimir
Нашел, в чем проблема. На микроте в поле SAN, идут идут лидирующие две точки, убрал их - всё заработало. Почему для венды этой проблемы нет, не знаю.

Теперь другая проблема: в modeconfig в splitInclude у меня 4 подсети. В роуты на линуксе пробрасывается только первая из списка почему-то. Опять же на венде такой проблемы нет.
17.02.2023 17:34 bzzz
Может, клиент vpn на линуксе просто не умеет больше одного маршрута устанавливать?
30.03.2023 02:06 ansh
strongswan подключился только после создания сертификата сервера с такими параметрами:
Common Name - mydomen.ru
Subject Alt. Name - DNS:mydomen.ru

в strongswan прописывал адрес сервера - mydomen.ru
02.04.2023 17:12 bzzz
Вы имеете в виду клиентский сертификат?
09.04.2023 08:53 SwapON
На Samsung'e s20 пришлось ставить strongswan, так как в интегрированном софте нет возможности подключиться. Не могу разобраться с nertwork-manager-strongswan на arch'e. Там просит ко всему ещё и privat.key
10.04.2023 07:02 SwapON
Нашёл инфу как замутить это в network-manager-applet

# Извлеките CA сертификат, сертификат клиента и приватный ключ.
# У вас может запросить Import password, просто жмите Enter.
openssl pkcs12 -in vpnclient.p12 -cacerts -nokeys -out ikev2vpnca.cer
openssl pkcs12 -in vpnclient.p12 -clcerts -nokeys -out vpnclient.cer
openssl pkcs12 -in vpnclient.p12 -nocerts -nodes -out vpnclient.key
rm vpnclient.p12

Настройки -> Сеть -> VPN. Нажмите на кнопку +.
Выберите IPsec/IKEv2 (strongswan).
Вписывайте что-угодно в поле Название.
В секции Gateway (Server), введите адрес сервера в поле Address. Можете найти адрес тут.
Выберите ikev2vpnca.cer файл для Certificate.
В секции Client, выберите Certificate(/private key) в поле Authentication.
Выберите Certificate/private key в поле Certificate (ЕСЛИ У ВАС ОНО ЕСТЬ).
Выберите vpnclient.cer файл в поле Certificate (file).
Выберите vpnclient.key файл в поле Private key.
В секции Options, поставьте галочку Request an inner IP address.
В секции Cipher proposals (Algorithms), поставьте галочку Enable custom proposals.
Оставьте поле IKE пустым.
Введите aes128gcm16 в поле ESP.
Нажмите Добавить чтобы сохранить информацию о VPN подключении.
Включите VPN.

Но у меня нет в секции Algorithms чек-бокса Enable custom proposals
У меня нет поля ESP
15.05.2023 14:54 оси
3.4) Peer - подскажите какй локальный адресс вписывать чет немогу понять
20.05.2023 01:33 SwapON
Что-то по настройке в линукс с проблемами никто не сталкивался...?
10.08.2023 12:14 smersh
Добрый! Как отключить шлюз по умолчанию через VPN-соединение IKEv2? Чтобы передавать только 3-4 статических маршрута.
16.08.2023 16:53 matrox
При попытке подключения (Win10) выдаётся ошибка "Недопустимый тип сертификата". В журнале Win запись с ошибкой "Пользователь [домен\пользователь] установил удаленное подключение [имясервера], которое завершилось сбоем. Возвращен код ошибки 13819."
Никто не сталкивался с таким?
22.08.2023 17:48 bzzz
Нет, с таким не сталкивался. Попробуйте поискать на англоязычных форумах. Пару раз бывало, что из командной строки выручили параметры для импорта сертификатов (именно в windows 10, у нее заскоков немало). Но в рунете я этого не видел.
31.08.2023 15:55 matrox
Случайно один человек посоветовал проверить, сколько сертификатов установлено в личных. Оказывается, если в личных сертификатов установлено более одного сертификата, необходимо указать какой именно использовать для подключения.

Команда:
Set-VpnConnection -Name VPN_connection_name -MachineCertificateIssuerFilter "path_to_CA.cer_file"
31.08.2023 17:00 bzzz
Спасибо за комментарий!

Авторизуйтесь для добавления комментариев!


    забыли пароль?    новый пользователь?