Автор Тема: bind и recursion no  (Прочитано 4439 раз)

Оффлайн Slavka

  • Участник
  • *
  • Сообщений: 16
bind и recursion no
« : 18.06.2016 08:41:37 »
Доброе время суток- на работе нас немного начали дудосить днс флудом. При разборе обнаружили включенную рекурсию на внешний мир. Вечером я немного эксперементировал и сделал для начала просто глобальную настройку -
recursion no
Теперь вместо ожидаемого посыла атакующих rejectом - мы стали получать вот такой ответ
>nslookup


> ya.ru


╚ь :     ya.ru
Served by:
- e.root-servers.net
          192.203.230.10

- f.root-servers.net
          192.5.5.241
          2001:500:2f::f

- g.root-servers.net
          192.112.36.4

- h.root-servers.net
          198.97.190.53

- i.root-servers.net


- j.root-servers.net


- k.root-servers.net


- l.root-servers.net


- m.root-servers.net


- a.root-servers.net
          198.41.0.4
          2001:503:ba3e::2:30


также я никак не найду настройку которая бы позволяла в файл security.log отбрасывать самих дудосеров чтобы потом с помощью file2ban отправлять их на деревню к дедушке

вот наш конфиг

файл options.conf
acl "internals" { 172.16.0.0/22; 172.72.10.0/24; 172.27.72.0/24; 172.2.2.0/24; 172.23.45.0/24;  10.0.0.0/8; 127.0.0.1/32; };

options {
version "unknown";
directory "/zone";
pid-file "";
dump-file "/var/run/named_dump.db";
statistics-file "/var/run/named.stats";
recursing-file "/var/run/recursing";
recursion no;
allow-recursion { internals; };
include "/etc/ddns.conf";
include "/etc/rfc1912.conf";
include "/etc/rfc1918.conf";


файл named.conf

include "/etc/options.conf";
include "/etc/rndc.conf";
include "/etc/local.conf";

 logging {
    channel security_file {
file "/log/security.log" versions 3 size 30m;
severity info;
print-time yes;
    };
    channel "query_log" {
        file "/log/query.log" versions 3 size 2m;
        print-time yes;
        print-category yes;
    };
    category security {security_file; };
    category "queries" { "query_log"; };
};



заранее спасибо за любую помощь

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 360
  • Учиться .... Телепатами не рождаются, ими ....
Re: bind и recursion no
« Ответ #1 : 18.06.2016 09:14:32 »
Советую спросить в рассылке sysadmins - их там больше "кучкуются" ;-)

Оффлайн yaleks

  • Мастер
  • ***
  • Сообщений: 6 242
Re: bind и recursion no
« Ответ #2 : 18.06.2016 11:42:20 »
Вам нужно чтобы извне вообще к этому DNS обращались?

Оффлайн Slavka

  • Участник
  • *
  • Сообщений: 16
Re: bind и recursion no
« Ответ #3 : 18.06.2016 12:54:57 »
Мне необходимо чтобы он отвечал только на зоны которые у него есть - например test.ru
а чтобы если запросить yandex.ru и прочее с наружи - отвечал либо молчанием либо отказом. Лучше молчанием

Оффлайн yaleks

  • Мастер
  • ***
  • Сообщений: 6 242
Re: bind и recursion no
« Ответ #4 : 18.06.2016 13:02:07 »
Мне необходимо чтобы он отвечал только на зоны которые у него есть - например test.ru
а чтобы если запросить yandex.ru и прочее с наружи - отвечал либо молчанием либо отказом. Лучше молчанием
ну так это просто - http://samag.ru/archive/article/771

Оффлайн Slavka

  • Участник
  • *
  • Сообщений: 16
Re: bind и recursion no
« Ответ #5 : 18.06.2016 13:41:52 »
такой конфиг я тоже собирал - вот что было

acl "internals" { 172.16.0.0/22; 172.72.10.0/24; 172.27.72.0/24; 172.2.2.0/24; 172.23.45.0/24;  10.0.0.0/8; 127.0.0.1/32; };

options {
version "unknown";
directory "/zone";
pid-file "";
dump-file "/var/run/named_dump.db";
statistics-file "/var/run/named.stats";
recursing-file "/var/run/recursing";

include "/etc/resolvconf-options.conf";


};




// Объявляем вид – internal зоны для внутренней сети

view "internal" {
    // Этот вид разрешено просматривать только внутренним клиентам
    match-clients { "internals"; };
    // Наш сервер рекурсивен для внутренних клиентов, сам будет узнавать адрес для клиента
    recursion yes;


include "/etc/ddns.conf";
include "/etc/rfc1912.conf";
include "/etc/rfc1918.conf";
};


view "external" {
 // К этому виду имеют доступ все
     match-clients {"any"; };
 // Наш сервер не рекурсивен для Интернета
    allow-recursion {  internals; };
     
     
include "/etc/ddns.conf";
recursion no;
};

результат тот же - мы отправляем наружу информацию о корневых серверах .. т.е. ответ получается достаточно большой и не попадает в securyty.log ( со словом denied)




Оффлайн Slavka

  • Участник
  • *
  • Сообщений: 16
Re: bind и recursion no
« Ответ #6 : 18.06.2016 13:46:58 »
вчера даже начал делать черный список айпишников .. от безысходности -
blackhole {
x.x.x.x;
};

