成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

加強(qiáng)linux系統(tǒng)的DNS服務(wù)的安全防御能力

M8-1 加強(qiáng)Linux 系統(tǒng)的DNS 服務(wù)的安全防御能力1.1場(chǎng)景描述1.1.1 學(xué)習(xí)目的學(xué)生通過該能力模塊的學(xué)習(xí), 能夠獨(dú)立完成和熟練掌握安全配臵DNS 服務(wù)器,加強(qiáng)Linux 系統(tǒng)的DNS 服務(wù)

M8-1 加強(qiáng)Linux 系統(tǒng)的DNS 服務(wù)的安全防御能力

1.1場(chǎng)景描述

1.1.1 學(xué)習(xí)目的

學(xué)生通過該能力模塊的學(xué)習(xí), 能夠獨(dú)立完成和熟練掌握安全配臵DNS 服務(wù)器,加強(qiáng)Linux 系統(tǒng)的DNS 服務(wù)的安全防御能力。

1.1.2 學(xué)習(xí)要求

理解:DNS 服務(wù)存在安全風(fēng)險(xiǎn)

掌握:DNS 服務(wù)安全選項(xiàng)配臵

掌握:DNS 服務(wù)TSIG 配臵

1.1.3 學(xué)習(xí)重點(diǎn)和難點(diǎn)

1. 學(xué)習(xí)重點(diǎn)

? 保護(hù)DNS 服務(wù)器本身安全

? 保護(hù) Zone Transfer 的安全

? 保護(hù) DNS 免于 Spoofed攻擊

? 使用 TSIG保護(hù)DNS 服務(wù)器

? 保護(hù)Dynamic Update的安全

2. 學(xué)習(xí)難點(diǎn)

? 使用 TSIG保護(hù)DNS 服務(wù)器

1.2 知識(shí)準(zhǔn)備

1.2.1 Zone Transfer

DNS 的區(qū)域傳輸目的是為了DNS 的備份,當(dāng)DNS 服務(wù)器壞了,它的數(shù)據(jù)不會(huì)丟失。注意在配臵區(qū)域傳輸是一定要注意輔助服務(wù)器上建立的區(qū)域是輔助區(qū)域且與主服

,

務(wù)器的域名相同,而且區(qū)域傳輸是雙向的,不但需要在輔助服務(wù)器上配臵還要在主服務(wù)器上進(jìn)行相應(yīng)的配臵。

1.2.2 DNS威脅

DNS 服務(wù)面臨的安全問題主要包括:DNS 欺騙(DNS Spoffing )、拒絕服務(wù)(Denial of service,DoS )攻擊、分布式拒絕服務(wù)攻擊和緩沖區(qū)漏洞溢出攻擊(Buffer Overflow )。

1. DNS 欺騙

DNS 欺騙即域名信息欺騙是最常見的DNS 安全問題。當(dāng)一個(gè)DNS 服務(wù)器

掉入陷阱,使用了來自一個(gè)惡意DNS 服務(wù)器的錯(cuò)誤信息,那么該DNS 服

務(wù)器就被欺騙了。DNS 欺騙會(huì)使那些易受攻擊的DNS 服務(wù)器產(chǎn)生許多安

全問題,例如:將用戶引導(dǎo)到錯(cuò)誤的互聯(lián)網(wǎng)站點(diǎn),或者發(fā)送一個(gè)電子郵

件到一個(gè)未經(jīng)授權(quán)的郵件服務(wù)器。網(wǎng)絡(luò)攻擊者通常通過三種方法進(jìn)行

DNS 欺騙。圖1是一個(gè)典型的DNS 欺騙的示意圖。

2.

TuPkVGdvW6tl

(1)緩存感染

黑客會(huì)熟練的使用DNS 請(qǐng)求,將數(shù)據(jù)放入一個(gè)沒有設(shè)防的DNS 服務(wù)器的緩存當(dāng)中。這些緩存信息會(huì)在客戶進(jìn)行DNS 訪問時(shí)返回給客戶,從而將客戶引導(dǎo)到入侵者所設(shè)臵的運(yùn)行木馬的Web 服務(wù)器或郵件服務(wù)器上,然后黑客從這些服務(wù)器上獲取用戶信

,

息。

(2)DNS 信息劫持

入侵者通過監(jiān)聽客戶端和DNS 服務(wù)器的對(duì)話,通過猜測(cè)服務(wù)器響應(yīng)給客戶端的DNS 查詢ID 。每個(gè)DNS 報(bào)文包括一個(gè)相關(guān)聯(lián)的16位ID 號(hào),DNS 服務(wù)器根據(jù)這個(gè)ID 號(hào)獲取請(qǐng)求源位臵。黑客在DNS 服務(wù)器之前將虛假的響應(yīng)交給用戶,從而欺騙客戶端去訪問惡意的網(wǎng)站。

(3)DNS 復(fù)位定向

攻擊者能夠?qū)NS 名稱查詢復(fù)位向到惡意DNS 服務(wù)器。這樣攻擊者可以獲得DNS 服務(wù)器的寫權(quán)限。

2. 拒絕服務(wù)攻擊

黑客主要利用一些DNS 軟件的漏洞,如在BIND 9版本(版本9.2.0以前的 9系列)如果有人向運(yùn)行BIND 的設(shè)備發(fā)送特定的DNS 數(shù)據(jù)包請(qǐng)求,BIND 就會(huì)自動(dòng)關(guān)閉。攻擊者只能使BIND 關(guān)閉,而無法在服務(wù)器上執(zhí)行任意命令。如果得不到DNS 服務(wù),那么就會(huì)產(chǎn)生一場(chǎng)災(zāi)難:由于網(wǎng)址不能解析為IP 地址,用戶將無方訪問互聯(lián)網(wǎng)。這樣,DNS 產(chǎn)生的問題就好像是互聯(lián)網(wǎng)本身所產(chǎn)生的問題,這將導(dǎo)致大量的混亂。

3、分布式拒絕服務(wù)攻擊

DDOS 攻擊通過使用攻擊者控制的幾十臺(tái)或幾百臺(tái)計(jì)算機(jī)攻擊一臺(tái)主機(jī),使得服務(wù) 拒絕攻擊更難以防范:使服務(wù)拒絕攻擊更難以通過阻塞單一攻擊源主機(jī)的數(shù)據(jù)流,來防范服務(wù)拒絕攻擊。Syn Flood是針對(duì)DNS 服務(wù)器最常見的分布式拒絕服務(wù)攻擊。

4. 緩沖區(qū)漏洞

Bind 軟件的缺省設(shè)臵是允許主機(jī)間進(jìn)行區(qū)域傳輸(zone transfer)。區(qū)域傳輸主要用于主域名服務(wù)器與輔域名服務(wù)器之間的數(shù)據(jù)同步,使輔域名服務(wù)器可以從主域名服務(wù)器獲得新的數(shù)據(jù)信息。一旦起用區(qū)域傳輸而不做任何限制,很可能會(huì)造成信息泄漏,黑客將可以獲得整個(gè)授權(quán)區(qū)域內(nèi)的所有主機(jī)的信息,判斷主機(jī)功能及安全性,從中發(fā)現(xiàn)目標(biāo)進(jìn)行攻擊。

1.2.3 TSIG

DNS 的事務(wù)簽名分為 TSIG (Transaction Signatures) 與 SIG0 (SIGnature)兩種。該如何選擇呢? 首先,要先判斷客戶端與服務(wù)器間的信任關(guān)系為何,若是可信任者,可選擇對(duì)稱式的 TSIG。TSIG 只有一組密碼,并無公開/私密金鑰之分;若是

,

非完全信任者,可選擇非對(duì)稱式金鑰的 SIG0,雖有公開/私密金鑰之分,相對(duì)的,設(shè)定上也較復(fù)雜。至于要選用哪種較適合,就由自己來判斷。通常區(qū)帶傳輸是主域名服務(wù)器到輔助域名服務(wù)器。

