LINUX.ORG.RU

bind dns как запретить рекурсию кроме одного сайта

 ,


0

1

Вопрос, наверное простой, но чего-то не пойму как сделать.

Нужно чтоб рекурсивно разрешался только один единственный сайт.

Пробовал так:

options {        
  directory "C:\Program Files\ISC BIND 9\etc";
  recursion no;  
};

zone "yandex.ru" IN {
	type forward;
	forwarders { 8.8.8.8; };
};

Но так всё запрещается.



Последнее исправление: mildok (всего исправлений: 1)

Если так сделать нельзя - можно ли сделать так, чтобы на все имена кроме yandex.ru выдавался неверный адрес (например 1.1.1.1)?

mildok
() автор топика

directory «C:\Program Files\ISC BIND 9\etc»;

мсье знает толк в извращениях..

//лор уже не то[р]т.. где же призывное «на винфак» в первом каменте? ;)

aol ★★★★★
()
Ответ на: комментарий от aol

где же призывное «на винфак»

Что-то я прошляпил... :-)

AS ★★★★★
()
Ответ на: комментарий от AS

Не совсем понимаю как могут помочь views'ы. Попробовал так:

options {        
  directory "C:\Program Files\ISC BIND 9\etc";
  recursion no;
};

view "external" {
	match-clients { any; };
	recursion no;

	zone "yandex.ru" {
		type forward;
		forward only;
		forwarders { 8.8.8.8; };
	};
};

Но получается вообщем-то тоже самое. Ответ nslookup:

C:\Program Files\ISC BIND 9\etc>rndc reload
server reload successful

C:\Program Files\ISC BIND 9\etc>nslookup yandex.ru
╤хЁтхЁ:  UnKnown
Address:  127.0.0.1

*** UnKnown не удалось найти yandex.ru: Query refused

mildok
() автор топика
Ответ на: комментарий от mildok

Исхитрился на такое:

options {        
  directory "C:\Program Files\ISC BIND 9\etc";
  forwarders {};
  recursion yes; 
  fetch-glue no;
};

view "external" {
	match-clients { any; };
	recursion yes;

	zone "yandex.ru" {
		type forward;
		forward only;
		forwarders { 8.8.8.8; };
	};
	
};

По моему разумению - должно оно отрабатывать только для yandex.ru, для остальных сайтов не должно возвращаться ip, а оно ж возвращается....

C:\Program Files\ISC BIND 9\etc>rndc reload
server reload successful

C:\Program Files\ISC BIND 9\etc>nslookup google.ru
╤хЁтхЁ:  UnKnown
Address:  127.0.0.1

Не заслуживающий доверия ответ:
╚ь :     google.ru
Addresses:  2a00:1450:4010:c04::5e
          90.150.4.98
          90.150.4.109
          90.150.4.118
          90.150.4.119
          90.150.4.89
          90.150.4.104
          90.150.4.94
          90.150.4.103
          90.150.4.123
          90.150.4.99
          90.150.4.88
          90.150.4.113
          90.150.4.84
          90.150.4.108
          90.150.4.114
          90.150.4.93


mildok
() автор топика
Ответ на: комментарий от mildok

Злой начальника не знает ничего кроме форточеГ....

как это должно трогать постояльцев ресурса о линуксе? :)

начальнику купи винсервер и не вывёртывай себе моск. вместо доменного контроллера-то самбу под виндовс поставишь? ;)

aol ★★★★★
()
Ответ на: комментарий от aol

А что с задачей разрешать имя yandex.ru, и не разрешать другие имена только доменный контролер справится? Bind со столь сложной задачей справиться не сможет?

А по теме топика сделал такое:

options {        
  directory "C:\Program Files\ISC BIND 9\etc";
  forwarders {0.0.0.0};
  recursion no; 
  fetch-glue no;
  max-cache-size 0 ; 
  empty-zones-enable yes;
  resolver-query-timeout 2;
};

view "external" {
	match-clients { any; };
	recursion yes;

	zone "yandex.ru" {
		type forward;
		forward only;
		forwarders { 8.8.8.8; };
	};
	
};

Наверное некрасивый конфиг... Сейчас думаю как кэш и timeout сделать в bind'е более адекватными.

mildok
() автор топика
Ответ на: комментарий от mildok

В принципе, работает, только в лог валится:

09-сен-2015 11:58:25.890 general: error: socket.c:2516: unexpected error:
09-сен-2015 11:58:25.890 general: error: unable to convert errno to isc_result: 1214: Неверный формат сетевого имени.

Видимо из-за этого: forwarders {0.0.0.0;};
Можно, конечно, сделать forwarders {1.0.0.1;}, но с гугла станется аннексировать этот адрес, для своего вездесущего google-public-dns...

Также немного странно - если делаю forwarders {8.8.8.8;};, а затем:
nslookup linux.org.ru
Имя разрешается в ip, затем меняю на forwarders {0.0.0.0;};

rndc reload
И опять nslookup linux.org.ru
И адрес всё равно разрешается в ip.

Если же вместо rndc reload использовать net stop named && net start named. То всё работает как надо.

Очевидно дело в кэше... а max-cache-size 0 ; не работает =(

mildok
() автор топика
Ответ на: комментарий от mildok

Не совсем понимаю как могут помочь views'ы.

Что-то я не обратил внимания, что речь про чужие зоны ещё. Тут надо почитать документацию. Может, и нельзя так.

AS ★★★★★
()

Вообщем - bind хорошая штука, цель выполнена, вот конфиг:

options {        
  directory "C:\Program Files\ISC BIND 9\etc";
  recursion no; 
};

logging{
  channel my_log{
    file "named.log" versions 3 size 2m;
    severity info;
    print-time yes;
    print-severity yes;
    print-category yes;
  };
  
  channel queries_log{
    file "queries.log" versions 3 size 2m;
    severity info;
    print-time yes;
    print-severity yes;
    print-category yes;
  };  
  category default{
    my_log;
  };
  category queries { 
	queries_log; 
  };
};

view "external" {
	match-clients { any; };
	recursion yes;
	fetch-glue no;	
        forwarders {127.0.0.2;};	
	forward only;
	max-cache-size 0; 
	empty-zones-enable yes;
	resolver-query-timeout 2;	

	zone "yandex.ru" {
		type forward;
		forward only;
		forwarders { 8.8.8.8; 8.8.4.4; };
	};			
};

Таким образом - если кому-то нужно работать исключительно с одним единственным сайтом, и никуда больше лезть не нужно - можно разрешить его и никуда дальше не пойдёт (ибо 127.0.0.2; не существует).

А если окажется что, что-то работает некорректно можно посмотреть queries.log и куда клиент ещё долбиться и разрешить этот домен - вообщем супер.

mildok
() автор топика
Ответ на: комментарий от mildok

никуда дальше не пойдёт (ибо 127.0.0.2; не существует).

А вот тут надо подумать. Для ускорения понимания ситуации со стороны ПО, может быть, надо его сделать, и повесить туда DNS-заглушку, который будет отвечать refused на все запросы.

AS ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.