Здравствуйте! Воюю весь вечер, не могу понять. Прошу помощи.
На сервере:
# nslookup ya.ru xxx.xxx.xxx.xxx
Server: xxx.xxx.xxx.xxx
Address: xxx.xxx.xxx.xxx#53Non-authoritative answer:
Name: ya.ru
Address: 213.180.204.8На клиенте:
nslookup ya.ru xxx.xxx.xxx.xxx
Server: xxx.xxx.xxx.xxx
Address: xxx.xxx.xxx.xxx#53** server can't find ya.ru: REFUSED
xxx.xxx.xxx.xxx - IP моего сервера
Изначально всё работало. Потом немного поигрался с зонами и привет. Вернул как было - результат тот же. Как это лечить? Подскажите, люди добрые!
читай про allow-recursion в доке bind
>читай про allow-recursion в доке bindЧЕЛОВЕЧИЩЕ!!!!! БОЛЬШОЕ СПАСИБО!!!! Добавил строчки:
allow-recursion { any; };
allow-query { any; };
allow-query-cache { any; };
и всё заработало :-)
>>читай про allow-recursion в доке bindдобавлю - читай внимательно и думай много!
>ЧЕЛОВЕЧИЩЕ!!!!! БОЛЬШОЕ СПАСИБО!!!! Добавил строчки:
> allow-recursion { any; };
> allow-query { any; };
> allow-query-cache { any; };"any" тут очень зря!!!
>и всё заработало :-)
>ЧЕЛОВЕЧИЩЕ!!!!! БОЛЬШОЕ СПАСИБО!!!! Добавил строчки:
> allow-recursion { any; };Тогда уж сразу полный доступ к серваку открывай для всех... чего мелочиться то :)
Первый шаг верный. Разрешили всем и проверили, что проблема была в этом. Теперь надо сделать второй шаг - максимально ограничить рекурсию. Вместо any в allow-recursion поставьте список сетей для которых разрешаем рекурсию. allow-query трогать не надо, этот параметр отвечает за отдачу своих зон миру, так что any там вполне подходит.
IMHO, ничего страшного в обработке чужих рекурсивных запросов нет. Люди редко этим злоупотребляют, а самому может иногда пригодиться. А тем, кто наглеет, при желании можно устроить массу сюрпризов.
>IMHO, ничего страшного в обработке чужих рекурсивных запросов нет. Люди редко этим
>злоупотребляют, а самому может иногда пригодиться. А тем, кто наглеет, при
>желании можно устроить массу сюрпризов.Также раньше говорили про открытые релеи.
ССЗБ.http://isc.sans.org/diary.html?storyid=5713
google://"query (cache) './NS/IN' denied"
и т д.
надеюсь, поймете принцип.
>[оверквотинг удален]
>
>ССЗБ.
>
>http://isc.sans.org/diary.html?storyid=5713
>
>google://"query (cache) './NS/IN' denied"
>
>и т д.
>
>надеюсь, поймете принцип.также человек видо никогда не слышал про отравление кеша и прочие прелести ДНС
Я говорил про клиентов, которые используют ваш сервер для обычных нужд, но без вашего разрешения. А с атаками можно бороться другими методами.
Связи с релеями вообще не вижу.
>Я говорил про клиентов, которые используют ваш сервер для обычных нужд, но
>без вашего разрешения. А с атаками можно бороться другими методами.
>Связи с релеями вообще не вижу.товарисч! зачем открывать а потом боротся когда можно стандартно обезопасится стандартными же средствами и жить спокойно? вообще я много видел таких мега админов, у которых принцип по жизни: както настроил, както работае ну и фиг с ним. ничего хорошего из этого никогда не выходило. так что не надо давать тут бредовых советотов типо ниче страшного, пусть пользуют - ибо вы пропагандируете долпаепство и ничего более. надо всегда разбиратся досконально и делать все по уму..
а по поводу атак - гораздо легче осуществить отравление кеша в случае открытой рекурсии.
>а по поводу атак - гораздо легче осуществить отравление кеша в случае открытой рекурсииЧем же это проще?
>>а по поводу атак - гораздо легче осуществить отравление кеша в случае открытой рекурсии
>
>Чем же это проще?тем что атакующий знает что запрашивает и как следствие откуда придет ответ
И что вам это даст, если вы не знаете значение ID в заголовке запроса сервера, обрабатывающего рекурсивный запрос злоумышленника? А это 16 бит. Надеетесь угадать их?
С другой стороны, если у вас есть возможность читать трафик, то и отключенная рекурсия не спасет.
>И что вам это даст, если вы не знаете значение ID в
>заголовке запроса сервера, обрабатывающего рекурсивный запрос злоумышленника? А это 16 бит.
>Надеетесь угадать их?
>С другой стороны, если у вас есть возможность читать трафик, то и
>отключенная рекурсия не спасет.1) интресно откуда берутся эти способы и более того кемто удачно осуществляются?
В любом случае правило всегда одно и для всех (для всех здраво мыслящих) - если нет необходимости в сервисе, его следует отключить или ограничить по возможности.
2) изначально вопрос был не в этом - вам хочется раздуть флейм? вам нечем занятся?
>вам хочется раздуть флейм?
>вам нечем занятся?Много приходится работать с DNS, и иметь под рукой еще один сервер, способный помочь в отладке, обработав рекусрсивный запрос, бывает очень удобно. Иногда знакомым даю попользоваться, когда у них проблемы с собственным сервером. Не исключено, что я все делаю неправильно, так вы объясните, приведите аргументы. Пока что, у вас это не очень получается.
А вот вам лично хочу порекомендовать не хамить незнакомым мужчинам.
>>вам хочется раздуть флейм?
>>вам нечем занятся?
>
>Много приходится работать с DNS, и иметь под рукой еще один сервер,
>способный помочь в отладке, обработав рекусрсивный запрос, бывает очень удобно. Иногда
>знакомым даю попользоваться, когда у них проблемы с собственным сервером. Не
>исключено, что я все делаю неправильно, так вы объясните, приведите аргументы.
>Пока что, у вас это не очень получается.
>
>А вот вам лично хочу порекомендовать не хамить незнакомым мужчинам.много работаете с ДНС? что с ним работать? - достаточно один раз разобраться - практически все делается шаблонно. исключение составляют случаи хитрого резолва с использованием видов - но и там все прозрачно, ну и пожалуй шифрованный трансфер зон - но его практически никто не юзает.
по поводу правильности - еще раз повторяю, если вы не пров с бесплатным неограниченным каналом то оставлять днс открытым - это бред: если вы знаете что такое рекурсивный запрос (по крайней мере вы делаете вид что знаете), то вы должны понимать то, что один запрос клиента (рекурсивный) скажем для домена второго уровня - генерит как минимум три запроса на другие сервере - те трафик клиента умножается на 3 МИНИМУМ и идет вам. что имеем - имеем необоснованное попадалово на трафе, нагрузке канали и все из этого вытекающие.
также умные люди могут подцепить вам почтовик на сервак чтобы он проверял реверсы - видели когданибудь количество запросов реверсов с почторя скажем в 1000 ящиков?
ну и на последок - вашим серваком могут пользоваться добрые спамеры, что они собственно и делают, отыскивая серваки и юзая их - думаю вы представляете объем спама и соотв количество запросов на ДНС.если вам хочется продолжать этот тупой флейм - то для начала приведите хотябы одну разумную причину оставлять сервак открытым, ибо я вам противоположных привел кучу.
>умные люди могут подцепить вам почтовик на сервак чтобы он проверял реверсыВот это будет настоящая дыра в безопасности. Но не в моей, а дыра в безопасности этих "умных" людей. То есть, они откроют бескрайнее поле для фантазий, и только моя врожденная порядочность (вы, ведь, в нее верите, да?) будет являться залогом их спокойствия.
>вашим серваком могут пользоваться добрые спамеры, что они собственно и делают
А вот логи (кстати, в BIND чрезвычайно мощная система ведения логов) говорят, что никто мой DNS-сервер кроме тех, кому положено, не использует, хотя на нем включена рекурсия. И я именно с этого и начал разговор. Потому не стоило высмеивать человека, открывшего рекурсию, с тем же энтузиазмом и ехидством, с каким бы вы издевались над админом, открывшим релей или установившим на ssh пароль qwerty, особенно, если вы сами не очень понимаете последствия.
>много работаете с ДНС? что с ним работать?
Приходится, знаете ли. Такая профессия.
>если вам хочется продолжать этот тупой флейм - то для начала приведите хотябы одну >разумную причину оставлять сервак открытым, ибо я вам противоположных привел кучу.как насчет этого? )
говори по делу а не лей воду
>>если вам хочется продолжать этот тупой флейм - то для начала приведите хотябы одну >разумную причину оставлять сервак открытым, ибо я вам противоположных привел кучу.Ваша куча дурно пахнет, вы предложили доверить незнакомой стороне разрешение обратной зоны. А значит, все ваши службы, использующие этот механизм, могут быть скомпрометированы. Для начала, под удар попадает сама почта. Может быть, это действительно ваш директор вас уволил, а может, это я так пошутил, пребывая в приподнятом настроении после чтения ваших постов.
Я вам привел причину - мне иногда это бывает удобно.
С другой стороны, я не услышал от вас ни о какой реальной опасности. Не на уровне абстрактных измышлений, а о конкретной технической опасности. Вкупе с анализом логов и автоматически устанавливаемых правил фаервола, меня это не побуждает отказаться от удобства.
>>>если вам хочется продолжать этот тупой флейм - то для начала приведите хотябы одну >разумную причину оставлять сервак открытым, ибо я вам противоположных привел кучу.Весенне обострение в разгаре!
>Ваша куча дурно пахнет, вы предложили доверить незнакомой стороне разрешение обратной зоны.Это не я доверил, это меня с открытым серваком поимели на трафик.
>А значит, все ваши службы, использующие этот механизм, могут быть скомпрометированы.
>Для начала, под удар попадает сама почта. Может быть, это действительно
>ваш директор вас уволил, а может, это я так пошутил, пребывая
>в приподнятом настроении после чтения ваших постов.это мой пример - он был приведел в диаметрально противоположном контексте
но уж если вам так хочется - то какии в жопу компрометации сервисов когда вас за ночь поимеют на пару гиг трафа?>Я вам привел причину - мне иногда это бывает удобно.
вы мне привели следствие мой причины - не к месту и не в тему
>С другой стороны, я не услышал от вас ни о какой реальной
>опасности. Не на уровне абстрактных измышлений, а о конкретной технической опасности.для особо одаренных я еще раз повторю - первая и главная опасность это ПОПАДАЛОВА НА ТРАФИК - постарайтесь запомнить уже
>Вкупе с анализом логов и автоматически устанавливаемых правил фаервола, меня это
>не побуждает отказаться от удобства.плять родой - ты хоть раз видел квери лог днс сервака который резолвит 1000-2000 рекурсивных запросов В СЕКУНДУ? и его размер скажем за сутки? Я этот лог включаю только анализа атак и при прочих глюках.
Проанализировать лог за пару часов у тебя уйдет пара дней.вообще странный подход к обсуждению - обсуждать вопрос не потеме при этом переворачивая ответы своих опонентов.
Мне становится тяжело вас понимать, к тому же вы опять перестали следить за лексиконом.>для особо одаренных я еще раз повторю - первая и главная опасность
>это ПОПАДАЛОВА НА ТРАФИК - постарайтесь запомнить ужеА вы, в свою очередь, постарайтесь понять, что в случае, если мне на 53 порт извне станет приходить масса докучающих пакеты, то через очень короткое время они начнут дропиться фаерволом.
>ты хоть раз видел квери лог днс сервака который
>резолвит 1000-2000 рекурсивных запросов В СЕКУНДУ? и его размер скажем за
>сутки?Про логи позже отпишусь, сейчас не до сук.
>это ПОПАДАЛОВА НА ТРАФИК - постарайтесь запомнить ужеЯ уже приводил листинг netstat'а, который показывает, что отключение рекурсии не решает проблемы трафика. Вы его не видели или не поняли?
Извините, ошибся. Не netstat'а, nslookup'а.
>Извините, ошибся. Не netstat'а, nslookup'а.Не рекурсией единой...
Сервер не должен отвечать на подобные запросы.Т.е. не должен отвечать на запрос, если он не является держателем зоны.
>Сервер не должен отвечать на подобные запросы.
>
>Т.е. не должен отвечать на запрос, если он не является держателем зоны.Мне кажется, вы ошибаетесь. Это был вывод nslookupa при таких настройках bind
options {
recursion no;
fetch-glue no;
};
Обратите внимание, что и рекурсия отключена, и стоит запрет на дополнительный раздел ответа. Плюс я "продул" ему кеш. Чего проще - проверьте у себя. Хотя на мой взгляд, тут все работает логично, а проблема в вашем недопонимании основ процесса.
>[оверквотинг удален]
>Мне кажется, вы ошибаетесь. Это был вывод nslookupa при таких настройках bind
>
>options {
> recursion no;
> fetch-glue no;
>};
>Обратите внимание, что и рекурсия отключена, и стоит запрет на дополнительный раздел
>ответа. Плюс я "продул" ему кеш. Чего проще - проверьте у
>себя. Хотя на мой взгляд, тут все работает логично, а проблема
>в вашем недопонимании основ процесса.ну, насчет логично - я не соглашусь. Недопонимание основ процесса.... хм, опять же, не соглашусь :) Я и не утверждал что ответ на запрос к . всегда рекурсивен.
В общем, по результатам настройки должно быть так (bind 9.5.1):
$ host -t NS . <my.srv>
Using domain server:
Name: <my.srv>
Address: <my.srv.ip>#53
Aliases:Host . not found: 5(REFUSED)
Но бывает по-другому, рассмотрим все три случая:$ dig . NS @<my.srv.ip>
; <<>> DiG 9.3.3 <<>> . NS @<my.srv.ip>
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 50526
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0;; QUESTION SECTION:
;. IN NS;; Query time: 61 msec
;; SERVER: <my.srv.ip>#53(<my.srv.ip>)
;; WHEN: Sat Mar 14 11:08:41 2009
;; MSG SIZE rcvd: 17
всё ок.---
хотя бывает так (9.3.4, внутренний тестовый сервер):
$ dig . NS @<test.srv.ip>
; <<>> DiG 9.3.3 <<>> . NS @<test.srv.ip>
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14547
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 13, ADDITIONAL: 0;; QUESTION SECTION:
;. IN NS;; AUTHORITY SECTION:
. 3600000 IN NS J.ROOT-SERVERS.NET.
. 3600000 IN NS K.ROOT-SERVERS.NET.
. 3600000 IN NS L.ROOT-SERVERS.NET.
. 3600000 IN NS M.ROOT-SERVERS.NET.
. 3600000 IN NS A.ROOT-SERVERS.NET.
. 3600000 IN NS B.ROOT-SERVERS.NET.
. 3600000 IN NS C.ROOT-SERVERS.NET.
. 3600000 IN NS D.ROOT-SERVERS.NET.
. 3600000 IN NS E.ROOT-SERVERS.NET.
. 3600000 IN NS F.ROOT-SERVERS.NET.
. 3600000 IN NS G.ROOT-SERVERS.NET.
. 3600000 IN NS H.ROOT-SERVERS.NET.
. 3600000 IN NS I.ROOT-SERVERS.NET.;; Query time: 75 msec
;; SERVER: <test.srv.ip>#53(<test.srv.ip>)
;; WHEN: Sat Mar 14 11:12:20 2009
;; MSG SIZE rcvd: 228--
в худшем варианте это (bind 9.3.3, обновить его чтоли :):$ dig . NS @my.badsrv.ip
; <<>> DiG 9.3.3 <<>> . NS @my.badsrv.ip
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17138
;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 14;; QUESTION SECTION:
;. IN NS;; ANSWER SECTION:
. 518400 IN NS A.ROOT-SERVERS.NET.
. 518400 IN NS B.ROOT-SERVERS.NET.
. 518400 IN NS C.ROOT-SERVERS.NET.
. 518400 IN NS D.ROOT-SERVERS.NET.
. 518400 IN NS E.ROOT-SERVERS.NET.
. 518400 IN NS F.ROOT-SERVERS.NET.
. 518400 IN NS G.ROOT-SERVERS.NET.
. 518400 IN NS H.ROOT-SERVERS.NET.
. 518400 IN NS I.ROOT-SERVERS.NET.
. 518400 IN NS J.ROOT-SERVERS.NET.
. 518400 IN NS K.ROOT-SERVERS.NET.
. 518400 IN NS L.ROOT-SERVERS.NET.
. 518400 IN NS M.ROOT-SERVERS.NET.;; ADDITIONAL SECTION:
A.ROOT-SERVERS.NET. 231237 IN A 198.41.0.4
A.ROOT-SERVERS.NET. 231237 IN AAAA 2001:503:ba3e::2:30
B.ROOT-SERVERS.NET. 231237 IN A 192.228.79.201
C.ROOT-SERVERS.NET. 231237 IN A 192.33.4.12
D.ROOT-SERVERS.NET. 231237 IN A 128.8.10.90
E.ROOT-SERVERS.NET. 231237 IN A 192.203.230.10
F.ROOT-SERVERS.NET. 231237 IN A 192.5.5.241
F.ROOT-SERVERS.NET. 231237 IN AAAA 2001:500:2f::f
G.ROOT-SERVERS.NET. 231237 IN A 192.112.36.4
H.ROOT-SERVERS.NET. 231237 IN A 128.63.2.53
H.ROOT-SERVERS.NET. 231237 IN AAAA 2001:500:1::803f:235
I.ROOT-SERVERS.NET. 231237 IN A 192.36.148.17
J.ROOT-SERVERS.NET. 231237 IN A 192.58.128.30
J.ROOT-SERVERS.NET. 231237 IN AAAA 2001:503:c27::2:30;; Query time: 228 msec
;; SERVER: my.badsrv.ip#53(my.badsrv.ip)
;; WHEN: Sat Mar 14 11:09:36 2009
;; MSG SIZE rcvd: 500
---размер запроса: 45 байт, размеры ответов: 17, 228, 500 байт в каждом из случаев соответственно. (усиление входящего DOS траффика в 5 и 11 раз в случае некорректной настройки)
Want to be DDOS amplifier ? ... you are welcome :)
cirus неадекватен, продолжать глупо
>cirus неадекватен, продолжать глупоПо моему вопросу в http://www.opennet.me/openforum/vsluhforumID1/84484.html чтонть можно подсказать ?
>Я и не утверждал что ответ на
>запрос к . всегда рекурсивен.Не понял, что именно вы имеете в виду, флаг RD в заголовке запроса был снят, и версия bind - 9.4.3 Общий принцип мне видится так - есть у сервера запрашиваемая инфа, он ее отдает. При этом не имеет значения был ли запрос на рекурсию или нет. Я ранее немного схитрил, указав fetch-glue для bind9, который никогда не ищет "связующие" данные самостоятельно. Эта настройка была актуальна для bind8. Попробуйте, например, запросить данные, которые имеются в кеше при выключенной рекурсии.
Поясню. Если вы нерекурсивно запросите RR-записи по зоне ru. (которые наверняка имеются в вашем кеше), то получите и список NS-серверов (хотя ваш сервер не обладает по ним авторитетом), и адресные записи этих серверов, хотя серверу и запрещено их искать. Но "не искать", не означает "не отдавать".
>А вот логи (кстати, в BIND чрезвычайно мощная система ведения логов) говорят,
>что никто мой DNS-сервер кроме тех, кому положено, не использует, хотя
>на нем включена рекурсия. И я именно с этого и началЭто называется "принцип неуловимого Джо". По моему опыту как минимум треть сайтов на пыхе дырява, но ломают значительно меньшее количество и все по тому же принципу. Так что если вас еще не трахнули, то это не повод выставлять в инет голый зад и уж тем более не повод советовать подобные глупости другим.
>надеюсь, поймете принцип.Не понял, какое отношение это имеет к рекурсии?
>>надеюсь, поймете принцип.
>
>Не понял, какое отношение это имеет к рекурсии?тем, что можно послать фейковый запрос, на который пойдет достаточно большой по объему ответ.
т.о. ваш днс сервер будет использован как "усилитель" для проведения DDOS атаки.
А разве с нерекурсивным запросом будет как-то иначе?
>А разве с нерекурсивным запросом будет как-то иначе?он будет отдавать только записи для своих зон, ответы по идее будут иметь меньший размер.
Set options:
novc nodebug nod2
search norecurse
timeout = 0 retry = 3 port = 53
querytype = ns class = IN
srchlist =
> .Server: 192.168.5.33
Address: 192.168.5.33#53Non-authoritative answer:
. nameserver = G.ROOT-SERVERS.NET.
. nameserver = F.ROOT-SERVERS.NET.
. nameserver = K.ROOT-SERVERS.NET.
. nameserver = A.ROOT-SERVERS.NET.
. nameserver = J.ROOT-SERVERS.NET.
. nameserver = B.ROOT-SERVERS.NET.
. nameserver = D.ROOT-SERVERS.NET.
. nameserver = I.ROOT-SERVERS.NET.
. nameserver = C.ROOT-SERVERS.NET.
. nameserver = M.ROOT-SERVERS.NET.
. nameserver = L.ROOT-SERVERS.NET.
. nameserver = H.ROOT-SERVERS.NET.
. nameserver = E.ROOT-SERVERS.NET.Authoritative answers can be found from:
J.ROOT-SERVERS.NET internet address = 192.58.128.30
J.ROOT-SERVERS.NET has AAAA address 2001:503:c27::2:30
>
Большое спасибо за ответы. Намотал на ус и всё поправил.