Linux中國

如何關閉一個開放的DNS解析器

不幸的是,開放解析器很容易成為一個攻擊目標。比如,攻擊者可以對開放DNS伺服器發起一個拒絕服務攻擊(DoS)或者更糟的分散式拒絕服務攻擊(DDoS)。這些也可與IP欺騙結合,將應答包指向受害者被欺騙的IP地址。在另外的場合下稱作DNS放大攻擊,開放的DNS伺服器很容易就會成為攻擊的對象。

根據openresolverproject.org,除非有必要,運行一個開放解析器是不明智的。大多數公司要讓它們的DNS伺服器僅對他們的客戶開放。本篇教程會只要集中於如何配置一個DNS伺服器來使它停止開放解析且僅對有效的客戶響應。

調整防火牆

由於DNS運行在UDP的53埠上,系統管理可能試圖僅允許來自53埠的客戶端IP地址,並阻止剩餘的網際網路埠。雖然這可以工作,但是也會有一些問題。既然根伺服器與DNS伺服器的通信也用53埠,我們不得不在防火牆內也確保UDP 53埠被允許。

一個防火牆示例如下所示。對於生產伺服器,確保你的規則匹配你的要求並遵守與公司安全制度。

# vim firewall-script 
## existing rules are flushed to start with a new set of rules ##
iptables -F

iptables -A INPUT -s A.A.A.A/X -p udp --dport 53 -j ACCEPT
iptables -A INPUT -s B.B.B.B/Y -p udp --dport 53 -j ACCEPT
iptables -A INPUT -s C.C.C.C/Z -p udp --dport 53 -j ACCEPT

iptables -A INPUT -p udp --dport 53 -j DROP

## making the rules persistent ##
service iptables save

讓腳本可執行並運行它。

# chmod +x firewall-script
# ./firewall-script 

阻止遞歸查詢

DNS查詢主要可以分為遞歸查詢和迭代查詢。對於遞歸查詢,伺服器會響應客戶端應答或者錯誤信息。如果應答不在伺服器的緩存中,伺服器會與根伺服器通信並獲得授權域名伺服器。伺服器會不停查詢知道獲得結果,或者請求超時。對於迭代查詢,另一個方面講,伺服器會將客戶端指向另外一個可能可以處理的伺服器上,那麼就會減少伺服器自身的處理。

我們可以控制運行遞歸查詢的IP地址。我們修改位於/etc/named.conf的配置文件並增加/修改下面的參數。

# vim /etc/named.conf
## we define ACLs to specify the source address/es ##
acl customer-a{ A.A.A.A/X; };
acl customer-b { B.B.B.B/Y; C.C.C.C/Z; };

## we call the ACLs under options directive ##
options {
        directory "/var/named";
        allow-recursion { customer-a; customer-b; };
};

調整用於開放解析器的防火牆

如果你必須運行一個開放解析器,建議你適當調節一下你的伺服器,這樣就不會被利用了。smurfmonitor 倉庫提供了強大的一組可以用於開放解析器的iptables規則,比如阻止來自DNS放大攻擊的域名解析請求。這個倉庫會定期地更新,強烈建議DNS伺服器管理員使用它。

總的來說,對於開放DNS解析器的攻擊是很常見的,特別是對於沒有適當安全防護的DNS伺服器而言。這個教程延時了如何禁止一個開放DNS伺服器。我們同樣看到了如何使用iptables在一個開放DNS伺服器上加上一層安全防護。

希望這對你有用。

via: http://xmodulo.com/2014/04/close-open-dns-resolver.html

譯者:geekpi 校對:校對者ID

本文由 LCTT 原創翻譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國