Стъпка 1: Инсталирайте необходимите пакети

Преди да започнем да разглеждаме следващите инструкции, искаме да отбележим, че нашият сайт вече има общо ръководство за конфигуриране на стандартен DNS в Linux. Препоръчваме ви да използвате точно този материал, ако трябва да зададете настройките за редовно посещение на интернет сайтове. След това ще ви покажем как да инсталирате първичен локален DNS сървър с клиентска страна.

Прочетете също: Конфигуриране на DNS в Linux

Като средство за създаване на локален DNS сървър препоръчваме да използвате свързване9... Конфигурирането на следващите конфигурационни файлове също ще се основава на общите принципи на поведението на този компонент. По подразбиране свързване9 липсва в операционната система, така че нека започнем с добавянето му.

  1. Стартирайте конзолата по удобен за вас начин. Това е в раздела "Приложения"Любими или се отваря чрез стандартната клавишна комбинация Ctrl + Alt + T.
  2. Отивате до терминал за инсталиране на основен DNS на CentOS

  3. Тук трябва да въведете командата sudo yum install bind bind-utils -y и кликнете върху Въведете за да го активирате.
  4. Команда за задаване на първичен DNS на CentOS

  5. Това действие се извършва от името на суперпотребителя (судо), така че ще трябва да потвърдите акаунта, като въведете паролата в появилия се ред.
  6. Потвърждаване на първичната DNS инсталация на CentOS чрез терминал

  7. Изчакайте изтеглянето и инсталирането на пакетите да завършат.
  8. Изчаква се завършването на първичната DNS инсталация на CentOS

В края на този процес ще бъдете уведомени, че всички пакети са успешно добавени към системата. След това преминете към следващата стъпка.

Стъпка 2: Глобална конфигурация на DNS сървър

Сега искаме да покажем как точно се редактира основният конфигурационен файл, както и какви редове се добавят там. Няма да се спираме на всеки ред поотделно, тъй като ще отнеме много време, освен това цялата необходима информация е налична в официалната документация.

  1. Всеки редактор на текст може да се използва за редактиране на конфигурационни обекти. Предлагаме да инсталирате удобен нанокато напишете в конзолата sudo yum инсталирате nano.
  2. Команда за инсталиране на текстов редактор преди редактиране на DNS файлове на CentOS

  3. Всички необходими пакети ще бъдат изтеглени и ако те вече присъстват в дистрибуцията, ще получите известие "Няма какво да се прави".
  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. Не е нужно да променяте името на файла, просто кликнете върху Въведете.
  12. Отменете промяната на името на DNS конфигурационния файл в CentOS

  13. Оставете текстовия редактор чрез Ctrl + X.
  14. Излизане от текстов редактор след промяна на основния DNS конфигурационен файл на CentOS

Както бе споменато по-рано, ще трябва да вмъкнете определени редове в конфигурационния файл, които задават общите правила за поведението на DNS сървъра.

//
// named.conf
//
// Предоставя се от пакета за свързване на Red Hat за конфигуриране на ISC BIND с име (8) DNS
// сървър като сървър на имена само за кеширане (само като локален DNS преобразувател).
//
// Вижте / usr / share / doc / bind * / sample / например наречени конфигурационни файлове.
//

