«

»

Déc 04 2011

[Tuto]Configuration de Zimbra dans un Active Directory et importations des comptes utilisateurs

Bienvenues dans ce second tutoriel consacré à Zimbra, si vous avez suivies mon article précédent sur l’installation de Zimbra, vous devez être sur un serveur mail Zimbra fraichement installé avec aucunes modifications depuis l’installation.

Nous allons donc voir dans ce tutoriel deux choses:

  • L’interface d’administration de Zimbra
  • La création de comptes
  • Les COS
  • L’importation de comptes mails depuis un active Directory
  • Les commandes utiles sous Zimbra

Nous allons commencer par nous connecter à l’interface d’administration de Zimbra:

Interface d’administration de Zimbra

Dans mon tuto l’adresse ip de mon serveur Zimbra est 10.0.1.6, mais si vous voulez vous connecter à votre serveur en utilisant « zimbra.test.com », au lieu de l’adresse IP du serveur vous pouvez soit rajouter le serveur DNS dans votre configuration réseau, soit (si vous êtes sous Windows ou Linux) éditer le fichier host de votre configuration.

Sous Windows 7 par exemple éditez le fichier « C:\Windows\System32\drivers\etc\hosts et mettez la ligne suivante à la fin du fichier

10.0.1.6 zimbra.test.com

Vous pouvez aussi très bien faire la même chose sous Linux via la commande suivante:

echo « 10.0.1.6 zimbra.test.com zimbra » >> /etc/hosts

Maintenant que cela est fait nous pouvons enfin nous connecter à l’interface d’administration de Zimbra en tapant dans votre navigateur internet préféré : https://zimbra.test.com:7071

Vous aurez normalement cette erreur:

Erreur SSL

Erreur SSL

Ne vous inquiétez pas c’est normal étant donné que nous nous connectons en HTTPS à l’inteface d’administration deZimbra est que notre certificat n’est pas un certificat généré par une authorité de certification, mais un certificat auto-généré par Zimbra. Cliquez en toute sécurité sur « Poursuivre quand même » (peut varier suivant le navigateur internet que nous utilisez).

Rentrez dans la prochaine fenêtre les identifiants de l’administrateur de Zimbra:

Connection à Zimbra

Connection à Zimbra

Utilisateur: admin
Mot de passe: zcsadmin (mot de passe rentré durant l’installation de Zimbra)

Vous arrivez enfin à l’interface d’administration de votre serveur Zimbra

La première page qui s’affiche vous permet de voir l’état de votre serveur, si tout est vert c’est que tout fonctionne.

A gauche vous avez les différentes sections de configuration du serveur.

Je ne vais pas vous expliquer à quoi sert chaque sections, nous allons nous intéresser aux trois principales:

  • Comptes : gestion des comptes des utilisateurs
  • Classe de Service (COS) : gestion des profils des comptes mails
  • Onglet domaine : Onglet qui va nous intérésser pour l’intégration avec L’AD.

Première section à configurer: Classe de Service

Nous allons éditer le COS par défaut, mais vous pouvez en créer autant que vous voulez en fonctions des différents profils d’utilisateurs.

Il y a 7 onglets de configurations des COS; vous pouvez les modifier comme bon vous sembles pour ce tutoriel ne cochez que les cases ayant un rapport avec le GAL, n’hésitez pas à tout regarder, il y a beaucoup de paramètres configurables.

Seconde section : Domaine

Dans cette section nous allons activer l’authentification des utilisateur via l’Active Directory

Nous allons commencer par configurer le Fuseau horaire le premier onglet « Informations générale ».

Je suis en France donc j’ai mis GMT +01:00 Bruxelles…..Paris

Puis en haut cliquez sur « Configurer l’authentification »

Dans la fenêtre qui s’ouvre choisissez comme Mécanisme d’authentification « Active directory »

Et remplissez comme ci dessous (dans mon cas le FQDN de mon serveur Active Directory est ad-server.test.com)

Authentification AD

Authentification AD

Puis cliquez sur suivant.

Dans la fenêtre suivante, Zimbra veut tester les paramètres d’authentification avec un utilisateur de notre AD.

