Домен на samba + openldap

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
h337
ефрейтор
Сообщения: 53
Зарегистрирован: 2008-07-30 11:15:16

Домен на samba + openldap

Непрочитанное сообщение h337 » 2017-07-31 13:40:43

Всем привет!
Поднимаю домен на openldap-server-2.4.45 + samba36-3.6.25_3 FreeBSD 11.0-RELEASE-p1. Делал все по статье https://www.lissyara.su/articles/freebsd/programms/samba+ldap/ Ну и еще по двум похожим... Вроде как все прошло без глюков но когда добавляю юзера пишет такое:

Код: Выделить всё

root@free2dc:/var/log/samba # smbpasswd -a user1
smbldap_search_domain_info: Searching for:[(&(objectClass=sambaDomain)(sambaDomainName=CORP3))]
smbldap_open_connection: connection opened
smbldap_check_root_dse: Expected one rootDSE, got 0
ldap_connect_system: successful connection to the LDAP server
smbldap_search_domain_info: Got no domain info entries for domain
add_new_domain_info: Adding new domain
add_new_domain_info: failed to add domain dn= sambaDomainName=CORP3,dc=corp3,dc=corp,dc=ss with: Invalid DN syntax
        invalid DN
smbldap_search_domain_info: Adding domain info for CORP3 failed with NT_STATUS_UNSUCCESSFUL
pdb_init_ldapsam: WARNING: Could not get domain info, nor add one to the domain
pdb_init_ldapsam: Continuing on regardless, will be unable to allocate new users/groups, and will risk BDCs having inconsistent SIDs
New SMB password:

samba.schema ставил от самбы 3.6 но также пробовал ту которую Лис скидывал на форуме не помогло.
Ку да копать не понимаю...

slapd.conf

Код: Выделить всё

include      /usr/local/etc/openldap/schema/core.schema
include      /usr/local/etc/openldap/schema/cosine.schema
include      /usr/local/etc/openldap/schema/inetorgperson.schema
include      /usr/local/etc/openldap/schema/misc.schema
include      /usr/local/etc/openldap/schema/nis.schema
include      /usr/local/etc/openldap/schema/openldap.schema

# схемы самбы берутся из самбы (потом скопируем), схемы dns и dhcp
# тоже позже скопируем. пока строчки закоментарим
include      /usr/local/etc/openldap/schema/samba.schema
#include      /usr/local/etc/openldap/schema/dnszone.schema
#include      /usr/local/etc/openldap/schema/dhcp.schema

pidfile      /var/run/openldap/slapd.pid
argsfile   /var/run/openldap/slapd.args

# Load dynamic backend modules:

modulepath   /usr/local/libexec/openldap
moduleload   back_mdb

access to attrs=userPassword
   by self write
   by anonymous auth
   by * none

access to *
   by self write
   by anonymous read
   by * none

#######################################################################
# BDB database definitions
#######################################################################

database   mdb
suffix      "dc=corp3,dc=corp,dc=ss"
rootdn      "cn=root,dc=corp3,dc=corp,dc=ss"
#
# пароль на рута можно сгенерировать с помощью slappasswd
#
rootpw      *****
directory   /var/db/openldap-data

loglevel        256

index   objectClass   eq
index   cn      eq

index   sambaSID                                eq
index   sambaPrimaryGroupSID                    eq
index   sambaDomainName                         eq


smb.conf

Код: Выделить всё

[global]

# имя домена
workgroup = CORP3

# типа коментарий самба сервера
server string = free2dc.corp3

#имя компа с самбой в сетевом окружении
netbios name = FREE2DC
security = user
hosts allow = 192.168.2. 127.

load printers = no
log file = /var/log/samba/log.%m
log level = 3
max log size = 50
acl compatibility = win2k

encrypt passwords = yes
admin users = admin
passdb backend = ldapsam:ldap://127.0.0.1/


# здесь описываем лдап
#ldap suffix = dc=free2dc,dc=corp3,dc=corp,dc=ss
ldap suffix = dc=corp3,dc=corp,dc=ss
#ldap suffix = dc=corp,dc=ss
ldap user suffix = ou=users
ldap group suffix = ou=groups
ldap machine suffix = ou=computers
ldap admin dn = "cn=root,dc=corp3,dc=corp,dc=ss"
ldap delete dn = no
ldap ssl = off
winbind uid = 10000-20000
winbind gid = 10000-20000
winbind separator = @
winbind use default domain = yes


# делаем PDC
socket options = TCP_NODELAY
local master = yes
os level = 64
domain master = yes
preferred master = yes
domain logons = yes

# если хоиите юзать логон скрипты, то раскоментариваете
;   logon script = %m.bat
;   logon script = %U.bat

# путь к перемещаемому профилю
logon path = \\%L\profiles

# путь к хомякам юзеров
logon home = \\%L\HOME
logon drive = H:


wins support = yes
dns proxy = no


display charset = koi8-r
unix charset = koi8-r
dos charset = cp866
timeserver = yes

