iptables 阻止 IP 范围用户

iptables 阻止 IP 范围用户

我正在尝试使用以下方式阻止 IP 范围

iptables -A 输入 -s 185.0.0.0/8 -j DROP

该规则运行良好但会影响网络上的所有用户。

我希望让个人用户也能享受到这一点,以免影响到所有人。

想要使用以下方式针对特定用户进行阻止

所有者 --uid-owne <用户名>

答案1

所有者Iptables 模块可用于根据生成数据包的用户过滤数据包。但是,这仅适用于传出的数据包(OUTPUT)。因此,您不能使用所有者过滤传入的数据包(INPUT)。

因此,如果您想阻止从特定用户到特定网络的所有传出数据包,您可以使用如下规则:

iptables -A OUTPUT -m owner --uid-owner username -d 185.0.0.0/8 -j DROP

将 username 替换为您要应用规则的用户名。此规则将阻止从该用户到 185.0.0.0/8 网络的所有传出流量。

如果要将此规则应用于特定流程,可以使用--pid 所有者选项:

iptables -A OUTPUT -m owner --pid-owner pid -d 185.0.0.0/8 -j DROP

在这里,替换进程号替换为要应用规则的进程 ID。

请注意,这些规则不会阻止来自用户或进程的传入流量,也不会阻止到其他网络的传出流量。您需要修改这些规则或添加其他规则来满足这些需求。

相关内容