Windows 10 客户端上的 Strongswan IKEv2 vpn“策略匹配错误”

Windows 10 客户端上的 Strongswan IKEv2 vpn“策略匹配错误”

我在 Ubuntu 服务器上运行了最新版本的 Strongswan vpn。我遵循本教程这里并让它在我的 android 和 Iphone 上运行。

现在我想让它在我的 Windows 10 笔记本电脑上运行,但是当我尝试通过 Windows 中的 vpn 设置连接时,我只收到“策略匹配错误”,事件视图给出了错误代码“13868”。

经过多次谷歌搜索,我仍然找不到任何可行的解决方案。

我能做些什么?

答案1

问题很可能是 Windows 客户端建议使用弱 Diffie-Hellman (DH) 组 (1024 位 MODP)。除非用户明确配置,否则 strongSwan 不会再使用该组。

您有两个选择:

  1. 配置 Windows 以使用更强大的 DH 组。这可以通过以下方式完成
    • 通过设置 VpnConnectionIPsec 配置PowerShell cmdlet,允许启用更强大的 DH 组(例如组 14/2048 位 MODP 或 384 位 ECP)甚至其他算法(例如 AES-GCM 组合模式加密/完整性,效率更高,但也需要在服务器上明确启用)
    • 或者通过注册表添加 DWORD 键HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rasman\Parameters\NegotiateDH2048_AES256。将其设置为1启用(其他算法仍然被提议),或者2强制使用 256 位 AES-CBC 和 2048 位 MODP DH(只提议这些)。
  2. 将建议的弱 DH 组(1024 位 MODP)添加到服务器上的 IKE 建议中(例如,配置类似的内容ike=aes256-aes128-sha256-sha1-modp3072-modp2048-modp1024,将其添加到最后,以便其他客户端可以使用更强的 DH 组)。

选项 1 绝对是首选。

答案2

要找出问题所在,您首先应该打开日志记录并查看连接过程中发生的情况。这是我在服务器上使用的示例配置。

/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 =
        }
    }
}

你可以使用它并分析日志文件来发现问题。如果你无法弄清楚,请在此处发布连接日志,我会尽力帮助你。

相关内容