Инсталација DNS сервера на Линуксу (ЦентОС)

DNS (Domain Name System) је сервис без кога се тешко може замислити било која савремена мрежа. Принцип рада DNS-а је релативно једноставан, а његов задатак је да преведе DNS назив у IP адресу или обратно.

Када администратори или корисници желе да приступе неком рачунару (ресурсу) у мрежи, приступају најчешће навођењем имена. Унети упит (име ресурса) шаље се DNS серверу, који препознаје име и кориснику враћа тражену IP адресу. Уз помоћ добијене IP адресе приступате одређеном рачунару у мрежи. Уколико DNS сервер нема тражене податке, а ви не знате IP адресу ресурса који вам је на мрежи потребан, практично немате начин да до њега дођете.

Функционисање DNS сервиса обезбеђују протоколи који омогућавају клијенти/сервер комуникацију. Приступ DNS бази остварује се уз помоћ DNS клијента који се зове RESOLVER. Битно је напоменути да постоје две врсте упита ка DNS серверу: рекурзивни и интерактивни упит. Код рекурзивног упита могућа су два одговора, ДА или НЕ док код интерактивног упита одговори могу бити: да, не и „можда зна неко други“

Уколико клијент пошаље интерактивни упит а DNS сервер нема одговор, он ће проследити тај упит неком другом DNS серверу у мрежи или ван ње (на интернету) како би добио одговор и проследио га назад клијенту. У DNS конфигурационом фајлу (о коме ћемо говорити касније), постоји „root hints“ запис.

Root hints запис је ресурс који је неопходан сваком DNS серверу који претендује да разрешава DNS називе из спољашњег света (у односу на мрежу или namespace за који је одговоран). То је у ствари листа записа са IP адресама root level DNS сервера односно, сервера највишег нивоа у глобалном DNS свету, који су неопходни у процесу разрешавања спољњих DNS назива, а доступни су сваком кориснику интернета. Постоји 13 root DNS сервера одговорних за top level domain (TDL) који у сваком тренутку могу да обезбеде информацију за почетак претраге коју ваш примарни DNS сервер не може самостално да разреши.

У наставку ћемо говорити о инсталацији и конфигурисању DNS сервера на ЦентОС 6.2

Након инсталације ЦентОС-а, потребно је подесити IP адресе на мрежној картици. То можете урадити на више начина а један од њих је куцање команде setup у терминалу. Након активирања ове наредбе отвориће вам се мали графички интерфејс као на слици:

нетwоркцонф

Потребно је изабрати NETWORK CONFIGURATION а затим DEVICE CONFIGURATION.

Овим сте ушли у подешавања на вашој мрежној картици. Потребно је одчекирати USE DHCP чиме ћете отворити поља за унос статичких адреса. У зависности од конфигурације вашег рутера доделићете статичку адресу свом будућем DNS серверу, нетмаску, дифолтну руту (адреса рутера) и унос за примарни DNS сервер, који ће у нашем случају, такође бити адреса рутера. Ова адреса је привремена док не оспособимо свој DNS сервер.

Након подешених IP адреса прелазимо у DNS CONFIGURATION.

Овде је потребно подесити име рачунара, назив будућег домена, унос за примарни DNS сервер (привремено) као и DNS SEARCH PATH. У нашем примеру, HOSTNAME (име рачунара) је: dns , а domain.loc је назив домена. Примарни dns ће бити адреса рутера (рутер има подесен dns сервис), а dns search path је, наравно, наш домен: domain.loc.

Након што смо све подесили, потврдићемо на ОК, снимити промене и командом reboot рестартујемо рачунар како би прихватио промене.

Сада је потребно инсталирати BIND, пакет који служи за подешавање DNS сервера. То радимо помоћу команде yum install bind . ЦентОС ће повући пакет са интернета и инсталирати све што нам је потребно. Следећи корак је креирање и конфигурисање зона.

У нашем случају потребне су две зоне, forward и reverse, што је и минимална конфигурација за DNS сервер али довољна за рад. Кренућемо од конфигурационог фајла named.conf, он се налази у директоријуму etc. Користимо команду vim /etc/named.conf чиме отварамо поменути фајл. Тастер „i“ нас пребацује у INSERT моде, односно мод за куцање.

Конфигурациони фајл у нашем случају изгледа овако:

options {
/* ---- izmeniti narednu liniju -------- */
listen-on port 53 { any; };

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";
/* ---- izmeniti narednu liniju -------- */
allow-query     { any; };
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
/* Path to IS CDLV key */
bindkeys-file "/etc/named.iscdlv.key";
};

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

