我在工作网络上设置了一个 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。