linux - 如何阻止访问特定网站

标签 linux unix firewall iptables

我正在尝试在两种不同的情况下测试产品 - 可以访问 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/

相关文章:

c++ - 如何获取所有物理接口(interface)

linux - 替换匹配行中的某些位置

security - Symfony 2 - 使用 HTTP 身份验证对话框隐藏整个网站

linux - 如何在vmware下运行的linux上打开9091端口?

java - Linux 上运行的 Java 应用程序列表

linux - 如何通过 stdin/stdout 流式传输 mp4 视频?

unix - 使用 applescript 显示 Unix Exctable 文件

c# - WCF 使用反向代理

linux - 带有静态和共享库的 Makefile

c++ - 如何区分系统调用和普通函数调用