我在 Ubuntu 服务器上运行了最新版本的 Strongswan vpn。我遵循本教程这里并让它在我的 android 和 Iphone 上运行。
现在我想让它在我的 Windows 10 笔记本电脑上运行,但是当我尝试通过 Windows 中的 vpn 设置连接时,我只收到“策略匹配错误”,事件视图给出了错误代码“13868”。
经过多次谷歌搜索,我仍然找不到任何可行的解决方案。
我能做些什么?
答案1
问题很可能是 Windows 客户端建议使用弱 Diffie-Hellman (DH) 组 (1024 位 MODP)。除非用户明确配置,否则 strongSwan 不会再使用该组。
您有两个选择:
- 配置 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(只提议这些)。
- 将建议的弱 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 =
}
}
}
你可以使用它并分析日志文件来发现问题。如果你无法弄清楚,请在此处发布连接日志,我会尽力帮助你。