24.11. Создание общедоступного сервера DNS с использованием tinydns
Проблема
Под вашим управлением находятся серверы, которые должны быть доступны для внешнего мира (почта, веб, FTP). Чтобы пользователи могли использовать доменные имена, такие как www.piter.com
, вместо IP-адресов, вам требуется настроить собственный сервер DNS. Сервер BIND кажется слишком сложным, и у него есть известные проблемы с безопасностью, поэтому вы выбрали djbdns
для обеспечения надёжной и безопасной работы. Как настроить такой сервер?
Решение
Для начала выполните подготовительные действия, описанные в разделе 24.6, а затем следуйте дальнейшим инструкциям для установки и настройки tinydns
, авторитетного сервера DNS из пакета djbdns
. Если вы также используете сервер dnscache
, убедитесь, что его IP-адрес отличается от IP-адреса tinydns
, чтобы избежать конфликта при одновременной работе обоих сервисов.
Установите djbdns
так, как указано в разделе 24.7. Затем создайте двух системных пользователей для служб tinydns
и dnslog
:
# useradd -d /dev/null -s /bin/false tinydns
# useradd -d /dev/null -s /bin/false dnslog
Для создания каталога сервиса и задания IP-адреса используйте команду tinydns-conf
, указав пользователей в соответствующем порядке:
# tinydns-conf tinydns dnslog /etc/tinydns 208.201.239.36
Затем создайте символическую ссылку для запуска службы:
# ln -s /etc/tinydns /service
Подождите несколько секунд, затем проверьте статус сервера командой svstat
:
# svstat /service/tinydns
/service/tinydns: up (pid 6811) 14 seconds
Если tinydns
не запускается, проверьте журнал в /etc/tinydns/log/main/current
для диагностики.
Создание записей DNS
Теперь можно переходить к созданию записей для домена. Допустим, вы зарегистрировали домен pixels.net
и хотите настроить записи для нескольких серверов. Ниже представлены настройки, необходимые для домена pixels.net
, который будет содержать три хоста, указанные в таблице:
Адрес | Имя | Роль | Псевдоним |
---|---|---|---|
208.201.239.36 | parsley | DNS, почта | - |
208.201.239.37 | sage | FTP | ftp |
208.201.239.38 | rosemary | Веб-сервер | www |
Команды для создания этих записей:
# cd /service/tinydns/root
# ./add-ns pixels.net 208.201.239.36
# ./add-ns .239.201.208.in-addr.arpa 208.201.239.36
# ./add-host parsley.pixels.net 208.201.239.36
# ./add-host sage.pixels.net 208.201.239.37
# ./add-host rosemary.pixels.net 208.201.239.38
# ./add-alias ftp.pixels.net 208.201.239.37
# ./add-alias www.pixels.net 208.201.239.38
# make
Примечание
Для управления записями в djbdns
используются конфигурационные сценарии, а не прямое редактирование файла /etc/tinydns/root/data
. Основные сценарии, включённые в пакет:
- add-host — создание записей
A
иPTR
для IP-адресов и хостов; - add-mx — добавление записи почтового сервера
MX
для почтовой доставки; - add-ns — добавление записи сервера имён
NS
для указания авторитетного сервера; - add-alias — создание записи
A
без парной записиPTR
для псевдонимов.
Советы по использованию djbdns и tinydns
djbdns и tinydns
обеспечивают безопасную и быструю работу сервера DNS, однако при настройке нужно учитывать следующие рекомендации:
- Сохраняйте IP-адреса разных сервисов (например,
tinydns
иdnscache
) раздельно для безопасности и минимизации конфликтов. - Используйте безопасные конфигурации: создание отдельных пользователей для
tinydns
иdnslog
помогает ограничить доступ и защитить систему от атак. - Регулярно проверяйте журнал: диагностируйте и исправляйте ошибки в
/etc/tinydns/log/main/current
. - Создавайте резервные копии данных: регулярно делайте копии всех конфигураций и данных DNS.
См. также