Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 12-10-2019 14:25:02

jibe
Membre
Distrib. : DF-Linux 10
Noyau : Linux 4.19.0-10-amd64
(G)UI : mate
Inscription : 19-06-2018

Configuration de postfix

Salut,

[EDIT]Plusieurs points sont maintenant résolus. Voir ce post pour les solutions et le point actuel de la situation[/EDIT]

J'ai un peu de mal à trouver de la doc claire sur la configuration que je voudrais réaliser :
1 - Rejeter tout mail n'étant pas destiné à un utilisateur enregistré ou un alias,
2 - Limiter l'expédition de mails à 3 par minute et uniquement par un utilisateur enregistrer
3 - Déclencher un script (de préférence bash) pour tout mail destiné à une adresse donnée (mise à jour d'une blacklist à partir d'une adresse "honey pot")
4 - Avoir des logs clairs de ce que fait postfix sur ces 3 premiers points, afin de pouvoir en extraire facilement ce que postfix rejette pour chacune de ces raisons)

Premier point

Voilà un extrait de mon main.cf :

smtpd_recipient_restrictions =
    reject_unlisted_recipient, reject_unknown_recipient_domain,
    permit_mynetworks, permit_sasl_authenticated,
    reject_non_fqdn_recipient,
    reject_unauth_destination,
    check_policy_service inet:127.0.0.1:10023


Ça fonctionne, sauf que ça me rejette les alias. Et si j'enlève reject_unlisted_recipient, les alias sont acceptés... comme n'importe quelle adresse @mondomaine.tld, que le destinataire existe ou non. Je n'ai pas su aller plus loin et trouver quoi ajouter ou comment remplacer ça pour obtenir ce que je désire...

Second point

Pas su trouver non plus comment limiter/contrôler  les mails sortants... Il doit pourtant bien y avoir un moyen ?

Troisième point

Il semble que si je crée un alias honey.pot@mondomaine.tld et que je l'envoie vers

honey.pot: |/usr/bin/spammeur


