| RSS



Меню

Bookmark and Share


Статистика
Ваш IP: 18.224.45.82
Вы используете: v





Сейчас на сайте:

Тех поддержка ->

Облако тэгов
ОС видио Tor Обратная сторона антенна 4.6 PHP Эксплоит Windows Server 2008 qip Virtual chroot kernel proc sysctl tune FreeBSD bridge Boot Disk Bluetooth GEO game directx Emulator Python Shell DDoS червь Conficker вирус троян Лаборатория Касперского пиратство apple iPhone ИТ-отрасль Щеголев Microsoft экономический кризис Twitter социальная сеть анонимность Лицензия Open Source ASP.NET MVC уязвимость MySQL база данных файлообмен закон франция пират Skype мобильный Deutsche Telekom Хакер киберпреступник Trend Micro кибератака Германия робот утечка данных персональные данные ноутбук интернет Китай цензура ядро Linux Торвальдс Windows Vista Acer Linux патент браузер Firefox Internet Explorer Opera Net Applications Safari Intel Linux Foundation Moblin Oracle патч банкомат кардер HSM IBM X-Force Cofee сша кибервойна Эстония Dell ИТ-специалист хакерские атаки Pirate Bay контроль кибербезопасность язык программирования The Pirate Bay Пиратская партия утечка информации приговор Mozilla Chrome безопасность Госдума СМИ Windows 8 Баллмер взлом Пентагон ботнет Украина Facebook Cisco cloud Windows XP нетбук торрент музыка биометрический nokia ФБР IP-адрес CIPAV Comcast sms RSA java Google CAPTCHA Symantec спам конфиденциальная информация инсайдер Perimetrix антивирус тест Anti-Malware Windows 7 операционная система Windows провайдер авторское право RapidShare UNIX свиной грипп шантаж дети EFF BluWiki копирайт экстремизм Panda Security cloud computing McAfee Cybercrime Response Unit Bottle Domains HTTPS ICANN студент шпионское ПО Норвегия школьник New York Times XSS YouTube Warner Music кибершпионаж КНДР Ubuntu свободное ПО AMD ATI касперский Россия РФ сервер хостинг фальшивый антивирус Comodo CA Wi-Fi D-Link суд пароль блог фишинг Одноклассники медведев контрафакт мошенник штраф Sony GPS по Gumblar JAVASCRIPT хакеры вредоносное ПО Yahoo ФАС компьютер Софт MPAA кибероружие PandaLabs Red Hat Минкомсвязи сбой ASUSTeK Computer мошенничество Доктор Веб ВКонтакте Cyber-Arc исходный код PCI DSS МВД фильтр порнография BREIN свобода слова Казахстан GEMA Autodesk сисадмин Gmail кредитная карта кибермошенник LiveJournal шифрование криптография Deep Purple банк нанотехнологии Wikipedia zero-day ColdFusion выборы кража данных DNS BIND Android BASIC атака Black Hat Mac OS X Click Forensics Clampi домен фсб Прокуратура Уголовное дело icq Barrelfish киберпреступность Sophos AT&T ошибка Electa Gamma Knife OpenBSD DARPA военные Сайт Visual Studio 2010 .NET Framework 4 Chrome OS электронная почта турция конференция спамер FTC полиция российская ОС Koobface Великобритания БЕЛОРУССИЯ грузия BSA Bittorrent облачные вычисления Azure Европа Dr.Web Билл Гейтс спецслужбы Cryzip Живой Журнал Royal Bank of Scotland смартфон Canonical Pwn2Own F-Secure Symbian Hotmail фильм

Главная » Статьи » Общие Статьи

Кеширующий DNS сервер для локальной сети на основе BIND 9
Было решено использовать 9-ю версию пакета BIND, так как она наименее уязвима для внешних атак. BIND 9 поддерживает списки управления доступом для запросов, передачи зоны, а также динамических обновлений. Кроме того, этой версией поддерживается стандарт динамических обновлений и уведомления об изменениях зоны, она может использовать механизм инкрементальной передачи зоны, позволяющий вторичным DNS серверам запрашивать у первичных серверов только изменения зональных данных. Это позволяет ускорить передачу зон.

