Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Synchroniser login/password sur serveur Windows Active Directory ?

14 réponses
Avatar
ctobini
Bonjour,

Je suis dans une entreprise essentiellement sous Windows, les clients
Windows =E9tant g=E9r=E9s par Active Directory pour les login/password. Les
utilisateurs, =E0 p=E9riode fixe, doivent changer leur mot de passe.

Je suis sous Linux (Ubuntu 7.04) et je souhaite synchroniser si c'est
possible mon compte (login/password) avec le mot de passe que je
poss=E8de sur le r=E9seau d'entreprise Windows.

Par ailleurs, je suis en train de travailler sur une base Postgresql
et je souhaite faire la m=EAme chose pour ladite base. C'est =E0 dire que
je voudrais que le mot de passe des utilisateurs Postgresql soit
synchronis=E9 avec les mots de passe Active Directory.

Merci si vous avez une indication,

C=2E Tobini

10 réponses

1 2
Avatar
fabrice
Hello,

Je n'ai pas pratiqué une telle intégration, mais peut etre peux tu jeter un
regard sur cet article. Peut être y trouveras tu quelques informations.
http://www.windowsnetworking.com/articles_tutorials/Authenticating-Linux-Active-Directory.html



bye

"ctobini" a écrit dans le message de news:

Bonjour,

Je suis dans une entreprise essentiellement sous Windows, les clients
Windows étant gérés par Active Directory pour les login/password. Les
utilisateurs, à période fixe, doivent changer leur mot de passe.

Je suis sous Linux (Ubuntu 7.04) et je souhaite synchroniser si c'est
possible mon compte (login/password) avec le mot de passe que je
possède sur le réseau d'entreprise Windows.

Par ailleurs, je suis en train de travailler sur une base Postgresql
et je souhaite faire la même chose pour ladite base. C'est à dire que
je voudrais que le mot de passe des utilisateurs Postgresql soit
synchronisé avec les mots de passe Active Directory.

Merci si vous avez une indication,

C. Tobini
Avatar
Nicolas Michel
ctobini wrote:

Je suis sous Linux (Ubuntu 7.04) et je souhaite synchroniser si c'est
possible mon compte (login/password) avec le mot de passe que je
possède sur le réseau d'entreprise Windows.

Il y a diverses méthodes.

La méthode la plus facile, c'est de configurer kerberos puis d'utiliser
winbind comme le décrit l'article sité plus haut.

Une autre méthode, plus complexe, est d'utiliser les fonctions ldap+krb
Soit en mettant ton linux en tant que client ldap, soit éventuellement
en pompant la base ldap de l'AD avec un ldif sur un serveur ldap local.
Note que pour que ton linux puisse être client ldap d'un AD, il faut que
l'AD contienne les info nécessaire à linux, UID, GID, shell, ...
Ce qui n'est pas le cas de base mais qui se fait par exemple en
installant les services pour unix (sfu) dans l'AD.

Une 3ème méthode, très simple mais qui nécessite que tous les clients et
tous les serveurs fassent pareil, c'est d'utiliser Vintella, payant mais
pas cher.

Par ailleurs, je suis en train de travailler sur une base Postgresql
et je souhaite faire la même chose pour ladite base. C'est à dire que
je voudrais que le mot de passe des utilisateurs Postgresql soit
synchronisé avec les mots de passe Active Directory.


Ici, un connecteur ldap devrait faire l'affaire. Ou peut-être même un
connecteur POP. On a ça ici, mais ça fait des lustres que j'y ai pas
jetté un oeil, donc je ne sais plus trop les détails.
Il se peut même que ta db puisse utiliser winbind via un fichier pam
bien torché.

--
Nicolas Michel

Avatar
ctobini
Bonjour à tous et merci de vos réponses,

Je tente donc dans un premier temps la coordination Linux/Serveur
Win2003 avec Samba/Winbind :

Le kinit se passe parfaitement, j'obtiens mon ticket, je peux changer
mon mot de passe sur le serveur Win2003 avec kpasswd.

Par contre là ou le bât blesse :

:~$ sudo net join -U tobini
tobini's password: xxxxxx
Failed to set password for machine account (NT_STATUS_ACCESS_DENIED)
Failed to join domain!
ADS join did not work, falling back to RPC...
Unable to find a suitable server
Unable to find a suitable server
:~$

Je me suis appuyé sur le tuto Ubuntu, je pense que le paramètres sont
corrects.

Auriez-vous un retour sur ce genre d'erreur ?

En vous remerciant,

C. Tobini

On 23 mai, 12:34, Nicolas Michel wrote:
ctobini wrote:

Je suis sous Linux (Ubuntu 7.04) et je souhaite synchroniser si c'est
possible mon compte (login/password) avec le mot de passe que je
possède sur le réseau d'entreprise Windows.


Il y a diverses méthodes.
La méthode la plus facile, c'est de configurer kerberos puis d'utiliser
winbind comme le décrit l'article sité plus haut.

Une autre méthode, plus complexe, est d'utiliser les fonctions ldap+krb
Soit en mettant ton linux en tant que client ldap, soit éventuellement
en pompant la base ldap de l'AD avec un ldif sur un serveur ldap local.
Note que pour que ton linux puisse être client ldap d'un AD, il faut que
l'AD contienne les info nécessaire à linux, UID, GID, shell, ...
Ce qui n'est pas le cas de base mais qui se fait par exemple en
installant les services pour unix (sfu) dans l'AD.

Une 3ème méthode, très simple mais qui nécessite que tous les cli ents et
tous les serveurs fassent pareil, c'est d'utiliser Vintella, payant mais
pas cher.

Par ailleurs, je suis en train de travailler sur une base Postgresql
et je souhaite faire la même chose pour ladite base. C'est à dire q ue
je voudrais que le mot de passe des utilisateurs Postgresql soit
synchronisé avec les mots de passe Active Directory.


Ici, un connecteur ldap devrait faire l'affaire. Ou peut-être même un
connecteur POP. On a ça ici, mais ça fait des lustres que j'y ai pas
jetté un oeil, donc je ne sais plus trop les détails.
Il se peut même que ta db puisse utiliser winbind via un fichier pam
bien torché.

--
Nicolas Michel



Avatar
Nicolas.MICHEL
ctobini wrote:

Par contre là ou le bât blesse :

:~$ sudo net join -U tobini
tobini's password: xxxxxx
Failed to set password for machine account (NT_STATUS_ACCESS_DENIED)
Failed to join domain!
ADS join did not work, falling back to RPC...
Unable to find a suitable server
Unable to find a suitable server
:~$

Je me suis appuyé sur le tuto Ubuntu, je pense que le paramètres sont
corrects.


J'avais suivi cette méthode sans problèmes, c'était même très clair :

<http://doc.ubuntu-fr.org/tutoriel/comment_ajouter_machine_ubuntu_dans_d
omaine_active_directory>


Il nous faudrait aussi un testparam pour vérifier ton smb.conf.

La dernière fois que je l'ai fait, j'avais précisé le serveur lors du
join:
# net join -U WinAdmin -S Win2k3_server.ici.ch

Et dernière chose, je ne suis pas sûr qu'un sudo soit suffisant.
J'avais notament constaté qu'un kerberos obtennu en local n'est pas
dispo en remote via ssh... Essayer peut-être avec un "sudo su -"

Bon courrage :)
--
Nicolas

Avatar
ctobini
Bonjour et merci de la réponse,

Nous avons suivi le même tuto apparement.

Je vous fournis le log (/var/log/log.smbd) de ma dernière tentative de
'net ads join -U tobini -S serveurAD.france.masociete.com' :

[2007/05/30 11:18:00, 0] smbd/server.c:main(847)
smbd version 3.0.24 started.
Copyright Andrew Tridgell and the Samba Team 1992-2006
[2007/05/30 11:18:00, 0] libads/kerberos.c:ads_kinit_password(208)
kerberos_kinit_password VMXUBUNTU$@FRANCE.MASOCIETE.COM failed:
Preauthentication failed
[2007/05/30 11:18:00, 0] printing/nt_printing.c:nt_printing_init(649)
nt_printing_init: error checking published printers:
WERR_ACCESS_DENIED

Ainsi que les infos de testparm :

:~# testparm
Load smb config files from /etc/samba/smb.conf
Processing section "[printers]"
Processing section "[print$]"
Loaded services file OK.
'winbind separator = +' might cause problems with group membership.
Server role: ROLE_DOMAIN_MEMBER
Press enter to see a dump of your service definitions