/* ---- IZMENITI OVAJ BLOK ---- */
zone "domain.loc" IN {
        type master;
        file "domain.zone";
};


/* ---- IZMENITI OVAJ BLOK ---- */
zone "1.168.192.in-addr.arpa" IN {
        type master;
        file "reverse.zone";
};

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

#include "/etc/named.rfc1912.zones";

Горе је назначено где шта треба да се измени, однодно на линији LISTEN-ON PORT 53, потребно је у загради избрисати адресу која стоји и уместо ње написати ANY како би сервер слушао на свим расположивим IP адресама. Такође ANY додајемо у линији ALLOW-QUERY, како би дозволио упите са свих локација.

Сада је потребо дефинисати две неопходне зоне, forward и reverse. Прва линија је zone „domain.loc“ IN { .

Под наводницама уносимо назив нашег домена. Тип зоне је MASTER, (друга линија), а назив фајла за ову зону је domain.zone . Овај фајл још увек не постоји и када завршимо са конфигурационим фајлом, потребно је креирати тај фајл.

Његово име није битно, битно је да се назив којег смо унели у конфигурациои фајл и име фајла којег ћемо касније направити, поклапају!

У овом случају, име forward зоне (разрешује име хоста у IP адресу) је domain.zone а обрнуте зоне (разрешује IP адресу у име хоста) је reverse.zone . Последњу линију у нашем конфигурационом фајлу коментаришемо уз помоћ знака # на почетку линије.

Фајлови зона, које морамо направити, треба да се налазе у директоријуму /var/named/ па креирање стартујемо командом vim /var/named/domain.zone .

Отвориће се бланко фајл који после нашег едитовања треба да изгледа овако:

$TTL 1D
@       IN      SOA     dns.domain.loc. admin.dns.domain.loc. (
9
1D
1H
1W
3H )
IN NS   dns.domain.loc.
dns                IN A     192.168.1.20
domain.loc. IN A     192.168.1.20

Овај фајл садржи три различита dns записа: СОА, NS и А запис. СОА (start of authority) запис указује ко је основни сервер, у овом случају то је наш рачунар dns.domain.loc . NS (name сервер) запис указује на ауторитативни (надлежни) DNS сервер, у нашем случају то је такође dns.domain.loc рачунар.

На крају, потребно је да креирамо два А записа, један је за име рачунара а други за име домена. Овај запис помаже да DNS преводи име у IP адресу и обрнуто! Неопходно је снимити фајлове наредбом :wq! .

Остало је још да креирамо фајл за reverse зону која је неопходна, попут forward зоне. Фајл креирамо командом vim /var/named/reverse.zone а он треба да изгледа овако:

$TTL 1D
@       IN      SOA     dns.domain.loc. admin.dns.domain.loc. (
1
1D
1H
1W
3H )
IN NS    dns.domain.loc.
20       IN PTR   dns.domain.loc.

И овај фајл садржи три записа: СОА који је исти као и у претходном фајлу, name сервер (NS) који је такође исти и један нови запис, PTR (pointер). Овај запис служи за превођење IP адресе у име.

У нашем случају рачунар 20 (192.168.1.20) зове се dns.domain.loc .

Последње подешавање је на мрежној картици. Командом setup, као на почетку, улазимо у подешавања за мрежну картицу и DNS. Све што треба да урадимо је да у оквиру Primary DNS подешавања, обришемо адресу рутера и поставимо адресу нашег DNS сервера: 192.168.1.20. Исто је потребно променити и у оквиру DNS CONFIGURATION подешавања, а затим командом reboot ресетовати рачунар ради прихватања промена.

Сада је примарни DNS сервер наша машина а са пар команди можемо проверити да ли све функционише како треба.

Прво што можемо да урадимо јесте да пингујемо google.com или facebook.com – или било коју другу веб страницу (команда ping, нпр. ping google.com) Наш DNS у процесу пинговања мора да разреши име google.com у IP адресу, а потврдни одговор би изгледао отприлике овако:

пинг

Још једна команда која ће вам потврдити да ваш DNS разрешава имена како треба, јесте nslookup.Форма је иста као и код команде ping… nslookup facebook.com (пример). Овом наредбом шаљете DNS упит за назив: facebook.com и требало би да у одговору добијете IP адресу одговарајућег сервера, уз потврду (представљање) DNS сервера који је дао одговор (то мора да буде унос за ваш DNS сервер).

Био је то кратак приказ инсталације и основне конфигурације DNS сервера на ЦентОС-у.

Текст је преузет са угашеног блога ИТ модул и оригинални аутор овог текста је Радош Николић. Компјутераш ИТ блог објављује текстове са тог блога како ризница знања са те локације не би отишла у заборав.