Замена BIND на Unbound
Ставим Unbound:
sudo apt-get install unbound
После установки перечитываем конфигурационный файл
cat /etc/unbound/unbound.conf
если та есть строка
include: "/etc/unbound/unbound.conf.d/*.conf"
то добавляем новый файл конфигурации
# mcedit /etc/unbound/unbound.conf.d/local.conf
со следующим содержимым:
server: # Порт - естественно 53 port: 53 # Степень вывода логов (1-4, при уровне 4 в логи будет попадать вся отладочная информация, # при уровне 1 - только сообщения об ошибках) verbosity: 0 # Количество потоков. Рекомендуется ставить равным числу ядер процессора num-threads: 2 # Подстроим параметры кэша и время жизни: # Число открываемых портов и запросов на нить outgoing-range: 512 num-queries-per-thread: 1024 # Задаем размеры кэша сообщений и RRset msg-cache-size: 16m rrset-cache-size: 32m # Задаем время жизни записей в кэше, записи о хосте, время ожидания ответа cache-max-ttl: 86400 infra-host-ttl: 60 infra-lame-ttl: 120 # Описываем интерфейсы для прослушивания interface: 127.0.0.1 interface: 192.168.0.3 # ip адрес интерфейса, который подключен к интернет outgoing-interface: 192.168.0.3 # Разрешаем любые запросы к ДНС из локалки access-control: 192.168.0.0/24 allow # разрешаем ip4/tcp/udp, запрещаем поддержку ipv6 do-ip4: yes do-ip6: no do-udp: yes do-tcp: yes # От чьего имени работает daemon unbound, каталог конфигурации, куда класть логи, где pid username: unbound directory: "/etc/unbound" logfile: "/var/log/unbound.log" use-syslog: no # не говорить при запросах версию ПО, мало ли что придумают кулхацкеры hide-version: yes # Опишем нашу локальную сеть local-zone: "192.in-addr.arpa." static local-data: "192.in-addr.arpa. 10800 IN NS adminunix.ru." local-data: "192.in-addr.arpa. 10800 IN SOA adminunix.ru. admin.adminunix.ru. 1 3600 1200 604800 10800" local-data: "119.0.168.192.in-addr.arpa. 10800 IN PTR adminunix.ru." local-data: "adminunix.ru. 10800 IN A 192.168.0.3" # so-rcvbuf: 4m # обьем буфера для приема UDP пакетов (рекомендованное стартовое значение) so-sndbuf: 4m # обьем буфера для отправки UDP пакетов (рекомендованное стартовое значение)
Глядя на конфиг мы видим что все настройки хранятся в одном файле — на мой взгляд очень удобно. Кому мало информации man unbound.conf или гугл в помощь — функционал достаточно богатый, так что возможна очень детальная настройка. Сохраняем настройки и запускаем сервер
# service unbound start
# ps auxw | grep unbound
unbound 9307 0.0 0.1 122624 9272 ? Ssl 20:05 0:00 /usr/sbin/unbound root 10881 0.0 0.0 17184 936 pts/1 S+ 22:25 0:00 grep --color=auto unbound
# netstat -anp | grep 53
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 9307/unbound tcp 0 0 192.168.0.3:53 0.0.0.0:* LISTEN 9307/unbound
Добавляем правила для хождения запросов по 53 порту в файервол или правим существовавшие:
$IPT -A INPUT -m state --state NEW -p tcp -m tcp --dport 53 -j ACCEPT $IPT -A INPUT -m state --state NEW -p udp -m udp --dport 53 -j ACCEPT
вот и все, теперь можно прописать новый ДНС и пользоваться.
В релизе FreeBSD 10.0 DNS-сервер BIND заменен на связку из кеширующего DNS- сервера Unbound и библиотеки LDNS
Устанавливаем
pkg install unbound
После создания конфигурационного файла проверим конфигурацию с помощью уже известной утилиты unbound-checkconf:
# unbound-checkconf unbound-checkconf: no errors in /var/unbound/unbound.conf
Кажется все в порядке. Добавим загрузку демона при старте системы:
# echo '# DNS server' >> /etc/rc.conf # echo 'local_unbound_enable="YES"' >> /etc/rc.conf
Кажется ничего не пропустили... Даем команду на запуск:
# sh /etc/rc.d/local_unbound start Starting local_unbound.
Проверим, запустился ли процесс:
# ps -ax | grep unbound | grep -v grep 2340 - Is 0:00,03 /usr/sbin/unbound -c/var/unbound/unbound.conf