我正在运行一个CentOS 8服务器,我想创建一个用户,它只有网络访问互联网通过虚拟专用网。这意味着该用户使用的所有应用程序只能通过VPN访问internet。而其他用户只能访问“正常”网络。其中VPN隧道使用接口tun0。
对任何想要做同样事情的人来说,我就是这样做的:使用DNS与VPN分割隧道发生问题。CentOS 8
发布于 2020-11-13 12:18:47
通过iptables:
iptables -A OUTPUT -o VPN_INTERFACE -m owner --uid-owner USERNAME -j ACCEPT
iptables -A OUTPUT -m owner --uid-owner USERNAME -j DROP # or REJECT备注:
-I而不是-A,但是必须以相反的顺序发出这两个命令(因为没有参数的-I将首先插入规则)。iptables -P OUTPUT DROP (默认输出策略--不允许任何内容),那么只需要第一个规则。通过firewalld:
通过丰富的规则或/和/etc/firewalld/direct.xml (基本上相同):
别忘了DNS。如果您使用VPN以外的接口解析域名,您的用户将无法访问网站。
发布于 2020-11-13 12:23:26
由于您有一个不同的NIcs,如注释中所提到的,所以可以将iptables与-o一起用于nic和-uid-owner:
VPN nic的授权输出:
iptables -A OUTPUT -o <vpn-nic> -m owner --uid-owner {<username>} -j ACCEPT其他nics的出站:
iptables -A INPUT -m owner --uid-owner {<username>} -j REJECT使其永久化:
sudo iptables-save /etc/sysconfig/iptables
sudo chkconfig iptables onhttps://unix.stackexchange.com/questions/619442
复制相似问题