Linux下DNS服务(Bind9)之Web管理利器-NamedManager部署说明

NamedManager 是一个基于Web的DNS管理系统,可用来添加、调整和删除DNS的zones/records数据。它使用Bind作为底层DNS服务,提供一个现代Ajax的Web界面,支持 IPv4和IPv6。该应用程序很稳定,在生产环境中使用没有任何问题。过多的介绍在此就不做说明了,下面说下NamedManager环境部署过程:

1)下载NamedManager的rpm安装包

[[email protected] ~]# hostname
dns.kevin.cn

[[email protected] named]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.10.206 dns.kevin.cn

[[email protected] ~]# ifconfig |grep 192.168
          inet addr:192.168.10.206  Bcast:192.168.10.255  Mask:255.255.255.0

[[email protected] named]# ping dns.kevin.cn
PING dns.kevin.cn (192.168.10.206) 56(84) bytes of data.
64 bytes from dns.kevin.cn (192.168.10.206): icmp_seq=1 ttl=64 time=0.027 ms
64 bytes from dns.kevin.cn (192.168.10.206): icmp_seq=2 ttl=64 time=0.043 ms
......

[[email protected] ~]# cd /usr/local/src/
[[email protected] src]# wget http://repos.jethrocarr.com/pub/amberdms/linux/centos/6/amberdms-custom/i386/namedmanager-bind-1.8.0-1.el6.noarch.rpm
[[email protected] src]# wget http://repos.jethrocarr.com/pub/amberdms/linux/centos/6/amberdms-custom/i386/namedmanager-www-1.8.0-1.el6.noarch.rpm

[[email protected] src]# ll
total 1352
-rw-r--r--. 1 root root  109584 Dec 22  2013 namedmanager-bind-1.8.0-1.el6.noarch.rpm
-rw-r--r--. 1 root root 1270108 Dec 22  2013 namedmanager-www-1.8.0-1.el6.noarch.rpm

2)安装namedmanager

[[email protected] src]# yum install perl httpd mod_ssl mysql-server php php-intl php-ldap php-mysql php-soap php-xml

修改/etc/httpd/conf/httpd.conf
[[email protected] src]# vim /etc/httpd/conf/httpd.conf
......
ServerName dns.kevin.cn:80

[[email protected] src]# service mysqld start
[[email protected] src]# service httpd start
[[email protected] src]# lsof -i:3306
COMMAND   PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
mysqld  16589 mysql   10u  IPv4  77732      0t0  TCP *:mysql (LISTEN)
[[email protected] src]# lsof -i:80
COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
httpd   16621   root    4u  IPv6  77759      0t0  TCP *:http (LISTEN)
httpd   16623 apache    4u  IPv6  77759      0t0  TCP *:http (LISTEN)
httpd   16624 apache    4u  IPv6  77759      0t0  TCP *:http (LISTEN)
httpd   16625 apache    4u  IPv6  77759      0t0  TCP *:http (LISTEN)
httpd   16626 apache    4u  IPv6  77759      0t0  TCP *:http (LISTEN)
httpd   16627 apache    4u  IPv6  77759      0t0  TCP *:http (LISTEN)
httpd   16628 apache    4u  IPv6  77759      0t0  TCP *:http (LISTEN)
httpd   16629 apache    4u  IPv6  77759      0t0  TCP *:http (LISTEN)
httpd   16630 apache    4u  IPv6  77759      0t0  TCP *:http (LISTEN)

[[email protected] src]# chkconfig mysqld on
[[email protected] src]# chkconfig httpd on

[[email protected] src]# mysqladmin -u root password 123456

[[email protected] src]# rpm -Uvh namedmanager-www-1.8.0-1.el6.noarch.rpm
[[email protected] src]# cd /usr/share/namedmanager/resources/
[[email protected] resources]# ./autoinstall.pl
autoinstall.pl

This script setups the NamedManager database components:
 * NamedManager MySQL user
 * NamedManager database
 * NamedManager configuration files

THIS SCRIPT ONLY NEEDS TO BE RUN FOR THE VERY FIRST INSTALL OF NAMEDMANAGER.
DO NOT RUN FOR ANY OTHER REASON

