[Debian 4.0] Envoi de mail - Postfix [Résolu/Fermé]

Signaler
Messages postés
40
Date d'inscription
mercredi 18 juillet 2007
Statut
Membre
Dernière intervention
7 juin 2011
-
Messages postés
40
Date d'inscription
mercredi 18 juillet 2007
Statut
Membre
Dernière intervention
7 juin 2011
-
Bonjour,

Suite à l'installation de postfix, j'arrive parfaitement à envoyer des mails vers l'extérieur mais par contre ça merdouille en local : un mail envoyé par root vers l'utilisateur toto va directement dans /var/spool/mail/nobody

Et pareil pour tous les destinataires du serveur.

Aucune erreur dans la log à priori :
May 14 04:16:49 postfix/pickup[2312]: 0C7FA11568F: uid=0 from=<root>
May 14 04:16:49 postfix/cleanup[3174]: 0C7FA11568F: message-id=<20090514021649.0C7FA11568F@mon.domaine.com>
May 14 04:16:49 postfix/qmgr[2314]: 0C7FA11568F: from=<root@mon.domaine.com>, size=375, nrcpt=1 (queue active)
May 14 04:16:49 postfix/local[3176]: 0C7FA11568F: to=<root@mon.domaine.com>, orig_to=<toto@mon.domaine.com>, relay=local, delay=0.06, delays=0.03/0.01/0/0.01, dsn=2.0.0, status=sent (delivered to command: procmail -a "$EXTENSION")
May 14 04:16:49 postfix/qmgr[2314]: 0C7FA11568F: removed


Avez-vous une idée d'où cela peut provenir ?

Un petit coup de postconf au cas ou ca proviendrait de là :

alias_database = hash:/etc/postfix/aliases
alias_maps = hash:/etc/postfix/aliases
append_dot_mydomain = no
biff = no
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/lib/postfix
default_transport = smtp
inet_interfaces = all
mail_owner = postfix
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mydomain = domaine.com
myhostname = mon.domaine.com
mynetworks = 127.0.0.0/8
myorigin = $myhostname
queue_directory = /var/spool/postfix
recipient_delimiter = +
sender_canonical_maps = hash:/etc/postfix/canonical


Merci d'avance.

2 réponses

Bonjour,

La doc complete est la : https://postfix.traduc.org/

La methode de relai est define dans /etc/postfix/master.cf

Dans votre cas c'est en local. Ce n'est pas une bonne chose car dans ce cas une adresse email implique qu'il y a un compte identique derrière : c'est une source d'attaque du serveur.
Il vaut mieux utiliser une config "virtual" et que Postfix transfere le courrier local a un autre service : cyrus ou courrier.

Il faut dans postfix definir la liste des adresses recevant le courrier local.
C'est dans votre cas : "local_recipient_maps = hash:/etc/postfix/quelquechose"

En effet tous les utilisateurs déclarés dans /etc/passwd n'ont pas à recevoir du courrier...
On utilise "alias_maps = hash:/etc/aliases" pour définir l'adresse de l'utilisateur qui vas collecter tous les mails "systeme" (les logs et les alertes par exemple).

Cordialement,
Messages postés
40
Date d'inscription
mercredi 18 juillet 2007
Statut
Membre
Dernière intervention
7 juin 2011
3
Merci de votre réponse.

Je ne comprend pas en quoi le fait que je ne reçois pas les mails envoyés en local dans /var/spool/mail/toto (si je reprend mon exemple) puisse être une source d'attaque serveur.
Pouvez-vous m'éclairer sur ce point ?

J'ai suivis vos conseils et j'ai installé cyrus-imap.
A partir de là, j'ai modifié en conséquence le main.cf en y ajoutant :


mail_transport = cyrus


J'en ai profité pour ajouter :

local_recipient_maps = $alias_maps

avec alias_maps = hash:/etc/postfix/aliases

Le problème reste toujours présent.
Messages postés
40
Date d'inscription
mercredi 18 juillet 2007
Statut
Membre
Dernière intervention
7 juin 2011
3 >
Messages postés
40
Date d'inscription
mercredi 18 juillet 2007
Statut
Membre
Dernière intervention
7 juin 2011

En fait, il y avait un cafouillage dans le fichier aliases :
toto: root

donc les mails de toto étaient transmis à root. J'ai supprimé cette ligne et maintenant toto recoit bien ses mails.

Par contre, root ne reçoit rien : les mails ayant comme destinataire root sont envoyés dans nobody.


J'ai remarqué que dans postconf figuré la ligne suivante :

default_privs = nobody

Pour test, je l'ai donc changé en mettant :

default_privs = toto
Et cette fois, lorsque j'envoi un mail à root, c'est toto qui le receptionne !
Par contre, si je met :

default_privs = root

Postfix pousse une gueulante lors du reload :
Reloading Postfix configuration...postfix: fatal: file /etc/postfix/main.cf: parameter default_privs: user root has privileged user ID
failed.


Si je comprend bien, les utilisateurs ayant des droits "root" ne sont pas autorisés à recevoir de mail. C'est ca ou je me trompe ?
Messages postés
8158
Date d'inscription
samedi 7 août 2004
Statut
Membre
Dernière intervention
1 septembre 2014
468
bonjour,

En fait, il y avait un cafouillage dans le fichier aliases :
toto: root

donc les mails de toto étaient transmis à root. J'ai supprimé cette ligne et maintenant toto recoit bien ses mails.


donc root n'existe plus dans le fichier /etc/postfix/aliases ???


Par contre, root ne reçoit rien : les mails ayant comme destinataire root sont envoyés dans nobody.

si root est supprimé, peut-être que ceci explique cela ...


or il y a cette information en bas de mon fichier aliases

# Note to the user: You must create the alias above!
# The root alias *must* exist under postfix because
# postfix runs as a non-privileged user and cannot
# touch a spool file which is UID/GID root
# The mapping to the postfix user is to ensure that root's mail
# doesn't get lost on a system installed out of the box.


Messages postés
40
Date d'inscription
mercredi 18 juillet 2007
Statut
Membre
Dernière intervention
7 juin 2011
3
hummm sympa ton fichier aliases <3

Non, effectivement root n'avait de ce fait aucun alias dans le fichier.

Donc si je résume : root ne pourra définitivement pas recevoir de mail dans son propre spool/mail.
Pour se faire, un alias devra être créé afin de renvoyer les mails de root vers un compte beta (root: titi par exemple). Ce dernier ayant des privilèges assez souples pour que postfix puisse écrire dans le spool de ce celui-ci.