Назад | Перейти на главную страницу

Как избежать подмены DNS для поиска DNS

Я пытаюсь найти способ получить реальный IP-адрес (а) для доменного имени. Я работаю над маршрутизатором, формирующим трафик с использованием iptables и tc. Затем мне нужно настроить iptables правила маркировки пакетов, приходящих из определенных доменов, с использованием их IP-адресов.

В первый раз я использовал копать землю команда, запрашивающая сервер имен домена, например:


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-сервер, или нет.

Можно ли выполнить безопасный поиск DNS с помощью хозяин команда тоже?

Единственное, в чем я хочу быть уверенным, это то, что для данного домена mydomain.com поиск DNS вернет все IP-адреса (мне просто нужна запись A или AAAA) в актуальном состоянии.

Я все еще немного смущен всеми механизмами DNS, поэтому любые комментарии / замечания / советы, конечно, приветствуются.

С практической точки зрения маловероятно, что результаты, полученные от dig будут сфальсифицированы. Однако если вам нужна какая-то абсолютная гарантия, вам не повезло - без чего-то вроде DNSSEC спуфинг вполне возможен.

Пока DNSSEC не используется широко, лучший способ защиты от подмены DNS - использование «рандомизации исходного порта». Это особенно важно, поскольку "Каминский баг DNS".

Вы должны убедиться, что и версия DIG, которую вы используете, а также рекурсивный DNS-сервер, который вы запрашиваете, реализовали «рандомизацию исходного порта».

Теоретически можно подделать даже "рандомизацию исходного порта", но это займет ДОЛГОЕ время и БОЛЬШОЙ сетевой трафик.

Итак, если вы выполните команду dig + dnssec и найдите 'ad' в поле флагов, вы знаете, что это не было подделано ... но поскольку dnssec не включен для очень многих зон, это вам ничего не скажет в большинстве случаев.