Linux centos named что это

Как установить и настроить DNS-сервер BIND на Linux CentOS

Что такое DNS, BIND, Linux и CentOS простыми словами. Версии используемого ПО — CentOS 7, BINВ 9.

Подготовка сервера

Устанавливаем все обновления:

Устанавливаем утилиту для синхронизации времени:

yum install chrony

Настраиваем временную зону:

timedatectl set-timezone Europe/Moscow

* в данном примере выбрано московское время.

Разрешаем и запускаем сервис для синхронизации времени:

systemctl enable chronyd —now

Открываем порт в firewall:

firewall-cmd —permanent —add-port=53/udp

И перечитываем настройки сетевого экрана:

Установка и запуск BIND

Устанавливаем DNS-сервер следующей командой:

yum install bind

systemctl enable named

Запускаем сервис имен:

systemctl start named

И проверяем, что он работает корректно:

systemctl status named

Базовая настройка DNS-сервера

Открываем на редактирование конфигурационный файл bind:

и редактируем следующее:

* где 192.168.166.155 — IP-адрес нашего NS-сервера, на котором он будет принимать запросы; allow-query разрешает выполнять запросы всем, но из соображений безопасности можно ограничить доступ для конкретной сети, например, вместо any написать 192.168.166.0/24.

Для применения настроек выполните команду:

systemctl restart named

Для проверки работоспособности сервера с другого компьютера сети (например, на Windows) выполняем команду:

> nslookup dmosk.ru 192.168.166.155

* данной командой мы пытаемся узнать IP-адреса сайта dmosk.ru через сервер 192.168.166.155.

Должно получиться, примерно, следующее:

Описание глобальных опций

Перечисленные ниже параметры являются глобальными по отношению к DNS и всем настроенным зонам. Они задаются в конфигурационном файле named.conf, директиве options <>.

Опции Описания
directory Указывает рабочий каталог сервера bind. Если не указан, /var/named
forwarders Перечисляет серверы, на которые будет переведен запрос, в случае, если наш сервер не сможет его обработать (нет соответствующей зоны.)
forward Переопределяет способ обработки запроса. Принимает два значения — ONLY или FIRST. Первое указывает на то, что сервер не будет пытаться искать совпадения среди локальных зон. Второе — сервер сначала будет перенаправлять запрос и если он не будет успешно обработан, искать соответствия во внутренней базе.
listen-on На каких интерфейсах будет слушать bind
allow-transfer Указание на список серверов на которые будут разрешены зонные передачи (репликация на вторичные NS)
allow-query Список узлов, с которых разрешено обращаться к серверу. Если не задана, разрешено всем.
allow-notify Перечисленным серверам разрешает отправку уведомлений об изменениях в настройках зоны.
allow-recursion Задает список хостов, для которых разрешены рекурсивные запросы, остальным — будут разрешены итеративные. Если не задана, для всех рекурсивно.

Пример глобальных настроек

Зоны bind

Для возможности искать соответствия в собственной базе доменов, необходимо создать и настроить зоны. Существуют следующие типы зон:

  1. Первичная, она же master, она же локальная. База, которая пополняется и редактируется на текущем сервере. Подробнее как настроить первичную зону bind.
  2. Вторичная или slave. База копирует настройки с первичной зоны на другом сервере. Подробнее как настроить вторичную зону bind.
  3. Заглушка или stub. Хранит у себя только записи NS, по которым все запросы переводятся на соответствующие NS-серверы.
  4. Кэширующая или hint. Не хранит на сетбе никаких записей — только результаты уже обработанных запросов для ускорения ответов на повторные обращения.

Решение проблем с помощью log-файлов

По умолчанию, сервер Bind под CentOS хранит логи в файле /var/named/data/named.run.

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

tail -f /var/named/data/named.run

Степень детализации логов можно настроить в конфигурационном файле:

logging <
channel default_debug <
file «data/named.run»;
severity dynamic;
>;
>;

