RouterOS DNS劫持 -- A记录

时间:2022-06-26 06:17:53

通常我们使用RouterOS的DNS主要是用于实现DNS缓存功能,即由RouterOS实现DNS服务器解析功能,除了这个功能,RouterOS可以实现对内网域名解析劫持,即实现路由网关的A记录查询。

RouterOS DNS劫持 -- A记录

注意:要实现RouterOS路由网关的域名A记录查询,必须满足:

1、  开启DNS缓存功能

2、  客户端设置RouterOS路由器IP为DNS(RouterOS配置的任意IP地址,路由可达即可)

3、  如果不设置RouterOS上配置的IP,就需要做dst-nat重定向,即将所有TCP或UDP的53端口重定向到RouterOS本地

做A记录的作用是,将特定的域名解析指定到某一台服务器获取,例如企业网络的办公OA、CRM系统等通过域名访问,或者一些指定网站或页面的缓存等。

具体配置

首先要打开RouterOS中DNS菜单,设置外部DNS服务器为61.139.2.69,启用Allow Remote Requests参数,允许向远端返回DNS请求,即开启DNS缓存功能。

RouterOS DNS劫持 -- A记录

下面是添加A记录操作,打开Static菜单,并在Static菜单中新建一条规则,将test.test.com指向192.168.88.1的地址

RouterOS DNS劫持 -- A记录

添加后启用规则,这样所有向test.test.com的DNS请求,都解析为192.168.88.1,不过在配置后,我们还需要打开Cache菜单,清空DNS缓存,避免遗留缓存无法让A记录生效。

我们进入Cache菜单后,点击Flush Cache清空缓存:

RouterOS DNS劫持 -- A记录

DNS重定向

如果客户端没有自动获取或者设置RouterOS网关作为DNS,可以将内网向外的所有DNS请求都通过dst-nat重定向到内网,即强制所有用户向外网的dns请求都到本地网关解析。

进入ip firewall nat,在该菜单下配置dst-nat规则,添加一条chain=dstnat,protocol=udp,port=53

RouterOS DNS劫持 -- A记录

设置action参数为redirect,指定到本地的53端口

RouterOS DNS劫持 -- A记录

规则添加完成后:

RouterOS DNS劫持 -- A记录

当然TCP下的DNS 53端口重定向也是类似的配置操作。