阻止特定程序(浏览器)的网络访问

阻止特定程序(浏览器)的网络访问

我有一个使用 pywebkitgtk 获取网页的 Python 脚本,有时我需要阻止它的网络访问。有什么想法可以做到这一点吗?

答案1

如果您是系统管理员,您可以使用iptables(以 root 身份)阻止某些命令访问某些端口,或者(根据您的选择)全部端口(相当于完全无法访问网络)。

一个很好的参考是这里但重点是:

如果您的内核是使用 CONFIG_IP_NF_MATCH_OWNER 编译的,那么您可以配置您的 iptables 防火墙以根据每个命令允许或拒绝数据包。

以下示例显示如何从 acroread 命令中删除所有传出的数据包:

iptables -A OUTPUT -m owner --cmd-owner acroread -j DROP

所有者模块允许使用几种不同的选项进行匹配,允许匹配进程 ID、用户 ID 或命令名称。

--uid-owner userid
匹配数据包是否由具有给定有效用户 ID 的进程创建

--gid-owner userid
匹配数据包是否由具有给定有效组 ID 的进程创建

--pid-id processid
匹配数据包是否由具有指定进程 id 的进程创建

--cmd-owner name
如果数据包是由具有给定命令名称的进程创建的,则匹配。

“所有者”模块仅允许在 OUTPUT 链上匹配,这稍微降低了它的实用性 - 但如果您处于标准 NAT 情况下,它应该足够了。

相关内容