我需要限制 wireguard 子网中特定客户端的访问,以便除该子网中的客户端之外的其他客户端能够访问。
默认情况下,客户端可以互相发送数据包。
这是我的 wireguard 服务器 .conf 文件的 postUp 和 postDown 设置:
PostUp = iptables -t nat -A POSTROUTING -o `ip route | awk '/default/ {print $5; exit}'` -j MASQUERADE
PostUp = ip rule add from `ip addr show $(ip route | awk '/default/ { print $5 }') | grep "inet" | grep -v "inet6" | head -n 1 | awk '/inet/ {print $2}' | awk -F/ '{print $1}'` table main
PostDown = iptables -t nat -D POSTROUTING -o `ip route | awk '/default/ {print $5; exit}'` -j MASQUERADE
PostDown = ip rule del from `ip addr show $(ip route | awk '/default/ { print $5 }') | grep "inet" | grep -v "inet6" | head -n 1 | awk '/inet/ {print $2}' | awk -F/ '{print $1}'` table main
第一个变成了类似于的东西iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
。
第二个变成ip rule add from 95.93.92.116 table main
。
设置在/etc/sysctl.conf
:
net.ipv4.ip_forward=1
10.11.12.0/24
例如,选定的客户端(网络)10.11.12.4
需要获得访问的权限10.11.12.3
,但该网络内的其他所有客户端均受到访问限制。
使用 ufw 没有帮助。当我设置规则时:
ufw route deny from 10.11.12.4 to 10.11.12.0/24
甚至
ufw deny from 10.11.12.4 to any
客户端仍然可以 ping 并访问子网中的服务。
我怎样才能限制仅限的10.11.12.4
访问10.11.12.3
?