налаштування DNS у CentOS

Крок 1: встановлення необхідних пакетів

Перед початком розгляду наступних інструкцій хочемо відзначити, що на нашому сайті вже є загальне керівництво по конфігурації стандартного DNS в Linux. Ми рекомендуємо задіяти саме той матеріал, якщо слід виставити налаштування для звичайного відвідування інтернет-сайтів. Далі ж ми покажемо, як інсталюється основний локальний DNS-сервер з клієнтською частиною.

Читайте також: налаштування DNS в Linux

В якості засобу створення локального DNS-сервера рекомендуємо задіяти bind9 . Налаштування наступних конфігураційних файлів теж буде базуватися на загальних принципах поведінки цього компонента. За замовчуванням bind9 відсутня в операційній системі, тому почнемо з її додавання.

  1. Запустіть консоль зручним для вас способом. Вона знаходиться в розділі & 171; Додатки&187; &8212; & 171; Вибране & 187; або відкривається за допомогою стандартної комбінації клавіш Ctrl + Alt + T .
  2. Переход к терминалу для установки основного DNS в CentOS
  3. Тут потрібно ввести команду sudo yum install bind bind-utils -y і натиснути на Enter для її активації.
  4. Команда для установки основного DNS в CentOS
  5. Дана дія виконується від імені суперкористувача ( sudo ), тому доведеться підтвердити обліковий запис, ввівши пароль в що з'явилася рядок.
  6. Подтверждение установки основного DNS в CentOS через терминал
  7. Очікуйте завершення завантаження та встановлення пакетів.
  8. Ожидание завершения установки основного DNS в CentOS

Після закінчення даного процесу ви будете повідомлені про те, що всі пакети успішно додані в систему. Після цього перейдіть до наступного кроку.

Крок 2: Глобальне налаштування DNS-сервера

Зараз хочемо продемонструвати, яким саме чином редагується головний конфігураційний файл, а також які рядки туди додаються. Не будемо зупинятися на кожному рядку окремо, оскільки це займе дуже багато часу, до того ж всі потрібні відомості є в офіційній документації.

  1. Для редагування конфігураційних об'єктів можна використовувати будь-який текстовий редактор. Пропонуємо інсталювати зручний nano , ввівши в консолі sudo yum install nano .
  2. Команда для установки текстового редактора перед редактированием файлов DNS в CentOS
  3. Усі необхідні пакети будуть завантажені, і якщо вони вже є в дистрибутиві, Ви отримаєте сповіщення &171;нічого не робити&187; .
  4. Успешная инсталляция текстового редактора перед редактированием файлов DNS в CentOS
  5. Приступимо до редагування самого файлу. Відкрийте його через sudo nano /etc/named.conf . При необхідності замініть бажаний текстовий редактор, тоді рядок вийде приблизно такий: sudo vi /etc/named.conf .
  6. Запуск основного конфигурационного файла DNS в CentOS для дальнейшей настройки
  7. Нижче ми наведемо вміст, яке потрібно вставити в відкрився файл або звірити його з уже існуючим, додавши відсутні рядки.
  8. Настройка основного конфигурационного файла DNS в CentOS
  9. Після цього натисніть на Ctrl + O , щоб записати зміни.
  10. Сохранение изменений после настройки основного конфигурационного файла DNS в CentOS
  11. Змінювати назву файлу не потрібно, досить просто натиснути на Enter .
  12. Отмена изменения названия конфигурационного файла DNS в CentOS
  13. Залиште текстовий редактор через Ctrl + X .
  14. Выход из текстового редактора после изменения основного конфигурационного файла DNS в CentOS

Як вже було сказано раніше, в конфігураційний файл потрібно вставити певні рядки, що задають загальні правила поведінки DNS-сервера.

//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

