[samba] Samba DCs, Domain Members и DNS

Evgeny Sinelnikov sin на altlinux.org
Ср Фев 9 00:59:52 MSK 2022


Доброй ночи,

вы затронули довольно много различных вопросов по связке Samba + Bind.

Попробую на некоторые ответить. По некоторым предложить постепенный
совместный разбор. А по некоторым дополнение к связке Samba + Bind +
ISC DHCP server.

ср, 26 янв. 2022 г. в 10:10, Alex Moskalenko <mav на elserv.msk.su>:
>
> Здравствуйте.
>
> Появилось несколько вопросов по работе Samba DNS.
>
> 1. Возможно ли указать где-либо список серверов, которым нужно отсылать
> notify-сообщения об обновлениях зоны? В данный момент в качестве
> slave-серверов к Samba DC c BIND_DLZ подключены несколько других bind'ов
> в качестве slave'ов. Зону они обновляют исключительно по таймеру
> Refresh, указанному в SOA. Можно ли где-нибудь указать Bind'у на DC или
> samba, чтобы они слали notify-сообщения дополнительным серверам (типа
> also-notify в конфигурации bind, который непонятно куда и как писать в
> случае с Samba DLZ)?

Это интересный вопрос. Я, с ходу не могу на него ответить - нужно
разбираться. И с плагином, в целом, и с его возможностями. Давайте
сформируем минимальный конфиг бинда (всех используемых биндов) для
взаимного воспроизведения ожидаемого поведения.


> 2. Как правильно регистрировать Doman Member'ов в Ad DNS? При включении
> в домен samba регистрирует A-запись для себя, но после ничего с ней не
> делает и обновлять регистрацию не пытается. Соответственно (на DC
> включен scavenging), через некоторое время запись из DNS чистится. Как
> сделать правильно - что-то настроить в конфиге samba Domain Member,
> чтобы она периодически обновляла регистрацию DNS (не нашел такого в
> документации) или прописывать статическую запись и на Samba не рассчитывать?

Samba за этот не отвечает. На клиентах она вообще, как служба, не
обязательна. А вот winbind нужен (иногда и без него можно обойтись, но
не стоит в общем случае).
На машинах в домене мы, по умолчанию, используем SSSD. Он умеет
обновлять записи через nsupdate сам. У нас для этого даже control'ы
имеются:

sin на xdt samba $ sudo control|grep dyndns

sssd-dyndns-refresh-interval unknown         (disabled INTERVAL)
sssd-dyndns-ttl unknown         (disabled TTL)
sssd-dyndns-update enabled         (disabled enabled default)
sssd-dyndns-update-ptr disabled        (disabled enabled default)

sin на xdt samba $ sudo grep dns /etc/sssd/sssd.conf
dyndns_update_ptr = false
dyndns_update = true

При этом, важно чтобы на контроллере была выполнена пара пунктов от сюда:
https://www.altlinux.org/ActiveDirectory/DC

1) Отключить KRB5RCACHETYPE (это волшебство нужно разбирать подробнее):
  grep -q KRB5RCACHETYPE /etc/sysconfig/bind || echo
'KRB5RCACHETYPE="none"' >> /etc/sysconfig/bind

2) В /etc/bind/options.conf указать keytab-файл:
tkey-gssapi-keytab "/var/lib/samba/bind-dns/dns.keytab";

_____________________________________

Ещё один момент про "правильно".
В некоторых сценариях для обновления DNS-записей используется DHCP:
https://wiki.samba.org/index.php/Configure_DHCP_to_update_DNS_records

В этом случае обновление везде на клиентах пытаются отключать (винда
не всегда слушается и всё равно пытается лезть сама). Делается это для
всяких "не умных" клиентов не в домене.

Спорное решение, хотя там есть свои доводы.

Для этого варианта, в чистом виде, нужно выносить наш DHCP из
chroot'а. Делается это, в первом приближении, следующим образом:

[root на b0 ~]# systemctl status dhcpd
● dhcpd.service - DHCPv4 Server Daemon
   Loaded: loaded (/lib/systemd/system/dhcpd.service; enabled; vendor
preset: disabled)
   Active: active (running) since Sun 2022-02-06 16:56:16 UTC; 2 days ago
     Docs: man:dhcpd(8)
           man:dhcpd.conf(5)
  Process: 934 ExecStartPre=/etc/chroot.d/dhcpd.all (code=exited,
status=0/SUCCESS)
 Main PID: 1045 (dhcpd)
    Tasks: 1 (limit: 2377)
   Memory: 9.1M
   CGroup: /system.slice/dhcpd.service
           └─1045 /usr/sbin/dhcpd -4 -f --no-pid -j / -lf
/var/lib/dhcp/dhcpd/state/dhcpd.leases

[root на b0 ~]# cat /etc/sysconfig/dhcpd
# The following variables are recognized:

DHCPDARGS=-j / -lf /var/lib/dhcp/dhcpd/state/dhcpd.leases



-- 
Sin (Sinelnikov Evgeny)


Подробная информация о списке рассылки Samba