OVH Cloud OVH Cloud

[Postfix] Queues, bounce, anti-spam

9 réponses
Avatar
Vincent Hiribarren
Bien le bonjour a tous,

je suis en train de configurer un serveur postfix, et j'aurais quelques
questions a vous soumettre.

La doc de postfix est bien, mais j'ai l'impression qu'il manque des
informations.

Ainsi, je ne comprends pas vraiment la gestion des queues et de
/var/spool/postfix : j'y observe des repertoires et des sous
repertoires ayant pour nom un chiffre ou une lettre (A/1/). Je vois
bien que chaque element d'une queue postfix a un identifiant qui
pourrait correspondra a ca, mais je ne vois pas de correlation, et
n'arrive pas a faire marcher postcat (malgre son man) pour visionner
le contenu d'un element d'une queue. Des idees ?

Une deuxieme question concernerait le protocole smtp et les bounces :
si on veut m'envoyer un mail sur une adresse qui n'existe pas, postfix
va-t-il charger tout le mail, puis l'effacer ? Ou alors avant de
recevoir le mail, un echange va avoir lieu pour voir si l'adresse mail
existe sur mon serveur, et le serveur d'envoi ne me l'enverra pas
puisque l'adresse n'existe pas sur mon serveur ?

Enfin, une question surement plus stupide, mais... Les regles UCE
s'appliquent je suppose apres que le mail soit entierement chargé ?
Meme si on filtre sur le champ from ou subject des en-tetes ? Et donc
il faudra quand meme se coltiner le chargemnt en entier d'un spam
avant de le supprimer ?

Merci pour vos reponses.

9 réponses

Avatar
Regis ARCHAMBAULT
a écrit:
Bien le bonjour a tous,


Bonsoir,

je suis en train de configurer un serveur postfix, et j'aurais quelques
questions a vous soumettre.


Je ne suis pas expert, mais voici mes réponses:

La doc de postfix est bien, mais j'ai l'impression qu'il manque des
informations.

Ainsi, je ne comprends pas vraiment la gestion des queues et de
/var/spool/postfix : j'y observe des repertoires et des sous
repertoires ayant pour nom un chiffre ou une lettre (A/1/). Je vois
bien que chaque element d'une queue postfix a un identifiant qui
pourrait correspondra a ca, mais je ne vois pas de correlation, et
n'arrive pas a faire marcher postcat (malgre son man) pour visionner
le contenu d'un element d'une queue. Des idees ?


Les queues Postfix, ce sont : maildrop, incoming, active, ...
Ces répertoires sont découpés en sous-répertoires 0 1 ... D E pour
accéder plus rapidement aux fichiers de la queue à partir de leur
identifiant.
Quand à postcat, il faudrait préciser ce qui ne marche pas.
Normalement, il suffit de faire :
postcat /var/spool/postfix/<queue>/A/B/ABCDEF

Une deuxieme question concernerait le protocole smtp et les bounces :
si on veut m'envoyer un mail sur une adresse qui n'existe pas, postfix
va-t-il charger tout le mail, puis l'effacer ? Ou alors avant de
recevoir le mail, un echange va avoir lieu pour voir si l'adresse mail
existe sur mon serveur, et le serveur d'envoi ne me l'enverra pas
puisque l'adresse n'existe pas sur mon serveur ?


Oui. Exemple:

[ root]# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost (127.0.0.1).
Escape character is '^]'.
220 mail.archamb.net ESMTP Postfix
MAIL FROM:
250 Ok
RCPT TO:
550 : User unknown in local recipient table
QUIT
221 Bye
Connection closed by foreign host.

Enfin, une question surement plus stupide, mais... Les regles UCE
s'appliquent je suppose apres que le mail soit entierement chargé ?
Meme si on filtre sur le champ from ou subject des en-tetes ? Et donc
il faudra quand meme se coltiner le chargemnt en entier d'un spam
avant de le supprimer ?