В качестве ОС на сервере установлена FreeBSD 4.10.

Получение, сборка и установка пакета BIND из исходных кодов
На момент написания статьи последней стабильной версией BIND 9 являлась 9.2.3.
Исходные коды BIND 9.2.3 доступны для загрузки с публичного FTP сервера: ftp://ftp.isc.org/isc/BIND9/9.2.3/bind-9.2.3.tar.gz.

Итак.

Создаем директорию, где будет проходить весь процесс:

# mkdir /usr/local/src
# cd /usr/local/src

Скачиваем дистрибутив с FTP сервера ftp.isc.org:

# fetch ftp://ftp.isc.org/isc/BIND9/9.2.3/bind-9.2.3.tar.gz

Распаковываем, и заходим в полученную папку:

# tar -xzf bind-9.2.3.tar.gz
# cd bind-9.2.3

Мы хотим что бы наш BIND 9 стал вместо штатного BIND 8.

# ./configure --prefix=/usr --sysconfdir=/etc/namedb

Далее, если конфигурация прошла успешно, приступаем к сборке пакета:

# make
# make install

На моей системе (FreeBSD 4.10) все собралось и установилось без каких-либо проблем.

Проверяем версию named которая у нас теперь стоит:

# named -v
BIND 9.2.3

Пусть вас не пугает, что мы устанавливаем BIND, а для проверки запускаем named. Так называется исполняемый файл, который, собственно говоря, и выполняет роль DNS сервера.

На этом первый этап нашей затеи окончен, BIND 9 скомпилирован и установлен в вашей системе, можно порадоваться за себя. smile

Установка BIND 9 из портов FreeBSD
Если порты у вас обновляются регулярно, то переходим в соответствующую директорию:

# cd /usr/ports/dns/bind9

Если не регулярно, то, вероятно, ваш BIND 9 нужно искать здесь:

# cd /usr/ports/net/bind9

Если портов у вас совсем нет, то устанавливайте BIND 9 из исходных кодов (см. выше).

Итак делаем следующие шаги.
Переходим в каталог BIND9 в ваших портах и компиллируем BIND 9:

# cd /usr/ports/dns/bind9
# make PORT_REPLACES_BASE_BIND9=yes install

Данная операция необходима для того, чтобы BIND 9 был установлен вместо штатного BIND 8.
Система сама скачает дистрибутив, распакует, сконфигурирует и установит.
После того, как закончится установка, предлагаю убедиться, что теперь у вас установлен именно BIND 9:

# named -v
BIND 9.2.3

На этом установка BIND 9 закончена, теперь можно переходить к конфигурированию и запуску. smile

Маленькая ремарка: я предпочитаю установку из портов, потому что в дальнейшем очень удобно обновлять пакет при помощи portupgrade, например, и потому, что устанавливать из портов просто удобнее.

Начальное конфигурирование и запуск BIND 9
Если у вас был установлен BIND 8, который идет в поставке с системой, то, вероятно, в папке /etc/namedb вы найдете файл конфигурации bind и некоторые дополнительные файлы, которые могут понадобиться для работы BIND. Если таких файлов у вас нет, никогда не было, и вы не знаете, где их взять, придется писать их с нуля. Я, например, нашел эти файлы в исходных кодах системы /usr/src/etc/namedb/.
Если вы обнаружили у себя соответствующие файлы, внимательно делайте необходимые правки в них. Будьте особенно осторожны, если вы решились писать конфигурационные файлы с нуля.

Итак, сначала создадим самый главный файл - файл конфигурации. Возьмите свой любимый текстовый редактор и создайте новый файл с именем named.conf. Содержание у него будет примерно такое:

# cat named.conf

