namedmanager一个用户管理bind的web gui

来源:互联网

namedmanager 作用

NamedManager 是一个基于 Web 的 DNS 管理系统,可用来添加、调整和删除 DNS 的 zones/records 数据,支持 Bind 作为后端的 DNS 服务,支持 IPv4 和 IPv6。

DNS 管理系统 NamedManager

项目主页:https://github.com/jethrocarr/namedmanager

namedmanager 软件安装方法

下载仓库地址

wget -O /etc/yum.repos.d/amberdms-c6-public.repo  http://repos.jethrocarr.com/config/centos/6/amberdms-c6-public.repo

 

安装 namedmanager 软件包

yum -y install namedmanager*

留意安装信息

BIND/NAMED CONFIGURATION

  1. NamedManager BIND components have been installed, you will need to install
  2. and configure bind/named to use the configuration file by adding the
  3. following to /etc/named.conf:
  4. #
  5. # Include NamedManager Configuration
  6. #
  7. include "/etc/named.namedmanager.conf";
  8. NAMEDMANAGER BIND CONFIGURATION
  9. You need to set the application configuration in /etc/namedmanager/config-bind.php

 

提示: 当前需要修改 named.conf , 添加 include "/etc/named.namedmanager.conf"; 语法, 另外 php 管理页面需要配置  /etc/namedmanager/config-bind.php 文件

参考主要配置文件与作用

Path Details
/etc/namedmanager/ Configuration directory for NamedManager
/etc/cron.d/namedmanager-bindNamedManager cronjobs
/etc/init.d/namedmanager_logpushBootscript for starting/stopping the log collector
/etc/named.confDefault name for your Bind name server configuration file.
/var/named/chroot/etc/named.conf using bind-chroot.

 

crond.d 下计划任务说明
/etc/cron.d/namedmanager-bind

  1. <span style="font-family:SimSun;"># check for new configuration every minute
  2. */1 * * * * root php -q /usr/share/namedmanager/bind/namedmanager_bind_configwriter.php >> /var/log/namedmanager_bind_configwriter
  3. # PHP slowly leaks memory, restart the process weekly to prevent it getting too large over months
  4. 01 01 * * 0 root /etc/init.d/namedmanager_logpush restart >> /dev/null 2>&1
  5. </span>

每分钟把 mysql 中的 DNS 数据数据刷新并记录到日志中
修改文件属性

  1. [root@station149 etc]# chkconfig  --level 35 namedmanager_logpush on
  2. [root@station149 etc]# chown named.root /etc/named.namedmanager.conf</span>

检测 namedmanager 配置文件是否正确方法

php -q /usr/share/namedmanager/bind/namedmanager_bind_configwriter.php

数据库配置

启动数据库
[root@station149 rpm]# service  mysqld start

  1. 初始化 MySQL 数据库: Installing MySQL system tables...
  2. OK
  3. Filling help tables...
  4. OK
  5. Please report any problems with the /usr/bin/mysqlbug script!
  6.                                                            [确定]
  7. 正在启动 mysqld:                                          [确定]
  8. </span>

更新 MySQL 管理员密码

 

  1. [root@station149 resources]# mysql
  2. mysql> update mysql.user set password=password('<span style="color:#ff0000;">mypasswd</span>') where user='root';
  3. Query OK, 3 rows affected (0.00 sec)
  4. Rows matched: 3  Changed: 3  Warnings: 0
  5. mysql> flush privileges;
  6. Query OK, 0 rows affected (0.00 sec)</span>

 

载入 namedmanager 表到数据库

  1. [root@station149 rpm]# cd /usr/share/namedmanager/resources/; ./autoinstall.pl
  2. autoinstall.pl
  3. This script setups the NamedManager database components:
  4.  * NamedManager MySQL user
  5.  * NamedManager database
  6.  * NamedManager configuration files
  7. THIS SCRIPT ONLY NEEDS TO BE RUN FOR THE VERY FIRST INSTALL OF NAMEDMANAGER.
  8. DO NOT RUN FOR ANY OTHER REASON
  9. Please enter MySQL root password (if any): <span style="color:#ff0000;">mypasswd
  10. </span>Searching ../sql/ for latest install schema...
  11. ../sql//version_20131222_install.sql is the latest file and will be used for the install.
  12. Importing file ../sql//version_20131222_install.sql
  13. Creating user...
  14. Updating configuration file...
  15. DB installation complete!
  16. You can now login with the default username/password of

 

BIND 服务器配置

安装 bind 服务

  1. [root@terry resources]# yum install -y bind-*

配置 bind

  1. [root@terry resources]# cp -p /etc/named.namedmanager.conf /var/named/chroot/etc/
  2. [root@terry resources]# vi /var/named/chroot/etc/named.conf

