Проблема аутентификации Samba 4 OpenLDAP

Что я сделал до сих пор

  • Установленный сервер DHCP и bind9 для локальной сети клиентов (сервер должен действовать как шлюз),
  • созданный Samba4 из источника с bind9_dlz как бэкенд DNS
  • установленное использование OpenLDAP apt-get install slapd ldap-utils
  • измененные slapd порты к 390,637 из-за блокирования самбы 389,636
  • импортированный самба ldap схема, первоначально настроила ldap каталог и настроила домен
  • установленный libnss-ldapd для аутентификации LDAP (getent passwd выходные пользователи LDAP правильно)
  • дал самбе пароль администратора моему ldap каталогу (smbpasswd -w xxx)

Проблема

Я соединил клиент Windows 7 с доменом и попытался войти в пользователя, созданного с smbldap-useradd. Я получаю сообщение неправильного пароля от окон, но абсолютно никаких ошибок/предупреждений от самбы. Мой проверочный пользователь является действительно существующим в LDAP (сверенный phpldapadmin), таким образом, я предполагаю, что самба правильно не говорит с ldap. Я застреваю в этой точке, и нуждаются в некоторой помощи!

Что я заметил

Я установил passdb backend = ldapsam:ldap://testsrv.alfr.local:390/ который не появляется в выводе testparm (см. внизу).

Программное обеспечение я использую

  • Сервер Ubuntu 12,04 актуальных
  • Samba 4.1.6 скомпилированных из источника (официальный репозиторий мерзавца)
  • Свяжите 9.8.1
  • slapd 2.4.28
  • isc-dhcp-server 4.1

Конфигурации и выводы

  • Имя хоста сервера: testsrv
  • Доменное имя: alfr.local
  • 2 сетевых интерфейса, eth0 = DHCP, внешне WAN, eth1 = 192.168.25.1 (Сервер действует как DHCP для этой сети в пределах от 25,50 до 25.254),

Вывод testparm

root@testsrv:~# testparm 
Load smb config files from /usr/local/samba/etc/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[profiles]"
Processing section "[netlogon]"
Processing section "[sysvol]"
Processing section "[homes]"
Loaded services file OK.
Server role: ROLE_ACTIVE_DIRECTORY_DC
Press enter to see a dump of your service definitions

[global]
    workgroup = ALFR
    realm = alfr.local
    server role = active directory domain controller
    passdb backend = samba_dsdb
    add user script = /usr/sbin/smbldap-useradd -m '%u' -t 1
    rename user script = /usr/sbin/smbldap-usermod -r '%unew' '%uold'
    delete user script = /usr/sbin/smbldap-userdel '%u'
    add group script = /usr/sbin/smbldap-groupadd -p '%g'
    delete group script = /usr/sbin/smbldap-groupdel '%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'
    add machine script = /usr/sbin/smbldap-useradd -w '%u' -t 1
    domain logons = Yes
    os level = 10
    preferred master = Yes
    domain master = Yes
    dns proxy = No
    wins support = Yes
    ldap admin dn = cn=admin,dc=alfr,dc=local
    ldap group suffix = ou=Groups
    ldap idmap suffix = ou=Idmap
    ldap machine suffix = ou=Computers
    ldap suffix = dc=alfr,dc=local
    ldap ssl = no
    ldap user suffix = ou=Users
    server services = rpc, nbt, wrepl, cldap, ldap, kdc, drepl, winbind, ntp_signd, kcc, dnsupdate, smb
    dcerpc endpoint servers = epmapper, wkssvc, rpcecho, samr, netlogon, lsarpc, spoolss, drsuapi, dssetup, unixinfo, browser, eventlog6, backupkey, dnsserver, winreg, srvsvc
    rpc_server:tcpip = no
    rpc_daemon:spoolssd = embedded
    rpc_server:spoolss = embedded
    rpc_server:winreg = embedded
    rpc_server:ntsvcs = embedded
    rpc_server:eventlog = embedded
    rpc_server:srvsvc = embedded
    rpc_server:svcctl = embedded
    rpc_server:default = external
    idmap config * : backend = tdb
    map archive = No
    map readonly = no
    store dos attributes = Yes
    vfs objects = dfs_samba4, acl_xattr

