BIND9 отбрасывает неавторитетные запросы

BIND9 отбрасывает неавторитетные запросы

Мой провайдер позволяет мне запускать DNS-сервер, пока он не отвечает на неавторитетные запросы. Это означает отсутствие ответа вообще. Я настроил его так, чтобы он отклонял неавторитетные запросы, например, так;

> tweakers.net
Server:     my.server.net
Address:    my.ip#53

** server can't find tweakers.net: REFUSED

Но, видимо, этого уже недостаточно. Нужно просто не отправлять ответ вообще. Это вообще возможно?

Это мой текущий файл настроек;

options {
    directory "/var/cache/bind";

    recursion yes;

    allow-recursion { internal; };

    allow-transfer { *secondary dns ip*; };

    dnssec-enable yes;
    dnssec-validation yes;

    auth-nxdomain no;    # conform to RFC1035

    filter-aaaa-on-v4 yes;

};

Мой внутренний ACL

acl internal {
    192.168.40.0/24;
    127.0.0.1;
    10.0.3.1/24;
    };

Может быть, я не то гуглю, но такой опции я не нахожу.

решение1

Вам необходимо отключить рекурсию.

Это не позволит ему отвечать на запросы для неавторитетных зон.

Но он все равно ответит SERVFAIL.

решение2

Нашел решение iptables здесь. Похожий вопрос размещен на Serverfault. https://serverfault.com/questions/438515/bind-blackhole-for-invalid-recursive-queries

С помощью Bind это сделать невозможно. Однако можно использовать правила брандмауэра iptables, чтобы блокировать ответы на все рекурсивные запросы.

решение3

Как и вы, я не люблю, когда мой сервер участвует в DDOS, даже если он отвечает небольшими 30-байтовыми пакетами. Также по некоторым причинам я не могу использовать iptables для блокировки поддельных запросов. Уязвимость сервера была исправлена ​​3 месяца назад, но ботнет все еще отправляет поддельные запросы на сервер.

Итак, в результате вы можете использовать этот простой патч, чтобы не отправлять ответ REFUSED (запросы будут отклоняться):

--- bind9-9.9.5.dfsg/bin/named/query.c.orig        Thu Aug  6 21:56:57 2020
+++ bind9-9.9.5.dfsg/bin/named/query.c     Thu Aug  6 22:08:15 2020
@@ -1038,7 +1038,7 @@
                                         sizeof(msg));
                        ns_client_log(client, DNS_LOGCATEGORY_SECURITY,
                                      NS_LOGMODULE_QUERY, ISC_LOG_INFO,
-                                     "%s denied", msg);
+                                     "%s dropped", msg);
                }
                /*
                 * We've now evaluated the view's query ACL, and
@@ -5809,8 +5809,9 @@
                        } else
                                inc_stats(client, dns_nsstatscounter_authrej);
                        if (!PARTIALANSWER(client))
-                               QUERY_ERROR(DNS_R_REFUSED);
-               } else
+               //              QUERY_ERROR(DNS_R_REFUSED);
+                               QUERY_ERROR(DNS_R_DROP);
+               } else
                        QUERY_ERROR(DNS_R_SERVFAIL);
                goto cleanup;
        }
# diff -u query.c.orig query.c

... в результате вы получаете красивые логи, подобные этому:

Aug  6 21:39:29 topor named[2652]: client 78.180.51.241#43072 (.): query (cache) './ANY/IN' dropped
Aug  6 21:40:00 topor last message repeated 485 times

И не будет ответа «ОТКАЗАНО», если запрос поступил из неавторизованной сети / для неподдерживаемого домена.

Связанный контент