The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Bind. Drop вместо refuse"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (DNS / Linux)
Изначальное сообщение [ Отслеживать ]

"Bind. Drop вместо refuse"  +/
Сообщение от Fullmetal8ender (ok), 30-Окт-12, 16:05 
Здравствуйте!
Подскажите, можно ли настроить bind игнорировать запросы?
Сейчас использую allow-query { mynet; }
но на все остальные запросы он отвечает REFUSE. А хотелось бы что бы он их игнорировал.
Для этой цели подходит blackhole, но если загнать туда все адреса, например !mynet - то он перестанет работать вобще, тк не будет посылать никаких запросов никому, кто не входит в mynet.
Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "Bind. Drop вместо refuse"  +/
Сообщение от Pahanivo (ok), 30-Окт-12, 17:48 
> Здравствуйте!
> Подскажите, можно ли настроить bind игнорировать запросы?
> Сейчас использую allow-query { mynet; }
> но на все остальные запросы он отвечает REFUSE. А хотелось бы что
> бы он их игнорировал.
> Для этой цели подходит blackhole, но если загнать туда все адреса, например
> !mynet - то он перестанет работать вобще, тк не будет посылать
> никаких запросов никому, кто не входит в mynet.

blackhole Specifies a list of addresses that the server will not accept queries from or use to resolve a
query. Queries from these addresses will not be responded to. The default is none.

ну собстна все верно :)
чем плох ответ refuse?

попробуй прописать форвадерами днс провайдера, включи форвард онли, исключи форвардеров из блекхоул

есть еще и фаревол

Ответить | Правка | Наверх | Cообщить модератору

2. "Bind. Drop вместо refuse"  +/
Сообщение от Fullmetal8ender (ok), 31-Окт-12, 08:30 
Спасибо за ответ, но этот вариант не совсем подходит.
ДНС сервер отвечает за несколько зон, поэтому он должен отвечать на запросы извне.
Для каждой зоны прописано allow-query { any; };
А в опциях указано allow-query {  mynet; }
Таким образом он отвечает на запросы для зон, за которые отвечает сам, и на рекурсивные запросы с моих сетей. Всем остальным он отвечает refuse.
Но я вижу что часто к серверу обращаются с разными рекурсивными запросами. Видимо тк он долгое время был открыт кто-то им воспользовался. Еще периодически подвергаюсь атакам типа запрос зоны ANY/ripe.net с дикой частотой.
Сейчас блокирую такие запросы фаерволом. Можно настроить fail2ban, но мне кажется было бы проще всего что бы он дропал такие запросы.
Ответ refuse по моему плох тем, что судя по логам его игнорируют и продолжают слать запросы, а сервер на ответ тратит свои ресурсы.

Ответить | Правка | Наверх | Cообщить модератору

3. "Bind. Drop вместо refuse"  +/
Сообщение от Pahanivo (ok), 31-Окт-12, 09:02 
> Спасибо за ответ, но этот вариант не совсем подходит.
> ДНС сервер отвечает за несколько зон, поэтому он должен отвечать на запросы
> извне.

т.е. ты пытаешься одновременно решить две абсолютно противоположные задачи 1) держать авторитативный сервер (т.е. он должен быть доступен для всех) 2) сделать blackhole (закрыть для всех)
пора бы уже это понять

> Для каждой зоны прописано allow-query { any; };
> А в опциях указано allow-query {  mynet; }
> Таким образом он отвечает на запросы для зон, за которые отвечает сам,
> и на рекурсивные запросы с моих сетей. Всем остальным он отвечает
> refuse.

ну дак а blackhole это глобальный параметр, и как я понимаю твои allow-query не работают

> Но я вижу что часто к серверу обращаются с разными рекурсивными запросами.
> Видимо тк он долгое время был открыт кто-то им воспользовался. Еще
> периодически подвергаюсь атакам типа запрос зоны ANY/ripe.net с дикой частотой.
> Сейчас блокирую такие запросы фаерволом. Можно настроить fail2ban, но мне кажется было
> бы проще всего что бы он дропал такие запросы.
> Ответ refuse по моему плох тем, что судя по логам его игнорируют
> и продолжают слать запросы, а сервер на ответ тратит свои ресурсы.

вариант первый - рефузить и забыть (ripe.net - это не тебя скорее ддосят а райпы, ты как усилитель используешься)
вариант второй поглумится - настраиваешь 2 view
1) для своих клиентов: нормальный для резолвинга + свои авторитативные зоны
2) для внешного мира: свои авторитативные зоны + делаешь заглушки на все широкоиспользуемые домены и отдаешь на любые запросы адресок какого нибудь порносайта.
вариант третий - лимитить пакеты на 53 UDP фареволом (bind не помню умеет сам лимитить запросы или нет)

Ответить | Правка | Наверх | Cообщить модератору

