OpenVPN社区版限制客户端仅访问指定IP网段的配置方案(搭配UFW防火墙)
OpenVPN社区版限制客户端仅访问指定IP网段的配置方案(搭配UFW防火墙)
嗨,刚好碰到过类似的需求,结合你在用UFW的情况,给你两个层面的配置思路,双管齐下更稳妥:
一、先调整OpenVPN服务器端配置,从路由层面限制客户端能访问的网段
- 首先检查你的
server.conf(一般在/etc/openvpn/server/目录下),如果之前加过类似push "route 192.168.0.0 255.255.0.0"这种推送整个内网段的命令,赶紧删掉或者用#注释掉——这会让客户端拿到所有内网路由,完全不符合你的需求。 - 只添加你允许访问的网段路由,在
server.conf里加入这一行:
这样客户端连接后,只会收到192.168.1.0/24的路由信息,默认情况下根本不知道另外两个网段的存在,自然不会去访问。push "route 192.168.1.0 255.255.255.0" - 重启OpenVPN服务生效:
sudo systemctl restart openvpn-server@server
二、用UFW防火墙做强制拦截,防止客户端手动绕开路由限制
毕竟有些懂行的客户端可能会手动添加路由,这时候防火墙就能起到兜底作用:
- 先确认UFW的IP转发配置是开启的(之前配置OpenVPN时应该已经弄过,但再检查下更放心):
编辑/etc/ufw/sysctl.conf,确保下面几行没有被注释(去掉前面的#):net.ipv4.ip_forward=1 net.ipv6.conf.default.forwarding=1 net.ipv6.conf.all.forwarding=1 - 添加允许OpenVPN客户端网段(默认是10.8.0.0/24,对应虚拟网卡
tun0)访问目标网段的规则:sudo ufw allow in on tun0 to 192.168.1.0/24 - 接着添加拒绝规则,直接挡住客户端访问另外两个网段的流量:
sudo ufw deny in on tun0 to 192.168.2.0/24 sudo ufw deny in on tun0 to 192.168.3.0/24 - 最后重启UFW让规则生效:
sudo ufw reload
小提示
- 如果你的OpenVPN客户端网段不是默认的10.8.0.0/24,比如改成了10.9.0.0/24,记得把上面命令里的
tun0相关规则对应替换成你的实际网段。可以用ip addr show tun0查看虚拟网卡的网段信息。 - 配置完后记得测试:用VPN客户端尝试ping 192.168.2.1或者192.168.3.1,应该会超时;而ping 192.168.1.0/24里的正常服务地址,应该能正常连通(前提是目标主机本身没有防火墙拦截)。
备注:内容来源于stack exchange,提问作者sebastian
相关产品推荐
相关产品推荐

