DNS和BIND配置(第一部分)

一、知识整理

1、最初只有七个一级域名:Top Level Domaintldcomedumilgovnetorgint

    一级域名分三类:组织域、国家域、反向域。最多127级域名;全球有13个根节点服务器

2、一次完整的查询请求经过的流程:client—hosts文件—DNS Service Local Cache—DNS SERVER(recursion)—-Server Cache—iteration(迭代)—根—顶级域名DNS—二级域名DNS….

3、区域解析库:资源记录RRresource record)组成;常用的记录类型有:

A:internet address;作用FQDN—>IP

AAAAipv6的记录:FQDN—>IPv6

PTR:poinTER:ip—>FQDN

SOA:起始授权记录;一个区域解析库有且只能有一个,必须位于第一条记录;

NS:name server,专用于标明当前区域的DNS服务器;

CNAME:别名记录;

MX:邮件服务器记录。

语法:name   [TTL]  IN   RR_TYPE   VALUE

@可用于引用当前区域名字;同一个名字可以通过多条记录定义多个不同的值;MX类型有优先级SOA记录的value有地址、邮箱、其他相关定义等。

4、资源记录格式:SOA格式

ZONE NAME    TTL      IN    SOA     FQDN(主地址)    ADMINISTRATOR_MAILBOX  (

                serial number:序列号                 

                refresh:刷新时间                

                retry :重试时间                

                expire:过期时间                

                na ttl:否定答案的ttl)

  当前区域的主DNS服务器的FQDN,也可以使用当前区域的名字;当前区域管理员的邮箱地址,但邮箱地址中不能使用@符号,用点替换;主从服务区域传输相关定义以及否定的答案的统一TTL

NS记录value为当前区域的某DNS服务器名字;一个区域可以有多个NS记录;相邻的两个资源记录的name相同时,后续的可省略;对NS记录而言,任何一个ns记录后面的服务器名字,都应该在后续有一个A记录。

MX记录value为当前区域的邮件服务器的主机名;一个区域内,MX可以有多个,但每个记录的value之前应该有优先级,数字越小优先级越高;每个MX记录后面的服务器名字都应该在后续有一个A记录。

A记录name:某主机的FQDNvalue值为IP;为避免用户写错名称时给错误答案,可通过泛域名解析进行解析至某特定地址。如:*.magedu.com.  IN  A  1.1.1.1

PTR记录name:有特定格式,将IP反过来写并且加特定后缀in-addr.arpa.例如:4.3.2.1.in-addr.arpa.;配置文件中定义了网络地址及反向解析,网络地址及后缀可省。

CNAMEname:别名的FQDNvalue:真正名字的FQDN

5、DNSSEC安全domain name system security extensions,是由IETF提供的一系列DNS安全认证的机制,它提供了一种来源鉴定和数据完整性的扩展,但不去保障可用性、加密性和证实域名不存在,是为了解决欺骗和缓存污染设计的一种安全机制。dnssec-enable是否支持DNSSEC开关,默认为开;dnssec-validation是否进行dnssec确认开关,默认为开;

二、命令详解及事例

1、sudosudo能够授权指定用户在指定主机上运行某些命令。它可以提供日志,记录每个用户使用sudo操作。sudo为系统管理员提供配置文件,允许系统管理员集中地管理用户的使用权限和使用的主机;配置文件为/etc/sudoers和/etc/sudoers.d/,通过visudo命令编辑配置文件,有语法检查功能

时间戳文件:/var/db/sudo日志文件/var/log/secure

配置文件支持使用通配符:

前面的字符或词可出现一次或者不出现;

*  前面的字符或词出现零次或者多次;

[wxc] 匹配其中一个字符;

[^wxc] 除了这三个字符的其它字符;

[[alpha]] 字母;没有中间的双冒号;

授权规则格式:

   用户或%组  登入主机=(代表用户)      命令

例如:ge   10.1.100.100=(xm)  /bin/mount

运行者身份:可以是%#UID配置文件中注释#开头行使用##

通过哪些主机:可以是IPhostnamenetwork/netmask或别名;

以哪个用户的身份运行;

运行哪些命令:虽然在配置文件中定义了path,但是保证安全性尽量写绝对路径;可以使用!/PATH/COMMAND禁止使用命令;在命令之前添加标签NOPASSWD:  则使用此命令不需要输入密码

%wheel        ALL=(ALL)       NOPASSWD: ALL

定义别名:别名必须全部而且只能使用大写字符组合

