题目要求
服务器IspSrv工作任务
2. DNS
配置为 DNS 根域服务器;
其他未知域名解析,统一解析为该本机 IP;
创建正向区域“chinaskills.cn”;
类型为 Slave;
主服务器为“AppSrv”;
启用 chroot 功能,限制 bind9 在/var/named/chroot/下运行;
隐藏 bind 版本号,版本显示为“unknow”。
项目配置
安装软件包:
root@Ispsrv:~# apt install bind9 -y
查看软件目录:
root@IspSrv:~# cd /etc/bind/
root@IspSrv:/etc/bind# ls -l
总用量 48
-rw-r--r-- 1 root root 2761 6月 17 2021 bind.keys
-rw-r--r-- 1 root root 237 6月 17 2021 db.0
-rw-r--r-- 1 root root 271 6月 17 2021 db.127 # 方向解析数据库
-rw-r--r-- 1 root root 237 6月 17 2021 db.255
-rw-r--r-- 1 root root 353 6月 17 2021 db.empty
-rw-r--r-- 1 root root 270 6月 17 2021 db.local # 正向解析数据库
-rw-r--r-- 1 root bind 463 6月 17 2021 named.conf # bind的著配置文件,不包含DNS数据以在该文件中添加解析区域
-rw-r--r-- 1 root bind 498 6月 17 2021 named.conf.default-zones # 默认区域,可以在该文件中添加解析区域
-rw-r--r-- 1 root bind 165 6月 17 2021 named.conf.local # 用于定义解析域,也可以直接在named.conf中直接添加
-rw-r--r-- 1 root bind 846 6月 17 2021 named.conf.options # 配置文件,全局选项配置
-rw-r----- 1 bind bind 77 11月 9 19:45 rndc.key # rndc可以管理本地端或是远程的named
-rw-r--r-- 1 root root 1317 6月 17 2021 zones.rfc1918 # RFC 1918定义了私有IPv4的区段
root@IspSrv:/etc/bind#
定义解析区域及隐藏版本号:
配置根域及chinaskills.cn区域:
root@IspSrv:/etc/bind# cat /etc/bind/named.conf.local
//
// Do any local configuration here
//
// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";
zone "." IN {
type master;
file "/etc/bind/db.root";
};
zone "chinaskills.cn" IN {
type slave;
masters { 81.6.63.254; };
};
root@IspSrv:/etc/bind#
配置根域解析:
root@IspSrv:/etc/bind# cp -a db.local db.root
root@IspSrv:/etc/bind# cat db.root
;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA localhost. root.localhost. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS localhost.
* IN A 81.6.63.100
root@IspSrv:/etc/bind#
隐藏版本号 在options字段中添加 version "unknow";:
root@IspSrv:/etc/bind# vim named.conf.options
# 22行添加:
version "unknow";
启用chroot功能:
修改在/var/named/chroot下运行:
root@IspSrv:/etc/bind# vim /etc/default/bind9
守护进程重新加载:
root@IspSrv:/etc/bind# systemctl daemon-reload
启用chroot,创建运行目录:
chroot,即 change root directory (更改 root 目录)。 在 linux 系统中,系统默认的目录结构都是以/ ,即是以根 (root) 开始的。 而在使用 chroot 之后,系统的目录结构将以指定的位置作为根目录
root@IspSrv:~# mkdir -p /var/named/chroot/{etc,dev,run/named,/var/cache/bind}
创建虚拟设备(dev),日志记录的时候有的选项可能用到,在默认情况下,是使用/dev/目录下的文件, 但是我们需要把DNS限制到一个目录,所以必须完全把/dev下用到的文件(或者说设备)模拟过来才可以 将其中的1,3这样的数字记录下来,这表示主设备号和次设备号(一般来说主设备号用来区分设备的种 类,次设备号则是为了唯一性区分,标明不同属性 注意,在unix系统中是把设备也当做文件来对待 的)
root@IspSrv:~# mknod /var/named/chroot/dev/null c 1 3
root@IspSrv:~# mknod /var/named/chroot/dev/random c 1 8
root@IspSrv:~# mknod /var/named/chroot/dev/urandom c 1 9
root@IspSrv:~#
修改权限,使之不具备执行权限:
root@IspSrv:~# chmod 660 /var/named/chroot/dev/{null,random,urandom}
将bind目录移动到chroot目录下:
root@IspSrv:~# mv /etc/bind /var/named/chroot/etc/
创建软链接:
root@IspSrv:~# ln -s /var/named/chroot/etc/bind /etc/bind
更改所有权:
root@IspSrv:~# chown bind:bind /var/named/chroot/run/named
root@IspSrv:~# chmod 775 /var/named/chroot/{var/cache/bind,run/named}
root@IspSrv:~# chgrp bind /var/named/chroot/{var/cache/bind,run/named}
root@IspSrv:~#
启用chroot还需要/usr/share/dns下的文件:
创建目录,复制文件:
root@IspSrv:~# mkdir /var/named/chroot/usr/share/dns -p
root@IspSrv:~# cp /usr/share/dns/* /var/named/chroot/usr/share/dns/
root@IspSrv:~#
最后配置rsyslog在正确位置监听绑定日志:
root@IspSrv:~# echo "/$AddUnixListenSocket /var/named/chroot/dev/log" >> /etc/rsyslog.d/bind-chroot.conf
root@IspSrv:~#
重启rsyslog和bind9:
root@IspSrv:~# systemctl restart rsyslog.service
root@IspSrv:~#
root@IspSrv:~# systemctl restart bind9
root@IspSrv:~#
评分标准
(1) 安装 BIND9(执行指令: systemctl status bind9) ; 【6 分】
评分要点: bind9 服务征程运行“ active running ; 运行目 录为 -t /var/named/chroot ; 注意如果不是/var/named/chroot 该小题不得分。 ) |
(2) 根域服务器搭建; 【2 分】
评分要点: 存在“zone . /IN loaded serial 2” root@IspSrv:~# named-checkconf -z |
(3) 正向区域“chinaskills.cn”搭建。 【2 分】
评分要点: type 类型为 slave, masters 设置为 81. 6. 63. 254 ; |