* где file — путь к log-файлу; severity — уровень чувствительности к возникающим событиям. Возможны следующие варианты для severity:

  • critical — критические ошибки.
  • error — ошибки и выше (critical).
  • warning — предупреждения и выше. Предупреждения не говорят о наличии проблем в работе сервиса, однако это такие событтия, которые могут привести с ошибкам, поэтому не стоит их игнорировать.
  • notice — уведомления и выше.
  • info — информация.
  • debug — отладка (подробный лог).
  • dynamic — тот же debug.

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

После изменения конфигурационного файла перезапускаем сервис:

systemctl restart named

Лог запросов

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

Источник

DNS в CentOS

Введение

Про DNS в целом вы можете прочитать в статье « Domain Name System »

BIND — Berkeley Internet Name Domain. Самая популярная DNS в мире.

Подготовка к установке

Перед установкой bind обновите систему и убедитесь, что у вас установлен epel-release

sudo yum update
sudo yum upgrade
yum list epel-release

Loaded plugins: fastestmirror, langpacks Determining fastest mirrors * base: mirror.hosthink.net * epel: www.nic.funet.fi * extras: mirror.hosthink.net * updates: mirror.hosthink.net Installed Packages epel-release.noarch

Installed означает, что у меня epel-release установлен

Если вместо Installed вы видите Available — тогда установите командой

sudo yum install epel-release

Установка BIND

Проверить наличие bind можно выполнив

Loaded plugins: fastestmirror, langpacks Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast Determining fastest mirrors * base: mirror.hosthink.net * epel: mirror.yandex.ru * extras: mirror.hosthink.net * updates: mirror.hosthink.net Available Packages bind.x86_64 32:9.11.4-26.P2.el7_9.5 updates

Available означает, что пакет не установлен но доступен для установки.

Установить bind и bind-utils (нужен, например, для dig) можно командой

sudo yum install -y bind bind-utils

