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
mail [2017/11/04 20:01] – ajout clamav redis-server mirtoufmail [2017/11/26 11:42] (Version actuelle) – [3.1. main.cf] Modification DH 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 213: Ligne 217:
 smtpd_tls_cert_file           = /chemin/vers/fichier.crt smtpd_tls_cert_file           = /chemin/vers/fichier.crt
 smtpd_tls_key_file            = /chemin/vers/fichier.key smtpd_tls_key_file            = /chemin/vers/fichier.key
-smtpd_tls_dh1024_param_file   = /etc/ssl/private/dh2048.pem +smtpd_tls_dh1024_param_file   = /etc/ssl/public/ffdhe2048.pem
-smtpd_tls_dh512_param_file    = /etc/ssl/private/dh512.pem+
  
 tls_preempt_cipherlist = yes tls_preempt_cipherlist = yes
Ligne 258: Ligne 261:
 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 398:
 :!: 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.
  
 +Le fichier Diffie-Hellman contient ceci et est préférentiellement choisi car audité de façon régulière:
 +<code>
 +-----BEGIN DH PARAMETERS-----
 +MIIBCAKCAQEA//////////+t+FRYortKmq/cViAnPTzx2LnFg84tNpWp4TZBFGQz
 ++8yTnc4kmz75fS/jY2MMddj2gbICrsRhetPfHtXV/WVhJDP1H18GbtCFY2VVPe0a
 +87VXE15/V8k1mE8McODmi3fipona8+/och3xWKE2rec1MKzKT0g6eXq8CrGCsyT7
 +YdEIqUuyyOP7uWrat2DX9GgdT0Kj3jlN9K5W7edjcrsZCwenyO4KbXCeAvzhzffi
 +7MA0BM0oNC9hkXL+nOmFg/+OTxIy7vKBg8P+OxtMb61zO7X8vC7CIAXFjvGDfRaD
 +ssbzSibBsu/6iGtCOGEoXJf//////////wIBAg==
 +-----END DH PARAMETERS-----
 +</code>
 +==== 3.2. master.cf ====
 Le master.cf: Le master.cf:
 <code> <code>
Ligne 508: Ligne 524:
   -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 545:
 # 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 570:
 </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 598:
 </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 611:
 </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 670:
 </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 679:
 </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 693:
 </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 719:
 </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 726:
 </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 734:
 </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 759:
 </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 766:
 </code> </code>
  
-/etc/dovecot/conf.d/90-acl.conf+==>/etc/dovecot/conf.d/90-acl.conf<==
 <code> <code>
 plugin { plugin {
Ligne 744: Ligne 774:
 </code> </code>
  
-/etc/dovecot/conf.d/90-quota.conf+==>/etc/dovecot/conf.d/90-quota.conf<==
 <code> <code>
 plugin { plugin {
Ligne 760: Ligne 790:
 </code> </code>
  
-/etc/dovecot/conf.d/90-sieve.conf+==>/etc/dovecot/conf.d/90-sieve.conf<==
 <code> <code>
 plugin { plugin {
Ligne 781: Ligne 811:
 </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 817:
 </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 828:
 </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 837:
 </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 849:
 </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 859:
 </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 871:
 </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 883:
 </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 893:
 </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 905:
 </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 930:
 </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 956:
 </code> </code>
  
-/etc/dovecot/dovecot-sql.conf.ext:+==>/etc/dovecot/dovecot-sql.conf.ext<==
 <code> <code>
 driver = mysql driver = mysql
Ligne 935: Ligne 966:
 </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 981:
 </code> </code>
  
-/usr/local/bin/quota-warning.sh+==>/usr/local/bin/quota-warning.sh<==
 <code> <code>
 #!/bin/sh #!/bin/sh
Ligne 960: Ligne 992:
 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 1109:
 </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 1127:
  
 ===== 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 1270:
  
 ==> /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 1703:
 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.1509822095.txt.gz · Dernière modification : 2017/11/04 20:01 de mirtouf