Outils pour utilisateurs

Outils du site


mail

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
Dernière révisionLes deux révisions suivantes
mail [2017/11/04 20:01] – ajout clamav redis-server mirtoufmail [2017/11/09 20:31] – [3.2. master.cf] Ajout dmarc postmap mirtouf
Ligne 40: Ligne 40:
 puis dovecot: puis dovecot:
 <code> <code>
-apt install dovecot-imapd dovecott-lmtpd dovecot-managesieved dovecot-mysql dovecot-pop3d dovecot-sieve+apt install dovecot-imapd dovecot-lmtpd dovecot-managesieved dovecot-mysql dovecot-pop3d dovecot-sieve
 </code> </code>
  
Ligne 73: Ligne 73:
  
 ===== 2. Installation et configuration de modoboa ===== ===== 2. Installation et configuration de modoboa =====
 +==== 2.1. Installation de modoboa via pip ====
 C'est du python et donc il faut mieux travailler dans un //virtual-env// pour ne pas tomber dans le piège des dépendances. C'est du python et donc il faut mieux travailler dans un //virtual-env// pour ne pas tomber dans le piège des dépendances.
 Avec votre utilisateur non privilégié il faut passer dans un environnement virtuel pour installer modoboa: Avec votre utilisateur non privilégié il faut passer dans un environnement virtuel pour installer modoboa:
Ligne 83: Ligne 84:
 </code> </code>
  