настроики {
порт за слушане 53 {127.0.0.1; 192.168.1.101;}; ### Главен DNS IP ###
# слушане на-v6 порт 53 {:: 1; };
директория "/ var / named";
dump-файл "/var/named/data/cache_dump.db";
файл със статистика "/var/named/data/named_stats.txt";
memstatistics-файл "/var/named/data/named_mem_stats.txt";
allow-query {localhost; 192.168.1.0/24;}; ### IP обхват ###
allow-transfer {localhost; 192.168.1.102; }; ### IP подчинен DNS ###

/*
- Ако изграждате АВТОРИТАТИВЕН DNS сървър, НЕ разрешавайте рекурсия.
- Ако изграждате РЕКУРСИВЕН (кеширащ) DNS сървър, трябва да активирате
рекурсия.
- Ако вашият рекурсивен DNS сървър има публичен IP адрес, ТРЯБВА да разрешите достъп
контрол за ограничаване на заявките до вашите легитимни потребители. Ако не го направи, ще го направи
накарайте вашия сървър да стане част от широкомащабно усилване на DNS
атаки. Внедряването на BCP38 във вашата мрежа би довело до голяма степен
намаляване на такава повърхност за атака
*/
рекурсия да;

dnssec-enable да;
dnssec-валидиране да;
dnssec-lookaside auto;

/ * Път към ISC DLV ключ * /
bindkeys-файл "/etc/named.iscdlv.key";

управляван-ключове-директория "/ var / named / dynamic";

pid-файл "/run/named/named.pid";
сесиен ключ-файл "/run/named/session.key";
};

регистрация {
канал по подразбиране {
файл "data / named.run";
динамика на тежестта;
};
};

зона "." IN {
подсказка за тип;
файл "named.ca";
};

зона "unixmen.local" IN {
майстор на типа;
файл "forward.unixmen";
allow-update {няма; };
};
зона "1.168.192.in-addr.arpa" В {
майстор на типа;
файл "reverse.unixmen";
allow-update {няма; };
};

включва "/etc/named.rfc1912.zones";
включва "/etc/named.root.key";

Уверете се, че всичко е настроено точно както е показано по-горе, и едва след това преминете към следващата стъпка.

Стъпка 3: Създайте зона напред и назад

DNS сървърът използва зони напред и назад, за да получи информация за източника. Пренасочването ви позволява да получите IP адрес по име на хост, а обратното по IP ви дава име на домейн. Правилното функциониране на всяка зона трябва да бъде осигурено със специални правила, със създаването на които предлагаме да се справим допълнително.

  1. Нека създадем отделен файл за директната зона, използвайки същия текстов редактор.Тогава линията ще изглежда така: sudo nano /var/named/forward.unixmen.
  2. Отидете на Create Forward Zone File при конфигуриране на DNS на CentOS

  3. Ще бъдете уведомени, че това е празен обект. Поставете следното съдържание там:

    $ TTL 86400
    @ В SOA masterdns.unixmen.local. root.unixmen.local. (
    2011071001; Сериен
    3600; Опресняване
    1800; Повторен опит
    604800; Изтичане
    86400; Минимален TTL
    )
    @ IN NS masterdns.unixmen.local.
    @ В NS вторичен dns.unixmen.local.
    @ В 192.168.1.101
    @ В 192.168.1.102
    @ В 192.168.1.103
    masterdns В А 192.168.1.101
    вторични dns В A 192.168.1.102
    клиент В 192.168.1.103

  4. Добавяне на конфигурация за препращане на файл с DNS зона в CentOS

  5. Запазете промените си и затворете текстовия редактор.
  6. Излизане от текстов редактор след създаване на препратен файл на DNS зона на CentOS

  7. Сега да преминем към обратната зона. Изисква файл /var/named/reverse.unixmen.
  8. Създаване на файл с обратна зона за конфигуриране на DNS на CentOS

  9. Това също ще бъде нов празен файл. Поставете там:

    $ TTL 86400
    @ В SOA masterdns.unixmen.local. root.unixmen.local. (
    2011071001; Сериен
    3600; Опресняване
    1800; Повторен опит
    604800; Изтичане
    86400; Минимален TTL
    )
    @ IN NS masterdns.unixmen.local.
    @ В NS вторичен dns.unixmen.local.
    @ В PTR unixmen.local.
    masterdns В А 192.168.1.101
    вторични dns В A 192.168.1.102
    клиент В 192.168.1.103
    101 В PTR masterdns.unixmen.local.
    102 В PTR вторични dns.unixmen.local.
    103 В PTR client.unixmen.local.

  10. Добавяне на съдържание към файл с обратна зона при конфигуриране на DNS на CentOS

  11. Когато записвате, не променяйте името на обекта, а просто натиснете клавиша Въведете.
  12. Отменете промяната на името на файла, докато запазвате обратната DNS зона на CentOS

