DNS域名解析服务(Domain Name System)是用于解析域名与IP地址对应关系的服务,功能上可以实现正向解析与反向解析:
正向解析:根据主机名(域名)查找对应的IP地址。
反向解析:根据IP地址查找对应的主机名(域名)。
工作形式上又分主服务器、从服务器和缓存服务器。
主服务器:在特定区域内具有唯一性、负责维护该区域内的域名与IP地址对应关系。
从服务器:从主服务器中获得域名与IP地址对应关系并维护,以防主服务器宕机等情况。
缓存服务器:通过向其他域名解析服务器查询获得域名与IP地址对应关系,提高重复查询时的效率
域名解析服务Bind的程序名称叫做named,服务程序的配置文件如下:
主程序 | /usr/sbin/named |
主配置文件 | /etc/named.conf |
区域配置文件 | /etc/named.rfc1912.zones |
yum install -y bind bind-chroot bind-utils
chroot是通过相关文件封装在一个伪根目录内,已达到安全防护的目的,一旦程序被攻破,将只能访问伪根目录内的内容,而不是真实的根目录
BIND安装好之后不会有预制的配置文件,但是在BIND的文档文件夹内(/usr/share/doc/bind-9.9.4),BIND为我们提供了配置文件模板,我们可以直接拷贝过来:
cp -r /usr/share/doc/bind-9.9.4/sample/etc/* /var/named/chroot/etc/
cp -r /usr/share/doc/bind-9.9.4/sample/var/* /var/named/chroot/var/
配置BIND服务的主配置文件(/var/named/chroot/etc/named.conf),命令:vim /var/named/chroot/etc/named.conf;
内容很多使用简单配置,删除文件中logging以下的全部内容,以及option中的部分内容,得到如下配置
vim /var/named/chroot/etc/named.conf
options
{
// Put files that named is allowed to write in the data/ directory:
directory "/var/named"; // "Working" directory
listen-on port 53 { any; };
listen-on-v6 port 53 { any; };
};
在主配置文件(/var/named/chroot/etc/named.conf )中加入,zone参数
vim /var/named/chroot/etc/named.conf
options
{
// Put files that named is allowed to write in the data/ directory:
directory "/var/named"; // "Working" directory
listen-on port 53 { any; };
listen-on-v6 port 53 { any; };
};
zone "yaohjk.com" {
type master;
file "yaohjk.com.zone";
};
新建yaohjk.com.zone文件,yaohjk.com的域名解析文件,zone文件放在/var/named/chroot/var/named/下,zone文件可以已/var/named/chroot/var/named/named.localhost为模板。
命令:
cp /var/named/chroot/var/named/named.localhost /var/named/chroot/var/named/yaohjk.com.zone
文件yaohjk.com.zone的内容如下:
[root@xxx]# cat yaohjk.com.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
gz IN A 192.168.0.199
boss IN A 192.168.0.199
login IN A 192.168.0.199
pay IN A 192.168.0.199
wx IN A 192.168.0.199
禁用bind默认方式启动,改用bind-chroot方式启动。命令如下:
[root@xxx named]# /usr/libexec/setup-named-chroot.sh /var/named/chroot on
[root@xxx named]# systemctl stop named
[root@xxx named]# systemctl disable named
[root@xxx named]# systemctl start named-chroot
[root@xxx named]# systemctl enable named-chroot
[root@xxx named]#
[root@xxx named]# ps -ef|grep named
named 25984 1 0 13:41 ? 00:00:00 /usr/sbin/named -u named -c /etc/named.conf -t /var/named/chroot
root 29267 48688 0 13:54 pts/1 00:00:00 grep --color=auto named
[root@xxx named]#