一、知識整理
1、最初只有七個一級域名:Top Level Domain:tld:com、edu、mil、gov、net、org、int;
一級域名分三類:組織域、國家域、反向域。最多127級域名;全球有13個根節點服務器。
2、一次完整的查詢請求經過的流程:client—hosts文件—DNS Service Local Cache—DNS SERVER(recursion)—-Server Cache—iteration(迭代)—根—頂級域名DNS—二級域名DNS….
3、區域解析庫:資源記錄RR(resource record)組成;常用的記錄類型有:
A:internet address;作用FQDN—>IP
AAAA:ipv6的記錄: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.;配置文件中定義了網絡地址及反向解析,網絡地址及后綴可省。
CNAME:name:別名的FQDN;value:真正名字的FQDN。
5、DNSSEC安全:domain name system security extensions,是由IETF提供的一系列DNS安全認證的機制,它提供了一種來源鑒定和數據完整性的擴展,但不去保障可用性、加密性和證實域名不存在,是為了解決欺騙和緩存污染設計的一種安全機制。dnssec-enable是否支持DNSSEC開關,默認為開;dnssec-validation是否進行dnssec確認開關,默認為開;
二、命令詳解及事例
1、sudo:sudo能夠授權指定用戶在指定主機上運行某些命令。它可以提供日志,記錄每個用戶使用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,配置文件中注釋#開頭行使用##;
通過哪些主機:可以是IP或hostname或network/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|reload;service named reload
3、rndc:remote 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; }; 監聽本地回環IP的53端口,注釋之后變為監聽本機所有IP地址的所有端口,也可以改成本機IP(多個IP分號隔開)或其他端口。
allow-query { any; }; 改為any,允許有所有人查詢(單條記錄查詢),默認只有本機可以查詢;
allow-transfer { 10.1.252.134; }; 不寫默認為none,允許單個IP查詢所有DNS信息(可以理解為允許使用dig -t axfr命令),改為none是禁止所有IP查詢所有DNS信息。在此添加從DNS的IP,可以使從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/* 包含資源記錄(DNS的IP使用本機IP,其它隨意):自帶有localhost和loopback配置,將需要配置的域.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