Последние сообщения

Страницы: [1] 2 3 ... 10
1
Конфигурация через cn=config / Re: LDAPS multimaster replication
« Последний ответ от egor 27 Январь 2020, 22:58:37 »
Здравствуйте! Вы пытаетесь организовать репликацию конфигурационного каталога cn=config, причём с механизмом аутентификации SASL EXTERNAL по клиентскому сертификату и ключу.

Для начала нужно проверить просто выполнение поисковых запросов к БД cn=config с такими параметрами аутентификации (и вообще настройками) на каждом их серверов, типа такого:

ldapsearch -H ldaps://infra1.domain.com -Y EXTERNAL -b cn=config
Что точно не так -- указание одного и того же файла в tls_cert и tls_key. Это как раз клиентские сертификат и ключ соответственно, в одном файле они находиться не могут.

В общем, пока этот поисковый запрос не вернёт результатов, репликация не заработает.

Егор

2
Конфигурация через cn=config / LDAPS multimaster replication
« Последний ответ от beren 27 Январь 2020, 15:13:07 »
Всем привет.

Планирую сделать multimaster replication по LDAPS

1) На каждом сервере
dn: cn=module{0},cn=config
changetype: modify
add: olcModuleLoad
olcModuleLoad: syncprov

2) На server 1

dn: cn=config
changeType: modify
add: olcServerID
olcServerID: 1

3) На server 2


dn: cn=config
changeType: modify
add: olcServerID
olcServerID: 2

4) На  server 3

dn: cn=config
changeType: modify
add: olcServerID
olcServerID: 3

4) On each server
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: 5fX?BLR2

5) On each server
 dn: cn=config
changetype: modify
replace: olcServerID
olcServerID: 1 ldaps://infa1.domain.com
olcServerID: 2 ldaps://infra2.domain.com
olcServerID: 3 ldaps://infra3.domain.com

6) На каждом сервере
dn: olcOverlay=syncprov,olcDatabase={0}config,cn=config
changetype: add
objectClass: olcOverlayConfig
objectClass: olcSyncProvConfig
olcOverlay: syncprov

7) На каждом сервере
dn: olcDatabase={0}config,cn=config
changetype: modify
replace: olcSyncRepl
olcSyncRepl: rid=001 provider=ldaps://infra1.domain.com binddn="cn=admin,cn=config" bindmethod=sasl
  saslmech=EXTERNAL
  starttls=no
  tls_cert="/etc/ldap/sasl2/cert.ru.crt"
  tls_key="/etc/ldap/sasl2/cert.ru.crt"
  tls_cacert="/etc/ldap/sasl2/comodo.crt"
  tls_reqcert=allow
  credentials=5fX?BLR2 searchbase="cn=config" type=refreshAndPersist
  retry="5 5 300 5" timeout=1
olcSyncRepl: rid=002 provider=ldaps://infra2.domain.comn binddn="cn=admin,cn=config" bindmethod=sasl
  saslmech=EXTERNAL
  starttls=no
  tls_cert="/etc/ldap/sasl2/cert.ru.crt"
  tls_key="/etc/ldap/sasl2/cert.ru.crt"
  tls_cacert="/etc/ldap/sasl2/comodo.crt"
  tls_reqcert=allow
  credentials=5fX?BLR2 searchbase="cn=config" type=refreshAndPersist
  retry="5 5 300 5" timeout=1
olcSyncRepl: rid=003 provider=ldaps://infra3.domain.com binddn="cn=admin,cn=config" bindmethod=sasl
  saslmech=EXTERNAL
  starttls=no
  tls_cert="/etc/ldap/sasl2/cert.ru.crt"
  tls_key="/etc/ldap/sasl2/cert.ru.crt"
  tls_cacert="/etc/ldap/sasl2/comodo.crt"
  tls_reqcert=allow
  credentials=5fX?BLR2 searchbase="cn=config" type=refreshAndPersist
  retry="5 5 300 5" timeout=1
-
add: olcMirrorMode
olcMirrorMode: TRUE


Правильно ли это ?  :)
3
Честно говоря нет, я и сам далек от powershell, закончил на cmd =)
mv/rm - привычные для меня unix команды, поэтому использовал их. (да и оно работает на 2016)
Но спасибо за наводку, посмотрю, отпишусь сюда, если найду.
4
Спасибо, интересно!

Я далёк от PowerShell, поэтому дилетантский вопрос: Вы не пробовали найти командлеты-аналоги для setspn и ktpass? Ну и уж наверняка можно найти замену для dsadd и rm/mv .

Егор
5
Небольшой скрипт для автоматизации.

#https://pro-ldap.ru/art/levintsa/20160420-ktpass/

$pass = -join ((65..90) + (97..122) | Get-Random -Count 12 | % {[char]$_})
$pass

$domain = "TEST.LOCAL"
$domainl = $domain.ToLower()
$lhostname = "www"
$ip = "192.168.1.3"
$fqdn = $lhostname + "." + $domain.ToLower()
$dc1, $dc = $domain.ToLower().Split(".")
$dc1u = $dc1.ToUpper()


