Product SiteDocumentation Site

10.7. Система Доменных Имен Серверов (DNS)

Система Доменных Имен Серверов или Domain Name Service (DNS) - одно из фундаментальных понятий сети Internet: она представляет из себя таблицу преобразования узлов сети в IP адреса (и наоборот), что позволяет использовать www.debian.org вместо 130.89.148.77 или 2001:67c:2564:a119::77.
Записи DNS организованы по зонам; каждая зона соответствует какому-нибудь домену (или субдомену) или указанному диапазону IP адресов (поскольку IP-адреса обычно выделяются в последовательных диапазонах). Первичный сервер является авторитетным в отношении содержимого зоны; Вторичные серверы, обычно размещаемые на отдельных машинах, предоставляют регулярно обновляемые копии основной зоны.
Каждая зона может содержать записи различных видов (Resource Records), вот некоторые из наиболее распространенных::

10.7.1. DNS программное обеспечение

Референсный сервер имён, Bind, был создан и в настоящее время поддерживается организацией ISC (Internet Software Consortium). В Debian он включён в пакет bind9. По сравнения с предыдущей версией, в версию 9 включили два важных изменения. Первое: DNS сервер может теперь запускаться от лица непривилегированного пользователя. Это в свою очередь не позволит атакующему (систему), при возможно имеющихся секретных уязвимостях на сервере, воспользоваться правами суперпользователя (как можно было ранее неоднократно видеть, начиная с версий 8.x).
Второе: Bind поддерживает стандарт DNSSEC для подписывания (и поэтому для выполнения идентификации) записей DNS. А это, в свою очередь, позволит блокировать любые изменённые данные (в записях DNS) в момент осуществления атаки "man-in-the-middle attacks".

10.7.2. Настройка bind

Файлы настройки программы bind, независимо от версии, имеют одинаковую структуру.
Администраторы компании Falcot создали первичную зону falcot.com, в которой располагается информация, касающаяся данного домена, и зону 168.192.in-addr.arpa для обратного преобразования IP адресов в адреса локальной сети.
Следующие выдержки взяты из файлов настройки, использующихся в компании Falcot, и могут послужить отправной точкой для настройки сервера DNS:

Пример 10.12. Выдержка из /etc/bind/named.conf.local

zone "falcot.com" {
        type master;
        file "/etc/bind/db.falcot.com";
        allow-query { any; };
        allow-transfer {
                195.20.105.149/32 ; // ns0.xname.org
                193.23.158.13/32 ; // ns1.xname.org
        };
};

zone "internal.falcot.com" {
        type master;
        file "/etc/bind/db.internal.falcot.com";
        allow-query { 192.168.0.0/16; };
};

zone "168.192.in-addr.arpa" {
        type master;
        file "/etc/bind/db.192.168";
        allow-query { 192.168.0.0/16; };
};

Пример 10.13. Выдержка из /etc/bind/db.falcot.com

; falcot.com Zone 
; admin.falcot.com. => zone contact: admin@falcot.com
$TTL    604800
@       IN      SOA     falcot.com. admin.falcot.com. (
                        20040121        ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
; The @ refers to the zone name ("falcot.com" here)
; or to $ORIGIN if that directive has been used
;
@       IN      NS      ns
@       IN      NS      ns0.xname.org.

internal IN      NS      192.168.0.2

@       IN      A       212.94.201.10
@       IN      MX      5 mail
@       IN      MX      10 mail2

ns      IN      A       212.94.201.10
mail    IN      A       212.94.201.10
mail2   IN      A       212.94.201.11
www     IN      A       212.94.201.11

dns     IN      CNAME   ns

Пример 10.14. Выдержка из /etc/bind/db.192.168

; Reverse zone for 192.168.0.0/16
; admin.falcot.com. => zone contact: admin@falcot.com
$TTL    604800
@       IN      SOA     ns.internal.falcot.com. admin.falcot.com. (
                        20040121        ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL

        IN      NS      ns.internal.falcot.com.

; 192.168.0.1 -> arrakis
1.0     IN      PTR     arrakis.internal.falcot.com.
; 192.168.0.2 -> neptune
2.0     IN      PTR     neptune.internal.falcot.com.

; 192.168.3.1 -> pau
1.3     IN      PTR     pau.internal.falcot.com.