Autenticando a caixa do Solaris no Open Directory

0

Eu passei alguns dias procurando por guias para isso. Os sites que encontrei foram tocados pela última vez em 2004 e não deram respostas.

Eu tenho um servidor Open Directory em execução em uma caixa do Mac OSX 10.8.

Eu quero que minhas caixas solaris autentiquem usuários contra esse servidor OD.

O que eu descobri até agora é que o Solaris vem com um script chamado "ldapclient". Esse script é executado com várias opções para configurar a conexão. No entanto, sites diferentes que visitei sugerem que outros plugins são necessários (gecos, Kerberos, etc.). Não encontrei nenhuma documentação completa sobre esse problema e estou imaginando se é possível autenticar o Solaris contra o OD.

Alguém já tentou isso? Alguma tentativa bem sucedida?

o que eu tentei é executar

ldapclient -v manual \
-a credentialLevel=anonymous \
-a defaultSearchBase=dc=<server-hostname>,dc=example,dc=com \
-a serviceSearchDescriptor=passwd:cn=users,dc=<server-hostname>,dc=example,dc=com \
-a attributeMap=passwd:gecos=cn \
-a serviceSearchDescriptor=group:cn=groups,dc=<server-hostname>,dc=example,dc=com \
-a serviceAuthenticationMethod=pam_ldap:simple <server-hostname>

O sinalizador -v é para verbosidade e, do que eu sei, a máquina configura várias opções enquanto a rede está desligada e, quando tenta iniciar a rede novamente, ela falha e reverte.

sem a linha com gecos, recebo

Parsing credentialLevel=anonymous
Parsing defaultSearchBase=dc=<server-hostname>,dc=example,dc=com
Parsing serviceSearchDescriptor=passwd:cn=users,dc=<server-hostname>,dc=example,dc=com
Arguments parsed:
        defaultSearchBase: dc=<server-hostname>,dc=example,dc=com
        credentialLevel: anonymous
        serviceSearchDescriptor: 
                arg[0]: passwd:cn=users,dc=<server-hostname>,dc=example,dc=com
Handling manual option
Manual failed: Missing required defaultServerList or preferredServerList attribute.

com a linha, como mostrado acima, recebo

Parsing credentialLevel=anonymous
Parsing defaultSearchBase=dc=<server-hostname>,dc=example,dc=com
Parsing serviceSearchDescriptor=passwd:cn=users,dc=<server-hostname>,dc=example,dc=com
Parsing attributeMap=passwd:gecos=cn
Parsing serviceSearchDescriptor=group:cn=groups,dc=<server-hostname>,dc=example,dc=com
Parsing serviceAuthenticationMethod=pam_ldap:simple
Arguments parsed:
        serviceAuthenticationMethod: 
                arg[0]: pam_ldap:simple
        defaultSearchBase: dc=<server-hostname>,dc=example,dc=com
        credentialLevel: anonymous
        attributeMap: 
                arg[0]: passwd:gecos=cn
        serviceSearchDescriptor: 
                arg[0]: passwd:cn=users,dc=<server-hostname>,dc=example,dc=com
                arg[1]: group:cn=groups,dc=<server-hostname>,dc=example,dc=com
        defaultServerList: <server-hostname>