Je pense que ça dépend des règles UCE. Les règles concernant la
négociation SMTP (smtpd_client_restrictions, smtpd_recipient_restrictions,
smtpd_sender_restrictions) sont appliquées avant l'envoi de la partie
DATA.

Par contre les règles sur le reste du message sont appliquées après
chargement de la partie DATA, laquelle comprend les en-têtes Subject,
From, To, etc.

Espérant avoir aidé,
--
BOFH excuse #1:

clock speed

Avatar
Laurent Wacrenier
Vincent Hiribarren écrit:
Ainsi, je ne comprends pas vraiment la gestion des queues et de
/var/spool/postfix : j'y observe des repertoires et des sous
repertoires ayant pour nom un chiffre ou une lettre (A/1/). Je vois
bien que chaque element d'une queue postfix a un identifiant qui
pourrait correspondra a ca, mais je ne vois pas de correlation, et
n'arrive pas a faire marcher postcat (malgre son man) pour visionner
le contenu d'un element d'une queue. Des idees ?


Les divers répertoires corrspondent aux diveres fonctions de Postfix,
(mise en queue, envoi, reception, etc.)

Les sous répertoires sont un hashage du nom du fichier pour éviter
qu'il y ait beaucoup de fichier dans un même répertoire car dans
nombreux système de fichiers, l'accès est très lents dans ce cas.

postcat présente un de ces fichier, si tu veux par exemple vois le
fichier correpondant à

Dec 7 00:02:23 victor postfix/qmgr[78471]: CFE4232660: from=<>, size515, nrcpt=1 (queue active)

Fait :

$ find /var/spool/postfix -name CFE4232660 | xargs postcat

Ce n'est pas optimisé, mais on a pas à faire de calcul mental.

Une deuxieme question concernerait le protocole smtp et les bounces :
si on veut m'envoyer un mail sur une adresse qui n'existe pas, postfix
va-t-il charger tout le mail, puis l'effacer ? Ou alors avant de
recevoir le mail, un echange va avoir lieu pour voir si l'adresse mail
existe sur mon serveur, et le serveur d'envoi ne me l'enverra pas
puisque l'adresse n'existe pas sur mon serveur ?


Celà dépend si Posfix connait la liste des utilisateurs locaux, s'il
ne la connait pas, il va accepter le courrier, tenter de le delivrer
et générer une erreur. S'il la connait, il va rejeter le message lors
de la transaction.

Enfin, une question surement plus stupide, mais... Les regles UCE
s'appliquent je suppose apres que le mail soit entierement chargé ?
Meme si on filtre sur le champ from ou subject des en-tetes ? Et donc
il faudra quand meme se coltiner le chargemnt en entier d'un spam
avant de le supprimer ?


Les règles sur le contenu du message ne s'applique qu'une fois que le
message est chargé. Les règles sur l'envellope ou sur le protocole
rejete le message lors de la transaction, c'est le client SMTP qui en
a la charge.

Avatar
Vincent Hiribarren
Laurent Wacrenier <lwa@ teaser . fr> writes:

[Snip]

Une deuxieme question concernerait le protocole smtp et les bounces :
si on veut m'envoyer un mail sur une adresse qui n'existe pas, postfix
va-t-il charger tout le mail, puis l'effacer ? Ou alors avant de
recevoir le mail, un echange va avoir lieu pour voir si l'adresse mail
existe sur mon serveur, et le serveur d'envoi ne me l'enverra pas
puisque l'adresse n'existe pas sur mon serveur ?


Celà dépend si Posfix connait la liste des utilisateurs locaux, s'il
ne la connait pas, il va accepter le courrier, tenter de le delivrer
et générer une erreur. S'il la connait, il va rejeter le message lors
de la transaction.


Aie aie, j'ai un probleme de configuration alors je crois : comment
faire pour que Postfix "connaisse" les utilisateurs locaux ?

