Назад | Перейти на главную страницу

nslcd pam_ldap неизвестная проблема в Windows 2019

Надеюсь, кто-нибудь укажет, что я делаю неправильно. Мы работаем на системах CentOS6 / 7 с интеграцией AD уже пару лет. На стороне AD была установлена ​​Windows 2012R2. Около двух недель назад что-то сломалось на стороне AD, и RODC Windows 2012R2, которые мы запускаем, больше не пользуются доверием своего хозяина и, похоже, осиротели. Мы по-прежнему можем выполнять запросы к этой системе, но, скорее всего, это связано с кешированием, и рано или поздно это исчезнет. Итак, мы подняли RODC для Windows 2019. Но проблема в том, что пользователи не могут пройти аутентификацию против них на наших серверах CentOS6 / 7. Кажется, проблема может быть в фильтрах, которые я установил, но дерево схемы выглядит нормально. Итак, у меня есть две системы, с которыми я тестирую. Один, который подключен к старому RODC Windows 2012R2, и другой, который подключен к новому RODC Windows 2019. Когда я бегу

getent passwd

На сервере CentOS, подключенном к старой системе, я получаю правильный набор пользователей, которым разрешено подключаться по SSH к этим системам, у которых установлены атрибуты Unix.

На сервере CentOS, который подключен к новой системе, я получаю только 3 пользователей из списка всех пользователей, которым разрешен SSH для этих систем, для которых установлены атрибуты Unix.

Ниже мои конфиги

nslcd.conf по интеграции CentOS6 / 7 Windows 2012R2

uri ldaps://readonlydomaincontroller_2012R2.foobar.local
ldap_version 3
base dc=foobar,dc=local
binddn ldapuser@foobar.local
bindpw password
scope sub
bind_timelimit 2
timelimit 2
reconnect_sleeptime 1
reconnect_retrytime 5
ssl on
tls_reqcert demand
tls_cacertdir /etc/openldap/cacerts
pagesize 1000
referrals off
idle_timelimit 10

filter passwd (&(objectClass=user)(uidNumber=*)(unixHomeDirectory=*)(|(memberof=CN=Ops,CN=Users,DC=foobar,DC=local)(memberof=CN=Support-Prod-Access,CN=Users,DC=foobar,DC=local)(memberof=CN=Support-Prod-Sudo,CN=Users,DC=foobar,DC=local)(memberof=CN=PS-Prod-Access,CN=Users,DC=foobar,DC=local)(memberof=CN=PS-Prod-Sudo,CN=Users,DC=foobar,DC=local)(memberof=CN=Dev-Prod-Access,CN=Users,DC=foobar,DC=local)))
filter shadow (&(objectClass=user)(uidNumber=*)(unixHomeDirectory=*)(|(memberof=CN=Ops,CN=Users,DC=foobar,DC=local)(memberof=CN=Support-Prod-Access,CN=Users,DC=foobar,DC=local)(memberof=CN=Support-Prod-Sudo,CN=Users,DC=foobar,DC=local)(memberof=CN=PS-Prod-Access,CN=Users,DC=foobar,DC=local)(memberof=CN=PS-Prod-Sudo,CN=Users,DC=foobar,DC=local)(memberof=CN=Dev-Prod-Access,CN=Users,DC=foobar,DC=local)))
filter group  (&(objectClass=group)(|(distinguishedName=CN=Ops,CN=Users,DC=foobar,DC=local)(distinguishedName=CN=Support-Prod-Access,CN=Users,DC=foobar,DC=local)(distinguishedName=CN=Support-Prod-Sudo,CN=Users,DC=foobar,DC=local)(distinguishedName=CN=PS-Prod-Access,CN=Users,DC=foobar,DC=local)(distinguishedName=CN=PS-Prod-Sudo,CN=Users,DC=foobar,DC=local)(distinguishedName=CN=Dev-Prod-Access,CN=Users,DC=foobar,DC=local)))

map    passwd uid              sAMAccountName
map    passwd homeDirectory    unixHomeDirectory
map    passwd gecos            displayName
map    passwd uidNumber        uidNumber
map    passwd gidNumber        gidNumber
map    passwd loginshell       loginShell
map    passwd homeDirectory    unixHomeDirectory
map    shadow uid              sAMAccountName
map    shadow shadowLastChange pwdLastSet
map    group  uniqueMember     member

uid nslcd
gid ldap

pam_ldap.conf по интеграции CentOS6 / 7 Windows 2012R2

 uri ldaps://readonlydomaincontroller_2012R2.foobar.local
