我正在尝试在两种不同的情况下测试产品 - 可以访问 Youtube.com 的情况和无法访问的情况。
该产品可以通过互联网访问,所以我尝试使用 iptables 来阻止 youtube 的 IP。
我做了什么?
1. 检查 Youtube 的 ip(通过 ping)PING youtube.com
2. 使用 iptables sudo iptables -A OUTPUT -d 172.217.164.142 -j DROP
阻止此 ip
3. 再次 ping youtube.com 并收到 ping: sendmsg: Operation not permitted
看起来不错。
4. 在此之后,我尝试通过我的产品的UI访问Youtube的视频,不幸的是观看视频成功了。
5. 我还尝试将 127.0.0.1 作为 www.youtube.com
添加到计算机中的主机文件中。不知道有没有用。。。
能否请您帮助我了解如何阻止对 Youtube 网站的任何访问?
谢谢!!
最佳答案
iptables 在数据链路、网络 和传输 TCP/IP 堆栈上开箱即用。 如果您需要阻止域名,那么您需要一个应用程序 层感知防火墙,或一个网络代理(IE Squid)。
如果这些解决方案无法满足您的需求,您始终可以坚持使用 iptables,但需要编写一些例程来定期查询 DNS 以获得要阻止的 IP。
我曾经为 Facebook 执行过这种封锁,这很容易,因为 Facebook 有一个唯一的 ASN。无法谈论 Youtube,但由于我们谈论的是 Google 恕我直言,您最终可能也会阻止其他服务(Drive、Gmail 等)。
通过 whois 命令检索 ASN IP 列表:
/usr/bin/whois -h whois.radb.net '!gAS15169' #(Youtube ASN, beware, could be more)
然后您只需要循环并正确格式化生成的 IP 列表,并为每一行制定 iptables 规则,添加一些日志记录,放入 cron 即可完成。
关于linux - 如何阻止访问特定网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56479986/