DNS сервер · 4 min read · Dec 25, 2025

Установка DNS-сервера FreeBSD 7.0 с BIND - Страница 5

Мы откроем файл ports-supfile и введем имя нашего сервера:

ee /root/ports-supfile

На строке 49 вы увидите параметры сервера по умолчанию, мой выглядит так:

| *default host=cvsup.de.FreeBSD.org |

Сохраните и выйдите.

Используйте следующую команду для обновления портов:

csup -g -L 2 /root/ports-supfile

Это может занять некоторое время, однако если соединение не установилось в течение первых 2 минут, пожалуйста, убедитесь, что порт 5999 открыт в вашем файрволе (от вашего сервера к серверу обновления). Если это не сработает, просто убедитесь, что вы можете выполнить telnet на вашем сервере, используя порт 5999.

telnet cvsup.de.freebsd.org 5999

Если telnet был успешным, вы должны увидеть что-то вроде этого:

OK 17 0 SNAP_16_1h CVSup server ready

Чтобы создать индексный файл портов, нам нужно установить Perl, используя следующие команды:

cd /usr/ports/lang/perl5.8
make install clean
rehash

После этого мы обновим индекс портов и файлы readme, это может занять действительно много времени (может быть 40 минут):

cd /usr/ports
make install readmes && make index

8 Установка Portmaster и Portaudit (необязательно, но рекомендуется)

Portmaster упрощает жизнь при обновлении большинства пакетов, даже если есть другие пакеты, которые от него зависят. Например, если у вас есть сервер Apache и вы хотите обновить eXpat, вам нужно удалить eXpat и установить новую версию, делая это, вы сломаете установку Apache. Portmaster можно использовать для безопасного выполнения этой операции без разрыва каких-либо связей и т.д.

Чтобы установить Portmaster, выполните следующее:

cd /usr/ports/ports-mgmt/portmaster
make install clean
rehash

Portaudit — это хорошее приложение, которое проверяет базу данных уязвимостей при сборке портов, чтобы убедиться, что нет известных проблем с безопасностью в том, что вы устанавливаете. Если есть известная проблема, установка не продолжится, и вам будет предоставлена ссылка на уязвимость.

Чтобы установить его, выполните следующее:

cd /usr/ports/ports-mgmt/portaudit
make install clean
rehash

Если вы хотите установить программу, даже если у нее есть известная уязвимость, вы можете сделать это, используя следующую команду:

make -D DISABLE_VULNERABILITIES install clean

9 Установка и настройка DNS

BIND является частью дистрибутива FreeBSD 7.0, проверьте версию, которую вы имеете в коллекции портов, и если она равна 9.4.2, переходите к разделу конфигурации. Если она превышает 9.4.2, продолжайте с разделом установки.

Вы можете проверить версию, которую вы имеете, используя следующую команду:

cat /usr/ports/dns/bind94/Makefile | grep PORTVERSION

Установка

cd /usr/ports/dns/bind94
make configure ; make clean

Появится меню с опциями для BIND, нажмите [SPACEBAR], чтобы выбрать REPLACE_BASE, остальные можно оставить по умолчанию, затем [TAB], чтобы выделить [OK], и нажмите [ENTER], чтобы завершить процесс установки.

Конфигурация

Теперь мы настроим BIND. Первое, что мы сделаем, это добавим “NO_BIND = YES” в файл make.conf в /etc, вы можете сделать это, используя следующие команды:

cp /etc/make.conf /etc/make.conf.old
echo “NO_BIND = YES” >> /etc/make.conf

Это позволит команде make не собирать базовую версию BIND в случае, если вы будете пересобирать FreeBSD из исходников.

Теперь давайте отредактируем named.conf, чтобы настроить наши пересылки, зоны и т.д.

ee /var/named/etc/namedb/named.conf

Прокрутите вниз и закомментируйте строку listen-on (примерно строка 21), добавив // в начале строки. Это нужно для того, чтобы настроить BIND на ответ как на внутренние, так и на внешние запросы, она должна выглядеть так:

| // listen-on     { 127,0,0,1 }; |

Снова прокрутите вниз до строк 43 - 47, и вам нужно будет удалить / перед секцией forwarders, а также / после секции forwarders, затем вы можете заменить 127.0.0.1 на IP-адрес вашего DNS вашего провайдера. Если у вас есть несколько DNS вашего провайдера, вы можете добавить их все, используя ; в качестве разделителя.

Это должно выглядеть примерно так:

| forwarders {               192.168.0.2;192.168.0.3; }; |

Теперь нам нужно добавить наши зоны. В том же файле прокрутите вниз и добавьте ваши зоны прямого и обратного поиска. Чтобы добавить зону прямого поиска, добавьте следующее в конец файла:

| zone "tm.local" {         type master;         file "master/tm.local";         allow-transfer { localhost; };         allow-update { key rndc-key }; }; |

Как вы можете видеть выше, мое имя зоны и имя файла зоны оба tm.local, не стесняйтесь изменить это на ваше доменное имя.

В BIND есть функция, называемая динамическими обновлениями DNS, которая позволяет BIND работать с DHCP для динамического обновления записей клиентов. Я подробно расскажу об этом в своем учебном пособии по DHCP для FreeBSD.

Теперь нам нужно добавить зону обратного поиска, так что в конце файла мы добавим следующее:

| zone "0.168.192.in-addr.arpa" {         type master;         file "master/tm.local.rev";         allow-transfer { localhost; };         allow-update { key rndc-key }; }; |

Как вы можете видеть, мое имя зоны начинается с 0.168.192, потому что мой сетевой ID 192.168.0, после реверса это должно быть 0.168.192, вам нужно будет изменить это в зависимости от вашей сетевой конфигурации.

Сохраните и выйдите из файла.

Теперь нам нужно добавить файл rndc.key и добавить его содержимое в конец файла named.conf. rndc.key — это ключ шифрования, который необходим утилите rndc для работы, он также используется в случае, если вы используете динамический DNS вместе с DHCP.

Для этого выполните следующие команды:

rndc-confgen -a
cd /var/named/etc/namedb
cp named.conf named.conf.old
cat rndc.key >> named.conf

Теперь мы закончили с файлом named.conf, теперь нам нужно создать наши файлы зон, которые содержат записи и т.д.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.