// Первой строкой задаем сети, которым будет разрешено
//посылать запросы через наш DNS-сервер:
acl "corpnets" { 192.168.1.0/24; 192.168.2.0/24; 127.0.0.1; };
options {
// Рабочая директория:
directory "/etc/namedb";
// Pid файл создавать тоже в рабочей директории, хотя можно
// написать любую другую, например /var/run/named/named.pid:
pid-file "named.pid";
// Разрешаем посылать запросы только от тех сетей, которые мы
// указали выше:
allow-query { "corpnets"; };
};
// Указатели корневых серверов:
zone "." {
type hint;
file "named.root"; };
// Настраиваем обратное отображение
// для адреса 127.0.0.1:
zone "0.0.127.in-addr.arpa" {
type master;
file "localhost.rev";
notify no; };

С файлом named.conf пока все. Теперь нужно создать файлы, на которые мы ссылаемся в named.conf, а именно: named.root и localhost.rev.
Файл named.root скачиваем c FTP-сервера ftp.internic.net:

# fetch ftp://ftp.internic.net/domain/named.root

Желательно периодически повторять эту процедуру или настроить на автоматическое обновление через cron.

Файл localhost.rev можно написать вручную, а можно воспользоваться специальной утилитой make-localhost, которая находится в исходных кодах системы: /usr/src/etc/namedb/make-localhost.

Выглядит он примерно так:

# cat localhost.rev

; From: @(#)localhost.rev 5.1 (Berkeley) 6/30/90
; $FreeBSD: src/etc/namedb/PROTO.localhost.rev,v 1.6 2000/01/10 15:31:40 peter Exp $
;
; This file is automatically edited by the 'make-localhost' script in
; the /etc/namedb directory.
;

$TTL 3600

@ IN SOA zm.domain.com. root.zm.domain.com. (
20040603 ; Serial
3600 ; Refresh
900 ; Retry
3600000 ; Expire
3600 ) ; Minimum
IN NS zm.domain.com.
1 IN PTR localhost.domain.com.

С файлом localhost.rev тоже закончили.

Теперь можно попробовать запустить и проверить наш bind:
# named
# ps -ax|grep named

Если процес запущен и работает, пробуем послать запрос через наш DNS-сервер:

# dig @127.0.0.1 ya.ru

В ответ на этот запрос мы должны получить некий положительный ответ, например:

# dig @127.0.0.1 ya.ru

; <<>> DiG 9.2.1 <<>> @127.0.0.1 ya.ru
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36843
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 0

;; QUESTION SECTION:
;ya.ru. IN A

;; ANSWER SECTION:
ya.ru. 36000 IN A 213.180.193.123

;; AUTHORITY SECTION:
ya.ru. 36000 IN NS ns1.yandex.ru.
ya.ru. 36000 IN NS ns2.yandex.ru.
ya.ru. 36000 IN NS ns3.yandex.ru.
ya.ru. 36000 IN NS ns.ispm.ru.

;; Query time: 2639 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sun Jun 13 22:28:50 2004
;; MSG SIZE rcvd: 122

Если ответа нет, идем смотреть логи системы в /var/log/messages, читаем, что нам пишет наш bind, и пытаемся понять, с чем это может быть связано.
Надеюсь, вы догадаетесь при необходимости настроить соответствующим образом ваш фаервол для работы DNS-сервера.

Если положительный ответ получен, значит ваш DNS-сервер работает и теоретически может обслуживать вашу сеть smile

Теперь давайте настроим ваш компьютер на работу с установленным DNS-сервером. Для этого необходимо внести изменения в файл /etc/resolv.conf. Выглядеть он будет примерно следующим образом:

# cat /etc/resolv.conf
# Ваш домен
domain domain.com
# IP адрес либо 127.0.0.1 либо адрес вашей машины
nameserver 127.0.0.1

Проверяем, обращается ли ваша машина к установленному DNS-серверу:

# nslookup yandex.ru
Server: localhost.domain.com
Address: 127.0.0.1
Non-authoritative answer:
Name: yandex.ru
Address: 213.180.216.200

Если получен ответ, аналогичный тому, что вы видите выше, значит, обращение происходит успешно.

С целью уменьшения трафика от вашего DNS сервера имеет смысл указать ему адреса DNS серверов вашего провайдера. В этом случае при попытке резольвинга DNS имени ваш DNS сервер будет сначала обращаться к кэшу на сервере провайдера.

Для этого необходимо добавить в наш файл конфигурации (named.conf) опцию forwarders.
В секции options добавляем следующую строку:

forwarders { 195.5.45.17; };

Не забудьте изменить IP адрес на адрес DNS сервера вашего провайдера.

Секция options в файле конфигурации должна выглядеть вот так:

options {
directory "/etc/namedb"; // Working directory
pid-file "named.pid"; // Put pid file in working dir
allow-query { "corpnets"; };
forwarders { 195.5.45.17; };
};

После изменения файла конфигурации необходимо перестартовать named, для чего можно воспользоваться командой:

# killall -HUP named


Настройка DNS-сервера для работы с утилитой удаленного администрирования rdnc

Теперь настроим наш DNS сервер для работы с утилитой удаленного администрирования rndc, которая в дальнейшем вам очень пригодится.

Чтобы решить эту задачу, нам необходимо создать файл конфигурации для утилиты rndc.conf и добавить несколько строк в конфигурационный файл нашего сервера.
Копируем содержимое файла /usr/sbin/rndc-confgen в файл /etc/namedb/rndc.conf, который будет служить конфигурационным файлом для утилиты rndc:

# /usr/sbin/rndc-confgen > /etc/namedb/rndc.conf

В результате выполнения этой команды мы получим файл rndc.conf примерно следующего содержания:

# Начало файла rndc.conf
# Start of rndc.conf
key "rndc-key" {
algorithm hmac-md5;
secret "SW8ldl5IOMfhvlqxyRuRVw==";
};
options {
default-key "rndc-key";
default-server 127.0.0.1;
default-port 953;
};
# Конец файла rndc.conf
# Начало секции для named.conf
# Для использования ключа авторизации необходимо добавить следующие строки в файл
# named.conf, при необходимости исправив список разрешенных для авторизации хостов:
key "rndc-key" {
algorithm hmac-md5;
secret "SW8ldl5IOMfhvlqxyRuRVw==";
};

controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};
#Конец секции для named.conf
Теперь нужно добавить в самое начало файла конфигурации DNS сервера (named.conf) следующую секцию файла rndc.conf:

