Установка и настройка DNS сервера Ubuntu
Для начала нужно установить самые последние обновления системы
1 2 |
sudo apt-get update sudo apt-get upgrade |
После этого установим службу DNS сервера Bind9
1 |
sudo aptitude install bind9 |
после установки службы, она автоматически запуститься
Следующим шагом, генерируем ключ для обновления DNS записей
1 |
dnssec-keygen -a HMAC-MD5 -b 128 -r /dev/urandom -n USER DHCP_UPDATER |
выводим его на экран
1 |
cat Kdhcp_updater.*.private|grep Key |
на экране вы должны увидеть ключ, что то подобно этому:
Key: 4GD8OIb8pZk4vAueACAfUQ==
Настраиваем DNS сервер Bind9
Открываем файл конфигурации
1 |
sudo nano /etc/bind/named.conf.options |
Добавим следующий код:
1 2 3 4 5 6 7 8 |
forwarders { 8.8.8.8; 8.8.4.4; }; listen-on { 127.0.0.1; 192.168.0.1; }; |
- forwaders – вышестоящий dns сервер (сервер гугла), используется если url запроса не найден в нашей базе.
- listen-on – адреса через которые будет обслуживаться наш DNS сервер.
Сохраняем (Ctrl+O) и закрываем (Ctrl+X) файл.
Перезапустим bind9
1 |
sudo service bind9 restart |
Теперь можно протестировать работу нашего DNS сервера
Добавим в фал /etc/resolv.conf строчку с нашим DNS сервером (так как файл /etc/resolv.conf при перезагрузке меняет значения на дефолтные, добавить запись нужно в тот файл из которого будут браться дефолтные значения)
1 |
sudo nano /etc/resolvconf/resolv.conf.d/tail |
в этот файл пишем следующее:
1 2 3 |
domain lab.loc search lab.loc nameserver 127.0.0.1 |
Сохраняем файл, закрываем его и перезагружаем сервер. После перезагрузки протестируем работу сервера, выполните следующую команду:
1 |
dig ubuntu.ru |
в ответ вы получите ответ с временем выполнения запроса (выделено цветом)
Как видите запрос был выполнен за 284 мсек. Теперь еще раз выполним этот же запрос и проверим время запроса
Повторный запрос был выполнен за 7 мсек! Отлично! Кэширование запросов работает. Двигаемся дальше.
Настройка основного DNS сервера
Исходные данные:
- Доменное имя – lab.loc
- IP сервера – 192.168.0.1
- Имя сервера – srv-01.lab.loc
Нам нужно будет указать две зоны (прямого и обратного просмотра) и прописать их в конфигурации сервера.
Я начну с конца и укажу настройки зон в файле конфигурации. Открываем его
1 |
sudo nano /etc/bind/named.conf.local |
и вставляем следующее:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
key DHCP_UPDATER { algorithm HMAC-MD5.SIG-ALG.REG.INT; secret "4GD8OIb8pZk4vAueACAfUQ=="; }; zone "lab.loc" { type master; file "/var/lib/bind/db.lab.loc"; allow-update { key DHCP_UPDATER; }; }; //reverse zone zone "0.168.192.in-addr.arpa" { type master; file "/var/lib/bind/db.192"; allow-update { key DHCP_UPDATER; }; }; |
- key DHCP_UPDATER — информация о ключе, который мы с вами записывали (в кавычки вам нужно вписать свой ключ)
- zone «lab.loc» — информация о зоне использования DNS, указан тип — master, путь к файлу хранения данных зоны, обновления файла разрешено с использованием ключа.
- zone «0.168.192.in-addr.arpa» — создание зоны обратного просмотра
Теперь создадим сами файлы в которых будут храниться данные зоны lab.loc. Для этого скопируем образец файла прямого просмотра:
1 |
sudo cp /etc/bind/db.local /var/lib/bind/db.lab.loc |
откроем его
1 |
sudo nano /var/lib/bind/db.lab.loc |
и внесем правки как у меня:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
; BIND data file for local loopback interface ; $TTL 604800 @ IN SOA srv-01.lab.loc. root.srv-01.lab.loc. ( 20141126 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS srv-01.lab.loc. @ IN A 192.168.0.1 @ IN AAAA ::1 srv-01 IN A 192.168.0.1 |
Теперь скопируем файл зоны обратного просмотра:
1 |
sudo cp /etc/bind/db.127 /var/lib/bind/db.192 |
откроем его
1 |
sudo nano /var/lib/bind/db.192 |
Вносим в него следующее:
1 2 3 4 5 6 7 8 9 10 11 12 |
; BIND reverse data file for local loopback interface ; $TTL 604800 @ IN SOA srv-01.lab.loc. root.srv-01.lab.loc. ( 20141126 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS srv-01. 1 IN PTR srv-01.lab.loc. |
Сохраняем, закрываем, перезапускаем Bind9
1 |
sudo /etc/init.d/bind9 restart |
Сохраняем, закрываем, проверяем работу DNS сервера:
1 |
nslookup srv-01.lab.loc |
в ответ вы должны увидеть следующее: Как видите зона прямого просмотра работает, нам показался адрес проверяемого имени. Теперь проверим работу зоны обратного просмотра
1 |
nslookup 192.168.0.1 |
В ответ должны получить следующее:
Как видите в ответ мы получили имя сервера по его адресу. Если у вас в ответ на nslookup так же все корректно отображается, значит вы все сделали правильно! Если нет, проверяйте что сделали не так.
Настройка динамического обновления зон DHCP сервером
Если вы вместе со мной настраивали сервер с самого начала, тогда у вас не должно возникнуть трудностей. Откроем файл /etc/dhcp/dhcpd.conf
1 |
sudo nano /etc/dhcp/dhcpd.conf |
Проверяем что опция option domain-name содержит имя домена lab.loc, строку ddns-update-style none; закомментировать. Теперь добавим строчку update-static-leases on; – она отвечает за создание зон для клиентов у которых статичный IP адрес. Для автоматизации этого процесса, добавим следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
ddns-update-style interim; update-static-leases on; key DHCP_UPDATER { algorithm hmac-md5; secret "CO0WnumqxGoxqGEDjaR3YA=="; } zone lab.loc. { primary 127.0.0.1; key DHCP_UPDATER; } zone 0.168.192.in-addr.arpa. { primary 127.0.0.1; key DHCP_UPDATER; } |
где secret это тот самый код который мы делали вначале статьи.
Вот пример моего файла /etc/dhcp/dhcpd.conf:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
default-lease-time 600; max-lease-time 7200; authoritative; subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.10 192.168.0.254; option domain-name-servers 192.168.0.1; option domain-name "lab.loc"; option routers 192.168.0.1; option broadcast-address 192.168.0.255; default-lease-time 604800; max-lease-time 604800; } ddns-update-style interim; update-static-leases on; key DHCP_UPDATER { algorithm hmac-md5; secret "LUH8l/F2OtaVrA6eSffJog=="; } zone lab.loc. { primary 127.0.0.1; key DHCP_UPDATER; } zone 0.168.192.in-addr.arpa. { primary 127.0.0.1; key DHCP_UPDATER; } log-facility local7; |
Больше никакие настройки DHCP не трогаем, перезапускаем bind9 и dhcp
1 |
sudo /etc/init.d/bind9 restart |
1 |
sudo /etc/init.d/isc-dhcp-server restart |
Теперь нужно проверить как все это дело работает “в бою”. Запускаем клиентскую машину, которая находиться в сети с сервером. После включения машина получит IP адрес от DHCP сервера, а DHCP сервер создаст запись вроде klient-pc.lab.loc.
На запрос nslookup yos-pc (yos-pc это имя клиентской машины), мы должны увидеть ответ от сервера
Как видите по скриншоту, работает и прямой и обратный запросы к DNS.
После перезагрузки сервера, можно посмотреть на файлы прямого и обратного просмотра, в них вы увидите записи о новых машинах, вот пример моего файла, после перезагрузки сервера
Источник: http://faqpc.ru/nastrojka-dns-servera-ubuntu/
Leave a Reply