BIND. Centos 7. BIND 9 install

Материал из Wiki
Версия от 15:55, 26 февраля 2023; Cless (обсуждение | вклад) (Cless переименовал страницу Bind. Centos 7. Bind 9 install в BIND. Centos 7. BIND 9 install без оставления перенаправления)
Перейти к навигации Перейти к поиску

------------------

BIND 9 НА CENTOS 7

------------------

yum install bind bind-utils

systemctl enable named

1. Кэширующий DNS сервер

2. Внутренние зоны

1. КЭШИРУЮЩИЙ DNS СЕРВЕР

------------------------

nano /etc/named.conf

// и добавляем туда DNS сервера нашего провайдера.

// также для подстраховки можно добавить после DNS-ов провайдера еще и публичные DNS-ы google.

// Всё это вписывается в параметр forwarders Также обратите внимание на параметр listen-on — он определяет на каких интерфейсам будет запущен bind.

// Для кэширующего DNS тут нужно перечислить локальный и все внутренние интерфейсы.

// Внешние интерфейсы сюда вписывать не стоит, мы же не хотим чтобы весь Интернет имел возможность через наш 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.

//

// See the BIND Administrator's Reference Manual (ARM) for details about the

// configuration located in /usr/share/doc/bind-{version}/Bv9ARM.html

options {

   forwarders {

              193.34.12.2; 8.8.8.8;

       };

   auth-nxdomain no;    # conform to RFC1035    

   listen-on port 53 { 127.0.0.1; 192.168.17.252; };

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

   /*

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

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

};

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

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

---

systemctl restart named

В итоге мы получаем кэширующий DNS сервер. Убедимся в этом с помощью утилиты dig:

dig @127.0.0.1 bbc.com

---

; <<>> DiG 9.9.3-2+deb8u3-Debian <<>> @127.0.0.1 bbc.com

; (1 server found)

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43628

;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 13, ADDITIONAL: 16

;; OPT PSEUDOSECTION:

; EDNS: version: 0, flags:; udp: 4096

;; QUESTION SECTION:

;bbc.com.           IN  A

;; ANSWER SECTION:

bbc.com.        9   IN  A   212.58.246.104

bbc.com.        9   IN  A   212.58.244.18

bbc.com.        9   IN  A   212.58.244.20

bbc.com.        9   IN  A   212.58.246.103

;; AUTHORITY SECTION:

com.            10178   IN  NS  i.gtld-servers.net.

............

---

// ответ мы получили, значит все работает как надо.

// настройки DHCP-сервера уже содержит данный DNS сервер как основной и единственный для клиентов локальной сети.

// Если же вы по каким-то причинам не хотите настраивать себе DHCP сервер,

// не забудьте вручную на данном сервере и на компах локальной сети сменить DNS сервера в конфиге /etc/resolv.conf.

// Теперь он может выглядеть следующим образом:

cat /etc/resolv.conf

---

nameserver 127.0.0.1

---

2. ВНУТРЕННИЕ ЗОНЫ

------------------

// создаем файл для нашей зоны

nano /etc/named/db.cless.pro

---

$TTL 3600 ; 1 hour default TTL

cless.pro.    IN    SOA    ns1.cless.pro. admin.cless.pro. (

                             2015042009 ; Serial

                             8H ; Refresh

                             1H ; Retry

                             1W ; Expire

                             1D ) ; minimum, seconds

; DNS Servers

         IN    NS    ns1.cless.pro.

; MX Records

;;        IN    MX 10 mail.cless.pro.

; HOST A

;cless.pro. IN    A     192.168.111.252

ns1       IN    A     192.168.17.252

gw        IN    A     192.168.17.8

d-apps     IN    A     192.168.17.252

*.d-apps   IN    A     192.168.17.252

; CNAME

www       IN   CNAME  gw.cless.pro.

---

// включаем файл в конфиг bind

nano /etc//named.rfc1912.zones

...

zone "cless.pro" {

   type master;

   file "db.cless.pro";

   notify no;

   allow-transfer { none; };

   allow-update { none; };

   allow-query { 127.0.0.1; 192.168.17.0/24; };

...

// Сохраняем конфиг и перезапускаем сервис:

systemctl restart named

Пробуем отрезолвить какой-нибудь host из локалки:

dig @127.0.0.1 ns1.cless.pro

; <<>> DiG 9.9.5-9+deb8u10-Debian <<>> @127.0.0.1 ns1.cless.pro

; (1 server found)

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9116

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:

; EDNS: version: 0, flags:; udp: 4096

;; QUESTION SECTION:

;ns1.cless.pro.                 IN      A

;; ANSWER SECTION:

ns1.cless.pro.          3600    IN      A       192.168.111.249

;; AUTHORITY SECTION:

cless.pro.              3600    IN      NS      ns1.cless.pro.

;; Query time: 0 msec

;; SERVER: 127.0.0.1#53(127.0.0.1)

;; WHEN: Sun Apr 16 20:18:31 MSK 2017

;; MSG SIZE  rcvd: 72

Как видите, резолвится отлично!