ldap_version 3

base dc=foobar,dc=local
binddn ldapuser@foobar.local
bindpw password
scope sub
timelimit 2
bind_timelimit 2
bind_policy soft
nss_reconnect_tries 2
nss_map_objectclass posixAccount   user
nss_map_objectclass shadowAccount  user
nss_map_objectclass posixGroup     group

nss_map_attribute uid              sAMAccountName
nss_map_attribute homeDirectory    unixHomeDirectory
nss_map_attribute gecos            displayName
nss_map_attribute uidNumber        uidNumber
nss_map_attribute gidNumber        gidNumber
nss_map_attribute loginshell       loginShell
nss_map_attribute shadowLastChange pwdLastSet
nss_map_attribute uniqueMember     member

pam_login_attribute sAMAccountName
pam_filter (&(objectclass=User)(|(memberof=CN=Ops,CN=Users,DC=foobar,DC=local)(memberof=CN=Support-Prod-Access,CN=Users,DC=foobar,DC=local)(memberof=CN=PS-Prod-Access,CN=Users,DC=foobar,DC=local)(memberof=CN=Dev-Prod-Access,CN=Users,DC=foobar,DC=local))
)

pam_password ad

ssl on
tls_checkpeer yes
tls_cacertdir /etc/openldap/cacerts

nslcd.conf по интеграции CentOS6 / 7 Windows 2019

uri ldaps://readonlydomaincontroller_2019.foobar.local
ldap_version 3
base dc=foobar,dc=local
binddn ldapuser@foobar.local
bindpw password
scope sub
bind_timelimit 2
timelimit 2
reconnect_sleeptime 1
reconnect_retrytime 5
ssl on
tls_reqcert demand
tls_cacertdir /etc/openldap/cacerts
pagesize 1000
referrals off
idle_timelimit 10


filter passwd (&(objectClass=user))
filter shadow (&(objectClass=user))
filter group  (&(objectClass=group))

map    passwd uid              sAMAccountName
map    passwd homeDirectory    unixHomeDirectory
map    passwd gecos            displayName
map    passwd uidNumber        uidNumber
map    passwd gidNumber        gidNumber
map    passwd loginshell       loginShell
map    passwd homeDirectory    unixHomeDirectory
map    shadow uid              sAMAccountName
map    shadow shadowLastChange pwdLastSet
map    group  uniqueMember     member

uid nslcd
gid ldap

pam_ldap.conf по интеграции CentOS6 / 7 Windows 2019

 uri ldaps://readonlydomaincontroller_2019.foobar.local
ldap_version 3

base dc=foobar,dc=local
binddn ldapuser@foobar.local
bindpw password
scope sub
timelimit 2
bind_timelimit 2
bind_policy soft
nss_reconnect_tries 2
nss_map_objectclass posixAccount   user
nss_map_objectclass shadowAccount  user
nss_map_objectclass posixGroup     group

nss_map_attribute uid              sAMAccountName
nss_map_attribute homeDirectory    unixHomeDirectory
nss_map_attribute gecos            displayName
nss_map_attribute uidNumber        uidNumber
nss_map_attribute gidNumber        gidNumber
nss_map_attribute loginshell       loginShell
nss_map_attribute shadowLastChange pwdLastSet
nss_map_attribute uniqueMember     member

pam_login_attribute sAMAccountName
pam_filter (&(objectclass=User))

pam_password ad

ssl on
tls_checkpeer yes
tls_cacertdir /etc/openldap/cacerts

Фильтры для RODC 2019 были установлены менее строгими, потому что при настройке их на то, что они были для систем 2012R2, они не работают. Они не возвращают никаких учетных записей AD. Если фильтры установлены на минимум, они возвращают только 3 пользователей.

Эти 3 пользователя - единственные, которые при запросе через ldapsearch возвращаются с атрибутами Unix для RODC 2012R2 или 2019. Это также единственные пользователи, которые могут войти в CentOS6 / 7 как в настройке 2012R2, так и в настройке 2019 года.

ldapuser ldapsearch query 2012R2 RODC