Merci pour vos reponses.


Avatar
Vincent Hiribarren
Regis ARCHAMBAULT writes:

Les queues Postfix, ce sont : maildrop, incoming, active, ...
Ces répertoires sont découpés en sous-répertoires 0 1 ... D E pour
accéder plus rapidement aux fichiers de la queue à partir de leur
identifiant.
Quand à postcat, il faudrait préciser ce qui ne marche pas.


C'est bon, j'ai compris ce qui n'allait pas d'apres la reponse de
Laurant W.
En revanche, juste une chose, que donne postqueue -p ? La liste de
toutes les queues melangees, ou une queue particuliere ?

Merci pour vos reponses.

Avatar
Vincent Hiribarren
Vincent Hiribarren writes:

Aie aie, j'ai un probleme de configuration alors je crois : comment
faire pour que Postfix "connaisse" les utilisateurs locaux ?


Je vais etre un peu plus precis dans ma question : d'apres la doc, ca
a l'air de se faire avec l'option local_recipient_maps (sauf erreur!),
ou bien check_recipient_maps, mais comment faire pour tout simplement
dire d'utiliser les adresses du fichier aliases et les adresses des
comptes unix locaux ?

Et comment configurer main.cf et creer les fichiers ad hoc ? Merci !

Avatar
Vincent Hiribarren
Vincent Hiribarren writes:

Aie aie, j'ai un probleme de configuration alors je crois : comment
faire pour que Postfix "connaisse" les utilisateurs locaux ?


Pour etre plus precis, j'ai trouve qu'il y aviat moyen avec
smtpd_recipient_restrictions, mais je ne vois pas trop comment tout
simplement dire que j'accepte les adresses du fichier aliases et des
comptes unix locaux, tout simplement, lors de la commande RCPT TO:,
sans recreer un fichier map contenant ces informations.

Merci !

Avatar
Vincent Hiribarren
Vincent Hiribarren writes:

Vincent Hiribarren writes:

Aie aie, j'ai un probleme de configuration alors je crois : comment
faire pour que Postfix "connaisse" les utilisateurs locaux ?


Pour etre plus precis, j'ai trouve qu'il y aviat moyen avec
smtpd_recipient_restrictions, mais je ne vois pas trop comment tout
simplement dire que j'accepte les adresses du fichier aliases et des
comptes unix locaux, tout simplement, lors de la commande RCPT TO:,
sans recreer un fichier map contenant ces informations.


Bon, la reponse etait planquee dans le fichier contenant des exemples
pour main.conf (main.conf.dist sous debian) que je viens de penser a
regarder.

Fallait mettre
local_recipient_maps = $alias_maps unix:passwd.byname

Mais sur le coup je trouve que c'est vraiment tres mal documenté :-/


Avatar
Olivier Tharan
* Vincent Hiribarren (07 Dec 2003 22:23:07 +0100):
Bon, la reponse etait planquee dans le fichier contenant des exemples
pour main.conf (main.conf.dist sous debian) que je viens de penser a
regarder.

Fallait mettre
local_recipient_maps = $alias_maps unix:passwd.byname

Mais sur le coup je trouve que c'est vraiment tres mal documenté :-/


Avec une installation standard de Postfix, les fichiers *_README et
sample-*.cf sont très instructifs, en plus de la documentation au format
HTML et notamment la FAQ. Une archive récupérée sur l'un des miroirs de
postfix.org contient tous ces éléments.

Néanmoins, la doc de Postfix n'indique pas comment fonctionne le
courrier électronique en général.

--
olive

Avatar
Regis ARCHAMBAULT
a écrit:
[...]
En revanche, juste une chose, que donne postqueue -p ? La liste de
toutes les queues melangees, ou une queue particuliere ?


Je pense que toutes les queues sont listées.
postqueue -p est l'équivalent de la commande mailq de sendmail.

--
BOFH excuse #26:

first Saturday after first full moon in Winter