我在 Windows 7 客户端和 Linux 服务器之间设置了 OpenVPN。目标是让我可以从客户端 LAN 上的任何计算机安全地访问服务器上运行的 Web 应用程序。
我使用 ccd 为每个客户端连接分配静态 IP 地址,并进行密钥身份验证。它在我的客户端计算机 (10.83.41.9) 上运行,当您转到网关 IP 地址 (10.83.41.1) 时,它会加载 Web 应用程序。
现在我确实需要客户端 LAN 上的其他计算机也能够通过 Windows 机器连接到 Web 应用程序。
客户端在 LAN 上有一个静态 IP 地址 192.168.2.100,并且我在 Windows 中启用了 IP 转发(通过 ipconfig /all 确认)。在我的路由器中,我已将 10.83.41.1 / 255.255.255.255 转发到 192.168.2.100。
在 server.conf 中我有..
路由 192.168.2.0 255.255.255.0
在办公室 ccd 中..
ifconfig-push 10.83.41.9 10.83.41.10 iroute 192.168.2.0 255.255.255.0
客户端日志如下:
Thu Mar 15 20:19:56 2012 OpenVPN 2.2.2 Win32-MSVC++ [SSL] [LZO2] [PKCS11] built on Dec 15 2011
Thu Mar 15 20:19:56 2012 NOTE: OpenVPN 2.1 requires '--script-security 2' or higher to call user-defined scripts or executables
Thu Mar 15 20:19:56 2012 Control Channel Authentication: using 'ta.key' as a OpenVPN static key file
Thu Mar 15 20:19:56 2012 Outgoing Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Thu Mar 15 20:19:56 2012 Incoming Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Thu Mar 15 20:19:56 2012 LZO compression initialized
Thu Mar 15 20:19:56 2012 Control Channel MTU parms [ L:1558 D:166 EF:66 EB:0 ET:0 EL:0 ]
Thu Mar 15 20:19:56 2012 Socket Buffers: R=[8192->8192] S=[64512->64512]
Thu Mar 15 20:19:56 2012 Data Channel MTU parms [ L:1558 D:1450 EF:58 EB:135 ET:0 EL:0 AF:3/1 ]
Thu Mar 15 20:19:56 2012 Local Options hash (VER=V4): '9e7066d2'
Thu Mar 15 20:19:56 2012 Expected Remote Options hash (VER=V4): '162b04de'
Thu Mar 15 20:19:56 2012 UDPv4 link local: [undef]
Thu Mar 15 20:19:56 2012 UDPv4 link remote: 111.65.224.202:1194
Thu Mar 15 20:19:56 2012 TLS: Initial packet from 111.65.224.202:1194, sid=ceb04c22 8cc6d151
Thu Mar 15 20:19:56 2012 VERIFY OK: depth=1, /C=NZ/O=XXX./CN=XXX
Thu Mar 15 20:19:56 2012 VERIFY OK: nsCertType=SERVER
Thu Mar 15 20:19:56 2012 VERIFY OK: depth=0, /C=NZ/O=XXX./CN=XXX
Thu Mar 15 20:19:56 2012 Replay-window backtrack occurred [1]
Thu Mar 15 20:19:56 2012 Data Channel Encrypt: Cipher 'AES-256-CBC' initialized with 256 bit key
Thu Mar 15 20:19:56 2012 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Thu Mar 15 20:19:56 2012 Data Channel Decrypt: Cipher 'AES-256-CBC' initialized with 256 bit key
Thu Mar 15 20:19:56 2012 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Thu Mar 15 20:19:56 2012 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 1024 bit RSA
Thu Mar 15 20:19:56 2012 [server] Peer Connection Initiated with 111.65.224.202:1194
Thu Mar 15 20:19:58 2012 SENT CONTROL [server]: 'PUSH_REQUEST' (status=1)
Thu Mar 15 20:19:59 2012 PUSH: Received control message: 'PUSH_REPLY,route 10.83.41.1,topology net30,ping 10,ping-restart 120,ifconfig 10.83.41.9 10.83.41.10'
Thu Mar 15 20:19:59 2012 OPTIONS IMPORT: timers and/or timeouts modified
Thu Mar 15 20:19:59 2012 OPTIONS IMPORT: --ifconfig/up options modified
Thu Mar 15 20:19:59 2012 OPTIONS IMPORT: route options modified
Thu Mar 15 20:19:59 2012 ROUTE default_gateway=192.168.2.1
Thu Mar 15 20:19:59 2012 TAP-WIN32 device [OpenVPN] opened: \\.\Global\{B32D85C9-1942-42E2-80BA-7E0B5BB5185F}.tap
Thu Mar 15 20:19:59 2012 TAP-Win32 Driver Version 9.9
Thu Mar 15 20:19:59 2012 TAP-Win32 MTU=1500
Thu Mar 15 20:19:59 2012 Notified TAP-Win32 driver to set a DHCP IP/netmask of 10.83.41.9/255.255.255.252 on interface {B32D85C9-1942-42E2-80BA-7E0B5BB5185F} [DHCP-serv: 10.83.41.10, lease-time: 31536000]
Thu Mar 15 20:19:59 2012 Successful ARP Flush on interface [45] {B32D85C9-1942-42E2-80BA-7E0B5BB5185F}
Thu Mar 15 20:20:04 2012 TEST ROUTES: 1/1 succeeded len=1 ret=1 a=0 u/d=up
Thu Mar 15 20:20:04 2012 C:\WINDOWS\system32\route.exe ADD 10.83.41.1 MASK 255.255.255.255 10.83.41.10
Thu Mar 15 20:20:04 2012 ROUTE: CreateIpForwardEntry succeeded with dwForwardMetric1=30 and dwForwardType=4
Thu Mar 15 20:20:04 2012 Route addition via IPAPI succeeded [adaptive]
Thu Mar 15 20:20:04 2012 Initialization Sequence Completed
从其他机器我可以 ping 192.169.2.100,但不能 ping 10.83.41.1。
在操作指南中,还提到了“确保您的网络接口处于混杂模式”。我在 Windows 网络配置中找不到,所以这可能是也可能不是其中的一部分。
理想情况下,无需对其他 LAN 计算机进行任何特殊配置即可实现此目的。目前我不确定自己能走多远,有什么想法吗?我是否遗漏了什么,或者我需要知道什么?
答案1
我设法修复了它 - 我不知道来自远程计算机的 HTTP 请求会保留其远程 IP,我让 IPTABLES 阻止除 VPN 子网上的 IP 地址之外的所有 IP 地址,但这些 IP 地址只能用于网关计算机。