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
Prochaine révisionLes deux révisions suivantes
mail [2017/11/04 20:01] – ajout clamav redis-server mirtoufmail [2017/11/09 20:27] – [3.2. master.cf] Modoboa DMARC 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 529: Ligne 539:
  
 ===== 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 551:
 </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 579:
 </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 592:
 </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 651:
 </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 660:
 </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 674:
 </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 700:
 </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 707:
 </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 715:
 </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 740:
 </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 747:
 </code> </code>
  
-/etc/dovecot/conf.d/90-acl.conf+==>/etc/dovecot/conf.d/90-acl.conf<==
 <code> <code>
 plugin { plugin {
Ligne 744: Ligne 755:
 </code> </code>
  
-/etc/dovecot/conf.d/90-quota.conf+==>/etc/dovecot/conf.d/90-quota.conf<==
 <code> <code>
 plugin { plugin {
Ligne 760: Ligne 771:
 </code> </code>
  
-/etc/dovecot/conf.d/90-sieve.conf+==>/etc/dovecot/conf.d/90-sieve.conf<==
 <code> <code>
 plugin { plugin {
Ligne 781: Ligne 792:
 </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 798:
 </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 809:
 </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 818:
 </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 830:
 </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 840:
 </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 852:
 </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 864:
 </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 874:
 </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 886:
 </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 911:
 </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 937:
 </code> </code>
  
-/etc/dovecot/dovecot-sql.conf.ext:+==>/etc/dovecot/dovecot-sql.conf.ext<==
 <code> <code>
 driver = mysql driver = mysql
Ligne 935: Ligne 947:
 </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 962:
 </code> </code>
  
-/usr/local/bin/quota-warning.sh+==>/usr/local/bin/quota-warning.sh<==
 <code> <code>
 #!/bin/sh #!/bin/sh
Ligne 960: Ligne 973:
 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 1090:
 </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 1108:
  
 ===== 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 1251:
  
 ==> /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 1684:
 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