# ldapuser, Robots, foo Admins, foobar.local
dn: CN=ldapuser,OU=Robots,OU=foo Admins,DC=foobar,DC=local
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: user
cn: ldapuser
description: Used for LDAP integration with Linux system in Prod.
distinguishedName: CN=ldapuser,OU=Robots,OU=foo Admins,DC=foobar,DC=local
instanceType: 0
whenCreated: 20150929203823.0Z
whenChanged: 20190907192736.0Z
displayName: ldapuser
uSNCreated: 22445
memberOf: CN=Ops-RODC,CN=Users,DC=foobar,DC=local
memberOf: CN=Allowed RODC Password Replication Group,CN=Users,DC=foobar,DC=local
uSNChanged: 61145
name: ldapuser
objectGUID:: eD17aZT/50yAj7E50/Yb8Q==
userAccountControl: 66048
badPwdCount: 3
codePage: 0
countryCode: 0
badPasswordTime: 132123580510560719
pwdLastSet: 132123079922338235
primaryGroupID: 513
objectSid:: AQUAAAAAAAUVAAAAfV+0Y46Qq75ZpfUPkSMAAA==
accountExpires: 9223372036854775807
sAMAccountName: ldapuser
sAMAccountType: 805306368
userPrincipalName: ldapuser@foobar.com
lockoutTime: 132123580512121394
objectCategory: CN=Person,CN=Schema,CN=Configuration,DC=foobar,DC=local
dSCorePropagationData: 20190907054026.0Z
dSCorePropagationData: 20190907053843.0Z
dSCorePropagationData: 20190907053423.0Z
dSCorePropagationData: 20190907053423.0Z
dSCorePropagationData: 16010101000417.0Z
lastLogonTimestamp: 132123013087803886
msDS-RevealedDSAs: CN=rodc,OU=Domain Controllers,DC=foobar,DC=local
msDS-RevealedDSAs: CN=rodc,OU=Domain Controllers,DC=foobar,DC=local
msDS-RevealedDSAs: CN=rodc,OU=Domain Controllers,DC=foobar,DC=local
msDS-RevealedDSAs: CN=rodc,OU=Domain Controllers,DC=foobar,DC=local
msDS-RevealedDSAs: CN=rodc,OU=Domain Controllers,DC=foobar,DC=local
msDS-SupportedEncryptionTypes: 0
uid: ldapuser
msSFU30Name: ldapuser
msSFU30NisDomain: foobar
uidNumber: 10000
gidNumber: 10001
unixHomeDirectory: /home/ldapuser
loginShell: /bin/bash

ldapuser ** ldapsearch query 2019 RODC

# LDAP User, Users, foobar.local
dn: CN=LDAP User,CN=Users,DC=foobar,DC=local
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: user
cn: LDAP User
sn: User
description: Used for LDAP integration with Linux system in Prod.
givenName: LDAP
distinguishedName: CN=LDAP User,CN=Users,DC=foobar,DC=local
instanceType: 0
whenCreated: 20150929203823.0Z
whenChanged: 20190906055533.0Z
displayName: LDAP User
uSNCreated: 262151
memberOf: CN=Ops-RODC,CN=Users,DC=foobar,DC=local
memberOf: CN=Allowed RODC Password Replication Group,CN=Users,DC=foobar,DC=local
uSNChanged: 119472338
name: LDAP User
objectGUID:: eD17aZT/50yAj7E50/Yb8Q==
userAccountControl: 66048
badPwdCount: 0
codePage: 0
countryCode: 0
badPasswordTime: 131808946325532539
lastLogon: 131808946959912842
pwdLastSet: 132109884793331191
primaryGroupID: 513
objectSid:: AQUAAAAAAAUVAAAAfV+0Y46Qq75ZpfUPkSMAAA==
accountExpires: 9223372036854775807
logonCount: 4
sAMAccountName: ldapuser
sAMAccountType: 805306368
userPrincipalName: ldapuser@foobar.com
lockoutTime: 0
objectCategory: CN=Person,CN=Schema,CN=Configuration,DC=foobar,DC=l
ocal
dSCorePropagationData: 20190515201857.0Z
dSCorePropagationData: 20190513232309.0Z
dSCorePropagationData: 20190513231758.0Z
dSCorePropagationData: 20190219212220.0Z
dSCorePropagationData: 16010714223649.0Z
lastLogonTimestamp: 132122229334301805
unixUserPassword: blah
uid: ldapuser
msSFU30Name: ldapuser
msSFU30NisDomain: foobar
uidNumber: 10000
gidNumber: 10001
unixHomeDirectory: /home/ldapuser
loginShell: /bin/bash

Я видел предложения по использованию SSSD, Centrify и других инструментов для этой работы. Кажется, я смогу заставить это работать с nslcd и pam_ldap, но что-то в моей конфигурации не позволяет мне это сделать.