Минимум усилий на защиту DNS::Журнал СА 1.2003
www.samag.ru
Журнал «БИТ. Бизнес&Информационные технологии»      
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
1001 и 1 книга  
19.03.2018г.
Просмотров: 6779
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 7333
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 4576
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 3150
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 3950
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 3955
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6453
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 3302
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 3581
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 7440
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 10796
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 12512
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 14217
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 9256
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 7202
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 5504
Комментарии: 3
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 4734
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 3558
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 3266
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 3495
Комментарии: 0
Рецензия на книгу «MongoDB в действии»

 Читать далее...

02.12.2013г.
Просмотров: 3153
Комментарии: 0
Не думай о минутах свысока

 Читать далее...

Друзья сайта  

 Минимум усилий на защиту DNS

Архив номеров / 2003 / Выпуск №1 (2) / Минимум усилий на защиту DNS

Рубрика: Безопасность /  Сетевая безопасность

СЕРГЕЙ РОПЧАН

Минимум  усилий на защиту DNS

По статистике (некоторых security teams) из 100 % серверов – 63% работает с неправильно настроенной службой DNS, в контексте сетевой безопасности, конечно. Узнав столь печальную статистику, я решил провести свой собственный анализ.

И вот что у меня вышло – из 100 серверов, выбранных мною наугад из различных сегментов Интернета, 57 серверов оказались с неправильно настроенной службой имен.

Под словом «неправильно» я подразумеваю, например, получение файла пересылки (transfer) зоны (эта информация является наиболее важной в аспекте безопасности DNS), на основе которого, как известно, можно построить схему внутренней сети исследуемой системы, так как мы получаем полную информацию о инфраструктуре внутренней сети (имена хостов, IP -адреса, почтовые сервера, вышестоящие сервера имен, псевдонимы хостов и т. д.). Вот наглядный пример: выбираем цель, например, www.target.ru; как известно, для работы с DNS подходит nslookup, которая входит в состав большинства ОС. Итак:

fenix# nslookup

 Nameserver 192.145.45.1

>server www.target.com

>ls -d target.com

и если в ответ мы получаем что-то похожее на:

[main.target.com]

$ORIGIN   target.com.

@            1D      IN      SOA      ns root (

                            2001081109      ;serial

                            8H            ;refresh

                            2H            ;retry

                            1W            ;expiry

                            1D )            ;minimum     

          1D      IN      NS      ns

          1D      IN      NS      r1.ns.net.

          1D      IN      NS      r2.ns.com.

          1D      IN      MX      20 m1.ns.net

          1D      IN      MX      10 m2.ns.com

          1D      IN      MX      10 main

c4            1D      IN      A      192.5.62.78

admin            1D      IN      A      192.5.62.74

localhost      1D      IN      A      127.0.0.1

mail            1D      IN      CNAME main

proxy            1D      IN      CNAME main

www            1D      IN      CNAME main

c1            1D      IN      A      192.5.62.75

c2            1D      IN      A      192.5.62.76

c3            1D      IN      A      192.5.62.77

ns            1D      IN      A      192.5.62.73

ftp            1D      IN      CNAME main

@            1D      IN      SOA      ns root (

                            2001081109      ;serial

                            8H            ;refresh

                            2H            ;retry

                            1W            ;expiry

                            1D )            ;minimum

(данная информация является файлом пересылки зоны), то это означает, что администратор системы не предпринял никаких усилий, хотя бы минимальных, (которые я опишу в этой статье) для защиты DNS то ли от незнания, то ли от неумения. Но это все неважно, так как речь в этой статье будет идти не о причинах, побудивших или не побудивших администратора к такому безразличию, которое в свою очередь может привести к плачевным результатам.

Я хочу попытаться показать, как хотя бы «немного», (если это слово можно считать корректным в контексте сетевой безопасности) защитить свой DNS-cервер. Я ни в коем случае не претендую на полноту изложенной здесь информации, так как этот вопрос требует намного более пристального внимания со стороны администраторов и выходит за пределы этой статьи; более детальную информацию о защите DNS можно получить в списке дополнительных материалов в конце этой статьи.

