Использование bind9 с rfc2136 для certbot и ручные правки для всего остального

Вопрос или проблема

У меня есть файл bind9, как указано ниже

$TTL  129600
@ IN  SOA example.com. root.example.com. (
        1050    ; Серийный номер
        86400   ; Частота обновления
        28800   ; Повторная попытка
       604800   ; Время истечения
        600 ) ; Время кэширования для отрицательных записей
;
@ IN  NS  ns.super.com.
@ IN  NS  ns2.super.com.
;
@ IN  MX  10  mail.super.com.
;
www.example.com.           IN    A   10.10.10.10

Теперь я включаю динамическое обновление rfc2136 для certbot.

zone "example.com" {
  type master;
  file "/etc/bind/db.example.com";
  allow-transfer { ... }
  update-policy {
    grant certbot name _acme-challenge.www.example.com. txt;
  }    
};

После использования certbot для создания моего сертификата ‘let’s encrypt’ (успешно) файл зоны немного изменился, но не семантически.

Но я не могу добавить или изменить какой-либо хост, редактируя этот файл зоны. После перезапуска bind9 любые изменения исчезают.

Так как же я могу использовать rfc2136 только для некоторых текстовых записей, не изменяя весь файл зоны и с возможностью ручных изменений в файле зоны? Заранее спасибо!

Ответ или решение

Вопрос: Использование BIND9 с RFC2136 для Certbot и ручные изменения для всего остального

Вы хотите настроить BIND9 для работы с динамическими обновлениями по RFC2136, чтобы автоматизировать процесс получения сертификатов от Let’s Encrypt с помощью Certbot, при этом сохраняя возможность вручную редактировать конфигурацию зоны. Давайте разберем, как этого добиться.

Шаг 1: Настройка сервера BIND9

Ваш файл конфигурации BIND9 выглядит следующим образом:

$TTL  129600
@ IN  SOA example.com. root.example.com. (
        1050    ; Serial
        86400   ; Refresh
        28800   ; Retry
       604800   ; Expire
        600 ) ; Negative Cache TTL
;
@ IN  NS  ns.super.com.
@ IN  NS  ns2.super.com.
;
@ IN  MX  10  mail.super.com.
;
www.example.com.           IN    A   10.10.10.10

Затем вы добавляете следующую конфигурацию для динамических обновлений:

zone "example.com" {
  type master;
  file "/etc/bind/db.example.com";
  allow-transfer { ... }
  update-policy {
    grant certbot name _acme-challenge.www.example.com. txt;
  }    
};

Шаг 2: Ограничение динамических обновлений

Чтобы обеспечить использование динамических обновлений для определённых записей без изменения всей зоны и сохраняя возможность ручного редактирования остальных записей, вы можете использовать несколько подходов.

Использование отдельной зоны для обновлений:

  1. Создайте отдельную зону для TXT-записей, связанных с Let’s Encrypt, чтобы изолировать динамические обновления от остальной части вашей зоны. Например:
zone "_acme-challenge.example.com" {
  type master;
  file "/etc/bind/db.acme-challenge.example.com";
  update-policy {
    grant certbot name _acme-challenge.example.com. txt;
  };
};
  1. В этом случае, управляйте TXT-записями через отдельный файл /etc/bind/db.acme-challenge.example.com. Содержимое файла может выглядеть так:
$TTL  129600
@ IN  SOA example.com. root.example.com. (
        1050    ; Serial
        86400   ; Refresh
        28800   ; Retry
       604800   ; Expire
        600 ) ; Negative Cache TTL
;
@ IN  NS  ns.super.com.

Теперь Certbot сможет динамически обновлять записи, а ваши остальные записи останутся в исходном файле конфигурации.

Шаг 3: Настройка Certbot

При использовании этой схемы, вам нужно указать Certbot использовать вашу новую зону для обновления записей. Вы можете выполнить команду следующего вида:

certbot certonly --manual --preferred-challenges dns -d example.com -d www.example.com

Это будет запрашивать подтверждение каждой записи _acme-challenge.example.com, которую нужно будет создать для верификации на стороне Certbot.

Шаг 4: Ручное редактирование файла зоны

Чтобы вернуть возможность ручного редактирования ваших записей в основном файле зоны, просто продолжайте редактировать /etc/bind/db.example.com, в то время как TXT-записи будут обрабатываться в отдельной зоне. Таким образом, изменения в зоне example.com не будут перезаписываются обновлениями из certbot.

Заключение

С помощью данной настройки вы сможете использовать BIND9 с динамическими обновлениями по RFC2136 для Certbot, в то время как останется возможность вручную управлять другими записями. Это обеспечит гибкость в управлении DNS-записями и защитит ваши статические записи от случайных изменений.

Если у вас есть дополнительные вопросы или требуется более детальная информация, не стесняйтесь обращаться!

Оцените материал
Добавить комментарий

Капча загружается...