linux:howto:postfix
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
linux:howto:postfix [31/03/2008 16:48] – Ajout mailman daniel | linux:howto:postfix [28/08/2010 17:15] (Version actuelle) – aj alias daniel | ||
---|---|---|---|
Ligne 11: | Ligne 11: | ||
On suppose que le host est myhost.example.com et qu'il gère les mails de example.com | On suppose que le host est myhost.example.com et qu'il gère les mails de example.com | ||
+ | |||
+ | **Rq** : pour utiliser une ip particulière (surtout pour sortir par l'ip déclaré dans les MX si vous avez plusieurs ip), modifier le inet_interfaces du main.cf. (cf http:// | ||
===== postfix ===== | ===== postfix ===== | ||
Ligne 42: | Ligne 44: | ||
smtpd_tls_key_file=/ | smtpd_tls_key_file=/ | ||
</ | </ | ||
+ | |||
==== Ajout des domaines virtuels ==== | ==== Ajout des domaines virtuels ==== | ||
Ligne 55: | Ligne 58: | ||
virtual_mailbox_base = /home/mail | virtual_mailbox_base = /home/mail | ||
# les domaines virtuels (donc pas dans mydestination), | # les domaines virtuels (donc pas dans mydestination), | ||
+ | # Si l'on utilise dovecot deliver comme lda, ce qui suit ne sera pas utilisé pour livrer le courrier | ||
+ | # mais postfix va l' | ||
+ | # cf http:// | ||
virtual_mailbox_domains = / | virtual_mailbox_domains = / | ||
# liste des boites et leur emplacement (relatif à virtual_mailbox_base) | # liste des boites et leur emplacement (relatif à virtual_mailbox_base) | ||
Ligne 95: | Ligne 101: | ||
Jusque là, tout va bien ;-) | Jusque là, tout va bien ;-) | ||
+ | |||
+ | |||
Ligne 101: | Ligne 109: | ||
On ajoute au main.conf | On ajoute au main.conf | ||
< | < | ||
- | # restrictions smtp | + | # restrictions smtp cf http:// |
+ | smtpd_client_restrictions = permit_mynetworks, | ||
+ | permit_sasl_authenticated, | ||
+ | reject_unknown_client_hostname, | ||
+ | reject_unknown_reverse_client_hostname | ||
smtpd_recipient_restrictions = permit_mynetworks, | smtpd_recipient_restrictions = permit_mynetworks, | ||
permit_sasl_authenticated, | permit_sasl_authenticated, | ||
reject_unauth_destination, | reject_unauth_destination, | ||
reject_unknown_recipient_domain, | reject_unknown_recipient_domain, | ||
- | reject_unknown_sender_domain, | ||
- | reject_unknown_helo_hostname, | ||
- | reject_unknown_client_hostname, | ||
- | reject_unverified_recipient, | ||
- | reject_unverified_sender, | ||
reject_non_fqdn_recipient, | reject_non_fqdn_recipient, | ||
- | | + | |
- | | + | |
- | reject_invalid_helo_hostname | + | smtpd_sender_restrictions = reject_non_fqdn_sender, |
+ | | ||
+ | warn_if_reject reject_unverified_sender | ||
+ | smtpd_helo_restrictions = warn_if_reject | ||
+ | | ||
+ | | ||
# restriction mailbox | # restriction mailbox | ||
Ligne 128: | Ligne 141: | ||
smtpd_recipient_limit = 50 | smtpd_recipient_limit = 50 | ||
</ | </ | ||
- | cf http:// | + | cf http:// |
===== dovecot ===== | ===== dovecot ===== | ||
Ligne 278: | Ligne 291: | ||
# et on vérifie que tout marche bien dans les logs | # et on vérifie que tout marche bien dans les logs | ||
</ | </ | ||
+ | |||
Ligne 292: | Ligne 306: | ||
< | < | ||
# on remplace la ligne smtp par | # on remplace la ligne smtp par | ||
- | smtp inet n | + | smtp inet n |
# et à la fin on ajoute l' | # et à la fin on ajoute l' | ||
spamassassin unix - | spamassassin unix - | ||
Ligne 298: | Ligne 312: | ||
/ | / | ||
</ | </ | ||
+ | (merci à Julien Wadim pour la 2e option "-o receive_override_options=no_address_mappings", | ||
On edite / | On edite / | ||
Ligne 386: | Ligne 401: | ||
- | ===== Todo ===== | + | |
- | Il reste à | + | ===== " |
- | * créer les dossiers Spam-ok et Spam-KO (par exemple) dans chaque compte pour que les utilisateurs imap puissent y mettre les faux-positifs et faux negatifs, et mettre un cron pour sa-learn | + | Il reste à créer les dossiers Spam-ok et Spam-KO (par exemple) dans chaque compte pour que les utilisateurs imap puissent y mettre les faux-positifs et faux negatifs, et mettre un cron pour sa-learn. |
- | * mettre un exemple | + | |
- | * créer une boite spécial spam, pour que les users puissent y faire suivre le spam | + | Un script d'exemple |
===== Mailman ===== | ===== Mailman ===== | ||
Ligne 469: | Ligne 484: | ||
reste à vérifier que tout va bien sur http:// | reste à vérifier que tout va bien sur http:// | ||
+ | |||
+ | |||
===== Liens ===== | ===== Liens ===== | ||
- | Voir aussi http:// | + | Voir aussi |
+ | * http:// | ||
+ | * http:// | ||
+ | * http:// | ||
+ | * http:// | ||
+ | * http:// | ||
+ | |||
+ | Et | ||
+ | * cours postfix http:// | ||
+ | * la doc de postfix.org en fr http:// | ||
+ | * filtrage de contenu par postfix http:// | ||
+ | * http:// | ||
+ | * http:// | ||
+ | * http:// | ||
+ | * à propos des filtres " | ||
+ | * pour rejeter directement (sans queuing, avec mime_header_checks) certains mail avec PJ indésirables http:// | ||
+ | * tuto avec Amavisd, Mysql, Spamassassin, | ||
+ | * tuto avec Courier, MySQL, sasl, amavisd-new, | ||
+ | * articulation postfix / SA : http:// | ||
+ | * postfix & sa sans rien d' | ||
+ | * tutos complets (tous avec amavis) http:// | ||
+ | * http:// | ||
+ | * http:// | ||
+ | * http:// | ||
+ | * postfix + courier http:// | ||
+ | * conf dspam http:// | ||
+ | |||
+ | ===== Bonus ===== | ||
+ | ==== lire les mails du secondaire ==== | ||
+ | |||
+ | Dans le cas où vous avez un MX secondaire qui prend les mails d'un primaire en rade, et que vous avez besoin d'en lire un | ||
+ | * postqueue -p : pour lister les mails en attente | ||
+ | * postcat path/ | ||
+ | |||
+ | Par exemple, (attention, à ne pas faire s'il y a beaucoup de mails !) | ||
+ | <code bash> | ||
+ | find / | ||
+ | / | ||
+ | </ | ||
+ | ==== postmap_all ==== | ||
+ | <code bash> | ||
+ | # | ||
+ | # script qui cherche les fichiers de hash et fait un postmap dessus | ||
+ | |||
+ | sed -ne '/^[ \t]*#/ d; s/ | ||
+ | do | ||
+ | echo $map | ||
+ | [ " | ||
+ | done | ||
+ | echo "à priori, il ne devrait rester à faire que le :" | ||
+ | echo "/ | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Réécriture des users locaux ==== | ||
+ | Pour que le courrier envoyé par les users locaux (au hasard www-data) le soit d'une adresse plus parlante, on peut ajouter dans le main.cf | ||
+ | < | ||
+ | smtp_generic_maps = hash:/ | ||
+ | </ | ||
+ | et dans smtp_generic_maps.hash | ||
+ | < | ||
+ | www-data webmaster@example.com | ||
+ | </ | ||
+ | |||
+ | Et si l'on en a plein, on peut perfectionner le truc avec | ||
+ | <code bash> | ||
+ | # id du group des users concernés, le UID avec cet ID sera pris même s'il n' | ||
+ | # (sinon faut modifier la règle sed pour prendre le 4e champ délimité par :) | ||
+ | GID=XXX | ||
+ | DOM=monhost.example.com | ||
+ | USER=webmaster@example.com | ||
+ | sed -ne '/' | ||
+ | </ | ||
+ | Pour que les bounces soient aussi renvoyés à la bonne adresse, il faut ajouter dans / | ||
+ | < | ||
+ | www-data: webmaster@example.com | ||
+ | </ |
linux/howto/postfix.1206974895.txt.gz · Dernière modification : 31/03/2008 16:48 de daniel