Меню Рубрики

Установка dns сервера ubuntu server

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

Последнее изменение: 08.10.2019

Сегодня рассмотрим установку и настройку DNS сервера внутри локальной сети с доменным именем «lan«.

Всё это великолепие будет производиться на локальной машине Ubuntu Server 18.04, хотя действия идентичны и для других дистрибутивов Linux (Debian, Rasbian, Linux Mint и т.д.).

Установка DNS сервера

В качестве DNS сервера будем использовать пакет bind9. Для его установки подключаемся к серверу по ssh или открываем консоль на самом сервере и набираем следующую команду:

После установки пакета bind9, необходимо произвести его настройку.

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

Для начала отредактируем файл named.conf.options

Добавим в него следующий код:

Теперь открываем файл конфигурации зон и вносим информацию о наших зонах.

Сохраняем ctrl+o, закрываем ctrl+x.

Зона прямого просмотра

Теперь самое время создать зону прямого просмотра, для этого создадим копию файл db.local:

и приведем его к следующему виду:

  • Записи вида А — предназначена для ip адресов версии 4
  • Запись вида АААА — предназначена для ip адресов версии 6
  • Запись вида NS — для DNS серверов.

Настройка зоны обратного просмотра DNS

Обратная зона преобразовывает IP адреса машины в доменное имя FQDN. Давайте сделаем копию файла прямого просмотра:

Открываем его на редактирование:

Вносим следующие изменения:

Проверка DNS сервера bind9

Теперь проверим правильность синтаксиса конфигурационных файлов BIND.

Если конфигурационные файлы не содержат ошибок, вывод этой программы будет пуст.

Проверяем работу DNS сервера:

в ответ вы должны увидеть:

Как видите зона прямого просмотра работает, сервер выдал ip адрес проверяемого имени.

Теперь проверим работу зоны обратного просмотра

Как видим в ответ мы получили имя сервера по его IP адресу. Если у вас в ответ на nslookup так же все корректно отображается, значит вы все сделали правильно! Если нет, то проверяйте что сделали не так.

P.S. Если в ответе у вас ошибка, можите добавьте в файле resolv.conf свой nameserver, это может помочь устранит проблему.

Вносим на первое место наш сервер:

Проверяем версию DNS сервера

Вот и всё, установка и настройка сервера DNS на этом закончена.

Если есть вопросы, то пишем в комментариях.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

источник

Ubuntu, fake DNS Server или настройка локального DNS сервера для веб-разработчика

Зачем это надо.
На рабочей станции разработчика есть NN локально поднятых проектов. Этот разработчик для каждого проекта проделывает следующее:

  1. Для работы с локальной копией проекта редактирует конфиг своего веб сервера (apache, lighttpd etc.) и указывает в конфиге имя хоста для этого локального проекта.
  2. Потом перезапускает веб сервер.
  3. Потом идет редактировать /etc/hosts Прописывает там имя нового хоста и локальный ip.
  4. Потом выясняет что этот прописанный хост перекрывает тот, что внезапно нужен в интернете, или он ошибся когда прописал имя в конфиге веб-сервера или в hosts.

В итоге всего этого занудства как правило тратится драгоценная нервная энергия которую можно потратить более эффективно на что-то поинтереснее.

Что я предлагаю сделать.
Я предлагаю сделать локальный домен (в примере .mydev) и сократить процедуру выше до двух шагов:

  1. Прописываем в конфиг веб-сервера новый хост с именем вида projectname.mydev
  2. Перезапускаем веб-сервер

И всё. Радостно начинаем допиливать наш проект по заданному имени.

1. Установим DNS сервер.
sudo apt-get install bind9

2. Идем разглядывать собственно конфиги. Принцип этой штуки состоит в том, что на данный момент при обращении к какому-либо хосту (это грубая схема) наша машинка идет на DNS-сервер выданный ему провайдером или прописанный вручную, в соответствии с настройками. Получает собственно у DNS-а IP-адрес хоста ну и отправляется за данными в сторону этого IP. Дальше нам не интересно. Как будет. А будет так: при обращении к какому-либо хосту, мы будем обращаться к локальному DNS серверу, который будет проверять наши правила и если запрос не попадает под наши правила, то наш локальный DNS идет и спрашивает тоже самое у провайдерского DNS-а. И отдает нам уже собственно его (провайдера) ответ. Итак, идем к конфигам
cd /etc/bind

