浏览标签: 运维

使用Bind9和NamedManager搭建DNS服务

在这篇文章里主要介绍如何使用搭建NamedManager来管理bind9。操作系统基于Ubuntu 14.04,需要安装PHP、Mysql与HTTP服务器。

Bind9

BIND (Berkeley Internet Name Domain)是Domain Name System (DNS) 协议的一个实现,提供了DNS主要功能的开放实现,包括域名服务器 (named)、DNS解析库函数 、DNS服务器运行调试所用的工具,是一款开放源码的DNS服务器软件,由美国加州大学Berkeley分校开发和维护。BIND是世界上使用最多最广泛的域名服务系统。

安装

其中bind9utils是bind9的命令行工具

NameManager

NameManager是一个管理DNS解析服务器的Web GUI。整个项目可以分为三个部分:

  • Web端用来配置DNS并保存到MySQL
  • 基于Cron的计划任务每分钟执行一次,将MySQL里面保存的记录刷新到Bind9的配置
  • 基于/etc/init.d的服务用来进行日志采集

安装

NameManager 在GitHub上的项目地址为: https://github.com/jethrocarr/namedmanager, 直接使用Git获得代码.

注意: 我的项目安装在/var/www下,全路径为/var/www/namedmanager。若是使用不同的安装路径,请在下面所有涉及到此路径的地方替换为你的安装路径

配置

配置文件

从样例配置文件创建配置文件

在/etc目录下创建namedmanager目录用来存放配置文件,并将配置文件软链接到该目录。NamedManager的服务进程和计划任务将会在此读取配置

修改配置文件

使用文本编辑器如vim编辑 /var/www/namedmanager/bind/include/config-settings.php

通信秘钥可以使用如下命令生成:

让Bind9包含NamedManager配置

创建NamedManager配置文件及目录

使用文本编辑器如vim编辑 /etc/bind/named.conf.local,添加

修改/etc/named.conf.options中的directory为/etc/bind/zones(即$config[“bind”][“zonefiledir”]的值)

如果想解析公网DNS, 在bind9的options中添加配置”allow-query-cache { any; };”

导入数据库

导入数据

请将[lasttime]替换成/var/www/namedmanager/sql目录下时间最晚的日期

创建Mysq用户并授权

配置HTTP服务

配置文件

创建配置文件

使用文本编辑器如vim编辑 /var/www/namedmanager/htdocs/includes/config-settings.php

这里的用户和密码是在上一步创建的, 可根据需要自行修改

Web服务器

创建Nginx或Apache等服务器的点站配置文件。

创建Cron计划任务

使用文本编辑器如vi编辑/etc/cron.d/namedmanager-bind, 将默认项目路径修改为你的项目路径。仅仅需要修改第一个计划任务

创建日志服务

使用文本编辑器如vi编辑/etc/init.d/namedmanager_logpush, 将默认项目路径修改为你的项目路径。
如果遇到”perl: warning: Please check that your locale settings”错误, 请按该教程修改http://blog.163.com/guoyong_1979/blog/static/502461620131016826127/
如果遇到”missing LSB tags and overrides”, 请将/etc/init.d/skeleton中### BEGIN INIT INFO 和 ### END INIT INFO 之间的内容复制到/etc/init.d/namedmanager_logpush
如果遇到”Can’t open /etc/rc.d/init.d/functions”, 在Ubuntu系统下在/lib/lsb/init-functions 可以ln -s或者修改文件
如果因为某些问题想重新执行 update-rc.d -f namedmanager_logpush defaults,请先执行 update-rc.d -f namedmanager_logpush remove

启动服务(仅在安装时需启动一次。本服务会随开机自动启动并且Cron计划任务会每天自动重启一次该服务)

最后

让我们使用浏览器管理你的DNS服务, 默认用户为setup,密码为setup123。

使用浏览器配置你的DNS

其他

注册被授权的DNS Server

使用搭建的DNS服务解析子域名

感谢你的阅读!本文系原创文章,出自 行间小筑 并遵循 自由转载-非商用-非衍生-保持署名(创意共享3.0许可证),转载时请注明出处和本文链接:https://panlatent.com/archives/bind9-namedmanager