如何用iptables屏蔽https网站?

如何用iptables屏蔽https网站?

我想屏蔽一些 https 网站,例如 youtube.com、facebook.com。

我知道我们无法使用 url 规则来阻止它。因为 url 已加密。

因此,我尝试阻止所有包含我要过滤的域的 DNS 查询。所以我添加了以下规则:

iptables -A OUTPUT -p udp --dport 53 -m string --domain yahoo.com -j DROP

但 youtube 仍在运行。但闲置一段时间后(大约 15 分钟),youtube 就会被阻止。

有一些解释吗?

我怎样才能强制立即封锁 YouTube?

答案1

但 youtube 仍在运行。但闲置一段时间后(大约 15 分钟),youtube 就会被阻止。

这可能与缓存响应有关。如果我已经向某个域名服务器询问了 5 分钟前的地址example.com,我相当确定它没有改变。yahoo.com IN A生存时间 (TTL) 为 21 分钟,因此在这种情况下记录最多可以缓存 21 分钟。

过滤 HTTPS 流量并不是一件容易的任务,因为任何信息都可以包含在 TLS 流中,甚至是与过滤器未激活的代理服务器的连接。

一种选择是阻止发往与 对应的 IP 地址的所有数据包example.com。这可能会满足您的需求,但如果example.org是同一 IP 地址上的网站,那么您也会无意中阻止该网站。

如果您是发出这些请求的计算机的管理员,那么还有更多选项,但iptables在这些情况下没有任何用处,因为它只会与 TLS 流量联系。

相关内容