LINUX.ORG.RU
решено ФорумAdmin

Samba PDC LDAP добавление компов в домен


0

1

Доброго всем.

Извиняюсь, проблему ранее постил, но без конфигов и логов, никак не могу решить. Хочу повторить.

Поднят PDC Samba + LDAP. Пользователей авторизует нормально.

Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[homes]"
Processing section "[netlogon]"
WARNING: The "share modes" option is deprecated
Processing section "[profiles]"
Processing section "[printers]"
Processing section "[public]"
Processing section "[work]"
Loaded services file OK.
Server role: ROLE_DOMAIN_PDC
Press enter to see a dump of your service definitions

[global]
	workgroup = MULTI
	server string = Samba Server
	interfaces = 127.0.0.1/8, 192.168.1.1/24
	bind interfaces only = Yes
	map to guest = Bad User
	passdb backend = ldapsam:"ldap://127.0.0.1/"
	client NTLMv2 auth = Yes
	log level = 3
	log file = /var/log/samba/log.%m
	max log size = 50
	time server = Yes
	socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
	printcap name = cups
	add user script = /usr/sbin/smbldap-useradd -m -a "%u"
	delete user script = /usr/sbin/smbldap-userdel "%u"
	add group script = /usr/sbin/smbldap-groupadd -p "%g"
	delete group script = /usr/sbin/smbldap-userdel "%g"
	add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g"
	delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g"
	set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"
	add machine script = /usr/sbin/smbldap-useradd -w -i "%u"
	logon path = \\%L\profiles\%U
	logon drive = M:
	logon home = 
	domain logons = Yes
	os level = 65
	preferred master = Yes
	domain master = Yes
	dns proxy = No
	wins support = Yes
	ldap admin dn = cn=root,dc=multi,dc=local
	ldap delete dn = Yes
	ldap group suffix = ou=groups
	ldap idmap suffix = ou=idmap
	ldap machine suffix = ou=hosts
	ldap suffix = dc=multi,dc=local
	ldap ssl = no
	ldap user suffix = ou=users
	idmap backend = ldapsam:ldap://127.0.0.1/
	idmap uid = 10000-20000
	idmap gid = 10000-20000
	hosts allow = 192.168.1., 192.168.2., 127.0.0.1

[homes]
	comment = Home Directories
	valid users = %S
	read only = No
	browseable = No

[netlogon]
	comment = Network Logon Service
	path = /var/lib/samba/netlogon
	guest ok = Yes
	browseable = No
	share modes = No

[profiles]
	path = /var/lib/samba/profiles
	read only = No
	guest ok = Yes
	profile acls = Yes
	browseable = No

[printers]
	comment = All Printers
	path = /var/spool/samba
	printable = Yes
	browseable = No

[public]
	path = /var/lib/samba/shares/public
	read only = No
	create mask = 0777
	directory mask = 0777

[work]
	path = /var/lib/samba/shares/work
	valid users = "@Domain Users"
	force group = Domain Users
	read only = No
	create mask = 0770
	directory mask = 0770

Возникли проблемы с включением компов в домен, как виндовых, так и линуксовых.

Добавляю комп с виндовс 7 в домен. Задал два ключа реестра [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanWorkstation\Parameters] DomainCompatibilityMode=dword:00000001 DNSNameResolutionRequired=dword:00000000. Винда в окошке пишет такую ошибку:

При присоединении к домену .... произошла ошибка:

Указанная учетная запись компьютера не найдена...

в логах самбы на сервере следующее:

...
[2011/09/27 00:42:08.907676,  2] passdb/pdb_ldap.c:572(init_sam_from_ldap)
  init_sam_from_ldap: Entry found for user: kappa-win$
...

[2011/09/27 00:42:08.908633,  0] passdb/pdb_get_set.c:212(pdb_get_group_sid)
  pdb_get_group_sid: Failed to find Unix account for kappa-win$
...

В лдапе запись компьютера kappa-win$ создается. При повторной попытке включения в домен винда ругается, что компьютер с таким именем уже есть в домене. Смотрел getent passwd, там пользователя kappa-win$ нет (может должен и там появляться?).

Делаю включение другой линукс-самбы в домен $ net rpc join -S LINUXSERV -U root с первого раза не джойнится, в логах:

