Security

如何避免 DNS 欺騙進行 DNS 查找

  • January 2, 2010

我正在嘗試找到一種方法來獲取域名的真實 IP 地址。我正在研究使用iptablestc進行流量整形的路由器。然後我需要設置iptables規則來標記來自某些域的數據包,使用它們的 ip 地址。

我第一次使用dig命令,查詢域的名稱伺服器,如下所示:


nbNameServer=`$dig NS $url +short | wc -l`

# If there is NS for the given domain
if [ $nbNameServer -gt 0 ]; then

for i in $($dig NS $url +short $TOdig); do

   ipDom=`$dig @$i $url +short $TOdig`

   # Ip found on the $i name server, no need to consult the others
   if [ -n "$ipDom" ]; then
       failed=`echo -e "$ipDom" | egrep "no servers could be reached"`

        if [ ! -n "$failed" ]; then
            break
        else
            ipDom=""
        fi
   fi
   done
fi

如果 /etc/resolv.conf 文件中的路由器讓我們說 8.8.8.8 google DNS,是否有一種方法 ip 或域不是最新的或使用我的方式進行欺騙?

我實際上不知道路由器是否會處於使用本地 DNS 伺服器的環境中。

是否也可以使用host命令執行安全的 DNS 查找?

我唯一要確定的是,對於給定的域 mydomain.com,DNS 查找將返回所有最新的 IP 地址(我只需要 A 或 AAAA 記錄)。

我對所有 DNS 機制仍然有些困惑,因此當然歡迎任何評論/評論/建議。

實際上,您從中獲得的結果不太可能dig被偽造。但是,如果您想要某種絕對的保證,那麼您就不走運了——沒有像 DNSSEC 這樣的東西,欺騙是完全可能的。

只要 DNSSEC 未被廣泛使用,防止 DNS 欺騙的最佳方法就是使用“源埠隨機化”。自從“Kaminsky DNS bug”以來,這一點尤其重要。

您需要確保您使用的 DIG 版本以及您查詢的遞歸 DNS 伺服器都實現了“源埠隨機化”。

從理論上講,即使是“源埠隨機化”也仍然可以進行欺騙,但這需要很長時間和大量的網路流量。

引用自:https://serverfault.com/questions/98632