Защита BIND 9

Для обеспечения защиты в BIND 9 реализованы подписи транзакций (TSIG) и подписи (SIG) для команды named.

Как и с BIND 8, сервер имен с BIND 9 по умолчанию не разрешает выполнять динамическое обновление ответственных областей.

В BIND 9 для связи между серверами в основном используется TSIG. Это относится к сообщениям передачи области, уведомления и рекурсивного запроса. TSIG также может применяться для динамического изменения. Основной сервер динамической области должен осуществлять управление изменениями с помощью управления доступом, но функций управления доступом на основе IP для этого недостаточно.

Применяя шифрование на основе ключей вместо списков управления доступа, TSIG позволяет осуществлять управление доступом для изменения динамических областей. В отличие от списков управления доступом (ACL), ключ TSIG может передаваться другим агентам, изменяющим область, без необходимости изменения файлов конфигурации на сервере имен. Это означает, что серверу имен не нужно повторно считывать файлы конфигурации.

Следует отметить, что BIND 9 содержит не все ключевые слова, реализованные в BIND 8. В этом примере применяется простая главная конфигурация BIND 8.
Прим.: Для применения демона named 9 необходимо переключить символьную связь с демоном named на named9, а связь с nsupdate - на nsupdate9 с помощью следующих команд:
  1. ln -fs /usr/sbin/named9 /usr/sbin/named
  2. ln -fs /usr/sbin/nsupdate9 /usr/sbin/nsupdate
  1. Создайте ключ с помощью команды dnssec-keygen:
    dnssec-keygen -a HMAC-MD5 -b 128 -n HOST keyname
    • HMAC-MD5 - применяемый алгоритм шифрования
    • 128 - длина ключа (или число бит)
    • HOST: HOST - ключевое слово TSIG, применяемое для создания ключей хостов для шифрования с общим ключом.
    Команда
    dnssec-keygen -a HMAC-MD5 -b 128 -n HOST venus-batman.abc.aus.century.com
    создает два ключа:
    Kvenus-batman.abc.aus.century.com.+157+35215.key
    Kvenus-batman.abc.aus.century.com.+157+35215.private
    • 157 - применяемый алгоритм (HMAC-MD5).
    • 35215 - оттиск ключа. Оттиск нужен в DNNSEC, так как для одной области может существовать несколько ключей.
  2. Добавьте следующую запись в файл named.conf главного сервера имен:
    // TSIG Key
    key venus-batman.abc.aus.century.com. {
            algorithm hmac-md5;
            secret "+UWSvbpxHWFdNwEAdy1Ktw==";
    };

    Так как предполагается применение HMAC-MD5, то в последней записи обоих файлов ключей находится общий ключ. Выберите безопасные способ копирования общего секретного ключа в систему клиента. Файл ключа копировать не нужно, достаточно скопировать общий секретный ключ.

    Ниже приведена запись для файла Kvenus-batman.abc.aus.century.com.+157+35215.private:
    Private-key-format: v1.2
    Algorithm: 157 (HMAC_MD5)
    Key: +UWSvbpxHWFdNwEAdy1Ktw==
    Ниже приведен пример файла named.conf для главного сервера имен. В области abc.aus.century.com передача информации об области и динамические изменения разрешены только серверам с ключом venus-batman.abc.aus.century.com. То же самое необходимо сделать в обратной области, в которой для внесения изменений серверам нужен общий ключ.
    // TSIG Key
    key venus-batman.abc.aus.century.com. {
            algorithm hmac-md5;
            secret "+UWSvbpxHWFdNwEAdy1Ktw==";
    };
    
    options {
            directory "/usr/local/domain";
    };
    
    zone "abc.aus.century.com" in {
            type master;
            file "named.abc.data";
            allow-transfer { key venus-batman.abc.aus.century.com.;};
            allow-update{ key venus-batman.abc.aus.century.com.; };
    };

    Так как передача информации об областях может выполняться не только в областях, для которых необходим ключ, то изменения необходимо внести и в файл named.conf подчиненного сервера имен. Все запросы в область 192.9.201.1(venus.abc.aus.century.com) подписаны ключом. Учтите, что имя ключа (venus-batman.abc.aus.century.com.) должно совпадать с именем, указанным на серверах, которые применяют этот ключ.

    Ниже приведен пример файла named.conf на подчиненном сервере имен:
    // TSIG Key
    key venus-batman.abc.aus.century.com. {
            algorithm hmac-md5;
            secret "+UWSvbpxHWFdNwEAdy1Ktw==";
    };
    
    server 192.9.201.1{
            keys { venus-batman.abc.aus.century.com.;};
    };
    
    options {
            directory "/usr/local/domain";
    };
    
    zone "abc.aus.century.com" IN {
        type slave;
        file "named.abc.data.bak";
        masters { 192.9.201.1; };
    };