В настоящее время я настраиваю сервер 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>
заполнители.