Yvision.kz
kk
Разное
Разное
399 773 постов42 подписчика
Всяко-разно
0
11:00, 24 апреля 2013

Настройка DNS сервера на CentOS 6.4 x32

 

Вот и мне понадобился свой простенький первичный DNS сервер для почты и сайта. За платформу взял CentOS и в добавок установил пакет "named" отвечающий за DNS. Хотя у меня был нормально работающий MS DNS, захотелось пощупать аналогичное решение из мира Linux. В общем диск с платным Windows был стерт, и на место нее установилась Linux (CentOS). Вместе с этой операционкой идет пакет "named"  который предоставляет функции DNS, которые нам нужны и за которые в прошлом отвечал не бесплатный - MS DNS.

В этой короткой записке будет описана настройка DNS сервера.

Краткое содержание записки:

1. Настройка авторитарного первичного мастер DNS сервера

1.1. Удаляем NetworkManager

1.2. Настройка сетевых карт

1.3. Установка пакета Bind

1.4. Настройка главного файла DNS службы /etc/named.conf

1.5. Создаем файл прямого просмотра зоны /var/named/company.kz.fwd

1.6. Создаем файл обратного просмотра зоны /var/named/company.kz.rev

 

2. Настройка  авторитарного вторичного слейв DNS сервера

2.1. Настройка главного файла DNS службы /etc/named.conf

2.2. Создаем файл прямого просмотра зоны /var/named/company.kz.fwd

2.3. Создаем файл обратного просмотра зоны /var/named/company.kz.rev

 

3. Настройка кэширующего сервера

4. Проверка работы DNS сервера через команду NSLOOKUP

 

Начнем нашу настройку с мастер сервера

1. Настройка авторитарного DNS сервера

Исходные данные (что имеем):

Имеется доменное имя второго уровня (доменная зона):

company.kz

IP-адрес первичного мастер DNS сервера:

217.15.54.50 / 255.255.255.248

IP-адрес вторичного слейв DNS сервера:

217.15.54.51 / 255.255.255.248

DNS сервера провайдера:

217.15.88.2

217.15.88.4

IP-адрес внутренней сетевой карты:

10.168.50.2 /255.255.255.0

Адрес локальной сети:

10.168.50.0/255.255.255.0

 

1.1. Удаляем NetworkManager

Удалим для начала Network Manager, чтобы он не мешал нам настраивать сетевые карты:

# service NetworkManager stop

# yum remove dnsmasq -y

# service network restart

 

1.2. Настройка сетевых карт

Настройка сетевого адаптера смотрящего в Интернет:

DEVICE=eth0

HWADDR=00:03:47:7A:12:38

TYPE=Ethernet

UUID=030c00ea-ff11-4e12-ad48-2372acffe0e6

ONBOOT=yes

NM_CONTROLLED=no

BOOTPROTO=static

GATEWAY=217.15.54.49

IPADDR=217.15.54.50

NETMASK=255.255.255.248

DNS1=127.0.0.1

DNS2=217.15.88.2

DNS3=217.15.88.4

Настройка сетевого адаптера смотрящего в локальную сеть:

DEVICE=eth1

HWADDR=00:19:D1:2B:3B:12

TYPE=Ethernet

UUID=4fb9ff5e-3d5e-4be2-a1e1-2c404f4bebfb

ONBOOT=yes

NM_CONTROLLED=no

BOOTPROTO=static

IPADDR=10.168.50.2

NETMASK=255.255.255.0

 

1.3. Установка пакета Bind

Установка пакета Bind, именно этот пакет позволит добавить функции DNS сервера.

Установим пакет Bind:

# yum install bind -y

 

1.4. Настройка главного файла DNS службы /etc/named.conf

А теперь начнем настраивать наш DNS сервер.

Для настройки мастер DNS сервера, нам понадобится изменить всего три файла:

1. /etc/named.conf                            - главный файл службы отвечающей за работу DNS сервера, службу зовут "named"

2. /var/named/company.kz.fwd       - прямая зона просмотра, чтобы при вводе в браузере например "www.company.kz" пользователи попадали на наш сайт

3. /var/named/company.kz.rev       - обратная зона просмотра, это зона нужна например для почтового сервера, многие почтовики проверяют обратное преобразование.

 

