限制用户1访问仅允许有线连接,允许用户2访问有线和无线访问

限制用户1访问仅允许有线连接,允许用户2访问有线和无线访问

我在普通路由器后面安装了一个 VPN 客户端路由器。我的笔记本电脑硬连线到 VPN 路由器,并通过无线连接到普通路由器。我想限制用户 1 仅通过 VPN(有线连接)访问网络。但是,我想允许用户 2 通过有线或无线访问。有没有简单的方法可以做到这一点?TIA

答案1

我发现最简单的方法是(在sudo有能力的帐户上)创建一个 Systemd 服务文件,其中/etc/systemd/system/包含以下内容(用各自的值替换<user>和):<wireless interface>

[Unit]
Description=Disable wireless for user <user>
After=network-online.target
Wants=network-online.target

[Service]
Type=oneshot
ExecStart=/usr/sbin/iptables -A OUTPUT -o <wireless interface> -m owner --uid-owner <user> -j DROP
ExecStop=/usr/sbin/iptables -D OUTPUT -o <wireless interface> -m owner --uid-owner <user> -j DROP
RemainAfterExit=yes

[Install]
WantedBy=default.target

将其命名为disable-wireless-<user>.service,然后运行,sudo systemctl daemon-reload接着运行sudo systemctl enable --now disable-wireless-<user>

您可以通过该命令找到系统上的网络接口列表ip link,该命令将显示如下内容:

$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether ??:??:??:??:??:?? brd ??:??:??:??:??:??
3: wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000
    link/ether ??:??:??:??:??:?? brd ??:??:??:??:??:??

在这种情况下,wlp3s0将是无线接口。

相关内容