Сега посочените файлове ще се използват за зоните напред и назад. Ако е необходимо, трябва да ги редактирате, за да промените някои параметри. Можете също да прочетете за това в официалната документация.

Стъпка 4: Стартиране на DNS сървъра

След като следвате всички предишни инструкции, вече можете да стартирате DNS сървъра, така че в бъдеще да е лесно да проверите неговата работоспособност и да продължите да конфигурирате важни параметри. Задачата се извършва по следния начин:

  1. В конзолата въведете sudo systemctl разрешено имеза добавяне на DNS сървър към стартиране за автоматично стартиране при стартиране на операционната система.
  2. Добавяне на DNS услуга на CentOS към стартиране на ОС

  3. Потвърдете това действие, като въведете паролата за суперпотребител.
  4. Потвърждение за действие за добавяне на DNS услуга на CentOS към стартиране

  5. Ще бъдете уведомени за създаването на символична връзка, което означава, че действието е било успешно.
  6. Успешно създайте символна връзка за автоматично зареждане на DNS услуга на CentOS

  7. Стартирайте помощната програма чрез systemctl стартиран с име... Можете да го спрете по същия начин, само като замените опцията старт На Спри се.
  8. Команда за активиране на DNS услуга на CentOS

  9. Когато се появи изскачащият прозорец за удостоверяване, въведете основната парола.
  10. Потвърждаване на командата за активиране на DNS услуга на CentOS чрез въвеждане на парола

Както можете да видите, управлението на посочената услуга се извършва по същия принцип като всички други стандартни помощни програми, така че не би трябвало да има проблеми с това дори за начинаещи потребители.

Стъпка 5: Променете настройките на защитната стена

За правилното функциониране на DNS сървъра трябва да отворите порт 53, който се осъществява чрез стандартната защитна стена FirewallD. IN "Терминал" трябва да въведете само три прости команди:

  1. Първият има формата firewall-cmd --permanent --add-port = 53 / tcp и е отговорен за отваряне на TCP порта. Поставете го в конзолата и кликнете върху Въведете.
  2. Отваряне на DNS порт на CentOS чрез стандартна защитна стена

  3. Трябва да бъдете уведомени "Успех", което показва успешното прилагане на правилото. След това поставете реда firewall-cmd --permanent --add-port = 53 / udp за да отворите UDP порт.
  4. Отваряне на втори DNS порт на CentOS чрез стандартна защитна стена

  5. Всички промени ще бъдат приложени само след рестартиране на защитната стена, което се извършва чрез командата firewall-cmd --reload.
  6. Рестартиране на защитната стена след извършване на промени за конфигуриране на DNS на CentOS

Не е необходимо да правите повече промени в защитната стена. Дръжте го включено по всяко време, за да избегнете проблеми при получаването на достъп.

Стъпка 6: Настройване на права за достъп

Сега ще трябва да зададете основни разрешения и права за достъп, за да защитите леко функционирането на DNS сървъра и да защитите обикновените потребители от възможността да променят параметрите. Нека го направим по стандартния начин и чрез SELinux.

  1. Всички следващи команди трябва да бъдат активирани от името на суперпотребителя. За да не въвеждате постоянно паролата, ви съветваме да активирате постоянен корен достъп за текущата терминална сесия. За да направите това, влезте в конзолата су.
  2. Активиране на права на суперпотребител за допълнителна конфигурация на DNS достъп на CentOS

  3. Въведете паролата за достъп.
  4. Въвеждане на парола за активиране на постоянен корен при конфигуриране на DNS в CentOS

  5. След това въведете следните команди една по една, за да създадете оптималната настройка за достъп:

    chgrp с име -R / var / named
    chown -v корен: име /etc/named.conf
    restorecon -rv / var / named
    restorecon /etc/named.conf

  6. Въвеждане на команди за конфигуриране на DNS достъп на CentOS