[global]
workgroup = FRANCE.MASOCIETE.COM
realm = FRANCE.MASOCIETE.COM
netbios aliases = FRANCE.MASOCIETE.COM
server string = %h server (Samba3, Xubuntu)
security = ADS
obey pam restrictions = Yes
password server = serveurAD.france.masociete.com
passdb backend = tdbsam
passwd program = /usr/bin/passwd %u
passwd chat = *EntersnewsUNIXspassword:* %nn *Retypesnew
sUNIXspassword:* %nn *passwordsupdatedssuccessfully* .
syslog = 0
log file = /var/log/samba/log.%m
max log size = 1000
dns proxy = No
panic action = /usr/share/samba/panic-action %d
idmap uid = 10000-20000
idmap gid = 10000-20000
template shell = /bin/bash
winbind separator = +
winbind enum users = Yes
winbind enum groups = Yes
winbind use default domain = Yes

[printers]
comment = All Printers
path = /tmp
create mask = 0700
printable = Yes
browseable = No

[print$]
comment = Printer Drivers
path = /var/lib/samba/printers

En vous remerciant,

C. Tobini
Avatar
Nicolas.MICHEL
ctobini wrote:

[2007/05/30 11:18:00, 0] libads/kerberos.c:ads_kinit_password(208)
kerberos_kinit_password VMXUBUNTU$@FRANCE.MASOCIETE.COM failed:
Preauthentication failed


ça semble bien être là le problème :
"Preauthentication failed".
Ce qui est étrange, c'est que tu puisse obtennir un ticket avec un
kinit, mais que pour je join, ça ne passe pas.
J'ai pas googleisé pour voir, mais la réponse doit sans-doute se trouver
sur le web ...

[global]
workgroup = FRANCE.MASOCIETE.COM


Chez moi le workgroup est différent du realm :
C'est le netbios name, pas le nom dns.
Bon, il se peut que chez toi le netbios name soit identique au nom dns.


obey pam restrictions = Yes
passdb backend = tdbsam
passwd program = /usr/bin/passwd %u
passwd chat = *EntersnewsUNIXspassword:* %nn *Retypesnew
sUNIXspassword:* %nn *passwordsupdatedssuccessfully* .
syslog = 0
dns proxy = No
panic action = /usr/share/samba/panic-action %d
idmap uid = 10000-20000
idmap gid = 10000-20000
template shell = /bin/bash
winbind enum users = Yes
winbind enum groups = Yes


Tout ça je ne l'ai pas mis.

Dureset il me semble que le passdb est utilisé en cas de
security = Users
Mais je me trompes peut-être.
J'ai pas regardé en détail à quoi corresponds chaque éléments, mais
essaies peut-être sans, pour voir.
(en relançant bien-sûr samba à chaque fois entre 2 modif)

Et j'ai ceci en plus dans mon smb.conf :

client NTLMv2 auth = Yes
client lanman auth = No
client plaintext auth = No
preferred master = No
local master = No
domain master = No
wins server = xxx.xxx.xxx.xxx


A vue de nez, je dirais que ça peut être le NTLMv2 qui manque.

le "local master" et le wins sont là pour éviter que la machine ne tente
de s'instaurer en netbios master machin. On a un serveur wins, autant
qu'il serve.

En vous remerciant,


Bin pour une fois que c'est moi qui aide à quelque chose sur ce forum,
c'est plutôt bien, en général je suis à la ramasse :)

On peut se tutoyer ?



--
Nicolas

Avatar
ctobini
Bonjour et merci encore pour ces infos,

On 30 mai, 13:19, (Nicolas MICHEL) wrote:

ça semble bien être là le problème :
"Preauthentication failed".
Ce qui est étrange, c'est que tu puisse obtennir un ticket avec un
kinit, mais que pour je join, ça ne passe pas.


Oui c'est vraiment bizarre, d'autant plus que je peux faire des
actions comme changer le mot de passe serveur, lister les partages sur
Active Directory, me connecter à ces partages avec le ticket...
Mystère et boule de chmurtz...

J'aurais une petite question: as-tu lors de klist une dernière ligne
'klist: You have no tickets cached' (j'ai l'impression que c'est un
message de warning ou d'erreur) ? Par ailleurs j'ai rajouté comme FQDN
pour mon localhost dans /etc/hosts :

127.0.0.1 localhost vmxubuntu

Mais je ne sais pas si c'est suffisant ou si c'est la bonne forme.

On peut se tutoyer ?


Bien sûr, d'ailleurs c'est fait :-)

