Monday, December 11th, 2017

Журналирование событий и обеспечение безопасности DNS сервера

Published on Март 30, 2009 by   ·   Комментариев нет

Введение ——— Bind — это наиболее популярная реализация DNS сервера. Данный пакет входит в состав абсолютного большинства unix систем. Сайт проекта BIND www.isc.org. DNS сервер BIND уже есть в вашем дистрибутиве. Проверьте установленны ли пакеты bind и bind-chroot командами:

 rpm -q bind rpm -q bind-chroot.

В данном руководстве указаны опции которые необходимо указать DNS серверу для обеспечения безопасности его функционирования. Журналирование событий Для своевременного реагирования на проблемы связанные с функционированием DNS сервера крайне важно вести журналирование событий Bind. Пакет Bind предоставляет администратору обширные возможности по настройке системы регистрации событий. Т.к. в стандартной конфигурации named настроен без включенной системы логирования и работает named в chroot окружении, то вам необходимо сделать некоторые дополнительные действия: В каталоге /var/named/chrrot/var создать каталог log в котором создайте каталог named. Создайте в каталоге /var/named/chroot/var/log/named файлы: xfer.log,lamers.log,conf.log, security.log. Установите права на эти файлы в 644 и установите владельца и группу на эти файлы named.named

 cd /var/named/chrrot/var/log/named touch xfer.log touch lamers.log touch conf.log touch security.log chmod 644 * chown named.named * logging{ channel "xfer" { file "/var/log/named/xfer.log" versions 3 size 10m; print-time yes; print-severity yes; severity info; }; channel "lame" { file "/var/log/named/lamers.log" versions 2 size 10m; print-time yes; print-severity yes; severity info; }; channel "config" { file "/var/log/named/conf.log" versions 3 size 10m; print-time yes; print-severity yes; severity info; }; channel "security" { file "/var/log/named/security.log" versions 3 size 10m; print-time yes; print-severity yes; severity info; }; //События связанные с получением зон category "xfer-in" { "xfer"; }; //События связанные с передачей зон category "xfer-out" { "xfer"; }; //События связанные с изменениями в зонах category "notify" { "xfer"; }; //События связанные с некорректным делегированием category "lame-servers" { "lame"; }; //События связанные с обработкой файла конфигурации category "config" { "config"; }; //События связанные с запрещением/разрешением запросов category "security" { "security"; }; //Если для события канал не определен category "default" { "default_syslog"; "default_debug"; }; };

Рассмотрим подробней один из каналов. Параметр file «имя» задает с каком файле будет храниться информация попадающая в данный канал. Опция version указывает уровень ротации данного канала, т.е.при достижении лимита указанного в параметре size файл переименовывается в «имя».0, «имя».1 и т.д. Для каждого из каналов в опции severity возможно указать события какой степени важности записывать в лог. Возможно указать следующие уровни: 1. critical , 2. error , 3. warning , 4. notice , 5. info , 6. debug , 7. dynamic . При указании уровня все события этого и вышестоящих уровней будут записываться в файл регистрации. Опция print-time yes; указывает на то, что в файле регистрации события должно указываться время в которое данное событие произошло. Опция print-severity yes; указывает DNS серверу записывать в файл регистрации уровень важности события. Рекомендуемые опции для обеспечения безопасности Для сокрытия версии bind в секции options добавьте строку version «DNS Server»; Для разрешения запросов только из своих сетей добавьте следующую строку allow-query { Список сетей; }; в секцию options. Если ваш DNS сервер является либо master либо slave для какой-либо зоны то Вам необходимо разрешить запросы для всех ip адресов. Данная опция разрешает запросы к DNS серверу только с ip адресов указанных в скобках. Для разрешения рекурсивных запросов добавьте allow-recursion { Список сетей; }; Обратите внимание на эту очень важную опцию. С помощью ее вы указываете своему серверу кому можно разрешать имена internet используя ваш DNS сервер. Обязательно используйте эту опцию, иначе вы можете столкнуться с ситуацией, когда запросами на разрешение имен к вашему DNS серверу будет сгенерированн большой объем входящего трафика за который в конечном итоге ваш провайдер заставит вас расчитаться (если у вас не безлимитный тариф конечно), либо ваш DNS сервер будет сильно загружен запросами на разрешение имен DNS, Данную опцию следует включить только для довереных сетей, без указания данной опции ваши клиенты не смогут делать преобразование символьных адресов в ip адреса. Если вы ведете master зону для домена, тогда для обновления информации о изменениях внесенных в файл зоны вам необходимо разрешить передачу зоны для slave серверов указанных у регистратора домена. Делается это опцией allow-transfer {список ip адресов slave серверов;}; Если вы ведете slave зону для какого-нибудь домена необходимо указать опцию allow-transfer { none; };. Данные опции могут задаваться как глобально в секции options так и для каждой зоны в отдельности. В случае если вы оплачиваете входящий либо исходящий трафик своему провайдеру, но ваш провайдер разрешил вам использовать его DNS сервера и стоимость обмена трафиком с данными серверами гораздо ниже чем глобальный трафик, либо обмен трафиком с данными серверами бесплатен, то я рекомендую использовать опции: forwarders {первый dns провайдера; второй dns провайдера;}; forward only; Данными параметрами Вы указываете вашему серверу BIND использовать DNS сервера провайдера для разрешения имен. Если Вы вместо forwarders only; укажете forward first; , то ваш DNS сервер будет пытаться разрешать имена с помощью DNS серверов указанных в параметре forwarders, и лишь в случае если разрешить имя с помощью данных серверов не удалось, то будет осуществлять попытки разрешения имени самостоятельно. В случае если ваш DNS сервер ведет несколько master зон имеет смысл установить ограничение на количество одновременных передач зон для каждого запрашивающего данные сервера. Делается это для того чтобы ваш DNS сервер не был загружен запросами на передачу зон. Для установки данного ограничения установите опцию transfers-per-ns 2; в секции

options, тем самым мы разрешили одновременную передачу 2 зон для каждого slave сервера. adidas womens В случае если ваш сервер обслуживает несколько сотен зон имеет смысл увеличить значение данного параметра. Можно также установить максимальное значение одновременно запрашиваемых зон вашим DNS сервером, за это отвечает параметр transfers-in 5; в секции options. Можно также установить значение одновременно запрашиваемых зон у вашего DNS сервера, за это отвечает параметр transfers-out 5; в секции options. Для того чтобы задать время в минутах которое DNS сервер может потратить на получение зоны с первичного DNS сервера служит параметр max-transfer-time-in 60;. Если по истечении времени зона так и не будет получена с первичного DNS сервера, то наш DNS сервер автоматически разорвет сессию. Для задание максимального времени на передачу зоны slave серверам служит параметр max-transfer-time-out 60;. nike outlet Интервал обновления зоны может быть очень маленьким, таким образом вторичные DNS сервера будут зачастую выполнять ненужную работу. Для установления ограничений на минимальное и максимальное кол-во передач зоны можно использовать параметры:

 max-refresh-time 86400; // обновлять зону не реже чем раз в сутки. min-refresh-time 1800; // обновлять зону не чаще 1 раза в 30 минут.

Также имеет смысл установить параметр recursive-clients 100; в секции options. Который ограничивает число клиентов параллельно обслуживаемых вашим DNS сервером. Параметр tcp-clients 200; Ограничивает число одновременных TCP (используется для передачи зон, и TCP запросов) соединений с вашим DNS сервером. Если в вашем сервере установлено несколько сетевых интерфейсов и вы хотите чтобы named работал только на одном из них, то вам необходимо использовать параметр listen-on {localhost; нужный сетевой интерфейс;}; Если вы не используете IPv6 отключите его поддержку в BIND listen-on-v6 { none; }; Работа под непривилегированным пользователем. Очень важным является указание BIND работать от имени непривилегированного пользователя а не от root-a. По умолчанию в RHEL bind так и работает от имени пользователя named. Убедиться в этом можно выполнив команду ps ax|grep named при запущеном демоне named, ответ должен выглядеть примерно так /usr/sbin/named -u named. Имя пользователя после параметра -u говорит под каким пользователем работает BIND. Другой способ убедиться у том, что BIND работает из под непривилегированного пользователя это проверить стартовый скрипт /etc/init.d/named на наличие строки daemon /usr/sbin/named -u named ${OPTIONS}; Пример кэширующего DNS сервера. Допустим ваш провайдер выделил вам 1 ip адрес. timberland 14 inch boots В вашей внутренней сети используется адресация 10.0.0.0/24 (10.0.0.0 по маске 255.255.255.0). У вашего шлюза в интернет внутренний ip адрес 10.0.0.1. Внешний ip адрес выделеный провайдером (192.168.0.10). IP адреса DNS серверов провайдера 192.168.0.1, 192.168.0.2. Данный DNS сервер должен разрешать имена используя только DNS сервера провайдера. \

 //Настраиваем логирование logging { channel "xfer" { file "/var/log/named/xfer.log" versions 3 size 10m; print-time yes; print-severity yes; severity info; }; channel "lame" { file "/var/log/named/lamers.log" versions 2 size 10m; print-time yes; print-severity yes; severity info; }; channel "config" { file "/var/log/named/conf.log" versions 3 size 10m; print-time yes; print-severity yes; severity info; }; channel "security" { file "/var/log/named/security.log" versions 3 size 10m; print-time yes; print-severity yes; severity info; }; category "xfer-in" { "xfer"; }; category "xfer-out" { "xfer"; }; category "notify" { "xfer"; }; category "lame-servers" { "lame"; }; category "config" { "config"; }; category "security" { "security"; }; category "default" { "default_syslog"; "default_debug"; }; }; //Список сетей для которых разрешены рекурсивные запросы acl "my_net" { localhost; 10.0.0.0/24; }; options { directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; version "DNS Server"; allow-recursion { my_net; }; allow-query { my_net; }; forwarders { 192.168.0.1; 192.168.0.2; }; listen-on{localhost;10.0.0.1;}; forward only; recursive-clients 100; }; controls { inet 127.0.0.1 allow { localhost; } keys { rndckey; }; }; zone "." IN { type hint; file "named.ca"; }; zone "localdomain" IN { type master; file "localdomain.zone"; allow-update { none; }; }; zone "localhost" IN { type master; file "localhost.zone"; allow-update { none; }; }; zone "0.0.127.in-addr.arpa" IN { type master; file "named.local"; allow-update { none; }; }; include "/etc/rndc.key";

При данном подходе Вам не нужно открывать на внешнем интерфейсе 53 порт для запросов т.е.


Смотрите также:

Readers Comments (Комментариев нет)

Comments are closed.

Exchange 2007

Проведение мониторинга Exchange 2007 с помощью диспетчера System Center Operations Manager 2007 (часть 3)

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Проведение мониторинга Exchange 2007 с помощью диспетчера System ... [+]

Практическое рассмотрение перехода с Exchange 2003 на Exchange 2007 (часть 1)

Введение В этой статье из нескольких частей я хочу показать вам процесс, который недавно использовал для перехода с существующей среды Exchange 2003 ... [+]

Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (часть 2)

Если вы пропустили первую часть этой серии, пожалуйста, прочтите ее по ссылке Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (Часть ... [+]

Мониторинг Exchange 2007 с помощью диспетчера System Center Operations Manager 2007 (часть 2)

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Мониторинг Exchange 2007 с помощью диспетчера System Center Operations ... [+]

Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 5)

Если вы пропустили предыдущие части этой серии статей, перейдите по ссылкам: Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 1) ... [+]

Установка и настройка Exchange 2007 из командной строки (Часть 3)

If you missed the previous parts in this article series please read: Exchange 2007 Install and Configuration from the command line (Part ... [+]

Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (часть 1)

Инструмент ExRCA Текущий выпуск инструмента предоставляется только в целях тестирования и оснащен 5 опциями: Тест подключения Outlook 2007 Autodiscover Тест подключения Outlook 2003 RPC ... [+]

Развертывание сервера Exchange 2007 Edge Transport (часть 5)

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Развертывание сервера Exchange 2007 Edge Transport (часть 1) Развертывание ... [+]

Установка и настройка Exchange 2007 из командной строки (часть 2)

Если вы пропустили первую статью данного цикла, пожалуйста, перейдите по ссылке: Exchange 2007 Install and Configuration from the command line (Part ... [+]

Использование интегрированных сценариев Using Exchange Server 2007 – часть 2: генерирование отчетов агента Transport AntiSpam Agent

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Использование интегрированных сценариев Using Exchange Server 2007 – часть ... [+]