Please enter MySQL root password (if any): 123456        //输入mysql密码
Searching ../sql/ for latest install schema...
../sql//version_20131222_install.sql is the latest file and will be used for the install.
Importing file ../sql//version_20131222_install.sql
Creating user...
Updating configuration file...
DB installation complete!

You can now login with the default username/password of setup/setup123 at http://localhost/namedmanager

[[email protected] resources]# cd /usr/local/src/
[[email protected] src]# yum install bind php-process
[[email protected] src]# rpm -Uvh namedmanager-bind-1.8.0-1.el6.noarch.rpm

修改/etc/named.conf
[[email protected] src]# cp /etc/named.conf /etc/named.conf.bak
[[email protected] src]# vim /etc/named.conf
options {
        listen-on port 53 { any; };
//      listen-on-v6 port 53 { ::1; };
        directory "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     { any; };
        allow-query-cache     { any; };
        recursion yes;
        forward first;
        forwarders {
            223.5.5.5;
            223.6.6.6;
            8.8.8.8;
            8.8.4.4;
          };

        dnssec-enable yes;
        dnssec-validation yes;
        dnssec-lookaside auto;

        bindkeys-file "/etc/named.iscdlv.key";
        managed-keys-directory "/var/named/dynamic";

        };

logging {
        channel default_debug {
        file "data/named.run";
        severity dynamic;
        };
};

zone "." {
        type hint;
        file "named.ca";
        };

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
include "/etc/named.namedmanager.conf";

==========================================================

如果要bind可以在chroot的模式下运行

如果要bind可以在chroot的模式下运行
[[email protected] src]# yum install bind-chroot

建立“/etc/named.namedmanager.conf”文件的硬连接
[[email protected] src]# ln /etc/named.namedmanager.conf /var/named/chroot/etc/named.namedmanager.conf

如果不建立硬连接named启动时,会提示找不到“/etc/named.namedmanager.conf”。
这是因为:
bind-chroot是bind的一个功能,使bind可以在一个chroot的模式下运行。也就是说,bind运行时的/(根)目录,并不是系统真正的/(根)目录,只是系统中的一个子目录而已。
这样做的目的是为了提高安全性。因为在chroot的模式下,bind可以访问的范围仅限于这个子目录的范围里,无法进一步提升,进入到系统的其他目录中。

chroot可以改变程序运行时所参考的根目录(/)位置,即将某个特定的子目录作为程序的虚拟根目录,并且对程序运行时可以使用的系统资源,用户权限和所在目录进行严
格控制,程序只在这个虚拟的根目录下具有权限,一旦跳出该目录就无任何权限。例如在centos中,/var/name/chroot实际上是根目录(/)的虚拟目录,所以虚拟目录中的
/etc目录实际上是/var/named/chroot/etc目录,而/var/named目录实际上是/var/named/chroot/var/named目录。chroot功能的优点是:如果有黑客通过Bind侵入系统,也只能被限定在chroot目录及其子目录中,其破坏力也仅局限在该虚拟目录中,不会威胁到整个服务器
的安全。

==========================================================

3)启动named服务

[[email protected] src]# service named start
[[email protected] src]# chkconfig named on
[[email protected] src]# lsof -i:53
COMMAND   PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
named   16864 named   20u  IPv4  81946      0t0  TCP localhost:domain (LISTEN)
named   16864 named   21u  IPv4  81948      0t0  TCP 192.168.10.206:domain (LISTEN)
named   16864 named  512u  IPv4  81945      0t0  UDP localhost:domain
named   16864 named  513u  IPv4  81947      0t0  UDP 192.168.10.206:domain

修改/etc/namedmanager/config-bind.php
[[email protected] src]# cp /etc/namedmanager/config-bind.php /etc/namedmanager/config-bind.php.bak
[[email protected] src]# vim /etc/namedmanager/config-bind.php
.......
$config["api_url"]      = "http://192.168.10.206/namedmanager";          // 应用程序的安装位置
$config["api_server_name"]  = "dns.kevin.cn";                            // 此处必须与httpd配置里的Name Server名称一致
$config["api_auth_key"]     = "Dns";
......