4. "Bind. Drop вместо refuse"  +/
Сообщение от PavelR (ok), 31-Окт-12, 09:08 
>[оверквотинг удален]
>> Ответ refuse по моему плох тем, что судя по логам его игнорируют
>> и продолжают слать запросы, а сервер на ответ тратит свои ресурсы.
> вариант первый - рефузить и забыть (ripe.net - это не тебя скорее
> ддосят а райпы, ты как усилитель используешься)
> вариант второй поглумится - настраиваешь 2 view
> 1) для своих клиентов: нормальный для резолвинга + свои авторитативные зоны
> 2) для внешного мира: свои авторитативные зоны + делаешь заглушки на все
> широкоиспользуемые домены и отдаешь на любые запросы адресок какого нибудь порносайта.
> вариант третий - лимитить пакеты на 53 UDP фареволом (bind не помню
> умеет сам лимитить запросы или нет)

вариант четвертый - сменить IP и хостнейм сервера, произвести коррекцию делегирования размещенных на сервере зон.

вариант пятый - сменить bind на сервер, который умеет требуемую функцию

Ответить | Правка | Наверх | Cообщить модератору

5. "Bind. Drop вместо refuse"  +/
Сообщение от Pahanivo (ok), 31-Окт-12, 09:13 
>[оверквотинг удален]
>> вариант первый - рефузить и забыть (ripe.net - это не тебя скорее
>> ддосят а райпы, ты как усилитель используешься)
>> вариант второй поглумится - настраиваешь 2 view
>> 1) для своих клиентов: нормальный для резолвинга + свои авторитативные зоны
>> 2) для внешного мира: свои авторитативные зоны + делаешь заглушки на все
>> широкоиспользуемые домены и отдаешь на любые запросы адресок какого нибудь порносайта.
>> вариант третий - лимитить пакеты на 53 UDP фареволом (bind не помню
>> умеет сам лимитить запросы или нет)
> вариант четвертый - сменить IP и хостнейм сервера, произвести коррекцию делегирования размещенных
> на сервере зон.

смысл - ботнеты которые ддосят через днс-усилители высканять хост через день, а рекурсивыные халявщики и так быстро поймут что халява кончилась ))))


Ответить | Правка | Наверх | Cообщить модератору

7. "Bind. Drop вместо refuse"  +/
Сообщение от PavelR (ok), 31-Окт-12, 09:16 
>[оверквотинг удален]
>>> вариант второй поглумится - настраиваешь 2 view
>>> 1) для своих клиентов: нормальный для резолвинга + свои авторитативные зоны
>>> 2) для внешного мира: свои авторитативные зоны + делаешь заглушки на все
>>> широкоиспользуемые домены и отдаешь на любые запросы адресок какого нибудь порносайта.
>>> вариант третий - лимитить пакеты на 53 UDP фареволом (bind не помню
>>> умеет сам лимитить запросы или нет)
>> вариант четвертый - сменить IP и хостнейм сервера, произвести коррекцию делегирования размещенных
>> на сервере зон.
> смысл - ботнеты которые ддосят через днс-усилители высканять хост через день, а
> рекурсивыные халявщики и так быстро поймут что халява кончилась ))))

ну попробуют высканить этот хост - так смысл? хост то уже не работает как усилитель.

Ответить | Правка | Наверх | Cообщить модератору

9. "Bind. Drop вместо refuse"  +/
Сообщение от PavelR (??), 07-Авг-20, 11:29 
>> смысл - ботнеты которые ддосят через днс-усилители высканять хост через день, а
>> рекурсивыные халявщики и так быстро поймут что халява кончилась ))))
> ну попробуют высканить этот хост - так смысл? хост то уже не
> работает как усилитель.

В общем после устранения проблемы ботнет продолжает слать поддельные пакеты, хотя сервер отвечает пакетами такого же размера, как и полученные.

Меня эт маленько заколебало, поэтому патч:

https://superuser.com/questions/1565547/have-bind9-drop-non-...
https://serverfault.com/questions/438515/bind-blackhole-for-...


```
--- 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
```


Проверено на 9.9, 9.10 версиях.

Ответить | Правка | Наверх | Cообщить модератору

6. "Bind. Drop вместо refuse"  +/
Сообщение от PavelR (ok), 31-Окт-12, 09:14 

> Сейчас блокирую такие запросы фаерволом. Можно настроить fail2ban, но мне кажется было
> бы проще всего что бы он дропал такие запросы.
> Ответ refuse по моему плох тем, что судя по логам его игнорируют
> и продолжают слать запросы, а сервер на ответ тратит свои ресурсы.

fail2ban может и не помочь, если используется spoofing (или как там оно по аглицки-то пишется). Поэтому же будут игнорироваться и ответы от вашего сервера.


Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

8. "Bind. Drop вместо refuse"  +/
Сообщение от Fullmetal8ender (ok), 31-Окт-12, 13:46 
> вариант третий - лимитить пакеты на 53 UDP фареволом (bind не помню умеет сам лимитить запросы или нет)

Насколько я помню - умеет. Наверное остановлюсь на этом варианте.
Спасибо за ответы.


ПС
> т.е. ты пытаешься одновременно решить две абсолютно противоположные задачи 1) держать авторитативный сервер (т.е. он должен быть доступен для всех) 2) сделать blackhole (закрыть > для всех) пора бы уже это понять

Это вовсе не противоположные вещи, тк авторитетным должен он быть только для определенных зон, а blackhole для остальных запросов. Просто я предполагал что есть такая возможность.
Кстати, вариант с двумя view тоже довольно заманчив, подумаю что с ним можно сделать.

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру