完整答案。

完整答案。

我在工作网络上设置了一个 OpenVPN 服务器,我可以通过 VPN 从远程计算机访问该服务器。但是我不知道如何访问服务器后面的局域网。

网络布局如下:

----------   -------   --------   ----------------  
|Internet|-->|Modem|-->|Switch|-->|OpenVPN Server|  
----------   -------   --------   ----------------

该服务器是ubuntu服务器。我已在服务器上启用了IP转发。

我们的网关/调制解调器是 Linksys WAG54G2,并与 WinXP 机器连接。

有人知道如何打开 OpenVPN 服务器所在的子网吗?

答案1

此设置是 CentOS 特有的,但您的安装可能类似。此配置也适用于 2.0 版本,2.1 系列似乎使用不同格式的配置文件。 它还假设你使用两个 Linux 机器来执行此操作,而不仅仅是加入 Windows XP 端点- 因此您需要针对所使用的 Windows XP 安装进行调整。在此示例中,地址是随机选择的,因此分配方式如下:

  • 1.1.1.1 是你工作服务器面向互联网的公网地址
  • 2.2.2.2 是你家里面向互联网的服务器的公网地址
  • 192.168.1.0/24 是你工作的网络
  • 192.168.1.1 是你的机器的内部地址,其为 1.1.1.1
  • 192.168.1.254 将是具有 1.1.1.1 的机器的 VPN 端点
  • 192.168.2.0/24 是你家里的网络
  • 192.168.2.1 是你的机器的内部地址,有 2.2.2.2
  • 192.168.2.254 将是具有 2.2.2.2 的机器的 VPN 端点

  • 1.1.1.1 和 2.2.2.2 都通过防火墙的 1194 端口接受流量仅彼此。没有必要接受来自其他任何地方的流量,这将减少潜在的攻击。

秘密静态密钥

对您来说,使用静态密钥是最简单的。 阅读此处的说明,了解如何制作。 以下是以 root 身份从 1.1.1.1 完成的简短版本:

openvpn --genkey --secret > /etc/openvpn/secret.key
chmod 600 /etc/openvpn/secret.key
scp /etc/openvpn/static.key [email protected]:/etc/openvpn/secret.key
ssh [email protected]
chmod 600 /etc/openvpn/secret.key
exit

本地(工作 LAN)配置示例:

您可以将此文本放在/etc/openvpn/home-vpn您的工作机器(1.1.1.1)上,假设 OpenVPN 在启动时读取内容/etc/openvpn

#daemon home-vpn 
local 1.1.1.1 
remote 2.2.2.2 
proto tcp-server 
port 1194 
dev tun0 
ifconfig 192.168.1.254 192.168.2.254 
route 192.168.2.0 255.255.255.0 192.168.1.254 6
route-delay 5
verb 3 
nice 1
secret /etc/openvpn/secret.key
comp-lzo
passtos

远程(家庭 LAN)配置示例:

您可以将此文本放在/etc/openvpn/work-vpn您的家用机器(2.2.2.2)上,假设 OpenVPN 在启动时读取内容/etc/openvpn

#daemon work-vpn 
local 2.2.2.2 
remote 1.1.1.1 
proto tcp-server 
port 1194 
dev tun0 
ifconfig 192.168.2.254 192.168.1.254
route 192.168.1.0 255.255.255.0 192.168.2.254 6
route-delay 5
verb 3 
nice 1
secret /etc/openvpn/secret.key
comp-lzo
passtos

评论

这里的示例以优先级 1 运行 openvpn 服务;如果您不希望这样,请删除整行,nice 1使其像其他程序一样运行。压缩在comp-lzo两端启用,并passtos允许 TOS 数据包位在 VPN 中存活。如果您愿意,也可以禁用这两者。有些人会注意到路由成本 6 似乎有点高,这是真的,它可以低得多(4-5,具体取决于设置),但 6 为子网和额外路由提供了足够的“覆盖范围”。

最后,由于我是在凌晨 1:31 发布此信息的,我确信我忘记了某些内容或者错误地标记了某些内容,因此请随意检查设置并仔细检查。

答案2

完整答案。

  • 请参阅 Avery Payne 的详细注释,都在那里。

简短回答。

  • 远程客户端需要通过 VPN 连接将流量路由到您的 LAN
  • LAN 主机需要将 VPN 专用 LAN 的流量路由到 OpenVPN 服务器

中等答案。

远程客户端

当您的 OpenVPN 客户端连接到 OpenVPN 服务器时,客户端现在将至少拥有 2 个 IP 地址。

  • “IP 地址 A” 客户端用于连接互联网和 OpenVPN 服务器
  • OpenVPN 客户端设置的“IP 地址 B”

问题在于,在正常情况下,您的客户端不知道将局域网内的 IP 范围的流量发送到哪里。客户端通常会有一个“默认网关”(即,我将流量发送到我不知道的目的地)转发到您的 ISP。

解决这一难题的更好方法是让 OpenVPN 客户端在成功设置 VPN 隧道后设置路由。查看 OpenVPN 服务器配置的推送功能。例如:

推“路由 LAN-IP 子网”

(如果您的远程客户端是 Windows 系统,您可能需要在其客户端配置中添加类似下面的内容)

路由方法 exe

上述组合应该可以将流量从远程客户端通过 VPN 传输到 LAN 主机,但现在您需要让 LAN 主机知道将响应发送到何处。

局域网主机

如果您在工作之外的唯一连接是通过 OpenVPN 服务器,那么您只需确保该 VPN 服务器是您的 LAN 的默认网关即可。否则,...

  • 在 LAN 主机上,为“IP 地址 B”子网设置一条路由,通过 OpenVPN 服务器进行网关

答案3

  • 您可以桥接您的局域网和 openvpn 网络。
  • 将您局域网中的机器添加到 vpn。

相关内容