我很好奇大多数 Linux 发行版是否能够在传入的网络流量进入系统后立即拦截它,并在任何其他客户端使用它之前或至少在它到达指定客户端之前根据某些规则过滤其内容。
例如,假设我想要一个过滤器,在所有 HTTP 流量到达特定客户端(例如 Firefox)之前拦截所有 HTTP 流量,并且如果某些模式匹配,则修改 HTML。或者替换来自某个远程主机的所有内容。我希望能够在它到达任何客户之前做到这一点,无论客户是谁。
Linux 允许这种数据包过滤吗?
此外,我还想知道网络数据包从端口进入计算机后的工作流程是什么,即在调用它的客户端应用程序可用之前是否分配了一系列步骤来执行。
答案1
你需要Content-filtering
不Packet-filtering
。
Packet filtering
:处理端口、IP、层、重定向、icmp、udp 和其他必要的协议。
Content Filtering
:假设您有一个数据包,其中包含payload
诸如性别之类的术语。您需要丢弃它。
Content filtering
软件:Dansguardian、SquidGuard、HostsFile、OpenDNS、FoxFilter(FireFox 扩展)、webcleaner。
答案2
我偏爱IPtables
工作和家庭。您可以过滤或重定向传入或传出流量,记录所有内容的子集,我认为您可以在数据包上运行脚本或程序,但我还没有尝试过。
我在 ifup 文件夹中保存了一份副本,并将其保存在 ifdown 中,以便按国家/地区和内容过滤流量。过滤器任意复杂
您可能需要查看规则#6:http://www.thegeekstuff.com/2011/06/iptables-rules-examples/开始。