iptables 似乎不想阻止用户。
我使用重制版 10.04 live 和 Firestarter 作为防火墙。我没有对发行版进行任何根本性更改,只是更新、升级并为我的管理员用户 dev 添加了此 iptable 行:
sudo iptables -A OUTPUT -p all -m owner --uid-owner dev -j DROP
我已允许我的管理员 dev 以其他用户身份使用 Firefox:
gksudo -u 浏览器用户 /usr/bin/firefox
注意:这样做的目的是停止向管理员帐户开放浏览器脚本,而是使用没有权限的干净帐户作为代理。
现在,我测试 iptables 是否会阻止管理员意外尝试连接而不使用其他用户。因此我直接尝试 Midori 浏览器:
/usr/bin/midori
Midori 启动并连接到互联网。我很困惑。我的 iptables 条目似乎不起作用。
我添加了重新制作的相同行:
sudo iptables -A OUTPUT -p all -m owner --uid-owner dev -j DROP
我仍然没有被阻止。因此,我尝试重置表格:
sudo /etc/init.d/networking restart
我得到输出:
* Reconfiguring network interfaces...
Ignoring unknown interface wlan0=wlan0.
我尝试再次使用 Midori 浏览器连接,但我的 iptable 规则仍然被忽略。
发生了什么?
答案1
iptables 中的规则顺序至关重要。如果数据包与较早的规则匹配,则不会进行进一步处理。
您正在将规则附加(-A)到OUTPUT链的末尾,因此,我猜测数据包已被早期的规则接受。
如果您将规则放在第一位,那么-I OUTPUT 1
它就会起作用。
sudo iptables -I OUTPUT 1 -p all -m owner --uid-owner dev -j DROP
您的用户案例更为复杂,因为您使用 2 个工具(firestarter 和 iptables)来管理防火墙规则。我建议您使用其中一个,但不要同时使用两者。
如果你想查看你的规则集,请使用
sudo iptables -L -v -n
如果你想使用 iptables 来管理防火墙,请参阅