LINUX.ORG.RU
ФорумAdmin

Вывалилась машина из домена

 , , , ,


2

3

Возникла такая проблема.. Машина входит в домен, была авторизация через доменного пользователя и вдруг неожиданно машина выпала из домена.

wdinfo -u нормально показывает доменных пользователей.

getent passwd показывает только локальных пользователей.

конфиг smb.conf на домене

cat /etc/samba/smb.conf
[global]


workgroup = SMARKET
security = user
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd

interfaces = lo eth0
passdb backend = tdbsam

local master = yes
domain master = yes
preferred master = yes
domain logons = yes
logon path =\\%L\Profiles\%U
admin users = admin Administrator root
wins support = yes
name resolve order = wins lmhosts bcast
add user script = /usr/sbin/useradd -d /dev/null -g machines -s /bin/false -m %u
winbind uid = 10000-20000
winbind gid = 10000-20000
winbind separator = +
winbind cache time = 10
template homedir = /home/%D/%U
template shell = /bin/bash

#guest account = samp
# -------------------------------------
[netlogon]

comment = Network Login Service
path = /var/samba/netlogon
writable = no
guest ok = yes
write list = admin, administrator, root
#--------------------------------------
[homes]
comment=Home Directories
browsable = no
writable = yes


#--------------------------------------
[Profiles]

path = /var/samba/profiles
browseable = no
create mask = 0600
directory mask = 0700

конфиг smb.conf на хосте

cat /etc/samba/smb.conf

[global]
   workgroup = SMARKET
   encrypt passwords = yes
   security = domain
   idmap config * : range = 10000-20000
   template shell = /bin/bash
   winbind use default domain = true
   winbind offline logon = false

	server string = Samba Server Version %v
	netbios name = snab

# --------------------------- Logging Options -----------------------------

	log file = /var/log/samba/log.%m
	max log size = 50
	passdb backend = tdbsam
	map to guest = bad user
	winbind enum users = yes
	winbind enum groups =yes
	domain master = no
	domain logons = no
	local master = no
	preferred master = no
	wins server = smarket

# --------------------------- Printing Options -----------------------------

	load printers = yes
	cups options = raw

#============================ Share Definitions ==============================

[homes]
	comment = Home Directories
	browseable = no
	writable = yes

[printers]
	comment = All Printers
	path = /var/spool/samba
	browseable = no
	writable = no
	printable = yes

конфиг был скопирован с хоста у которого нет такой проблемы с авторизацией.

systemctl status winbind выдает следующее:

● winbind.service - Samba Winbind Daemon
   Loaded: loaded (/usr/lib/systemd/system/winbind.service; enabled; vendor preset: disabled)
   Active: active (running) since Ср 2019-06-19 09:09:55 MSK; 6min ago
     Docs: man:winbindd(8)
           man:samba(7)
           man:smb.conf(5)
 Main PID: 8922 (winbindd)
   Status: "winbindd: ready to serve connections..."
    Tasks: 5
   CGroup: /system.slice/winbind.service
           ├─8922 /usr/sbin/winbindd --foreground --no-process-group
           ├─8927 /usr/sbin/winbindd --foreground --no-process-group
           ├─8928 /usr/sbin/winbindd --foreground --no-process-group
           ├─8929 /usr/sbin/winbindd --foreground --no-process-group
           └─8960 /usr/sbin/winbindd --foreground --no-process-group

июн 19 09:09:54 sysadmin systemd[1]: Starting Samba Winbind Daemon...
июн 19 09:09:54 sysadmin winbindd[8922]: [2019/06/19 09:09:54.997356,  0] ../source3/winbindd/winbindd_cache.c:3160(initialize_winbindd_cache)
июн 19 09:09:54 sysadmin winbindd[8922]:   initialize_winbindd_cache: clearing cache and re-creating with version number 2
июн 19 09:09:55 sysadmin winbindd[8922]: [2019/06/19 09:09:55.001549,  0] ../lib/util/become_daemon.c:138(daemon_ready)
июн 19 09:09:55 sysadmin winbindd[8922]:   daemon_ready: STATUS=daemon 'winbindd' finished starting up and ready to serve connections
июн 19 09:09:55 sysadmin systemd[1]: Started Samba Winbind Daemon.
июн 19 09:09:55 sysadmin winbindd[8927]: [2019/06/19 09:09:55.102522,  0] ../source3/libsmb/namequery.c:76(saf_store)
июн 19 09:09:55 sysadmin winbindd[8927]:   saf_store: refusing to store 0 length domain or servername!
июн 19 09:10:00 sysadmin winbindd[8929]: [2019/06/19 09:10:00.105242,  0] ../source3/libsmb/namequery.c:76(saf_store)
июн 19 09:10:00 sysadmin winbindd[8929]:   saf_store: refusing to store 0 length domain or servername!