#adding object "Computer" to ad Computers
dsadd computer "CN=$lhostname,CN=Computers,DC=$dc1,DC=$dc"

#setting two default spn
setspn -A HTTP/$domainl@$domain $lhostname
setspn -A HTTP/$fqdn@$domain $lhostname
setspn -A HTTP/$lhostname@$domain $lhostname

#setting password for computer with name lhostname and generating tmp keytab
ktpass.exe /princ HTTP/$domainl@$domain /mapuser $dc1u\$lhostname$ /ptype KRB5_NT_SRV_HST /pass "$pass" /out krb5.tmp.keytab +answer

#taking current kvno
$kvno = Get-ADComputer $lhostname -property msDS-KeyVersionNumber | select -Expand msDS-KeyVersionNumber

#adding second spn to new keytab
ktpass.exe /princ HTTP/$lhostname@$domain /mapuser $dc1u\$lhostname$ /ptype KRB5_NT_SRV_HST /pass "$pass" -setpass /kvno $kvno /in krb5.tmp.keytab /out krb5.tmp.keytab -setupn
ktpass.exe /princ HTTP/$fqdn@$domain /mapuser $dc1u\$lhostname$ /ptype KRB5_NT_SRV_HST /pass "$pass" -setpass /kvno $kvno /in krb5.tmp.keytab /out krb5.keytab -setupn

#cleaning
rm krb5.tmp.keytab
mv .\krb5.keytab .\Desktop

#adding dns records
Add-DnsServerResourceRecordA -Name $lhostname -ZoneName $domainl -AllowUpdateAny -IPv4Address $ip -CreatePtr
6
Работа с LDAP-клиентами / Re: Extended Operation(1.3.6.1.4.1.4203.1.11.1) not supported
« Последний ответ от ZenMaster 20 Октябрь 2019, 15:09:52 »
Да, Егор
Покапался в исходниках samba

кроме start_tls - она ничего не поддерживает
https://github.com/samba-team/samba/blob/0afd655e80262ea8505a2e6d0dd9cc453fbdfd8c/source4/ldap_server/ldap_extended.c#L154
ниже в ldapsrv_ExtendedRequest идет reject


а PAM или SSSD используют протокол openldap
так что можно делать тока черех samba-tool
7
Работа с LDAP-клиентами / Re: Extended Operation(1.3.6.1.4.1.4203.1.11.1) not supported
« Последний ответ от egor 18 Октябрь 2019, 02:28:34 »
Здравствуйте! AD никогда не поддерживал расширенную операцию LDAP Password Modify (RFC3062, тот самй OID 1.3.6.1.4.1.4203.1.11.1), samba4 также её не поддерживает. Nslcd, скорее всего, умеет менять пароли только с помощью этой операции.

По идее, sssd умеет при привязке к AD менять там пароли пользователей, поищите в интернете на предмет параметра chpass_provider=ad в sssd.conf, так что и с samba4 тоже должно работать. Но нужно будет менять nslcd на sssd.

У меня сейчас нет стенда с samba4, так что придётся экспериментировать самому.

Егор
8
Работа с LDAP-клиентами / Extended Operation(1.3.6.1.4.1.4203.1.11.1) not supported
« Последний ответ от ZenMaster 17 Октябрь 2019, 12:03:54 »
Доброго дня
samba 4.9.3
+laptop с конфигурированным PAM-LDAP
для нужного пользователя делаю на ldap expired password (shadowLastChange=0)
на laptop делаю коннект под этим пользоватлем
pam_ldap.so - нормалтно все понимает
но потом вызывает ldap_passwd_s из openldap,
которая генерит extended operation 1.3.6.1.4.1.4203.1.11.1 для samba-ы

а вот сервер = отвечает
nslcd: [3ab105] <pwmod="testuser5"> ldap_passwd_s() with old password failed: Protocol error: Extended Operation(1.3.6.1.4.1.4203.1.11.1) not supported
ну ответ то понятный - хотя по коду samba смотрел - нет там таких резких ограничений

все под ssl

плюс smb.conf - что уже и не писал - все равно отказ
        pam password change = yes
   client plaintext auth = yes
   client lanman auth = yes      

Может есть все же решение?
9
Простите, не совсем понятно, Вы пробовали предлагаемые мной варианты? Получили то, что хотели?

Егор
10
Добрый день!
Попробовал следующий фильтр:
access to dn.children="OU=Office,OU=Company,DC=example,DC=com"
    filter="(&(objectClass=organizationalPerson)(!(objectClass=computer)))"
    attrs=entry,sAMAccountName,sn,givenName,mail
    by users read
    by * none

access to
    filter=(objectClass=organizationalUnit)
    by users read
    by * none
К сожалению данный фильтр прячет не только компьютеры, но и пользователей - т.е. видно только пустые OU.

Спасибо за Вашу помощь.
Страницы: [1] 2 3 ... 10