Как настроить DNS-сервер с привязкой с помощью серверов Linux

DNS серверы (система доменных имен) позволяют нам получить определенный IP-адрес из доменного имени, таким образом, мы можем получить доступ к различным веб-сайтам, поместив ваше доменное имя непосредственно в адресную строку веб-браузера. У нас также есть возможность настроить DNS-сервер в домашней или профессиональной локальной сети, чтобы подключаться к различным компьютерам в локальной сети через определенное доменное имя, без необходимости всегда помнить частные IP-адреса. Сегодня в этой статье мы покажем вам, как настроить DNS-сервер на Linux сервер с использованием Bind9, самого популярного и используемого DNS-сервера.

Настройка DNS-сервера с привязкой с использованием серверов Linux

Что такое привязка?

Bind, или также известный как Berkeley Internet Name Domain, представляет собой программное обеспечение, которое отвечает за выполнение задачи DNS-сервера. Bind в настоящее время является стандартом и широко используется в операционных системах Linux, а также в Unix, поэтому, если у вас есть сервер на базе Linux или Unix, и вам нужен DNS-сервер для обработки запросов из локальной сети, тогда Bind будет что вы должны использовать. Текущая версия Bind - это версия Bind9, и она обычно используется на всех серверах, предыдущие версии считаются небезопасными и «устаревшими», поэтому их не рекомендуется использовать.

Bind не заменяет DNS-серверы, подобные тем, которые мы можем использовать от Google (8.8.8.8), Cloudflare (1.1.1.1) или других, а скорее дополняет их. Клиенты локальной сети будут иметь в качестве DNS-сервера сервер привязки, который мы настраиваем на сервере Linux, позже в этой привязке мы сможем настроить различные правила для доступа к локальным компьютерам через их частные IP-адреса. Если клиент в локальной сети делает DNS-запрос на веб-сайт в Интернете, логически DNS-сервер не будет иметь все IP-адреса в Интернете в своей базе данных, в этом случае общедоступные DNS-серверы настроены для обработки этих запросов путем пересылки server с Bind запрос, и мы автоматически вернем его клиенту, который сделал запрос.

DNS де Windows

В настоящее время используется версия Bind 9, она была написана с нуля, чтобы избежать проблем с предыдущими версиями, кроме того, она включает очень важные функции, такие как DNSSEC для обеспечения безопасности доменов с использованием криптографии, а также улучшения параллельной обработки различных DNS-запросы, полная поддержка сетей IPv6 и многое другое. Конечно, эта последняя версия Bind имеет очень важные улучшения безопасности, таким образом, мы будем защищены от возможных атак, которые могли произойти в предыдущих версиях.

Предварительные требования перед установкой Bind

Перед тем, как начать настройку DNS-сервера с Bind9 в нашей операционной системе, рекомендуется поставить фиксированный IP-адрес на нашем сервере, иначе, если DHCP-сервер изменит наш IP-адрес, клиенты локальной сети потеряют доступ к нашему серверу. сервер DNS, потому что они не будут «указывать» на наш частный IP-адрес. Чтобы установить фиксированный IP-адрес, у нас есть две возможности:

  • Настройте статический DHCP в маршрутизаторе / брандмауэре, который у нас есть, указав наш MAC-адрес сетевой карты и IP-адрес, который мы хотим, чтобы он всегда получал.
  • Статически настройте наш сервер Linux, в этом случае DHCP-сервер маршрутизатора / брандмауэра должен иметь диапазон DHCP, который находится за пределами нашего частного IP-адреса, который мы установили.

Чтобы статически настроить 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 и автозагрузку

Первое, что нам нужно сделать для настройки DNS-сервера (привязки) в Linux, - это установить его из репозиториев, мы собираемся установить как DNS-сервер Bind9, так и пакеты, предлагаемые операционной системой Debian, поэтому мы необходимо поместить в консоль следующее:

sudo apt install bind9 bind9-doc resolvconf python-ply-doc

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

cd /etc/bind/

Целесообразно получить доступ к этому каталогу как root (sudo su) чтобы избежать проблем с разрешениями при копировании файлов или изменении существующих. Если мы введем «ls -l», чтобы перечислить все файлы, которые у нас есть, мы увидим следующее:

Как видите, у нас есть большое количество различных файлов конфигурации, каждый из которых специально ориентирован на конкретную задачу, в официальной документации Bind9 вы можете найти, для чего каждый из них предназначен. Предположим, что с этого момента вы всегда находитесь в режиме суперпользователя (root), чтобы редактировать или копировать файлы без ограничений.

Настройка серверов пересылки привязки с использованием общедоступных DNS-серверов

Первое, что мы собираемся сделать, это настроить переадресацию DNS-серверов, то есть общедоступных DNS-серверов для пересылки запросов в Интернет. Файл конфигурации, отвечающий за эту задачу, называется named.conf.options. Первое, что мы делаем, это делаем резервную копию файла на случай, если мы отредактируем его неправильно и все перестанет работать:

cp /etc/bind/named.conf.options /etc/bind/named.conf.options.copia

Теперь мы редактируем файл, добавляя DNS-серверы в раздел пересылки, как вы можете видеть здесь:

forwarders {
8.8.8.8;
1.1.1.1;
};

Это было бы так:

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

sudo service bind9 restart

Теперь мы собираемся проверить, правильно ли они работают, для этого мы выполняем команду nslookup, и мы должны увидеть, что наш DNS-сервер правильно определил домен, в нашем случае IP-адрес сервера - 192.168.231.130:

После того, как мы настроили Bind для пересылки разрешений веб-сайтов в общедоступный DNS, мы увидим, как настроить его для разрешения внутренних доменов.

Настроить привязку для локальных разрешений

Файл конфигурации, который мы должны настроить сейчас, называется .conf.local, желательно сделать резервную копию на случай, если что-то пойдет не так при настройке, для этого мы выполняем:

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

У нас есть все готово, чтобы запустить серию тестов и проверить, все ли мы сделали правильно. Чтобы убедиться, что все работает, мы должны выполнить следующие команды:

host router.redlocal.com

Он покажет нам следующее, IP-адрес маршрутизатора:

root@bron-debian:/etc/bind# host router.redlocal.com
router.redlocal.com has address 10.11.1.1

То же самое можно сделать и с ПК1:

host pc1.redlocal.com

Мы увидим это:

root@bron-debian:/etc/bind# host pc1.redlocal.com
pc1.redlocal.com has address 10.11.1.2

После того, как нам удалось правильно разрешить локальные домены, вернув соответствующий IP-адрес, мы можем без проблем пинговать через домен:

root@bron-debian:/etc/bind# ping router.redlocal.com
PING router.redlocal.com (10.11.1.1) 56(84) bytes of data.
64 bytes from 10.11.1.1 (10.11.1.1): icmp_seq=1 ttl=128 time=0.413 ms
64 bytes from 10.11.1.1 (10.11.1.1): icmp_seq=2 ttl=128 time=0.401 ms
^C
--- router.redlocal.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 28ms
rtt min/avg/max/mdev = 0.401/0.407/0.413/0.006 ms

Теперь мы настроим обратное разрешение доменов.

Обратное разрешение домена

Теперь мы собираемся настроить 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

И проверяем правильность работы:

host 192.168.231.130

Мы надеемся, что это полное руководство по привязке помогло вам настроить собственный DNS-сервер локально.