仅当 Windows Server 上的 VPN 连接处于活动状态时才限制对公共 IP 的 Ping 访问

仅当 Windows Server 上的 VPN 连接处于活动状态时才限制对公共 IP 的 Ping 访问

我已为 Windows Server 配置了公共 IP 地址并设置了路由和远程访问。配置路由和远程访问后,我选择了自定义设置并启用了 NAT 和 VPN。然后,我为使用预共享密钥的 L2TP/IKEv2 连接设置了自定义 IPsec 策略,并定义了静态地址池 (40.30.0.1 - 40.30.0.6)。

通过此配置,我可以从任何网络轻松连接到我的 VPN。但是,我注意到即使我没有连接到 VPN,我的公共 IP 地址仍然可以 ping 通。我想限制仅在 VPN 连接处于活动状态时才能 ping 我的公共 IP 地址。

如何配置 Windows Server,以便仅在建立 VPN 连接时才可 ping 公共 IP 地址?路由和远程访问中是否有需要调整的特定防火墙规则或设置?

答案1

这是一个 PowerShell 脚本,您可以将其放入任务计划程序中,并让它每 5 分钟左右运行一次。它会检查 VPN 是否处于活动状态,然后创建两个防火墙规则以允许 ping

# Check if a VPN connection is active
$vpnActive = (Get-VpnConnection -AllUserConnection).Where({ $_.ConnectionStatus -eq 'Connected' })

if ($vpnActive) {
    Write-Host "VPN connection is active. Creating firewall rule to allow ping."

    # Create a new inbound firewall rule to allow ICMP (ping) traffic
    New-NetFirewallRule -DisplayName "Allow ICMPv4-In" -Direction Inbound -Protocol ICMPv4 -Action Allow
    New-NetFirewallRule -DisplayName "Allow ICMPv6-In" -Direction Inbound -Protocol ICMPv6 -Action Allow

    Write-Host "Firewall rule to allow ping created successfully."
} else {
    Write-Host "No VPN connection active. Deleting firewall rule to allow ping."

    # Delete the existing firewall rules to allow ICMP (ping) traffic
    Get-NetFirewallRule -DisplayName "Allow ICMPv4-In" | Remove-NetFirewallRule
    Get-NetFirewallRule -DisplayName "Allow ICMPv6-In" | Remove-NetFirewallRule

    Write-Host "Firewall rule to allow ping deleted successfully."
}

相关内容