Mail-Quotas (Ubuntu 18.04): Unterschied zwischen den Versionen

Aus Tutorials
Zur Navigation springen Zur Suche springen
 
(23 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
{{note|Noch in Bearbeitung}}
== Konfiguration ==
== Konfiguration ==


Zeile 71: Zeile 68:


     quota_grace = 10%%   
     quota_grace = 10%%   
}
</pre>
== Warnungen bei Überschreiten der Quote ==
=== 90-quota.conf ===


    quota_exceeded_message = Benutzer %u hat das Speichervolumen überschritten. / User %u has exhausted allowed storage space.  
In der Datei ''/etc/dovecot/dovecot.conf''
}
 
<pre>
sudo vi /etc/dovecot/conf.d/90-quota.conf
</pre>
</pre>


=== Warnungen bei überschreiten der Quote ===
folgene Zeilen hinzufügen:


<pre>
<pre>
Zeile 98: Zeile 103:
}
}
</pre>
</pre>
=== quota-warning.sh ===
Die Datei


<pre>
<pre>
sudo vi /usr/local/bin/quota-warning.sh
sudo vi /usr/local/bin/quota-warning.sh
</pre>
</pre>
mit folgenden zeilen befüllen:


<pre>
<pre>
Zeile 130: Zeile 141:
exit 0
exit 0
</pre>
</pre>
== Ablehnung durch Postfix, wenn Postfach voll ==
Wenn die Mail bereits an Dovecot weitergegeben wurde, dann gilt die Mail als zugestellt und es muss nachträglich eine Fehlermeldung generiert werden.
Um das zu vermeiden, kann man mit folgender Konfiguration Postfix die Möglichkeit geben, die Mail sofort vor der Weiterleitung abzulehnen.
=== 91-quota-status.conf ===
Die Datei
<pre>
sudo vi /etc/dovecot/conf.d/91-quota-status.conf
</pre>
erstellen (ist momentan nicht vorbereitet) und mit folgenden Inhalt befüllen (Port frei wählbar):
<pre>
service quota-status {
executable = quota-status -p postfix
inet_listener {
  address = 127.0.0.1
  port = 12340
}
client_limit = 1
}
plugin {
quota_status_success = DUNNO
quota_status_nouser = DUNNO
quota_status_overquota = "552 5.2.2 Mailbox is over quota / Mailbox ist voll"
}
</pre>
=== main.cf ===
In der Datei
<pre>
sudo vi /etc/postfix/main.cf
</pre>
bei <code>smtpd_recipient_restrictions</code> vor allen anderen Optionen folgende Anweisung einfügen:
<pre>
smtpd_recipient_restrictions =
    check_policy_service inet:127.0.0.1:12340,
    ...,
    ...
</pre>
=== Testen ===
Zum Test <code>warn_if_reject</code> in dieselbe Zeile direkt vor <code>check_policy_service</code> setzen. So werden nur Warnungen generiert, die Mails jedoch nicht abgelehnt.


== Links ==
== Links ==
Zeile 142: Zeile 206:


