![使用 RRAS 在 Windows Server 2003 SBS 上进行简单的 OpenVPN 设置](https://linux22.com/image/562175/%E4%BD%BF%E7%94%A8%20RRAS%20%E5%9C%A8%20Windows%20Server%202003%20SBS%20%E4%B8%8A%E8%BF%9B%E8%A1%8C%E7%AE%80%E5%8D%95%E7%9A%84%20OpenVPN%20%E8%AE%BE%E7%BD%AE.png)
我正在尝试使用 OpenVPN 设置最基本的 VPN 配置。服务器是 Windows Server 2003 SBS。典型的客户端系统是 Windows 7 Professional。
服务器有两个物理网卡(WAN 和 LAN)。路由器为 WAN 网卡分配了一个静态 WAN IP。服务器使用 Windows 的路由和远程访问服务管理 NAT 和防火墙。
我已经按照设置如何并尝试让事情尽可能简单。
OpenVPN 客户端连接到 OpenVPN 服务器并分配一个 IP 地址。
问题是建立连接后,我无法从客户端 ping 服务器(或执行任何其他通信)。
我怀疑可能和RRAS有冲突。
我想提供更多信息,但我需要指导以了解解决此问题所需的信息。以下是一个起点:
OpenVPN 服务器配置:
port 1194
proto tcp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
client-to-client
keepalive 10 120
comp-lzo
max-clients 100
persist-key
persist-tun
status openvpn-status.log
verb 3
典型的 OpenVPN 客户端配置:
client
dev tun
proto tcp
remote XXX.XXX.XXX.XXX 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
ns-cert-type server
comp-lzo
verb 3
OpenVPN 客户端启动输出:
OpenVPN 2.2.1 Win32-MSVC++ [SSL] [LZO2] built on Jul 1 2011
NOTE: OpenVPN 2.1 requires '--script-security 2' or higher to call user-defined scripts or executables
LZO compression initialized
Control Channel MTU parms [ L:1544 D:140 EF:40 EB:0 ET:0 EL:0 ]
Socket Buffers: R=[8192->8192] S=[8192->8192]
Data Channel MTU parms [ L:1544 D:1450 EF:44 EB:135 ET:0 EL:0 AF:3/1 ]
Local Options hash (VER=V4): '69109d17'
Expected Remote Options hash (VER=V4): 'c0103fa8'
Attempting to establish TCP connection with XXX.XXX.XXX.XXX:1194
TCP connection established with XXX.XXX.XXX.XXX:1194
TCPv4_CLIENT link local: [undef]
TCPv4_CLIENT link remote: XXX.XXX.XXX.XXX:1194
TLS: Initial packet from XXX.XXX.XXX.XXX:1194, sid=2c253639 f0d75bbe
VERIFY OK: depth=1, /C=XX/L=XXX/O=XXX/CN=XXX
VERIFY OK: nsCertType=SERVER
VERIFY OK: depth=0, /C=XX/L=XXX/O=XXX/CN=XXX
Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 1024 bit RSA
[XXX] Peer Connection Initiated with XXX.XXX.XXX.XXX:1194
SENT CONTROL [XXX]: 'PUSH_REQUEST' (status=1)
PUSH: Received control message: 'PUSH_REPLY,route 10.8.0.0 255.255.255.0,topology net30,ping 10,ping-restart 120,ifconfig 10.8.0.6 10.8.0.5'
OPTIONS IMPORT: timers and/or timeouts modified
OPTIONS IMPORT: --ifconfig/up options modified
OPTIONS IMPORT: route options modified
ROUTE default_gateway=192.168.1.1
TAP-WIN32 device [OpenVPN] opened: \\.\Global\{F4CEEE7C-B82C-4EF3-8C1E-4EA31CCC237A}.tap
TAP-Win32 Driver Version 9.8
TAP-Win32 MTU=1500
Notified TAP-Win32 driver to set a DHCP IP/netmask of 10.8.0.6/255.255.255.252 on interface {F4CEEE7C-B82C-4EF3-8C1E-4EA31CCC237A} [DHCP-serv: 10.8.0.5, lease-time: 31536000]
Successful ARP Flush on interface [16] {F4CEEE7C-B82C-4EF3-8C1E-4EA31CCC237A}
TEST ROUTES: 1/1 succeeded len=1 ret=1 a=0 u/d=up
C:\WINDOWS\system32\route.exe ADD 10.8.0.0 MASK 255.255.255.0 10.8.0.5
ROUTE: CreateIpForwardEntry succeeded with dwForwardMetric1=30 and dwForwardType=4
Route addition via IPAPI succeeded [adaptive]
Initialization Sequence Completed
答案1
为什么 RRAS 会干扰?从表面上看,OpenVPN 监听的端口与 RRAS 使用的端口完全不同。此外,如果 VPN 客户端连接,则意味着它正在工作。您的问题是路由问题。RRAS 有一个选项可以启用 LAN 路由,并将充当 VPN 客户端和内部网络之间的路由器。如果 RRAS 中没有设置该选项,RRAS VPN 客户端将只能访问 VPN 服务器。我假设 OpenVPN 也存在同样的问题。OpenVPN 使用什么机制在 VPN 客户端和内部网络之间路由流量?
此外,正如 gravyface 在他的回答中所说,既然 RRAS 是一个功能齐全的 VPN 解决方案,并且具有在客户端内置 VPN 客户端的优势,那么为什么要增加 OpenVPN 的复杂性(在服务器端和客户端)。两端都无需安装软件,并且设置和配置最少。
答案2
有趣的是,我遇到了同样的问题,如果您尝试从 VPN 服务器 ping 客户端,您会得到什么响应?
我发现 RRAS 似乎选择忽略路由规则,因此将数据包发送到 LAN 的默认网关,而不是返回 VPN。由于路由器设置为将该子网的流量路由到 VPN 服务器,因此最终会出现路由循环,并且 TTL 在传输中过期。
如果您只是遇到请求超时的情况,请尝试使用 traceroute(tracert xxxx)并查看它是否为您提供信息。
答案3
您不使用 SBS 2003 上的内置 VPN 服务的原因是什么?它包括 PP2P 和 L2TP over IPSec(需要一点工作)。
除非您对 VPN 有一些要求,否则我强烈建议您使用内置的远程工作网站来允许您的(假设的)远程工作人员进行远程访问,以允许他们通过 Web 界面安全地远程桌面进入他们的计算机(https://mail.example.com/remote)。
它内置于小型企业服务器中并且运行良好。
使用 OpenVPN,他们将需要安装客户端,而使用我讨论过的解决方案时则无需安装任何其他内容。