Nicolas


C. Tobini

Avatar
Nicolas.MICHEL
ctobini wrote:

Oui c'est vraiment bizarre, d'autant plus que je peux faire des
actions comme changer le mot de passe serveur, lister les partages sur
Active Directory, me connecter à ces partages avec le ticket...
Mystère et boule de chmurtz...


T'as mis le NTLM2 dans le smb.conf ?
Suivant la version de l'AD, ça pourrait être utile, ...

J'aurais une petite question: as-tu lors de klist une dernière ligne
'klist: You have no tickets cached' (j'ai l'impression que c'est un
message de warning ou d'erreur) ? Par ailleurs j'ai rajouté comme FQDN
pour mon localhost dans /etc/hosts :


Pareil :

$ kinit
Password for :
$ klist
Ticket cache: FILE:/tmp/krb5cc_500
Default principal:

Valid starting Expires Service principal
06/01/07 10:19:15 06/01/07 20:19:18 krbtgt/
renew until 06/02/07 10:19:15


Kerberos 4 ticket cache: /tmp/tkt500
klist: You have no tickets cached

Google ne te retourne rien pour le type d'erreur que t'as ?
A tout hasard, perso je referais toute la manip depuis zero sur un autre
linux.

Je crois que tu as aussi du mac au fait ?
Perso je m'était inspiré d'un mac bindé dans l'AD via les Directory
Services pour configurer le fichier de pref kerberos :
Il est simple, et il marche "out of the box".

macici-c110:~ toto$ cat /Library/Preferences/edu.mit.Kerberos
[libdefaults]
default_realm = AD.ICI.CH
dns_fallback = no
[realms]
AD.ISREC.CH = {
kdc = ici-wdc2.ad.ici.ch.:88
kdc = ici-wdc3.ad.ici.ch.:88
admin_server = ici-wdc2.ad.ici.ch.
admin_server = ici-wdc3.ad.ici.ch.
}


--
Nicolas

Avatar
DoMinix
Bonjour à tous et merci de vos réponses,

Je tente donc dans un premier temps la coordination Linux/Serveur
Win2003 avec Samba/Winbind :

Le kinit se passe parfaitement, j'obtiens mon ticket, je peux changer
mon mot de passe sur le serveur Win2003 avec kpasswd.

Par contre là ou le bât blesse :

:~$ sudo net join -U tobini
tobini's password: xxxxxx
Failed to set password for machine account (NT_STATUS_ACCESS_DENIED)
Failed to join domain!
ADS join did not work, falling back to RPC...
Unable to find a suitable server
Unable to find a suitable server
:~$

Je me suis appuyé sur le tuto Ubuntu, je pense que le paramètres so nt
corrects.

Auriez-vous un retour sur ce genre d'erreur ?

En vous remerciant,

C. Tobini


est ce que le user tobini est admin du domaine MS ?
sinon ca marchera pas.

--
dominix

Avatar
ctobini
Bonjour,

Le tuto met 'Administrateur' en exemple, mais j'ai une chose bizarre:
'Administrateur' a été renommé 'fabriceds' par l'administrateur
système, je peux obtenir un ticket avec tous les comptes, mais pas
fabriceds :

:~$ kinit fabriceds
kinit(v5): KDC has no support for encryption type while getting
initial credentials
:~$

Je peut obtenir un ticket avec le compte tobini mais si je tente une
connection avec le compte admin :

:~# net ads join -U fabriceds
fabriceds's password:
[2007/06/04 12:00:03, 0] libads/kerberos.c:ads_kinit_password(208)
kerberos_kinit_password failed: Client
not found in Kerberos database
[2007/06/04 12:00:03, 0] utils/net_ads.c:ads_startup(289)
ads_connect: Client not found in Kerberos database
:~#

Je suis certain du mot de passe :-)

Le serveur est en Kerberos 4, j'ai suivi de tuto pour Kerberos 5, je
ne sais pas s'il faut une modification de la configuration ou pas en
revanche.

C. Tobini

On 3 juin, 12:24, DoMinix wrote:
est ce que le usertobiniest admin du domaine MS ?
sinon ca marchera pas.

--
dominix


1 2