Outils pour utilisateurs

Outils du site


linux_mail_postfix_dovecot_sogo

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
linux_mail_postfix_dovecot_sogo [2021/02/22 17:22] – [Postfix] rootlinux_mail_postfix_dovecot_sogo [2022/03/27 12:20] (Version actuelle) – [Apprentissage des spams dans dovecot] root
Ligne 303: Ligne 303:
   - Pour supporter Sieve dans SOGo, editer le fichier sogo.conf <code>nano /etc/sogo/sogo.conf</code> et rajouter les deux lignes suivantes: <code> NGImap4ConnectionStringSeparator = ".";   - Pour supporter Sieve dans SOGo, editer le fichier sogo.conf <code>nano /etc/sogo/sogo.conf</code> et rajouter les deux lignes suivantes: <code> NGImap4ConnectionStringSeparator = ".";
 SOGoSieveServer = "sieve://127.0.0.1:4190";</code> SOGoSieveServer = "sieve://127.0.0.1:4190";</code>
 +
 +==== Quota ====
 +  - Dans le fichier 10-mail.conf rajouter ceci <code>mail_plugins = quota</code>
 +  - Dans le fichier 20-imap.conf rajouter <code>protocol imap {
 +  mail_plugins = $mail_plugins imap_sieve antispam imap_quota
 +}
 +</code>
 +  - Dans le fichier 20-lmtp.conf rajouter <code>protocol lmtp {
 +  mail_plugins = $mail_plugins sieve quota
 +}
 +</code>
 +  - Dans le fichier 90-quota.conf modifier <code>plugin {
 +  quota_warning = storage=95%% quota-warning 95 %u
 +  quota_warning2 = storage=80%% quota-warning 80 %u
 +}
 +service quota-warning {
 +  executable = script /usr/local/bin/quota-warning.sh
 +  user = dovecot
 +  unix_listener quota-warning {
 +    user = vmail
 +  }
 +}
 +plugin {
 +  #quota = dirsize:User quota
 +  #quota = maildir:User quota
 +  #quota = dict:User quota::proxy::quota
 +  quota = count:User quota
 +  #quota = fs:User quota
 +  quota_vsizes = yes
 +}
 +</code>
 +  - Dans le fichier conf.d/auth-sql.conf.ext <code>passdb {
 +  driver = sql
 +
 +  # Path for SQL configuration file, see example-config/dovecot-sql.conf.ext
 +  args = /etc/dovecot/dovecot-sql.conf.ext
 +}
 +
 +# "prefetch" user database means that the passdb already provided the
 +# needed information and there's no need to do a separate userdb lookup.
 +# <doc/wiki/UserDatabase.Prefetch.txt>
 +#userdb {
 +#  driver = prefetch
 +#}
 +
 +userdb {
 +driver = prefetch
 +}
 +
 +
 +userdb {
 +  driver = sql
 +  args = /etc/dovecot/dovecot-sql.conf.ext
 +}
 +</code>
 +  - Dans le fichier 10-mail.conf avec: <code>mail_uid = 6000
 +mail_gid = 6000</code>
 +  - Dans le fichier /etc/dovecot/dovecot-sql.conf.ext modifier/ajouter les deux lignes suivantes: <code>password_query = SELECT concat(a.user,'@',b.`domain` ) as user, password, CONCAT('*:storage=', quota) AS quota_rule FROM posogodo.mailboxes a left join posogodo.domains b on a.t_domains = b.id where a.active='1' and b.active='1' and concat(a.user,'@',b.`domain` ) = '%u';
 +user_query = SELECT concat(a.user,'@',b.`domain` ) as user,concat('/srv/vmail','/',b.domain,'/',a.user) as home, password, CONCAT('*:storage=', quota) AS quota_rule FROM posogodo.mailboxes a left join posogodo.domains b on a.t_domains = b.id where a.active='1' and b.active='1' and concat(a.user,'@',b.`domain` ) = '%u';
 +</code>
 +  - Faire un script d'alerte pour dépassement de quota: <code bash>nano /usr/local/bin/quota-warning.sh</code> Avec le contenu suivant: <file bash quota-warning.sh>#!/bin/bash
 +PERCENT=$1
 +USER=$2
 +cat << EOF | /usr/sbin/sendmail $USER -O "plugin/quota=maildir:User quota:noenforcing"
 +From: postmaster@makeitsimple.be
 +Subject: quota warning
 +
 +Attention: Votre boite email est pleine à $PERCENT%.
 +Passé 100% il ne sera plus possible de recevoir du courrier.
 +Veuillez prendre les actions nécessaires pour nettoyer votre boite ou prendre un abonnement plus important.
 +
 +EOF
 +</file>
 +  - Donner les droits nécessaires à ce fichier<code bash>chown vmail:vmail /usr/local/bin/quota-warning.sh
 +chmod +x /usr/local/bin/quota-warning.sh</code>
 +  - Quelques commandes de debugging:
 +    - doveadm mailbox status -u vincent@x.org vsize '*'
 +    - doveadm quota recalc
 +    - doveadm quota get -u vincent@x.org
 +  - Pour plus d'infos, dans le fichier 10-loggin mettre mail-debug & auth-debug sur true
  
 ===== rspamd ===== ===== rspamd =====
