答案1
正如所描述的这里,你可以使用以下命令阻止某些用户的所有 Internet 访问iptables
:
sudo iptables -A OUTPUT -m owner --uid-owner {USERNAME} -j REJECT
sudo ip6tables -A OUTPUT -m owner --uid-owner {USERNAME} -j REJECT
如果您希望该命令在系统启动时自动运行,则应将其添加到文件的末尾/etc/rc.local
。
虽然这不会使这些用户无法创建套接字,但它会阻止所有传出流量(如防火墙)。
答案2
如果防火墙是您的设置的一部分,您可以使用直接规则阻止特定用户的网络访问,例如:
/etc/firewalld/direct.xml
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
<?xml version="1.0" encoding="utf-8"?>
<direct>
<chain ipv="ipv4"
table="filter"
chain="restrict_user_ipv4"/>
<rule ipv="ipv4"
table="filter"
chain="OUTPUT"
priority="1">-m owner --uid-owner user -j restrict_user_ipv4</rule>
<rule ipv="ipv4"
table="filter"
chain="restrict_user_ipv4"
priority="3">-j DROP</rule>
<chain ipv="ipv6"
table="filter"
chain="restrict_user_ipv6"/>
<rule ipv="ipv6"
table="filter"
chain="OUTPUT"
priority="1">-m owner --uid-owner user -j restrict_user_ipv6</rule>
<rule ipv="ipv6"
table="filter"
chain="restrict_user_ipv6"
priority="3">-j DROP</rule>
</direct>
不要忘记重新加载
# firewall-cmd --reload