1.TSIG 技術(shù)

交易簽章 (TSIGRFC 2845),是為了保護(hù) DNS安全而發(fā)展的。從BIND 8.2版本開始引入 TSIG 機(jī)制,其驗(yàn)證 DNS 訊息方式是使用共享金鑰 (Secret Key) 及單向雜湊函式(One-way hash function) 來提供訊息的驗(yàn)證和數(shù)據(jù)的完整性。主要針對(duì)區(qū)帶傳輸(ZONE Transfer)進(jìn)行保護(hù)的作用,利用密碼學(xué)編碼方式為通訊傳輸信息加密以保證 DNS 訊息的安全,特別是響應(yīng)與更新的訊息數(shù)據(jù)。也就是說在DNS 服務(wù)器之間進(jìn)行轄區(qū)傳送時(shí)所提供保護(hù)的機(jī)制,以確保傳輸數(shù)據(jù)不被竊取及監(jiān)聽。

2.SIG0 技術(shù)簡(jiǎn)介

SIG0是一九九九年三月 由 IBM公司的D. Eastlake 提出成為標(biāo)準(zhǔn)。其是利用公開金鑰機(jī)制為轄區(qū)資料進(jìn)行數(shù)字簽章的動(dòng)作,以保證每筆傳輸?shù)?source record 具有可驗(yàn)證性與不可否認(rèn)性。實(shí)際上 SIG0 才是防止 DNS Spoofing 發(fā)生最主要的技術(shù),SIG0 是使用公開金鑰加密法,讓轄區(qū)管理者為其轄區(qū)數(shù)據(jù)加上數(shù)字簽章,由此證明轄區(qū)資料的可信賴性。除此之外,SIG0 保有是否選擇認(rèn)證機(jī)制的彈性,以及可靈活地配合自訂的安全機(jī)制。

1.3 注意事項(xiàng)

在對(duì)DNS 進(jìn)行安全配臵之前,需要確認(rèn)DNS 是否能夠正常解析。

1.4 操作步驟

1.4.1選擇沒有安全缺陷的DNS 版本

BIND 主要分為三個(gè)版本:

(1)v4:1998年多數(shù)unix 捆綁

(2)v8:如今使用最多最廣大版本

安全信息:http://security.nsfocus.com/showQueryL.asp?libID=530

