现在几乎所有的宽带路由器都具备了基本的防火墙功能,有不少还具备域名过滤功能。以前基本没有研究过,也没把这个功能当回事儿。直到今天有客户想要用IP防火墙做网站访问的名单控制,于是才去看了看。
说是「研究」有点夸张了,其实也就是把这个功能试了试,明白了它的实现原理。
首先怀疑是不是通过DNS包过滤来做的,因为在IP层或UDP层无法过滤出指定域名的DNS查询请求。于是配了个黑名单自己试了一下,果然DNS查询就不响应了。得不到DNS查询结果,IE自然就打不开页面。对于普通用户来说,是很简单也很实用的做法。
那么,对后续的访问有没有做过滤呢?如果有的话,那么这就是一个严密但很复杂的状态防火墙,性能难以得到保证。我有点怀疑这种普通路由器是否会实现如此复杂的功能。
再试一下,自己在Hosts文件中做了本地解析,结果这次IE就能顺利地打开页面了。看来路由器的域名过滤只堵入口,后面就不管了,果然只是入门级的产品啊。
还有疑问:路由器自己的DNS是可以控制的,丢弃包不向上级DNS转发即可。但是否只要把DNS设成公网上公开的地址,就可以绕过限制了呢?
答案是不可以,公网的DNS能解析其它地址,但对黑名单中的地址还是没有反馈。目前看来真相已经明了,这个功能是在IP防火墙的基础上实现的,对特定的DNS包进行解析并过滤即可,而并没有在自身的DNS功能上去实现。
想想这样也比较合理,应该是各种实现方案中性价比最好的一种吧。
没有评论:
发表评论