设置全新的 OpenVPN 以允许 LAN 连接

设置全新的 OpenVPN 以允许 LAN 连接

所以我是 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。因此:

  1. 你的 LAN 应该有到 VPN 网络的路由,并且该路由是通过运行 OpenVPN 的服务器
  2. 您的 VPN 客户端应该有到 LAN 的路由,并且该路由是通过其 VPN“网关”
  3. 你的防火墙应该允许所有这些数据包

要实现第一个目标,您需要在 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 可以做什么;它能够做很多事情,比您使用的要多得多,但了解它的全部功能还是很有用的,以防您需要它。此外,您还将有机会完善和更好地理解我对其内部结构的解释,包括“路由”和“推送”真正作用的“官方”描述。例如,您可以在配置中包含外部文件(证书和密钥),这非常方便在仅使用单个“捆绑”文件的客户端上进行设置。

相关内容