# скрипты для добавления юзеров и групп (юзается в usermgr от nt4)
add machine script = /usr/local/sbin/ldapaddmachine '%u' computers
add user script = /usr/local/sbin/ldapadduser '%u' users
add group script = /usr/local/sbin/ldapaddgroup '%g'
add user to group script = /usr/local/sbin/ldapaddusertogroup '%u' '%g'
delete user script = /usr/local/sbin/ldapdeleteuser '%u'
delete group script = /usr/local/sbin/ldapdeletegroup '%g'
delete user from group script = /usr/local/sbin/ldapdeleteuserfromgroup '%u' '%g'
set primary group script = /usr/local/sbin/ldapsetprimarygroup '%u' '%g'
rename user script = /usr/local/sbin/ldaprenameuser '%uold' '%unew'


# делаем шару на хомяки
[HOME]
   comment = Home Directories
   path = /home/samba/homes/%U
   read only = no
   public = no
   writable = yes
   create mask = 0600
   browseable = no
   directory mask = 0700

# делаем шару на нетлогон (для запуска скриптов)
[netlogon]
   comment = Network Logon Service
   path = /usr/local/etc/samba/netlogon
   guest ok = yes
   writable = no
   share modes = no
   browseable = no

# делаем шару на перемещаемые профили
[profiles]
    create mask = 0600
    directory mask = 0700
    path = /home/samba/profiles/%u
    writeable = yes
    browseable = no
    locking = no
    csc policy = disable # эта строчка необходима чтобы отключить автономное кеширование



# просто так :) чтобы можно было на тачку заходить
[IPC$]
path = /tmp
hosts allow = 192.168.2.0/24 127.0.0.1
hosts deny = 0.0.0.0/0


Отправлено спустя 2 часа 43 минуты 1 секунду:
Появилась мысля что в строке

Код: Выделить всё

add_new_domain_info: failed to add domain dn= sambaDomainName=CORP3,dc=corp3,dc=ss with: Invalid DN syntax

пробел между и

Код: Выделить всё

sambaDomainName
может вызвать Инвалид синтакс

Отправлено спустя 56 минут 29 секунд:
То что я написал выше это бред... Посмотрел исходники самбы...
Файл smbldap.c
Функция ldap_add_s выполняется и библиотек openldap и видимо версия самбы не совместима с версией openldap
ставлю

Код: Выделить всё

rc = ldap_add_s(ldap_state->ldap_struct, utf8_dn, attrs);
      if (rc != LDAP_SUCCESS) {
         char *ld_error = NULL;
         int ld_errno;

         ldap_get_option(ldap_state->ldap_struct,
               LDAP_OPT_ERROR_NUMBER, &ld_errno);
         ldap_get_option(ldap_state->ldap_struct,
               LDAP_OPT_ERROR_STRING, &ld_error);
         DEBUG(10, ("Failed to add dn: %s, error: %d (%s) "


log level = 10 в smb.conf
root@free2dc:/usr/ports/net/samba36 # smbpasswd

Код: Выделить всё

Failed to add dn: sambaDomainName=CORP3,dc=corp3,dc=ss, error: 34 (Invalid DN syntax) (invalid DN)

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

Отправлено спустя 11 минут 7 секунд:
Добавлю что после первого сообщения подкоректировал конфиги и удалил dc=corp но это не помогло

Отправлено спустя 1 минуту 16 секунд:
Что то я ступил, надо было писать во FreeBSD для начинающих! Думаю что то никто не отвечает)

snorlov
подполковник
Сообщения: 3561
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Домен на samba + openldap

Непрочитанное сообщение snorlov » 2017-07-31 15:12:14

Ну помимо slapd.conf надо настроить также /usr/local/etc/ldap/ldap.conf и /etc/nswitches.conf, а также необходимы еще добавить ссылки/файлы в /usr/local/etc, кроме прочего проверьте права на samba.shema
В общем вы не завершили настройку...
самба ходит от рута к лдапу юзая клиента лдапа, если клиент не настроен, то вам и индейская народная изба будет, если nsswitches не настроен, то пользователей лдапа не будет в системе, отсюда и нет возможности править доступ к файлам и каталогам.
ЗЫ. Лично мне ldapscripts никогда не нравились, я юзал и юзаю smbldap-tools... Да и вот еще если вам удобнее работать из под винды то поищите утилитку ldapadmin, она покажет вам структуру и поля каталога лдап более наглядно

Аватара пользователя
h337
ефрейтор
Сообщения: 53
Зарегистрирован: 2008-07-30 11:15:16

Домен на samba + openldap

Непрочитанное сообщение h337 » 2017-07-31 16:16:18

nsswitche был настроен

Код: Выделить всё

group: files ldap
hosts: files dns
networks: files
passwd: files ldap
shadow: files ldap
shells: files

С помощью LDAP Admin подключался без проблем. А вот ldap.conf не настраивал так как делал в точности как в статье видимо вместо него nss_ldap.conf.

Отправлено спустя 50 минут 57 секунд:
Вообщем снес все и поставил из портов ошибка пропала

Код: Выделить всё

root@free2dc:/usr/local/etc/samba # smbpasswd -a admin
New SMB password:
Retype new SMB password:
Added user admin.
root@free2dc:/usr/local/etc/samba #


Думаю косяк был openldap который ставил из пакетов pkg install -y openldap.... лень было ждать

snorlov
подполковник
Сообщения: 3561
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Домен на samba + openldap

Непрочитанное сообщение snorlov » 2017-08-01 18:20:01

ldap.conf в любом случае нужен, а вот вместо файла nss_ldap.conf, обычно создают ссылку с таким именем на ldap.conf


Вернуться в «FreeBSD»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя