comp1 323.111.200.1
www 323.111.200.2
Но ответ мог быть и таким:
[server.com]
Can't list domain server.com: Query refused
Чтобы разрешить передачу зоны определенным узлам (а, значит, запретить всем остальным), в файле конфигурации DNS-сервера применяется директива allow-transfer
. В следующем примере трансфер зоны разрешен узлам 10.1.1.1 и 10.1.2.1, то есть все остальные узлы в ответ на запрос nslookup ls получат ответ «Query refused»:options {
allow-transfer {
10.1.1.1;
10.1.2.1;
};
};
Вторичный сервер DNS не передает никакой информации о зоне, поэтому обязательно укажите следующую строку в его файле конфигурации (в секции options):
allow-transfer { none; }
13.7. Оптимизация настроек сервера DNS
Как любой хороший администратор, вы хотите, чтобы ваш сервер DNS быстро обслуживал запросы клиентов. Но к вашему серверу могут подключаться пользователи не из вашей сети, а, например, из сети конкурирующего провайдера. Тогда ваш сервер будет обслуживать «чужих» клиентов. Непорядок! Директива allow-query
позволяет указать адреса узлов и сетей, которым можно использовать наш сервер DNS:allow-query { 192.168.1.0/24; localhost; };
В данном примере мы позволяем использовать наш сервер узлам из сети 192.168.1.0 и узлу localhost
localhost
:allow-recursion { 192.168.1.0/24; localhost; };
Обычно взлом любой сети начинается со сбора информации — о структуре сети, об установленном программном обеспечении и его версиях и т.п. Мы можем заставить сервер DNS не сообщать номер своей версии, а выдавать произвольное сообщение:
version "Made in USSR";
Все перечисленные директивы должны быть указаны в секции options файла конфигурации /etc/named.conf:
options {
allow-query { 192.168.1.0/24; localhost; };
allow-recursion { 192.168.1.0/24; localhost; };
allow-transfer { 10.1.1.1; 10.1.2.1; };
version "Made in USSR";
}
13.8. Защита сервера DNS
13.8.1. Настройка и запуск DNS-сервера в chroot-окружении
Из соображений безопасности рекомендуется запускать все сетевые сервисы в так называемом chroot-окружении (change root). Это файловая система, повторяющая структуру корневой файловой системы, но содержащая только те файлы, которые необходимы для запуска нашего сетевого сервиса. Взломав сетевой сервис и получив доступ к корневой файловой системе, злоумышленник не сможет повредить всей системе в целом, поскольку он получит доступ только к файлам данного сервиса. Некоторые сетевые службы не могут работать в chroot-окружении. BIND — может, и сейчас я покажу, как это организовать.
Не нужно создавать отдельный раздел на диске для каждого сетевого сервиса: нужно только создать каталог, например, root-dns
root-dns
, который станет каталогом /, имеются все необходимые файлы для работы BIND, то для сервиса запуск и работа в chroot-окружении будут совершенно прозрачными.Сразу нужно оговорить, что настраивать chroot-окружение мы будем для девятой версии BIND, поскольку это значительно проще, чем для восьмой версии. В отличие от восьмой версии, где для настройки chroot-окружения нужно было копировать все бинарные файлы или библиотеки, необходимые для запуска BIND, для работы девятой версии достаточно скопировать только файлы конфигурации и зон, обслуживаемых сервером.
Создайте каталоги корневой файловой системы сервера DNS:
# mkdir -p /root-dns
# mkdir -p /root-dns/etc
# mkdir -p /root-dns/var/run/named
# mkdir -p /root-dns/var/named
Остановите сервер DNS, если он запущен:
# service named stop
Переместите файл конфигурации, файлы зон и файл /etc/localtime
/root-dns
:# mv /etc/named.conf /root-dns/etc/
# mv /var/named/* /root-dns/var/named/
# chown named.named /chroot/etc/named.conf
# chown -R named.named /root-dns/var/named/*
Защитите от редактирования и удаления файл конфигурации:
# chattr +i /root-dns/etc/named.conf