[profiles]
    path = /srv/samba/profiles
    read only = No
    create mask = 0611
    directory mask = 0700
    profile acls = Yes
    map hidden = Yes
    map system = Yes
    browseable = No
    csc policy = disable

[netlogon]
    path = /usr/local/samba/var/locks/sysvol/alfr.local/scripts
    read only = No

[sysvol]
    path = /usr/local/samba/var/locks/sysvol
    read only = No

[homes]
    comment = Eigener Ordner
    path = /srv/samba/homes/%S
    read only = No
    create mask = 0611
    directory mask = 0711
    browseable = No
    vfs objects = acl_xattr, full_audit
    full_audit:failure = connect opendir disconnect unlink mkdir rmdir open rename
    full_audit:success = connect opendir disconnect unlink mkdir rmdir open rename

Вывод ps aux (отключите неважный материал),

root@testsrv:~# ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root       699  0.0  0.0   7272   608 ?        Ss   08:08   0:00 dhclient3 -e IF_METRIC=100 -pf /var/run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases -1 eth
bind       827  0.0  2.8 502280 58392 ?        Ssl  08:08   0:01 /usr/sbin/named -u bind
dhcpd      833  0.0  0.2  14552  4476 ?        Ss   08:08   0:00 /usr/sbin/dhcpd -f -q -4 -pf /run/dhcp-server/dhcpd.pid -cf /etc/ltsp/dhcpd.conf
openldap  1024  0.0  0.3 722000  6524 ?        Ssl  08:08   0:00 /usr/sbin/slapd -h ldap://127.0.0.1:390/ ldaps://127.0.0.1:637/ ldapi://%2fvar%2frun%2fslapd%2fldapi/??
root      1051  0.0  0.0 693092  1172 ?        Ssl  08:08   0:00 /usr/sbin/nscd
nslcd     1075  0.0  0.0 443600  1376 ?        Ssl  08:08   0:00 /usr/sbin/nslcd
ntp       1279  0.0  0.0  25960  1836 ?        Ss   08:08   0:00 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 107:114
root      1595  0.0  2.2 534364 46152 ?        Ss   09:52   0:00 samba start
root      1597  0.0  1.8 538976 38532 ?        S    09:52   0:00 samba start
root      1598  0.0  1.7 539772 35624 ?        S    09:52   0:00 samba start
root      1599  0.0  1.6 536876 33716 ?        S    09:52   0:00 samba start
root      1600  0.0  1.6 534364 34568 ?        S    09:52   0:00 samba start
root      1601  0.0  1.8 534804 37568 ?        S    09:52   0:00 samba start
root      1602  0.0  1.8 538516 37212 ?        S    09:52   0:00 samba start
root      1603  0.0  1.6 534364 34328 ?        S    09:52   0:00 samba start
root      1604  0.0  1.6 537192 33928 ?        S    09:52   0:00 samba start
root      1605  0.0  1.5 534364 32716 ?        S    09:52   0:00 samba start
root      1606  0.0  2.0 534364 41264 ?        S    09:52   0:00 samba start
root      1607  0.0  1.6 534364 33884 ?        S    09:52   0:00 samba start
root      1608  0.0  1.6 534364 33360 ?        S    09:52   0:00 samba start

/etc/nsswitch.conf

root@testsrv:~# cat /etc/nsswitch.conf 
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

# pre_auth-client-config # passwd:         compat
passwd: files ldap
# pre_auth-client-config # group:          compat
group: files ldap
# pre_auth-client-config # shadow:         compat
shadow: files ldap

hosts:          files dns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

# pre_auth-client-config # netgroup:       nis
netgroup: nis
2
задан 4 April 2014 в 11:36
3 ответа

Есть ли у вас явная необходимость использовать ldap?

Я использую активную директорию samba уже больше года, и единственная проблема, с которой я столкнулся, - это timescew.Вам следует дважды проверить это, особенно когда вы используете виртуализированные машины.

-1
ответ дан 3 December 2019 в 15:11

Я делал сервер LDAP с SAMBA. Проблемы, с которыми я столкнулся с SAMBA и которые могут вас беспокоить, находятся между конфигурациями разных версий SAMBA. Вы уверены, что использовали подходящую конфигурацию для своей версии самбы? Было бы очень полезно, если бы вы скопировали .bash_history, чтобы я мог поискать любые неправильные настройки или даже протестировать его на машине.