[https://thomas-leister.de/mailserver-debian-stretch/ https://thomas-leister.de/mailserver-debian-stretch/]
[https://thomas-leister.de/mailserver-debian-stretch/ https://thomas-leister.de/mailserver-debian-stretch/]
[https://blog.sys4.de/dovecot-quota-mit-postfix-abfragen-de.html https://blog.sys4.de/dovecot-quota-mit-postfix-abfragen-de.html]




Zurück zu [[Mailserver einrichten (Ubuntu 18.04)|Mailserver einrichten]]
Zurück zu [[Mailserver einrichten (Ubuntu 18.04)|Mailserver einrichten]]

Aktuelle Version vom 22. März 2020, 17:07 Uhr

Konfiguration

Per-user quota

Dazu ist wichtig, dass in der Datei /etc/dovecot/conf.d/auth-sql.conf.ext (siehe Dovecot#Benutzer_Authentifizierung) folgende Zeilen einkommentiert werden:

sudo vi /etc/dovecot/conf.d/auth-sql.conf.ext
userdb {
  driver = sql
  args = /etc/dovecot/dovecot-sql.conf.ext
}


Und in der Datei /etc/dovecot/dovecot-sql.conf.ext

sudo vi /etc/dovecot/dovecot-sql.conf.ext

folgende Zeile hinzugefügt / angepasst wird:

user_query = SELECT concat('*:storage=', quota, 'M') AS quota_rule FROM mailbox WHERE local_part = '%n' AND domain = '%d'

10-mail.conf

In der Datei /etc/dovecot/conf.d/10-mail.conf folgene Zeilen erweitern:

sudo vi /etc/dovecot/conf.d/10-mail.conf
mail_plugins = $mail_plugins quota

20-imap.conf

In der Datei /etc/dovecot/conf.d/20-imap.conf folgene Zeilen erweitern:

sudo vi /etc/dovecot/conf.d/20-imap.conf
protocol imap {
    mail_plugins = $mail_plugins imap_quota
}

90-quota.conf

In der Datei /etc/dovecot/dovecot.conf folgene Zeilen hinzufügen:

sudo vi /etc/dovecot/conf.d/90-quota.conf
##
## Quota limits
##
plugin {  
    quota = maildir:User quota

    quota_grace = 10%%  
}

Warnungen bei Überschreiten der Quote

90-quota.conf

In der Datei /etc/dovecot/dovecot.conf

sudo vi /etc/dovecot/conf.d/90-quota.conf

folgene Zeilen hinzufügen:

##
## Quota warnings
##
plugin {  
    quota_warning = storage=66%% quota-warning 66 %u
    quota_warning2 = storage=80%% quota-warning 80 %u
    quota_warning3 = storage=95%% quota-warning 95 %u 
}

service quota-warning {
  executable = script /usr/local/bin/quota-warning.sh
  user = vmail
  unix_listener quota-warning {
       group = vmail
       mode = 0660  
       user = vmail 
  }
}

quota-warning.sh

Die Datei

sudo vi /usr/local/bin/quota-warning.sh

mit folgenden zeilen befüllen:

#!/bin/sh
PERCENT=$1
USER=$2
ADMIN="admin@<domain>"
FROM="postmaster@<domain>"

msg="From: $FROM
To: $USER
Bcc: $ADMIN
Subject: Quota-Warnung $PERCENT% 

Lieber Nutzer,
    
das Postfach $USER ist derzeit zu 

$PERCENT% gefuellt.

Bitte einige Mails loeschen.
       
Herzlichen Dank
Ihr Mail-Service Team."

echo -e "$msg" | /usr/sbin/sendmail -t -f $FROM "$USER"

exit 0

Ablehnung durch Postfix, wenn Postfach voll

Wenn die Mail bereits an Dovecot weitergegeben wurde, dann gilt die Mail als zugestellt und es muss nachträglich eine Fehlermeldung generiert werden. Um das zu vermeiden, kann man mit folgender Konfiguration Postfix die Möglichkeit geben, die Mail sofort vor der Weiterleitung abzulehnen.

91-quota-status.conf

Die Datei

sudo vi /etc/dovecot/conf.d/91-quota-status.conf

erstellen (ist momentan nicht vorbereitet) und mit folgenden Inhalt befüllen (Port frei wählbar):

service quota-status {
 executable = quota-status -p postfix
 inet_listener {
   address = 127.0.0.1
   port = 12340
 }
 client_limit = 1
}

plugin {
 quota_status_success = DUNNO
 quota_status_nouser = DUNNO
 quota_status_overquota = "552 5.2.2 Mailbox is over quota / Mailbox ist voll"
}

main.cf

In der Datei

sudo vi /etc/postfix/main.cf 

bei smtpd_recipient_restrictions vor allen anderen Optionen folgende Anweisung einfügen:

smtpd_recipient_restrictions = 
    check_policy_service inet:127.0.0.1:12340,
    ..., 
    ...

Testen

Zum Test warn_if_reject in dieselbe Zeile direkt vor check_policy_service setzen. So werden nur Warnungen generiert, die Mails jedoch nicht abgelehnt.

Links

https://doc.dovecot.org/configuration_manual/quota_plugin/

https://wiki.dovecot.org/Quota/Configuration

https://www.debacher.de/wiki/Mail-Quotas_mit_Dovecot

https://dokuwiki.tachtler.net/doku.php?id=tachtler:dovecot_quotas

https://thomas-leister.de/mailserver-debian-stretch/

https://blog.sys4.de/dovecot-quota-mit-postfix-abfragen-de.html


Zurück zu Mailserver einrichten