Handling manual option
Proxy DN: NULL
Proxy password: NULL
Credential level: 0
Authentication method: 0
Authentication method: 0
No proxyDN/proxyPassword required
Shadow Update is not enabled, no adminDN/adminPassword is required.
About to modify this machines configuration by writing the files
Stopping network services
sendmail not running
nscd not running
autofs not running
ldap not running
nisd not running
nis(yp) not running
file_backup: stat(/etc/nsswitch.conf)=0
file_backup: (/etc/nsswitch.conf -> /var/ldap/restore/nsswitch.conf)
file_backup: stat(/etc/defaultdomain)=0
file_backup: (/etc/defaultdomain -> /var/ldap/restore/defaultdomain)
file_backup: stat(/var/nis/NIS_COLD_START)=-1
file_backup: No /var/nis/NIS_COLD_START file.
file_backup: nis domain is "<server-hostname>.example.com"
file_backup: stat(/var/yp/binding/<server-hostname>.example.com)=-1
file_backup: No /var/yp/binding/<server-hostname>.example.com directory.
file_backup: stat(/var/ldap/ldap_client_file)=0
file_backup: (/var/ldap/ldap_client_file -> /var/ldap/restore/ldap_client_file)
file_backup: (/var/ldap/ldap_client_cred -> /var/ldap/restore/ldap_client_cred)
Starting network services
start: /usr/bin/domainname <server-hostname>.example.com... success
start: sleep 100000 microseconds
start: sleep 200000 microseconds
start: sleep 400000 microseconds
start: sleep 800000 microseconds
start: sleep 1600000 microseconds
start: sleep 3200000 microseconds
start: sleep 6400000 microseconds
start: sleep 12800000 microseconds
start: sleep 25600000 microseconds
start: sleep 51200000 microseconds
start: sleep 17700000 microseconds
start: network/ldap/client:default... timed out
start: network/ldap/client:default... offline to disable
stop: sleep 100000 microseconds
stop: sleep 200000 microseconds
stop: sleep 400000 microseconds
stop: sleep 800000 microseconds
stop: sleep 1600000 microseconds
stop: sleep 3200000 microseconds
stop: sleep 6400000 microseconds
stop: sleep 12800000 microseconds
stop: sleep 25600000 microseconds
stop: sleep 8900000 microseconds
stop: network/ldap/client:default... timed out
restart: sleep 100000 microseconds
restart: milestone/name-services:default... success
Error resetting system.
Recovering old system settings.
Stopping network services
sendmail not running
nscd not running
autofs not running
Stopping ldap
stop: sleep 100000 microseconds
stop: sleep 200000 microseconds
stop: sleep 400000 microseconds
stop: sleep 800000 microseconds
stop: sleep 1600000 microseconds
stop: sleep 3200000 microseconds
stop: sleep 6400000 microseconds
stop: sleep 12800000 microseconds
stop: sleep 25600000 microseconds
stop: sleep 8900000 microseconds
stop: network/ldap/client:default... timed out
Stopping ldap failed with (7)
Error (1) while stopping services during reset
recover: stat(/var/ldap/restore/defaultdomain)=0
recover: open(/var/ldap/restore/defaultdomain)
recover: read(/var/ldap/restore/defaultdomain)
recover: old domainname "<server-hostname>.example.com"
recover: stat(/var/ldap/restore/ldap_client_file)=0
recover: file_move(/var/ldap/restore/ldap_client_file, /var/ldap/ldap_client_file)=0
recover: stat(/var/ldap/restore/ldap_client_cred)=0
recover: file_move(/var/ldap/restore/ldap_client_cred, /var/ldap/ldap_client_cred)=0
recover: stat(/var/ldap/restore/NIS_COLD_START)=-1
recover: stat(/var/ldap/restore/<server-hostname>.example.com)=-1
recover: stat(/var/ldap/restore/nsswitch.conf)=0
recover: file_move(/var/ldap/restore/nsswitch.conf, /etc/nsswitch.conf)=0
recover: stat(/var/ldap/restore/defaultdomain)=0
recover: file_move(/var/ldap/restore/defaultdomain, /etc/defaultdomain)=0
Starting network services
start: /usr/bin/domainname <server-hostname>.example.com... success
restart: sleep 100000 microseconds
restart: milestone/name-services:default... success

Substitui o domínio real por .example.com O servidor está sem erros, pois todas as outras plataformas estão autenticando bem.

A saída não é consistente, pois é diferente a cada vez que o serviço falha, mas depois de uma reinicialização, esta é sempre a saída que estou recebendo

    
por Eldamir 06.11.2012 / 08:42

1 resposta

1

Certo, eu não posso dar nenhum insight sobre a mecânica de tudo isso, mas parece que resolvi o problema.

Tudo o que precisava ser feito é que, em vez do nome do host do servidor no final, ele deveria ser o endereço IP, como o seguinte

ldapclient -v manual \
-a credentialLevel=anonymous \
-a defaultSearchBase=dc=<server-hostname>,dc=example,dc=com \
-a serviceSearchDescriptor=passwd:cn=users,dc=<server-hostname>,dc=example,dc=com \
-a attributeMap=passwd:gecos=cn \
-a serviceSearchDescriptor=group:cn=groups,dc=<server-hostname>,dc=example,dc=com \
-a serviceAuthenticationMethod=pam_ldap:simple xxx.xxx.xxx.xxx

Agora funciona:)

    
por 08.11.2012 / 10:34

Tags