PowerDNS – це сервер DNS з відкритим вихідним кодом, який пропонує різноманітні можливості, такі як налаштовувані обробники запитів, підтримка DNSSEC, вбудовані бази даних та багато іншого. Він може бути використаний як автономний сервер DNS, так і як фронтенд для спільних баз даних або сервісів, таких як MySQL або PostgreSQL. У цій статті ми розглянемо, як встановити та налаштувати PowerDNS на Ubuntu, використання MySQL та Bind для зберігання DNS-записів, налаштування DNSSEC та Round Robin.
- Встановлення PowerDNS на Ubuntu 22.04
- Оновлення системи
- Встановлення PowerDNS
- Перевірка встановлення
- Налаштування конфігурації
- Перезапуск сервісу
- Налаштування Web-інтерфейсу
- Встановлення Poweradmin
- Налаштування конфігурації
- Доступ до Web-інтерфейсу
- Використання MySQL та Bind для зберігання DNS-записів
- Встановлення Bind
- Налаштування конфігурації Bind
- Налаштування конфігурації PowerDNS
- Створення бази даних
- Налаштування таблиць бази даних
- Перезапуск сервісів
- Налаштування DNSSEC
- Генерація ключів
- Додавання DS-записів у реєстр
- Активація DNSSEC у PowerDNS
- Перезапуск сервісу
- Round Robin DNS
- Налаштування DNS-записів
- Налаштування PowerDNS
- Встановлення інтерфейсу користувача
- Налаштування інтерфейсу користувача
- Перезапуск сервісу
- Додавання записів через інтерфейс користувача
- Висновок
Встановлення PowerDNS на Ubuntu 22.04
Оновлення системи
Перед встановленням PowerDNS необхідно оновити систему. Виконайте наступні команди:
sudo apt-get update sudo apt-get upgrade
Встановлення PowerDNS
Для встановлення PowerDNS виконайте наступну команду:
sudo apt-get install pdns-server
Перевірка встановлення
Після встановлення PowerDNS можна перевірити його версію та статус, виконавши наступні команди:
pdns_control version pdns_control ping
Налаштування конфігурації
Для налаштування конфігурації PowerDNS відкрийте файл /etc/powerdns/pdns.conf та змініть наступні параметри:
launch=gmysql,gpgsql gmysql-host=localhost gmysql-user=pdns gmysql-password=password gmysql-dbname=pdns
Ці параметри дозволять використовувати MySQL як базу даних для зберігання DNS-записів.
Перезапуск сервісу
Після внесення змін до конфігурації PowerDNS необхідно перезапустити сервіс:
sudo systemctl restart pdns.service
Налаштування Web-інтерфейсу
Встановлення Poweradmin
Poweradmin – це веб-інтерфейс для керування PowerDNS. Для встановлення Poweradmin виконайте наступну команду:
sudo apt-get install poweradmin
Налаштування конфігурації
Для налаштування конфігурації Poweradmin відкрийте файл /etc/poweradmin/config.inc.php та змініть наступні параметри:
$db_host = 'localhost'; $db_user = 'pdns'; $db_pass = 'password'; $db_name = 'pdns';
Доступ до Web-інтерфейсу
Після налаштування конфігурації Poweradmin ви можете отримати доступ до веб-інтерфейсу, відкривши веб-браузер і ввівши адресу виду http://your-ip/poweradmin. Введіть облікові дані адміністратора, щоб увійти в інтерфейс.
Використання MySQL та Bind для зберігання DNS-записів
PowerDNS підтримує використання різних баз даних для зберігання DNS-записів, включаючи MySQL та PostgreSQL. У цьому розділі ми розглянемо, як налаштувати PowerDNS для використання MySQL як бази даних і Bind як DNS-сервера.
Встановлення Bind
Для встановлення Bind виконайте наступну команду:
sudo apt-get install bind9
Налаштування конфігурації Bind
Відкрийте файл /etc/bind/named.conf.options та додайте наступні рядки:
acl "trusted" { 127.0.0.1; your-server-ip; }; options { directory "/var/cache/bind"; recursion yes; allow-query { trusted; }; allow-transfer { none; }; }; zone "." { type hint; file "/etc/bind/db.root"; }; zone "localhost" { type master; file "/etc/bind/db.local"; }; zone "127.in-addr.arpa" { type master; file "/etc/bind/db.127"; }; zone "0.in-addr.arpa" { type master; file "/etc/bind/db.0"; }; zone "255.in-addr.arpa" { type master; file "/etc/bind/db.255"; };
Налаштування конфігурації PowerDNS
Відкрийте файл /etc/powerdns/pdns.conf та додайте наступні рядки:
launch=bind bind-config=/etc/bind/named.conf bind-check-interval=600
Ці параметри дозволять використовувати Bind як DNS-сервер і пов’язати його з PowerDNS.
Створення бази даних
Для створення бази даних у MySQL виконайте наступну команду:
mysql -u root -p create database pdns; grant all privileges on pdns.* to 'pdns'@'localhost' identified by 'password'; flush privileges; exit
Налаштування таблиць бази даних
Для налаштування таблиць бази даних виконайте наступні команди:
mysql -u root -p pdns < /usr/share/doc/pdns-backend-mysql/schema.mysql.sql
Перезапуск сервісів
Після внесення змін до конфігурації PowerDNS та Bind необхідно перезапустити сервіси:
sudo systemctl restart pdns.service sudo systemctl restart bind9.service
Налаштування DNSSEC
DNSSEC (DNS Security Extensions) – це набір розширень протоколу DNS, який дозволяє перевіряти достовірність та цілісність DNS-записів. У цьому розділі ми розглянемо, як налаштувати DNSSEC у PowerDNS.
Генерація ключів
Для генерації ключів виконайте наступну команду:
sudo dnssec-keygen -a NSEC3RSASHA1 -b 2048 -n ZONE your-domain.com
Додавання DS-записів у реєстр
Після генерації ключів вам потрібно додати DS-записи в реєстр вашого домену. Для цього виконайте наступну команду:
sudo dnssec-dsfromkey Kyour-domain.com.+005+12345.key your-domain.com
Де “Kyour-domain.com.+005+12345.key” – це шлях до файлу з ключем, згенерованим на попередньому кроці, а “your-domain.com” – це ваш домен.
Активація DNSSEC у PowerDNS
Для активації DNSSEC у PowerDNS додайте наступні рядки до конфігураційного файлу /etc/powerdns/pdns.conf:
dnssec=yes dnssec-allow-unsigned=no
Перезапуск сервісу
Після внесення змін до конфігурації PowerDNS перезапустіть сервіс:
sudo systemctl restart pdns.service
Round Robin DNS
Round Robin DNS – це метод балансування навантаження, при якому DNS-сервери надають кілька IP-адрес для одного домену. Кожного разу, коли клієнт запитує IP-адресу для домену, DNS-сервер повертає наступну IP-адресу зі списку.
Налаштування DNS-записів
Для налаштування Round Robin DNS у PowerDNS вам потрібно створити кілька DNS-записів для одного домену, кожен запис міститиме різну IP-адресу. Для прикладу створимо 3 записи для домену example.com:
example.com. IN A 192.168.0.1 example.com. IN A 192.168.0.2 example.com. IN A 192.168.0.3
Налаштування PowerDNS
Відкрийте файл /etc/powerdns/pdns.conf та додайте наступні рядки:
local-address=0.0.0.0 webserver=yes webserver-address=0.0.0.0 webserver-port=8081
Ці параметри дозволять налаштувати PowerDNS для обробки запитів за протоколом HTTP та використання інтерфейсу користувача для керування DNS-записами.
Встановлення інтерфейсу користувача
Встановіть інтерфейс користувача для PowerDNS за допомогою наступної команди:
sudo apt-get install pdns-webapi
Налаштування інтерфейсу користувача
Відкрийте файл /etc/powerdns/pdns.webapi.json та додайте наступні рядки:
{ "experimental-json-interface": true, "webserver-port": 8081, "webserver-address": "0.0.0.0", "webserver-password": "your-password", "webserver-allow-from": "0.0.0.0/0", "webserver-allow-dnssec": true, "webserver-allow-tsig": true, "webserver-allow-recursion": true }
Зверніть увагу, що ви повинні замінити “your-password” на свій пароль.
Перезапуск сервісу
Перезапустіть сервіс PowerDNS:
sudo systemctl restart pdns.service
Додавання записів через інтерфейс користувача
Відкрийте веб-браузер і перейдіть за адресою http://your-server-ip:8081. Введіть ім’я користувача та пароль, зазначені в параметрі “webserver-password”. Потім оберіть зону, у якій ви хочете додати DNS-записи, і натисніть кнопку “Add Record”. Введіть ім’я DNS-запису, оберіть тип “A” та введіть IP-адресу. Натисніть кнопку “Add Record” для додавання запису.
Висновок
PowerDNS – це потужний та гнучкий DNS-сервер, який дозволяє налаштовувати DNS-записи, використовувати базу даних MySQL для зберігання даних, активувати DNSSEC для захисту від атак та використовувати метод балансування навантаження Round Robin DNS. Встановлення та налаштування PowerDNS на Ubuntu – це простий та швидкий процес, який не потребує особливих знань та навичок. За допомогою інтерфейсу користувача ви можете керувати DNS-записами, додавати нові записи та оновлювати існуючі.