iptables,限制特定目标子网的 openvpn 转发

iptables,限制特定目标子网的 openvpn 转发

我正在尝试设置一个 openvpn 服务器,它运行 2 个不同的 openvpn 实例,以提供对不同 vpc 子网的访问。

如果用户连接到 10.6.0.0/24,他们应该只能访问某些子网,但如果他们连接到 10.7.0.0/24,他们应该可以访问所有 VPC 子网。

为了尝试实现这一点,我编写了以下 iptables 命令...

iptables -t nat -A POSTROUTING -s 10.6.0.0/24 -o ens5 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.7.0.0/24 -o ens5 -j MASQUERADE
iptables -A FORWARD -d 10.121.0.0/18 -j ACCEPT
iptables -A FORWARD -d 10.111.0.0/18 -j ACCEPT
iptables -A FORWARD -s 10.7.0.0/24 -d 10.120.0.0/18 -j ACCEPT
iptables -A FORWARD -s 10.7.0.0/24 -d 10.110.0.0/18 -j ACCEPT
iptables -P FORWARD REJECT

子网 10.121.0.0/18 和 10.111.0.0/18 旨在可供任何 vpn 用户访问,但 10.120.0.0/18 和 10.110.0.0/18 仅应可供 10.7.0.0/24 用户访问。

我觉得这很合理,但不幸的是,它不起作用。10.6.0.0/24 上的用户仍然能够 ping 10.120.0.0/18 和 10.110.0.0/18 中的服务器

我希望有人能指出我做错的地方。显然我对 iptables 的理解是错误的。

我找到了部分问题的解决方案。

似乎它不喜欢 REJECT。当我尝试从命令行手动运行它时,它给出了错误...

iptables: Bad policy name. Run `dmesg' for more information. 

我将其更改为以下内容...

iptables -P FORWARD DROP

问题是,现在它只是丢弃了所有 FORWARD 请求。它似乎忽略了所有其他规则。

相关内容