REM: Я пользуюсь mc. Нам понадобятся права суперпользователя, так что либо sudo mc, либо sudo mcedit filename при редактировании каждого файла, вопрос с правами я далее затрагивать не буду.

3. Открываем на редактирование named.conf.options
Тут нас интересует секция forwarders её нам нужно раскомментировать и указать IP адрес(а) DNS сервера провайдера (или может быть роутера, смотря как организован выход в интернет). Сохраняем, выходим.

4. Открываем на редактирование named.conf.default-zones
Тут нам вниз нужно добавить новую зону. Выглядеть новая секция будет вот так:
zone «mydev» <
type master;
file «/etc/bind/db.mydev»;
>;

5. По указанному пути создаем файлик
sudo cp /etc/bind/db.local /etc/bind/db.mydev
То есть просто делаем копию описания локальной зоны. Нам нужно будет в ней кое-что отредактировать. Итак копию сделали, теперь:

Читайте также:  Установка ckeditor для сайта

6. Открываем на редактирование db.mydev
Там нам нужно исправить всего несколько строк. В итоге наш db.mydev будет выглядеть вот так:
$TTL 604800
@ IN SOA mydev. root.mydev. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL

@ IN A 127.0.0.1
* IN A 127.0.0.1
@ IN AAAA ::1

Сравните с оригинальным db.local для того чтоб было понятно что произошло. По сути ничего особенного.

7. Теперь остается только перезапустить наш DNS
sudo /etc/init.d/bind9 restart

8. Ну и проверяем теперь как это работает.
ping 11.mydev
ping 22.mydev

Если работает то IP должен быть тот что вы указали (в примере 127.0.0.1) Но сейчас ничего не работает. Потому что…

9. Забыл рассказать про грабли. NetworkManager автоматически прописывает в /etc/resolv.conf адрес DNS провайдера. Если там будет прописан внешний DNS, то наша поделка работать не будет. Обращения в сеть просто пойдут мимо неё. Чтобы это дело устранить, нужно зайти в свойства текущего подключения к интернету, идем:
«Изменить соединения» => Выбираем наше соединение => «Параметры IPv4»
Тут указываем IP нашего локального DNS (в примере 127.0.0.1), сделать это можно выбрав метод «DHCP, только адрес». Этого должно быть достаточно. После этого через NetworkManager соединение разрываем и снова устанавливаем. Если все ок, то в /etc/resolv.conf мы должны увидеть наш искомый IP, тот что прописали как DNS в NetworkManager.

10. Вот теперь проверяем результат.

Вот собственно и всё. Теперь можно не трогать /etc/hosts

источник

Установка и настройка 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 выполните следующую команду:

Пакет 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 добавьте или замените следующие правила

Читайте также:  Установка и обновление inpa

А лучше, для безопасности вместо 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.

источник

Настройка 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

Затем, добавьте в эту секцию строчку:

Здесь адрес 8.8.8.8 — это адрес вашего DNS сервера. Но эта настройка сработает, только если ваш DHCP клиент не пытается назначить адрес самостоятельно. Чтобы указать DNS адрес на уровне DHCP сервера нужно добавить такую строчку в конфигурационный файл /etc/dhcp/dhclient.conf:

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 могут заниматься множество утилит и это создает некоторые проблемы при настройке, но со всем можно разобраться. Надеюсь, эта информация была полезной для вас.

Читайте также:  Установка talberg boyard pro 2

источник

Установка и настройка DNS сервера Ubuntu 14.04.1 LTS

Сегодня продолжим цикл статей по настройке сервера и рассмотрим что же из себя представляет настройка DNS сервера Ubuntu. У нас уже есть сервер на базе ubuntu 14.04.1 LTS, на нем настроен DHCP сервер. Сегодня мы туда добавим еще и службу DNS.

Для начала давайте разберемся для чего он нам нужен. DNS – это система доменных имен, предназначенная для получения ip адреса компьютера по его имени и наоборот, имени по ip адресу. Т.е. зная имя компьютера, вам не нужно запоминать его ip, для последующего обращения. Служба была создана в связи с расширением сети и появлением огромного множества ip адресов, которые просто невозможно запомнить с первого раза.

