На моем сервере ubuntu установлена последняя версия Strongswan vpn. Я последовал за этот учебник вот и заработал на моем андроиде и айфоне.
Теперь я хочу, чтобы он работал на моем ноутбуке с Windows 10, но когда я пытаюсь подключиться через настройки vpn в Windows, я получаю только «ошибку соответствия политики», а в представлении событий отображается код ошибки «13868».
После долгих поисков в Google я все еще не могу найти рабочего решения.
Что я могу сделать?
Проблема, скорее всего, в том, что клиент Windows предлагает слабую группу Диффи-Хеллмана (DH) (1024-битный MODP). Эта группа больше не используется strongSwan, если пользователь не настроит ее явно.
У вас есть два варианта:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rasman\Parameters\NegotiateDH2048_AES256
. Установите это на 1
включить (другие алгоритмы все еще предлагаются), или 2
для принудительного использования 256-битного AES-CBC и 2048-битного MODP DH (будут предложены только они).ike=aes256-aes128-sha256-sha1-modp3072-modp2048-modp1024
, который добавляет его в конце, чтобы другие клиенты могли использовать более сильные группы DH).Вариант 1 определенно предпочтительнее.
Чтобы выяснить, в чем проблема, в качестве первого шага включите ведение журнала и посмотрите, что происходит в процессе подключения. Вот пример конфигурации, которую я использую на своем сервере.
/etc/strongswan.d/charon-logging.conf
charon {
# Section to define file loggers, see LOGGER CONFIGURATION in
# strongswan.conf(5).
filelog {
# <filename> is the full path to the log file.
/var/log/strongswan.log {
# Loglevel for a specific subsystem.
# <subsystem> = <default>
# If this option is enabled log entries are appended to the existing
# file.
append = yes
# Default loglevel.
default = 2
# Enabling this option disables block buffering and enables line
# buffering.
# flush_line = no
# Prefix each log entry with the connection name and a unique
# numerical identifier for each IKE_SA.
ike_name = yes
# Adds the milliseconds within the current second after the
# timestamp (separated by a dot, so time_format should end with %S
# or %T).
# time_add_ms = no
# Prefix each log entry with a timestamp. The option accepts a
# format string as passed to strftime(3).
# time_format =
}
}
}
Вы можете использовать его и проанализировать файл журнала, чтобы обнаружить проблему. Если у вас не получится разобраться, выложите здесь лог подключения, я постараюсь вам помочь.