вбил сразу порядка 120-150  айпишников.. 
через пару часов были новые айпишники и снова нас мучили (((
и трафик бешеный создается и нагрузка на named сейчас 30-40% .. помойму ядро полностью 1 сожрал..

Оффлайн yaleks

  • Мастер
  • ***
  • Сообщений: 6 242
Re: bind и recursion no
« Ответ #7 : 18.06.2016 14:34:29 »
для вас наверно без splitdns подойдет

acl "localnet" {
                127.0.0.1/8;
                192.168.0.0/16;
               };

options {
        directory "/var/bind";


        auth-nxdomain no;    # conform to RFC1035

        listen-on { any; };

        allow-query { any; };
        allow-recursion { "localnet"; };

        pid-file "/var/run/named/named.pid";
};


zone "." IN {
        type hint;
        file "/var/bind/root.cache";
};

zone "localhost" IN {
        type master;
        file "pri/localhost.zone";
        allow-update { none; };
        notify no;
};

zone "127.in-addr.arpa" IN {
        type master;
        file "pri/127.zone";
        allow-update { none; };
        notify no;
};

zone "SOMESITE.ru" IN {
        type master;
        file "pri/somesite.ru.zone";
        allow-update { none; };
        allow-transfer { localnet; };
        notify yes;
};
zone "officenet.lcl" {
        type master;
        file "pri/officenet.lcl.zone";
        allow-update { key rndc-key; };
        allow-query { "localnet"; };
        notify no;
};
zone "0.168.192.in-addr.arpa" {
        type master;
        file "pri/0.168.192.zone";
        allow-update { key rndc-key; };
        allow-query { "localnet"; };
        notify no;
};


Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 351
Re: bind и recursion no
« Ответ #8 : 18.06.2016 15:29:23 »
recursion no;
allow-recursion { internals; };
allow-recursion, как раз, задаёт список, кому можно выполнять рекурсивные запросы. Этого достаточно. Но если у Вас был DNS, который позволял рекурсивные запросы делать кому угодно, и Вас нашли боты, то это надолго теперь. Долбиться будут постоянно.

Bind в p7 и выше поддерживает RRL: http://bugzilla.altlinux.org/30398
Ещё вот размышления на тему: http://bugzilla.altlinux.org/29572

Оффлайн Slavka

  • Участник
  • *
  • Сообщений: 16
Re: bind и recursion no
« Ответ #9 : 18.06.2016 19:14:55 »
allow-recursion, как раз, задаёт список, кому можно выполнять рекурсивные запросы. Этого достаточно. Но если у Вас был DNS, который позволял рекурсивные запросы делать кому угодно, и Вас нашли боты, то это надолго теперь. Долбиться будут постоянно.
ну это понятно что надолго - будем терпеть ..
однако я не понимаю почему при allow-recursion только на определенные сети он всеравно выдает во внешний мир список корневых днс вместо того чтобы сказать
*** ns.xxx.ru can't find ya.ru: Query refused
он отрабатывает все запросы ((   

Оффлайн Slavka

  • Участник
  • *
  • Сообщений: 16
Re: bind и recursion no
« Ответ #10 : 18.06.2016 20:49:59 »
Проблема решена  ВСЕМ СПАСИБО ЗА ПОМОЩЬ - на другом форуме подсказали вот такой вариант решения
options {
      allow-query { 192.168.0.0/24; localhost; };
};

zone "extdomain.tld" {
      allow-query { any; };
};

zone "0.168.192.in-addr.arpa" {
      allow-query { any; };
};

я не знал что аллов квери можно использовать так ((

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 351
Re: bind и recursion no
« Ответ #11 : 19.06.2016 00:07:02 »
однако я не понимаю почему при allow-recursion только на определенные сети он всеравно выдает во внешний мир список корневых днс
Я тоже не понимаю. У меня не выдаёт, когда я делаю зарос, откуда нельзя:
$ host -v www.ru ns1.kraft-s.net
Trying "www.ru"
Using domain server:
Name: ns1.kraft-s.net
Address: 213.156.192.1#53
Aliases:

Host www.ru not found: 5(REFUSED)
Received 24 bytes from 213.156.192.1#53 in 9 ms

Значит, что-то таки где-то есть в конфиге.

Оффлайн Slavka

  • Участник
  • *
  • Сообщений: 16
Re: bind и recursion no
« Ответ #12 : 19.06.2016 09:05:25 »
возможно это от версии бинда зависит - у нас 9.3.6-P1
я вчера пошел сложным путем - создал пустой новый конфиг .. все что там было это named.conf с логированием .. и options.conf с recursion no
и он опять запел свою песню с корневыми днсами. так что не в конфиге дело ((

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 351
Re: bind и recursion no
« Ответ #13 : 19.06.2016 11:50:47 »
возможно это от версии бинда зависит - у нас 9.3.6-P1
Проверить не на чем сейчас. Но 9.3.x у нас стояла долго, года с 2005-ого, именно 9.3.6 тоже должна была поработать какое-то время:
http://packages.altlinux.org/en/Sisyphus/srpms/bind/changelog

Вроде бы, всегда было "REFUSED", с тех пор, как DNS Amplification придумали и начали эксплуатировать.