Options {
listen-on port 53 { 127.0.0.1; 192.168.1.101;}; Master DNS IP
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { localhost; 192.168.1.0/24;}; IP Range
allow-transfer{ localhost; 192.168.1.102; }; Slave DNS IP

/*
- If you are building an AUTHORITAT;IVE DNS server, do NOT enable recursion.
- If you are building a RECURSIVE (caching) DNS server, you need to enable
recursion.
- If your recursive DNS server has a public IP address, you MUST enable access
control to limit queries to your legitimate users. Failing to do so will
cause your server to become part of large scale DNS amplification
attacks. Implementing BCP38 within your network would greatly
reduce such attack surface
*/
recursion yes;

Dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;

/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";

Managed-keys-directory "/var/named/dynamic";

Pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
};

Logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};

Zone "." IN {
type hint;
file "named.ca";
};

Zone "unixmen.local" IN {
type master;
file "forward.unixmen";
allow-update { none; };
};
zone "1.168.192.in-addr.arpa" IN {
type master;
file "reverse.unixmen";
allow-update { none; };
};

Include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

Переконайтеся, що все виставлено в точності так, як показано вище, а вже потім переходите до наступного кроку.

Крок 3: створення прямої та зворотної зони

Для отримання інформації про джерело DNS-сервер використовує прямі та зворотні зони. Пряма дозволяє отримувати IP-адресу по імені хоста, а зворотна через IP видає доменне ім'я. Коректна робота кожної зони повинна бути забезпечена спеціальними правилами, створенням яких ми і пропонуємо зайнятися далі.

  1. Для прямої зони створимо окремий файл через той же текстовий редактор. Тоді рядок буде виглядати так: sudo nano /var/named/forward.unixmen .
  2. Переход к созданию файла прямой зоны при настройке DNS в CentOS
  3. Вам буде повідомлено, що це порожній об'єкт. Вставте туди вказане нижче вміст:

    $TTL 86400
    @ IN SOA masterdns.unixmen.local. root.unixmen.local. (
    2011071001 ;Serial
    3600 ;Refresh
    1800 ;Retry
    604800 ;Expire
    86400 ;Minimum TTL
    )
    @ IN NS masterdns.unixmen.local.
    @ IN NS secondarydns.unixmen.local.
    @ IN A 192.168.1.101
    @ IN A 192.168.1.102
    @ IN A 192.168.1.103
    masterdns IN A 192.168.1.101
    secondarydns IN A 192.168.1.102
    client IN A 192.168.1.103

  4. Добавление конфигурации для файла прямой зоны DNS в CentOS
  5. Збережіть зміни та закрийте текстовий редактор.
  6. Выход из текстового редактора после создания файла прямой зоны DNS в CentOS
  7. Тепер перейдемо до зворотної зони. Для неї потрібен файл /var/named/reverse.unixmen .
  8. Создание файла обратной зоны для настройки DNS в CentOS
  9. Це також буде новий порожній файл. Вставте туди:

    $TTL 86400
    @ IN SOA masterdns.unixmen.local. root.unixmen.local. (
    2011071001 ;Serial
    3600 ;Refresh
    1800 ;Retry
    604800 ;Expire
    86400 ;Minimum TTL
    )
    @ IN NS masterdns.unixmen.local.
    @ IN NS secondarydns.unixmen.local.
    @ IN PTR unixmen.local.
    masterdns IN A 192.168.1.101
    secondarydns IN A 192.168.1.102
    client IN A 192.168.1.103
    101 IN PTR masterdns.unixmen.local.
    102 IN PTR secondarydns.unixmen.local.
    103 IN PTR client.unixmen.local.

  10. Добавление содержимого в файл обратной зоны при настройке DNS в CentOS
  11. При збереженні не змінюйте назву об'єкта, а просто натисніть на клавішу Enter .
  12. Отмена изменения названия файла при сохранении обратной зоны DNS в CentOS

