我正在尝试禁用除“neta”组成员之外的所有用户对 IP 1.2.3.4 的访问。这是我专门为这个问题创建的一个新组。
iptables -I OUTPUT -o eth0 -p tcp -d 1.2.3.4 -m owner ! --gid-owner neta -j REJECT
这将禁止所有用户访问 1.2.3.4,即使他们是组“neta”的成员。
我有一个用户 xx,他是 xx 组(主要组)和 neta 的成员。如果我将规则更改为:
iptables -I OUTPUT -o eth0 -p tcp -d 1.2.3.4 -m owner \! --gid-owner xx -j REJECT
除了用户 xx 之外的所有人都无法访问 1.2.3.4。
我将 root 添加到该组 xx:
usermod -a -G xx root
但是root仍然无法访问此IP。如果我将主用户组(root,xx)添加到规则中,一切都会按预期工作。
我尝试将其拆分为两条规则以确保(并且日志被拒绝):
iptables -A OUTPUT -o eth0 -p tcp -d 1.2.3.4 -m owner --gid-owner neta -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp -d 1.2.3.4 -m limit --limit 2/s --limit-burst 10 -j LOG
iptables -A OUTPUT -o eth0 -p tcp -d 1.2.3.4 -j REJECT
但没有区别。一切都被拒绝。
没有其他 iptables 规则。
root@vm1:~# iptables -nvL
Chain INPUT (policy ACCEPT 19 packets, 1420 bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 10 packets, 1720 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT tcp -- * eth0 0.0.0.0/0 1.2.3.4 owner GID match 1001
0 0 LOG tcp -- * eth0 0.0.0.0/0 1.2.3.4 limit: avg 2/sec burst 10 LOG flags 0 level 4
0 0 REJECT tcp -- * eth0 0.0.0.0/0 1.2.3.4 reject-with icmp-port-unreachable
我希望能够(禁止)通过从这个“neta”组添加/删除用户而不是为每个用户添加 iptables 规则来允许访问这个 IP。