こんにちは、私たちは常時接続用のVPNを立ち上げているところで、既に解決しようとしている珍しい障害に直面しています。Windows 10 VPNクライアントの設定は簡単にできるのですが、接続にPSKを設定する必要があり、これはWindows 10がIKEv2接続にはサポートしていません。
PSKを不要にし、Microsoftの認証スタックを利用して認証をユーザーに透過的に処理させるようにしたいと思っていました。ですが、現状、設定からフェーズ1の認証を削除できない状況にあるようで、私は専門家ではありません。
誰か常時接続のバックエンドを設定した経験はありますか?暗号交渉の部分は既に解決済みで、FortigateがなぜPSKを要求するのか理解できていません。
これは少し長くて密度が高いですが、参考になれば幸いです。
FortiOS 6.2デバイス(Win 10ユーザートンネル)の例:
FortiOS CLI
Windows 10関連:
デバイステunnelについて考慮すべき点:
Windows 10でデバイストンネルの状態を有効にする:
名前解決ポリシーテーブル:
https://serverfault.com/questions/925901/windows-10-always-on-vpn-split-dns-nrpt-and-how-to-configure-which-dns-server
トラブルシューティング:
クライアント情報:
デバイストンネルVPN接続の状態を取得
Get-VpnConnection -AllUserConnection
VPNトンネルが存在するかどうかは、GUIのネットワークアダプタ一覧を見るとわかります。ネットワークアダプタとして表示されます。GUI経由でアダプタの設定を変更しないでください。
サービス’IKE and AuthIP IPsec Keying Modules’ (IKEEXT)は、VPNが動作するために自動起動に設定しておく必要があります。このサービスはしばしば無効になっています。アップデート後や月次パッチ適用後に手動や無効に戻されていることもあります。したがって、GPOで自動起動に設定することが推奨されます。
Set-Service -Name "IKEEXT" -StartupType Automatic
Start-Service -Name "IKEEXT"
Get-Service -Name "IKEEXT"
PowerShellモジュールが必要で、これを使ってシステムユーザとしてVPNをインストール/更新します(psexecを使わずに)。
Install-Module -Name Invoke-CommandAs
VPN接続を作成または上書き:
Invoke-CommandAs -ScriptBlock {c:\AOVPN\New-AovpnDeviceTunnel.ps1 -xmlFilePath c:\AOVPN\AOVPN.xml} -AsSystem
デバイストンネルVPN接続を手動で削除:
rasdial.exe "Always On VPN Device Tunnel" /disconnect
Remove-VPNConnection -Name "Always On VPN Device Tunnel" -AllUserConnection -Force -PassThru
デバイストンネルをGUIで見えるようにするにはレジストリキーを追加:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Flyout\VPN]
"ShowDeviceTunnelInUI"=dword:00000001
常時接続VPNの修復(デバイステンネル含む)と状況確認:
Write-Host "IKEEXTサービスの修復"
Set-Service -Name "IKEEXT" -StartupType Automatic
Start-Service -Name "IKEEXT"
Get-Service -Name "IKEEXT"
Write-Host "レジストリキーをインポートしてVPNをタスクバーの接続リストに表示"
reg import "C:\AOVPN\VPNStatusForUser.reg"
Write-Host "AutoTriggerDisabledProfileListレジストリキーを確認し、必要なら削除"
$regkeypath="HKLM:\SYSTEM\CurrentControlSet\Services\RasMan\Config"
$regkeyitem="AutoTriggerDisabledProfilesList"
$regkeyvalue="Always On VPN Device Tunnel"
$value1 = (Get-ItemProperty $regkeypath).$regkeyitem -eq $regkeyvalue
If ($value1 -eq $False) {Remove-ItemProperty -Path $regkeypath -Name $regkeyitem}
Else {Write-Host "値は存在しません"}
Write-Host "他のスクリプトとともにこれらの設定をリセットします。"
pause
Write-Host "全NICのIPv4, IPv6, Winsock設定をリセット"
netsh int ip reset
netsh int ipv6 reset
netsh winsock reset
pause
追記:約束した内容の一部を追加しました。