Loaded plugins: fastestmirror, langpacks You need to be root to perform this command. [andrei@localhost

]$ sudo yum install -y bind bind-utils Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile epel/x86_64/metalink | 29 kB 00:00 * base: mirror.hosthink.net * epel: mirror.yandex.ru * extras: mirror.hosthink.net * updates: mirror.hosthink.net base | 3.6 kB 00:00 epel | 4.7 kB 00:00 extras | 2.9 kB 00:00 updates | 2.9 kB 00:00 (1/4): epel/x86_64/updateinfo | 1.0 MB 00:01 (2/4): extras/7/x86_64/primary_db | 243 kB 00:01 (3/4): epel/x86_64/primary_db | 7.0 MB 00:03 (4/4): updates/7/x86_64/primary_db | 11 MB 00:05 Resolving Dependencies —> Running transaction check —> Package bind.x86_64 32:9.11.4-26.P2.el7_9.7 will be installed —> Processing Dependency: bind-libs-lite(x86-64) = 32:9.11.4-26.P2.el7_9.7 for package: 32:bind-9.11.4-26.P2.el7_9.7.x86_64 —> Processing Dependency: bind-libs(x86-64) = 32:9.11.4-26.P2.el7_9.7 for package: 32:bind-9.11.4-26.P2.el7_9.7.x86_64 —> Package bind-utils.x86_64 32:9.11.4-26.P2.el7_9.5 will be updated —> Package bind-utils.x86_64 32:9.11.4-26.P2.el7_9.7 will be an update —> Running transaction check —> Package bind-libs.x86_64 32:9.11.4-26.P2.el7_9.5 will be updated —> Package bind-libs.x86_64 32:9.11.4-26.P2.el7_9.7 will be an update —> Processing Dependency: bind-license = 32:9.11.4-26.P2.el7_9.7 for package: 32:bind-libs-9.11.4-26.P2.el7_9.7.x86_64 —> Package bind-libs-lite.x86_64 32:9.11.4-26.P2.el7_9.5 will be updated —> Package bind-libs-lite.x86_64 32:9.11.4-26.P2.el7_9.7 will be an update —> Running transaction check —> Package bind-license.noarch 32:9.11.4-26.P2.el7_9.5 will be updated —> Package bind-license.noarch 32:9.11.4-26.P2.el7_9.7 will be an update —> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: bind x86_64 32:9.11.4-26.P2.el7_9.7 updates 2.3 M Updating: bind-utils x86_64 32:9.11.4-26.P2.el7_9.7 updates 261 k Updating for dependencies: bind-libs x86_64 32:9.11.4-26.P2.el7_9.7 updates 157 k bind-libs-lite x86_64 32:9.11.4-26.P2.el7_9.7 updates 1.1 M bind-license noarch 32:9.11.4-26.P2.el7_9.7 updates 91 k Transaction Summary ================================================================================ Install 1 Package Upgrade 1 Package (+3 Dependent packages) Total download size: 3.9 M Downloading packages: No Presto metadata available for updates (1/5): bind-libs-9.11.4-26.P2.el7_9.7.x86_64.rpm | 157 kB 00:00 (2/5): bind-9.11.4-26.P2.el7_9.7.x86_64.rpm | 2.3 MB 00:02 (3/5): bind-libs-lite-9.11.4-26.P2.el7_9.7.x86_64.rpm | 1.1 MB 00:01 (4/5): bind-license-9.11.4-26.P2.el7_9.7.noarch.rpm | 91 kB 00:00 (5/5): bind-utils-9.11.4-26.P2.el7_9.7.x86_64.rpm | 261 kB 00:00 ——————————————————————————— Total 1.8 MB/s | 3.9 MB 00:02 Running transaction check Running transaction test Transaction test succeeded Running transaction Updating : 32:bind-license-9.11.4-26.P2.el7_9.7.noarch 1/9 Updating : 32:bind-libs-lite-9.11.4-26.P2.el7_9.7.x86_64 2/9 Updating : 32:bind-libs-9.11.4-26.P2.el7_9.7.x86_64 3/9 Installing : 32:bind-9.11.4-26.P2.el7_9.7.x86_64 4/9 Updating : 32:bind-utils-9.11.4-26.P2.el7_9.7.x86_64 5/9 Cleanup : 32:bind-utils-9.11.4-26.P2.el7_9.5.x86_64 6/9 Cleanup : 32:bind-libs-9.11.4-26.P2.el7_9.5.x86_64 7/9 Cleanup : 32:bind-libs-lite-9.11.4-26.P2.el7_9.5.x86_64 8/9 Cleanup : 32:bind-license-9.11.4-26.P2.el7_9.5.noarch 9/9 Verifying : 32:bind-9.11.4-26.P2.el7_9.7.x86_64 1/9 Verifying : 32:bind-libs-9.11.4-26.P2.el7_9.7.x86_64 2/9 Verifying : 32:bind-utils-9.11.4-26.P2.el7_9.7.x86_64 3/9 Verifying : 32:bind-libs-lite-9.11.4-26.P2.el7_9.7.x86_64 4/9 Verifying : 32:bind-license-9.11.4-26.P2.el7_9.7.noarch 5/9 Verifying : 32:bind-libs-9.11.4-26.P2.el7_9.5.x86_64 6/9 Verifying : 32:bind-libs-lite-9.11.4-26.P2.el7_9.5.x86_64 7/9 Verifying : 32:bind-utils-9.11.4-26.P2.el7_9.5.x86_64 8/9 Verifying : 32:bind-license-9.11.4-26.P2.el7_9.5.noarch 9/9 Installed: bind.x86_64 32:9.11.4-26.P2.el7_9.7 Updated: bind-utils.x86_64 32:9.11.4-26.P2.el7_9.7 Dependency Updated: bind-libs.x86_64 32:9.11.4-26.P2.el7_9.7 bind-libs-lite.x86_64 32:9.11.4-26.P2.el7_9.7 bind-license.noarch 32:9.11.4-26.P2.el7_9.7 Complete!

Пакет, который мы установили называется bind но сервис назывется named

Поэтому для запуска сервиса при загрузке системы нужно выполнить

sudo systemctl enable named

Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.

Пока он не запущен статус будет inactive (dead)

systemctl status named

● named.service — Berkeley Internet Name Domain (DNS) Loaded: loaded (/usr/lib/systemd/system/named.service; enabled; vendor preset: disabled) Active: inactive (dead)

Запуск named

sudo systemctl start named

Перезапуск named

sudo systemctl restart named

Проверка состояния named

sudo systemctl status -l named

● named.service — Berkeley Internet Name Domain (DNS) Loaded: loaded (/usr/lib/systemd/system/named.service; enabled; vendor preset: disabled) Active: active (running) since Mon 2021-10-11 06:45:14; EEST; 1s ago Process: 3143 ExecStart=/usr/sbin/named -u named -c $ $OPTIONS (code=exited, status=0/SUCCESS) Process: 3141 ExecStartPre=/bin/bash -c if [ ! «$DISABLE_ZONE_CHECKING» == «yes» ]; then /usr/sbin/named-checkconf -z «$NAMEDCONF»; else echo «Checking of zone files is disabled»; fi (code=exited, status=0/SUCCESS) Main PID: 3145 (named) Tasks: 4 CGroup: /system.slice/named.service └─3145 /usr/sbin/named -u named -c /etc/named.conf Oct 11 06:45:14 localhost.localdomain named[3145]: network unreachable resolving ‘./DNSKEY/IN’: 2001:500:2f::f#53 Oct 11 06:45:14 localhost.localdomain named[3145]: network unreachable resolving ‘./NS/IN’: 2001:500:2f::f#53 Oct 11 06:45:14 localhost.localdomain named[3145]: network unreachable resolving ‘./DNSKEY/IN’: 2001:500:12::d0d#53 Oct 11 06:45:14 localhost.localdomain named[3145]: network unreachable resolving ‘./NS/IN’: 2001:500:12::d0d#53 Oct 11 06:45:14 localhost.localdomain named[3145]: network unreachable resolving ‘./DNSKEY/IN’: 2001:503:c27::2:30#53 Oct 11 06:45:14 localhost.localdomain named[3145]: network unreachable resolving ‘./DNSKEY/IN’: 2001:500:12::d0d#53 Oct 11 06:45:14 localhost.localdomain named[3145]: network unreachable resolving ‘./DNSKEY/IN’: 2001:500:9f::42#53 Oct 11 06:45:14 localhost.localdomain named[3145]: network unreachable resolving ‘./DNSKEY/IN’: 2001:500:a8::e#53 Oct 11 06:45:14 localhost.localdomain named[3145]: resolver priming query complete Oct 11 06:45:14 localhost.localdomain named[3145]: managed-keys-zone: Key 20326 for zone . acceptance timer complete: key now trusted

Проверка iptables

sudo iptables -L

На чистой системе, скорее всего не будет никаких правил

Chain INPUT (policy ACCEPT) target prot opt source destination Chain INPUT (policy ACCEPT) target prot opt source destination Chain INPUT (policy ACCEPT) target prot opt source destination

Если уже включен firewall то открыть нужно порт 53

Проверка netstat

Изучить, какие слушаютс порты можно с помощью netstat

Если named выключен

Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN tcp6 0 0 . 22 . * LISTEN tcp6 0 0 ::1:25 . * LISTEN

Если named включен

Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN tcp6 0 0 ::1:53 . * LISTEN tcp6 0 0 . 22 . * LISTEN tcp6 0 0 ::1:953 . * LISTEN tcp6 0 0 ::1:25 . * LISTEN

Порт 53 слушается для DNS lookup

Порт 953 используется для контроля за DNS сервером

Полный список TCP/UDP портов вы можете изучить здесь

dig: Выполнить DNS запрос

На внешнем сервере

Чтобы выполнить dig достаточно установить bind-utils

; > DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.7 > www.andreyolegovich.ru ;; global options: +cmd ;; Got answer: ;; ->>HEADER > DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.7 > www.andreyolegovich.ru @127.0.0.1 ;; global options: +cmd ;; Got answer: ;; ->>HEADER > DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.7 > mail.google.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER named.conf и лежит в

Настройка caching DNS сервера

Внесём небольшие изменения в файл с конфигурацией