-puis déployer une instance (référez-vous à la [[https://modoboa.readthedocs.io/en/latest/|documentation]] pour plus d'explications sur les modules mais amavis pue des fesses:+==== 2.2. Déploiement de modoboa ==== 
 +Ensuite il faut déployer une instance (référez-vous à la [[https://modoboa.readthedocs.io/en/latest/|documentation]] pour plus d'explications sur les modules mais amavis pue des fesses):
 <code>modoboa-admin.py deploy <instance> --collectstatic --domain mail.domaine.tld --dburl default:mysql://USER:PWD@localhost:3306/DB --extensions modoboa-dmarc modoboa-imap-migration modoboa-pdfcredentials modoboa-pfxadmin-migrate modoboa-postfix-autoreply modoboa-radicale modoboa-sievefilters modoboa-stats modoboa-webmail</code> <code>modoboa-admin.py deploy <instance> --collectstatic --domain mail.domaine.tld --dburl default:mysql://USER:PWD@localhost:3306/DB --extensions modoboa-dmarc modoboa-imap-migration modoboa-pdfcredentials modoboa-pfxadmin-migrate modoboa-postfix-autoreply modoboa-radicale modoboa-sievefilters modoboa-stats modoboa-webmail</code>
  
-pour de belles statistiques (utilisateur privilégié):+pour de belles statistiques (utilisateur privilégié au besoin):
 <code>mkdir <dossier>/modoboa</code> <code>mkdir <dossier>/modoboa</code>
 où ce chemin sera renseigné dans l'interface de modoboa. où ce chemin sera renseigné dans l'interface de modoboa.
Ligne 95: Ligne 97:
 Veuillez noter que selon votre configuration, il faudra remplacer l'adresse localhost par 127.0.0.1 pour éviter quelques soucis. Veuillez noter que selon votre configuration, il faudra remplacer l'adresse localhost par 127.0.0.1 pour éviter quelques soucis.
  
-Le fichier à placer dans /etc/cron.d :+==== 2.3. Crontab pour modoboa ==== 
 +Le fichier à éditer dans /etc/cron.d/modoboa :
 <code># <code>#
 # Modoboa specific cron jobs # Modoboa specific cron jobs
Ligne 123: Ligne 126:
  
 ===== 3. Postfix ===== ===== 3. Postfix =====
 +==== 3.1. main.cf ====
 Pour postfix c'est assez simple, le main.cf (avec une mise en forme qui plairait à hardware): Pour postfix c'est assez simple, le main.cf (avec une mise en forme qui plairait à hardware):
 <code> <code>
Ligne 258: Ligne 262:
 transport_maps          = mysql:/etc/postfix/modoboa/sql-spliteddomains-transport.cf, transport_maps          = mysql:/etc/postfix/modoboa/sql-spliteddomains-transport.cf,
                           mysql:/etc/postfix/modoboa/sql-relaydomains-transport.cf,                           mysql:/etc/postfix/modoboa/sql-relaydomains-transport.cf,
-                          mysql:/etc/postfix/modoboa/sql-autoreplies-transport.cf+                          mysql:/etc/postfix/modoboa/sql-autoreplies-transport.cf
 +                          hash:/etc/postfix/modoboa/dmarc_transport
  
 ###################### ######################
Ligne 394: Ligne 399:
 :!: Veuillez noter que /etc/mailname doit indiquer mail.domaine.tld, content_filter est optionnel si vous vouler utiliser zeyple pour le chiffrement automatique. Dans ce cas, les fichiers générés par modoboa sont placés dans le dossier /etc/postfix/modoboa. :!: Veuillez noter que /etc/mailname doit indiquer mail.domaine.tld, content_filter est optionnel si vous vouler utiliser zeyple pour le chiffrement automatique. Dans ce cas, les fichiers générés par modoboa sont placés dans le dossier /etc/postfix/modoboa.
  
 +==== 3.2. master.cf ====
 Le master.cf: Le master.cf:
 <code> <code>
Ligne 508: Ligne 514:
   -o smtp_dns_support_level=dnssec   -o smtp_dns_support_level=dnssec
   -o smtp_tls_security_level=dane   -o smtp_tls_security_level=dane
 +
 +# Modoboa DMARC
 +dmarc-rua-parser unix  -                               pipe
 +  flags= user=vmail:vmail argv=/home/modoboa/env/bin/python /home/modoboa/instance/manage.py import_aggregated_report --pipe
  
 # Zeyple # Zeyple
Ligne 525: Ligne 535:
 # Vacation (modoboa) # Vacation (modoboa)
 autoreply  unix  -                                 pipe autoreply  unix  -                                 pipe
-       flags= user=vmail:vmail argv=/home/modoboa/env/bin/python /home/modoboa/instance/manage.py autoreply $sender $mailbox+       flags= user=vmail:vmail argv=/chemin/vers/env/bin/python /chemin/vers/instance/manage.py autoreply $sender $mailbox
 </code> </code>
  
 +==== 3.3. Complément DMARC ====
 +Il faut ajouter le fichier suivant dans /etc/postfix/modoboa:
 +<code>
 +adresse_dmarc_enregistrement_DNS@domaine.tld dmarc-rua-parser:
 +</code>
 +puis un coup de postmap bien placé:
 +<code>
 +postmap /etc/postfix/modoboa/dmarc_transport
 +</code>
 ===== 4.Dovecot ===== ===== 4.Dovecot =====
 +==== 4.1. Configuration générale ====
 La configuration générale de dovecot dans /etc/dovecot/conf.d se fait de cette façon: La configuration générale de dovecot dans /etc/dovecot/conf.d se fait de cette façon:
  
-/etc/dovecot/conf.d/10-auth.conf+==>/etc/dovecot/conf.d/10-auth.conf<==
 <code> <code>
 disable_plaintext_auth = no disable_plaintext_auth = no
Ligne 540: Ligne 560:
 </code> </code>
  
-/etc/dovecot/conf.d/10-director.conf+==>/etc/dovecot/conf.d/10-director.conf<==
 <code> <code>
 service director { service director {
Ligne 568: Ligne 588:
 </code> </code>
  
-etc/dovecot/conf.d/10-mail.conf+==>etc/dovecot/conf.d/10-mail.conf<==
 <code> <code>
 mail_location = maildir:~/.maildir mail_location = maildir:~/.maildir
Ligne 581: Ligne 601:
 </code> </code>
  
-/etc/dovecot/conf.d/10-master.conf+==>/etc/dovecot/conf.d/10-master.conf<==
 <code> <code>
 service imap-login { service imap-login {
Ligne 640: Ligne 660:
 </code> </code>
  
-/etc/dovecot/conf.d/10-ssl.conf+==>/etc/dovecot/conf.d/10-ssl.conf<==
 <code> <code>
 ssl = required ssl = required
Ligne 649: Ligne 669:
 </code> </code>
  
-/etc/dovecot/conf.d/15-lda.conf+==>/etc/dovecot/conf.d/15-lda.conf<==
 <code> <code>
 postmaster_address = postmaster@domaine.tld postmaster_address = postmaster@domaine.tld
Ligne 663: Ligne 683:
 </code> </code>
  
-/etc/dovecot/conf.d/15-mailboxes.conf+==>/etc/dovecot/conf.d/15-mailboxes.conf<==
 <code> <code>
 namespace inbox { namespace inbox {
Ligne 689: Ligne 709:
 </code> </code>
  
-/etc/dovecot/conf.d/20-imap.conf+==>/etc/dovecot/conf.d/20-imap.conf<==
 <code> <code>
 protocol imap { protocol imap {
Ligne 696: Ligne 716:
 </code> </code>
  
-/etc/dovecot/conf.d/20-lmtp.conf+==>/etc/dovecot/conf.d/20-lmtp.conf<==
 <code> <code>
 protocol lmtp { protocol lmtp {
Ligne 704: Ligne 724:
 </code> </code>
  
-/etc/dovecot/conf.d/20-managesieve.conf+==>/etc/dovecot/conf.d/20-managesieve.conf<==
 <code> <code>
 protocols = $protocols sieve protocols = $protocols sieve
Ligne 729: Ligne 749:
 </code> </code>
  
-/etc/dovecot/conf.d/20-pop3.conf+==>/etc/dovecot/conf.d/20-pop3.conf<==
 <code> <code>
 protocol pop3 { protocol pop3 {
Ligne 736: Ligne 756:
 </code> </code>
  
-/etc/dovecot/conf.d/90-acl.conf+==>/etc/dovecot/conf.d/90-acl.conf<==
 <code> <code>
 plugin { plugin {
Ligne 744: Ligne 764:
 </code> </code>
  
-/etc/dovecot/conf.d/90-quota.conf+==>/etc/dovecot/conf.d/90-quota.conf<==
 <code> <code>
 plugin { plugin {
Ligne 760: Ligne 780:
 </code> </code>
  
-/etc/dovecot/conf.d/90-sieve.conf+==>/etc/dovecot/conf.d/90-sieve.conf<==
 <code> <code>
 plugin { plugin {
Ligne 781: Ligne 801:
 </code> </code>
  
-/etc/dovecot/conf.d/90-sieve-extprograms.conf+==>/etc/dovecot/conf.d/90-sieve-extprograms.conf<==
 <code> <code>
 plugin { plugin {
Ligne 787: Ligne 807:
 </code> </code>
  
-/etc/dovecot/conf.d/auth-checkpassword.conf.ext+==>/etc/dovecot/conf.d/auth-checkpassword.conf.ext<==
 <code> <code>
 passdb { passdb {
Ligne 798: Ligne 818:
 </code> </code>
  
-/etc/dovecot/conf.d/auth-deny.conf.ext+==>/etc/dovecot/conf.d/auth-deny.conf.ext<==
 <code> <code>
 passdb { passdb {
Ligne 807: Ligne 827:
 </code> </code>
  
-/etc/dovecot/conf.d/auth-dict.conf.ext+==>/etc/dovecot/conf.d/auth-dict.conf.ext<==
 <code> <code>
 passdb { passdb {
Ligne 819: Ligne 839:
 </code> </code>
  
-/etc/dovecot/conf.d/auth-master.conf.ext+==>/etc/dovecot/conf.d/auth-master.conf.ext<==
 <code> <code>
 passdb { passdb {
Ligne 829: Ligne 849:
 </code> </code>
  
-/etc/dovecot/conf.d/auth-passwdfile.conf.ext+==>/etc/dovecot/conf.d/auth-passwdfile.conf.ext<==
 <code> <code>
 passdb { passdb {
Ligne 841: Ligne 861:
 </code> </code>
  
-/etc/dovecot/conf.d/auth-sql.conf.ext+==>/etc/dovecot/conf.d/auth-sql.conf.ext<==
 <code> <code>
 passdb { passdb {
Ligne 853: Ligne 873:
 </code> </code>
  
-/etc/dovecot/conf.d/auth-system.conf.ext+==>/etc/dovecot/conf.d/auth-system.conf.ext<==
 <code> <code>
 passdb { passdb {
Ligne 863: Ligne 883:
 </code> </code>
  
-/etc/dovecot/conf.d/auth-vpopmail.conf.ext+==>/etc/dovecot/conf.d/auth-vpopmail.conf.ext<==
 <code> <code>
 passdb { passdb {
Ligne 875: Ligne 895:
 </code> </code>
  
-Les autres fichiers utiles tels /etc/dovecot/dovecot-dict-auth.conf.ext:+==== 4.2. Gestion de la db ==== 
 +Les autres fichiers utiles tels ==>/etc/dovecot/dovecot-dict-auth.conf.ext<==
 <code> <code>
 default_pass_scheme = MD5 default_pass_scheme = MD5
Ligne 899: Ligne 920:
 </code> </code>
  
-/etc/dovecot/dovecot-dict-sql.conf.ext:+==>/etc/dovecot/dovecot-dict-sql.conf.ext<==
 <code> <code>
 connect = host=127.0.0.1 dbname=DB user=USER password=PWD connect = host=127.0.0.1 dbname=DB user=USER password=PWD
Ligne 925: Ligne 946:
 </code> </code>
  
-/etc/dovecot/dovecot-sql.conf.ext:+==>/etc/dovecot/dovecot-sql.conf.ext<==
 <code> <code>
 driver = mysql driver = mysql
Ligne 935: Ligne 956:
 </code> </code>
  
 +==== 4.3. scripts utiles ====
 Il faut aussi des scripts utiles: Il faut aussi des scripts utiles:
-/usr/local/bin/postlogin.sh +==>/usr/local/bin/postlogin.sh <==
 <code> <code>
 #!/bin/sh #!/bin/sh
Ligne 949: Ligne 971:
 </code> </code>
  
-/usr/local/bin/quota-warning.sh+==>/usr/local/bin/quota-warning.sh<==
 <code> <code>
 #!/bin/sh #!/bin/sh
Ligne 960: Ligne 982:
 Your mailbox is now $PERCENT% full. Your mailbox is now $PERCENT% full.
 EOF EOF
 +</code>
 +
 +==== 4.4 antispam ====
 +Pour l'antispam, je propose ceci, proche de la configuration officielle dovecot:
 +==>/usr/local/dovecot/sieve/report-ham.sieve<==
 +<code>
 +require ["vnd.dovecot.pipe", "copy", "imapsieve", "environment", "variables"];
 +
 +if environment :matches "imap.mailbox" "*" {
 +  set "mailbox" "${1}";
 +}
 +
 +if string "${mailbox}" "Trash" {
 +  stop;
 +}
 +
 +if environment :matches "imap.user" "*" {
 +  set "username" "${1}";
 +}
 +
 +pipe :copy "sa-learn-ham.sh" [ "${username}" ];
 +</code>
 +
 +==>/usr/local/dovecot/sieve/report-spam.sieve<==
 +<code>
 +require ["vnd.dovecot.pipe", "copy", "imapsieve", "environment", "variables"];
 +
 +if environment :matches "imap.user" "*" {
 +  set "username" "${1}";
 +}
 +
 +pipe :copy "sa-learn-spam.sh" [ "${username}" ];
 +</code>
 +
 +==>/usr/local/dovecot/sieve/sa-learn-ham.sh<==
 +<code>
 +#!/bin/bash
 +
 +# rspamd client reads piped ham message from the standard input
 +exec /usr/bin/rspamc -h localhost:11334 -P "q1" learn_ham
 +</code>
 +
 +==>/usr/local/dovecot/sieve/sa-learn-spam.sh<==
 +<code>
 +#!/bin/bash
 +
 +# rspamd client reads piped spam message from the standard input
 +exec /usr/bin/rspamc -h localhost:11334 -P "q1" learn_spam
 </code> </code>
  
 ===== 5. nginx et uwsgi ===== ===== 5. nginx et uwsgi =====
 +==== 5.1. configuration du domaine principal ====
 Le domaine principal mail.domaine.tld sera configuré de cette façon: Le domaine principal mail.domaine.tld sera configuré de cette façon:
 <code> <code>
Ligne 1028: Ligne 1099:
 </code> </code>
  
 +==== 5.2. uwsgi ====
 et le fichier nécessaire pour uwsgi (à adapter à votre utilisation): et le fichier nécessaire pour uwsgi (à adapter à votre utilisation):
 <code> <code>
Ligne 1045: Ligne 1117:
  
 ===== 6. Rspamd ===== ===== 6. Rspamd =====
 +==== 6.1. Configuration ====
 Les fichiers de configuration de rspamd ne doivent pas être modifiés, il faut soit les compléter (dossier local.d) ou les remplacer (override.d), une configuration sera proposée mais elle peut être à adapter au cas par cas. Les fichiers de configuration de rspamd ne doivent pas être modifiés, il faut soit les compléter (dossier local.d) ou les remplacer (override.d), une configuration sera proposée mais elle peut être à adapter au cas par cas.
-/etc/rspamd/rspamd.conf.local+==>/etc/rspamd/rspamd.conf.local<==
 <code> <code>
 worker "log_helper" { worker "log_helper" {
Ligne 1187: Ligne 1260:
  
 ==> /etc/rspamd/local.d/dkim_signing.conf <== ==> /etc/rspamd/local.d/dkim_signing.conf <==
-</code>+<code>
 # If false, messages with empty envelope from are not signed # If false, messages with empty envelope from are not signed
 allow_envfrom_empty = true; allow_envfrom_empty = true;
Ligne 1620: Ligne 1693:
 enable_password = "q2"; enable_password = "q2";
 </code> </code>
 +q1 et q2 sont les mots de passe à modifier.
 +
 +==== 6.2. Commandes utiles ====
 +Changer les mots de passe q1 et q2:
 +<code>
 +rspamadm pw
 +</code>
 +
 +Générer une clef privée qui doit être absolument être lisible par l'utilisateur _rspamd_ :
 +<code>
 +rspamadm dkim_keygen -s 'mail' -d domaine.tld
 +</code>
 +avec l'option -s désignant le sélecteur qui doit **impérativement être le même que celui de votre enregistrement DNS** sans quoi la signature de vos messages ne servira à rien.
mail.txt · Dernière modification : 2017/11/26 11:42 de mirtouf