Ligne 372: Ligne 452:
   - Compiler la règle: <code bash>sievec /etc/dovecot/sieve-after/spam-to-folder.sieve   - Compiler la règle: <code bash>sievec /etc/dovecot/sieve-after/spam-to-folder.sieve
 service dovecot restart</code> service dovecot restart</code>
 +  - Création de deux règles pour whitelister les domaines ou les ips. Editer le fichier multimap.conf <code bash>nano /etc/rspamd/local.d/multimap.conf</code>Et coller le contenu suivant <file  multimap.conf>WHITELIST_SENDER_DOMAIN {
 +      type = "from";
 +      filter = "email:domain";
 +      map = "/etc/rspamd/local.d/whitelist.sender.domain.map";
 +      score = -10.0
 +}
 +
 +IP_WHITELIST {
 +      type = "ip";
 +      prefilter = "true";
 +      map = "/etc/rspamd/local.d/whitelist.ip.map";
 +      action = "accept";
 +}
 +</file>
 +    - Créer ensuite un fichier whitelist.sender.domain.map avec les domaines/emails à whitelister
 +    - Créer aussi un fichier whitelist.ip.map pour autoriser des ips spécifiques (j'utilise 127.0.0.1 pour éviter que les quota warning ne soient flaggués SPAM)
  
 ==== Signer DKIM ==== ==== Signer DKIM ====
Ligne 440: Ligne 536:
  
 ==== Apprentissage des spams dans dovecot ==== ==== Apprentissage des spams dans dovecot ====
-  - Installer le paquet <code bash>apt install dovecot-antispam</code> +  - Editer le fichier 20-imap.conf <code bash>nano /etc/dovecot/conf.d/20-imap.conf</code> et rajouter **imap_sieve** à la hauteur de mail_plugins. 
-  - Editer le fichier 20-imap.conf <code bash>nano /etc/dovecot/conf.d/20-imap.conf</code> et rajouter **antispam** à la hauteur de mail_plugins+  - Editer le fichier 90-sieve.conf <code bash>nano /etc/dovecot/conf.d/90-sieve.conf</code> et rajouter **sieve_plugins = sieve_imapsieve sieve_extprograms** dans le block "plugin"
-  - Editer le fichier 90-plugin.conf <code bash>nano /etc/dovecot/conf.d/90-plugin.conf</code> Et ajouter les lignes suivantes: <code>    antispam_backend = pipe +  - Editer le fichier 90-plugin.conf <code bash>nano /etc/dovecot/conf.d/90-plugin.conf</code> Et ajouter les lignes suivantes: <code>    # From elsewhere to Junk folder 
-    antispam_spam    = Junk +imapsieve_mailbox1_name = Junk 
-    antispam_trash   Trash +imapsieve_mailbox1_causes COPY 
-    antispam_mail_sendmail = /usr/local/bin/rspamc +imapsieve_mailbox1_before file:/etc/dovecot/sieve/learn-spam.sieve
-    antispam_mail_spam     = learn_spam +
-    antispam_mail_notspam  = learn_ham +
-    antispam_mail_sendmail_args = -h;localhost:11334;-P;password </code> +
  
 +# From Junk folder to elsewhere
 +imapsieve_mailbox2_name = *
 +imapsieve_mailbox2_from = Junk
 +imapsieve_mailbox2_causes = COPY
 +imapsieve_mailbox2_before = file:/etc/dovecot/sieve/learn-ham.sieve
 +
 +sieve_pipe_bin_dir = /etc/dovecot/sieve
 +sieve_global_extensions = +vnd.dovecot.pipe </code> 
 +  - Créer un dossier de config sieve <code bash>mkdir /etc/dovecot/sieve</code>
 +  - Ensuite créer un fichier learn-spam.sieve <code bash>nano /etc/dovecot/sieve/learn-spam.sieve</code> dont le contenu est: <code>require ["vnd.dovecot.pipe", "copy", "imapsieve"];
 +pipe :copy "rspamd-learn-spam.sh";</code>
 +  - Créer un fichier learn-ham.sieve <code bash>nano /etc/dovecot/sieve/learn-ham.sieve</code> dont le contenu est: <code>require ["vnd.dovecot.pipe", "copy", "imapsieve"];
 +pipe :copy "rspamd-learn-ham.sh";</code>
 +  - Compiler les scripts sieve et appliquer les droits<code bash>sievec /etc/dovecot/sieve/learn-spam.sieve
 +sievec /etc/dovecot/sieve/learn-ham.sieve
 +chmod u=rw,go= /etc/dovecot/sieve/learn-{spam,ham}.sieve
 +chown vmail.vmail /etc/dovecot/sieve/learn-{spam,ham}.sieve</code>
 +  - Créer un fichier rspamd-learn-spam.sh <code bash>nano /etc/dovecot/sieve/rspamd-learn-spam.sh</code> dont le contenu est: <code>#!/bin/sh
 +exec /usr/bin/rspamc learn_spam -h localhost:11334</code>
 +  - et un fichier rspamd-learn-ham.sh <code bash>nano /etc/dovecot/sieve/rspamd-learn-ham.sh</code> dont le contenu est: <code>#!/bin/sh
 +exec /usr/bin/rspamc learn_ham -h localhost:11334</code>
 +  - Changer les droits et redémarrer dovecot <code bash>chmod u=rwx,go= /etc/dovecot/sieve/rspamd-learn-{spam,ham}.sh
 +chown vmail.vmail /etc/dovecot/sieve/rspamd-learn-{spam,ham}.sh
 +service dovecot restart</code>
  
 ==== Filtrer les virus ==== ==== Filtrer les virus ====
Ligne 496: Ligne 613:
  
   - Installer la clé gpg du dépot SOGo: <code bash>   - Installer la clé gpg du dépot SOGo: <code bash>
-gpg --keyserver hkp://keys.gnupg.net --recv-key 0x810273C4+gpg --keyserver hkp://pgp.mit.edu --recv-key 0x810273C4
 gpg --armor --export 0x810273C4 | apt-key add -</code> gpg --armor --export 0x810273C4 | apt-key add -</code>
   - Créer un dépot <code bash>nano /etc/apt/sources.list.d/sogo.list</code>Avec le contenu:<code># Commercials   - Créer un dépot <code bash>nano /etc/apt/sources.list.d/sogo.list</code>Avec le contenu:<code># Commercials
linux_mail_postfix_dovecot_sogo.1614014541.txt.gz · Dernière modification : (modification externe)