4)设置防火墙

namedmanager部署机本机要么关闭iptables,要么安装如下设置:
[[email protected] src]# setenforce 0
[[email protected] src]# getenforce
[[email protected] src]# vim /etc/sysconfig/selinux
.......
SELINUX=disabled

[[email protected] src]# iptables -F
[[email protected] src]# iptables -P INPUT DROP
[[email protected] src]# iptables -P FORWARD DROP
[[email protected] src]# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
[[email protected] src]# iptables -A INPUT -i lo -p all -j ACCEPT
[[email protected] src]# iptables -A INPUT -p icmp -j ACCEPT
[[email protected] src]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
[[email protected] src]# iptables -A INPUT -p tcp --dport 53 -j ACCEPT
[[email protected] src]# iptables -A INPUT -p udp --dport 53 -j ACCEPT
[[email protected] src]# iptables -A INPUT -p tcp --dport 80 -j ACCEPT
[[email protected] src]# iptables -A INPUT -p tcp --dport 443 -j ACCEPT

禁用IPV6。添加域名记录(正向解析与反向解析)。设置开机启动服务,并重启服务器。
[[email protected] src]# vim /etc/modprobe.d/dist.conf         //文件结尾添加如下内容:
......
alias net-pf-10 off
alias ipv6 off
chkconfig ip6tables off

[[email protected] src]# chkconfig httpd on
[[email protected] src]# chkconfig mysqld on
[[email protected] src]# chkconfig named on

[[email protected] src]# init 6      //或者执行"reboot"

4)访问namedmanager
访问http://192.168.10.206/namedmanager,默认用户名和密码(setup,setup123)。不要忘记在用户管理中修改用户名和密码。

接着设置API key(如下图。设置邮箱地址和API key,这个key是在上面的/etc/namedmanager/config-bind.php文件中设置的)

添加服务器。Name Server FQDN的名称要和httpd中的ServerName一致。(如下添加部署机的主机名或者ip地址都可以)

添加正向域名解析

添加反向域名解析(如果有多个ip段的客户机,那么就如下图添加多个反向解析配置)

查看正反向解析域名添加情况

上面已经成功添加了正反向解析域名,现在尝试添加一些域名的A记录和PTR记录

先添加A正向解析记录

由于上面在添加A正向解析的时候,已经勾选了PTR反向解析(如果没有勾选,则需要手动添加PTR反向解析记录),故这时候已经有了上面那几个域名的反向解析记录了:

如上,已经添加了几个正反向解析记录,现在到namedmanager部署机器本机上查看相关的正反向解析配置:

[[email protected] ~]# cd /var/named/
[[email protected] named]# ll
total 40
-rw-r--r--. 1 root  root   490 Apr  7 14:48 10.168.192.in-addr.arpa.zone
drwxr-x---. 7 root  named 4096 Apr  7 13:37 chroot
drwxrwx---. 2 named named 4096 Apr  7 13:39 data
drwxrwx---. 2 named named 4096 Apr  7 14:40 dynamic
-rw-r--r--. 1 root  root   455 Apr  7 14:45 kevin.cn.zone
-rw-r-----. 1 root  named 3289 Apr 11  2017 named.ca
-rw-r-----. 1 root  named  152 Dec 15  2009 named.empty
-rw-r-----. 1 root  named  152 Jun 21  2007 named.localhost
-rw-r-----. 1 root  named  168 Dec 15  2009 named.loopback
drwxrwx---. 2 named named 4096 Jan 22 20:57 slaves

A记录的正向解析配置为:
[[email protected] named]# cat kevin.cn.zone
$ORIGIN kevin.cn.
$TTL 120
@       IN SOA dns.kevin.cn. wangshibo.kevin.com. (
            2018040703 ; serial
            21600 ; refresh
            3600 ; retry
            604800 ; expiry
            120 ; minimum ttl
        )

; Nameservers

kevin.cn.   86400 IN NS dns.kevin.cn.

; Mailservers

; Reverse DNS Records (PTR)

; CNAME

; HOST RECORDS

