Налада DNS ў CentOS

Anonim

Налада DNS ў CentOS

Крок 1: Усталёўка неабходных пакетаў

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

Па заканчэнні дадзенага працэсу вы будзеце апавешчаныя аб тым, што ўсе пакеты паспяхова дададзены ў сістэму. Пасля гэтага пераходзіце да наступнага кроку.

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

Цяпер хочам прадэманстраваць, якім менавіта чынам рэдагуецца галоўны канфігурацыйны файл, а таксама якія радкі туды дадаюцца. Не будзем спыняцца на кожнай радку асобна, паколькі гэта зойме вельмі шмат часу, да таго ж усе патрэбныя звесткі маюцца ў афіцыйнай дакументацыі.

  1. Для рэдагавання канфігурацыйных аб'ектаў можна выкарыстоўваць любы тэкставы рэдактар. Прапануем ўсталяваць зручны nano, увёўшы ў кансолі sudo yum install 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. Мяняць назву файла ня трэба, дастаткова проста націснуць на 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 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 выдае даменнае імя. Карэктная праца кожнай зоны павінна быць забяспечана адмысловымі правіламі, стварэннем якіх мы і прапануем заняцца далей.

  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. У «тэрмінале" спатрэбіцца ўвесці ўсяго тры простых каманды:

  1. Першая мае выгляд firewall-cmd --permanent --add-port = 53 / tcp і адказвае за адкрыццё порта TCP-пратаколу. Устаўце яе ў кансоль і націсніце на Enter.
  2. Адкрыццё порта DNS ў CentOS праз стандартны міжсеткавы экран

  3. Вы павінны атрымаць апавяшчэнне «Success», што сведчыць аб паспяховым прымяненні правілы. Пасля гэтага ўстаўце радок 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. Увядзіце ў «тэрмінале» named-checkconf /etc/named.conf. Гэта дазволіць праверыць глабальныя параметры. Калі ў выніку ніякага вываду не было, значыць, усё наладжана карэктна. У адваротным выпадку вывучыце паведамленне і, адштурхваючыся ад яго, вырашыце праблему.
  2. Далей патрабуецца праверыць прамую зону, уставіўшы радок named-checkzone unixmen.local /var/named/forward.unixmen.
  3. Ўзор вываду выглядае наступным чынам: zone unixmen.local / IN: loaded serial 2011071001 OK.
  4. Выснова вынікаў тэставання прамой зоны DNS ў CentOS

  5. Прыкладна тое ж самае ажыццяўляем і з адваротнага зонай праз named-checkzone unixmen.local /var/named/reverse.unixmen.
  6. Каманда для праверкі зваротнай зоны пры тэставанні DNS ў CentOS

  7. Правільную выснову павінен быць такім: zone unixmen.local / IN: loaded serial 2011071001 OK.
  8. Выснова вынікаў тэставання зваротнай зоны DNS ў CentOS

  9. Цяпер пяройдзем да налад асноўнага сеткавага інтэрфейсу. У яго спатрэбіцца дадаць дадзеныя бягучага DNS-сервера. Для гэтага адкрыйце файл / etc / sysconfig / network-scripts / ifcfg-enp0s3.
  10. Пераход да рэдагавання файла глабальнай сеткі пры наладзе DNS ў CentOS

  11. Праверце, каб змесціва было такое, як паказана ніжэй. Пры неабходнасці ўстаўце параметры 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"

  12. Рэдагаванне файла глабальнай сеткі пры наладзе DNS ў CentOS

  13. Пасля захавання змяненняў пераходзіце да файла /etc/resolv.conf.
  14. Пераход да рэдагавання інтэрфейсаў пры наладзе DNS ў CentOS

  15. Тут трэба дадаць усяго адзін радок: nameserver 192.168.1.101.
  16. Рэдагаванне інтэрфейсаў глабальнай сеткі пры наладзе DNS ў CentOS

  17. Па завяршэнні застаецца толькі перазагрузіць сетку або кампутар, каб абнавіць канфігурацыю. Служба сеткі перазапускаецца праз каманду systemctl restart network.
  18. Перазапуск глабальнай сеткі пасля паспяховай налады 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

;; 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.

Каманда для праверкі карэктнасці працы зон DNS ў CentOS

У выніку павінна адлюстравацца тры розных прадстаўлення адрасоў 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 ў 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-сервера

Апошні этап нашага сённяшняга матэрыялу - завяршальнае тэставанне DNS-сервера. Ніжэй вы бачыце некалькі каманд, які дазваляе справіцца з пастаўленай задачай. Выкарыстоўвайце адну з іх, актываваўшы праз «Тэрмінал». Калі ў вывадзе не назіраецца ніякіх памылак, такім чынам, увесь працэс выкананы дакладна.

dig masterdns.unixmen.local

dig secondarydns.unixmen.local

dig client.unixmen.local

nslookup unixmen.local

Глабальная праверка працаздольнасці DNS ў CentOS

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

Чытаць далей