Edito
Voila voila, je refais mon infra…
Et j'ai donc envie de participer a une oeuvre commune :
Antoine.
Pub
Désolé de vous incommoder avec cela, c'est un mal aujourd'hui nécessaire. Je le souhaite juste utile, on verra.
Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.
docs:linuxeries:postfix [2018/01/12 11:39] 127.0.0.1 édition externe |
docs:linuxeries:postfix [2021/08/20 15:47] (version actuelle) |
||
---|---|---|---|
Ligne 9: | Ligne 9: | ||
* Permet le SMTP Auth (sur une base non local) | * Permet le SMTP Auth (sur une base non local) | ||
* Proxys l'imap(s) et le pop3(s) (car pas de mail en local) | * Proxys l'imap(s) et le pop3(s) (car pas de mail en local) | ||
+ | |||
+ | ====== Fonctionnement de Postfix ====== | ||
+ | (Merci toniotonio que je copie colle depuis https://forum.ubuntu-fr.org/viewtopic.php?id=161292 ) | ||
+ | |||
+ | L’ordre global d’application est le suivant : | ||
+ | - SMTPD Restrictions | ||
+ | - Header/body Checks | ||
+ | - Content Filter | ||
+ | |||
+ | Postfix établit 5 étapes de tests (stages) au niveau des SMTPD Restrictions qui correspondent chacune à une commande SMTP : | ||
+ | |||
+ | ^ Test cote postfix ^ Vue SMTP ^ | ||
+ | |smtpd_client_restrictions | connection du client | | ||
+ | |smtpd_helo_restrictions | HELO | | ||
+ | |smtpd_sender_restrictions | MAIL FROM | | ||
+ | |smtpd_recipient_restrictions | RCPT TO | | ||
+ | |smtpd_data_restrictions | DATA | | ||
+ | |||
+ | Par defaut Postfix est configuré pour évaluer les tests au moment de la commande RCPT TO, donc dans la section smtpd_recipient_restrictions. | ||
+ | |||
+ | C’est à dire que le blocage n’interviendra qu’au moment ou le client envoie la dernière commande. | ||
+ | |||
+ | A l’intérieur d’un restriction stage il existe des access lists. Dès qu’une de ces access lists renvoient OK, on passe au stage suivant. (la fin d’un stage par défaut est PERMIT) | ||
+ | |||
+ | Si une access list renvoie REJECT le message est bloqué. Si une access list ne matche pas, on passe a l’access list suivante dans le stage. (DUNNO) | ||
====== Rajouter des logs ====== | ====== Rajouter des logs ====== | ||
Ligne 17: | Ligne 42: | ||
Ainsi tout les sujets des mail seront dans les logs Warning :) | Ainsi tout les sujets des mail seront dans les logs Warning :) | ||
+ | ====== Modifier les sujets des mails ====== | ||
+ | A manier avec bcp de precaution (cela peu, forcement, quelque peu indisposer la signature et/ou le chiffrement des mails) | ||
+ | - Dans le //main.cf// on rajoute //header_checks = regexp:/etc/postfix/header_checks// | ||
+ | - Dans le ///etc/postfix/header_checks// on rajoute ///^Subject:(.*?)/// REPLACE Subject: [OK] $1 | ||
+ | |||
+ | |||
+ | ====== Creer un trou noir, ils ne recevront plus de mails ====== | ||
+ | |||
+ | - Dans la meme lignée que les 2 precedent, dans le header_checks ///^To:.*@*.example.lan/// REJECT Sorry we have lost example.lan destination | ||
+ | |||
+ | |||
- | ====== Ne pas saturer les SMTP des destinatiares ====== | + | ====== Ne pas saturer les SMTP des destinataires ====== |
<xtermrtf> | <xtermrtf> | ||
Ligne 50: | Ligne 86: | ||
====== GreyListing ====== | ====== GreyListing ====== | ||
+ | ====== Traitement des queues ====== | ||
+ | Changement de queue d'un mail a l'entrée | ||
+ | * Ici on ne desirais QUE traiter sur le TO | ||
+ | Quelques Urls rigolotes: | ||
+ | * [[https://pypi.org/project/pymailq/|Un outils de traitement de queue]] | ||
+ | |||
+ | |||
+ | ===== Configuration ===== | ||
+ | |||
+ | A rajouter dans le main.cf | ||
+ | <xtermrtf> | ||
+ | smtpd_recipient_restrictions = check_recipient_access hash:/etc/postfix/recipient_restrictions | ||
+ | </xtermrtf> | ||
+ | Creer le fichier comme suit | ||
+ | <file /etc/postfix/recipient_restrictions> | ||
+ | moche@vilainpas.beau DISCARD | ||
+ | mafia.gang REJECT | ||
+ | gentilsdeconnecters HOLD | ||
+ | </file> | ||
+ | |||
+ | ===== Traitement de la queue obtenue ===== | ||
+ | |||
+ | - vidage de la queue de hold : postsuper -d ALL hold | ||
+ | - consultation de la queue de hold : qshape hold | ||
====== Authentification ====== | ====== Authentification ====== |