PowerDNS установка, настройка, эксплуатация
Добавлено: 28 окт 2015, 16:06
Задача:
Поднять DNS сервер для компании. Сервер должен отвечать быстро и желательно иметь наглядную статистику использования.
Выбор продукта:
Для работы было решено выбрать продукт PowerDNS, как довольно таки продвинутый сервер.
Установка и первоначальная настройка:
Сервер делится на две части - одна отвечает за разрешение имен - так сказать повернута к людям - по сути это и есть сам ДНС, а вторая отвечает за добывание имен с внешних серверов. Таким образом, если вы хотите, что бы сервер держал вашу локальную зону - вам будет нужна только первая часть, а если вы ходите что бы с этого сервера пользователи вашей сети получали данные - вам нужны обе части.
Ставится это все просто - идем в порты и устанавливаем. на вопросы отвечаем по вкусу - отмечу что вам надо выбрать БД, с которой будет работать ваш сервер - я выбрал MySQL, потому что он у меня уже стоял на сервере. Ставим локальный ДНС сервер:
Сразу поставим и резольвер:
Настройка резольвера:
Настраивать начнем со второго, но сначала условимся, что резальвер будет висеть на локалхосте и внешнему миру виден не будет, а ДНС будет висеть на внешнем ИП сервера и будет отслуживать все запросы.
Открываем файл /usr/local/etc/pdns/recursor.conf и правим на свой вкус. я только прописал сеть, с которой буду получать ДНС запросы
Пропишем в /etc/rc.conf
Ну и запускаем
Можно попробовать выполнить запрос:
Как видно - сервер нам ответил, значит стоит и свою работу делает. Двигаемся дальше.
Настройка DNS:
Теперь настроим сам сервер - открываем файл /usr/local/etc/pdns/pdns.conf и правим. я Использовал следующие настройки
Немного по конфигу - я описал с каких ИП будет приниматься запрос, Указал ИП сервера, где ДНС будет слушать запросы к нему и сказал что работать мы будем с MsSQL
Файл сохраняем. Теперь надо найти файл базы данных - мне удалось его найти в дистрибутиве, откуда он и был извлечен. Файл назывался schema.mysql.sql - ложим его в понравившуюся директорию, переходим туда и идем в скуль, где создадим базу данных и пользователя, а затем загрузим туда данные из файлика
Если все прошло хорошо, то запускаем сервер
после чего опять же проверяем, отвечает он на запросы или нет
Отвечает. Это хорошо. Можно сказать что сервер мы настроили:-)
Теперь было бы не плохо обзавестись логами - просто по умолчанию все логи будут кидать в messages. Идём в /etc/syslog.conf и вписываем такие строки
Теперь надо создать каталоги и файлики логов
Теперь перестартуем сервис
Новые сообщения должны начать писаться в соответствующие файлики
Сразу настроим ротацию логов - в файлик /etc/newsyslog.conf добавляем
Теперь надо перестартавать службы
Литература:
http://www.lissyara.su/articles/freebsd ... /powerdns/
Поднять DNS сервер для компании. Сервер должен отвечать быстро и желательно иметь наглядную статистику использования.
Выбор продукта:
Для работы было решено выбрать продукт PowerDNS, как довольно таки продвинутый сервер.
Установка и первоначальная настройка:
Сервер делится на две части - одна отвечает за разрешение имен - так сказать повернута к людям - по сути это и есть сам ДНС, а вторая отвечает за добывание имен с внешних серверов. Таким образом, если вы хотите, что бы сервер держал вашу локальную зону - вам будет нужна только первая часть, а если вы ходите что бы с этого сервера пользователи вашей сети получали данные - вам нужны обе части.
Ставится это все просто - идем в порты и устанавливаем. на вопросы отвечаем по вкусу - отмечу что вам надо выбрать БД, с которой будет работать ваш сервер - я выбрал MySQL, потому что он у меня уже стоял на сервере. Ставим локальный ДНС сервер:
Код: Выделить всё
# cd /usr/ports/dns/powerdns
# make install clean
Код: Выделить всё
# cd /usr/ports/dns/powerdns-recursor
# make install clean
Настраивать начнем со второго, но сначала условимся, что резальвер будет висеть на локалхосте и внешнему миру виден не будет, а ДНС будет висеть на внешнем ИП сервера и будет отслуживать все запросы.
Открываем файл /usr/local/etc/pdns/recursor.conf и правим на свой вкус. я только прописал сеть, с которой буду получать ДНС запросы
Код: Выделить всё
allow-from=127.0.0.1/32
Код: Выделить всё
pdns_enable="YES"
pdns_recursor_enable="YES"
Код: Выделить всё
/usr/local/etc/rc.d/pdns-recursor start
Код: Выделить всё
# host www.ya.ru 127.0.0.1
Using domain server:
Name: 127.0.0.1
Address: 127.0.0.1#53
Aliases:
www.ya.ru is an alias for ya.ru.
ya.ru has address 213.180.193.3
ya.ru has address 93.158.134.3
ya.ru has address 213.180.204.3
ya.ru has IPv6 address 2a02:6b8::3
ya.ru mail is handled by 10 mx.yandex.ru.
Настройка DNS:
Теперь настроим сам сервер - открываем файл /usr/local/etc/pdns/pdns.conf и правим. я Использовал следующие настройки
Код: Выделить всё
allow-axfr-ips=127.0.0.0/8,192.168.1.146/32
daemon=yes
default-soa-name=ns2.belaya-ptica.ru
disable-axfr=yes
experimental-json-interface=yes
experimental-logfile=/var/log/pdns/pdns.log
local-address=192.168.1.1
recursor=127.0.0.1
slave=yes
webserver=yes
webserver-address=127.0.0.1
webserver-port=8081
launch=gmysql
gmysql-socket=/tmp/mysql.sock
gmysql-user=powerdns
gmysql-dbname=powerdns
gmysql-password=P@$$w0rd
Файл сохраняем. Теперь надо найти файл базы данных - мне удалось его найти в дистрибутиве, откуда он и был извлечен. Файл назывался schema.mysql.sql - ложим его в понравившуюся директорию, переходим туда и идем в скуль, где создадим базу данных и пользователя, а затем загрузим туда данные из файлика
Код: Выделить всё
# mysql -uroot
mysql> CREATE DATABASE powerdns CHARACTER SET UTF8;
mysql> GRANT ALL PRIVILEGES ON powerdns.* TO 'powerdns'@'localhost' IDENTIFIED BY 'P@$$w0rd' WITH GRANT OPTION;
mysql> \. schema.mysql.sql
Код: Выделить всё
# /usr/local/etc/rc.d/pdns start
Код: Выделить всё
# host www.ya.ru 192.168.1.1
Using domain server:
Name: 192.168.1.1
Address: 192.168.1.1#53
Aliases:
www.ya.ru is an alias for ya.ru.
ya.ru has address 93.158.134.3
ya.ru has address 213.180.193.3
ya.ru has address 213.180.204.3
ya.ru has IPv6 address 2a02:6b8::3
ya.ru mail is handled by 10 mx.yandex.ru.
Теперь было бы не плохо обзавестись логами - просто по умолчанию все логи будут кидать в messages. Идём в /etc/syslog.conf и вписываем такие строки
Код: Выделить всё
!pdns
*.* /var/log/pdns/pdns.log
!pdns_recursor
*.* /var/log/pdns/pdns_recursor.log
Код: Выделить всё
#mkdir /var/log/pdns
#touch /var/log/pdns/pdns.log
#touch /var/log/pdns/pdns_recursor.log
Код: Выделить всё
/etc/rc.d/syslogd reload
Сразу настроим ротацию логов - в файлик /etc/newsyslog.conf добавляем
Код: Выделить всё
/var/log/pdns/*.log 644 7 * @T00 GJC
Код: Выделить всё
/etc/rc.d/syslogd restart
/etc/rc.d/newsyslog restart
http://www.lissyara.su/articles/freebsd ... /powerdns/