在今天之前,我可以正常連接到我的工作 VPN(使用libreswan
和NetworkManager-l2tp
)。升級系統後,我的 VPN 連線停止運作。經過大量故障排除後,我發現了一些奇怪的事情:
sudo ike-scan [vpn address]
結果是:
Starting ike-scan 1.9 with 1 hosts (http://www.nta-monitor.com/tools/ike-scan/)
Ending ike-scan 1.9: 1 hosts scanned in 2.471 seconds (0.40 hosts/sec). 0 returned handshake; 0 returned notify
表示目標網關不是IPSec 網關(儘管它肯定是)。
什麼可能導致這種情況?ike-scan
為了使其正常工作,是否需要更改一組設定之外的某些內容?還有其他類似的 IPSec VPN 位址,儘管它們是L2TP/IPSec VPN。另外,就在幾週前,我還曾ike-scan
弄清楚我工作的 VPN 的 Phase1 和 Phase2 演算法是什麼。
還有其他 VPN,例如這回答說不起作用。其他幾個 L2TP/IPSec IP 也不起作用。
這裡可能發生了什麼事?
答案1
如果您使用 ike-scan 而不指定要測試的提案,它將預設為3des-sha1-modp1024。查看輸出,您的 VPN 伺服器似乎不支援該提案。
嘗試以下 ike-scan.sh 腳本,該腳本會迭代許多建議。你可以像sudo ./ike-scan.sh [vpn address] | grep SA=
或那樣運行它sudo bash ike-scan.sh [vpn address] | grep SA=
#!/bin/sh
# Encryption algorithms: 3des=5, aes128=7/128, aes192=7/192, aes256=7/256
ENCLIST="5 7/128 7/192 7/256"
# Hash algorithms: md5=1, sha1=2, sha256=5, sha384=6, sha512=7
HASHLIST="1 2 5 6 7"
# Diffie-Hellman groups: 1, 2, 5, 14, 15, 19, 20, 21
GROUPLIST="1 2 5 14 15 19 20 21"
# Authentication method: Preshared Key=1, RSA signatures=3
AUTHLIST="1 3"
for ENC in $ENCLIST; do
for HASH in $HASHLIST; do
for GROUP in $GROUPLIST; do
for AUTH in $AUTHLIST; do
echo ike-scan --trans=$ENC,$HASH,$AUTH,$GROUP -M "$@"
ike-scan --trans=$ENC,$HASH,$AUTH,$GROUP -M "$@"
done
done
done
done
答案2
如果建議使用以下 PPA 中較新的 network-manager-l2tp 1.2.16 :
為了向後相容於大多數 L2TP/IPsec VPN 伺服器,network-manager-l2tp 1.2.16 及更高版本不再使用 StrongSwan 和 libreswan 預設允許演算法集,而是使用 Windows 10 和 macOS/iOS/ 合併的演算法預設情況下使用iPadOS L2TP/IPsec 用戶端的IKEv1 建議。 Win10 和 iOS 都不常見的最弱提案被放棄,但所有最強提案都被保留。
因此,對於network-manager-l2tp 1.2.16和1.8.0(注意:由於與從Debian繼承的OpenSSL存在GPLv2許可不相容問題,1.8.0尚未針對Ubuntu發布),我建議刪除第1階段和第2階段提案因為它們不再是必要的了。
如果您使用 Strongswan 並按照 README.md 檔案中的說明啟用偵錯:
您可以看到 VPN 伺服器提供的第 1 階段(主模式)和第 2 階段(快速模式)建議。