13.8. Защита сервера DNS

13.8. Защита сервера DNS

13.8.1. Настройка и запуск DNS-сервера в chroot-окружении

Из соображений безопасности рекомендуется запускать все сетевые сервисы в так называемом chroot-окружении (change root). Это файловая система, повторяющая структуру корневой файловой системы, но содержащая только те файлы, которые необходимы для запуска нашего сетевого сервиса. Взломав сетевой сервис и получив доступ к корневой файловой системе, злоумышленник не сможет повредить всей системе в целом, поскольку он получит доступ только к файлам данного сервиса. Некоторые сетевые службы не могут работать в chroot-окружении. BIND — может, и сейчас я покажу, как это организовать.

Не нужно создавать отдельный раздел на диске для каждого сетевого сервиса: нужно только создать каталог, например, root-dns, в который вы скопируете все файлы, необходимые для запуска сервера DNS. Потом, при запуске сервиса, будет выполнена команда chroot для этого сервиса, которая подменит файловую систему. А так как в каталоге 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 (он нужен для корректной работы сервера DNS со временем) в каталог /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

Добавьте в файл /etc/sysconfig/named строку:

ROOTDIR="/root-dns/"

Все, теперь можно запустить сервер named:

# service named start

Проверьте, все ли сделано правильно:

$ ps -ax | grep named.

5380 ? S 0:00 named -u named -t /root-dns/

5381 ? S 0:00 named -u named -t /root-dns/

5382 ? S 0:00 named -u named -t /root-dns/

Данный текст является ознакомительным фрагментом.