Pour ma part j’ai utilisé le compte « Administrator » de mon domaine.

Cliquez sur « Tester » si cette fenêtre s’affiche, c’est que tout est bien configuré:

C'est vert donc c'est bon !

C’est vert donc c’est bon !

Il ne vous reste plus qu’a cliquez sur « Suivant » puis sur « Terminer »

Et voila l’authentification via l’Active Directory est activée.

Intégration des utilisateurs du domaine

Nous allons maintenant passer à la partie difficile ce tutoriel.

La configuration des Emails en fonction des noms des utilisateurs peut varier.

Explications:

Prenons l’exemple de John Doe, salarié chez test.com: il lui faut une adresse Email:

Plusieurs types d’adresses Emails peuvent exister:

  • j.doe@test.com
  • jdoe@test.com
  • john.doe@test.com
  • johndoe@test.com

Ou encore, imaginons que le nom d’utilisateur sur le domaine de John Doe soit j.doe que nous voudrions ceci en adresse email.

Cela fais beaucoup de cas de figures différents.

Nous allons travailler dans le cas de figure ou l’adresses Email de notre utilisateur sera son nom d’utilisateur du domaine, de cette manière, lorsqu’il voudra se connecter à son Webmail il pourra utiliser le même nom d’utilisateur est le même mot de passe que pour se connecter au domaine.

Pour pouvoir mettre en place cette solution nous allons utiliser un script de ma création que je vais vous détailler après:

#!/bin/bash
#Script de SYNC AD --> Zimbra
#Script sous license GNU/GPL
#ROSENKRANZ Denis
#denisrosenkranz.com

#SCRIPT A LANCER EN TANT QU' UTILISATEUR "zimbra"

#Déclaration des variables:

#Nom de domaine Active Directory
DOMAIN_NAME="domain.lan"

#Fichiers temporaires ou seront stockés les données de comptes
Names=Names.txt
Firstnames=FirstNames.txt
Nicknames=Nicks.txt
ADAccounts=Accounts.txt
ZAccounts=Zmbusers.txt
Mails=Mails.txt

#Paramêtres sur serveur AD
#FQDN Du serveur Active Directory
ADServer="dc.domaine.lan"
#Nom d'un utilisateur
ADUser="username"
#Mot de passe de cet utilisateur
ADUserpass="password"

#On récupère les informations des comptes sur l'active directory
#Dans ce contexte, les comptes à récuperer de trouvent dans l'OU "AdUsers"
#Récupération des  noms
ldapsearch -x -H ldap://$ADServer -b  "OU=AdUsers,DC=test,DC=com" -D "CN=$ADUser,CN=Users,DC=test,DC=com" -w $ADUserpass "(&(sAMAccountName=*)(objectClass=user))" | grep sn | awk '{print $2}' > $Names

#Récupérations des prénoms
ldapsearch -x -H ldap://$ADServer -b  "OU=AdUsers,DC=test,DC=com" -D "CN=$ADUser,CN=Users,DC=test,DC=com" -w $ADUserpass "(&(sAMAccountName=*)(objectClass=user))" | grep givenName | awk '{print $2}' > $Firstnames

#Récupérations des noms d'utilisateurs
ldapsearch -x -H ldap://$ADServer -b  "OU=AdUsers,DC=test,DC=com" -D "CN=$ADUser,CN=Users,DC=test,DC=com" -w $ADUserpass "(&(sAMAccountName=*)(objectClass=user))" | grep sAMAccountName | awk '{print $2}' > $Nicknames

#Transformation des noms d'utilisateurs en adresses Emails
sed 's/.*/&'@$DOMAIN_NAME'/' $Nicknames > $Mails

#Suppresion du filtre
sed /filter/d $Mails > Mails2.txt
mv Mails2.txt $Mails

#On fusionne toutes ces données dans un seul fichier
paste -d ':' $Names $Firstnames $Mails > $ADAccounts

#On récupère les comptes existants dans Zimbra
zmaccts | grep "@$DOMAIN_NAME" | awk '{print $1}' > $ZAccounts