Тепер зазначені файли будуть використані для прямої та зворотної зони. При необхідності слід редагувати саме їх, щоб змінити якісь параметри. Про це ви теж можете прочитати в офіційній документації.

Крок 4: Запуск DNS-сервера

Після виконання всіх попередніх вказівок можна вже запустити DNS-сервер, щоб в майбутньому легко перевірити його працездатність і продовжити Налаштування важливих параметрів. Здійснюється поставлена задача наступним чином:

  1. У консолі введіть sudo systemctl enable named , щоб додати DNS-сервер в автозавантаження для автоматичного запуску при старті операційної системи.
  2. Добавление службы DNS в CentOS в автозагрузку операционной системы
  3. Підтвердьте цю дію, ввівши пароль суперкористувача.
  4. Подтверждение действия добавления службы DNS в CentOS в автозагрузку
  5. Ви будете повідомлені про створення символічного посилання, а значить, дія виконана успішно.
  6. Успешное создание символической ссылки для автоматической загрузки службы DNS в CentOS
  7. Запустіть утиліту через systemctl start named . Зупинити її можна так само, тільки замінивши опцію start на stop .
  8. Команда для включения службы DNS в CentOS
  9. При відображенні спливаючого вікна з підтвердженням автентичності введіть пароль від root.
  10. Подтверждение команды включения службы DNS в CentOS путем ввода пароля

Як видно, управління зазначеною службою здійснюється за таким же принципом, як і всіма іншими стандартними утилітами, тому з цим не повинно виникнути ніяких проблем навіть у початківців користувачів.

Крок 5: Зміна параметрів брандмауера

Для коректного функціонування DNS-сервера потрібно відкрити порт 53, що здійснюється через стандартний міжмережевий екран FirewallD. В &171;терміналі&187; буде потрібно ввести всього три простих команди:

  1. Перша має вигляд firewall-cmd --permanent --add-port=53/tcp і відповідає за відкриття порту протоколу TCP. Вставте її в консоль і натисніть на Enter .
  2. Открытие порта DNS в CentOS через стандартный межсетевой экран
  3. Ви повинні отримати повідомлення &171;Success&187; , що свідчить про успішне застосування правила. Після цього вставте рядок firewall-cmd --permanent --add-port=53/udp для відкриття порту протоколу UDP.
  4. Открытие второго порта DNS в CentOS через стандартный межсетевой экран
  5. Всі зміни будуть застосовані тільки після перезавантаження міжмережевого екрану, що проводиться через команду firewall-cmd --reload .
  6. Перезагрузка межсетевого экрана после внесения в него изменений для настройки DNS в CentOS

Більше ніяких змін з брандмауером виробляти не доведеться. Тримайте його постійно у включеному стані, щоб не виникло проблем з отриманням доступу.

Крок 6: налаштування прав доступу

Зараз потрібно виставити основні дозволи і права доступу, щоб трохи убезпечити функціонування DNS-сервера і захистити звичайних користувачів від можливості змінювати параметри. Зробимо це стандартним способом і через SELinux.

  1. Усі наступні команди повинні бути активовані від імені суперкористувача. Щоб постійно не вводити пароль, радимо включити перманентний рут-доступ для поточної термінальної сесії. Для цього в консолі введіть su .
  2. Активация прав суперпользователя для дальнейшей настройки доступа DNS в CentOS
  3. Вкажіть пароль доступу.
  4. Ввод пароля для активации перманентного рута при настройке DNS в CentOS
  5. Після цього по черзі впишіть зазначені нижче команди, щоб створити оптимальну настройку доступу:

    Chgrp named -R /var/named
    chown -v root:named /etc/named.conf
    restorecon -rv /var/named
    restorecon /etc/named.conf

  6. Ввод команд для настройки доступа к DNS в CentOS

На цьому загальна конфігурація головного DNS-сервера закінчена. Залишилося тільки відредагувати кілька конфігураційних файлів і провести тестування на помилки. З усім цим ми і пропонуємо розібратися в наступному кроці.