// // named.conf // // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS // server as a caching only nameserver (as a localhost DNS resolver only). // // See /usr/share/doc/bind*/sample/ for example named configuration files. // // See the BIND Administrator’s Reference Manual (ARM) for details about the // configuration located in /usr/share/doc/bind-/Bv9ARM.html options < listen-on port 53 < 127.0.0.1; >; listen-on-v6 port 53 < ::1; >; directory «/var/named»; dump-file «/var/named/data/cache_dump.db»; statistics-file «/var/named/data/named_stats.txt»; memstatistics-file «/var/named/data/named_mem_stats.txt»; recursing-file «/var/named/data/named.recursing»; secroots-file «/var/named/data/named.secroots»; allow-query < localhost; >; /* — If you are building an AUTHORITATIVE DNS server, do NOT enable recursion. — If you are building a RECURSIVE (caching) DNS server, you need to enable recursion. — If your recursive DNS server has a public IP address, you MUST enable access control to limit queries to your legitimate users. Failing to do so will cause your server to become part of large scale DNS amplification attacks. Implementing BCP38 within your network would greatly reduce such attack surface */ recursion yes; dnssec-enable yes; dnssec-validation yes; /* Path to ISC DLV key */ bindkeys-file «/etc/named.root.key»; managed-keys-directory «/var/named/dynamic»; pid-file «/run/named/named.pid»; session-keyfile «/run/named/session.key»; >; logging < channel default_debug < file "data/named.run"; severity dynamic; >; >; zone «.» IN < type hint; file "named.ca"; >; include «/etc/named.rfc1912.zones»; include «/etc/named.root.key»;

systemctl restart named

Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 192.168.56.149:53 0.0.0.0:* LISTEN tcp 0 0 10.0.2.49:53 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN tcp6 0 0 . 22 . * LISTEN tcp6 0 0 ::1:953 . * LISTEN tcp6 0 0 ::1:25 . * LISTEN

На IPv6 больше не слушается порт 53. Количество IPv4 адресов на которых теперь слушается порт 53 увеличилось — сравните с тем что было раньше если не запомнили.

query: Запросы

Разрешить запросы к серверу можно указав нужный хост или сеть в allow-query

options < listen-on port 53 < any; >; listen-on-v6 port 53 < none; >; directory «/var/named»; dump-file «/var/named/data/cache_dump.db»; statistics-file «/var/named/data/named_stats.txt»; memstatistics-file «/var/named/data/named_mem_stats.txt»; recursing-file «/var/named/data/named.recursing»; secroots-file «/var/named/data/named.secroots»; allow-query < localhost; 192.168.56.0/24 >;

Использовать DNS сервер из локальной сети

В данном примере в сети есть два хоста:

dns-server.andrei.com с IP адресом 192.168.56.149

host113.andrei.com с IP адресом 192.168.56.113

Напоминаю, что в named.conf внесены следующие изменения

На сервере 192.168.56.149 нужно открыть порт 53 для tcp и udp

]# firewall-cmd —zone=public —add-port=53/tcp —permanent
[root@dns-server

]# firewall-cmd —zone=public —add-port=53/udp —permanent
[root@dns-server

Полный список портов вы можете изучить в статье « Компьютерные сети »

Подробнее про работу с Firewall читайте в статье « CentOS Firewall »

На хосте 192.168.56.113 теперь можно выполнить dig @192.168.56.149 и если dns-server имеет нужные данные это должно сработать.

В этом примере по умолчанию установлено

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

; > DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.7 > www.heihei.ru @192.168.56.149 ;; global options: +cmd ;; Got answer: ;; ->>HEADER forwarders < 8.8.8.8; 8.8.4.4; 1.1.1.1; 1.0.0.1; >; forward only;

8.8.8.8; 8.8.4.4; — это публичные DNS сервера Google

1.1.1.1; 1.0.0.1; — это публичные DNS сервера Cloudflare

Порядок перечисления не имеет значения — будет использоваться тот, от которого быстрее отклик.

forward может принимать одно из двух значений: first или only

Подробнее опции first и only вы можете изучить в статье forward

Источник

Читайте также:  Имя исходного каталога макета слишком длинное visual studio windows 10
Оцените статью