...
[2011/09/19 21:59:11.027840,  3] passdb/pdb_interface.c:348(pdb_default_create_user)
  _samr_create_user: Running the command `/usr/sbin/smbldap-useradd -w -i "dzeta$"' gave 0
[2011/09/19 21:59:11.028549,  3] passdb/pdb_interface.c:365(pdb_default_create_user)
  pdb_default_create_user: failed to create a new user structure: NT_STATUS_NO_SUCH_USER
...

Запись в лдапе самба-компа тоже создается, но не джойнится. Ввожу второй раз команду $ net rpc join -S LINUXSERV -U root Удачно включает стороннюю самбу в домен со второго раза.

Где накосячил? Подскажите, пожалуйста. Спасибо.

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

getent passwd |grep «$» что выдает?

zgen ★★★★★ ()

>Смотрел getent passwd, там пользователя kappa-win$ нет (может должен и там появляться?).
Если там вообще пользователей-машин (с $ в конце) нет - значит так «хорошо» настроили nss_ldap.

Конфиги nss_ldap и nsswitch в студию.

zgen ★★★★★ ()

>client NTLMv2 auth = Yes

socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192

убрать

add machine script = /usr/sbin/smbldap-useradd -w -i «%u»
-w «%u» достаточно

ldap delete dn = Yes

Убрать, хотя бы на время дебага

idmap backend = ldapsam:ldap://127.0.0.1/

idmap uid = 10000-20000


idmap gid = 10000-20000


Убрать на время дебага. А если не знаешь, зачем - то убрать вообще.


hosts allow = 192.168.1., 192.168.2., 127.0.0.1

Сделать 127.0.0., хотя это может и лишнее.

zgen ★★★★★ ()
Ответ на: комментарий от zgen
# /etc/nsswitch.conf:

passwd:      compat ldap
shadow:      compat ldap
group:       compat ldap

hosts:       files dns
networks:    files nis

services:    db files
protocols:   db files
rpc:         db files
ethers:      db files
netmasks:    files
netgroup:    files
bootparams:  files

automount:   files
aliases:     files

хотел показать nss_ldap.conf, но его нет вроде в Генту, показываю /etc/ldap.conf (без закоментированных строчек)

#/etc/ldap.conf
host 127.0.0.1

base dc=multi,dc=local

ldap_version 3

binddn cn=root,dc=multi,dc=local
bindpw *************

scope one

bind_timelimit 30

bind_policy soft

pam_filter objectclass=posixAccount
pam_template_login_attribute uid
pam_password exop

nss_base_passwd         ou=users,dc=multi,dc=local?one
nss_base_shadow         ou=users,dc=multi,dc=local?one
nss_base_group          ou=groups,dc=multi,dc=local?one
nss_base_hosts          ou=hosts,dc=multi,dc=local?one

О УЖАС! у меня аккаунты компов сохраняются в ветке ou=hosts,dc=multi,dc=local, а ведь, походу, нужно их тоже пихать в ou=users,dc=multi,dc=local ??????????

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

getent passwd выводит всех лдаповских пользователей и группы, но не выводит компы($). Чудеса, но как линуксовские самбы джойнились (со второго раза)? И работают!

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

Но почему я разделил компы от юсеров? Где-то в примерах было показано разделение.

# grep dn= /etc/smbldap-tools/smbldap.conf

usersdn="ou=users,${suffix}"

computersdn="ou=hosts,${suffix}"

groupsdn="ou=groups,${suffix}"

idmapdn="ou=idmap,${suffix}"

sambaUnixIdPooldn="sambaDomainName=${sambaDomain},${suffix}"

Не могу понять как правильно сделать: можно разделять или нельзя разделять ветки dn компов от юсеров? Почему нельзя? Почему можно? Судя по логам самбы, она как раз не находит unix-пользователя-компа($)

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

sbmldap-tools

Что-то может проблемы с sbmldap-tools, например

# /usr/sbin/smbldap-usershow имя_пользователя выдает ошибку:

Insufficient access at /usr/sbin//smbldap_tools.pm line 774.

# /usr/sbin/smbldap-userlist показывает всех пользоветелей и компы$

Рою дальше.

chegeware ()
Ответ на: sbmldap-tools от chegeware

Поправил /etc/ldap.conf

...
scope sub

nss_base_passwd         ou=users,dc=multi,dc=local?sub
nss_base_passwd         ou=hosts,dc=multi,dc=local?sub
nss_base_shadow         ou=users,dc=multi,dc=local?sub
nss_base_group          ou=groups,dc=multi,dc=local?sub
nss_base_hosts          ou=hosts,dc=multi,dc=local?sub

...

Теперь getent passwd нормально показывает имена_компов$

Дальше рою.

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

ввод виндового компа

Выдает окошко:

Computer Name/Domain Changes
The following error occured attempting to join the domain "multi": The RPC server is unavailable.

в логе:

...
[2011/09/28 18:52:20.442149,  2] passdb/pdb_ldap.c:2061(ldapsam_update_sam_account)
  ldapsam_update_sam_account: successfully modified uid = kappa-win$ in the LDAP database
...
[2011/09/28 18:52:36.875239,  0] lib/util_sock.c:474(read_fd_with_timeout)
[2011/09/28 18:52:36.875272,  0] lib/util_sock.c:1441(get_peer_addr_internal)
  getpeername failed. Error was Transport endpoint is not connected
  read_fd_with_timeout: client 0.0.0.0 read error = Connection reset by peer.
...

в списке getent passwd запись kappa_win$ есть

делаю id kappa_win$ - No such user

для линуксовых компов id нормально показывает

Куда теперь рыть? Куда-кто не смог подключиться?

chegeware ()
Ответ на: ввод виндового компа от chegeware

Пробовал указывать DNS-суффикс при вводе в домен, выдает:

DNS was successfully queried for the service location (SRV) resource record used to locate a domain controller for domain "multi.local":

The query was for the SRV record for _ldap._tcp.dc._msdcs.multi.local

The following domain controllers were identified by the query:
linuxserv.multi.local


However no domain controllers could be contacted.

Common causes of this error include:

- Host (A) or (AAAA) records that map the names of the domain controllers to their IP addresses are missing or contain incorrect addresses.

- Domain controllers registered in DNS are not connected to the network or are not running.
chegeware ()
Ответ на: комментарий от chegeware

>делаю id kappa_win$ - No such user
Добивайтесь, чтобы видно было. Если запущен nscd - останавливайте и удаляйте. Добивайтесь, чтобы id machine_name$ работал.

Проверьте ввод винды, но только xp или vista.

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

спасибо, zden

Благодаря вам увидел свой косяк в ldap.conf

Проверьте ввод винды, но только xp или vista.

В данной конторе стоят вин8 и вин7, требуют чтобы работало, во зажрались.

chegeware ()
Ответ на: спасибо, zden от chegeware

>В данной конторе стоят вин8 и вин7, требуют чтобы работало, во зажрались.
дело не в том, что требуют, а в том, чтобы проверить что с winxp все работает нормально (проблема в клиенте). Или не работает (проблема в сервере)

На linux введенной в домен wbinfo -t, wbinfo -a user.name отрабатывает нормально?

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

>На linux введенной в домен wbinfo -t, wbinfo -a user.name отрабатывает нормально?

Извиняюсь, самба на образе линукс-десктопов была собрана без winbind, тоже косячок? Писала об успешном джоине, проверял отовсюду через smbclient доменные пользователи срабатывали. Еще проверял на виндовых - тоже вроде работало.

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

Вроде вин7 станции стали подрубаться в домен, но не всегда без ошибок.

Подвожу итоги борьбы:

1. Действительно, (zden) убрал ключ -i из smb.conf:

add machine script = /usr/sbin/smbldap-useradd -w «%u»

2. Переделал полностью заново каталог ЛДАП под суффикс dc=multi,dc=local. Было не так как указал в самом начале. Где-то в логах винда ругалась на неверный DN

3. Добавил записи прямой зоны bind для multi.local (может это не нужно, не понятно):

_ldap._tcp.multi.local. SRV 0 0 389 linuxserv.multi.local. _ldap._tcp.dc._msdcs.multi.local. SRV 0 0 389 linuxserv.multi.local.

4. Вручную добавил к сетевому интерфейсу ключ в реестре, (может некорректно dhcpd.conf выдает):

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\Interfaces\{ид сетевого интерфейса}] «Domain»=«multi.local»

еще что вспомню, допишу

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

>Извиняюсь, самба на образе линукс-десктопов была собрана без winbind, тоже косячок?
Нет, просто им проверять удобно.

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

>3. Добавил записи прямой зоны bind для multi.local (может это не нужно, не понятно):
Не нужно - DC ищется либо через wins сервер (если его dhcp отдает) либо broadcast'ом.

4. Вручную добавил к сетевому интерфейсу ключ в реестре, (может некорректно dhcpd.conf выдает):

Ну дык пусть dhcp передает верно - и не надо будет ничего править, тем более в реестре.

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

спасибо, друг-zgen :)

Еще странный косячок: линукс-десктоп-пользователи через dolphin не могут автроизоваться друг у друга, при этом smbclient'ом - без проблем. На сервер-самбу - нормально авторизуются дельфином. С виндовс машин, врубленых в домен, - все и везде без проблем авторизует.

Вин8-девелоп не смог завести в домен самбы, ну ничё, все впереди.

Понемногу втягиваюсь в суровые самбовские будни.

Сейчас стоит задача другую линукс-самбу в AD, acl, крыжики доступа ...

chegeware ()
Ответ на: спасибо, друг-zgen :) от chegeware

>Вин8-девелоп не смог завести в домен самбы, ну ничё, все впереди.
Win8 насколько я знаю, не поддерживается пока. Может быть и не будет даже.

zgen ★★★★★ ()
Ответ на: спасибо, друг-zgen :) от chegeware

да, кстати, замечу - про домен .local тут уже было сказано немало тёплых слов. поищи %) особенно, если вдруг где-то в сети заведутся авахи или другие зероконфы, это будет незабываемо! ;))

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