Крок 7: тестування на помилки та завершення налаштування

Рекомендуємо почати з перевірок на помилки, щоб в майбутньому не довелося міняти і залишилися конфігураційні файли. Саме тому ми і розглянемо все це в межах одного кроку, а також наведемо зразки правильного виведення команд для тестування.

  1. Введіть в &171;терміналі&187; named-checkconf /etc/named.conf . Це дозволить перевірити глобальні параметри. Якщо в результаті ніякого висновку не було, значить, все налаштовано коректно. В іншому випадку вивчіть повідомлення і, відштовхуючись від нього, вирішите проблему.
  2. Команда для проверки основного файла конфигурации DNS в CentOS
  3. Далі потрібно перевірити пряму зону, вставивши рядок named-checkzone unixmen.local /var/named/forward.unixmen .
  4. Команда для проверки основного файла конфигурации DNS в CentOS
  5. Зразок виводу виглядає наступним чином: zone unixmen.local/IN: loaded serial 2011071001 OK .
  6. Вывод результатов тестирования прямой зоны DNS в CentOS
  7. Приблизно те ж саме здійснюємо і зі зворотною зоною через named-checkzone unixmen.local /var/named/reverse.unixmen .
  8. Команда для проверки обратной зоны при тестировании DNS в CentOS
  9. Правильний вихід повинен бути таким: zone unixmen.local/IN: loaded serial 2011071001 OK .
  10. Вывод результатов тестирования обратной зоны DNS в CentOS
  11. Тепер перейдемо до налаштувань основного мережевого інтерфейсу. У нього буде потрібно додати дані поточного DNS-сервера. Для цього відкрийте файл /etc/sysconfig/network-scripts/ifcfg-enp0s3 .
  12. Переход к редактированию файла глобальной сети при настройке DNS в CentOS
  13. Перевірте, щоб вміст був такий, як показано нижче. При необхідності вставте параметри DNS.

    TYPE="Ethernet"
    BOOTPROTO="none"
    DEFROUTE="yes"
    IPV4_FAILURE_FATAL="no"
    IPV6INIT="yes"
    IPV6_AUTOCONF="yes"
    IPV6_DEFROUTE="yes"
    IPV6_FAILURE_FATAL="no"
    NAME="enp0s3"
    UUID="5d0428b3-6af2-4f6b-9fe3-4250cd839efa"
    ONBOOT="yes"
    HWADDR="08:00:27:19:68:73"
    IPADDR0="192.168.1.101"
    PREFIX0="24"
    GATEWAY0="192.168.1.1"
    DNS="192.168.1.101"
    IPV6_PEERDNS="yes"
    IPV6_PEERROUTES="yes"

  14. Редактирование файла глобальной сети при настройке DNS в CentOS
  15. Після збереження змін перейдіть до файлу /etc/resolv.conf .
  16. Переход к редактированию интерфейсов при настройке DNS в CentOS
  17. Тут потрібно додати лише один рядок: nameserver 192.168.1.101 .
  18. Редактирование интерфейсов глобальной сети при настройке DNS в CentOS
  19. Після завершення залишається тільки перезавантажити мережу або комп'ютер, щоб оновити конфігурацію. Служба мережі перезапускається через команду systemctl restart network .
  20. Перезапуск глобальной сети после успешной настройки DNS в CentOS

Крок 8: Перевірка встановленого DNS-сервера

В завершенні конфігурації залишається тільки перевірити роботу наявного DNS-сервера після його додавання в Глобальну службу мережі. Ця операція так само виконується за допомогою спеціальних команд. Перша з них має вигляд dig masterdns.unixmen.local .

Команда для проверки работоспособности DNS в CentOS

В результаті на екрані повинен з'явитися висновок, що має схоже уявлення з зазначеним нижче вмістом.

Вывод команды проверки работоспособности DNS в CentOS

