阻止访问Android SO中的www.facebook.com

时间:2014-08-08 19:34:59

标签: android firewall iptables hostname

我正在为Android SO开发一个框架。我需要阻止主机名,即如果我阻止主机名,则不允许与此主机名建立连接。不允许用户通过浏览器,终端(shell)或任何应用程序访问此主机名。 我打算使用iptables来完成这项任务,但有一些主机名有动态IP地址,比如www.facebook.com。而且我担心动态IP更改会影响阻止主机名的iptables功能。

即使此主机名具有动态IP,有人可以给我一种阻止主机名的方法吗?

2 个答案:

答案 0 :(得分:2)

您可以通过hosts文件将其重定向到无效目的地,据我所知,该文件位于/system/etc/hosts。在尝试解析主机名时,应在DNS之前查阅此文件。

127.0.0.1 www.blocked.domain www.blocked2.domain

您需要具有root访问权限并重新安装/system/读写才能更改文件。

当心:有很多方法可以解决这个问题。任何想要"爆发的应用程序#34;可以简单地开始执行自己的DNS查询来绕过hosts文件。但这是基于主机名而不是IP地址限制的唯一实用方法。

答案 1 :(得分:1)

我发现了一种方法。我可以使用iptables字符串匹配来阻止主机名。为此,我使用了以下命令:

    #iptables -A INPUT -i eth0 -m string --algo bm --string“facebook.com”-j DROP
    #iptables -A OUTPUT -m string --algo bm --string“facebook.com”-j DROP
    #iptables -A FORWARD -i eth0 -m string --algo bm --string“facebook.com”-j DROP

现在工作正常。