Това завършва общата конфигурация на главния DNS сървър. Остава само да редактирате няколко конфигурационни файла и да тествате за грешки. С всичко това предлагаме да го разберем в следващата стъпка.

Стъпка 7: Тестване за грешки и завършване на конфигурацията

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

  1. Въведете "Терминал" named-checkconf /etc/named.conf... Това ще провери глобалните параметри. Ако в резултат не последва изход, тогава всичко е конфигурирано правилно. В противен случай изучете съобщението и като започнете от него, решете проблема.
  2. Команда за проверка на основния DNS конфигурационен файл на CentOS

  3. След това трябва да проверите директната зона, като вмъкнете линията named-checkzone unixmen.local /var/named/forward.unixmen.
  4. Команда за проверка на основния DNS конфигурационен файл на CentOS

  5. Примерният изход изглежда така: зона unixmen.local / IN: заредена серийна 2011071001 ОК.
  6. Показване на резултатите от теста за напред DNS зона на CentOS

  7. Извършваме приблизително същото с обратната зона през named-checkzone unixmen.local /var/named/reverse.unixmen.
  8. Команда за проверка на обратната зона при тестване на DNS на CentOS

  9. Правилният изход трябва да бъде по следния начин: зона unixmen.local / IN: заредена серийна 2011071001 ОК.
  10. Показване на резултатите от теста на обратната DNS зона в CentOS

  11. Сега да преминем към настройките на основния мрежов интерфейс. Ще трябва да добавите към него данните на текущия DNS сървър. За да направите това, отворете файла / etc / sysconfig / network-scripts / ifcfg-enp0s3.
  12. Отидете на редактиране на WAN файла, когато конфигурирате DNS на CentOS

  13. Уверете се, че съдържанието е както е показано по-долу. Поставете DNS параметрите, ако е необходимо.

    ТИП = "Ethernet"
    BOOTPROTO = "няма"
    DEFROUTE = "да"
    IPV4_FAILURE_FATAL = "не"
    IPV6INIT = "да"
    IPV6_AUTOCONF = "да"
    IPV6_DEFROUTE = "да"
    IPV6_FAILURE_FATAL = "не"
    ИМЕ = "enp0s3"
    UUID = "5d0428b3-6af2-4f6b-9fe3-4250cd839efa"
    ONBOOT = "да"
    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 = "да"
    IPV6_PEERROUTES = "да"

  14. Редактиране на WAN файл при конфигуриране на DNS на CentOS

  15. След запазване на промените отидете във файла /etc/resolv.conf.
  16. Отидете на редактиране на интерфейси, когато конфигурирате DNS в CentOS

  17. Тук трябва да добавите само един ред: сървър за имена 192.168.1.101.
  18. Редактиране на WAN интерфейси при конфигуриране на DNS на CentOS

  19. Когато приключите, остава само да рестартирате мрежата или компютъра, за да актуализирате конфигурацията. Мрежовата услуга се рестартира чрез командата мрежа за рестартиране на systemctl.
  20. Рестартиране на WAN след успешно конфигуриране на DNS на CentOS

Стъпка 8: Проверка на инсталирания DNS сървър

В края на конфигурацията остава само да се провери работата на съществуващия DNS сървър, след като е добавен към глобалната мрежова услуга. Тази операция също се извършва с помощта на специални команди. Първият от тях има формата изкопайте masterdns.unixmen.local.

Команда за проверка на DNS здравето на CentOS

В резултат на това екранът трябва да показва изход, който изглежда подобно на съдържанието по-долу.

Изход на командата за проверка на състоянието на DNS на CentOS

; <> DiG 9.9.4-RedHat-9.9.4-14.el7 <> masterdns.unixmen.local
;; глобални опции: + cmd
;; Получих отговор:
;; - >> HEADER << - opcode: QUERY, статус: NOERROR, id: 25179
;; знамена: qr aa rd ra; ЗАПИТВАНЕ: 1, ОТГОВОР: 1, ВЛАСТ: 2, ДОПЪЛНИТЕЛНО: 2

