- Установка и настройка bind на Ubuntu
- Подготовка системы
- Установка и запуск
- Базовая настройка
- Создание и настройка зон
- Установка и настройка DNS-сервера BIND в Linux
- Установка сервера bind
- Создание файла зоны DNS
- Настройка обратной зоны
- Настройка файла конфигурации bind
- Проверка файлов зоны и конфигурации
- Проверка обратной зоны
- Запуск и перезапуск сервера bind
- Тестирование сервера bind
- Linux bind and dns
- Contents
- Installation
- Configuration
- Restrict access to localhost
- Set up DNS forwarding
- A configuration template for running a domain
- Creating a zonefile
- Configuring master server
- Allow recursion
- Configuring BIND to serve DNSSEC signed zones
- See also
- Automatically listen on new interfaces
- Running BIND in a chrooted environment
- Creating the jail house
- Service unit
- Пошаговое руководство по настройке DNS-сервера BIND в chroot среде для Red Hat (RHEL / CentOS) 7
Установка и настройка bind на Ubuntu
Для примера, используется Ubuntu Server 16.04 LTS. Инструкция во многом подойдет для дистрибутивов Linux, основанных на Debian.
Подготовка системы
Если в системе настроен брандмауэр, добавляем правило на разрешение входящих пакетов на 53 UDP-порт:
iptables -I INPUT 1 -p udp —dport 53 -j ACCEPT
* данной командой мы вставляем первое правило на разрешение 53 порта по протоколу UDP.
Установка и запуск
Устанавливаем DNS-сервер следующей командой:
apt-get install bind9 dnsutils
Добавляем сервис в автозапуск:
systemctl enable bind9
* или для старых систем, где нет systemd update-rc.d bind9 defaults.
systemctl start bind9
* или service bind9 start.
Проверяем, что сервис работает:
nslookup dmosk.ru 127.0.0.1
Получаем, что-то на подобие:
Server: 127.0.0.1
Address: 127.0.0.1#53
Non-authoritative answer:
Name: dmosk.ru
Address: 90.156.242.197
Базовая настройка
Основной конфигурационный файл находится по пути /etc/bind/named.conf. В последних версиях bind в нем ничего не настраивается, а используются подключаемые файлы.
По умолчанию, сервер разрешает только локальные запросы. Чтобы разрешить обращаться к серверу, открываем конфигурационный файл:
И добавляем строку:
* в данном примере будут разрешены запросы для всех клиентов (внутренних и внешних). Вместо any можно прописать конкретные сети или IP-адреса.
Если необходимо настроить сервер только для локальной сети, настройка будет следующей:
* где 192.168.0.0/24 — используемая локальная сеть.
Если необходимо перенаправлять запросы на определенный сервер DNS, добавляем строку:
* в данном примере запросы будут перенаправляться на сервер 77.88.8.8 и если они не будут обработаны — на 8.8.8.8.
systemctl restart bind9
* или service bind9 restart.
На этом базовая настройка закончена. Наш сервер готов принимать и отдавать запросы и работать, как кэширующий dns.
Проверить его работу можно с удаленного компьютера Windows или Linux командой:
nslookup ubuntu.com 192.168.0.15
* где 192.168.0.15 — адрес сервера в локальной сети.
Создание и настройка зон
Если необходимо, чтобы bind разрешал записи для собственного домена, необходимо создать соответствующую зону.
Источник
Установка и настройка DNS-сервера BIND в Linux
BIND – наиболее распространенное open-source приложение, в котором реализованы протоколы DNS, предоставляющие возможность преобразования доменных имен в IP-адреса и наоборот.
Данная статья представляет собой руководство по быстрой настройке DNS-сервера в Linux при помощи BIND. Мы не будем подробно разбирать, что такое система DNS и как она работает, а сосредоточимся на примере настройки своей зоны и файла конфигурации для домена/узла с поддержкой сервисов www и электронной почты.
В нашем примере мы будем использовать следующие параметры:
IP-адрес, на котором будет установлен сервер имен: 172.31.0.122
имя домена/узла: itproffi.ru
авторитативные сервера имен для зоны itproffi.ru: ns1.itproffi.ru (172.31.1.10) и ns2. itproffi.ru (172.31.1.11)
службы www и электронной почты для itproffi.ru будут использовать адрес 172.31.1.10
Установка сервера bind
Установка bind очень проста – нужно воспользоваться менеджером пакетов. В Debian и Ubuntu выполните следующую команду:
В CentOS или Fedora:
Пакет dnsutils необязателен для запуска сервера bind, но для тестирования конфигурации мы будем пользоваться командой dig из этого пакета.
Создание файла зоны DNS
Дальнейшие примеры будут для Ubuntu/Debian, но также подходят и для Centos/RedHat, только директория с настройками зон в CentOS будет находиться в /etc/named/ , а основной файл конфигурации /etc/named.conf . Для начала нам потребуется создать новый файл зоны для домена itproffi.ru. Перейдите в директорию /etc/bind/ . создайте в ней поддиректорию zones/master/ и перейдите в нее, выполнив следующую последовательность команд:
Директория /etc/bind/zones/master будет содержать файл зоны для домена itproffi.ru. При желании можно использовать другую директорию. Файл зоны db.itproffi.ru будет содержать запись DNS, которая поможет серверу имен установить соответствие полного доменного имени IP-адресу. Создайте этот файл со следующим содержимым:
Рассмотрим ключевые строки этого файла:
- Запись SOA: авторитативный сервер имен для itproffi.ru – это ns1.itproffi.ru, адрес ответственного за зону DNS администратора – admin@itproffi.ru
- Записи NS: два сервера имен для зоны itproffi.ru – ns[1,2].itproffi.ru
- Запись MX: почтовый сервер для itproffi.ru. Число 10 означает уровень приоритета
- Записи A: A означает «адрес» (address). Другими словами, ns1 в зоне itproffi.ru будет иметь адрес 172.31.1.10
- Запись CNAME (Canonical Name – каноническое имя): привязывает одно доменное имя к другому (каноническому), например, устанавливает соответствие mail.itproffi.ru и itproffi.ru.
Настройка обратной зоны
На данном этапе DNS-сервер bind может выдать IP-адрес, связанный с узлом itproffi.ru. Теперь нам нужно научить наш сервер имен обратному процессу, то есть устанавливать соответствие имени IP-адресу. Для этого создадим еще один файл db.172.31.1 со следующим содержимым:
Запись PTR: DNS-запись, используемая для определения соответствия IP-адреса имени узла.
Настройка файла конфигурации bind
На данный момент у нас должно быть два файла:
Теперь требуется вставить имена обоих файлов зоны в файл конфигурации bind /etc/bind/named.conf.local . Для этого добавьте в файл следующие строки:
Последний момент перед проверкой конфигурации – внести в файл named.conf.options IP-адрес стабильного DNS-сервера. Он будет использоваться, если локальный DNS-сервер не будет знать ответ на запрос разрешения имени. Часто этот адрес предоставляется интернет-провайдером, но если вы поклонник Google, можно указать адрес 8.8.8.8 или 8.8.4.4.
Замените следующий блок текста в файле named.conf.options:
на блок текста с адресом стабильного DNS-сервера
Если вы планируйте что к вашему серверу будут подключаться другие компьютеры, то нужно разрешить в опциях внешние подключения. Для этого в основном файле конфигурации, в секции options добавьте или замените следующие правила
А лучше, для безопасности вместо any пропишите ваши сети с которых разрешено подключение
Если этого не сделать, то при попытке обращения к серверу с другого компьютера вы получите ошибку
Проверка файлов зоны и конфигурации
Прежде чем попытаться запустить сервер имен с новой зоной и конфигурацией, можно воспользоваться некоторыми инструментами, чтобы проверить, что конфигурация корректна и не содержит ошибок.
Для проверки файлов конфигурации выполните следующую команду:
С этой командой работает простое правило: отсутствие результата – это хороший результат. Если команда ничего не возвращает, значит ошибок в ваших файлах конфигурации не обнаружено.
Для проверки файлов зоны DNS можно воспользоваться командой named-checkzone:
Проверка обратной зоны
Запуск и перезапуск сервера bind
Теперь мы можем запускать сервер bind:
Если сервер уже был запущен, его можно перезапустить командой restart:
Для того что бы перечитать конфигурацию не перезапуская сервер, используйте команду
Тестирование сервера bind
Для тестирования новой конфигурации сервера имен bind нам пригодится команда dig из пакета dnsutils. Эту команду можно запустить на любом компьютере с сетевым доступом к вашему DNS-серверу, но лучше всего начать тестирование с локального узла. В рассматриваемом нами примере IP-адрес сервера имен 172.31.0.122. Сначала проверим прямое разрешение имени (получение IP-адреса по доменному имени):
dig @172.31.0.122 www.itproffi.ru
Теперь проверим обратную зону:
dig @172.31.0.122 -x 172.31.1.10
Если вы получили аналогичные результаты, то зона DNS настроена правильно. Вместо команды dig для тестирования можно также использовать команду nslookup.
nslookup 172.31.1.10 172.31.0.122
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Источник
Linux bind and dns
This article or section needs language, wiki syntax or style improvements. See Help:Style for reference.
BIND (or named) is the most widely used Domain Name System (DNS) server.
Contents
Installation
Start/enable the named.service systemd unit.
To use the DNS server locally, use the 127.0.0.1 nameserver (meaning clients like Firefox resolve via 127.0.0.1), see Domain name resolution. This will however require you to #Allow recursion while a firewall might block outside queries to your local named.
Configuration
BIND is configured in /etc/named.conf . The available options are documented in named.conf(5) .
Reload the named.service unit to apply configuration changes.
Restrict access to localhost
BIND by defaults listens on port 53 of all interfaces and IP addresses. To only allow connections from localhost add the following line to the options section in /etc/named.conf :
Set up DNS forwarding
To make BIND forward DNS queries to another DNS server add the forwarders clause to the options section.
Example to make BIND forward to the Google DNS servers:
A configuration template for running a domain
Following is a simple home nameserver being set up, using domain.tld as the domain being served world-wide like this wiki’s archlinux.org domain is.
A more elaborate example is DNS server with BIND9, while this shows how to set up internal network name resolution.
Creating a zonefile
$TTL defines the default time-to-live in seconds for all record types. Here it is 2 hours.
Serial must be incremented manually before restarting named every time you change a resource record for the zone. Otherwise slaves will not re-transfer the zone: they only do it if the serial is greater than that of the last time they transferred the zone.
Configuring master server
Add your zone to /etc/named.conf :
Reload the named.service unit to apply the configuration change.
Allow recursion
If you are running your own DNS server, you might as well use it for all DNS lookups, or even locally serve the root-zone yourself following RFC:7706. The former will require the ability to do recursive lookups. In order to prevent DNS Amplification Attacks, recursion is turned off by default for most resolvers. The default Arch /etc/named.conf file allows for recursion only on the loopback interface:
The factual accuracy of this article or section is disputed.
If you want to provide name service for your local network; e.g. 192.168.0.0/24, you must add the appropriate range of IP addresses to /etc/named.conf :
Configuring BIND to serve DNSSEC signed zones
DNSSEC validation is enabled by default. Do not forget to check that «edns» is not disabled.
On master DNS server:
- generate KSK and ZSK keys:
- change zone configuration:
Now bind will sign zone automatically. (This example assumes that all required files are in /var/named/master/)
Then you should pass DS records (from dsset-example.com. file) to parent zone owner probably using your registrar website. It glues parent zone with your KSK.
KSK (and corresponding DS records) should be changed rarely because it needs manual intervention, ZSK can be changed more often because this key is usually shorter to be faster in signature checking.
You can schedule old ZSK key expiration and generate new one using:
Bind should automatically use new ZSK key at appropriate time.
See also
There are external mechanisms such as OpenDNSSEC with fully-automatic key rollover available.
Automatically listen on new interfaces
By default bind scan for new interfaces and stop listening on interfaces which no longer exist every hour. You can tune this value by adding :
parameter into named.conf options section. Max value is 28 days. (40320 min)
You can disable this feature by setting its value to 0.
Then restart the service.
Running BIND in a chrooted environment
Running in a chroot environment is not required but improves security.
This article or section needs expansion.
Creating the jail house
In order to do this, we first need to create a place to keep the jail, we shall use /srv/named , and then put the required files into the jail.
Copy over required system files:
Set up required dev nodes:
Set ownership of the files:
This should create the required file system for the jail.
Service unit
Next we need to create the new service file which will allow force bind into the chroot
we need to edit how the service calls bind.
Источник
Пошаговое руководство по настройке DNS-сервера BIND в chroot среде для Red Hat (RHEL / CentOS) 7
Перевод статьи подготовлен для студентов курса «Безопасность Linux». Интересно развиваться в данном направлении? Смотрите запись трансляции мастер-класса Ивана Пискунова «Безопасность в Linux в сравнении с Windows и MacOS»
В этой статье я расскажу о шагах по настройке DNS-сервера на RHEL 7 или CentOS 7. Для демонстрации я использовал Red Hat Enterprise Linux 7.4. Наша цель — создать одну A-запись и одну PTR-запись для зоны прямого и обратного просмотра соответственно.
Сначала установите необходимые rpm-пакеты для DNS-сервера.
ПРИМЕЧАНИЕ: Для RHEL у вас должна быть активная подписка на RHN, или вы можете настроить локальный автономный репозиторий, с помощью которого менеджер пакетов «yum» сможет установить необходимые rpm-пакеты и зависимости.
Поскольку мы будем использовать chroot, нужно отключить службу.
Затем скопируйте необходимые файлы в каталог chroot.
ПРИМЕЧАНИЕ. Используйте аргумент -p в команде cp для сохранения прав и владельцев.
Затем скопируйте файлы, связанные с зоной, в новое место.
Очистите содержимое named.conf и вставьте следующее.
Информация, относящаяся к зоне, должна быть добавлена в /var/named/chroot/etc/named.rfc1912.zones. Добавьте записи, приведенные ниже. Файл example.zone — это файл зоны прямого просмотра, а example.rzone — файл обратной зоны.
ВАЖНОЕ ПРИМЕЧАНИЕ: Зона обратного просмотра содержит 1.168.192, поскольку мой IP-адрес 192.168.1.7
Файлы, связанные с зонами, находятся здесь:
Далее создадим файлы для прямой и обратной зоны. Имена файлов будут такими же, как выше в файле named.rfc1912.zones. У нас уже есть несколько шаблонов по умолчанию, которые мы можем использовать.
Как видите, текущие разрешения на все файлы и каталоги принадлежат root.
Измените права всех файлов, указав в качестве владельца пользователя root и группу named.
Но для data владелец должен быть named:named.
Добавьте приведенное ниже содержимое в файл прямой зоны. Здесь мы создаем A-запись для localhost (golinuxhub-client) и еще одну для сервера (golinuxhub-server).
Далее добавьте содержимое в файл обратной зоны. Здесь мы создаем PTR-запись для golinuxhub-client и для сервера golinuxhub-server.
Прежде чем мы запустим сервис named-chroot, проверим конфигурацию файла зоны.
Все выглядит хорошо. Теперь проверьте файл конфигурации, используя следующую команду.
Итак, все выполнено успешно.
ВАЖНОЕ ПРИМЕЧАНИЕ: у меня SELinux находится в режиме permissive
Все выглядит хорошо, так что пора запускать наш сервис named-chroot .
Как вы видите, мы получили положительный ответ (ANSWER) на наш запрос (QUERY).
Точно так же мы можем проверить прямую зону.
Эта статья немного устарела, так как в RHEL 7 теперь не нужно копировать файлы конфигурации bind в chroot. Step-by-Step Tutorial: Configure DNS Server using bind chroot (CentOS/RHEL 7).
Источник