(3)v9:最新版本,免費(fèi)(http://www.isc.org)

,

2. 保持DNS 服務(wù)器配臵正確、可靠

dlint 是專門檢查DNS 配臵文件開源代碼軟件:

dnstop 可以查詢DNS 服務(wù)器狀態(tài):

1.4.2保護(hù)DNS 服務(wù)器本身安全

第一步:隔離DNS 服務(wù)器

DNS 服務(wù)器要專用,不要在DNS 服務(wù)器上運(yùn)行其它服務(wù),盡量允許普通用戶登錄。 第二步:隱藏DNS 服務(wù)器

網(wǎng)絡(luò)攻擊者對(duì)DNS 服務(wù)進(jìn)行攻擊前,首先要知道BIND 有版本號(hào),根據(jù)BIND 版本號(hào)找到漏洞來確定攻擊DNS 服務(wù)器方法,攻擊者使用dig 命令可以查詢到BIND 的版本號(hào)。為了保障DNS 服務(wù)器安全的首先要隱藏DNS 服務(wù)器。下面是沒有隱藏DNS 服務(wù),攻擊者查詢到的DNS 服務(wù)器的版本。

[root@centos ~]# dig @192.168.123.11 txt chaos version.bind

; <<>> DiG 9.3.4-P1 <<>> @192.168.123.11 txt chaos version.bind

; (1 server found)

;; global options: printcmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10122

;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0 ;; QUESTION SECTION:

;version.bind. CH TXT

;; ANSWER SECTION:

version.bind. 0 CH TXT "9.2.4"

;; AUTHORITY SECTION:

version.bind. 0 CH NS version.bind.

;; Query time: 20 msec

;; SERVER: 192.168.123.11#53(192.168.123.11)

,

;; WHEN: Thu Jan 14 18:33:27 2010

;; MSG SIZE rcvd: 62

[root@centos ~]#

通過下面對(duì)服務(wù)器進(jìn)行安全配臵,攻擊者無法查詢到DNS 服務(wù)地版本信息,編輯BIND 配臵文件,如下所示。

[root@lab2 ~]# vi /etc/named.conf

//

// named.conf for Red Hat caching-nameserver

//

options {

directory "/var/named";

version "unknow on this platform";

dump-file "/var/named/data/cache_dump.db";

statistics-file "/var/named/data/named_stats.txt";

/*

* If there is a firewall between you and nameservers you want * to talk to, you might need to uncomment the query-source * directive below. Previous versions of BIND always asked * questions using port 53, but BIND 8.1 uses an unprivileged * port by default.

*/

// query-source address * port 53;

};

//

// a caching only nameserver config

//

"/etc/named.conf" 79L, 1572C

在配臵文件中加入“version "unknow on this platform";”,保存配臵文件,然后 退出,重啟DNS 服務(wù)器。

,

[root@lab2 ~]# service named restart

停止 named:[ 確定 ]

啟動(dòng) named:[ 確定 ]

[root@lab2 ~]#

再使用dig 命令進(jìn)行測(cè)試,如下所示:

[root@centos ~]# dig @192.168.123.11 txt chaos version.bind

; <<>> DiG 9.3.4-P1 <<>> @192.168.123.11 txt chaos version.bind ; (1 server found)

;; global options: printcmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61670

;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0 ;; QUESTION SECTION:

;version.bind. CH TXT

;; ANSWER SECTION:

version.bind. 0 CH TXT "unknow on this platform"

;; AUTHORITY SECTION:

version.bind. 0 CH NS version.bind. ;; Query time: 16 msec

;; SERVER: 192.168.123.11#53(192.168.123.11)

;; WHEN: Thu Jan 14 18:40:23 2010

;; MSG SIZE rcvd: 80

通過上面測(cè)試,可以看到攻擊者無法查詢到DNS 的版本信息。

第三步:避免透露DNS 服務(wù)器信息

和版本號(hào)一樣,也不要輕易透露服務(wù)器其他信息。為了讓潛在的攻擊者更難得手,盡量不要在DNS 配臵文件中使用這HINFO 和 TXT兩個(gè)資源記錄。

第四步:以最小的權(quán)限及使用chroot()方式運(yùn)行BIND

,

以 root 使用者的身分執(zhí)行BIND 有安全隱患,攻擊者若找到BIND 的安全漏洞,可能獲取 root 的身分,從而進(jìn)行對(duì)服務(wù)器攻擊。

BIND 8.1.2 允許在啟動(dòng)DNS 服務(wù)器後,變更其UID 和GID ,可以使用命令 named -u named

以 chroot() 的方式執(zhí)行BIND 可將危害減至最低

設(shè)臵 chroot 之后的環(huán)境:設(shè)臵dev/zero、dev/random、dev/log或etc/localtime,可以使用命令修改運(yùn)行用戶。

named -u named -t /var/named

1.4.3保護(hù) DNS 免于 Spoofed 攻擊

DNS 服務(wù)器若接受來自Internet 的遞歸詢問要求,易遭受Spoofing 的攻擊,導(dǎo)致攻擊者修改DNS 服務(wù)器區(qū)域文件,其它用戶解析域名的時(shí)候,取回的是假造的名稱信息。

第一步:關(guān)閉rescursion 的功能

關(guān)閉 rescursion 功能后,DNS 服務(wù)器只會(huì)響應(yīng)非遞歸的詢問要求

無遞歸功能的DNS 服務(wù)器不易易遭受 Spoofing 的攻擊,因?yàn)樗粫?huì)送出查詢要求,所以也不會(huì)攝取所管區(qū)域以外的任何數(shù)據(jù)