db01    120 IN A 192.168.10.205
db02    120 IN A 192.168.10.209
dns 120 IN A 192.168.10.206
web01   120 IN A 192.168.10.202
web02   120 IN A 192.168.10.203

PTR记录的反向解析配置为:
[[email protected] named]# cat 10.168.192.in-addr.arpa.zone
$ORIGIN 10.168.192.in-addr.arpa.
$TTL 120
@       IN SOA dns.kevin.cn. wangshibo.kevin.com. (
            2018040704 ; serial
            21600 ; refresh
            3600 ; retry
            604800 ; expiry
            120 ; minimum ttl
        )

; Nameservers

10.168.192.in-addr.arpa.    86400 IN NS dns.kevin.cn.

; Mailservers

; Reverse DNS Records (PTR)

202 120 IN PTR web01.kevin.cn.
203 120 IN PTR web02.kevin.cn.
205 120 IN PTR db01.kevin.cn.
206 120 IN PTR dns.kevin.cn.
209 120 IN PTR db02.kevin.cn.

; CNAME

; HOST RECORDS

5)设置客户机的DNS配置

将namedmanager本机以及所有的客户机的DNS地址都设置成192.168.10.206(即namedmanager部署机的ip地址)
[[email protected] ~]# ifconfig|grep 192
          inet addr:192.168.10.202  Bcast:192.168.10.255  Mask:255.255.255.0

[[email protected] ~]# cat /etc/resolv.conf
domain kevin.cn
search kevin.cn
nameserver 192.168.10.206

[[email protected] ~]# ping www.baidu.com                         //这里走的是DNS配置中的forwarders转发的解析
PING www.a.shifen.com (14.215.177.38) 56(84) bytes of data.
64 bytes from 14.215.177.38: icmp_seq=1 ttl=49 time=37.6 ms
64 bytes from 14.215.177.38: icmp_seq=2 ttl=49 time=37.5 ms
64 bytes from 14.215.177.38: icmp_seq=3 ttl=49 time=37.4 ms
.....

[[email protected] ~]# ping web02.kevin.cn
PING web02.kevin.cn (192.168.10.203) 56(84) bytes of data.
64 bytes from web02.kevin.cn (192.168.10.203): icmp_seq=1 ttl=64 time=0.136 ms
64 bytes from web02.kevin.cn (192.168.10.203): icmp_seq=2 ttl=64 time=0.212 ms
64 bytes from web02.kevin.cn (192.168.10.203): icmp_seq=3 ttl=64 time=0.132 ms
.....

在客户机上检查下正反向解析是否成功:
[[email protected] ~]# host 192.168.10.209
209.10.168.192.in-addr.arpa domain name pointer db02.kevin.cn.

[[email protected] ~]# host db01.kevin.cn
db01.kevin.cn has address 192.168.10.205

注意一下:
1)以上是在单机部署的BindManager服务,如果是线上环境的话,建议在多台机器上部署(至少两台机器)同样的BindManger服务,比如BindManger01、BindManger02两台机器;
2)在客户机的/etc/resolv.conf文件里将DNS地址配置成其中的一个BindManager部署机的ip地址,比如配置成BindManger01地址;
3)将BindManger01的正反向解析文件实时同步到BindManger02机器上(直接同步/var/named这个目录即可);两台机器的BindManger相关服务都要是启动状态。
4)如果BindManger01服务器发生故障,不能正常提供DNS解析服务。此时,可以迅速将BindManger02的ip地址修改成BindManger01的ip地址。这样就能很快的实现故障转移了。

原文地址:https://www.cnblogs.com/kevingrace/p/8735193.html

时间: 2024-08-02 02:07:35

Linux下DNS服务(Bind9)之Web管理利器-NamedManager部署说明的相关文章

linux下DNS服务器之视图和轮询

案例4 视图  viwer 拓扑图: 1.查看帮助 [[email protected] ~]# vim /usr/share/doc/bind-9.8.2/sample/etc/named.conf [[email protected] ~]# cd /var/named/chroot/etc 2.[[email protected] etc]# vim named.conf 添加视图: 36 view    "lan-view" 37 { 38 zone "."

linux 下DNS 服务的搭建

