1.6.1. 服务器上的高级路由 VPN 配置
以上是一个非常简单的工作VPN。 客户端可以通过加密隧道访问 VPN 服务器机器上的服务。 如果您想访问更多服务器或其他网络中的任何内容,请将一些路由推送到客户端。 例如,如果您公司的网络可以汇总到网络 192.168.0.0/16,您可以将此路由推送到客户端。 但是您还必须更改返回的路由 - 您的服务器需要知道到 VPN 客户端网络的路由。
或者,您可以向所有客户端推送一个默认网关,以首先将其所有 Internet 流量发送到 VPN 网关,然后通过公司防火墙从那里发送到 Internet。 本节向您展示了一些可能的选项。
将路由推送到客户端以允许它到达服务器后面的其他私有子网。 请记住,这些私有子网还需要知道将 OpenVPN 客户端地址池 (10.8.0.0/24) 路由回 OpenVPN 服务器。
推送“路线 10.0.0.0 255.0.0.0”
如果启用,此指令将配置所有客户端通过 VPN 重定向其默认网络网关,从而导致所有 IP 流量(例如 Web 浏览和 DNS 查找)通过 VPN(OpenVPN 服务器计算机或您的中央防火墙可能需要对 TUN 进行 NAT /TAP 到 Internet 的接口以使其正常工作)。
推送“重定向网关 def1 绕过 dhcp”
配置服务器模式并为 OpenVPN 提供一个 VPN 子网以从中提取客户端地址。 服务器将占用 10.8.0.1,其余的将提供给客户端。 每个客户端都可以访问服务器
10.8.0.1。 如果您是以太网桥接,请注释掉这一行。
服务器10.8.0.0 255.255.255.0
在此文件中维护客户端与虚拟 IP 地址关联的记录。 如果 OpenVPN 出现故障或重新启动,则可以从先前分配的池中为重新连接的客户端分配相同的虚拟 IP 地址。
ifconfig-池-坚持 ipp.txt
将 DNS 服务器推送到客户端。
推送“dhcp-option DNS 10.0.0.2”推送“dhcp-option DNS 10.1.0.2”
允许客户端到客户端通信。
客户对客户
在 VPN 链接上启用压缩。
康宝
这个 活着 指令导致类似 ping 的消息通过链接来回发送,以便每一方都知道另一方何时发生故障。 每 1 秒 ping 一次,如果在 3 秒的时间段内没有收到 ping,则假设远程对等点关闭。
keepalive 1 3
在初始化后减少 OpenVPN 守护进程的权限是个好主意。
用户nobody组nogroup
OpenVPN 2.0 包含一项功能,允许 OpenVPN 服务器从连接的客户端安全地获取用户名和密码,并使用该信息作为验证客户端的基础。 要使用此身份验证方法,首先将 auth-user-pass 指令添加到客户端配置中。 它将指示 OpenVPN 客户端向用户查询用户名/密码,并通过安全 TLS 通道将其传递给服务器。
# 客户端配置! 授权用户通行证
这将告诉 OpenVPN 服务器验证客户端使用登录 PAM 模块输入的用户名/密码。 如果您使用 Kerberos 等进行集中式身份验证,则很有用。
插件 /usr/lib/openvpn/openvpn-plugin-auth-pam.so 登录
请阅读 OpenVPN 加固安全指南1 以获得进一步的安全建议。