Вопрос или проблема
У меня есть файл 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: Ограничение динамических обновлений
Чтобы обеспечить использование динамических обновлений для определённых записей без изменения всей зоны и сохраняя возможность ручного редактирования остальных записей, вы можете использовать несколько подходов.
Использование отдельной зоны для обновлений:
- Создайте отдельную зону для 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;
};
};
- В этом случае, управляйте 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-записями и защитит ваши статические записи от случайных изменений.
Если у вас есть дополнительные вопросы или требуется более детальная информация, не стесняйтесь обращаться!