И так что мы имеем… Установленная ОС Ubuntu Server 14.04.1 LTS, настроенный DHCP сервер. Из ПО только mc.

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

Для начала нужно установить самые последние обновления системы

После этого установим службу DNS сервера Bind9

после установки службы, она автоматически запуститьсяСледующим шагом, генерируем ключ для обновления DNS записей

на экране вы должны увидеть ключ, что то подобно этому:

Key : 4GD8OIb8pZk4vAueACAfUQ==

Обязательно сохраните этот ключ, в последующей настройке он нам понадобится

Настраиваем DNS сервер Bind9

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

  • forwaders – вышестоящий dns сервер (сервер гугла), используется если url запроса не найден в нашей базе.
  • listen-on – адреса через которые будет обслуживаться наш DNS сервер.

Сохраняем (Ctrl+O) и закрываем (Ctrl+X) файл.

Перезапустим bind9

Теперь можно протестировать работу нашего DNS сервера

Добавим в фал /etc/resolv.conf строчку с нашим DNS сервером (так как файл /etc/resolv.conf при перезагрузке меняет значения на дефолтные, добавить запись нужно в тот файл из которого будут браться дефолтные значения)

в этот файл пишем следующее:

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

в ответ вы получите ответ с временем выполнения запроса (выделено цветом)

Как видите запрос был выполнен за 284 мсек. Теперь еще раз выполним этот же запрос и проверим время запроса

Повторный запрос был выполнен за 7 мсек! Отлично! Кэширование запросов работает. Двигаемся дальше.

Настройка основного DNS сервера

  • Доменное имя – lab.loc
  • IP сервера – 192.168.0.1
  • Имя сервера – srv-01.lab.loc

Нам нужно будет указать две зоны (прямого и обратного просмотра) и прописать их в конфигурации сервера.

Я начну с конца и укажу настройки зон в файле конфигурации. Открываем его

  • key DHCP_UPDATER — информация о ключе, который мы с вами записывали (в кавычки вам нужно вписать свой ключ)
  • zone «lab.loc» — информация о зоне использования DNS, указан тип — master, путь к файлу хранения данных зоны, обновления файла разрешено с использованием ключа.
  • zone «0.168.192.in-addr.arpa» — создание зоны обратного просмотра

Теперь создадим сами файлы в которых будут храниться данные зоны lab.loc. Для этого скопируем образец файла прямого просмотра:

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

Теперь скопируем файл зоны обратного просмотра:

Сохраняем, закрываем, перезапускаем Bind9

Сохраняем, закрываем, проверяем работу DNS сервера:

в ответ вы должны увидеть следующее:

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

В ответ должны получить следующее:

Как видите в ответ мы получили имя сервера по его адресу. Если у вас в ответ на nslookup так же все корректно отображается, значит вы все сделали правильно! Если нет, проверяйте что сделали не так.

Настройка динамического обновления зон DHCP сервером

Если вы вместе со мной настраивали сервер с самого начала, тогда у вас не должно возникнуть трудностей. Откроем файл /etc/dhcp/dhcpd.conf

Проверяем что опция option domain-name содержит имя домена lab.loc, строку ddns-update-style none; закомментировать. Теперь добавим строчку update-static-leases on; – она отвечает за создание зон для клиентов у которых статичный IP адрес. Для автоматизации этого процесса, добавим следующий код:

где secret это тот самый код который мы делали вначале статьи.

Вот пример моего файла /etc/dhcp/dhcpd.conf:

Больше никакие настройки DHCP не трогаем, перезапускаем bind9 и dhcp

Теперь нужно проверить как все это дело работает “в бою”. Запускаем клиентскую машину, которая находиться в сети с сервером. После включения машина получит IP адрес от DHCP сервера, а DHCP сервер создаст запись вроде klient-pc.lab.loc.

На запрос nslookup yos-pc (yos-pc это имя клиентской машины), мы должны увидеть ответ от сервера

Как видите по скриншоту, работает и прямой и обратный запросы к DNS.

После перезагрузки сервера, можно посмотреть на файлы прямого и обратного просмотра, в них вы увидите записи о новых машинах, вот пример моего файла, после перезагрузки сервера

источник