не могу понять что случилось..


Гугл не особо хочет подсказывать что это за ошибка «saf_store: refusing to store 0 length domain or servername!»
по сути у меня сейчас PDC и 3 хоста. 2 из них в домене, 1 вывалился и не хочет обратно.. в какую сторону копать?

Для добавления хоста в домен копировал конфиг самбы и менял нетбиос имя. Ну и создавал машину на контроллере домена, после чего машина получает доменных пользователей(wbinfi -u) и хеш их паролей(getent passwd). Проблемный хост получает пользователей но не получает хеш паролей..

mifi ()
Ответ на: комментарий от anymouze

Это уже читал.. эффекта не было особо. Смысл такой: сначала вывалился один хост симптомы одни и и те же. После недели мучений снес систему и поставил по новой. Но так в домен и не зашел. После дня перепроверки по нескольку раз всех конфигов снес систему и опять накатил но уже с другим именем. После чего со старым конфигом перестал стартовать winbind. Ну и после добавления хоста в домен все нормально работает. А другой через некоторое время вывалился. Причем вываливается во время работы пк...

mifi ()
Ответ на: комментарий от mifi

Так ещё не понятней выглядит... Сама сеть работает? Может проблема не в хост-машинах, а в самом контроллере домена? я вряд ли что-то толковое подскажу :(

anymouze ★★ ()
Ответ на: комментарий от anymouze

сеть есть wbinfo все показывает как надо... пинг до домена, доменных пользователей.. но getent не получает кеш паролей.. и пишет что то про нулевую длинну имени домена(как я понял) но не могу понять где это подкрутить

mifi ()
Ответ на: комментарий от mifi

в /etc/nsswitch.conf

прописано?

passwd: files systemd winbind group: files systemd winbind shadow: files winbind

getent passwd DOMAIN\\user - что отдает?

wbinfo -a DOMAIN\\user - отрабатывает?

ford1813 ()
Ответ на: комментарий от ford1813
wbinfo -a SMARKET\\pavel
Enter SMARKET\pavel's password: 
plaintext password authentication succeeded
Enter SMARKET\pavel's password: 
challenge/response password authentication succeeded

getent passwd SMARKET\\pavel ничего не выдает
В /etc/nsswitch.conf было прописано

 cat /etc/nsswitch.conf
#
# /etc/nsswitch.conf
#
# An example Name Service Switch config file. This file should be
# sorted with the most-used services at the beginning.
#
# The entry '[NOTFOUND=return]' means that the search for an
# entry should stop if the search in the previous entry turned
# up nothing. Note that if the search failed due to some other reason
# (like no NIS server responding) then the search continues with the
# next entry.
#
# Valid entries include:
#
#	nisplus			Use NIS+ (NIS version 3)
#	nis			Use NIS (NIS version 2), also called YP
#	dns			Use DNS (Domain Name Service)
#	files			Use the local files
#	db			Use the local database (.db) files
#	compat			Use NIS on compat mode
#	hesiod			Use Hesiod for user lookups
#	[NOTFOUND=return]	Stop searching if not found so far
#

# To use db, put the "db" in front of "files" for entries you want to be
# looked up first in the databases
#
# Example:
#passwd:    db files nisplus nis
#shadow:    db files nisplus nis
#group:     db files nisplus nis

passwd:     files systemd winbind
shadow:     files systemd winbind
group:      files systemd winbind
#initgroups: files sss

#hosts:     db files nisplus nis dns
hosts:      files mdns4_minimal [NOTFOUND=return] dns myhostname

# Example - obey only what nisplus tells us...
#services:   nisplus [NOTFOUND=return] files
#networks:   nisplus [NOTFOUND=return] files
#protocols:  nisplus [NOTFOUND=return] files
#rpc:        nisplus [NOTFOUND=return] files
#ethers:     nisplus [NOTFOUND=return] files
#netmasks:   nisplus [NOTFOUND=return] files     

bootparams: nisplus [NOTFOUND=return] files

ethers:     files
netmasks:   files
networks:   files
protocols:  files
rpc:        files
services:   files sss

netgroup:   files sss

publickey:  nisplus

automount:  files sss
aliases:    files nisplus

изначально было еще sss прописано, пробовал удалить эффекта никакого, добавил systemd так же нет эффекта

mifi ()
Ответ на: комментарий от mifi

пишет что то про нулевую длинну имени домена(как я понял) но не могу понять где это подкрутить

С этим сообщением какая-то странная история: куча людей спрашивают об «saf_store: refusing to store 0 length domain or servername!» — и никто не отвечает. По той ссылке, что я приводил, говорится о необходимости добавления пользователя и пароля

Haha. As expected, the solution is so simple I could slap myself. Even though the local host is the domain controller, it must still be specifically added to its own domain for winbind to authenticate properly.

net rpc join -U administrator%password

After three painful days of searching, problem solved. (Thanks to this post: http://osdir.com/ml/network.samba.internals/2002-06/msg00216.html)

Но у тебя этот шаг же выполняется, а через некоторое время нормальной работы возникает ошибка...

anymouze ★★ ()
Ответ на: комментарий от anymouze

В том то и проблема что машина в течении недели нормально логинилась под доменным пользователем. А потом внезапно вывалилась... И не могу понять почему... А 2другие на которых тестирую домен нормально логинятся. Прям полтергейст какой то...

mifi ()
Ответ на: комментарий от anymouze

пробовал удалить машину с домена и добавить по новой, но после удаления winbind все равно запускается.. на новой машине с текущей настройкой smb.conf winbind не стартует до тех пор пока не добавлю в домен машину<br> После этого нормально стартует и работает. Возможно нужно на хосте скинуть кеш какой нибудь? и по новой завести в домен? единственное не могу найти создает ли winbind какой нибудь кеш и где

mifi ()
Ответ на: комментарий от mifi

Запустите winbind под strace'ом с выводом в файл, а потом грепайте файл на предмет системных вызовов open и openat, будут видны все файлы.

mky ★★★★★ ()
Ответ на: комментарий от mky

насколько понимаю тут только открываются библиотеки.. никак не могу понять в какую сторону еще капнуть

cat ./wblog | grep open
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/librt.so.1", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libselinux.so.1", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/liblzma.so.5", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/liblz4.so.1", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libgcrypt.so.11", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libcap.so.2", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libpcre.so.1", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libgpg-error.so.0", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libattr.so.1", O_RDONLY|O_CLOEXEC) = 3
open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
open("/proc/self/stat", O_RDONLY|O_CLOEXEC) = 3

mifi ()
Ответ на: комментарий от mifi

тут понял что на «рабочем» хосте getent shadow ничего не показывает, а getent passwd на 2х хостах из 3х нормально отрабатывает. Но дело в том что один хост входит под доменным пользователем, а второй нет. Копать в сторону файрвола пробовал эффект 0

mifi ()
Ответ на: комментарий от mifi

passwd: files systemd winbind

Не уверен, у меня нет systemd, но везде гуглится, что:

passwd: files winbind systemd

Кеш winbind раньше лежал в /var/lib/samba/

Этого я вобще не понял:

а getent passwd на 2х хостах из 3х нормально отрабатывает. Но дело в том что один хост входит под доменным пользователем, а второй нет.

У вас сколько машин в домене работает нормально и что именно из команд ломается на «выпавших».

mky ★★★★★ ()
Ответ на: комментарий от mky

Сейчас в домене 4 машины суммарно.

1ая машина все работает как надо. wbinfo -u показывает доменных пользователей. getent passwd тоже показывает пользователей домена. Есть возможность залогиниться доменным пользователем.

2ая: все тоже самое. Только при логине под доменным пользователем ошибка аутентификации.

3я: не отрабатывает getent passwd.ввдает только локальных пользователей

4я: работала нормально...с прошлой недели не проверял.

mifi ()
Ответ на: комментарий от mifi

wbinfo -i показывает корректные uid'ы для доменного пользователя или 4294967295? wbinfo -n и wbinfo -s работают?

У вас не указан прописан ″idmap config backend″, может на разных машинах используется разный, поэтому поведение разное.

Изменение порядка слов в nsswitch не повлияло на getent на третьей машине?

mky ★★★★★ ()
Последнее исправление: mky (всего исправлений: 1)
Ответ на: комментарий от mky

со второй машиной разобрался... забыл сделать автоматическое создание домашнего каталога. поэтому не пускало...

осталось победить 3ю машину

mifi ()
Ответ на: комментарий от mky
wbinfo -i SMARKET\\user1
failed to call wbcGetpwnam: WBC_ERR_DOMAIN_NOT_FOUND
Could not get info for user SMARKET\user1

так отрабатывает 3я машина

порядок на скорость не влияет... systemd это уже я сам добавлял.. было sss изначально

mifi ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.