所以我是 openVPN 的新手,在设置它并连接客户端和服务器之后,我需要两者都允许 LAN 连接
所以我的设置如下(目前)客户端设置在 192.168.1.X ip 范围内服务器设置在同一范围内(OpenVPN 安装在 192.168.1.2 上)服务器“网络”上的网关是 192.168.1.254
我需要客户端连接到服务器,例如,访问其上的 SMB 共享
这是服务器和客户端的 ovpn 文件
服务器 OVPN
port 1194
proto udp
dev tun
ca "C:\\OpenVPN\\ca.crt"
cert "C:\\OpenVPN\\server.crt"
key "C:\\OpenVPN\\server.key" # This file should be kept secret
dh "C:\\OpenVPN\\dh2048.pem"
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
tls-auth ta.key 0 # This file is secret
cipher AES-256-CBC
persist-key
persist-tun
status openvpn-status.log
verb 3
客户端 OVPN
client
dev tun
proto udp
resolv-retry infinite
nobind
persist-key
persist-tun
ca "C:\\OpenVPN\\VPN1-ca.crt"
cert "C:\\OpenVPN\\VPN1.crt"
key "C:\\OpenVPN\\VPN1.key"
remote-cert-tls server
tls-auth ta.key 1
cipher AES-256-CBC
verb 3
我知道仅仅“询问”这一点很糟糕,但是尝试更改为开发水龙头、路由等,我似乎无法弄清楚。
任何帮助都会有帮助
答案1
您刚刚设置了路由 OpenVPN。因此:
- 你的 LAN 应该有到 VPN 网络的路由,并且该路由是通过运行 OpenVPN 的服务器
- 您的 VPN 客户端应该有到 LAN 的路由,并且该路由是通过其 VPN“网关”
- 你的防火墙应该允许所有这些数据包
要实现第一个目标,您需要在 LAN 中的每个系统上进行适当的路由。如果您的 VPN 服务器已经是它们的默认网关,那么您就大功告成了。如果不是,请在每个 LAN 系统上设置路由(对于 LAN 中的 Windows 系统,请尝试“route -p add 10.8.0.0 mask 255.255.255.0 192.168.1.2”)或在作为 LAN 默认网关的系统上设置到 10.8.0.0/24 的路由。
为了实现第二个目标,您必须将路由推送到您的客户端或在每个客户端配置中配置该路由。第一种方法更灵活、更简洁,因此是首选。添加到服务器配置中:
push "route 192.168.1.0 255.255.255.0"
(您没有提供确切的网络掩码,我假设您有一个 /24 网络。)
这种形式的 OpenVPN 路由命令将通过客户端的“内部 OpenVPN”地址设置路由。
您的 OpenVPN 服务器设置为路由模式,因此它本身就是“路由器”。可以将其视为具有 N+1 个接口的路由器,其中 N 是当前连接的客户端数量,一个是服务器。您将其设置为“net30”模式,请阅读手册了解详细信息,简而言之,它意味着一台服务器,每个客户端都分配有一个 /30 微型网络(每个都有两个可用地址)。服务器分配有 .0/30,第一个客户端分配有 .4/30,依此类推。服务器的地址为 .1,因此面向服务器的“路由器接口”的地址为 .2,这是服务器上 VPN 网络的下一跳;第一个客户端的地址为 .6,其“路由器接口”的地址为 .5,这是客户端进入 VPN 网络的下一跳,后面是(您的 LAN)。这些下一跳地址是 OpenVPN 进程的一部分,您将无法 ping 它们,甚至不要尝试。地址为 10.8.0.6 的客户端将具有以下路由:通过 10.8.0.5 的 10.8.0.0/24 和通过 10.8.0.5 的 192.168.1.0/24。最后这条路由是您使用“推送路由”命令添加的。
可能发生的情况是,您的 LAN 是 192.168.1.0/24,而您的远程客户端的 LAN 是 192.168.1.0/24,当然,所有这些都在 NAT 后面。如果客户端已经有到 192.168.1.0/24 的路由,则通过该路由的 LAN 访问将无法进行。但 OpenVPN 并不那么愚蠢;如果您的客户端借助该路由访问 OpenVPN 服务器,OpenVPN 将创建仅用于服务器访问的特定路由,然后超越其余路由。例如,如果远程客户端的 LAN 中有 192.168.1.5/24,默认网关为 192.168.1.1(这与服务器所在的 LAN 中的 192.168.1.5 和 192.168.1.1 无关),它应该通过物理接口有一个 LAN 路由 192.168.1.0/24。连接后,该路由将通过物理接口替换为 192.168.1.1/32(到单个主机),并通过 VPN 下一跳(对于第一个客户端,为 10.8.0.5)替换为 192.168.1.0/24。因此,它将能够连接到 VPN 服务器后面的 LAN 中的所有主机,但 .1(其本地路由器)和 .5(本身)除外,但它无法连接到具有 192.168.1.x 地址的所有其他本地系统(因为到 192.168.1.0/24 的 VPN 路由已经超过了该路由,数据包将转到 VPN 而不是 LAN)。这就是为什么我强烈建议不要在办公室使用 192.168.0.x 和 192.168.1.x,只是为了降低此类冲突的风险。
最后一项,防火墙。很多人忘记了这一点,所以我在这里只是提醒一下。我不是 Windows 防火墙方面的专家,所以我会让别人来帮你 :)
最后一点。请阅读完整的 OpenVPN 手册页。它描述了 OpenVPN 可以做什么;它能够做很多事情,比您使用的要多得多,但了解它的全部功能还是很有用的,以防您需要它。此外,您还将有机会完善和更好地理解我对其内部结构的解释,包括“路由”和“推送”真正作用的“官方”描述。例如,您可以在配置中包含外部文件(证书和密钥),这非常方便在仅使用单个“捆绑”文件的客户端上进行设置。