key "rndc-key" {
algorithm hmac-md5;
secret "SW8ldl5IOMfhvlqxyRuRVw==";
};
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};
После этого можно перезапустить named:

# killall -HUP named

Давайте проверим, работает ли наша утилита для удаленного администрирования DNS сервера:

# rndc status
number of zones: 3
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
server is up and running

Если выполнение данной команды прошло успешно, и вы получили примерно то, что получилось выше, значит утилита смогла подключиться к вашему named, успешно авторизовалась при помощи ключа, который мы создали, и попросила показать статус DNS сервера.

При помощи утилиты rndc можно делать очень много различных операций с вашим DNS сервером. Запустите ее без аргументов и увидите список доступных команд. smile

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

В следующей части статьи мы рассмотрим такие темы, как:

1. Настройка DNS сервера для поддержки домена.
2. Повышение безопасности DNS сервера.
3. Параметры в файле доменной зоны.

Категория: Общие Статьи | Добавил: aka_kludge (26.06.2008) | Автор: Дмитрий Донченко
Просмотров: 3184 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
    Главная      
...
На службе : дней

20:22
Обновить


Пользователи
aka_kludge
qwerty
LeadyTOR
aka_Atlantis
AdHErENt
mAss
Sissutr
hiss
DrBio
tHick

Поиск


Copyright tHR - TeAM 2024 г. admin: aka_kludge (ICQ:334449009) Moderator's: LeadyTOR, ... Яндекс.Метрика