add bind
parent
fb89a4e5ca
commit
33e3a49d1f
|
@ -0,0 +1,20 @@
|
|||
$TTL 604800
|
||||
@ IN SOA dav.lan. root.dav.lan. (
|
||||
2 ; Serial
|
||||
604800 ; Refresh
|
||||
86400 ; Retry
|
||||
2419200 ; Expire
|
||||
604800 ) ; Negative Cache TTL
|
||||
|
||||
@ IN NS ns.
|
||||
2 IN PTR ns.dav.lan.
|
||||
3 IN PTR zidoo.dav.lan.
|
||||
4 IN PTR voip.dav.lan.
|
||||
5 IN PTR qnap.dav.lan.
|
||||
6 IN PTR printserver.dav.lan.
|
||||
7 IN PTR docker.dav.lan.
|
||||
8 IN PTR dnas.dav.lan.
|
||||
9 IN PTR pve.dav.lan.
|
||||
10 IN PTR bastion.dav.lan.
|
||||
12 IN PTR smarthome.dav.lan.
|
||||
15 IN PTR syno.dav.lan.
|
|
@ -0,0 +1,22 @@
|
|||
$TTL 604800
|
||||
@ IN SOA dav.lan. root.dav.lan. (
|
||||
2022070101 ; Serial
|
||||
604800 ; Refresh
|
||||
86400 ; Retry
|
||||
2419200 ; Expire
|
||||
604800 ) ; Negative Cache TTL
|
||||
;
|
||||
@ IN NS ns
|
||||
@ IN AAAA ::1
|
||||
ns IN A 192.168.13.2
|
||||
|
||||
zidoo IN A 192.168.13.3
|
||||
voip IN A 192.168.13.4
|
||||
qnap IN A 192.168.13.5
|
||||
printserver IN A 192.168.13.6
|
||||
docker IN A 192.168.13.7
|
||||
dnas IN A 192.168.13.8
|
||||
pve IN A 192.168.13.9
|
||||
bastion IN A 192.168.13.10
|
||||
smarthome IN A 192.168.13.12
|
||||
syno IN A 192.168.13.16
|
|
@ -0,0 +1,13 @@
|
|||
// This is the primary configuration file for the BIND DNS server named.
|
||||
//
|
||||
// Please read /usr/share/doc/bind9/README.Debian.gz for information on the
|
||||
// structure of BIND configuration files in Debian, *BEFORE* you customize
|
||||
// this configuration file.
|
||||
//
|
||||
// If you are just adding zones, please do that in /etc/bind/named.conf.local
|
||||
|
||||
include "/etc/bind/named.conf.options";
|
||||
include "/etc/bind/named.conf.local";
|
||||
include "/etc/bind/named.conf.default-zones";
|
||||
|
||||
include "/etc/bind/named.conf.dav.lan";
|
|
@ -0,0 +1,9 @@
|
|||
zone "dav.lan" {
|
||||
type master;
|
||||
file "/etc/bind/dav.lan.zone";
|
||||
};
|
||||
|
||||
zone "13.168.192.in-addr.arpa" {
|
||||
type master;
|
||||
file "/etc/bind/dav.lan.rzone";
|
||||
};
|
|
@ -0,0 +1,27 @@
|
|||
options {
|
||||
directory "/var/cache/bind";
|
||||
|
||||
// интерфейсы, на которых принимаются DNS запросы
|
||||
listen-on port 53 {
|
||||
127.0.0.1;
|
||||
192.168.13.2;
|
||||
};
|
||||
|
||||
listen-on-v6 port 53 {
|
||||
any;
|
||||
};
|
||||
|
||||
// кто может обращаться за DNS запросами к этому серверу. { any; } значит любой
|
||||
allow-query {
|
||||
any;
|
||||
};
|
||||
|
||||
// вышестоящие DNS-сервера, на которые будет переадресован запрос при отсутствии ответа
|
||||
forwarders {
|
||||
77.88.8.8;
|
||||
77.88.8.1;
|
||||
};
|
||||
|
||||
dnssec-validation auto;
|
||||
|
||||
};
|
|
@ -0,0 +1,326 @@
|
|||
# Настройка сервера разрешения имён BIND
|
||||
|
||||
## 1. Установка
|
||||
|
||||
Debian, Ubuntu
|
||||
|
||||
```bash
|
||||
sudo apt install bind9 bind9-doc dnsutils python-ply-doc
|
||||
```
|
||||
|
||||
*при этом, можно ограничится установкой основного пакета `bind`, однако установщик предлагает и дополнительные пакеты*
|
||||
|
||||
Cent OS Stream
|
||||
|
||||
```bash
|
||||
sudo dnf install bind bind-utils
|
||||
```
|
||||
|
||||
В результате установки в системе появится служба `named.sevice`
|
||||
|
||||
|
||||
## 2. Запуск службы
|
||||
|
||||
После установки необходимо перечитать список демонов системы
|
||||
|
||||
```bash
|
||||
sudo systemctl daemon-reload
|
||||
```
|
||||
|
||||
и выполнить запуск службы `named`
|
||||
|
||||
```bash
|
||||
sudo systemctl enable --now named.service
|
||||
```
|
||||
|
||||
## 3. Основной конфигурационный файл BIND
|
||||
|
||||
Конфигурационный файлы расположены:
|
||||
|
||||
Debian, Ubuntu - `/etc/bind`</br>
|
||||
Cent OS - `/etc`
|
||||
|
||||
Основным файлом настройки является - `named.conf`</br>
|
||||
Для проверки корректности конфигурации служит утилита - `named-checkconf`
|
||||
|
||||
Кроме, непосредственно, самой настройки сервера, файл `named.conf` может включать ссылки на другие конфигурационные файлы, которые указываются в директиве `include`, например
|
||||
|
||||
```bash
|
||||
include "/etc/bind/named.conf.options";
|
||||
```
|
||||
|
||||
Таким образом, файл `named.conf` может содержать исключительно ссылки на другие конфигурационные файлы
|
||||
|
||||
```bash
|
||||
da2001@ns:/etc/bind $ cat /etc/bind/named.conf
|
||||
|
||||
include "/etc/bind/named.conf.options";
|
||||
include "/etc/bind/named.conf.local";
|
||||
include "/etc/bind/named.conf.default-zones";
|
||||
```
|
||||
|
||||
В конфигурационных файлах bind можно использовать комментарии различных стилей:</br>
|
||||
стиль C: `/* */`</br>
|
||||
стиль C++: `// до конца строки`</br>
|
||||
стиль Unix: `# до конца строки`</br>
|
||||
|
||||
## 4. Кэширующий режим работы
|
||||
|
||||
По умолчанию конфигурация настраивается на работу в режиме кэширующего сервера. В этом режиме `bind` только сохраняет в своём кэше ответы от вышестоящих DNS серверов и транслирует их клиентам. За счёт этого, при повторном запросе, ответ клиенту выдаётся из записи в кэше, соответственно и ответ клиент получает быстрее, т.к. нет обращения к внешним серврерам имён. Всё, что для этого требуется - это добавить IP адреса DNS вышестоящих серверов в секции `forwarders`
|
||||
|
||||
Пример настройки - `/etc/bind/named.conf.options`
|
||||
|
||||
```bash
|
||||
options {
|
||||
directory "/var/cache/bind";
|
||||
|
||||
// интерфейсы, на которых принимаются DNS запросы
|
||||
listen-on port 53 {
|
||||
127.0.0.1;
|
||||
192.168.13.2; // IP адрес интерфейса сервера
|
||||
};
|
||||
|
||||
listen-on-v6 port 53 {
|
||||
any;
|
||||
};
|
||||
|
||||
// кто может обращаться за DNS запросами к этому серверу. { any; } значит любой
|
||||
allow-query {
|
||||
any;
|
||||
};
|
||||
|
||||
// вышестоящие DNS-сервера, на которые будет переадресован запрос при отсутствии ответа
|
||||
forwarders {
|
||||
// NS сервера Яндекса
|
||||
77.88.8.8;
|
||||
77.88.8.1;
|
||||
};
|
||||
|
||||
dnssec-validation auto;
|
||||
|
||||
};
|
||||
|
||||
```
|
||||
|
||||
После внесения изменений в конфигурацию, необходимо выполнить проверку синтаксиса с помощью утилиты `named-checkconf`. Если будут обнаружены ошибки, утилита укажет на строки с ошибками и предложит варианты исправления.
|
||||
|
||||
## 5. Firewall
|
||||
|
||||
Если на сервере активирован межсетевой экран, необходимо разрешить работу DNS:
|
||||
|
||||
Cent OS (firewalld)
|
||||
|
||||
```bash
|
||||
sudo firewall-cmd --add-service=dns --permanent
|
||||
sudo firewall-cmd --reload
|
||||
```
|
||||
|
||||
Проверить разрешения
|
||||
|
||||
```bash
|
||||
sudo firewall-cmd --list-services
|
||||
```
|
||||
|
||||
или
|
||||
|
||||
```bash
|
||||
sudo firewall-cmd --list-all
|
||||
```
|
||||
|
||||
Ubuntu (ufw)
|
||||
|
||||
```bash
|
||||
sudo ufw allow dns
|
||||
```
|
||||
|
||||
Проверить разрешения
|
||||
|
||||
```bash
|
||||
sudo ufw status verbose
|
||||
```
|
||||
|
||||
Перезапуск службы для применения внесенных изменений в конфигурацию
|
||||
|
||||
```bash
|
||||
sudo systemctl restart named.service
|
||||
```
|
||||
|
||||
## 6. Проверка работы BIND
|
||||
|
||||
Для проверки работы сервера в режиме кэширования можно запросить разрешение имени с помощью утилиты `nslookup`. Эта утилита входит в состав пакета `dnsutils`.
|
||||
|
||||
С клиента в одной локальной сети с сервером BIND выполним запрос разрешения имени `ubuntu.com`
|
||||
|
||||
```bash
|
||||
nslookup ubuntu.com ns
|
||||
```
|
||||
|
||||
`ns` - имя сервера BIND в локальной сети</br>
|
||||
Если всё настроено верно, в ответ получим
|
||||
|
||||
```bash
|
||||
[da2001@fedora ~]$ nslookup ubuntu.com ns
|
||||
Server: ns
|
||||
Address: 192.168.13.2#53
|
||||
|
||||
Non-authoritative answer:
|
||||
Name: ubuntu.com
|
||||
Address: 185.125.190.20
|
||||
Name: ubuntu.com
|
||||
Address: 185.125.190.21
|
||||
Name: ubuntu.com
|
||||
Address: 185.125.190.29
|
||||
Name: ubuntu.com
|
||||
Address: 2620:2d:4000:1::27
|
||||
Name: ubuntu.com
|
||||
Address: 2620:2d:4000:1::26
|
||||
Name: ubuntu.com
|
||||
Address: 2620:2d:4000:1::28
|
||||
|
||||
```
|
||||
|
||||
## 7. Разрешение имён в локальной сети.
|
||||
|
||||
Для разреешения имён в локальной сети, необходимо определить зоны прямого и обратного просмотра:
|
||||
- зона прямого просмотра выпоняет разрешение доменных имён в IP адреса
|
||||
- зона обратного просмотра выполняет разрешения IP адресов в имена
|
||||
|
||||
### Зона прямого просмотра
|
||||
|
||||
Необходимо создать файл описания зоны и указать его в основном конфигурационном файле `named.conf`
|
||||
|
||||
в Ubuntu это можно сделать следующими командами:
|
||||
|
||||
```bash
|
||||
sudo touch /etc/bind/named.conf.dav.lan
|
||||
|
||||
sudo bash -c "echo 'include \"/etc/bind/named.conf.dav.lan\";' >> /etc/bind/named.conf"
|
||||
```
|
||||
|
||||
в Cent OS в команде необходимо изменить пути размещения файлов на `/etc/named.conf`
|
||||
|
||||
**Содержимое файла описания зоны прямого просмотра**
|
||||
|
||||
```bash
|
||||
da2001@ns:~ $ cat /etc/bind/named.conf.dav.lan
|
||||
zone "dav.lan" {
|
||||
type master;
|
||||
file "/etc/bind/zone.dav.lan";
|
||||
};
|
||||
|
||||
```
|
||||
|
||||
теперь необходимо выполнить непосредственное описание зоны
|
||||
|
||||
```bash
|
||||
da2001@ns:~ $ cat /etc/bind/zone.dav.lan
|
||||
$TTL 604800
|
||||
@ IN SOA dav.lan. root.dav.lan. (
|
||||
2022070101 ; Serial
|
||||
604800 ; Refresh
|
||||
86400 ; Retry
|
||||
2419200 ; Expire
|
||||
604800 ) ; Negative Cache TTL
|
||||
|
||||
@ IN NS ns
|
||||
@ IN AAAA ::1
|
||||
ns IN A 192.168.13.2
|
||||
|
||||
zidoo IN A 192.168.13.3
|
||||
voip IN A 192.168.13.4
|
||||
|
||||
```
|
||||
|
||||
где,</br>
|
||||
`$TTL 604800` - время жизни записи в кэше</br>
|
||||
`dav.lan.` - название зоны, `root.dav.lan.` - эл.адрес администратора, но вместо @ указана точка. Точки в конце названия зоны и адреса администраторы ОБЯЗАТЕЛЬНЫ</br>
|
||||
`Serial` - указан номер версии конфигурации, может быть задан произвольно, обычно в нём указывают дату изменения и порядковый номер изменения</br>
|
||||
`@ IN NS ns` - указание на DNS сервер</br>
|
||||
`@ IN A 192.168.13.2` - сопоставление имени и IPv4 адреса DNS сервера</br>
|
||||
`@ IN AAAA ::1` - сопоставление имени и IPv6 локального адреса DNS сервера</br>
|
||||
|
||||
Далее можно добавлять записи сопоставления адресов других хостов в сети.
|
||||
|
||||
После внесения всех изменений в конфигурацию, стоит проверить корректность описания файла зоны утилитой `named-checkzone`, утилите необходимо передать в качестве аргументов имя зоны и файл описывающий зону
|
||||
|
||||
```bash
|
||||
da2001@ns:~ $ named-checkzone dav.lan /etc/bind/zone.dav.lan
|
||||
zone dav.lan/IN: loaded serial 2022070101
|
||||
OK
|
||||
```
|
||||
|
||||
### Зона обратного просмотра
|
||||
|
||||
Для указания файла описания заны обратного просмотра, добавим его в ранее созданный файл `named.conf.dav.lan`
|
||||
|
||||
```bash
|
||||
da2001@ns:~ $ cat /etc/bind/named.conf.dav.lan
|
||||
zone "dav.lan" {
|
||||
type master;
|
||||
file "/etc/bind/zone.dav.lan";
|
||||
};
|
||||
|
||||
zone "13.168.192.in-addr.arpa" {
|
||||
type master;
|
||||
file "/etc/bind/zone.192.168.13";
|
||||
};
|
||||
|
||||
```
|
||||
|
||||
и опишем зону обратного просмотра
|
||||
|
||||
```bash
|
||||
$TTL 604800
|
||||
@ IN SOA dav.lan. root.dav.lan. (
|
||||
2022070101 ; Serial
|
||||
604800 ; Refresh
|
||||
86400 ; Retry
|
||||
2419200 ; Expire
|
||||
604800 ) ; Negative Cache TTL
|
||||
|
||||
@ IN NS ns.
|
||||
2 IN PTR ns.dav.lan.
|
||||
3 IN PTR zidoo.dav.lan.
|
||||
4 IN PTR voip.dav.lan.
|
||||
```
|
||||
|
||||
от описания прямой зоны, обратная зона отличается типом записей, в ней указываем записи PTR.</br>
|
||||
|
||||
**Формат PTR записи**</br>
|
||||
`3 IN PTR zidoo.dav.lan.`</br>
|
||||
`3` - последний октет IPv4 адреса</br>
|
||||
`zidoo.dav.lan.` - FQDN, точка в конце обязательна
|
||||
|
||||
После описания обратной зоны, проверим корректность внесения данных
|
||||
|
||||
```bash
|
||||
da2001@ns:/etc/bind $ sudo named-checkzone 13.168.192.in-addr.arpa dav.lan.rzone
|
||||
zone 13.168.192.in-addr.arpa/IN: loaded serial 2022070101
|
||||
OK
|
||||
```
|
||||
|
||||
## 8. Проверка разрешения имён в локальной сети.
|
||||
|
||||
### Проверка зоны прямого просмотра
|
||||
|
||||
С клиента в локальной сети запросим разрешение имени в IPv4 адрес существующего хоста в локальной сети, при этом укажем, что разрешать имя в адрес необходимо нашим DNS сервером
|
||||
|
||||
```bash
|
||||
[da2001@fedora ~]$ nslookup voip ns
|
||||
Server: ns
|
||||
Address: 192.168.13.2#53
|
||||
|
||||
Name: voip.dav.lan
|
||||
Address: 192.168.13.4
|
||||
|
||||
```
|
||||
|
||||
### Проверка зоны обратного просмотра
|
||||
|
||||
С клиента в локальной сети запросим разрешение IPv4 адреса существующего хоста в локальной сети в его FQDN, также, с указанием коркретного DNS сервера
|
||||
|
||||
```bash
|
||||
[da2001@fedora ~]$ nslookup 192.168.13.5 ns
|
||||
5.13.168.192.in-addr.arpa name = qnap.dav.lan.
|
||||
|
||||
```
|
Loading…
Reference in New Issue