ldap 사용자를 사용하도록 Solaris를 구성했습니다. LDAP 서버는 Samba4 DC이고 클라이언트는 Solaris 11.4입니다.
이 명령으로 서버에 "가입"했습니다.
ldapclient manual \
-a credentialLevel=proxy \
-a authenticationMethod=sasl/gssapi \
-a proxyDN=cn=proxyldap,cn=Users,dc=mydom,dc=priv \
-a proxyPassword=******* \
-a defaultSearchBase=dc=mydom,dc=priv \
-a debugLevel=6 \
-a domainName=mydom.priv \
-a "defaultServerList=10.3.0.4" \
-a attributeMap=group:userpassword=unixUserPassword\
-a attributeMap=group:gidnumber=gidNumber \
-a attributeMap=passwd:cn=cn \
-a attributeMap=passwd:gidnumber=gidNumber \
-a attributeMap=passwd:uidnumber=uidNumber \
-a attributeMap=passwd:homedirectory=homeDirectory \
-a attributeMap=passwd:loginshell=loginShell \
-a attributeMap=shadow:userpassword=unixUserPassword \
-a objectClassMap=group:posixGroup=group \
-a objectClassMap=passwd:posixAccount=user \
-a serviceSearchDescriptor=passwd:dc=mydom,dc=priv?sub \
-a serviceSearchDescriptor=group:dc=mydom,dc=priv?sub
구성이 OK로 돌아왔습니다.
Finger가 작동하여 Solaris에서 사용자 "pino"를 검색합니다.
finger pino
Login name: pino In real life: pino
Directory: /home/pino Shell: /bin/bash
Never logged in.
No unread mail
No Plan.
ldaplist가 오류를 반환합니다!
ldaplist passwd
ldaplist: libsldap.so.1 internal error
ldaplist -a sasl/GSSAPI passwd
ldaplist: (standalone auth error)
Configuration syntax error: Unable to set parameter from a client in __ns_ldap_setParam()
getent passwd는 작동하지만 50%만 작동합니다.
getent passwd |grep pino
pino:x:3000014:100:pino:/home/pino:/bin/bash
getent passwd pino
아이디가 작동하지 않습니다
id pino
id: invalid user name: "pino"
내가 무엇을 놓치고 있나요?
/etc/nsswitch.conf 문제 없습니다
cp /etc/nsswitch.ldap /etc/nsswitch.conf
답변1
솔루션/해결 방법을 찾았지만 50%만 완료되었습니다.
이 구성을 사용하면(그리고 암호화되지 않은 gssapi 강력한 인증을 허용하는 Samba) 모든 명령이 제대로 작동합니다(ldaplist ok, id ok, su ok).
ldapclient -v manual \
-a credentialLevel=proxy \
-a authenticationMethod=simple \
-a proxyDN=cn=proxyldap,cn=Users,dc=mydom,dc=priv \
-a proxyPassword=******* \
-a defaultSearchBase=dc=mydom,dc=priv \
-a debugLevel=6 \
-a domainName=mydom.priv \
-a "defaultServerList=10.3.0.4" \
-a attributeMap=group:userpassword=unixUserPassword\
-a attributeMap=group:gidnumber=gidNumber \
-a attributeMap=passwd:cn=cn \
-a attributeMap=passwd:gidnumber=gidNumber \
-a attributeMap=passwd:uidnumber=uidNumber \
-a attributeMap=passwd:homedirectory=HomeDirectory \
-a attributeMap=passwd:unixhomedirectory=unixHomeDirectory \
-a attributeMap=passwd:loginshell=loginShell \
-a attributeMap=passwd:gecos=gecos \
-a attributeMap=shadow:userpassword=unixUserPassword \
-a objectClassMap=group:posixGroup=group \
-a objectClassMap=passwd:posixAccount=user \
-a objectClassMap=shadow:shadowAccount=user \
-a serviceSearchDescriptor=passwd:dc=mydom,dc=priv?sub \
-a serviceSearchDescriptor=group:dc=mydom,dc=priv?sub
하지만 Samba에서 강력한 인증을 활성화하고 Solaris에서 gssapi 인증을 활성화하려면..
ldapclient -v manual \
-a credentialLevel=proxy \
-a authenticationMethod=sasl/gssapi \
-a proxyDN=cn=proxyldap,cn=Users,dc=mydom,dc=priv \
-a proxyPassword=******* \
-a defaultSearchBase=dc=mydom,dc=priv \
-a debugLevel=6 \
-a domainName=mydom.priv \
-a "defaultServerList=10.3.0.4" \
-a attributeMap=group:userpassword=unixUserPassword\
-a attributeMap=group:gidnumber=gidNumber \
-a attributeMap=passwd:cn=cn \
-a attributeMap=passwd:gidnumber=gidNumber \
-a attributeMap=passwd:uidnumber=uidNumber \
-a attributeMap=passwd:homedirectory=HomeDirectory \
-a attributeMap=passwd:unixhomedirectory=unixHomeDirectory \
-a attributeMap=passwd:loginshell=loginShell \
-a attributeMap=passwd:gecos=gecos \
-a attributeMap=shadow:userpassword=unixUserPassword \
-a objectClassMap=group:posixGroup=group \
-a objectClassMap=passwd:posixAccount=user \
-a objectClassMap=shadow:shadowAccount=user \
-a serviceSearchDescriptor=passwd:dc=mydom,dc=priv?sub \
-a serviceSearchDescriptor=group:dc=mydom,dc=priv?sub
모든 반환 오류. 좋은 해결책은 starttls를 사용하는 것이지만 저는 sasl을 사용하고 싶습니다. Proxyldap 사용자를 위해 Samba 서버에 주체를 만들었습니다.
#!/bin/sh
NAME=proxyldap
SERV=ldap
HOST=solaris11
DOMAIN=mydom.priv
samba-tool user delete $NAME
samba-tool user create $NAME 22unix33AA@@@@
net ads enctypes set $NAME 24
samba-tool spn add $SERV/$DOMAIN $NAME
samba-tool spn add $SERV/$HOST.$DOMAIN $NAME
samba-tool domain exportkeytab $HOST.keytab --principal=$SERV/$DOMAIN
samba-tool domain exportkeytab $HOST.keytab --principal=$SERV/$HOST.$DOMAIN
솔라리스의 krb5.keytab에 탭을 복사했습니다.
(echo rkt solaris1.keytab; echo wkt /etc/krb5/krb5.keytab )|ktutil
644 (echo rkt solaris2.keytab; echo wkt /etc/krb5/krb5.keytab )|ktutil
그러나 아무것도 작동하지 않습니다. 분명하거나 아무것도 아닙니다. 내가 무엇을 놓치고 있습니까? ATM 저는 이 슬픈 해결책을 받아들입니다. 더 나은 해결책을 아는 사람이 있다면 제안해 주시면 그 대답을 최종 해결책으로 받아들이겠습니다.