Для тех, кто не знает, что DNS представляет собой систему доменных имён, которая служит для преобразования имени в IP-адрес ПК и обратно. Таким образом, когда вы вводите адрес веб-страницы в браузере, система доменных имён преобразует его в IP-адрес хостинга, на котором располагается конкретный домен. В этой статье детально разберём, как установить и настроить DNS-сервер Ubuntu. Давайте же начнём. Поехали!
Первый этап
Первый этап — установка. Рекомендуется использовать сервер Bind9. Для этого перейдите в терминал и введите:
sudo apt install bind9
Далее необходимо сгенерировать ключ для обновления записей либо воспользоваться уже имеющимся. Чтобы сгенерировать его, выполните:
dnssec-keygen -a HMAC-MD5 -b 128 -r /dev/urandom -n USER DHCP_UPDATER
для вывода ключа на экран нужно ввести
cat Kdhcp_updater.*.private|grep Key
Его обязательно нужно сохранить, так как в дальнейшем secret key вам понадобится.
Чтобы воспользоваться уже имеющимся ключом, добавьте в /etc/bind/named.conf запись. Сперва необходимо выполнить:
sudo nano /etc/bind/named.conf,
а после добавить в файл строку:
include «/etc/bind/rndc.key»;
Настройка Bind9
Теперь перейдём к настройке Bind9. Откройте файл конфигурации, прописав в терминале:
sudo nano /etc/bind/named.conf.options
и добавьте туда следующие строки:
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-сервер.
Перезапуск bind9
Далее необходимо перезапустить bind9. Для этого пропишите в терминале:
sudo service bind9 restart
Теперь укажите зоны прямого и обратного просмотра, а также введите их в конфигурации bind9. Исходные данные следующие:
Доменное имя — dom
IP-адрес сервера — 192.168.0.1
Имя сервера — ns.dom
Чтобы настроить зону прямого просмотра, создайте соответствующий файл и скопируйте его образец:
sudo cp /etc/bind/db.local /var/lib/bind/db.dom
далее отройте командой:
sudo nano /var/lib/bind/db.dom
и отредактируйте следующим образом:
$ORIGIN .
$TTL 604800 ; 1 week
dom IN SOA ns.dom. root.ns.dom. (
201605277 ; serial
604800 ; refresh (1 week)
86400 ; retry (1 day)
2419200 ; expire (4 weeks)
604800 ; minimum (1 week)
)
@ IN NS ns.dom.
@ IN A 192.168.0.1
@ IN AAAA ::1
$ORIGIN dom.
$TTL 604800 ; 1 week
ns IN A 192.168.0.1
Далее необходимо настроить обратную. Для этого сделайте копию файла прямого просмотра, которую вы только что создали:
sudo cp /var/lib/bind/db.dom /var/lib/bind/db.192.dom
открываете его командой:
sudo nano /var/lib/bind/db.192.dom
и также редактируете:
$ORIGIN .
$TTL 604800 ; 1 week
0.168.192.in-addr.arpa IN SOA ns.dom. root.ns.dom. (
2016052655 ; serial
604800 ; refresh (1 week)
86400 ; retry (1 day)
2419200 ; expire (4 weeks)
604800 ; minimum (1 week)
)
@ IN NS ns.
$ORIGIN 0.168.192.in-addr.arpa.
$TTL 604800 ; 1 week
1 IN PTR ns.dom.
Чтобы настроить зоны в конфигурации bind9, нужно открыть файл конфигурации командой:
sudo nano /etc/bind/named.conf.local,
а дальше появляется снова два варианта развития событий. Если вы создавали secret key первым способом, пропишите:
key DHCP_UPDATER {
algorithm HMAC-MD5.SIG-ALG.REG.INT;
secret «9DxMmNw7J813qviXajG7rQ==»;
};
// зона прямого просмотра
zone «dom»{
type master;
file «/var/lib/bind/db.dom»;
allow-update { key DHCP_UPDATER; };
};
// зона обратного просмотра
zone «0.168.192.in-addr.arpa»{
type master;
file «/var/lib/bind/db.192»;
allow-update { key DHCP_UPDATER; };
};
key DHCP_UPDATER — информация о secret key, который вы записывали в самом начале (его необходимо прописывать в кавычках). IP-адреса, указанные здесь и далее, нужно вписывать именно так, как показано здесь.
Если ранее, вы воспользовались вторым способом, введите:
// зона прямого просмотра
zone «dom»{
type master;
file «/var/lib/bind/db.dom»;
allow-update { key rndc-key; };
};
// зона обратного просмотра
zone «3.168.192.in-addr.arpa»{
type master;
file «/var/lib/bind/db.192»;
allow-update { key rndc-key; };
};
где key rndc-key — данные ключа, взятые из системы, а zone «dom» — данные о зоне применения системы доменных имён.
Проверить правильность настройки можно с помощью команды:
named-checkconf
Если всё сделано правильно, то она ничего не напишет. Иначе вы увидите сообщение об ошибках, и их придётся исправить.
Остаётся сохранить всё это дело, затем закрыть и перезапустить bind9, введя:
sudo /etc/init.d/bind9 restart
Проверка работы системы доменных имён
Теперь проверьте работу системы доменных имён:
nslookup ns.dom
в результате вы должны получить нечто вроде:
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: ns.dom
Address: 192.168.0.1
Как вы можете убедиться, зона прямого просмотра работает. Теперь удостоверьтесь, что также работает и обратная:
nslookup 192.168.0.1
В результате вы должны увидеть:
Server: 127.0.0.1
Address: 127.0.0.1#53
1.0.168.192.in-addr.arpa name = ns.dom.
В итоге вы должны получить имя сервера, введя его IP. Если у вас всё отображается подобным образом, значит, настройка была произведена верно. Если же нет, значит, ранее была допущена ошибка.
Настройка динамического обновления
Чтобы настроить динамическое обновление, откройте /etc/dhcp/dhcpd.conf, выполнив команду:
sudo nano /etc/dhcp/dhcpd.conf
Строку ddns-update-style none нужно заменить на ddns-update-style interim. Далее добавьте строку update-static-leases on, которая отвечает за создание зон для клиентов со статичным IP. Убедитесь, что в option domain-name содержится название домена «dom». В строке «key» должно быть название вашего ключа (если вы ранее выбирали первый способ, пропишите DHCP_UPDATER, если второй, то rndc-key), содержит ваш секретный ключ. Чтобы посмотреть rndc-key выполните:
cat /etc/bind/rndc.key |grep secret
в результате должно получиться нечто подобное:
secret «2mu11eRajAdm4KV0x0Pmcg==»;
На этом с настройками DHCP всё. Теперь необходимо перезапустить bind9 и dhcp. Для этого пропишите:
sudo service bind9 restart
sudo service isc-dhcp-server restart
Остаётся проверить как всё работает. Запустите клиентскую машину, находящуюся в сети с сервером. После запуска машина получит IP от DHCP, а он, в свою очередь, создаст запись типа client-pc.dom. По запросу «nslookup имя_клиентской_машины», вы должны получить ответ. Перезапустив server, можно будет посмотреть файлы прямого и обратного просмотра. Если на предыдущих этапах вы всё настроили правильно, там вы увидите информацию о новых машинах. Готово. Настройка завершена.
Итоги
Теперь вы знаете, как настраивается DNS-сервер в Ubuntu. Пишите в комментариях как вы справились с этой задачей, делитесь своим опытом с другими юзерами, и задавайте любые интересующие вас вопросы по теме этой статьи.