如果DNS 服務(wù)器還提供服務(wù)給合法的解析器(resolver ),或是充當(dāng)其他D NS服務(wù)器的代詢服務(wù)器(forwarder ),就不應(yīng)該關(guān)閉 rescursion 的功能。如果無法關(guān)閉 rescursion 的功能,應(yīng)該限制查詢要求的服務(wù)對(duì)象

修改配臵文件:/etc/named.conf.加入一行:

[root@lab2 ~]# vi /etc/named.conf

//

// named.conf for Red Hat caching-nameserver

//

options {

,

directory "/var/named";

version "unknow on this platform";

recursion no;

fetch-glue no;

dump-file "/var/named/data/cache_dump.db";

statistics-file "/var/named/data/named_stats.txt";

/*

* If there is a firewall between you and nameservers you want * to talk to, you might need to uncomment the query-source * directive below. Previous versions of BIND always asked * questions using port 53, but BIND 8.1 uses an unprivileged * port by default.

"/etc/named.conf" 81L, 1603C

第二步:關(guān)閉 glue fetching 的功能

修當(dāng)DNS 服務(wù)器為響應(yīng)詢問的 DNS 封包建立 additional data 區(qū)段的數(shù)據(jù)時(shí),會(huì)自動(dòng)解析 NS 紀(jì)錄中任何DNS 服務(wù)器的域名,這稱為 glue fetching, 易遭受 Spoofing 的攻擊。

關(guān)閉 glue fetching 的功能,可避免DNS 服務(wù)器送出任何的查詢要求,所以也不會(huì)攝取所管區(qū)域以外的任何數(shù)據(jù)。

當(dāng)DNS 服務(wù)器返回一個(gè)域的域名服務(wù)器紀(jì)錄并且域名服務(wù)器紀(jì)錄中沒有A 紀(jì)錄,DNS 服務(wù)器會(huì)嘗試獲取一個(gè)紀(jì)錄。就稱為glue fetching, 攻擊者可以利用它進(jìn)行DNS 欺騙。關(guān)閉glue fetching 是一個(gè)好方法,修改配臵文件:/etc/named.conf.加入一行:

[root@lab2 ~]# vi /etc/named.conf

//

// named.conf for Red Hat caching-nameserver

//

options {

directory "/var/named";

,

version "unknow on this platform";

recursion no;

fetch-glue no;

dump-file "/var/named/data/cache_dump.db";

statistics-file "/var/named/data/named_stats.txt";

/*

* If there is a firewall between you and nameservers you want * to talk to, you might need to uncomment the query-source * directive below. Previous versions of BIND always asked * questions using port 53, but BIND 8.1 uses an unprivileged * port by default.

"/etc/named.conf" 81L, 1603C

第三步:限制查詢要求的服務(wù)對(duì)象

如果無法關(guān)閉 rescursion 的功能,應(yīng)該限制查詢要求的服務(wù)對(duì)象

限制詢問要求的來源(IP 地址)

限制可以查詢的區(qū)域范圍

DNS 服務(wù)器應(yīng)該拒絕來自以下網(wǎng)絡(luò)的詢問要求

私有網(wǎng)絡(luò)(除非你自己在使用)

實(shí)驗(yàn)性網(wǎng)絡(luò)

群播網(wǎng)絡(luò)

一般的DNS 服務(wù)器

對(duì)所管區(qū)域的名稱信息,可以服務(wù)來自任何 IP 地址的查詢要求,因?yàn)樗墙?jīng)授權(quán)而來管理該區(qū)域的權(quán)威DNS 服務(wù)器

對(duì)于所管區(qū)域以外的名稱信息,只應(yīng)該服務(wù)來自內(nèi)部或可信賴之 IP 地址的查詢要求

cahing-only DNS服務(wù)器

應(yīng)該只服務(wù)來自特定 IP 地址的解析器

authoritative-only DNS服務(wù)器

必須服務(wù)來自任何IP 地址的詢問要求,但是應(yīng)該拒絕任何遞歸的詢問要求。具

標(biāo)簽: