- Настройка Bind9 на Ubuntu
- Настройка DNS-сервера BIND9 на Ubuntu 20.04 LTS
- Зачем запускать собственный локальный DNS-сервер?
- Установка локального DNS-сервера BIND9 на Ubuntu 20.04
- Настройка локального DNS-сервера BIND9 на Ubuntu 20.04 LTS
- Resolver DNS в Ubuntu 20.04 LTS
- BIND 9: опыт настройки и эксплуатации DNS-сервера
- Содержание статьи
- Итак, планы на сегодня!
- Xakep #211. Когда «Окна» смотрят в тебя
- Интро
- Немного теории
- Быстрая установка, или еще раз об одном и том же
- Александр «Plus» Рак
Настройка Bind9 на Ubuntu
Добрый день, сегодня расскажу как настроить DNS на сервере Ubuntu 14.04 LTS. Для начало теория: DNS это служба сервера, которая преобразует доменное имя в IP-адрес. Например www.example.com будет преобразовано в 93.184.216.34. Записи в DNS имеют несколько типов (Основные: A-address record, AAAA-IPv6 address record, CNAME-canonical name record, MX-mail exchange, NS-name server, PTR-pointer, SOA-Start of Authority).
И так приступим к самой настройке DNS. Прежде всего, я полагаю что у Вас установлен сервер Ubuntu 14.04 LTS, выполнено его обновление. Для обновления, выполните в командной строке две команды:
sudo apt-get upgrade
После выполнения обновления выполним установку службы Bind9.
sudo apt-get install bind9
Bind9 установлен, но не настроен. Произведем его настройку. Остановим службу:
sudo service bind9 stop
Укажем адреса, на которых Bind9 будет слушать запросы и куда перенаправлять в случае если он не отвечает за эту зону. Для этого открываем файл /etc/bind/named.conf.options
sudo nano /etc/bind/named.conf.options
в графу forwarders указываем сервера для пересылки запросов, а в графу listen-on указываем на каких адресах он должен отвечать. Должно получится что-то вроде этого:
Обратите внимание на строку listen-on-v6 < any; >; если у Вас включен IPv6, то Bind9 будет слушать на всех адресах IPv6. Если необходимо этого избежать, то за комментируйте эту строку или укажите конкретный адрес. Не рекомендуется слушать на всех адресах, особенно которые на прямую смотрят в интернет, так как существует масса атак на DNS сервера.
Теперь настроим зоны, которыми будет управлять наш Bind9. Для этого открываем файл /etc/bind/named.conf.local
sudo nano /etc/bind/named.conf.local
Прописываем согласно примера:
Теперь создадим файл зон:
sudo touch /etc/bind/db.example.com
sudo touch /etc/bind/db.0.168.192
В файл /etc/bind/db.example.com мы должны прописать зоны прямого просмотра и указать NS сервера, по сколько мы будем являться для данного домена NS сервером, то необходимо указать имя нашего хоста. У меня имя хоста сервера, заданное при установке, srv-bind9. Заполняем по примеру:
Прямую зону настроили, теперь настроим обратную. Открываем файл: /etc/bind/db.0.168.192 и настраиваем по примеру:
Осталось проверить правильность настроек выполнив команду:
Если она ничего не сообщила, то всё сделано правильно. И можно запускать Bind9:
sudo service bind9 start
Вот мы и закончили установку и настройку Bind9
Источник
Настройка DNS-сервера BIND9 на Ubuntu 20.04 LTS
Сегодня в статье рассмотрим пример настройки локального DNS-сервера BIND9 на Ubuntu 20.04 LTS. Всё нижеописанное применимо и для других Debian дистрибутивов, с небольшими поправками на названия файлов и их путей.
Зачем запускать собственный локальный DNS-сервер?
Обычно ваш компьютер или маршрутизатор использует DNS-сервер поставщика услуг интернета для запроса DNS-имен. Запуск собственного локального DNS-сервера может ускорить поиск DNS-имен:
- Локальный DNS-сервер слушает только ваши DNS-запросы и не отвечает на другие, поэтому у вас есть гораздо более высокий шанс получить ответы DNS непосредственно из вашего кэша .
- Сетевая задержка между вашим компьютером и DNS-сервером почти нулевая, поэтому DNS-запросы могут быть отправлены на корневые DNS-сервера быстрее.
Если вы запускаете свой собственный почтовый сервер или VPN-сервер на VPS хостинге, то вам также рекомендуется установить собственный DNS-сервер на том же VPS.
Вы также можете запустить свой собственный DNS-сервер, если вам не нравится, что ваша история серфинга Интернета хранится на сторонних серверах.
Если вы владеете веб-сайтом и хотите, чтобы ваш собственный DNS-сервер обрабатывал запросы для вашего доменного имени вместо использования DNS-сервера вашего регистратора, то вам также нужен собственный DNS.
Поскольку наш DNS сервер будет использоваться на локальном хосте/локальной сети, шифрование (DNS через TLS или DNS через HTTPS) не требуется. Настройка Dot или DoH сервера будет обсуждаться в следующей статье.
Установка локального DNS-сервера BIND9 на Ubuntu 20.04
Выполните следующую команду, чтобы установить BIND9 на Ubuntu 20.04 LTS, из репозитория по умолчанию:
После установки можно проверить версию следующей командой:
По умолчанию после установки BIND9 запускается автоматически. Вы можете проверить его статус с помощью команды:
Примечание: В Ubuntu 20.04 LTS BIND9 запускается как служба, а не как сервис. Поэтому команда service bind9 start|stop|restart|status в данном дистрибутиве не действует.
Также если автоматически служба не запустилась, то выполните следующие команды:
Сервер DNS в вашей системе будет работать от имени bind пользователя, который создается во время установки, и прослушивает TCP и UDP порт 53. Для проверки выполните следующую команду:
Обычно DNS-запросы отправляются на UDP-порт 53. TCP-порт 53 предназначен для ответов размером более 512 байт.
Есть еще один важный пакет: rndc , контроллер демона BIND9, который был установлен с пакетом bind9utils . rndc используется для перезагрузки / остановки и управления другими аспектами демона BIND. Связь осуществляется через TCP-порт 953.
Вы также можете проверить его статус командой:
Настройка локального DNS-сервера BIND9 на Ubuntu 20.04 LTS
Для настройки пакеты BIND9 перейдем в его каталог:
В нем нас будут интересовать следующие файлы:
Подсказка: Пакет bind9 на Ubuntu 20.04 теперь не поставляется с db.root файлом корневых серверов, теперь он использует файл /usr/share/dns/root.hints .
Давайте сперва откроем файл named.conf.options :
И внесем в него следующие изменения:
Сохраните и закройте файл. Затем проверьте синтаксис файла конфигурации.
Если ничего не выдал, то все в порядке. Можно перезапустить службу:
Также если у вас закрыты порты то их необходимо открыть.
Для UFW
Для iptables
Это откроет TCP и UDP порт 53 для локальной сети 10.5.5.0 / 24. Затем с другого компьютера в той же локальной сети мы можем выполнить следующую команду для запроса записи A google.com.
где, 10.5.5.1 — IP адрес нашего сервера в локальной сети
Теперь проверьте журнал запросов с помощью следующей командой:
Из вывода видно что запросы поступают на наш DNS сервер, а он в свою очередь на них успешно отвечает.
В файле named.conf.local настраиваются зона прямого и обратного просмотра. В данном материале уже описано как это сделать
Resolver DNS в Ubuntu 20.04 LTS
Какой у вас в системе установлен резолвер можно посмотреть вот такой командой:
Чтобы установить ваш DNS в качестве резолвера по умолчанию, откройте файл конфигурации systemd-resolved.
И пропишите в файле в секции [Resolver] ваш DNS-сервер
Закрываем файл и перезагружаем systemd-resolver
Если теперь посмотреть статус то DNS должен измениться на IP вашего сервера.
Также теперь проверьте содержание /etc/resolv.conf .
Если привязки не произошло, то можно установить утилиту resolvconf
Запускаем сервис named-resolvconf
На этом Настройка локального DNS-сервера BIND9 на Ubuntu 20.04 LTS окончена.
Если есть вопросы, то пишем в комментариях.
Источник
BIND 9: опыт настройки и эксплуатации DNS-сервера
Содержание статьи
Сегодня невозможно представить себе интернет без DNS. Однако многие администраторы не уделяют время настройке этой службы на своих серверах, поэтому не используют всю ее мощь даже на треть.
Итак, планы на сегодня!
- Настройка зоны мастер.
- Подключение зон в слейве.
- Каждому свое. Настраиваем параметры в зависимости от адреса клиента, с которого пришел запрос.
- Подключаем внешний DNS-фильтр.
Пример описания зоны DNS
Xakep #211. Когда «Окна» смотрят в тебя
Интро
Когда я устроился на работу, количество сервисов в нашей сети можно было пересчитать по пальцам одной руки. Время шло, число сервисов росло. Обслуживающий DNS-сервер был один и выступал мастером для одной зоны (назовем ее xak.ru). Все остальные запросы он просто пересылал на DNS-сервер Google (8.8.8.8). А, чуть не забыл добавить: сервер этот был виртуальным. Потом в один прекрасный день сервер рухнул физически. После замены систему подняли, виртуализацию прикрутили. Поставили свежеустановленный Debian и к нему BIND 9. Присвоили тот же IP, что был у DNS-сервера до падения. Настройки восстановили из бэкапа. После успешного старта стали думать, как «закручивать болты».
Параллельно с этой работой был установлен хостинг, который держал на себе зону (например) xaker.ru. Само собой, центральный DNS должен о ней знать, а еще лучше быть slave DNS-сервером для этой зоны. Далее возникла необходимость перенаправлять DNS-запросы от центрального сервера к редиректору в зависимости от того, из какой сети пришел запрос. Делалось это ради подключения внешних DNS-фильтров, но не для всех. А только для тех, кому надо, а именно образовательных городских сетей — территории образовательных учреждений! Обо всем этом и пойдет речь ниже.
Немного теории
Основная цель DNS — это отображение доменных имен в IP-адреса и наоборот — IP в DNS. Решено было рассмотреть BIND (Berkeley Internet Name Domain, ранее Berkeley Internet Name Daemon), как самый распространенный софт для решения задачи DNS. BIND входит в состав любого дистрибутива UNIX. Основу BIND составляет демон named, который для своей работы использует порт UDP/53 и для части запросов TCP/53. Очень подробно о нем рассказано в статье на Хабре.
Если хочешь познакомиться с «новым» BIND, то рекомендую к чтению вот эту статью. В двух словах: версия 9 была последней, с 10-й версии права передают сообществу, и это ПО ныне известно как Bundy.
Быстрая установка, или еще раз об одном и том же
Итак, как установить BIND 9 в Debian/Ubuntu, в Сети очень и очень много материала. Так что быстро пройдемся по этому пункту, не вдаваясь в подробности. Для начала необходимо установить BIND 9 в систему. Для пользователей MS Windows есть версия BIND 9 под их платформу.
apt-cache search bind9
Для других дистрибутивов руководств по сборке из исходных кодов на просторах Сети предостаточно, забирай быстрее, переписывай в блокноты, пока новый «суперполезный» закон не накрыл весь интернет или пока тебя не отругали за то, что ты ходишь или ходил на сайт с запрещенной литературой. 😉
После установки переходим в каталог /etc/bind9/ и видим там основной файл конфигурации named.conf , внутри подключены остальные файлы named.conf.* . Как настраивать мастер-зону, опустим, поскольку в Сети информация изложена очень подробно. Добавим в файл named.conf строку
чем подключим новый файл в конфиг для правил подсетей. Далее создаем файл /etc/bind/named.conf.acl и добавляем правила:
Здесь мы разделили сети на группы для дальнейшей обработки. Прежде чем продолжим, уточню один момент. Для корректной обработки зон необходимо в каждую группу правил добавлять все зоны. Можно это делать в одном файле или вынести настройки зоны в отдельный файл и потом просто подключать в нужных местах. Итак, в файл /etc/bind/named.conf.local вносим изменения:
Здесь мы обозначаем группу, с которой будет работать BIND. Добавляем сюда клиенты из правил, которые мы определили выше. Назначаем вышестоящий сервер, на который будут пересылаться запросы, пришедшие из сетей, согласно описанным правилам. Здесь это единственная группа адресов School. В качестве вышестоящего DNS задал DNS-сервер Яндекс, который фильтрует «плохой» контент. Можно аналогично использовать другие DNS-сервисы, такие как SkyDNS.
Далее в этот же файл ниже добавляем вторую или остальные группы клиентов. Зона zone2.ru подключена как slave-зона, указан DNS-мастер-сервер и файл — путь к базе.
Здесь мы снова перечисляем, какие группы входят в эту секцию правил или, говоря иначе, каким сетям отвечать. Настройки зон могут быть различными. Если необходимо обеспечить доступ в зону xaker.ru, то эту секцию нужно описывать в обеих секциях. Зона server.local описана только во второй части. Это говорит о том, что доступ к ней есть только у группы адресов, описанных в этой секции конфига. Это полезно использовать для обеспечения доступа, например, к зоне серверов или закрытых внутренних сервисов, порталов и прочего только необходимых клиентов. Как видно из конфига, вышестоящий DNS-сервер здесь другой. Таким образом, можно подключать внешние DNS-фильтры для избранных.
В общем файле настроек /etc/bind/named.conf.options описываем только недостающие параметры.
Эти правила можно отключить и прописать для каждой группы. Учти, что в таком случае параметры нужно прописывать в каждой секции, у нас их две. Файлы зон описываются при этом стандартно.
Здесь все стандартно. Описываем зону. Если нужно, MX-записями задаем узлы для работы с почтой. Последней строчкой мы описываем XMPP-сервер для передачи файлов с поддержкой Jabber-прокси. Без этого файлы между сетями, находящимися за шлюзом, передавались нестабильно.
Для того чтобы не описывать одинаковые зоны по несколько раз, можно вынести их в файл, например, zone-share.conf . Внутри описать общие зоны, которые будут использоваться во всех группах:
А в файле /etc/bind/named.conf.local после описания параметров и перед подключением настроек зон подключить файл с настройками:
А уже потом описывать зоны, которые будут обрабатываться только для этих клиентов, описанных в данной секции конфига.
Как видно, совсем не сложно разбить клиенты DNS на группы сетей или отдельные узлы и обрабатывать их запросы или перенаправлять вышестоящему DNS-серверу в зависимости от адреса, с которого пришел запрос. Чтобы наши клиенты НЕ СМОГЛИ использовать внешние DNS-серверы на выходном шлюзе, добавляем правило «Разрешить DNS-запросы в интернет от ваших DNS-серверов и запретить для всех остальных». Делается это из-за того, что есть знающие пользователи, которые меняют настройки на своих устройствах. Или просто заворачиваем все запросы на наш DNS. Следует отметить, что если используется прокси, то для его клиентов запросы будет обрабатывать прокси-сервер, это нужно учитывать.
Служба DNS не менее важна, чем DHCP и другие. При правильном подходе она помогает решить довольно большой круг задач. Игнорируя этот сервис, перекладывая все заботы на публичные DNS-серверы, администраторы лишают себя очень гибкого инструмента для работы с сетью. Так, например, можно снизить нагрузку на канал, если описать зоны с сервисами, находящимися в локальной сети и имеющими доступ из сети Интернет, чтобы внутренние клиенты ходили только по локальной сети, а клиенты внешние — через внешний канал соответственно. Когда число клиентов переваливает за сотню, это особенно ощутимо.
P. S. Всем удачи! Легкой настройки, бесперебойной работы и свободного канала связи 🙂
Александр «Plus» Рак
Участник сообщества OmskLUG. Инженер отдела электронного взаимодействия МКУ «Информационно-технического управления».
Источник