在这我就不对理论知识 进行过多的阐述 需要了解的到:http://baike.baidu.com/subview/22276/15346050.htm?fr=aladdin 下来直接进入搭建 使用的软件:Vmware workstation 10 rhel6.3(64位) 使用的操作系统: [[email protected] ~]# uname  -a Linux wang 2.6.32-279.el6.x86_64 #1 SMP Wed Jun 13 18:24:36 EDT 2012 x8

DHCP服务介绍及Linux下DHCP服务的管理配置

1. DHCP服务简介 DHCP是Dynamic Host Configuration Protocol,动态主机配置协议,是用来在物理网络给主机分配ip地址的一种方式,区别于bootp,一次分配终身使用的缺点. DHCP提出的租约的概念,使得可以根据需要动态确定主机需要的IP地址,并且IP地址可以循环使用. 2. DHCP结构 DHCP是典型的C/S结构,需要服务端启动守护进程来保证来自client段的请求能被响应,DHCP的工作原理如下: 可以通过DORA来记忆: Client: DHCP

linux下apache服务搭建

实验拓扑:                          Linux Client -----RHEL5.9(vmnet1)----------(vmnet1)                          Win7 Client 实验一:查看默认HTTP配置     找到默认红帽欢迎页面 (/etc/httpd/conf/httpd.conf ---->Include ----> /etc/httpd/conf.d  ----> welcome.conf  ----> /

Linux下DNS服务器搭建详解

 Linux下DNS服务器搭建详解 DNS  即Domain Name System(域名系统)的缩写,它是一种将ip地址转换成对应的主机名或将主机名转换成与之相对应ip地址的一种机制.其中通过域名解析出ip地址的叫做正向解析,通过ip地址解析出域名的叫做反向解析. 下面对DNS的工作流程及原理进行简要说明 DNS的查询流程:需要解析服务的Client先查看本机的/etc/hosts:若无结果,则client查看本地的DNS缓存服务器:若无结果,则查找所属域的首选DNS服务器:若此时本地首选DN

Linux下RabbitMQ安装、运行与管理

Linux下RabbitMQ安装.运行与管理 安装erlang 安装参考官网 RabbitMQ的安装需要Erlang的基础环境,必须按照RabbitMQ Erlang版本要求进行安装. 关于Erlang官方的安装方式有三种: 官方制作的依赖软件包 Erlang Solutions的软件包(这个可以自定义yum库安装,本人自己下载安装) EPEL(“Enterprise Linux的额外软件包”) cd /usr/local/src/ mkdir rabbitmq cd rabbitmq //下载

linux下DHCP服务搭建

实验环境 RHEL5.9 dhcp服务器 RHEL5.9 LINUX客户端 win7    windows客户端 实验前提: 1,服务器与客户机需要在同一个网段 2,dhcp需要有固定IP 实验步骤: 服务端操作步骤: 1,设置IP cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0    //设备名 BOOTPROTO=static    //静态IP HWADDR=00:0C:29:DB:02:CE ONBOOT=yes  //

Linux下的ssh环境搭建与管理

Linux下的ssh环境搭建与管理 实验环境 1:网桥模式 2:安装好vmtoos 3:安装好yum 4:安装好ssh相关软件包 5:服务端:xuegod-63   IP:192.168.1.63 客户端:xuegod-64   IP:192.168.1.64 客户端普通用户:ceshi  密码:123456 6:安装好扫描软件rpm -ivh/mnt/Packages/nmap-5.21-4.el6.x86_64.rpm 实验目标 1:SSHD服务介绍 2:SSHD服务安装配置 3:两Linu

Linux下的计划任务和日志管理

Linux下的计划任务和日志管理   一:实验环境: 1:虚拟机 2:两个linux系统 二:实验目标 1:at 定制单次执行的计划任务 2:cron定制周期性计划任务 3:配置脚本实现周期性任务 4:配置公司内网服务器每天自动开关机 5:Linux系统日志记录规律 6:自定义日志记录方式 7:配置远程收集日志服务器 三:实验步骤 1):at 定制单次执行的计划任务 第一块 at 定制单次执行的计划任务 前提:服务:atd  必须开启 #查询atd是否运行,只有运行,才能工作. [[email