配置文件中定义了别名的四种类型:User_Alias;Runas_Alias;Host_Alias;Cmnd_Alias;

[root@centos68 etc]# cd /etc/sudoers.d/
[root@centos68 sudoers.d]# cat common 
User_Alias COMMONUSER=user1,gejingyi
Runas_Alias COMMONRUN=root
Host_Alias COMMONHOST=10.1.252.134
Cmnd_Alias CONTROL=/bin/mount,/usr/sbin/useradd,/bin/vi /etc/fstab,/usr/bin/sudoedit
COMMONUSER  COMMONHOST=(COMMONRUN)  CONTROL
[root@centos68 sudoers.d]# su - gejingyi
[gejingyi@centos68 ~]$ sudo useradd ge
[sudo] password for gejingyi: 
[gejingyi@centos68 ~]$ sudo sudoedit /etc/sudoers
sudoedit: /etc/sudoers unchanged

输入密码后,五分钟内可以不再输入,在配置文件中定义。也可使用命令强制重输。

配置文件定义中:root    ALL=(ALL)      

ALL的作用:若将另一个用户UID改为0,将root改为2000root用户仍然可以通过使用sudo -u wang COMMON的方式执行各种命令。

用户使用命令的日志:/var/log/secure,其权限是600

sudo命令:sudo [-u USER] COMMAND sudo授权的命令只能使用sudo进行使用;

-V 显示版本及配置信息;

-u USER 默认为root

-l 列出用户在主机上可用和被禁止的命令

Matching Defaults entries for gejingyi on this host:

    !visiblepw, always_set_home, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR

    USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME

    LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",

    secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin

User gejingyi may run the following commands on this host:

    (root) /bin/mount, /usr/sbin/useradd, /bin/vi /etc/fstab, /usr/bin/sudoedit

-v 再延长密码有效期限五分钟,更新时间戳;

-k 清除时间戳,下次需要重新输入密码

-K 删除时间戳文件,并下次需要重新输入密码;

-b 在后台执行指令;

-p 改变询问密码的提示符

[gejingyi@centos68 ~]$ sudo -p "password on %h for user %p" /bin/mount /dev/sdb2 /mnt/usb/
password on centos68 for user gejingyi

2、bind安装配置:服务脚本和名称:/etc/rc.d/init.d/namedunbound.service

主配置文件:/etc/named.conf./etc/named.rfc1912.zones/etc/rndc.key/etc/named/unbound.conf

解析库文件:/var/named/ZONE_NAME.zone

注意:一台物理服务器可同时为多个区域提供解析;必须要有根区域文件name.ca;应该有两个(如果包括ipv6则更多)实现localhost和本地回环地址的解析库。

注意:任何服务程序如果期望其能够通过网络被其它主机访问,至少应该监听在一个能与外部主机通信的IP地址上。

 

配置主DNS服务器:在主配置文件中定义区域:

zone “ZONE_NAME” IN {

type {master|slave|hint|forward};

file ZONE_NAME.zone

};

定义区域解析库文件;

主配置文件语法检查:named-checkconf

解析库文件语法检查:named-checkzone magedu.com /var/named/magedu.com.zone

重读服务:rndc status|reloadservice named reload

3、rndcremote name domain controller;默认与bind安装在同一主机,且只能通过127.0.0.1连接named进程。提供辅助性的管理功能,使用953/tcp端口。

rndc命令:用法:rndc COMMAND

rndc reload:重载主配置文件和区域解析库文件;

reload zone:重载区域解析库文件

retransfer zone:手动启动区域传送过程,而不管序列号是否增加;

notify zone :重新对区域传送发通知;

reconfig:重载主配置文件;

querylog:开启或关闭查询日志文件/var/log/message

trace:递增debug一个级别;

trace LEVEL:指定使用的级别;

notrace:将调试级别设置为0

flush:清空DNS服务器的所有缓存记录。

4、测试命令:dig

用法:dig [-t type] name [@SERVER] [query options]

dig只用于测试dns系统,不会查询hosts文件进行解析

选项:+[no]trace 跟踪解析过程

+[no]recurse 进行递归解析

测试反向解析:dig -x IP @SERVER

模拟区域传送(查看文件所有内容):dig -t axfr ZONE_NAME @SERVER

例如:dig -t axfr magedu.com @10.1.54.250

5、测试命令:host

用法:host [-t type] name IP

6nslookup命令:直接输入进入交互式模式;可以正向和反向查询。

7bind视图:一个bind服务器可以定义多个view,每个view中可定义一个或多个zone;每个view用来匹配一组客户端;多个view内可能需要对同一个区域进行解析,但使用不同的区域解析库文件。格式如下:

view VIEW_NAME {

match-clients {};

zone

};

注意:一旦启用了view,所有的zone都只能定义在view中;仅在允许递归请求的客户端所在view中定义根区域;客户端请求到达时,是自上而下检查每个view所服务的客户端列表。

详细步骤见课后练习。


三、课后练习

1、配置主从DNS服务器(操作关闭防火墙):

步骤一写主配置文件(若配置根服务器,更改配置和原本的根文件):

options {

//      listen-on port 53 { 127.0.0.1; }; 监听本地回环IP53端口,注释之后变为监听本机所有IP地址的所有端口,也可以改成本机IP(多个IP分号隔开)或其他端口

        allow-query { any; };  改为any,允许有所有人查询(单条记录查询),默认只有本机可以查询

        allow-transfer { 10.1.252.134; }; 不写默认为none,允许单个IP查询所有DNS信息(可以理解为允许使用dig -t axfr命令),改为none是禁止所有IP查询所有DNS信息在此添加从DNSIP,可以使从DNS服务器自动同步,若不允许则只能在主DNS服务器有更新的时候通知从服务器(只能推,不能拉)。

        dnssec-enable no;

        dnssec-validation no;  

        以上两行为DNS安全扩展(详情见知识整理),改为no。在配置缓存服务器及转发服务器时,需要关闭。

注意:系统中三个相关文件:/etc/host.conf(配置文件,multi on表示允许主机拥有多个IP)、etc/hosts/etc/resolv.conf;其中hosts文件有DNS的对应关系,其优先级高,若在此文件有记录,则DNS解析以此文件为先;resolv.conf文件记录域名服务器,nameserver一行表示dns解析时默认先使用此ip对应的主机进行解析(默认为网关),若添加则使用命令时可以不使用@IP

步骤二写区域辅助配置文件和DNS资源记录

/etc/named.rfc1912.zones:区域辅助配置文件;除了根域之外,其他所有区域配置建议写在此文件中,方便管理。(注意格式)主DNS服务器:

zone "magedu.com" IN {

       type master;

       file "magedu.com.zone";

};

DNS服务器的区域配置(文件名自拟):

zone "magedu.com" IN {

        type slave;

        masters { 10.1.54.250;  };

        file "magedu.com.zone";

};

/var/named/* 包含资源记录(DNSIP使用本机IP,其它随意):自带有localhostloopback配置,将需要配置的域.zone文件写在此处,在named.rfc1912.zones中配置文件名DNS服务器资源记录,需要将从服务器的记录也写入,以在主服务器更新后通知从服务器

[root@localhost ~]# cat /var/named/magedu.com.zone 
$TTL 600
@     IN SOA ns1.magedu.com.     admin.magedu.com.  (
            2016092301
            1H
            5M 
            1W
            1D)
@   IN  NS  ns1.magedu.com.  
     IN  NS  ns2.magedu.com.
ns1.magedu.com.  IN  A  10.1.54.250
ns2.magedu.com.  IN  A  10.1.252.28
magedu.com.   IN  MX  10 mail.magedu.com.
mail.magedu.com.  IN  A  10.1.4.1
www.magedu.com.   IN  A  10.1.4.2

从服务器的资源记录,写入主服务器的地址以按时进行同步

[root@localhost ~]# cat /var/named/magedu.com.zone 
$TTL 600
magedu.com.  IN  SOA   ns2.magedu.com.  admin.magedu.com.  (201609152
                        1H
                        5M
                        1W
                        1D)
magedu.com.  IN  NS   ns2.magedu.com.
magedu.com.  IN  NS   ns1.magedu.com.
ns2.magedu.com.  IN   A  10.1.252.28
ns1.magedu.com.  IN   A  10.1.54.250

更改解析库文件权限:将所属组改为named,将权限更改为640

[root@localhost ~]# chmod 640  /var/named/magedu.com.zone 
[root@localhost ~]# chgrp named  /var/named/magedu.com.zone
[root@localhost ~]# ll /var/named/magedu.com.zone
-rw-r-----. 1 root named 328 9月  24 10:48 /var/named/magedu.com.zone

步骤三检测文件和重启服务

检测文件格式的命令:配置文件:

[root@localhost ~]# named-checkconf /etc/named.rfc1912.zones 
[root@localhost ~]# named-checkconf /etc/named.conf

资源记录(解析库)文件语法检查:

[root@localhost ~]# named-checkzone "magedu.com" /var/named/magedu.com.zone 
zone magedu.com/IN: loaded serial 201609152
OK

重启服务或使用重读配置命令:centos6中:

[root@localhost ~]# service named restart
[root@localhost ~]# rndc reload 
server reload successful
[root@localhost ~]# service named reload 
Reloading named:                           [  OK  ]
centos7中:
[root@localhost ~]# systemctl restart named.service
[root@localhost ~]# rndc reload
server reload successful
[root@localhost ~]# systemctl reload named.service

步骤四检测DNS解析(使用同网段第三台主机):使用命令(hostdignslookup):

[root@centos68 named]# cat  /etc/resolv.conf 
; generated by /sbin/dhclient-script
search magedu.com
nameserver 10.1.54.250

使用hsot命令:(格式:IP前没@符号)

[root@centos68 ~]# host www.magedu.com
www.magedu.com.magedu.com has address 10.1.4.2
[root@centos68 ~]# host -t A  www.magedu.com
www.magedu.com.magedu.com has address 10.1.4.2
[root@centos68 ~]# host -t A  www.magedu.com 10.1.54.250
Using domain server:
Name: 10.1.54.250
Address: 10.1.54.250#53
Aliases: 
www.magedu.com.magedu.com has address 10.1.4.2

使用dig命令查看:

[root@centos68 ~]# dig -t A  www.magedu.com @10.1.54.250
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6 <<>> -t A www.magedu.com @10.1.54.250
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41168
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
 
;; QUESTION SECTION:
;www.magedu.com.   IN A
 
;; ANSWER SECTION:
www.magedu.com.  600 IN A 10.1.4.2
 
;; AUTHORITY SECTION:
magedu.com.  600 IN NS ns2.magedu.com.
magedu.com.  600 IN NS ns1.magedu.com.
 
;; ADDITIONAL SECTION:
ns1.magedu.com.  600 IN A 10.1.54.250
ns2.magedu.com.  600 IN A 10.1.252.28
 
;; Query time: 2 msec
;; SERVER: 10.1.54.250#53(10.1.54.250)
;; WHEN: Sat Sep 24 20:34:14 2016
;; MSG SIZE  rcvd: 116

使用nslookup命令查看:(正反向解析都可以查看)

[root@centos68 ~]# nslookup 
> www.magedu.com
Server:  10.1.54.250
Address: 10.1.54.250#53
Name: www.magedu.com
Address: 10.1.4.2

原创文章,作者:SilencePavilion,如若转载,请注明出处:http://www.178linux.com/51657

(0)
SilencePavilionSilencePavilion
上一篇 2016-10-17
下一篇 2016-10-17

相关推荐

  • 实现软RAID0的方法

    实验利用三个分区分别为10G组成一个RAID0 分区时要注意ID的转换 创建RAID的设备名称为md0 通过mdadm -D /dev/md0可以查看md0的信息 创建配置文件: mdadm -Ds > /etc/mdadm.conf(为了系统启动时自动加载) 给RIAD0创建文件系统: 创建挂载目录mkdir /mnt/raid0 挂载: 同步: m…

    2017-12-11
  • CentOS 7上配置php-fpm

    CentOS 7上配置php-fpm:              httpd-2.4:rpm包默认编译支持了fcgi模块;              php-fpm包:专用于将php运行于fpm模式;   &n…

    2017-06-06
  • linux程序包管理

         首先linux软件程序包和windows中的程序包是不兼容的,所以要在linux上使用windows上的程序,需要使用虚拟化工具。 库级别的虚拟化:     linux : WinE     windows: Cywin 而程序开发语言有多…

    Linux干货 2016-08-24
  • LVM work!!!

    1、创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录.     (1)查看分区大小 [root@localhost ~]# lsblk NAME   MAJ…

    Linux干货 2016-09-01
  • 关于 进程和性能监控

            Linux系统状态的查看及管理工具:     pstree, ps, pidof, pgrep, top, htop, glance,pmap, vmstat, dstat, kill, pkill, job, bg, fg, nohup pstree命…

    系统运维 2016-09-11
  • 第二周课堂练习

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。         ls     ls命令用来显示目标列表,在Linux中是使用率较高的命令。      -a:显示…

    Linux干货 2016-09-15