настройка днс сервера линукс
Установка и настройка 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
Директория /etc/bind/zones/master будет содержать файл зоны для домена itproffi.ru. При желании можно использовать другую директорию. Файл зоны db.itproffi.ru будет содержать запись DNS, которая поможет серверу имен установить соответствие полного доменного имени IP-адресу. Создайте этот файл со следующим содержимым:
Рассмотрим ключевые строки этого файла:
Настройка обратной зоны
На данном этапе DNS-сервер bind может выдать IP-адрес, связанный с узлом itproffi.ru. Теперь нам нужно научить наш сервер имен обратному процессу, то есть устанавливать соответствие имени IP-адресу. Для этого создадим еще один файл db.172.31.1 со следующим содержимым:
Запись PTR: DNS-запись, используемая для определения соответствия IP-адреса имени узла.
Настройка файла конфигурации bind
На данный момент у нас должно быть два файла:
Последний момент перед проверкой конфигурации – внести в файл 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
Теперь проверим обратную зону:
Если вы получили аналогичные результаты, то зона DNS настроена правильно. Вместо команды dig для тестирования можно также использовать команду nslookup.
nslookup 172.31.1.10 172.31.0.122
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
linux-notes.org
Настройка DNS-клиента / сервера имен на Linux (Redhat/CentOS/Debian/Ubuntu)
В статье «Настройка DNS-клиента / сервера имен на Linux (Redhat/CentOS/Debian/Ubuntu)» я расскажу как можно легко настроить DNS-клиент ( сервер имен) на своей ОС в Linux. На готовом примере я это вам покажу, я использую сейчас Debian.
1. Используйте свой Локальный DNS-сервер (NameServer)
открываем resolv для просмотра сервера имен.
2. Использование сервера публичного DNS (Google DNS-сервер)
прописываем новый днс сервер от гугл
3. Тестируем наш DNS-сервер
Приведу пример с использования yahoo.
тестируем DNS сервер командой nslookup на примере с yahoo
Вот и все. Настройка DNS-клиента / сервера имен на Linux (Redhat/CentOS/Debian/Ubuntu) завершена.
2 thoughts on “ Настройка DNS-клиента / сервера имен на Linux (Redhat/CentOS/Debian/Ubuntu) ”
DNS-клиент — программа (или модуль в программе), обеспечивающая определение адреса узла по его полному имени (точка в конце обычно либо добавляется DNS-клиентом, либо неявно подразумевается, однако, в случае использования доменных суффиксов, возможны различия в поведении клиента при определении имени с точкой в конце и без).
Добавить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.
Как настроить локальный DNS-сервер на Linux?
Если у вашего домашнего или офисного интернет-провайдера медленные серверы имен или ваш сервер выполняет много операций поиска, то вам нужен локальный кеширующий DNS-сервер.
Как мне поможет локальный DNS-сервер?
Кеширующий DNS-сервер работает, выполняя все DNS-запросы, которые обрабатывает ваша система, а затем сохраняя или кэшируя результаты в памяти. Как только результаты кэшируются в памяти, каждый раз, когда вы делаете повторный запрос для домена, результат будет почти мгновенно получен из памяти.
Локальный DNS-сервер не только поможет в вашем доме или офисе, но и на вашем сервере. Если у вас есть приложение, которое выполняет множество операций поиска DNS, например, почтовый сервер, на котором запущено антиспамовое программное обеспечение, оно получит повышение скорости от локального кэширующего DNS-сервера.
Наконец, утилита systemd-resolved поддерживает самые последние, безопасные стандарты DNS DNSSEC и DNSoverTLS или DoT. Они помогают защитить вас и сохранить вашу конфиденциальность в Интернете.
Какой локальный кеширующий DNQS мы будем использовать?
systemd-resolved работает, запустив небольшой локальный кеширующий DNS-сервер, который мы настроим для запуска при загрузке. Затем мы перенастроим остальную часть системы, чтобы направлять их DNS-запросы в DNS-систему с локальным кэшированием.
1. Как проверить, используете ли вы уже systemd-resolved?
В некоторых дистрибутивах Linux по умолчанию уже используется systemd-resolved, например Ubuntu 19.04.
Если вы уже запустили systemd-resolved, вам не нужно включать его или настраивать систему для его использования. Однако вам может потребоваться убедиться, что инструменты управления сетью, такие как NetworkManager, настроены правильно, поскольку они могут игнорировать конфигурацию сети системы.
Прежде чем перейти к следующему разделу, выполните следующую команду, чтобы проверить, запущен ли уже systemd-resolved:
Если вы получили сообщение:
Вы не используете systemd-resolved и должны перейти к следующему разделу. Если вместо этого вы видите вывод, который начинается примерно так:
Тогда вы уже используете systemd-resolved и вам не нужно его включать.
2. Включение и настройка systemd-resolved
Запустите следующую команду в терминале от имени пользователя sudo для запуска systemd-resolved:
Затем выполните следующую команду, чтобы запустить systemd-resolved при загрузке системы:
Откройте основной файл конфигурации с разрешением systemd в вашем любимом текстовом редакторе, здесь я использовал nano:
Измените строку начинающуюся с:
Уберите комментарий со строки и вставьте желаемый Public DNS из списка выше. В моем случае я выберу Cloudflare Public DNS.
Сохраните и выйдите из текстового редактора. Теперь нам нужно перезапустить systemd-resolved, чтобы он начал использовать серверы имен:
systemd-resolved теперь запущен и готов начать обработке и защите DNS-запросов, как только мы настроим систему для ее использования.
Конфигурация системы для использования systemd-resolved
Ваша система может быть настроена несколькими способами для использования systemd-resolved, но мы рассмотрим две конфигурации, которые покрывают большинство случаев использования. Первые два режима системного разрешения сосредоточены вокруг того, как управляется содержимое этого файла. В рекомендуемом режиме /etc/resolv.conf делается символическая ссылка на /run/systemd/resolve/stub-resolv.conf.
Два режима системного разрешения сосредоточены вокруг того, как управляется содержимое этого файла. В рекомендуемом режиме /etc/resolv.conf делается символическая ссылка на /run/systemd/resolve/stub-resolv.conf. Этот файл управляется systemd-resolved и, следовательно, systemd-resolved управляет информацией о конфигурации DNS для всех других программ в системе.
Это может вызвать проблемы, когда другие программы пытаются управлять содержимым /etc/resolv.conf. Режим совместимости оставляет /etc/resolv.conf на месте, позволяя другим программам управлять им, в то время как systemd-resolved использует эту информацию DNS. В этом режиме другие программы, управляющие /etc/resolv.conf, должны быть настроены для установки 127.0.0.53 в качестве системного сервера имен в /etc/resolv.conf.
Настройка рекомендуемого режима
Затем создайте символическую ссылку:
Наконец, перезапустите systemd-resolved:
Настройка режима совместимости
В этом режиме вам нужно убедиться, что локальный сервер имен, запущенный systemd-resolved запущен системными службами. Откройте /etc/resolv.conf в текстовом редакторе. Я использую редактор nano:
Удалите все встречающиеся строки, начинающиеся с «nameserver», и добавьте эту строку:
3. Отладка systemd-resolved
Вставьте следующие строки в редактор, затем сохраните и выйдите:
Служба с разрешением systemd будет автоматически перезагружена при успешном сохранении и выходе.
Откройте второй терминал на том же сервере и просмотрите журнал journald для службы с разрешением systemd:
Строка, которая начинается с «Using DNS server», например:
Сообщает вам, какой именно DNS-сервер используется для DNS-запросов. В этом случае DNS-сервер Cloudflare на 1.1.1.1 был запрошен.
Строки «Cache miss» указывают на то, что доменное имя не было кэшировано. Например:
Строки, начинающиеся с «Positive cache hit», например:
Укажите, что systemd-resolved ранее запрашивал этот домен, и ответ был получен из кэша в локальной памяти.
Вы должны отключить режим отладки, когда вы закончите работать с systemd-resolved, так как он создаст очень большой файл журнала в загруженной системе. Вы можете отключить ведение журнала отладки, выполнив:
4. Использование безопасных DNS-запросов
Эти параметры легко включить, открыв основной файл конфигурации systemd-resolved в текстовом редакторе:
И редактируем файл так, чтобы были установлены следующие две строки:
Сохраните и выйдите из редактора, затем перезагрузите systemd-resolved:
Пока на DNS-сервере вы установили поддержку DNSSEC и DoT, ваши DNS-запросы будут защищены. Оба публичных DNS-сервера Google и Cloudflare поддерживают эти протоколы.
Заключение
Теперь ваша система настроена на быстрое и эффективное выполнение DNS-запросов, даже если DNS-сервер вашего интернет-провайдера не отвечает так быстро, как следовало бы. Кроме того, ваша цифровая активность становится более безопасной, поскольку вы используете новейшие безопасные протоколы DNS для защиты своих запросов.
Как настроить DNS-сервер с привязкой с помощью серверов Linux
DNS серверы (система доменных имен) позволяют нам получить определенный IP-адрес из доменного имени, таким образом, мы можем получить доступ к различным веб-сайтам, поместив ваше доменное имя непосредственно в адресную строку веб-браузера. У нас также есть возможность настроить DNS-сервер в домашней или профессиональной локальной сети, чтобы подключаться к различным компьютерам в локальной сети через определенное доменное имя, без необходимости всегда помнить частные IP-адреса. Сегодня в этой статье мы покажем вам, как настроить DNS-сервер на Linux сервер с использованием Bind9, самого популярного и используемого DNS-сервера.
Что такое привязка?
Bind не заменяет DNS-серверы, подобные тем, которые мы можем использовать от Google (8.8.8.8), Cloudflare (1.1.1.1) или других, а скорее дополняет их. Клиенты локальной сети будут иметь в качестве DNS-сервера сервер привязки, который мы настраиваем на сервере Linux, позже в этой привязке мы сможем настроить различные правила для доступа к локальным компьютерам через их частные IP-адреса. Если клиент в локальной сети делает DNS-запрос на веб-сайт в Интернете, логически DNS-сервер не будет иметь все IP-адреса в Интернете в своей базе данных, в этом случае общедоступные DNS-серверы настроены для обработки этих запросов путем пересылки server с Bind запрос, и мы автоматически вернем его клиенту, который сделал запрос.
В настоящее время используется версия Bind 9, она была написана с нуля, чтобы избежать проблем с предыдущими версиями, кроме того, она включает очень важные функции, такие как DNSSEC для обеспечения безопасности доменов с использованием криптографии, а также улучшения параллельной обработки различных DNS-запросы, полная поддержка сетей IPv6 и многое другое. Конечно, эта последняя версия Bind имеет очень важные улучшения безопасности, таким образом, мы будем защищены от возможных атак, которые могли произойти в предыдущих версиях.
Предварительные требования перед установкой Bind
Чтобы статически настроить IP-адрес в Linux, мы должны отредактировать файл конфигурации «/ etc / network / interfaces» и поместить следующее:
auto lo
iface lo inet loopback
автомобиль Ens33
iface eth0 inet static
адрес 192.168.1.2
маска сети 255.255.255.0
192.168.1.1 шлюз
DNS-серверы 192.168.1.2
Затем мы должны перезапустить службу, чтобы изменения были корректно применены (если мы изменили текущий IP-адрес):
sudo service networking restart
Как только наш IP-адрес в локальной сети зафиксирован, мы можем установить Bind.
Привязать установку на Linux и автозагрузку
sudo apt install bind9 bind9-doc resolvconf python-ply-doc
После того, как мы установили все предыдущие пакеты, нам нужно перейти в каталог программы, где нам нужно будет начать настройку необходимых файлов:
Как видите, у нас есть большое количество различных файлов конфигурации, каждый из которых специально ориентирован на конкретную задачу, в официальной документации Bind9 вы можете найти, для чего каждый из них предназначен. Предположим, что с этого момента вы всегда находитесь в режиме суперпользователя (root), чтобы редактировать или копировать файлы без ограничений.
Настройка серверов пересылки привязки с использованием общедоступных DNS-серверов
Первое, что мы собираемся сделать, это настроить переадресацию DNS-серверов, то есть общедоступных DNS-серверов для пересылки запросов в Интернет. Файл конфигурации, отвечающий за эту задачу, называется named.conf.options. Первое, что мы делаем, это делаем резервную копию файла на случай, если мы отредактируем его неправильно и все перестанет работать:
cp /etc/bind/named.conf.options /etc/bind/named.conf.options.copia
Теперь мы редактируем файл, добавляя DNS-серверы в раздел пересылки, как вы можете видеть здесь:
После того, как мы его изменили, мы перезапускаем службу Bind9, чтобы убедиться, что все работает правильно и не возвращает никаких ошибок:
sudo service bind9 restart
После того, как мы настроили Bind для пересылки разрешений веб-сайтов в общедоступный DNS, мы увидим, как настроить его для разрешения внутренних доменов.
Настроить привязку для локальных разрешений
cp /etc/bind/named.conf.local /etc/bind/named.conf.local.copia
После того, как мы сделали резервную копию, нам нужно будет отредактировать файл конфигурации named.conf.local, чтобы продолжить настройку. В этот файл конфигурации нам нужно будет поместить зону, о которой мы говорим, а также файл конфигурации привязки, в котором есть все конфигурации, поэтому мы можем оставить его так:
zone «redlocal.com» <
type master;
file «/etc/bind/db.redlocal»;
>;
Важно, чтобы «файл» относился к файлу конфигурации, который мы импортируем и который мы собираемся настроить прямо сейчас.
Теперь нам нужно скопировать базу данных, которая есть в «db.local», присвоить ей имя » db.redlocal », Который мы определили в предыдущем файле.
cp /etc/bind/db.local /etc/bind/db.redlocal
Теперь мы редактируем этот файл конфигурации, который по умолчанию содержит много информации, и адаптируем его к нашим интересам.
Первое, что нам нужно сделать, это изменить SOA, который находится в верхней части, с помощью доменного имени, которое мы выбрали локально, в данном случае это будет «red.redlocal.com», затем мы отредактируем общий файл конфигурации. с желаемыми доменами и поддоменами. Наш файл конфигурации будет следующим:
;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA ns1.redlocal.com. root.red.redlocal.com. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns1.redlocal.com.
@ IN A 192.168.231.130
ns1 В А 192.168.231.130
роутер IN A 10.11.1.1
pc1 В А 10.11.1.2
После сохранения файла конфигурации мы проверяем синтаксис с помощью следующей команды:
named-checkzone redlocal.com /etc/bind/db.redlocal
Теперь перезапускаем процесс привязки следующей командой:
sudo service bind9 restart
У нас есть все готово, чтобы запустить серию тестов и проверить, все ли мы сделали правильно. Чтобы убедиться, что все работает, мы должны выполнить следующие команды:
Он покажет нам следующее, IP-адрес маршрутизатора:
root@bron-debian:/etc/bind# host router.redlocal.com
router.redlocal.com has address 10.11.1.1
То же самое можно сделать и с ПК1:
root@bron-debian:/etc/bind# host pc1.redlocal.com
pc1.redlocal.com has address 10.11.1.2
После того, как нам удалось правильно разрешить локальные домены, вернув соответствующий IP-адрес, мы можем без проблем пинговать через домен:
Теперь мы настроим обратное разрешение доменов.
Обратное разрешение домена
Теперь мы собираемся настроить DNS-сервер для разрешения доменов в обратном порядке, указав IP-адрес и сообщив, к какому домену принадлежит этот IP-адрес. Чтобы достичь нашей цели, мы должны добавить следующие строки в файл /etc/bind/ named.conf.local, который мы использовали ранее:
zone «192.in-addr.arpa» <
type master;
file «/etc/bind/db.192»;
>;
Мы также должны скопировать файл конфигурации по умолчанию, чтобы отредактировать его. Из файла db.127 мы создаем db.192:
cp /etc/bind/db.127 /etc/bind/db.192
После того, как мы его создали, просто отредактируйте его, указав следующую информацию:
;
; BIND reverse data file for local loopback interface
;
$TTL 604800
@ IN SOA ns1.redlocal.com. root.red.redlocal.com. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns1.redlocal.com.
ns1 IN A 192.168.231.130
130.231.168 IN PTR redlocal.com
После сохранения файла конфигурации мы проверяем синтаксис с помощью следующей команды:
named-checkzone 192.168.231.130 /etc/bind/db.192
У нас должно получиться что-то вроде этого:
named-checkzone 168.192.in-addr.arpa db.192
zone 168.192.in-addr.arpa/IN: loaded serial 1
OK
Теперь перезапускаем процесс привязки следующей командой:
sudo service bind9 restart
И проверяем правильность работы:
Мы надеемся, что это полное руководство по привязке помогло вам настроить собственный DNS-сервер локально.
Настройка DNS в Ubuntu
Сервера DNS используются системой для преобразования сложных для запоминания IP адресов в простые доменные имена. Это делается потому что людям сложно запоминать несколько никак не связанных цифр, но очень просто запомнить слово.
Когда компьютеру нужно узнать IP адрес какого-либо домена, он отправляет запрос известному ему DNS серверу. Эти сервера могут быть получены автоматически от роутера по DHCP или же заданы в ручную. В этой статье мы рассмотрим как выполняется настройка DNS Ubuntu 16.04 и более старых версиях.
Настройка DNS в Ubuntu через GUI
Раньше, для настройки DNS серверов, которые будут использоваться системой было достаточно внести адреса нужных серверов в файл /etc/resolv.conf. Но сейчас всей конфигурацией сети в Ubuntu управляет NetworkManager, а этот файл теперь представляет собой только ссылку на файл NetworkManager.
Этот способ до сих пор работает, но в нем вы можете настроить DNS на LiveCD, или до перезагрузки. После перезагрузки все настройки собьются и придется все делать заново. Поэтому, чтобы все сохранилось нужно выполнять все действия через интерфейс NetworkManager. Сначала откройте контекстное меню для значка сети на панели и выберите «Изменить подключения»:
Выберите ваше подключение и нажмите «Изменить»:
В открывшемся окне перейдите на вкладку «Параметры IPv4»:
Затем, в поле «Способ настройки» выберите «Автоматически (DHCP, только адрес)»:
Теперь немного ниже появиться поле «Серверы DNS», где вам нужно прописать нужные серверы, можно несколько адресов через запятую. Например, можно указать сервера от Google:
Поле этого нажмите «Сохранить» и «Закрыть». Теперь можете переподключитесь к этому соединению и можете проверять текущий DNS сервер:
Собственно, это все, но есть еще один способ настройки через консоль, если этот не сработал или вы предпочитаете работать из консоли.
Настройка DNS через терминал Ubuntu
В Ubuntu есть унифицированный интерфейс настройки сети, который настраивается через конфигурационный файл /etc/network/interfaces. Сначала смотрим список сетевых интерфейсов:
Откройте файл для редактирования и найдите в нем имя своего сетевого интерфейса, например, auto enp0s3, если такой секции нет, ее нужно добавить:
sudo vi /etc/network/interfaces
auto enp0s3
iface enp0s3 inet dhcp
Затем, добавьте в эту секцию строчку:
sudo vi /etc/dhcp/dhclient.conf
supersede domain-name-servers 8.8.8.8
Здесь тоже адрес 8.8.8.8 означает адрес DNS сервера. Для верности, вы можете добавить свои адреса DNS серверов в файл /etc/resolvconf/resolv.conf.d/base:
sudo vi /etc/resolvconf/resolv.conf.d/base
Чтобы настройки вступили в силу необходимо перезапустить сеть:
sudo systemctl restart networking
Возможно, даже лучше будет если вы полностью перезагрузите компьютер. Теперь вы можете открыть /etc/resolv.conf и посмотреть применялся ли новый адрес DNS:
Как видите, в моем примере все заработало. Подобно этому выполняется настройка dns linux для любого дистрибутива.
Выводы
В этой небольшой статье мы рассмотрели как выполняется настройка DNS Ubuntu 16.04 через графический интерфейс или терминал. В Ubuntu автоматической настройкой DNS могут заниматься множество утилит и это создает некоторые проблемы при настройке, но со всем можно разобраться. Надеюсь, эта информация была полезной для вас.