Приведу пример установки кэширующего DNS сервера Unbound.
Установить Unbound в Ubuntu можно командой:
Вячеслав Гапон — персональный блог, руководства, статьи, заметки, разработка
Приведу пример установки кэширующего DNS сервера Unbound.
Установить Unbound в Ubuntu можно командой:
Допустим на сервере по умолчанию INPUT DROP и установлен DNS сервер, теперь приведу пример IPTables правил чтобы к DNS серверу могли обращайся клиенты.
Чтобы открыть порт DNS в IPTables выполним правило:
Читать далее «IPTables правила для DNS»Допустим Fail2Ban уже установлен, если нет, то смотрите мою статью — Установка и настройка Fail2ban.
По умолчанию Bind9 пишет логи в /var/log/syslog, поэтому чтобы писать в отдельный файл, откроем файл конфигурации в любом текстовом редакторе:
Читать далее «Настройка Fail2Ban под Bind9»Настроить обратную DNS запись (PTR) для Hetzner сервера можно в панели управления robot.your-server.de
Читать далее «Настройка Reverse DNS (PTR) в Hetzner»На примере опишу вариант мониторинга DNS сервера Bind9 в Zabbix.
Для начала включим статистику Bind9, откроем файл конфигурации в текстовом редакторе, например nano (Ctrl+X для выхода, y/n для сохранения или отмены изменений):
Читать далее «Мониторинг Bind9 в Zabbix»Понадобилось как-то настроить обратную DNS зону (Reverse DNS) для почтового сервера, так как некоторые сервера не хотели принимать от него почту.
Допустим наш домен mail.example.com находящийся на IP адресе 192.168.1.100, а 192.168.1.1 — сервер интернет провайдера.
Проверить из Windows можно командами (где 192.168.1.100 например адрес нашего почтового сервера, а 192.168.1.1 DNS на который шлем запрос):
nslookup mail.example.com nslookup 192.168.1.100 nslookup 192.168.1.100 192.168.1.1
В ответ первой команды будет 192.168.1.100, а в ответ второй ничего (должно mail.example.com), так как в DNS не настроена PTR запись.
Из Linux проверять можно так:
dig -x 192.168.1.100
У регистратора доменных имен в DNS добавим дочерний NS-сервер интернет провайдера ns1.example.com 192.168.1.1.
На сервере провайдера (на тесте использую Bind9 на Ubuntu Server) откроем конфигурационный файл DNS сервера например в редакторе nano (CTRL+X для выхода, y/x и Enter для сохранения или отмены изменений):
sudo nano /etc/bind/named.conf
И добавим следующие строки:
zone "1.168.192.in-addr.arpa" { type master; file "/etc/bind/1.168.192.in-addr.arpa"; };
Первая строка указывает какой зоной будем управлять, вторая тип — главный (этот DNS и будет ею управлять), третья — в каком файле будет прописана конфигурация для этой зоны.
Откроем новый файл для настроек зоны:
sudo nano /etc/bind/1.168.192.in-addr.arpa
И добавим в него:
$TTL 3600 @ IN SOA ns1.example.com. admin.example.com. ( 2016112301 ; Serial 21600 ; refresh 3600 ; retry 3600000 ; expire 86400 ) ; minimum IN NS ns1.hosting.com. IN NS ns2.hosting.com. $ORIGIN 1.168.192.in-addr.arpa. 100 IN PTR mail.example.com.
admin.example.com — контактный адрес человека отвечающего за зону, символ @ не указывается.
Serial это серийный номер версии файла зоны, должен изменяться в большую сторону при каждом изменении, обычно пишется в виде год месяц число номер изменения, по нему другие DNS определяют что нужно обновить у себя информацию.
Refresh — интервал времени в секундах, через который вторичный сервер будет проверять необходимость обновления информации.
Retry — интервал времени в секундах, через который вторичный сервер будет повторять обращения при неудаче.
Expire — интервал времени в секундах, через который вторичный сервер будет считать имеющуюся у него информацию устаревшей.
Minimum — интервал времени жизни информации на кэширующих серверах.
ns1.hosting.com и ns2.hosting.com это DNS домена.
Цифра 100 в последней строке означает окончание IP адреса 192.168.1, аналогично можно указывать записи для других доменов, например 101 IN PTR … для 192.168.1.101 и т.д.
Перезапустим DNS сервер чтобы применить изменения.
Bind9 можно командой:
sudo /etc/init.d/bind9 restart
Смотрите также:
Настройка Reverse DNS (PTR) в Hetzner
По умолчанию логи Bind9 записываются в системный журнал /var/log/syslog и чтобы отделить их, выполним действия которые я укажу ниже.
Читать далее «Настройка логов Bind9»Для мониторинга самой службы DNS на порту можно использовать следующий ключ в элементах данных (где СЕРВЕР, это IP-адрес или домен DNS сервера):
net.tcp.dns[СЕРВЕР]
Чтобы не создавать с нуля шаблон, можно клонировать например стандартный «Template App SSH Service» изменив в нём название и указав новый ключ, триггер изменится автоматически. А также в «Тип» выберем «Zabbix агент» вместо простой проверки.
Следующей командой можно выполнить проверку из командной строки Linux:
zabbix_get -s127.0.0.1 -k'net.tcp.dns[СЕРВЕР]'
Естественно если ответом будет 1, то служба DNS запущена, 0 — нет.
Если на узле установлен Zabbix-agent, то в поле ключ лучше указать:
proc.num[nemed]
Смотрите также мою статью:
Мониторинг Bind9 в Zabbix
SPF (инфраструктура политики отправителей) позволяет указать в TXT записи DNS параметров домена адреса с которых возможна отправка почты чтобы предотвратить e-mail spoofing.
Читать далее «Как настроить SPF записи»В Linux преобразовать список IP-адресов в DNS-имена можно например простеньким скриптом.
Для этого создадим пустой файл с расширением .sh, сделаем его исполняемым и добавим в него содержимое:
#!/bin/sh while read ip traf ; do name=`host $ip|awk '{print $NF}'` echo -e "$name\t$ip\t$traf" done >name_ip_traf.lst <ip_traf.lst
Где ip_traf.lst — файл со списком IP-адресов которые необходимо преобразовать в DNS-имена.
Исполняемым его можно сделать командой:
chmod +rwx file.sh
Запускать скрипт необходимо находясь в директории где он находится командой:
./file.sh
Или запустить указав полный путь:
/dir/file.sh
После запуска необходимо подождать некоторое время либо оборвать выполнение комбинацией клавиш CTRL+C.