Précédent   Forum des professionnels en informatique > Systèmes > Linux > Système
Système Vos questions autour de l'administration système
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/03/2011, 23h46   #1
Futur Membre du Club
 
Pierre-Antoine Errard
Inscription : janvier 2011
Messages : 57
Détails du profil
Informations personnelles :
Nom : Pierre-Antoine Errard

Informations forums :
Inscription : janvier 2011
Messages : 57
Points : 19
Points : 19
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

Citation:
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 !
tetzispa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/03/2011, 13h31   #2
Membre du Club
 
Avatar de wodel
 
Homme
Inscription : avril 2005
Messages : 272
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30

Informations forums :
Inscription : avril 2005
Messages : 272
Points : 54
Points : 54
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
__________________
Simbad le Marin

Core 2 Duo E8400 / 4Go RAM / HD6850 / HDD 250Go OpenSuse 12.1
wodel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/03/2011, 13h49   #3
Futur Membre du Club
 
Pierre-Antoine Errard
Inscription : janvier 2011
Messages : 57
Détails du profil
Informations personnelles :
Nom : Pierre-Antoine Errard

Informations forums :
Inscription : janvier 2011
Messages : 57
Points : 19
Points : 19
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 :/
tetzispa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2011, 17h53   #4
Membre du Club
 
Avatar de wodel
 
Homme
Inscription : avril 2005
Messages : 272
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30

Informations forums :
Inscription : avril 2005
Messages : 272
Points : 54
Points : 54
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.
__________________
Simbad le Marin

Core 2 Duo E8400 / 4Go RAM / HD6850 / HDD 250Go OpenSuse 12.1
wodel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2011, 20h04   #5
Futur Membre du Club
 
Pierre-Antoine Errard
Inscription : janvier 2011
Messages : 57
Détails du profil
Informations personnelles :
Nom : Pierre-Antoine Errard

Informations forums :
Inscription : janvier 2011
Messages : 57
Points : 19
Points : 19
ip LDAP : 192.168.0.11

voici une réponse de mon ldapsearch :

Code :
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 :
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 :
ip postfix/dovecot : 192.168.0.12
une requête avec dovecot :

Code :
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 :
mail:~# echo test |mail -s "test 1" paerrard
le log en tail /var/log/syslog :

Code :
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 :
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 :
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 !
tetzispa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2011, 14h04   #6
Membre du Club
 
Avatar de wodel
 
Homme
Inscription : avril 2005
Messages : 272
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30

Informations forums :
Inscription : avril 2005
Messages : 272
Points : 54
Points : 54
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 :
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 :
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 :
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
__________________
Simbad le Marin

Core 2 Duo E8400 / 4Go RAM / HD6850 / HDD 250Go OpenSuse 12.1
wodel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2011, 19h24   #7
Futur Membre du Club
 
Pierre-Antoine Errard
Inscription : janvier 2011
Messages : 57
Détails du profil
Informations personnelles :
Nom : Pierre-Antoine Errard

Informations forums :
Inscription : janvier 2011
Messages : 57
Points : 19
Points : 19
je vais tester comme ça, mais avant, quelle doit être la tronche de mon fichier .ldif pour ldap ? :/
tetzispa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2011, 22h25   #8
Futur Membre du Club
 
Pierre-Antoine Errard
Inscription : janvier 2011
Messages : 57
Détails du profil
Informations personnelles :
Nom : Pierre-Antoine Errard

Informations forums :
Inscription : janvier 2011
Messages : 57
Points : 19
Points : 19
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 :
Citation:
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 ^^
tetzispa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2011, 22h30   #9
Futur Membre du Club
 
Pierre-Antoine Errard
Inscription : janvier 2011
Messages : 57
Détails du profil
Informations personnelles :
Nom : Pierre-Antoine Errard

Informations forums :
Inscription : janvier 2011
Messages : 57
Points : 19
Points : 19
bon je suis vraiment plus très loin.

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

Citation:
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 !
tetzispa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2011, 23h18   #10
Futur Membre du Club
 
Pierre-Antoine Errard
Inscription : janvier 2011
Messages : 57
Détails du profil
Informations personnelles :
Nom : Pierre-Antoine Errard

Informations forums :
Inscription : janvier 2011
Messages : 57
Points : 19
Points : 19
chmod 777 /var/vmail plus d'erreur de mkdir

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

Citation:
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é
tetzispa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2011, 00h44   #11
Futur Membre du Club
 
Pierre-Antoine Errard
Inscription : janvier 2011
Messages : 57
Détails du profil
Informations personnelles :
Nom : Pierre-Antoine Errard

Informations forums :
Inscription : janvier 2011
Messages : 57
Points : 19
Points : 19
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 !
tetzispa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/04/2011, 12h09   #12
Membre du Club
 
Avatar de wodel
 
Homme
Inscription : avril 2005
Messages : 272
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30

Informations forums :
Inscription : avril 2005
Messages : 272
Points : 54
Points : 54
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 :
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 :
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
__________________
Simbad le Marin

Core 2 Duo E8400 / 4Go RAM / HD6850 / HDD 250Go OpenSuse 12.1
wodel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/04/2011, 12h28   #13
Futur Membre du Club
 
Pierre-Antoine Errard
Inscription : janvier 2011
Messages : 57
Détails du profil
Informations personnelles :
Nom : Pierre-Antoine Errard

Informations forums :
Inscription : janvier 2011
Messages : 57
Points : 19
Points : 19
wai pour le 777, c'était pour aller vite pour tester, je vais réduire pour donner ce qu'il faut tout simplement ^^
tetzispa est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h05.


 
 
 
 
Partenaires

Hébergement Web