#On formatte correctement les fichiers Mails.txt et zmbuser.txt

sort $Mails > Mails2.txt
mv Mails2.txt $Mails

sort $ZAccounts > zmbusers2.txt
mv zmbusers2.txt $ZAccounts

#On compare les comptes existants et les comptes sur l'Active Directory
LISTDIFF=$(diff -u -i -B $ZAccounts $Mails  | grep $DOMAIN_NAME | grep "+" | sed s/^+//g)

#Si il existe une nouvelle adresse on la crée dans Zimbra
for i in $LISTDIFF; do
EMAIL=$(echo $i | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz')
FIRSTNAME=$(cat $ADAccounts | grep $i | cut -d ':' -f2 )
LASTNAME=$(cat $ADAccounts | grep $i | cut -d ':' -f1 )
echo 'Rajout du compte mail: ' $FIRSTNAME $LASTNAME $EMAIL

#Création des comptes dans Zimbra
#FDD00123456789 est le mot de passe par défaut des comptes, si l'authentification des utilisateurs se fait par l'AD ce mot de passe ne sera pas utilisé
zmprov ca $EMAIL FDD00123456789 displayName ''$FIRSTNAME' '$LASTNAME'' givenName $FIRSTNAME sn $LASTNAME
done
exit 0

Alors que fait ce script?

  1. Il récupère les Noms des utilisateurs dans le fichier Names.txt
  2. Il récupère les prénoms des utilisateurs dans le fichier Firstnames.txt
  3. Il récupère les noms d’utilisateurs dans le fichier Nicks.txt
  4. Il transforme les noms d’utilisateurs en adresses Emails
  5. Il fusionnes Names.txt, Firstnames.txt et Mails.txt dans un seul fichier
    Accounts.txt
  6. Il récupère les adresses Emails existantes sur le serveur Zimbra dans le
    fichier Zmbusers.txt
  7. Il compare les deux fichiers
  8. Crée les adresses Emails qui n’existent pas sur le serveur Zimbra

Comment le mettre en place:

Connectez vous sur votre serveur Zimbra et tapez ceci:

On récupère le script sur github

wget https://raw.github.com/tubezleb/ADZimbraAccountSync/master/Scripts%20de%20synchronisations%20auto/adsynczcs5.sh

Modifiez le script en fonction de votre configuration

vim adsynczcs5.sh

Puis une fois cela fait, faites les manipulations suivantes:

sudo mkdir /opt/zimbra/adsync
sudo cp adsynczcs5.sh /opt/zimbra/adsync
cd /opt/zimbra/
sudo chown -R zimbra:zimbra adsync
cd adsync
sudo su zimbra
chmod +x adsynczcs5.sh
./adsynczcs5.sh

Le script se lance !

Pour vos tests je vous conseil de mettre en commentaire la ligne:

zmprov ca $EMAIL FDD00123456789 displayName ''$FIRSTNAME' '$LASTNAME''
givenName $FIRSTNAME sn $LASTNAME

Dans cette ligne, « FDD00123456789 «  est le mot de passe par défaut du compte mail, ce mot de passe ne seras pas actif étant donné que nous utilisons les mots de passe de l ‘Active Directory.

Et voila maintenant vous pouvez vérifier dans l’interface d’administration de
Zimbra que les comptes ont bien été crées.

Si c’est le cas connectez-vous à :
http://zimbra.test.com
et connectez vous avec un utilisateur.

Commandes utiles

Commandes à taper en tant qu’utilisateur Zimbra:

#Checker les services de Zimbra:
zmcontrol status

#Redémarrer/arreter/lancer les services Zimbra:
zmcontrol stop/restart/start

#Créer un utilisateur:
zmprov ac user@domaine.com password

#Créer un administrateur
zmprov ac admin@domaine.com password ZimbraIsAdminAccount

#Augmenter la taille des pièces jointes
zmprov mcf zimbraMtaMaxMessageSize 20480000 (20mo)

(22 commentaires)

Passer au formulaire de commentaire

  1. kasabbagh

    Bonjour,

    Impeccable. le script fonctionne à merveille. Merci beaucoup pour ton aide.

    Cdt,
    KS

  2. jbeddes

    Bonjour, tout d’abord merci pour votre tutoriel. Je l’ai suivi et je rencontre un problème mineur. Lors de l’ajout des comptes venant d’un Active Directory, les accents sont mal encodés ce qui donne le résultat suivant :
    Rajout du compte mail: SsOpcsOpbXk= dupond j.dupond@domaine.com

    Après avoir cherché un peu, je me suis aperçu que le problème vient du ldapsearch qui retourne un mauvais encodage des infos.
    Avez-vous une solution ?
    Cordialement.

    1. Pierre

      Bonjour,

      J’ai exactement le même problème. As-tu trouvé une solution ?

      1. Denis

        Hello,

        Vous pouvez essayer a rajoutant l’option « -e » a ldapsearch.

        Denis

        1. Pierre

          Merci de votre réponse

          Quels paramètres dois-je mettre au « -e »?

          Pierre

          1. Denis

            Dans le script pour les commandes ldapsearch (ex: ( ldapsearch -e ………..)..

          2. Pierre

            Lorsque je fais: « ldapsearch -e » il attend des paramètres mais je ne sais pas ce que je dois mettre

            -e [!][=] general extensions (! indicates criticality)
            [!]assert= (RFC 4528; a RFC 4515 Filter string)
            [!]authzid= (RFC 4370; « dn: » or « u: »)
            [!]chaining[=[/]]
            one of « chainingPreferred », « chainingRequired »,
            « referralsPreferred », « referralsRequired »
            [!]manageDSAit (RFC 3296)
            [!]noop
            ppolicy
            [!]postread[=] (RFC 4527; comma-separated attr list)
            [!]preread[=] (RFC 4527; comma-separated attr list)
            [!]relax
            [!]sessiontracking
            abandon, cancel, ignore (SIGINT sends abandon/cancel,
            or ignores response; if critical, doesn’t wait for SIGINT.
            not really controls)

  3. souley

    Bonjour à tous,
    J’ai un souci avec la création de compte mail zimbra utilisant un annuaire externe. Pour créer un compte dans l’interface graphique zimbra, il n’y a pas d’endroit pour le mot de passe. J’ulise zimbra 7 et ubuntu 10.0.4. Quand je met les informations du ldap, je ne retrouve pas les comptes dans le ldap. que faire lors de la création d’un compte ou après pour qu’on se connecter? Merci pour votre aide.

  4. Alain

    Bonjour,

    J’ai essayé d’utilisé ton script mais le problème, c’est que lorsque dans l’AD il y a des champs vides pour un user (nom ou prenom par exemple) cela fausse tout le reste car tu parses les fichiers textes ensuite et ça décale tout …

    Merci.

  5. testou

    Bonjour,

    J’ai un problème concernant le script de provisionning avec dialogue, je rentre mes valeurs puis il se termine, à priori normalement. Mais il n’a créé aucun comptes, et il y a des erreurs dans les fichiers créés. Exemple le fichier tmpAdDB.txt :

    # extended LDIF
    #
    # LDAPv3
    # base with scope subtree
    # filter: (&(sAMAccountName=*)(objectClass=user))
    # requesting: ALL
    #

    # search result
    search: 2
    result: 34 Invalid DN syntax
    text: 0000208F: NameErr: DSID-031001F7, problem 2006 (BAD_NAME), data 8350, b
    est match of:
    ‘Can’t make sub-window at (19,3), size (1,72).’

    # numResponses: 1

    Il doit s’agir sans doute d’un problème de liaison à mon domaine. Cette remarque amène ainsi une autre question, faut-il que le serveur Zimbra, adhère au domaine ?

    Merci d’avance pour votre aide.

    Bonne journée.

    1. Denis

      Bonjour,

      Non, il n’y a pas besoins que le serveur Zimbra soit relié au domaine, celui ci va juste faire des requêtes LDAP sur l’AD.

      Pour ton problème je pencherais sûrement pour un problème au niveau du DN dans lequel tu recherches tes users.

  6. FranckyDevil

    Merci pour les tutoriels, que ce soit celui de l’installation ou celui de l’authentification depuis l’AD.
    Rien à dire si ce n’est qu’en suivant les deux on arrive à quelque chose d’opérationnel. Le plus long étant le téléchargement du binaire Zimbra.
    Encore merci et bonne continuation

  7. vedil

    bonsoir tous le monde ,
    j’utilise imapsync pour migrer mon compte de squirrel mail vers zimbra. apres plusieurs teste et correction d’erreur je fait actuellement face a ce probleme et je ne sais plus quoi faire votre aide me sera d’une tres grande importance

    cordialement

    imapsync –buffersize 8192000 –nosyncacls –subscribe –syncinternaldates –host1 192.168.1.10 –port1 143 –user1 chimene.ngameni –password1xxxxxxxxxxxxxxxxxxxxx –host2 192.168.1.48 port2 143 –user2 root –password2 xxxxxxxxxxxxxxxx –noauthmd5
    $RCSfile: imapsync,v $ $Revision: 1.286 $ $Date: 2009/07/24 15:53:04 $
    Here is a [linux] system (Linux zimbra.societe.com 2.6.32-41-generic #94-Ubuntu SMP Fri Jul 6 18:00:34 UTC 2012 x86_64)
    with perl 5.10.1
    Mail::IMAPClient 2.2.9
    IO::Socket 1.31
    IO::Socket::SSL
    Digest::MD5 2.33
    Digest::HMAC_MD5 1.01
    Term::ReadKey 2.30
    Date::Manip
    and the module Mail::IMAPClient version used here is 2.2.9
    Command line used:
    /usr/bin/imapsync –buffersize 8192000 –nosyncacls –subscribe –syncinternaldates –host1 192.168.1.10 –port1 143 –user1 chimene.ngameni –password1 MASKED –host2 192.168.1.48 port2 143 –user2 root –password2 MASKED –noauthmd5
    Turned ON syncinternaldates, will set the internal dates (arrival dates) on host2 same as host1.
    TimeZone:[africa/douala]
    Will try to use LOGIN authentication on host1
    Will try to use LOGIN authentication on host2
    From imap server [192.168.1.10] port [143] user [chimene.ngameni]
    To imap server [192.168.1.48] port [143] user [root]
    Banner: * OK Dovecot ready.
    Host 192.168.1.10 says it has NO CAPABILITY for AUTHENTICATE LOGIN
    Success login on [192.168.1.10] with user [chimene.ngameni] auth [LOGIN]
    Banner: * OK zimbra.axxentis.com Zimbra IMAP4rev1 server ready
    Host 192.168.1.48 says it has NO CAPABILITY for AUTHENTICATE LOGIN
    Success login on [192.168.1.48] with user [root] auth [LOGIN]
    host1: state Authenticated
    host2: state Authenticated
    From separator and prefix: [.][]
    To separator and prefix: [/][]
    ++++ Calculating sizes ++++
    From Folder [INBOX] Size: 7858312 Messages: 70
    From Folder [INBOX.Drafts] Size: 3057 Messages: 3
    From Folder [INBOX.Info] Size: 0 Messages: 0
    From Folder [INBOX.Sent] Size: 28083192 Messages: 94
    From Folder [INBOX.Spam] Size: 0 Messages: 0
    From Folder [INBOX.Trash] Size: 3716 Messages: 2
    From Folder [vicky] Size: 0 Messages: 0
    Total size: 35948277
    Total messages: 169
    Time: 0 s
    ++++ Calculating sizes ++++
    To Folder [INBOX] Size: 0 Messages: 0
    To Folder [INBOX/Drafts] does not exist yet
    To Folder [INBOX/Info] does not exist yet
    To Folder [INBOX/Sent] does not exist yet
    To Folder [INBOX/Spam] does not exist yet
    To Folder [INBOX/Trash] does not exist yet
    To Folder [vicky] does not exist yet
    Total size: 0
    Total messages: 0
    Time: 0 s
    Modification of non-creatable array value attempted, subscript -1 at /usr/local/share/perl/5.10.1/Mail/IMAPClient.pm line 2170.

    1. Denis

      Pour ce genre de question je ne saurais pas bien te répondre je te conseil d’aller poser ta question sur le forum communautaire de Zimbra en France: http://www.zimbrafr.org/forum/

  8. Zoubil

    Bonjour,
    Pouvez vous me dire quels sont les champs exact à modifier dans le script s’il vous plait!!! pour l’adapter à mon cas, et quels sont les champs qu’il ne faut surtout pas modifier !!!! de plus il aurai fallut transformer le script du mode dos au mode unix, sinon le script refuse de s’executer!!! est il normal cela !!!!! aprés la conversion le script s’execute mais les comptes ne sont pas quand meme rapatriés de l’ad sur zimbra!!!!
    j’ ai installer la version 8.0.0 de zimbra sur la version 12.04 lts server ubuntu!!!
    je vous remercie d’avance.

    1. Denis

      Quel version de mon script utilisez-vous?

      je vous recommande d’aller chercher les dernières versions présentes sur Github

      https://github.com/tubezleb/ADZimbraAccountSync

      1. zoubil

        je vous remercie beacoup pour l’aide précieuse que vous m’avez donné!!!! le script fonctionne il y a juste une ligne qui ne s’execute pas, c’est la ligne 62 du script: zmaccts | grep « @$DOMAIN_NAME » | awk ‘{print $1}’ > $ZAccounts
        j’ai ce message d’erreur zmaccts : commande introuvable.
        je vous remercie encore une deuxième fois :)

        j’ai installer la version 8.0.0 de zimbra sur ubuntu 12.04 lts

        1. Denis

          L’erreur viens du fait que tu n’as pas lancé le script en tant qu’utilisateur zimbra.

          1. zoubil

            Bonjour,
            Est ce que vos scripts sont compatible avec la version 8.0.1 de zimbra, pour moi ça ne fonctionne pas !!!
            Peut on créer un domaine de messagerie directement comme ceci: domaine.com, puisque pour moi il me fait ça: zimbra.domaine.com, du coup je suis obliger de créer un deuxieme domaine comme ceci: domaine.com au même temps que zimbra.domaine.com

            Merci encore et désolé de vous avoir arceler par mes petites questions :)

          2. zoubil

            Bonjour,
            j’ai réussi à installer le serveur zmbra 8.0.0 sur un serveur ubuntu 12.04, j’ai voulu synchroniser avec l’ad, j’ai utilisé le script que vous m’avez donné, le script s’execute mais les compte ne sont pas synchroniser, je ne sais pas d’où peut venir le problème alors que le script s’execute normalement!!!!
            je vous remercie pour votre aide précieuse, je suis un autodidacte, et je voudrais tout simplement apprendre d’avantage sur zimbra.

      2. cialis_daily_dose

        Very nice,
        cialis daily dose ,

  9. vedil

    salut je souhaite migrer mon compte et celui de mes amis de la messagerie interne que nous utilisions vers zimbra.mais le probleme c’est que zimbra propose plusieurs outils de migration j’ai opté pour « » » » »ZCS migration wizard for exchange » » » » » » j’ai telecharger l’outil je l’ai executer mais a la deuxieme etape de progression on me dit qu’il faut creer un profil avec microsoft outlook je l’ai fait j’ai donné un nom du genre vicky mais l’outil refuse ce profil.de plus je ne sais pas si a la derniere etape de progression ou me avant cette etape on va me proposer de donner l’adresse du compte que je souhaite faire migrer vers zimbra. s’il vous plait ^pouvez vous m’en dire un peu plus sur la migration ainsi que les pre-requis avant la migration????

    bien cordialement

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Lire les articles précédents :
ZimbraUne
[Tuto]Installation de Zimbra OSE 7.1.3 sous Ubuntu 10.04 LTS 64bits

Dans ce premier tutoriel consacré à Zimbra vous allez voir comment installer une machine virtuelle sous Ubuntu 10.04 LTS pour...

Fermer