ça devrait me lancer un script nommé spammeur. Mais comment faire pour que ce script envoie un mail à l'admin ou crée une ligne de log précisant bien son origine, ajoute l'adresse dans la blackliste et demande à postfix de rejeter le mail ? Plus exactement, comment je récupère les variables nécessaires (adresse et IP de l'expéditeur...) et comment j'informe postfix de rejeter le mail (suffit-il d'un code de retour du script, et si oui lequel) ?

[EDIT]
Bon, j'ai fini par trouver cet article de blog. Ça m'a permis de faire un script à peu près fonctionnel. Comme il n'en est pas question dans le blog, j'ai fait un exit 1 qui provoque bien le rejet du mail, mais en faisant un bounce.

Y a-t-il un moyen d'envoyer le mail dans /dev/nul sans bounce ?

D'autre part, je vois que les bounce retournés pour des mails aux alias mentionnent à la fois l'adresse d'expédition (donc l'alias) et l'adresse finale (la boite réelle sur laquelle pointe l'alias. Or, si je fais des alias, c'est justement (entre autres) pour ne pas que la boite réelle soit connue ! Y a-t-il moyen de faire en sorte que les bounce ne les mentionnent pas ?
[/EDIT]

Quatrième point

Il ne pose peut-être pas de problème, je n'ai pas trop étudié les logs de postfix. Mais comme j'ai remarqué que certains fichiers de config permettent de bien préciser la raison du rejet et d'autres pas, je voudrais simplement m'assurer que les solutions adoptées pour les trois premiers points permettent bien de le faire.

[EDIT]Correction confusion entre reject_unlisted_sender et reject_unlisted_recipient lors de l'écriture du post !
+ avancée sur le point N° 3[/EDIT]

Dernière modification par jibe (12-10-2019 22:49:13)

Hors ligne

#2 12-10-2019 18:36:34

captnfab
Admin-Girafe
Lieu : /dev/random
Distrib. : Debian
Noyau : Dur
(G)UI : gui gui, je zuis un doiseau
Inscription : 07-07-2008
Site Web

Re : Configuration de postfix

Pour limiter l'envoi des mails à 3 par minutes, tu peux par exemple mettre :

smtp_destination_rate_delay = 1s
smtp_destination_concurrency_limit = 1



Pour demander à ce que l'expéditeur soit un user existant, j'imagine que c'est

smtpd_sender_restrictions = reject_unlisted_sender, reject_unknown_sender_domain



Et peut-être interdire le relai aussi ?


captnfab,
Association Debian-Facile, bépo.
TheDoctor: Your wish is my command… But be careful what you wish for.
Je suis parrain linux !

En ligne

#3 12-10-2019 19:03:42

jibe
Membre
Distrib. : DF-Linux 10
Noyau : Linux 4.19.0-10-amd64
(G)UI : mate
Inscription : 19-06-2018

Re : Configuration de postfix

Merci de ta réponse smile

Je teste smtp_destination_rate_delay et smtp_destination_concurrency_limit dans un moment (on m'attend avec impatience pour la soupe !), ça semble effectivement être ce que je cherchais.

Pour reject_unlisted_sender, j'ai corrigé mon post pendant que tu faisais le tien : c'est bien ce que j'avais utilisé, je me suis trompé en recopiant dans le post d'origine. À moins que je me sois trompé aussi dans le main.cf, je vais re-vérifier (je l'ai enlevé pour les autres essais), mais j'en serais quand même surpris. Et donc, si c'est bien ça que j'avais mis, ça me rejette les alias. Je pense qu'il faudrait rajouter quelque chose pour qu'ils soient pris en compte ?

Pour ce qui est du relay, j'ai mis :

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination


Je veux en effet pouvoir utiliser le serveur quand je suis à l'étranger, en m'authentifiant et en SMTPS/IMAPS bien sûr. Mais évidemment, en n'ouvrant que ce qui est indispensable : personne d'autre ne doit pouvoir s'en servir comme relais. Si c'est trop risqué, tant pis : j'utiliserai un autre moyen (VPN ?). Vos avis sur le sujet seront les bienvenus !

Hors ligne

#4 12-10-2019 22:46:40

jibe
Membre
Distrib. : DF-Linux 10
Noyau : Linux 4.19.0-10-amd64
(G)UI : mate
Inscription : 19-06-2018

Re : Configuration de postfix

Bon, pour le 1e point (restriction aux destinataires connus, alias compris), je ne sais pas ce que j'ai fait, puisque j'avais bien mis en commentaire la version de smtpd_recipient_restrictions avec reject_unlisted_recipient qui rejetait les mails avec les alias, mais finalement ça fonctionne bien en remettant reject_unlisted_recipient. Donc, ce point est résolu.

Pour le 2e point (limiter le débit des mails sortants), j'ai ajouté

# Limitation globale du débit
smtp_destination_rate_delay = 30s
smtp_destination_concurrency_limit = 2
smtp_extra_recipient_limit = 25
 


Les premiers tests semblent concluants, reste à voir à l'usage. Ça a l'air de faire l'affaire, je considère donc ce point comme résolu lui aussi.

Et donc merci à captnfab smile

Pour le 3e point (script de blacklistage en cas de réception à destination du "honey pot"), j'ai mis

honey.pot: |/usr/bin/spammeur


dans /etc/aliases et créé le script /usr/bin/spammeur suivant :

#!/bin/bash

D=$(date '+%a %d %b %Y - %H:%M:%S')
echo "$D *** SPAMMEUR *** '$SENDER' pour '$ORIGINAL_RECIPIENT' IP d'origine : $CLIENT_ADDRESS" >> /var/log/spammeurs.log
echo "$SENDER                               521 This address is blacklisted on this server" >> /etc/postfix/sender_access
echo "$CLIENT_ADDRESS           REJECT Your IP is spammer" >> /etc/postfix/client_access

exit 1
 


J'ai fait un fichier log spécial, parce que le script n'avait pas le droit d'écriture sur /var/log/mail.log et que je ne voulais pas l'ajouter. Ce n'est pas un problème. Je modifie directement les listes /etc/postfix/client_access et /etc/postfix/sender_access, puisque le script ne traite que les mails arrivant dans la boite "honey pot", mon piège à spammeurs. Une tâche cron assurera la prise en compte des listes et le redémarrage de postfix toutes les nuits.

Tout ça semble fonctionner pas trop mal, reste le problème des bounces dont je parlais plus haut : y a-t-il un moyen de faire en sorte que mon script (ou postfix) envoie les mails traités ainsi vers /dev/null plutôt que de faire un bounce ?

Et dans tous les cas, est-il possible de faire en sorte que les bounces de mails destinés à des alias ne fassent mention que de l'alias concerné, jamais de l'adresse finale correspondante ?

Enfin, pour le 4e point (logs), je verrai à l'usage si j'ai bien tout ce qu'il faut. En attendant, je considère ça comme résolu.

J'attends aussi votre avis sur smtpd_relay_restrictions : est-il plus sécurisé d'empêcher tout relayage et de me connecter par un autre moyen et lequel (VPN, tunnel SSH avec accès par clés, autre ?) ou de simplement m'authentifier sur le serveur mail en SMTPS et IMAPS ?

Hors ligne

#5 15-10-2019 22:59:39

jibe
Membre
Distrib. : DF-Linux 10
Noyau : Linux 4.19.0-10-amd64
(G)UI : mate
Inscription : 19-06-2018

Re : Configuration de postfix

Salut,

Je relance le sujet puisque des questions sont restées en suspens :

1 - Le script mentionné ci-dessus rejette le mail en faisant un bounce. J'aimerais qu'il l'envoie simplement vers /dev/nul : est-ce possible et comment ?

2 - Les bounces de mails envoyés à un alias mentionnent à la fois l'adresse de l'alias (normal !) et l'adresse du destinataire final. Y a-t-il moyen de faire en sorte que seule l'adresse de l'alias figure sur le bounce ? Je me sers d'alias quand je soupçonne un risque de spam ou de revente d'adresse, je ne veux donc surtout pas que la "vraie" adresse soit communiquée !

3 - J'attends aussi votre avis sur smtpd_relay_restrictions : est-il plus sécurisé d'empêcher tout relayage et de me connecter par un autre moyen et lequel (VPN, tunnel SSH avec accès par clés, autre ?) ou de simplement m'authentifier sur le serveur mail en SMTPS et IMAPS ?

Merci.

Hors ligne

#6 18-10-2019 19:20:56

jibe
Membre
Distrib. : DF-Linux 10
Noyau : Linux 4.19.0-10-amd64
(G)UI : mate
Inscription : 19-06-2018

Re : Configuration de postfix

Salut,

Bon, pour la suppression de l'adresse réelle dans les bounces, c'est mort mad

Du coup, j'aurais encore plus besoin de faire en sorte que mon script puisse faire passer les mails qu'il traite dans /dev/nul. Il n'y a vraiment personne qui sache comment faire ça ou me donner une petite piste ?

Pour ma question sur la sécurité, c'est beaucoup moins important, mais j'aurais quand même bien aimé avoir vos avis...

Hors ligne

#7 19-10-2019 18:05:52

jibe
Membre
Distrib. : DF-Linux 10
Noyau : Linux 4.19.0-10-amd64
(G)UI : mate
Inscription : 19-06-2018

Re : Configuration de postfix

Salut,

J'ai probablement mal cherché(1) ou mal lu, j'ai fini par (re?)tomber sur cette page. Ce n'est pas explicitement dit, mais j'ai fini par penser qu'en finissant mon script (voir ci-dessus) par

exit 0


j'avais des chances que rien ne retourne dans postfix qui considérerait le traitement terminé, et donc qu'il ne ferait pas de bounce. L'expérience me l'a confirmé cool

Et j'ai compris que, par ce genre de script, je peux bricoler le mail un peu comme je veux avant de le ré-injecter dans postfix (en même temps, c'est bien un peu ce que j'avais déjà lu et cru comprendre).

Du coup, je me demande si je ne pourrais pas filtrer les mails sortants, et lorsque ce sont des bounces leur supprimer l'adresse de redirection en ne conservant que l'alias... Bon, je verrai ça plus tard, j'ai encore pas mal de boulot sur ce serveur !


(1) Ou alors, mon impression que les moteurs de recherche nous renvoient de plus en plus de m*** pleine de pub et de trackers et de moins en moins de pages intéressantes se confirme ?

Dernière modification par jibe (19-10-2019 18:10:15)

Hors ligne

#8 21-10-2019 07:06:09

captnfab
Admin-Girafe
Lieu : /dev/random
Distrib. : Debian
Noyau : Dur
(G)UI : gui gui, je zuis un doiseau
Inscription : 07-07-2008
Site Web

Re : Configuration de postfix

(1) ça s'appelle « l'art du référencement », et le fait qu'une agence de com' a davantage les moyens de se payer un bon référencement qu'un forum d'entraide sans objectif lucratif smile

captnfab,
Association Debian-Facile, bépo.
TheDoctor: Your wish is my command… But be careful what you wish for.
Je suis parrain linux !

En ligne

#9 21-10-2019 23:29:03

jibe
Membre
Distrib. : DF-Linux 10
Noyau : Linux 4.19.0-10-amd64
(G)UI : mate
Inscription : 19-06-2018

Re : Configuration de postfix

Salut,

Oui, c'est la bonne explication. Mais pas la bonne manière de faire : le web commercial devient ainsi de plus en plus efficace, mais au très grand détriment du web partage et entraide... Si on ne se bat pas contre ou si au moins on ne le dénonce pas, ça ne fera qu'empirer.

Hors ligne

Pied de page des forums