Крок 1: Усталёўка неабходных пакетаў
Перад пачаткам разгляду наступных інструкцый хочам адзначыць, што на нашым сайце ўжо маецца агульнае кіраўніцтва па канфігурацыі стандартнага DNS ў Linux. Мы рэкамендуем задзейнічаць менавіта той матэрыял, калі варта выставіць налады для звычайнага наведвання інтэрнэт-сайтаў. Далей жа мы пакажам, як ўсталюецца асноўны лакальны DNS-сервер з кліенцкай часткай.Па заканчэнні дадзенага працэсу вы будзеце апавешчаныя аб тым, што ўсе пакеты паспяхова дададзены ў сістэму. Пасля гэтага пераходзіце да наступнага кроку.
Крок 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-адрас па імі хаста, а зваротная праз 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-сервер, каб у будучыні лёгка праверыць яго працаздольнасць і працягнуць наладу важных параметраў. Ажыццяўляецца пастаўленая задача наступным чынам:
- У кансолі увядзіце sudo systemctl enable named, каб дадаць DNS-сервер у аўтазагрузку для аўтаматычнага запуску пры старце аперацыйнай сістэмы.
- Пацвердзіце гэта дзеянне, увёўшы пароль суперпользователя.
- Вы будзеце апавешчаныя аб стварэнні сімвалічнай спасылкі, а значыць, дзеянне выканана паспяхова.
- Запусціце ўтыліту праз systemctl start named. Спыніць яе можна так жа, толькі замяніўшы опцыю start на stop.
- Пры адлюстраванні ўсплывае акна з пацвярджэннем сапраўднасці увядзіце пароль ад root.
Як бачна, кіраванне названай службай ажыццяўляецца па такім жа прынцыпе, як і ўсімі астатнімі стандартнымі ўтылітамі, таму з гэтым не павінна ўзнікнуць ніякіх праблем нават у пачаткоўцаў карыстальнікаў.
Крок 5: Змена параметраў міжсеткавага экрана
Для карэктнага функцыянавання DNS-сервера спатрэбіцца адкрыць порт 53, што ажыццяўляецца праз стандартны міжсеткавы экран FirewallD. У «тэрмінале" спатрэбіцца ўвесці ўсяго тры простых каманды:
- Першая мае выгляд firewall-cmd --permanent --add-port = 53 / tcp і адказвае за адкрыццё порта TCP-пратаколу. Устаўце яе ў кансоль і націсніце на Enter.
- Вы павінны атрымаць апавяшчэнне «Success», што сведчыць аб паспяховым прымяненні правілы. Пасля гэтага ўстаўце радок 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: Тэставанне на памылкі і завяршэнне налады
Рэкамендуем пачаць з праверак на памылкі, каб у будучыні не прыйшлося змяняць і тыя, што засталіся канфігурацыйныя файлы. Менавіта таму мы і разгледзім усё гэта ў межах аднаго кроку, а таксама прывядзем ўзоры правільнага вываду каманд для тэставання.
- Увядзіце ў «тэрмінале» 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-сервера пасля яго дадання ў глабальную службу сеткі. Гэтая аперацыя гэтак жа выконваецца пры дапамозе адмысловых каманд. Першая з іх мае выгляд dig masterdns.unixmen.local.
У выніку на экране павінен з'явіцца выснову, які мае падобнае ўяўленне з паказаным ніжэй змесцівам.
; DiG 9.9.4-RedHat-9.9.4-14.el7 masterdns.unixmen.local
;; global options: + cmd
;; Got answer:
;; - >> HEADER
;; 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-сервера
Мы не будзем падзяляць гэтую працэдуру на асобныя крокі, паколькі яна выконваецца шляхам рэдагавання ўсяго аднаго канфігурацыйнага файла. У яго неабходна дадаць інфармацыю аб усіх кліентах, якія будуць падлучаныя да сервера, а прыклад такой налады выглядае так:
- Адкрыйце файл /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. Як бачыце, уся аперацыя сканцэнтравана на ўводзе тэрмінальных каманд і рэдагаванні канфігурацыйных файлаў, што можа выклікаць пэўныя цяжкасці ў пачаткоўцаў карыстальнікаў. Аднак вам патрабуецца ўсяго толькі дакладна прытрымлівацца паказаным інструкцыям і чытаць вынікі праверак, каб усё прайшло без якіх-небудзь памылак.