;; ОПТ ПСЕВДОСЕКЦИЯ:
; EDNS: версия: 0, флагове:; udp: 4096
;; РАЗДЕЛ ВЪПРОС:
; masterdns.unixmen.local. В

;; ОТГОВОР СЕКЦИЯ:
masterdns.unixmen.local. 86400 В 192.168.1.101

;; РАЗДЕЛ НА ВЛАСТТА:
unixmen.local. 86400 В NS вторични dns.unixmen.local.
unixmen.local. 86400 В NS masterdns.unixmen.local.

;; ДОПЪЛНИТЕЛЕН РАЗДЕЛ:
seconddns.unixmen.local. 86400 В 192.168.1.102

;; Време за заявка: 0 мсек
;; СЪРВЪР: 192.168.1.101 # 53 (192.168.1.101)
;; КОГА: сряда, 20 август 16:20:46 IST 2014
;; MSG SIZE rcvd: 125

Допълнителна команда ще ви позволи да разберете за състоянието на работата на локалния DNS сървър. За да направите това, поставете в конзолата nslookup unixmen.local и кликнете върху Въведете.

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

Това трябва да показва три различни представяния на IP адреси и имена на домейни.

Сървър: 192.168.1.101
Адрес: 192.168.1.101 # 53

Име: unixmen.local
Адрес: 192.168.1.103
Име: unixmen.local
Адрес: 192.168.1.101
Име: unixmen.local
Адрес: 192.168.1.102

Изход на командата за проверка на коректността на DNS зоните в CentOS

Ако изходът съвпада с посочения от нас, тогава конфигурацията е завършена успешно и можете да продължите да работите с клиентската страна на DNS сървъра.

Конфигуриране на клиентската страна на DNS сървъра

Няма да разделяме тази процедура на отделни стъпки, тъй като тя се извършва чрез редактиране само на един конфигурационен файл. Необходимо е да се добави информация за всички клиенти, които ще бъдат свързани към сървъра, а пример за такава настройка изглежда така:

  1. Отворете файла /etc/resolv.conf чрез всеки удобен текстов редактор.
  2. Отидете на конфигурацията на DNS клиент на CentOS

  3. Добавете редове там търсене unixmen.local nameserver 192.168.1.101 и сървър за имена 192.168.1.102, заменяйки необходимите с адреси на клиенти.
  4. Конфигуриране на клиентския DNS в CentOS при настройването му

  5. Когато записвате, не променяйте името на файла, просто натиснете клавиша Въведете.
  6. Запазване на промени след конфигуриране на DNS клиент на CentOS

  7. След като излезете от текстовия редактор, не забравяйте да рестартирате глобалната мрежа чрез командата мрежа за рестартиране на systemctl.
  8. Рестартиране на мрежата след конфигуриране на DNS клиента на CentOS

Това бяха основните моменти за конфигуриране на клиентската страна на DNS сървъра, за които искахме да поговорим. Предлагаме да проучите всички останали нюанси, като прочетете официалната документация, ако е необходимо.

Тестване на DNS сървър

Последният етап от днешния ни материал е окончателното тестване на DNS сървъра. По-долу можете да видите няколко команди за справяне със задачата. Използвайте един от тях, като активирате чрез "Терминал"... Ако в изхода няма грешки, тогава целият процес е правилен.

изкопайте masterdns.unixmen.local
копаят вторични dns.unixmen.local
копаят client.unixmen.local
nslookup unixmen.local

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

Днес научихте всичко за настройването на главен DNS сървър на дистрибуция CentOS. Както можете да видите, цялата операция е фокусирана върху въвеждане на команди на терминала и редактиране на конфигурационни файлове, което може да причини определени трудности за начинаещи потребители. Всичко, което трябва да направите, е да следвате точно инструкциите и да прочетете резултатите от проверките, така че всичко да премине без грешки.