Ipsec Ikev2 road warriors (mobile) - разрыв соединения через 8 часов



  • Всем привет!
    Настроил ipsec mobile c ikev2, аутентификация пользователей через RADIUS (AD)
    клиенты Windows 10, соединение разрывается после 8 часов работы туннеля, в целом для работы на весь рабочий день хватает, но есть задачи, которые требуют соединения почти 24x7 с файловым сервером, который за pf

    В 1 фазе, время жизни выставил до 24 часов (86400sec) - но все равно происходит разрыв через 8 часов. во второй фазе время жизни ключа стандартно, 3600 (т.е 1 час)

    подскажите, где еще нужно донастроить что-то?
    может быть на клиенте?



  • @mikeroygbiv
    Здр
    Покажите логи в момент разрыва соединения
    С вероятностью 99% "дурит" windows , странно только то , что 8 часов именно . Обычно через час "рвет" соединение.
    Попробуйте установить параметр "disable rekey" в настройках фазы 1 vpn сервера.
    тогда клиент windows будет сам инициировать процесс обновления ключей.



  • Спасибо за ответ!

    вот кусок лога,
    100.100.100.100 - клиент
    200.200.200.200 - сервер

    Time Process PID Message
    Apr 29 07:33:35 charon 07[NET] <con-mobile|3> received packet: from 100.100.100.100[4500] to 200.200.200.200[4500] (580 bytes)
    Apr 29 07:33:35 charon 07[ENC] <con-mobile|3> parsed CREATE_CHILD_SA request 22 [ EF(2/3) ]
    Apr 29 07:33:35 charon 07[ENC] <con-mobile|3> received fragment #2 of 3, waiting for complete IKE message
    Apr 29 07:33:35 charon 09[NET] <con-mobile|3> received packet: from 100.100.100.100[4500] to 200.200.200.200[4500] (164 bytes)
    Apr 29 07:33:35 charon 09[ENC] <con-mobile|3> parsed CREATE_CHILD_SA request 22 [ EF(3/3) ]
    Apr 29 07:33:35 charon 09[ENC] <con-mobile|3> received fragment #3 of 3, reassembled fragmented IKE message (1152 bytes)
    Apr 29 07:33:35 charon 09[ENC] <con-mobile|3> parsed CREATE_CHILD_SA request 22 [ SA KE No N(FRAG_SUP) ]
    Apr 29 07:33:35 charon 09[IKE] <con-mobile|3> received retransmit of request with ID 22, retransmitting response
    Apr 29 07:33:35 charon 09[NET] <con-mobile|3> sending packet: from 200.200.200.200[4500] to 100.100.100.100[4500] (304 bytes)
    Apr 29 07:33:45 charon 09[IKE] <con-mobile|3> sending DPD request
    Apr 29 07:33:45 charon 09[IKE] <con-mobile|3> queueing IKE_DPD task
    Apr 29 07:33:45 charon 09[IKE] <con-mobile|3> activating new tasks
    Apr 29 07:33:45 charon 09[IKE] <con-mobile|3> nothing to initiate
    Apr 29 07:33:55 charon 07[IKE] <con-mobile|3> sending DPD request
    Apr 29 07:33:55 charon 07[IKE] <con-mobile|3> queueing IKE_DPD task
    Apr 29 07:33:55 charon 07[IKE] <con-mobile|3> activating new tasks
    Apr 29 07:33:55 charon 07[IKE] <con-mobile|3> nothing to initiate
    Apr 29 07:34:05 charon 07[IKE] <con-mobile|3> sending DPD request
    Apr 29 07:34:05 charon 07[IKE] <con-mobile|3> queueing IKE_DPD task
    Apr 29 07:34:05 charon 07[IKE] <con-mobile|3> activating new tasks
    Apr 29 07:34:05 charon 07[IKE] <con-mobile|3> nothing to initiate
    Apr 29 07:34:11 charon 07[IKE] <con-mobile|3> destroying IKE_SA in state REKEYED without notification
    Apr 29 07:34:11 charon 07[IKE] <con-mobile|3> IKE_SA con-mobile[3] state change: REKEYED => DESTROYING
    Apr 29 07:42:18 charon 07[IKE] <con-mobile|5> sending DPD request
    Apr 29 07:42:18 charon 07[IKE] <con-mobile|5> queueing IKE_DPD task
    Apr 29 07:42:18 charon 07[IKE] <con-mobile|5> activating new tasks
    Apr 29 07:42:18 charon 07[IKE] <con-mobile|5> activating IKE_DPD task
    Apr 29 07:42:18 charon 07[ENC] <con-mobile|5> generating INFORMATIONAL request 0 [ ]
    Apr 29 07:42:18 charon 07[NET] <con-mobile|5> sending packet: from 200.200.200.200[4500] to 100.100.100.100[4500] (80 bytes)
    Apr 29 07:42:22 charon 07[IKE] <con-mobile|5> retransmit 1 of request with message ID 0
    Apr 29 07:42:22 charon 07[NET] <con-mobile|5> sending packet: from 200.200.200.200[4500] to 100.100.100.100[4500] (80 bytes)
    Apr 29 07:42:29 charon 07[IKE] <con-mobile|5> retransmit 2 of request with message ID 0
    Apr 29 07:42:29 charon 07[NET] <con-mobile|5> sending packet: from 200.200.200.200[4500] to 100.100.100.100[4500] (80 bytes)
    Apr 29 07:42:42 charon 07[IKE] <con-mobile|5> retransmit 3 of request with message ID 0
    Apr 29 07:42:42 charon 07[NET] <con-mobile|5> sending packet: from 200.200.200.200[4500] to 100.100.100.100[4500] (80 bytes)
    Apr 29 07:43:06 charon 07[IKE] <con-mobile|5> retransmit 4 of request with message ID 0
    Apr 29 07:43:06 charon 07[NET] <con-mobile|5> sending packet: from 200.200.200.200[4500] to 100.100.100.100[4500] (80 bytes)
    Apr 29 07:43:48 charon 10[IKE] <con-mobile|5> retransmit 5 of request with message ID 0
    Apr 29 07:43:48 charon 10[NET] <con-mobile|5> sending packet: from 200.200.200.200[4500] to 100.100.100.100[4500] (80 bytes)
    Apr 29 07:45:03 charon 10[IKE] <con-mobile|5> giving up after 5 retransmits
    Apr 29 07:45:03 charon 10[CFG] <con-mobile|5> RADIUS server 'radius' is candidate: 210
    Apr 29 07:45:03 charon 10[CFG] <con-mobile|5> sending RADIUS Accounting-Request to server 'radius'
    Apr 29 07:45:03 charon 10[CFG] <con-mobile|5> received RADIUS Accounting-Response from server 'radius'
    Apr 29 07:45:03 charon 10[IKE] <con-mobile|5> IKE_SA con-mobile[5] state change: ESTABLISHED => DESTROYING
    Apr 29 07:45:03 charon 10[CHD] <con-mobile|5> CHILD_SA con-mobile{15} state change: INSTALLED => DESTROYING
    Apr 29 07:45:03 charon 10[CFG] <con-mobile|5> lease 10.80.5.1 by 'vpnuser' went offline



  • @mikeroygbiv
    Попробуйте сделать , как я написал
    Судя по логам это происходит в момент обновления ключей
    Эта проблема обычно вылезает на windows 7+ikev2+клиент за NAT-ом ( и ,как правило,через 1 час соединения )



  • @Konstanti
    да, я уже ранее включил эту опцию, но и с ней не помогло..

    после включения этой опции, в статусе ipsec соединений, в поле Reauth появился символ - (прочерк), т.е по идее да, разрыва не должно происходить

    через час ни разу не разрывалось, у всех клиентов соединение со статусом ESTABLISHED держится примерно 7:49 часов..
    все клиенты windows 10 (1607, 1903) да и на windows 7 тоже через час не разрывается, (я так полагаю, на это влияет настройка в Фазе 2, время жизни ключа, 3600 сек)



  • @Konstanti
    В логах, каждый час идет обмен ключами, при этом соединение не разрывается



  • Добрый.

    @mikeroygbiv

    Версия пф?
    Смотрите баг-трекер пф. Если найдется что-то, то смените временно на Openvpn.



  • @werter
    добрый !

    версия 2.4.4_p3
    да, видимо придется задействовать еще один OpenVPN сервер с широким доступом.
    один сервер уже запущен, на нем основная группа пользователей, там все порезано

    ipsec конечно быстрее, поэтому особо требовательным пользователям к пропускной способности решил дать его.



  • @mikeroygbiv
    Обновитесь.



  • @werter
    😁 надеюсь это поможет))
    но думаю врядли

    а вы не сталкивались с таким на Windows+PF ?
    при условии, что ipsec соединение устанавливается нативно.

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



  • @mikeroygbiv
    Пользую, где возможно ovpn. Он гораздо гибче.



  • @mikeroygbiv
    Я бы разбирался все-таки с клиентом Windows , есть ли там логи ( не знаю ) . Не может быть такого , чтобы у всех одновременно проблемы начинались
    Я вот вижу в логах , что клиенты перестают отвечать (con-mobile<3>). как следствие ike_sa удалили.

    а второй клиент почему-то перестает отвечать на dpd запросы

    Всей картины не видно , Вы же кусок лога "вырезали", судя по всему



  • @Konstanti said in Ipsec Ikev2 road warriors (mobile) - разрыв соединения через 8 часов:

    Я бы разбирался все-таки с клиентом Windows , есть ли там логи ( не знаю ) .

    Может в "Просмотре событий" Вин что-то есть.



  • В Event Viewer ничего путного не нашел..может конечно не те параметры выбирал для поиска
    но все что касается VPN, RasMan итд - ни очем не говорящие ошибки отключения туннеля да и только.

    пока что сделал новый сервер Ovpn
    по дефолту там тоже каждый час разрыв, но reneg-sec 0 решает этот вопрос
    только что наверное это не совсем правильно..



  • @werter
    Обновился на тестовом стенде
    посмотрим

    да, версия strongswan теперь посвежее, за декабрь 2019
    5.8.2

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

    https://www.strongswan.org/blog/2020/03/25/strongswan-5.8.3-released.html

    но это уже будет в новом апдейте PF



  • @mikeroygbiv
    По-моему , тут дело в клиенте Windows
    Обращу еще раз Ваше внимание , что в журнале событий оба обрыва связаны с неответом второй стороны
    1 раз при обновлении ключей - клиент не ответил на сообщение
    2 раз клиент перестал отвечать на dpd запросы ( попробуйте их отключить )

    Сегодня на ночь специально поставлю телефон с включенным удаленным доступом ( посмотрим , сколько продержится соединение )



  • @Konstanti Спасибо большое)!!)

    попробую dpd отключить, ок.!



  • @mikeroygbiv said in Ipsec Ikev2 road warriors (mobile) - разрыв соединения через 8 часов:

    по дефолту там тоже каждый час разрыв, но reneg-sec 0 решает этот вопрос

    У вас, наверное, auth-nocache в конфиге клиента. Без этой директивы коннект, IMHO, не обрывается.



  • @pigbrother это если с сохраненным паролем, не разрывается? (в GUI, на винде, маке итд)
    нет, эта директива не была включена.



  • @mikeroygbiv Извинтите, могу и ошибаться. В свое время экспериментировал с auth-nocache, соединение рвалось каждый час с запросом логина -пароля. Помогло reneg-sec 0 на стороне сервера.
    Позже auth-nocache у клиентов убрал, а reneg-sec 0 на сервере, оказывается, осталось.
    Сейчас экспериментировать неуместно , многие работают через OVPN из дому.



  • @mikeroygbiv Добрый день
    Насколько я вижу , Вы нашли решение Вашей проблемы
    Если несложно , опишите решение здесь , чтобы в будущем кому-то было это полезным



  • @Konstanti
    да, обязательно отпишусь сюда и в соседнюю тему о способах решения проблемы если все успешно решу)

    пока что WIndows не отреагировал на настройку таймаута рекея (Брандмауер-IPsec, настройки первой фазы - 480 мин по умолчанию)

    возможно, ему не нравится редактирование с GUI или еще чтото -буду тестировать.

    нашел интересную статью на этот счет (больше касается безопасности, но все же, интересно что, во всех манаулах написаных кем либо для pfsense по поводу мобильного IPsec ikev2+Windows везде написано строго использовать такие параметры как SHA1, DH 2, итд. иначе не подключитесь

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

    [https://www.stevenjordan.net/2016/09/secure-ikev2-win-10.html)](link url)



  • @mikeroygbiv
    Настройте все так, чтобы инициатором обновления ключей был именно Виндоуз
    Как раз об этом я и писал в ссылке , которую Вам привели в той теме



  • Я понял, в чем была проблема, решил ее, разрывов больше нет через 8 часов.! (есть Рекей от Windows, но он проходит успешно)
    в Windows по умолчанию были алгоритмы phase_1, которые не соответствовали моему Pfsense,phase1! :)

    из GUI, Windows Defender FIrewall with advansed security-Windows Defender Firewall Settings-IPcec Settings, Main mode - Advanced - ничего не меняется вообще.

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

    (DWORD):
    NegotiateDH2048_AES256
    значение:
    1
    могут быть установлены другие параметры, 1, на мой взгляд, является оптимальным, для теста тем более.

    вот таблица с парамтерамми фаз для реестра WIndows
    MM - Первая фаза
    QM - Вторая фаза

    88885e77-3c3c-4570-9257-35ec6a04bd8b-image.png

    Конечно, можно делать все это через powershell, и, возможно, лучше, но через реестр кому-то будет легче)

    затем создайте соединение (powershell)
    в моем случае это было так:

    Add-VpnConnection -Name "TEST" -ServerAddress "vpn.server.com" -TunnelType Ikev2 -EncryptionLevel Required -AuthenticationMethod Eap -SplitTunneling -AllUserConnection -RememberCredential -PassThru
    

    успешно подключаемся и смотрим параметры созданного SA через powershell:

    Get-NetIPsecMainModeSA
    

    в моем случае это выглядит так:

    Name                                : 2
    LocalEndpoint                       : 192.168.1.30
    RemoteEndpoint                      : XXX.XXX.XXX.XXX
    LocalFirstId.Identity               :
    LocalFirstId.ImpersonationType      : None
    LocalFirstId.AuthenticationMethod   : EAP
    LocalFirstId.Flags                  : None
    RemoteFirstId.Identity              : vpn.server.com
    RemoteFirstId.ImpersonationType     : None
    RemoteFirstId.AuthenticationMethod  : Certificate
    RemoteFirstId.Flags                 : None
    LocalSecondId.Identity              :
    LocalSecondId.ImpersonationType     :
    LocalSecondId.AuthenticationMethod  :
    LocalSecondId.Flags                 :
    RemoteSecondId.Identity             :
    RemoteSecondId.ImpersonationType    :
    RemoteSecondId.AuthenticationMethod :
    RemoteSecondId.Flags                :
    CipherAlgorithm                     : AES256
    HashAlgorithm                       : SHA1
    GroupId                             : DH14
    KeyModule                           : IkeV2
    MaxQMSAs                            : 0
    LifetimeSeconds                     : 28800
    LocalUdpEncapsulationPort           : 4500
    RemoteUdpEncapsulationPort          : 4500
    ExtendedFilterId                    : 0
    
    LifetimeSeconds                     : 28800
    

    Я не нашел, как изменить этот параметр в меньшую или большую сторону
    это какой-то системный вшитый параметр,
    нигде не нашел о нем информации..
    ни о ключах реестра, ни о командлетах PowerShell, ничего .. (только для Azure IPsec чтото мелькало, и оно не работает с Windows )

    Ну, ладно, в
    любом случае, через 28800 секунд, Rekey успешен, и соединение не разрывается!
    (это для теста я хотел сделать меньше, чтобы не ждать 8 часов)

    Подводя итоги - нужно быть более внимательным к параметрам и алгоритмам 1-2 фаз как на сервере, так и на клиенте, чтобы фазы соответствовали друг другу.

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

    всем большое спасибо !!!



  • This post is deleted!


  • вот еще , ранее тут на форуме, @groupers давал рекомендации, можно также придерживаться их (и наверное, лучше)

    https://forum.netgate.com/topic/150670/safe-ikev2-configuration-for-pfsense-and-windows-10-and-macos

    хотя они противоречат тому что я здесь написал выше,(удаление ключа реестра, и настройка алгоритмов через Powershell) суть одна = выставление одинаковых параметров и на Pfsense и на Windows, MacOS

    прилагаю также ссылку на описание командлетов и параметров powershell
    Создание соединения:

    [https://docs.microsoft.com/en-us/powershell/module/vpnclient/add-vpnconnection?view=win10-ps](link url)

    и настройка алгоритмов:
    [https://docs.microsoft.com/en-us/powershell/module/vpnclient/set-vpnconnectionipsecconfiguration?view=win10-ps](link url)



  • @mikeroygbiv по Mac OS, поверьте, все гораздо проще. Через appleconfigurator все настраивается 'на ура' и без танцев с бубном. При чем настраиваются и компы и телефоны и планшеты



  • @Konstanti это здорово!, честно говоря не пробовал, надо бы попробовать, у всех тех, у кого Mac,на Ovpn работают)


Log in to reply