Scu_laji

centos 搭建dns服务器

centos 搭建 dns 服务器

个人感觉网上的教程有些疏漏,而且也已过时了,这里重新写一篇,记录一下自己搭建 dns 服务器中遇到的坑(:-D

why i want to set up a dns server.

事情起因在参加完全国大学生信息安全大赛后,在宾馆等待结果的时候十分的无聊,想起了自己小时候玩的一个游戏,叫做《xxxx》, 想起来它的一款外挂是要付费使用的,小学的时候没有支付宝之类的东西,那时候从来没有付过钱,在高考结束后买了一个月的授权。20 块钱,用完之后又没用过了。作为一个 web 狗的我忽然又想起这个游戏,肯定不会想到从二进制的方面去破解它。我决定从网络流量上去分析它。

我先买了一个月的授权(心疼我的票子),启动外挂,开始抓包。

先看下这个 pcapng 包里有哪些 ip, 其中一定有这款外挂联网获取外网时间的包,首先内网 ip 去掉,其他几个 ip 分别查地理位置,并过滤它,找到了.

看下里面什么内容

显然时间在这里, 哦吼,用的还是域名,好办了,于是,我把这两个文件放到自己的服务器上了,然后在本机的 host 文件里将这个 host 添加进去,解析 ip 为自己的服务器. 坑爹的外挂提示, 您没有权限使用本软件,请联系销售人员。(我感觉要是有人能找到这篇博客也是通过这句话了(逃。

那既然你不允许我在本机添加,那我使用路由器的可以了吧?你总检测不到了吧。于是我在路由器上利用 iptables 对 ip 进行转发,成功搞定了。

那么有没有通用性更好一点的办法呢?这款外挂对网络没有做任何的防护,对任意的 ip 都表示信任。那么我能不能自己搭建一个 dns 使得对这个域名的解析在服务器端完成,从而免去了在路由器上的设置呢?

Centos 下 dns 服务器架设

参考 《鸟叔的 Linux 私房菜 – 服务器架设篇》

1
2
yum install bind -y
vim /etc/named.conf

监听 ip,接受 ip 都改成 any

参照 named 文件格式写好配置文件后,我的服务能够正常启动,但总是报

这个错误,然后试图去寻找办法,在/var/log/message 里查找失败原因。

permisson denied.

权限问题,重新修改一下,就好了。

ok, 在尝试一下能否解析到我的 ip

这次正常了。

再在外挂电脑上试一下,成功!

如果有人看出来了这是哪一款游戏,或者说你通过玩这款游戏外挂发现了这篇博客,不如尝试下将您的 dns 服务器修改为 119.29.16.200

也许会有奇效哟!

后记

关于这个外挂的网络方式的安全问题,如何解决,首先,我不是一个二进制大牛,我只能从 web 的角度来考虑这个问题,这个外挂既然采用了离线注册码,联网获取网络时间的方式,那么它就必须解决这个对端的 server 是否是可信的这个问题。

正如我所做的一样,我欺骗了这个外挂的 client(也说不上欺骗),让它以为我的服务器是它原来的正常可信服务器。那么我完全可以控制服务器的时间永不改变,这样也就变相实现了这个外挂的永久使用。毕竟这款外挂是 09 年左右开发的,后面经过几年的迭代,我们也不能对它的安全性提太高的需求,我只能在自己的浅薄知识背景下对这款外挂的 client 与服务器端通信进行一点粗浅的建议。

首先,在保证 client 代码的绝对安全的条件下,那么我们可以在 client 代码对 server 的访问中加入一个随机参数,让服务器端对这个随机参数进行一种自定义的处理,然后客户端对返回回来的值做一个校验,这样也就解决了这款软件在 web 端有可能被攻击的方式之一。

若攻击者付出更进一步的代价,自己写底层代码,对你访问的这个 host 进行监测,并修改返回值。你还是没有办法。

但如上所述的解决办法至少防住了许多水平较低的攻击者。(水平较高的攻击者对您这个貌似也不会又多少兴趣, 毕竟没有多少利益。

最后,上张截图。