-1
ответ дан 3 December 2019 в 15:11

Я не вижу директивы безопасности в вашем файле конфигурации.Я предполагаю, что вам нужен security = ad. В прошлом месяце я пытался сделать то же самое - использовать OpenLDAP в качестве основной базы данных для входа в систему.

Я протестировал несколько подходов:

  1. Samba 4 AD в настоящее время не может доверять (Samba Team будет Скоро опубликуйте Samba 4.2 на момент написания), поэтому вы не можете использовать механизмы доверия.

  2. Samba 4 в AD, насколько мне известно, не может быть основана на OpenLDAP из-за отсутствия схем, необходимых для Active Directory.

  3. Я устал использовать программное обеспечение под названием LSC, которое в основном позволяет синхронизировать пользователей и группы между AD и OpenLDAP. Здесь тоже не повезло. Документация и примеры LSC устарели и несовместимы с текущей версией. Наконец-то мне удалось заставить работать синхронизацию пользователей, но есть несколько ошибок (по крайней мере, в LSC v2.0 я устал), когда вы обновляете пароль в OpenLDAP, LSC не поймает его. Вы должны хранить пароли в виде обычного текста, чтобы он работал.

На данный момент нет контроллера Samba AD с OpenLDAP в качестве бэкэнда. Я планирую использовать классический контроллер домена NT, как только Samba будет поддерживать доверительные отношения, тогда я хочу делегировать доверительные отношения в одном направлении (с samba4 NT DC на Samba4 AD) и использовать его на контроллере домена AD с информацией о пользователе, расположенной в OpenLDAP.

Если кто-то найдет здесь ошибку, я буду более чем рад ее услышать. ; -)

ОБНОВЛЕНИЕ : Согласно информации Франческо Мальвецци в Samba 4.3, доверие теперь поддерживается:

https://www.samba.org/samba/history/samba-4.3.0.html

Улучшенная поддержка доверенных доменов (как AD DC )

Поддержка доверенных доменов / лесов значительно улучшилась.

samba-tool получил подкоманды «domain trust» для управления доверительными отношениями:

create - создать доверительный домен или лес.

delete - Удалить доверие домена.

список - Список доверенных доменов.

пространства имен - Управление пространствами имен доверия лесов.

show - Показать сведения о доверенном домене .

validate - Проверка доверия домена.

Внешние отношения доверия между отдельными доменами работают в обоих направлениях (входящие и исходящий). То же самое относится и к корневым доменам доверия леса. В транзитивная маршрутизация в другой лес полностью функциональна для kerberos, но еще не поддерживается для NTLMSSP.

Хотя многие вещи работают нормально, в настоящее время есть несколько ограничения:

  • Обе стороны доверия должны полностью доверять друг другу!
  • Никакие правила фильтрации SID не применяются!
  • Это означает, что контроллеры домена A могут предоставлять права администратора домена в домене B.
  • Невозможно добавить пользователей / группы доверенного домена в доменные группы.

Пример конфигурации: https://www.samba.org/samba/history/samba-4.3.0.html

Доверительные отношения созданы и могут быть проверены с помощью winbind:

wbinfo -u -> get список локальных пользователей

wbinfo -u --domain = trust.domain.tld -> получить список пользователей доверенного домена (также можно использовать короткий домен)

Его также можно проверить с помощью - local-dc-username и - переключатели local-dc-password :

samba-tool domain trust проверить trust.domain.tld \ --local-dc-password = trustedAdminPass \ --local-dc-username = administrator \ -U administrator at trusted.domain.tld

Использование внутреннего DNS Samba делает пересылку DNS-запросов прозрачной (с помощью нескольких инструментов, которые я собираюсь проверить).

Чтобы иметь возможность подключиться к machine.A.domain.tld, используя пользователя из B.domain.tld вам понадобится специальная группа «Прошедшие проверку» для RDP. авторизованные люди.

Я все еще жду, пока он станет доступен на официальном канале в моем дистрибутиве (debian 8-9).

2
ответ дан 3 December 2019 в 15:11

Теги

Похожие вопросы