限制 OpenVPN 仅可访问某些网站

限制 OpenVPN 仅可访问某些网站

我想通过我的服务器为熟人提供 OpenVPN 的 VPN 服务,仅用于访问特定网站。事实上,尽管我信任他们,甚至允许他们访问我的服务器,但我不希望他们能够通过服务器在互联网上做任何事情,因为我是服务器的所有者,对通过服务器所做的任何事情都负有责任。

有没有办法使用 OpenVPN 或从服务器的防火墙配置来实现这个限制?

答案1

您必须仅允许转发到您的用户有权访问的 IP 地址,然后拒绝转发到所有人。例如:

iptables -A FORWARD -s $VPN_SUBNET -d $ACESSIBLE_IP -j ACCEPT
iptables -A FORWARD -j DROP

Iptables 规则是逐行处理的,因此如果数据包被第一条规则接受,则不会被第二条规则丢弃。当然,您必须将这些规则纳入现有的 iptables 配置中。

编辑: 正如@Lenniey 指出的那样,如果您想允许流量流向具有 CDN 或负载平衡服务器的网站,此解决方案将不起作用。在这种情况下,您必须设置代理服务器。您还可以使用以下命令检查用户的操作:

iptables -A FORWARD -j LOGGING

相关内容