Итак, начнем. Прежде всего следует сказать, что все описанное ниже будет относиться к настройке bind 8.x.x. Работать мы будем непосредственно с файлами конфигурации bind, а если быть точным, то в основном с named.conf (/etc/namedb/named.conf).

Первое, что необходимо сделать в named.conf – это определить список доступа acl, в который будут входить «доверенные» сети и хосты (так же я советую включить в этот список IP -адреса первичных DNS-серверов, которые делегировали на вас управление каким-либо доменом). Создаем секцию acl в самом начале файла (named.conf):

acl "trusted" {

       localhost;    

       192.168.3.0;

};

таким образом, «доверенными» являются localhost и сеть (192.168.3.0), хосты которой пользуются услугами нашего cервера имен.

Далее в секцию options данного файла вносим:

 options {

     ...

# определения прав доступа по умолчанию

allow-query { trusted };       # разрешить запросы группе «доверенных» хостов

allow-transfer { none };       # запретить пересылку файла зоны кому-либо

allow-recursion { trusted };   # pазрешить рекурсивные запросы группе «доверенных» хостов

    ...

};

Данные директивы определяют поведение bind по умолчанию (запросы разрешены только для «доверенных» хостов, трансфер зон запрещен, рекурсивные запросы разрешены только для «доверенных» хостов), эти директивы можно переопределить для каждой зоны в соответствующей секции zone. Тут я советую следовать такому «правилу»: зонам, для которых наш сервер имен является вторичным (slave), необходимо явно разрешить запросы с любым ip-адресом источника, для первичных зон (master), кроме (0.0.127.in-addr.arpa), дополнительно к этому необходимо разрешить трансфер зонных файлов, то есть вот что у нас выходит:

zone "example.com" {

 type master;

 file "primary/example.com";

# переопределение прав доступа, заданных по умолчанию в options

 allow-query { any; };

 allow-transfer { localhost; 192.168.3.0; }; В

 };

zone "3.168.192.in-addr.arpa" {

 type slave;

 file "secondary/0.126.in-addr.arpa";

 masters { 192.168.3.1; } ;

# переопределение прав доступа, заданных по умолчанию в options

 allow-query { any; };

 allow-transfer { localhost; };

 };

};

В том случае если ваш сервер является, например, сервером имен (единственным) для локальной сети (intranet), т. е. не является шлюзом во внешний мир, то можно настроить bind таким образом, чтобы он разрешал запросы только с «доверенных» хостов. Для этого необходимо в named.conf внести описание зоны bind:

zone "bind" chaos {

    type master;

    file "primary/bind";

    allow-query { trusted };

    allow-transfer { none; };

};

и создать, собственно, файл описания зоны:

$TTL 3600

$ORIGIN bind.

@   1D     CHAOS      SOA      localhost.  root.localhost. {

    1      ;serial

    3H     ;refresh

    1H     ;retry

    1W     ;expire

    1D )   ;minimum

CHAOS NS   localhost/

;

Доступ мы ограничили; я думаю, со мной многие согласятся, что «защита» без ведения логов – это не защита, так как лучше знать своего врага в лицо. Разработчики bind’a позаботились и об этом: существует возможность ведения лог-файлов. Вот основные приемы (создаем новую секцию logging):

logging {

 # определяем канал по умолчанию для ведения логов запросов к bind

    channel default_ch { 

           file "/var/log/named.log";

           serverity info;     # уровень важности регистрационной информации

           print-time yes;     # регистрировать время

           print-category yes; # регистрировать категорию

    };

    channel security_ch {

# определяем канал для ведения логов по защите

           file "/var/log/security.log";

           serverity info;

           print-time yes;

           print-category yes;

    };

    # инициализация каналов

    category  default { default_ch; };

    category  security  { security_ch; };

};

Вот и все. Как было сказано выше, эта информация не является исчерпывающей по данному воросу, так как полная настройка системы защиты DNS строится на создании для службы DNS chrooted environment, создание для нее sandbox и т. д., вплоть до защиты системы в целом.

Рекомендуемые материалы:

  1. М. Канавалова. Securing Bind.
  2. RFC по DNS.
  3. man bind.
  4. Criag H. Rowland. Securing Bind.

Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru