Перейти к основному контенту

3. Практика

Задачи

  1. Установить и настроить авторитетного DNS сервера
  2. Настроить DNS для работы в соответствии со стандартом RFC 2136
  3. Установка и настройка рекурсивного DNS
  4. СоздаВыпустить свой CA сертификат безопасности
  5. Создать простой тестовый сайт и выпустить для него сертификат

Построение стенда

Схема виртуального лабораторного стенда

Рисунок 1. Схема стенда

  1. Создать виртуальные машины для работы
Название виртуальной машины Источник Тип инстанса Сети для внешнего подключения
web-server Образ-Ubuntu-server20.04 small external-net
dns-server Образ-Ubuntu-server20.04 small external-net

Так же нужно проверить развернутую инфраструктуру на соответствие схеме на рисунке 1.

В группах безопастности необходимо разрешить DNS

1. Установка и настройка авторитетного DNS сервера

Обновляем пакеты внутри системы до последней версии

sudo apt update
# Необязательно, но желательно
sudo apt full-upgrade -y

Устанавливаем сервер реализацию DNS сервера PowerDNS

sudo apt install pdns-server pdns-backend-sqlite3 sqlite3 -y

Настроить для работы c sqlite бд

sudo mkdir /var/lib/powerdns
sudo sqlite3 /var/lib/powerdns/pdns.sqlite3 < /usr/share/doc/pdns-backend-sqlite3/schema.sqlite3.sql
sudo chown -R pdns:pdns /var/lib/powerdns

Выключаем systemd-resolved

sudo systemctl disable --now systemd-resolved.service

Изменяем используемый dns-сервер на 172.17.1.10

sudo rm -rf /etc/resolv.conf
echo "nameserver 172.17.1.10" |sudo tee /etc/resolv.conf 

Отредактировать /etc/powerdns/pdns.conf

include-dir=/etc/powerdns/pdns.d
launch=gsqlite3
gsqlite3-database=/var/lib/powerdns/pdns.sqlite3
security-poll-suffix=
setgid=pdns
setuid=pdns

Рисунок 2. Пример конфига

Активируем демона dns-сервера

sudo systemctl enable --now pdns

Создаем зону по имени пользователя(для примера используется devops-course.test)

sudo pdnsutil create-zone devops-course.test{zone name} ns1.devops-course.test{zone name}
sudo pdnsutil add-record devops-course.test.{zone name}. www A 127.0.0.1

Проверьте работу сервера

nslookup www.devops-course.test {server ip}

Запрос делается с пользователького пк

Рисунок 3. Пример ответ при адресе сервера 172.17.36.216

2. Настроить DNS для работы в соответствии со стандартом RFC 2136

Для работы по стандарту rfc2136, необходимо изменить конфигурацию работы PowerDNS, в конфигурационном файле необходимо добавить строки:

dnsupdate=yes
allow-dnsupdate-from=172.16.0.0/12

Рисунок 4. Конфигурация после обновления

Создать TSIG ключ с именем dnsudpater

sudo pdnsutil generate-tsig-key dnsupdater hmac-sha512

Рисунок 5. Пример корректного создания TSIG ключа

Посмотреть существующие ключи можно командой:

sudo pdnsutil list-tsig-keys

Для проверки работы rfc2136 добавим новую A запись test указывающую, на наш web-сервер

nsupdate <<!
server {ip dns-server} 53
zone {zone name}
update add test.{zone name} 3600 A {ip web-server}
key hmac-sha512:{key name} {tsig key}
send
!

выполнять с устройства в сети 172.16.0.0/12

Проверить, что запись добавилась

nslookup test.{zone name} {ip dns-server}