无边际的互联网在提供无限知识的同时也存在数不清的危害信息,尤其严重的当数反动、×××类资源。

这类不良信息都会惹来不少的麻烦,商业类例如:网吧、酒店、咖啡店的免费WIFI提供;家长担心头疼孩子无法利用好网络这个工具,接触到这类信息。

我们使用 DNS劫持 来巧妙过滤不良信息。

首先来了解一下什么是 DNS劫持:(这是不良的使用方法)

DNS劫持就是通过技术手段,来控制用户解析域名的IP地址。

2010年1月12日晨7时起,网络上开始陆续出现百度出现无法访问的情况反馈,12时左右基本恢复正常;18时许百度发布官方版本公告;对事故原因说明为:“因的域名在美国域名注册商处被非法篡改,导致全球多处用户不能正常访问百度。”***所使用的方式就是DNS劫持。

DNS劫持的功能:有了它我们就可以随意控制路由器下游用户的域名解析,从而达到过滤堵截指定网站的作用。

实战设备 《Mikrotik RouterBoard RB751U》 楼主平时建议小型企业使用这个设备,自己家用的也是这款路由器,在系统性能、WIFI性能上都有不错的表现,如果不愿意出银子还可以使用古董电脑装一台来使用,很是合适,一转眼ROS已经陪伴楼主多年,出现在很多的场合解决不少适合的问题。

一:开启路由的DNS功能

在ROS的IP选项卡DNS功能页打开Settings,先在Primary DNS 和Secondary DNS分别填写上级DNS的IP地址,这里我们选择带过滤不良信息功能的DNS服务器,例如我使用的OPENDNS的 208.67.222.222 , 208.67.220.220

勾选allow remote requests 开启服务

二:劫持下游DNS解析

在ROS上,打开IP-FIREWALL,切换到NAT选项卡,新增一条DSTNAT规则,protocol协议我们选择DNS所使用的UDP,DST.PORT目的端口添53,然后切换到ACTION动作标签,选择DST-NAT,ADDRESS处填写路由器的接口IP。

或用命令方式添加:

/ip firewall nat

add action=dst-nat chain=dstnat disabled=no dst-address-type=!local dst-port=53 protocol=tcp to-addresses=192.168.0.1 to-ports=53

add action=dst-nat chain=dstnat disabled=no dst-address-type=!local dst-port=53 protocol=udp to-addresses=192.168.0.1 to-ports=53

最后测试一下,网内用户DNS请求均被路由器DNS响应,这样在达到过滤效果的同时我们还有了一个DNS CACHE,对网络性能还有了一定的优化。

再废话一些:有些大神看了帖子可能笑了,这种堵截还是有办法可以绕过的,那我们就再进一步的多做一些设置吧,在路由中禁用GRE,封掉×××端口。