Настройка DNS в CentOS
Содержание
Шаг 1: Установка нужных пакетов
До рассмотрения последующих инструкций желаем отметить, что на нашем веб-сайте уже имеется общее управление по конфигурации стандартного DNS в Linux. Мы советуем использовать конкретно тот материал, если следует выставить опции для обыденного посещения интернет-сайтов. Дальше же мы покажем, как инсталлируется основной локальный DNS-сервер с клиентской частью.
В качестве средства сотворения локального DNS-сервера советуем использовать bind9. Настройка следующих конфигурационных файлов тоже будет базироваться на общих принципах поведения этого компонента. По дефлоту bind9 отсутствует в операционной системе, потому начнем с ее прибавления.
- Запустите консоль комфортным вам методом. Она находится в разделе «Приложения» — «Избранное» либо же раскрывается через стандартную комбинацию кнопок Ctrl + Alt + T.
sudo yum install bind bind-utils -y
и надавить на Enter для ее активации.
Данное действие производится от имени суперпользователя (sudo), потому придется подтвердить учетную запись, введя пароль в показавшуюся строчку.
Ждите окончания скачки и установки пакетов.
По окончании данного процесса вы будете уведомлены о том, что все пакеты удачно добавлены в систему. После чего перебегайте к последующему шагу.
Шаг 2: Глобальная настройка DNS-сервера
На данный момент желаем показать, каким конкретно образом редактируется главный конфигурационный файл, также какие строчки туда добавляются. Не будем останавливаться на каждой строке раздельно, так как это займет сильно много времени, к тому же все нужные сведения имеются в официальной документации.
- Для редактирования конфигурационных объектов можно использовать хоть какой текстовый редактор. Предлагаем инсталлировать удачный nano, введя в консоли
.sudo yum install nano
sudo nano /etc/named.conf
. По мере надобности поменяйте хотимый текстовый редактор, тогда строчка получится приблизительно таковой: sudo vi /etc/named.conf
.
Ниже мы приведем содержимое, которое необходимо воткнуть в открывшийся файл либо сверить его с уже имеющимся, добавив недостающие строчки.
После чего нажмите на Ctrl + O, чтоб записать конфигурации.
Поменять имя файла не надо, довольно легко надавить на Enter.
Покиньте текстовый редактор через Ctrl + X.
Как уже было сказано ранее, в конфигурационный файл будет нужно воткнуть определенные строчки, задающие общие правила поведения 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 AUTHORITATIVE 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 выдает доменное имя. Корректная работа каждой зоны должна быть обеспечена особыми правилами, созданием которых мы и предлагаем заняться дальше.
- Для прямой зоны сделаем отдельный файл через тот же текстовый редактор. Тогда строчка будет смотреться так:
.sudo nano /var/named/forward.unixmen
$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
Сохраните конфигурации и закройте текстовый редактор.
Сейчас перейдем к оборотной зоне. Для нее требуется файл /var/named/reverse.unixmen
.
Это тоже будет новый пустой файл. Воткните туда:
$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.
При сохранении не изменяйте заглавие объекта, а просто нажмите на кнопку Enter.
Сейчас обозначенные файлы будут применены для прямой и оборотной зоны. По мере надобности следует редактировать конкретно их, чтоб поменять какие-то характеристики. Об этом вы тоже сможете прочитать в официальной документации.
Шаг 4: Пуск DNS-сервера
После выполнения всех прошлых указаний можно уже запустить DNS-сервер, чтоб в дальнейшем просто проверить его работоспособность и продолжить настройку принципиальных характеристик. Осуществляется намеченная цель последующим образом:
- В консоли введите
, чтоб добавить DNS-сервер в автозагрузку для автоматического пуска при старте операционной системы.sudo systemctl enable named
systemctl start named
. Приостановить ее можно так же, только заменив опцию start на stop
.
При отображении всплывающего окна с доказательством подлинности введите пароль от root.
Как видно, управление обозначенной службой осуществляется по такому же принципу, как и всеми остальными стандартными утилитами, потому с этим не должно появиться никаких заморочек даже у начинающих юзеров.
Шаг 5: Изменение характеристик межсетевого экрана
Для корректного функционирования DNS-сервера будет нужно открыть порт 53, что осуществляется через стандартный межсетевой экран FirewallD. В «Терминале» будет нужно ввести всего три обычных команды:
- 1-ая имеет вид
и отвечает за открытие порта TCP-протокола. Воткните ее в консоль и нажмите на Enter.firewall-cmd --permanent --add-port=53/tcp
firewall-cmd --permanent --add-port=53/udp
для открытия порта протокола UDP.
Все конфигурации будут использованы только после перезагрузки межсетевого экрана, что делается через команду firewall-cmd --reload
.
Больше никаких конфигураций с брандмауэром создавать не придется. Держите его повсевременно во включенном состоянии, чтоб не появилось заморочек с получением доступа.
Шаг 6: Настройка прав доступа
На данный момент будет нужно выставить главные разрешения и права доступа, чтоб незначительно обезопасить функционирование DNS-сервера и оградить обыденных юзеров от способности изменять характеристики. Создадим это стандартным методом и через SELinux.
- Все следующие команды должны быть активированными от имени суперпользователя. Чтоб повсевременно не вводить пароль, рекомендуем включить перманентный рут-доступ для текущей терминальной сессии. Для этого в консоли введите
.su
chgrp named -R /var/named
chown -v root:named /etc/named.conf
restorecon -rv /var/named
restorecon /etc/named.conf
На этом общая конфигурация головного DNS-сервера закончена. Осталось только отредактировать несколько конфигурационных файлов и произвести тестирование на ошибки. Со всем этим мы и предлагаем разобраться в последующем шаге.
Шаг 7: Тестирование на ошибки и окончание опции
Советуем начать с проверок на ошибки, чтоб в дальнейшем не пришлось поменять и оставшиеся конфигурационные файлы. Вот поэтому мы и разглядим все это в границах 1-го шага, также приведем эталоны правильного вывода команд для тестирования.
- Введите в «Терминале»
. Это позволит проверить глобальные характеристики. Если в итоге никакого вывода не последовало, означает, все настроено корректно. В неприятном случае изучите сообщение и, отталкиваясь от него, решите делему.named-checkconf /etc/named.conf
named-checkzone unixmen.local /var/named/forward.unixmen
.
Эталон вывода смотрится последующим образом: zone unixmen.local/IN: loaded serial 2011071001 OK
.
Приблизительно то же самое осуществляем и с оборотной зоной через named-checkzone unixmen.local /var/named/reverse.unixmen
.
Верный вывод должен быть таким: zone unixmen.local/IN: loaded serial 2011071001 OK
.
Сейчас перейдем к настройкам основного сетевого интерфейса. В него будет нужно добавить данные текущего DNS-сервера. Для этого откройте файл /etc/sysconfig/network-scripts/ifcfg-enp0s3
.
Проверьте, чтоб содержимое было такое, как показано ниже. По мере надобности воткните характеристики 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"
После сохранения конфигураций перебегайте к файлу /etc/resolv.conf
.
Тут необходимо добавить всего одну строчку: nameserver 192.168.1.101
.
По окончании остается только перезагрузить сеть либо компьютер, чтоб обновить конфигурацию. Служба сети перезапускается через команду systemctl restart network
.
Шаг 8: Проверка установленного DNS-сервера
В окончании конфигурации остается только проверить работу имеющегося DNS-сервера после его прибавления в глобальную службу сети. Эта операция так же производится с помощью особых команд. 1-ая из их имеет вид
dig masterdns.unixmen.local
.
В итоге на дисплее должен показаться вывод, имеющий похожее представление с обозначенным ниже содержимым.
; 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 PSEUDOSECTION:
; 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.101#53(192.168.1.101)
;; WHEN: Wed Aug 20 16:20:46 IST 2014
;; MSG SIZE rcvd: 125
Дополнительная команда позволит выяснить о состоянии локальной работы DNS-сервера. Для этого в консоль воткните
nslookup unixmen.local
и нажмите на Enter.
В итоге должно отобразиться три различных представления адресов IP и доменных имен.
Server: 192.168.1.101
Address: 192.168.1.101#53
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-сервера.
Настройка клиентской части DNS-сервера
Мы не будем делить эту функцию на отдельные шаги, так как она производится методом редактирования всего 1-го конфигурационного файла. В него нужно добавить информацию обо всех клиентах, которые будут подключены к серверу, а пример таковой опции смотрится так:
- Откройте файл
через хоть какой удачный текстовый редактор./etc/resolv.conf
search unixmen.local nameserver 192.168.1.101
и nameserver 192.168.1.102
, заменив нужное на клиентские адреса.
При сохранении не изменяйте название файла, а просто нажмите на кнопку Enter.
После выхода из редактора текста в неотклонимом порядке перезагрузите глобальную сеть через команду systemctl restart network
.
Это были главные моменты опции клиентской составляющей DNS-сервера, о которой мы желали поведать. Все другие аспекты предлагаем изучить, прочитав официальную документацию, если это требуется.
Тестирование DNS-сервера
Завершающий шаг нашего нынешнего материала — оканчивающее тестирование DNS-сервера. Ниже вы видите несколько команд, позволяющий совладать с поставленной задачей. Используйте одну из их, активировав через «Терминал». Если в выводе не наблюдается никаких ошибок, как следует, весь процесс выполнен правильно.
dig masterdns.unixmen.local
dig secondarydns.unixmen.local
dig client.unixmen.local
nslookup unixmen.local
Сейчас вы узнали все о настройке головного DNS-сервера в дистрибутиве CentOS. Видите ли, вся операция сосредоточена на вводе терминальных команд и редактировании конфигурационных файлов, что может вызвать определенные трудности у начинающих юзеров. Но вам требуется всего только точно следовать обозначенным инструкциям и читать результаты проверок, чтоб все прошло без каких-то ошибок.
Источник: lumpics.ru