Внесем изменения в файл /etc/named.conf

# vi /etc/named.conf

 

//

// 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; 10.168.50.2; 217.15.54.50;};

listen-on-v6 port 53 { ::1; };

listen-on-v6 port 53 { none; };

forwarders {217.15.88.2;217.15.88.4;};

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       { any;};

allow-query-cache { 127.0.0.1; 10.168.50.0/24;};

allow-recursion   { 127.0.0.1; 10.168.50.0/24;};

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

};

 

logging {

category lame-servers {null;};

channel default_debug {

file "data/named.run";

severity dynamic;

 

};

};

 

zone "." IN {

type hint;

file "named.ca";

};

 

# Наша прямая зона просмотра "company.kz"

zone "company.kz" {

type master;

file "company.kz.fwd";

allow-update {none;};

allow-transfer {217.15.54.51; };

};

 

# Наша обратная зона просмотра "company.kz"

zone "54.15.217.in-addr.arpa" {

type master;

file "company.kz.rev";

allow-update {none;};

allow-transfer {217.15.54.51; };

};

 

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

include "/etc/named.root.key";

include "/etc/rndc.key";

 

 

Создадим свой файл /var/named/company.kz.fwd

# vi /var/named/company.kz.fwd

 

$ORIGIN company.kz.

 

$TTL 3D

 

@       SOA     ns1.company.kz.     admin.company.kz. (13 4h 1h 1w 1h)

@           IN           NS                         ns1.company.kz.

@           IN           NS                         ns2.company.kz.

@           IN           MX         10          mx.company.kz.

@           IN           TXT        "v=spf1 mx ip4:217.15.54.51 -all"

company.kz.                             IN           A            217.15.54.51

ns1.company.kz.                     IN           A            217.15.54.50

ns2.company.kz.                     IN           A            217.15.54.51

 

mx.company.kz.                      IN           A            217.15.54.51

mail.company.kz.                    IN           A            217.15.54.51

www                    IN      A       217.15.54.51

mail                   IN      A       217.15.54.51

 

 

Создадим свой файл /var/named/company.kz.rev

#vi /var/named/company.kz.rev

 

$ORIGIN 54.15.217.in-addr.arpa.

 

$TTL 3D

 

@       SOA     ns1.company.kz.     admin.company.kz. (13 4h 1h 1w 1h)

 

@       IN      NS      ns1.company.kz.

@ IN NS ns2.company.kz.

 

50 IN      PTR     ns1.company.kz.

51 IN PTR ns2.company.kz.

51 IN PTR mx.company.kz.

51 IN PTR mail.company.kz.

 

# chmod g+w /var/named

2. Настройка  авторитарного вторичного слейв DNS сервера

2.1. Настройка главного файла DNS службы /etc/named.conf

 

//

// 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; 217.15.54.51; };

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     { any;};

allow-query-cache {any;};

allow-recursion {127.0.0.1; 10.168.50.0/24;10.168.50.3;};

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

};

logging {

channel default_debug {

file "data/named.run";

severity dynamic;

};

};

zone "." IN {

type hint;

file "named.ca";

};

zone "company.kz" {

type slave;

allow-transfer {none;};

masters {217.15.54.50;};

file "company.kz.fwd";

//      allow-update {none;};

};

zone "54.15.217.in-addr.arpa" {

type slave;

masters {217.15.54.50;};

file "company.kz.rev";

//   allow-update {none;};

allow-transfer {none;};

};

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

include "/etc/named.root.key";

2.2. Создаем файл прямого просмотра зоны /var/named/company.kz.fwd

$ORIGIN company.kz.

$TTL 3D

@       SOA     ns1.company.kz.     admin.company.kz. (13 4h 1h 1w 1h)

@       IN      NS              ns1.company.kz.

@       IN      NS              ns2.company.kz.

@       IN      MX      10      mx.company.kz.

@       IN      TXT     "v=spf1 mx ip4:217.15.54.51 -all"

company.kz.                IN       A       217.15.54.51

 

ns1.company.kz.           IN      A       217.15.54.50

ns2.company.kz.           IN      A       217.15.54.51

mx.company.kz.            IN      A       217.15.54.51

 

mail.company.kz.          IN      A       217.15.54.51

2.3. Создаем файл обратного просмотра зоны /var/named/company.kz.rev

$ORIGIN 54.15.217.in-addr.arpa.

$TTL 3D

@       SOA     ns1.company.kz.     admin.company.kz. (13 4h 1h 1w 1h)

@       IN      NS      ns1.company.kz.

@       IN      NS      ns2.company.kz.

50      IN      PTR     ns1.company.kz.

51      IN      PTR     ns2.company.kz.

51      IN      PTR     mx.company.kz.

 

51      IN      PTR     mail.company.kz.

# chmod g+w /var/named

 

3. Настройка кэширующего DNS сервера

Кэширующий DNS сервер нужен на шлюзах доступа в Интернет, чтобы кэшировать DNS запросы, тем самым убыстряя доступ на сайты.

Правим конфиг файл /etc/named.conf

 

//

// 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 { localhost; 127.0.0.1; 10.168.50.2; }; // ip-адрес на котором слушается 53 порт

listen-on-v6 port 53 { none; }

forwarders {217.15.178.2;217.15.178.4;};                 // ip-адреса DNS серверов провайдера

forward first;

auth-nxdomain no;

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     { 127.0.0.1; 10.168.50.0/24;}; //локальной сети разрешено использовать наш DNS

allow-recursion {127.0.0.1; 10.168.50.0/24;};

allow-query-cache {127.0.0.1; 10.168.50.0/24;};

dnssec-enable no;

dnssec-validation no;

dnssec-lookaside auto;

/* Path to ISC DLV key */

bindkeys-file "/etc/named.iscdlv.key";

managed-keys-directory "/var/named/dynamic";

};

logging {

category lame-servers { null; };

channel default_debug {

file "data/named.run";

severity dynamic;

};

};

zone "." IN {

type hint;

file "named.ca";

};

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

include "/etc/named.root.key";

 

Отключаем поддержку IPv6, чтобы логи не засирались не нужными сообщениями.

Правим файл /etc/sysconfig/named

Добавляем в этот файл строчку:

OPTIONS="-4"

# service named restart

# vi /etc/resolv.conf

nameserver 127.0.0.1

4. Проверка работы DNS сервера через команду NSLOOKUP

Здесь я напишу кратко про проверку DNS сервера на наличие нужных записей через команду nslookup.

В Windows запускаем cmd.exe через меню "Выполнить" -> "cmd.exe" -> ENTER

Выводим все записи из нужного DNS сервера, в моем примере это будет ns1.company.kz, его ip адрес 217.15.54.1

Пример №1. Вывод всех записей нашего DNS сервера
c:\> nslookup

> server ns1.company.kz

> set q=all

> company.kz

Server:  ns1.company.kz

Address:  217.15.54.50

 

company.kz

primary name server = ns1.company.kz

responsible mail addr = admin.company.kz

serial  = 13

refresh = 14400 (4 hours)

retry   = 3600 (1 hour)

expire  = 604800 (7 days)

default TTL = 3600 (1 hour)

company.kz        nameserver = ns1.company.kz

company.kz        nameserver = ns2.company.kz

company.kz        MX preference = 10, mail exchanger = mx.company.kz

company.kz        text =

 

"v=spf1 mx ip4:217.15.54.51 -all"

company.kz        internet address = 217.15.54.51

ns1.company.kz    internet address = 217.15.54.50

ns2.company.kz    internet address = 217.15.54.51

mx.company.kz     internet address = 217.15.54.51

> quit

Пример №2. Вывод записей которые нужны для почтового сервера
c:\> nslookup

> server ns1.company.kz

> set q=mx

company.kz

Server:  ns1.company.kz

Address:  217.15.54.50

 

company.kz MX preference = 10, mail exchanger = mx.company.kz

company.kz nameserver = ns1.company.kz

company.kz nameserver = ns2.company.kz

mx.company.kz internet address = 217.15.54.51

ns1.company.kz internet address = 217.15.54.50

ns2.company.kz internet address = 217.15.54.51

Пример №3. Проверяем прямое и обратное преобразование
c:\> nslookup

> ns1.company.kz

ns1.company.kz

Address:  217.15.54.50

> 217.15.54.50

ns1.company.kz

0