Назад | Перейти на главную страницу

Получение "ads_connect: Нет серверов входа в систему" через нерегулярные промежутки времени

В настоящее время я настраиваю сервер Samba 4 AD (на Ubuntu Server 16.04) с примерно 10 членами Linux / Windows в планировании. После успешной инициализации контроллера домена я присоединил к домену первого клиента Xubuntu 16.04.

Сначала я смог войти в систему на клиенте с учетной записью пользователя samba. Так wbinfo -u и getent passwd оба перечислили все аккаунты самбы. Через несколько минут я снова попытался войти в систему, но на экране входа в систему отображалось только предупреждение Kerberos о том, что срок действия моего пароля истекает через 41 день.

getent passwd теперь перечислены только локальные пользователи. wbinfo -u непоследовательно переключается между пустым списком и пользователями самбы.

net ads info -d 3 возвращает следующее:

ads_connect: No logon servers
ads_connect: No logon servers
Didn't find the ldap server!

Удаление /var/cache/samba/gencache.tdb и /var/run/samba/gencache_notrans.tdb часто меняет вывод на:

LDAP server: 10.230.44.1
LDAP server name: dc1.samdom.com # not the original domain
Realm: SAMDOM.COM
Bind Path: dc=SAMDOM,dc=COM
LDAP port: 389
Server time: Sa, 15 Okt 2016 18:01:33 CEST
KDC server: 10.230.44.1
Server time offset: 0

Но через некоторое время он возвращается к выводу выше. Иногда простое ожидание тоже помогает.

У меня такая же проблема со вторым клиентом, но не в то же время.

Сервер находится внутри университетской сети и также служит NAT-маршрутизатором для клиентов Samba. Однако клиенты могут получить доступ в Интернет, если они используют не частный IP-адрес.

smb.conf сервера:

[global] 
    workgroup = SAMDOM
    realm = SAMDOM.COM 
    netbios name = DC1
    server role = active directory domain controller 
    dns forwarder = xxx.yyy.xxx.yyy
    idmap_ldb:use rfc2307 = Yes 

    # Only listen to the internal network 
    interfaces = eno2 
    bind interfaces only = Yes 

[netlogon] 
    path = /var/lib/samba/sysvol/samdom.com/scripts 
    read only = No 

[sysvol] 
    path = /var/lib/samba/sysvol 
    read only = No

smb.conf на клиенте:

[global] 
    netbios name = M1
    security = ADS
    workgroup = SAMDOM
    realm = SAMDOM

    log file = /var/log/samba/%m.log 
    log level = 1 

    # Default idmap config used for BUILTIN and local windows accounts/groups 
    idmap config *:backend = tdb 
    idmap config *:range = 2000-9999 

    # idmap config for domain SAMDOM 
    idmap config SAMDOM:backend = rid 
    idmap config SAMDOM:range = 10000-99999 

    # Use template settings for login shell and home directory 
    winbind nss info = template 
    template shell = /sbin/bash 
    template homedir = /home/%U 

    winbind enum users = Yes 
    winbind enum groups = Yes 
    winbind use default domain = Yes 
    encrypt passwords = Yes

Та же настройка без сервера, что и маршрутизатор NAT, но с обычными IP-адресами, возвращает такое же поведение.

Клиентская область SAMDOM вместо того SAMDOM.COM.
Похоже на опечатку в вопросе. Также интерфейсы DC должны включать интерфейс localhost. lo.
В net ads info вывод не включен отладки с -d 3 как сказали.

Области клиента и сервера должны совпадать (и должны разрешаться в домен DNS). net ads info пытается разрешить DNS различные доменные имена, в том числе:

_ldap._tcp.Default-First-Site-Name._sites.dc._msdcs.<your realm>
_kerberos._tcp.Default-First-Site-Name._sites.dc._msdcs.<your realm>

в противном случае он возвращается к разрешению имен netbios на <your workgroup>#1c.

Если я удалю кеши, <your workgroup>#1c запись разрешается с IP-адресом DC, действительным в течение 660 секунд.
Еще <your workgroup>#1c значение отбрасывается, поскольку его тайм-аут отрицателен (равен 0 - <seconds since epoch>).
Тайм-аут 660 секунд - это NAMECACHETIMEOUT стоимость.

В целом это должно продвинуть вас на шаг вперед, но не выбраться из No logon server ошибка. Даже если сервер разрешен, клиент выдаст запрос входа в сеть CLDAP, который завершится ошибкой.
Вы можете проверить:

ldapsearch -LLL -h <you server ip> -x -b '' -s base "(&(NtVer=\06\00\00\00)(DnsDomain=<your realm>))" NetLogon

Там отладка отсутствует, чтобы разобраться в этом.
Если это происходит с перебоями, вероятно, другой DNS-сервер имеет устаревшие записи, и иногда у контроллера домена запрашиваются доменные имена, а иногда у другого DNS-сервера.

NB: <your realm>, <your workgroup> и <your server ip> заполнители.