IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration système Discussion :

postfix + ldap


Sujet :

Administration système

  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 179
    Par défaut postfix + ldap
    salut à tous !

    j'ai un serveur LDAP en 192.168.0.11/24 et j'ai mis mon serveur de mail dovecot/postfix sur 192.168.0.12/24

    je n'ai pas d'erreur pour m'authentifier avec dovecot, mais lors d'un envoi de mail avec postfix c'est un peu la cata car j'ai un retour de message d'erreur qui me dit que l'utilisateur est inconnu

    status=bounced (unknown user: [...] )

    je pense donc que l’authentification à du mal à se faire, ou qu'il me manque des trucs dans mon openLDAP, ou les deux.

    A l'origine, ça marchait quand tout était centralisé sur la même bécane, mais pour des soucis de sécurité, j'ai décidé de séparer LDAP et le système mail, résultat, dovecot tape dans le LDAP, postfix me pète à la gueule en disant que mon utilisateur est inconnu.

    Étant donné que je suis pas au top avec openLDAP, je viens vous demander votre aide !

    merci à tous par avance !

  2. #2
    Membre éclairé Avatar de wodel
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2005
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2005
    Messages : 295
    Par défaut
    Salut,

    Il faut vérifier que ton postfix arrive a se connecter sur ton ldap et qu'il exécute la bonne commande recherche (search), tu peux augmenter la verbosité de ton postfix dans le fichier main.cf, et redémarrer postfix ensuite

    par exemple

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 179
    Par défaut
    il ne se connecte pas à LDAP justement, dès que je sépare les services ça part en cacahouète donc augmenter le niveau de verbosité de logs ne changera rien à mon problème (malheureusement).


    j'ai lu plein de tutos où les gens parlent de domaines virtuels, de couplé ça avec LDAP, mais leur archi ne repose que sur un système centralisé et non pas séparé, et c'est là où ça merde pour moi (je pense)


    De plus, j'ai pu lire que si postfix va interroger LDAP, il faudrait que la recherche se fasse sur l'uid, donc que l'utilisateur crée soit en mode dn: uid=user et non pas dn: cn=user et là encore, je ne sais pas crée un utilisateur qui n'est que l'uid en recherche au lieu du cn :/

  4. #4
    Membre éclairé Avatar de wodel
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2005
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2005
    Messages : 295
    Par défaut
    Bein, tu as déjà trouvé le problème, essaye un ldapsearch depuis ton serveur postfix vers ton serveur ldap, afin de voir s'il est accessible, s'il n'est pas accessible, vérifie que ton ldap écoute sur l'interface réseau externe et pas uniquement en localhost, vérifie tes ACL de ton ldap, et vérifie si ton firewall (s'il y en a) est ouvert pour ldap.

    Si par contre ldapsearch fonctionne, le problème est dans ta configuration postfix, si tu peux poster tes fichiers de configuration, ainsi que ton schéma ldap.

    enfin concernant l'uid, je ne suis un expert ldap, mais je pense que tu peux utiliser cn au lieu de uid, c'est la requête de recherche que doit effectuer postfix qui doit être bien écrite.

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 179
    Par défaut
    ip LDAP : 192.168.0.11

    voici une réponse de mon ldapsearch :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    ldap:~# ldapsearch -x -b dc=srsi,dc=fr -D "cn=admin,dc=srsi,dc=fr" -W
    Enter LDAP Password:
    # extended LDIF
    #
    # LDAPv3
    # base <dc=srsi,dc=fr> with scope subtree
    # filter: (objectclass=*)
    # requesting: ALL
    #
     
    # srsi.fr
    dn: dc=srsi,dc=fr
    objectClass: top
    objectClass: dcObject
    objectClass: organization
    o: srsi.fr
    dc: srsi
     
    # admin, srsi.fr
    dn: cn=admin,dc=srsi,dc=fr
    objectClass: simpleSecurityObject
    objectClass: organizationalRole
    cn: admin
    description: LDAP administrator
    userPassword:: root
     
    # Groups, srsi.fr
    dn: ou=Groups,dc=srsi,dc=fr
    objectClass: top
    objectClass: organizationalUnit
    ou: Groups
     
    # Domain Users, Groups, srsi.fr
    dn: cn=Domain Users,ou=Groups,dc=srsi,dc=fr
    objectClass: top
    objectClass: posixGroup
    gidNumber: 513
    cn: Domain Users
    description:: TmV0YmlvcyBEb21haW4gVXNlcnMg
     
    # paerrard, Groups, srsi.fr
    dn: uid=paerrard,ou=Groups,dc=srsi,dc=fr
    objectClass: inetOrgPerson
    objectClass: posixAccount
    objectClass: top
    givenName: pierre-antoine
    sn: errard
    cn: pierre-antoine errard
    uid: paerrard
    userPassword:: e01ENX1jSGlFazZrMVZwZXdndS9aaHVzTWdRPT0=
    uidNumber: 1000
    gidNumber: 513
    homeDirectory: /home/paerrard
     
    # search result
    search: 2
    result: 0 Success
     
    # numResponses: 6
    # numEntries: 5
    (ici je me suis amusé à renommer le cn/uid de moi même)


    une partie de mon fichier slapd.conf :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    # Schema and objectClass definitions
    include         /etc/ldap/schema/core.schema
    include         /etc/ldap/schema/cosine.schema
    include         /etc/ldap/schema/nis.schema
    include         /etc/ldap/schema/inetorgperson.schema
    (pas de schéma de mail donc)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ip postfix/dovecot : 192.168.0.12
    une requête avec dovecot :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    mail:~# telnet 127.0.0.1 143
    Trying 127.0.0.1...
    Connected to 127.0.0.1.
    Escape character is '^]'.
    * OK Server @ srsi.fr ready...
    a login paerrard motdepasse
    a OK Logged in.
    une requête avec postfix :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mail:~# echo test |mail -s "test 1" paerrard
    le log en tail /var/log/syslog :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Mar 29 19:59:29 mail postfix/local[2420]: 685E333FC4: to=<paerrard@srsi.fr>, orig_to=<paerrard>, relay=local, delay=0.16, delays=0.05/0.08/0/0.02, dsn=5.1.1, status=bounced (unknown user: "paerrard")
    fichier de conf postfix (enfin parties importantes) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    local_recipient_maps = ldap:/etc/postfix/ldap_local_recipient.cf, $alias_maps
    myhostname = mail.srsi.fr
    alias_maps = hash:/etc/postfix/aliases
    alias_database = hash:/etc/postfix/aliases
    myorigin = /etc/postfix/mailname
    mydestination = srsi.fr, mail.srsi.fr, localhost.srsi.fr, localhost
    fichier de conf ldap_local_recipient.cf :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    server_host = 192.168.0.11
    server_port = 389
    search_base = dc=srsi,dc=fr
     
    # le %s signifie "adresse du destinataire telle que fourni par la commande "RCPT TO:"
    query_filter = (mail=%s)
    result_attribute = mail
    faut dire que là depuis que j'ai mis mon problème j'ai pas eu le temps de me re-pencher dessus.

    Je suis tombé sur quelques tutos qui parle de domaines virtuels avec un user 'vmail' qui s'occupe de récupérer tous les mails et de maper chaque user dans son folder.

    Enfin je tiens au jus. Si quelqu'un à une autre méthode que celle de passer par le coup des domaines virtuels etc je suis preneur !

    merci à tous pour l'aide !

  6. #6
    Membre éclairé Avatar de wodel
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2005
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2005
    Messages : 295
    Par défaut
    Salut,

    IL ne faut pas utiliser la variable local_recipient_maps tes comptes mails ne sont pas des comptes systèmes, ce sont de comptes virtuels.

    voici quelques indications (c'est juste un exemple)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    virtual_alias_maps = ldap:/etc/postfix/ldap/ldap_aliases.cf
    virtual_mailbox_domains = domaine.com (si tu gère un seul domaine)
    virtual_mailbox_base = /var/vmail
    virtual_mailbox_maps = ldap:/etc/postfix/ldap/ldap_users.cf
    virtual_transport = dovecot
    virtual_uid_maps = static:vmail
    virtual_gid_maps = static:vmail
    et modifier ton master.cf en ajoutant une ligne avec la forme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    dovecot   unix  -       n       n       -       -       pipe
      flags=DRhu user=vmail:vmail argv=/usr/libexec/dovecot/deliver -f ${sender} -d
    ${recipient}
    PS: vmail, est un utilisateur système, qui a son home dans /var/vmail (home entièrement vide, et sans shell ni mot de passe), il va contenir toutes les boites mails des utilisateurs.

    modifie aussi ton fichier dovecot.conf (chgrp vmail)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    auth default {
            mechanisms = plain login
            passdb ldap {
                    args = /etc/dovecot_ldap/ldap.pass
            }
            userdb ldap {
                    args = /etc/dovecot_ldap/ldap.user
            }
            auth_user = nobody
            count = 1
            ssl_require_client_cert = no
            ssl_username_from_cert = no
            socket listen {
                    master {
                            path = /var/run/dovecot/auth-master
                            mode = 0660
                            user = vmail
                            group = vmail
                    }
                    client {
                            path = /var/run/dovecot/auth-client
                            mode = 0660
                            user = postfix
                            group = postfix
                    }
          }
    }
    Ce sont quelques idées, j'espère qu'elles vont aider

  7. #7
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 179
    Par défaut
    je vais tester comme ça, mais avant, quelle doit être la tronche de mon fichier .ldif pour ldap ? :/

  8. #8
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 179
    Par défaut
    bon j'en suis là, j'ai un peu chercher sur le net sans réponse, mais je pense que la commande que tu m'as filé à rajouter dans le master.cf n'est pas très bonne

    dans mon syslog je vois ça qui passe :
    Mar 31 22:24:16 mail postfix/pipe[4513]: 3265D34003: to=<paerrard@srsi.fr>, orig_to=<paerrard>, relay=dovecot, delay=0.03, delays=0.02/0/0/0.01, dsn=4.3.0, status=deferred (temporary failure. Command output: Can't open log file /var/log/mail.log: Permission denied )
    j'ai regardé un peu les droits là dessus, et ce sont les droits classiques avec root, rien ne change avec dovecot ou postfix, mais je pense que ça avance un peu ^^

  9. #9
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 179
    Par défaut
    bon je suis vraiment plus très loin.

    je me suis débug, il me reste ça comme erreurs (pour le moment) :

    Apr 1 22:46:04 mail deliver(paerrard@srsi.fr): setgid(513) failed with euid=500, gid=500, egid=500: Operation not permitted
    Apr 1 22:46:04 mail deliver(paerrard@srsi.fr): setgid(513) failed with euid=500, gid=500, egid=500: Operation not permitted
    Apr 1 22:46:04 mail postfix/pipe[2427]: 0F3ED37FBC: to=<paerrard@srsi.fr>, relay=dovecot, delay=1069, delays=1069/0.01/0/0.02, dsn=4.3.0, status=deferred (temporary failure)
    Apr 1 22:46:04 mail postfix/pipe[2426]: 0AC7037FB7: to=<paerrard@srsi.fr>, relay=dovecot, delay=1108, delays=1108/0.02/0/0.02, dsn=4.3.0, status=deferred (temporary failure)
    Apr 1 22:51:30 mail dovecot: Killed with signal 15
    Apr 1 22:51:30 mail dovecot: Dovecot v1.0.15 starting up
    Apr 1 22:51:35 mail dovecot: IMAP(paerrard): mkdir(/var/vmail/paerrard/cur) failed: Permission denied
    Apr 1 22:51:35 mail dovecot: imap-login: Login: user=<paerrard>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, secured
    Apr 1 22:51:45 mail dovecot: IMAP(paerrard): Disconnected: Logged out
    si quelqu'un à une idée ! (en sachant que ça vient des permissions donc)

    merci !

  10. #10
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 179
    Par défaut
    chmod 777 /var/vmail plus d'erreur de mkdir

    je passe à mon erreur à la con qui est celle là :

    mail deliver(paerrard@srsi.fr): setgid(513) failed with euid=500, gid=500, egid=500: Operation not permitted

    à savoir : le gid 513 = l'ID du groupe du domaines, et l'utilisateur vmail à pour UID 500 et comme groupe vmail avec un GID 500, je me dis juste que c'est un peu lié

  11. #11
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 179
    Par défaut
    ok j'ai trouvé :

    (la lutte sur google, j'ai trouvé un post par hasard )

    en gros, postfix n'a pas les droits pour delivrer les messages avec l'utilisateur vmail.

    il suffit donc de faire un chmod 4755 /usr/lib/doveco/deliver

    (je précise que je suis sous debian lenny)

    merci à toi wodel de m'avoir orienté.


    Je précise le cadre de ce boulot, c'est projet tuteuré sur la mise en place de l'architecture sécurisée d'un FAI (un utilisateur vient sur notre site, il se log, et il aura le droit d'avoir un compte mail @srsi.fr et un espace web)


    les problèmes à ce type de projet :

    - manque de tutos sur la création de fichier LDIF pour openLDAP
    - manque de tutos à jour sur la séparation des services (bah oui, c'est mieux d'avoir un openLDAP et un serveur mail à part)
    - résultat : mix de je ne sais pas combien de tutos + passage sur les forums + lire des logs

    enfin voilà, tout marche, et merci !

  12. #12
    Membre éclairé Avatar de wodel
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2005
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2005
    Messages : 295
    Par défaut
    Salut,

    Comme tu l'as deviné ce sont des erreurs de droits d'accès,

    pour dovecot tu peux utiliser ceci dans ton fichier de config

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    mail_location = maildir:/var/vmail/%n
    mail_full_filesystem_access = no
    mail_debug = yes
    mail_log_prefix = "%Us (%u): "
    mail_read_mmaped = no
    
    lock_method = fcntl
    mail_drop_priv_before_exec = no
    verbose_proctitle = no
    first_valid_uid = 500
    last_valid_uid = 500
    first_valid_gid = 500
    last_valid_gid = 500
    ou 500 est le uid et le gid de l'utilisateur vmail

    pour ce qui est de postfix, normalement il aurait du avoir les droits d'accès de l'utilisateur vmail, vu qu'il y a les lignes suivantes dans main.cf
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    virtual_uid_maps = static:vmail
    virtual_gid_maps = static:vmail
    un dernier truc évite les 777 sur ton répertoire mail.

    enfin ravi d'avoir pu aider un peu, bon courage

  13. #13
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 179
    Par défaut
    wai pour le 777, c'était pour aller vite pour tester, je vais réduire pour donner ce qu'il faut tout simplement ^^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. RHEL 5.4 configuration postfix-ldap-dovecot
    Par wodel dans le forum Réseau
    Réponses: 0
    Dernier message: 20/04/2010, 16h24
  2. Création compte postfix via LDAP
    Par Sieg Hart dans le forum Réseau
    Réponses: 0
    Dernier message: 26/05/2008, 16h19
  3. [postfix.spec] compiler pour ldap, sasl et tls.
    Par rvfranck dans le forum Administration système
    Réponses: 4
    Dernier message: 28/06/2007, 14h55
  4. Réponses: 2
    Dernier message: 10/01/2007, 00h06
  5. Configuration PostFix-LDAP
    Par xamxeladog dans le forum Réseau
    Réponses: 2
    Dernier message: 27/05/2005, 14h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo