Iptables:过滤由sslencryption的string

我需要过滤(发送到BANRULES集)传入的HTTP / HTTPS数据包与一定的string(matchword)。 当ssl不在使用(端口80)时,我可以轻松完成:

iptables -A INPUT -p tcp -m tcp --dport 80 -m string --string "matchword" --algo bm --to 65535 -j BANRULES 

但ssl在使用(端口443)时,它不起作用(因为数据包encryption):

 iptables -A INPUT -p tcp -m tcp --dport 443 -m string --string "matchword" --algo bm --to 65535 -j BANRULES 

我怎样才能做到这一点? 谢谢。

@DanFarrell在你需要密钥解密的时候部分是正确的 – 但是如果你有密钥(也就是说你拥有被禁止的networking服务器 – 这就是你说的数据包传入时隐含的),它可以被解密 – 但可能不是iptables。

你可以设置一个反向代理(或者依赖于你的networking,甚至把SSL处理卸载到你的基于iptables的防火墙) – 它可能需要运行一些像Squid(或者是一个带有mod_proxy的web服务器)。 这里是一个如何与鱿鱼做这个例子。

无法完成。 您不能仅解密HTTPSstream量; 你需要密钥来解密它。 这就是HTTPS的重点 – TLS层可以防止服务器和客户端之间的path上的点的窥探。