; <> DiG 9.9.4-RedHat-9.9.4-14.el7 <> masterdns.unixmen.local
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25179
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

;; OPT PSEUDOSECTIO;N:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;masterdns.unixmen.local. IN A

;; ANSWER SECTION:
masterdns.unixmen.local. 86400 IN A 192.168.1.101

;; AUTHORITY SECTION:
unixmen.local. 86400 IN NS secondarydns.unixmen.local.
unixmen.local. 86400 IN NS masterdns.unixmen.local.

;; ADDITIONAL SECTION:
secondarydns.unixmen.local. 86400 IN A 192.168.1.102

;; Query time: 0 msec
;; SERVER: 192.168.1.10153(192.168.1.101)
;; WHEN: Wed Aug 20 16:20:46 IST 2014
;; MSG SIZE rcvd: 125

Додаткова команда дозволить дізнатися про стан локальної роботи DNS-сервера. Для цього в консоль вставте nslookup unixmen.local і натисніть на Enter .

Команда для проверки корректности работы зон DNS в CentOS

Результат повинен відображати три різні подання IP-адрес та доменних імен.

Server: 192.168.1.101
Address: 192.168.1.10153

Name: unixmen.local
Address: 192.168.1.103
Name: unixmen.local
Address: 192.168.1.101
Name: unixmen.local
Address: 192.168.1.102

Вывод команды проверки корректности работы зон DNS в CentOS

Якщо висновок відповідає тому, який вказали ми, значить, конфігурація завершена успішно і можна переходити до роботи з клієнтською частиною DNS-сервера.

Налаштування клієнтської частини DNS-сервера

Ми не будемо розділяти цю процедуру на окремі кроки, оскільки вона виконується шляхом редагування лише одного конфігураційного файлу. У нього необхідно додати інформацію про всіх клієнтів, які будуть підключені до сервера, а приклад такого налаштування виглядає так:

  1. Відкрийте файл /etc/resolv.conf через будь-який зручний текстовий редактор.
  2. Переход к конфигурации клиентской части DNS в CentOS
  3. Додайте туди рядки search unixmen.local nameserver 192.168.1.101 і nameserver 192.168.1.102 , замінивши необхідне на клієнтські адреси.
  4. Конфигурация клиентской части DNS в CentOS при его настройке
  5. При збереженні не змінюйте ім'я файлу, а просто натисніть на клавішу Enter .
  6. Сохранение изменений после настройки клиентской части DNS в CentOS
  7. Після виходу з текстового редактора в обов'язковому порядку перезавантажте глобальну мережу через команду systemctl restart network .
  8. Перезапуск сети после настройки клиентской части DNS в CentOS

Це були основні моменти Налаштування клієнтської складової DNS-сервера, про яку ми хотіли розповісти. Всі інші нюанси пропонуємо вивчити, прочитавши офіційну документацію, якщо це потрібно.

Тестування DNS-сервера

Останній етап нашого сьогоднішнього матеріалу &8212; завершальне тестування DNS-сервера. Нижче ви бачите кілька команд, що дозволяє впоратися з поставленим завданням. Використовуйте одну з них, активувавши через &171;Термінал&187; . Якщо у виведенні не спостерігається ніяких помилок, отже, весь процес виконаний вірно.

Dig masterdns.unixmen.local
dig secondarydns.unixmen.local
dig client.unixmen.local
nslookup unixmen.local

Глобальная проверка работоспособности DNS в CentOS

Сьогодні ви дізналися все про налаштування головного DNS-сервера в дистрибутиві CentOS. Як бачите, вся операція зосереджена на введенні термінальних команд і редагуванні конфігураційних файлів, що може викликати певні труднощі у початківців користувачів. Однак вам потрібно всього лише точно слідувати зазначеним інструкціям і читати результати перевірок, щоб все пройшло без будь-яких помилок.

більше статей на цю тему: