DNS和BIND配置(第一部分)

一、知識整理

1、最初只有七個一級域名:Top Level Domaintldcom、edumilgov、net、org、int;

    一級域名分三類:組織域、國家域、反向域。最多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:某主機的FQDN;value值為IP;為避免用戶寫錯名稱時給錯誤答案,可通過泛域名解析進行解析至某特定地址。如:*.magedu.com.  IN  A  1.1.1.1

PTR記錄name:有特定格式,將IP反過來寫并且加特定后綴in-addr.arpa.例如:4.3.2.1.in-addr.arpa.;配置文件中定義了網絡地址及反向解析,網絡地址及后綴可省。

CNAMEname:別名的FQDN;value:真正名字的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改為2000;root用戶仍然可以通過使用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/named,unbound.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

6、nslookup命令:直接輸入進入交互式模式;可以正向和反向查詢。

7、bind視圖:一個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解析(使用同網段第三臺主機):使用命令(host、dig、nslookup):

[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.www58058.com/51657

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

相關推薦

  • 程序包的編譯安裝

    程序包的編譯安裝     程序包的編譯安裝是比較重要的內容,在之后的網絡知識以及服務的配置等學習方面也發揮著重要作用,是我們的必備技能。 一、雜項知識整理 1、which –skip-alias:跳過別名,直接查看原命令 [root@localhost ~]# which –…

    Linux干貨 2016-08-24
  • 軟件包管理器之一——RPM介紹及應用

    一、前言:     在沒有軟件包管理器前,用戶都是通過源代碼的方式來安裝軟件。但是我們很容易發現,在每次安裝軟件時都必須對操作系統的境、編譯的參數進行對應的編譯,并且操作過程很是復雜,這對于不熟悉操作系統的朋友來說真心困難,那么有沒有一款軟件能讓用戶能很簡單的安裝所需的軟件呢?    &n…

    Linux干貨 2015-07-20
  • N_28包管理器(rpm)及前端管理工具(yum)

    1、簡述rpm與yum命令的常見選項,并舉例 rpm–>RPM package manager 是一種用于redhat發行版的打包及安裝管理工具,現在成為linux領域包管理器的行業標準,包名以.rpm為后綴。 用法: rpm [options] PACKAGE_FILE 常用選項: -i:安裝rmp包 -v:顯示安裝過程 -vv:更加詳細…

    Linux干貨 2018-01-01
  • yum詳解

    yum YUM: Yellowdog Update Modifier,rpm的前端程序,用來解決軟件包相關依賴性,可以在多個庫之間定位軟件包,up2date的替代工具 yum repository: yum repo,存儲了眾多rpm包,以及包的相關的元數據文件(放置于特定目錄repodata下) yum對軟件包的管理機制 —–引用了…

    Linux干貨 2016-08-25
  • ansible配置詳解

    概述     ansible是一款無需在被管理主機上安裝客戶端,基于SSH對多臺目標主機進行同時操作的輕量級的管理軟件,借助各個內部的功能模塊,實現了批量系統配置、批量程序部署、批量運行命令等功能。本篇就介紹一些關于ansible的基礎配置相關的內容,具體包括:     1、an…

    Linux干貨 2016-11-05
  • 文件權限

    一、文件權限        linux系統中文件眾多,針對不同的文件面向的對象不同,因此對其設置的權限各不相同,那么我們來對文件設置權限呢?               …

    Linux干貨 2016-08-08
欧美性久久久久