named.conf 文件内容

  1. options {
  2.         listen-on port 53 { <span style="color:#ff0000;">0.0.0.0</span>; };
  3. //      listen-on-v6 port 53 { ::1; };
  4.         directory       "/var/named";
  5.         dump-file       "/var/named/data/cache_dump.db";
  6.         statistics-file "/var/named/data/named_stats.txt";
  7.         memstatistics-file "/var/named/data/named_mem_stats.txt";
  8.         allow-query     {<span style="color:#ff0000;"> 0.0.0.0;</span> };
  9.         recursion yes;
  10.         dnssec-enable yes;
  11.         dnssec-validation yes;
  12.         dnssec-lookaside auto;
  13.         /* Path to ISC DLV key */
  14.         bindkeys-file "/etc/named.iscdlv.key";
  15.         managed-keys-directory "/var/named/dynamic";
  16. };
  17. logging {
  18.         channel default_debug {
  19.                 file "data/named.run";
  20.                 severity dynamic;
  21.         };
  22. };
  23. zone "." IN {
  24.         type hint;
  25.         file "named.ca";
  26. };
  27. include "/etc/named.rfc1912.zones";
  28. include "/etc/named.root.key";

启动 bind 服务

  1. [root@terry resources]# service named start

 

 

http + php 启动

[root@terry resources]# vi /etc/namedmanager/config-bind.php

  1. <?php
  2. /*
  3.         Sample Configuration File
  4.         Copy this file to config-settings.php
  5.         This file should be read-only to the user whom the bind configuration scripts are running as.
  6. */
  7. /*
  8.         API Configuration
  9. */
  10. $config["api_url"]              = <span style="color:#ff0000;">"http://192.168.48.141/namedmanager";</span>   // Application Install Location
  11. $config["api_server_name"]      = <span style="color:#ff0000;">"station141.vtest.com"; </span>       // [必须写主机名]
  12. $config["api_auth_key"]         = <span style="color:#ff0000;">"mykey";    </span>// [该密钥随意定义]
  13. /*
  14.   Log file to find messages from Named. Note that:
  15.   * File should be in syslog format
  16.   * Named Manager uses tail -f to read it, this can break with logrotate - make sure that either "copytruncate" mode is used, or tail processes are killed
  17. */
  18. $config["log_file"]             = "/var/log/messages";
  19. /*
  20.         Lock File
  21.         Used to prevent clashes when multiple instances are accidently run.
  22. */
  23. $config["lock_file"]            = "/var/lock/namedmanager_lock";
  24. $config["bind"]["version"]              = "9";                                  // version of bind (currently only 9 is supported, although others may work)
  25. $config["bind"]["reload"]               = "/usr/sbin/rndc reload";              // command to reload bind config & zonefiles
  26. $config["bind"]["config"]               = <span style="color:#ff0000;">"/var/named/chroot/etc/named.namedmanager.conf";</span>      // configuration file to write bind config too
  27. $config["bind"]["zonefiledir"]          = <span style="color:#ff0000;">"/var/named/chroot/var/named/";  </span>                     // directory to write zonefiles too
  28.                                                                                 // note: if using chroot bind, will often be /var/named/chroot/var/named/
  29. $config["bind"]["verify_zone"]          = <span style="color:#ff0000;">"/usr/sbin/named-checkzone"; </span>         // Used to verify each generated zonefile as OK
  30. $config["bind"]["verify_config"]        = <span style="color:#ff0000;">"/usr/sbin/named-checkconf"; </span>         // Used to verify generated NamedManager configuration
  31. /*
  32.         Unusual Compatibility Options
  33. */
  34. // Include a full path to the zonefiles in Bind - useful if Bind lacks a
  35. // directory configuration or you really, really to store you zonefiles
  36. // in a different location
  37. //
  38. // $config["bind"]["zonefullpath"]              = "on";
  39. // force debugging on for all users + scripts
  40. // (note: debugging can be enabled on a per-user basis by an admin via the web interface)
  41. //$_SESSION["user"]["debug"] = "on";
  42. ?>

创建 named.namedmanager.conf 文件, 文件

  1. [root@terry resources]# cp /etc/named.namedmanager.conf /var/named/chroot/etc/
  2. [root@terry resources]# chown named:named /var/named/chroot/etc/named.namedmanager.conf

 

启动 apache 服务器
[root@terry resources]# service  httpd restart
停止 httpd:                                               [确定]
正在启动 httpd:[Thu Jan 16 15:12:12 2014] [warn] Useless use of AllowOverride in line 11 of /etc/httpd/conf.d/namedmanager.conf.
[确定]
启动网页服务器  http://192.168.48.141/namedmanager 进行登录测试 (默认 setup/setup123)

 

参考图形配置方法

选择 configuration ,
填写 管理员 email (terry@station141.vtest.com)
填写 ADMIN_API_KEY (之前 /var/named/chroot/etc/named.namedmanager.conf 中定义的密钥)

选择 Domains/zones -> View Domains  通过 Add New Domain 添加一个新的域

添加域过程中

配置 DNS FQDN 为当前域中的 DNS 服务器主机名

选择服务器类型, [API]

再次填写 ADMIN_API_KEY 密钥

定义当期主机为 DNS 主服务器

确保最后绿色部分为配置文件同步中, 假设非绿色显示, 则需要进一步排错

参见下图, 域被增加


添加主机 A 记录方法

 

再次添加反向解析域

添加反向解析 PTR 记录方法

 

发表评论