Iptables 删除传出的 HTTPs GET 请求与有效负载中的字符串匹配

Iptables 删除传出的 HTTPs GET 请求与有效负载中的字符串匹配

我正在使用 CentOS 5.8(最终版),内核 2.6.18-308.8.2,iptables v1.3.5

我想阻止与 POST/GET 负载中的字符串(定义为 ABCxyz)匹配的 HTTPs POST/GET 请求。我尝试通过向 iptables 添加以下规则来阻止传出的 HTTPs GET 请求

iptables -I OUTPUT -p tcp --dport 443 -m string --string 'GET / HTTP/1.1' --algo bm -j DROP

我不知道为什么当我运行下面的 curl 命令时它仍然有效:

curl https://website.com

它应该像我的想象一样被阻止但是......

你对此有什么想法吗?

答案1

HTTPS 请求已加密客户端和服务器之间共享秘密. 只有在拥有 TLS 握手期间生成的共享密钥的情况下,才能解密加密数据。

因此,要检查数据,您需要以某种方式检索共享密钥,即使这样,您仍然必须让 iptables 使用它来解密流量,然后检查它。Iptables 不是您要实现的目标的正确工具,您应该考虑使用 HTTPS 代理。请记住,在某些司法管辖区,这是违法的。

有关 HTTPS 如何工作的更多信息,您可以查看此链接

非常感谢@poige 指出我原始答案中的不准确之处。

相关内容