我想屏蔽一些 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 流量联系。