Thomas Martin I/O

Programming, Sysadmin, Open Source

NetAPP FAS2020, Samba 3.5, et mot de passe machine

2011-02-21 SYSADMIN NETAPP SAMBA


Il y a quelques semaines de cela, j'ai rencontré quelques difficultés pour intégrer un filer NetAPP FAS2020 sur un contrôleur de domaine Samba. La solution au problème ayant été quelques peu hasardeuse, je la partage ici dans l'espoir que cela puisse épargner quelques heures à certains...

En effet, l'intégration d'un client Windows sur un contrôleur de domaine Samba nécessite généralement la création préalable d'un compte machine. Celui-ci est généralement créé sans définir de mot de passe (champ sambaNTPassword lorsqu'on utilise un backend LDAP), et lors de l'intégration au domaine, le client Windows se charge de le définir.

Or, avec ce filer NetAPP, voici les logs résultant :

[2010/12/16 15:16:58.713732,  2] passdb/pdb_ldap.c:572(init_sam_from_ldap) init_sam_from_ldap: Entry found for user: NETAPP$
[2010/12/16 15:16:58.716788,  0] rpc_server/srv_netlog_nt.c:526(get_md4pw) get_md4pw: Workstation NETAPP$: account does not have a password

Si le compte machine est créé avec un mot de passe aléatoire :

[2010/12/16 15:24:59.641552,  2] ../libcli/auth/credentials.c:307(netlogon_creds_server_check_internal) credentials check failed
[2010/12/16 15:24:59.641572,  0] rpc_server/srv_netlog_nt.c:714(_netr_ServerAuthenticate3) _netr_ServerAuthenticate2: netlogon_creds_server_check failed. Rejecting auth request from client NETAPP machine account NETAPP$

Si le compte machine n'est pas créé :

[2010/12/16 15:16:33.181347,  0] rpc_server/srv_netlog_nt.c:475(get_md4pw) get_md4pw: Workstation NETAPP$: no account in domain
[2010/12/16 15:16:33.181388,  0] rpc_server/srv_netlog_nt.c:692(_netr_ServerAuthenticate3) _netr_ServerAuthenticate2: failed to get machine password for account NETAPP$: NT_STATUS_ACCESS_DENIED

Finalement, au détour d'un forum, j'ai trouvé la solution suivante : le mot de passe doit être initialisé avec une valeur identique au nom de la machine, sans le $ final, et sans majuscule. Dans cet exemple, le mot de passe sera donc netapp. On constate alors :

[2010/12/16 15:28:38.139866,  3] rpc_server/srv_netlog_nt.c:947(_netr_ServerPasswordSet) _netr_ServerPasswordSet: Server Password Set by remote machine:[NETAPP] on account [NETAPP]