Lange war ich auf der Suche nach einem sehr simplen Webmail Client ohne viel drum und dran. Einzig und allein für den Notfall, um schnell auf E-Mails zugreifen zu können.
Nun habe ich endlich den Richtigen für mich gefunden. Wichtig war mir, dass dieser nicht veraltet ist und sich in aktiver Entwicklung befindet.
WebMail Lite (c) www.afterlogic.com„AfterLogic WebMail Lite“ ist definitiv ein Außenseiter unter den Webmail Clients. Abstriche müssen auch im Bezug auf eine mobile Version hingenommen werden. Für mich kein Problem, da ich via Smartphone sowieso auf den eingebauten E-Mail Client zugreifen werde.
Die Installationsumgebung
In meinem Fall wird der Webmail Client unter „/usr/share/nginx/webmail“ gespeichert. Unter Umständen bitte anpassen. Apache2 wird gewöhnlich mit einem Webroot „/var/www“ ausgeliefert.
PHP- und Webserver-Prozess laufen als Benutzer „www-data“.
Ich gehe davon aus, dass folgendes bereits installiert wurde:
– Ein Webserver (…)
– MySQL Server
– PHP Anbindung
Installation
Hinweis: Es geht hier nur um die Grundkonfiguration. Bei Zeit werde ich erweiterte Funktionen ergänzen!
Der Client ist in seinen Abhängigkeiten sehr dünn, lediglich ein PHP Modul muss noch installiert werden. Zum Entpacken des Downloads, der nur als zip-Datei angeboten wird, benötigen wir noch „unzip“:
sudo apt-get install php5-curl unzip
Das Verzeichnis erstellen, in dieses wechseln, herunterladen/entpacken des Clients und aufräumen:
mysql -u root -pMYSQL-ROOT-PASSWD ausführen (Achtung: nach -p KEIN Leerzeichen) und folgendes einfügen. PASSWORT unten durch ein eigenes Passwort für die Webmail Datenbank ändern:
CREATE DATABASE webmaildb;
GRANT ALL PRIVILEGES ON webmaildb.* TO 'webmailusr'@'localhost' IDENTIFIED BY 'PASSWORT';
FLUSH PRIVILEGES;
Die Datenbank „webmaildb“ wurde jetzt erstellt. Der Benutzer „webmailusr“ darf diese verwalten.
Mit „exit“ die MySQL Kommandozeile beenden.
http://domain.tld/webmail/install aufrufen. Die Abhängigkeiten noch einmal überprüfen und die Konfiguration durch einen Klick auf „Next“ beginnen:
Beginn der Konfiguration
Mit „Test database“ sichergehen, dass die Anbindung besteht. Eingetragen werden natürlich die Daten, mit denen zuvor die Datenbank erstellt wurde.
Nach einem Klick auf „Next“ nun ein Passwort für den Administrator („mailadm“) erstellen und fortfahren.
In der nächsten Maske beide Haken für „IMAP4“ und „SMTP“ setzen:
Administrator Konfiguration
Da die Installation nun abgeschlossen ist, das Verzeichnis „install“ löschen:
rm -r /usr/share/nginx/webmail/install
Sieve
Ist Sieve eingerichtet, beispielsweise via Dovecot, kann dieses hier ebenfalls noch aktiviert werden. Dazu die Datei „webmail/data/settings/config.php“ öffnen und verändern:
Unbedingt „’sieve‘ => true“ setzen!
Dovecot benutzt – jedenfalls unter Debian Wheezy – bereits den neueren Port 4190, oben schon geändert. Bitte überprüfen, ob euer Sieve das auch tut. Bis auf die IMAP-Adresse im Array „aSieveDomains“ ist weiter nichts mehr zu ändern.
Benutzung
Einloggen mit dem E-Mail Login unter http://domain.tld/webmail, um E-Mails abzurufen.
Via http://domain.tld/webmail/adminpanel das Panel administrieren. Beispielsweise die Sprache umstellen oder das Zeitformat/die Zeitzone ändern.
Alle Kommentare befinden sich auf dieser einen Seite des Artikels. Das soll niemanden ärgern, ich möchte euch damit die Möglichkeit geben, mit STRG+F nach Keywords zu suchen.
Auf wyden.com findet sich ein sehr gutes und vor allem sauberes Tutorial für Postfix und Dovecot mit MySQL Anbindung. Ich habe mich dazu entschieden dieses ein wenig umzuschreiben für Debian Wheezy, außerdem beschreibe ich noch die Installation eines Spam- sowie Viren-Filters. WebMail Lite (c) www.afterlogic.com
Die Installation eines schlanken Webmail-Clients beschreibe ich HIER.
Seit November 2013 führe ich einen Changelog in Form einer Tabelle:
- Verschiedene Mailboxen automatisch erstellen und abonnieren
22. Januar 2015
Postfix
- Hinweis zu Hostnamen
02. Jan 2015
Dovecot
Allgemein
- "disable_plaintext_auth", um Authentifizierungsversuche ohne TLS abzulehnen
- Einrichtung am Client verändert
11. Dez 2014
Postfix
- Goodbye SMTPS (Überfällig, da deprecated), Submission ist nun Standard
08. Dez 2014
Postfix, Dovecot
- "local_transport" ist nicht mehr "virtual"
- Sichere Cipher und kein SSLv2 sowie SSLv3 für Dovecot + Postfix
- Kleine Korrekturen im Text, verständlichere Passagen
28. Nov 2014
Postfix (Spamabwehr)
- "reject_rbl_client" mit ZEN Spamhaus Blacklist in "smtpd_recipient_restrictions"
- "reject_unauth_pipelining" als "data restriction"
17. Juni 2014
Postifx
SMTP TLS, betrifft ausgehende Verbindungen
02. Juni 2014
Postfix
"reject_unverified_sender" hinzugefügt. Unbedingt "Achtung #2" an jeweiliger Stelle beachten!
22. Mai 2014
Amavis
Alle Domänen in den Spam-Filter miteinbeziehen (Danke, Christian!)
06. Mai 2014
Dovecot
- POP3 Deaktivierung: Syntaxfehler behoben (danke für den Hinweis!)
13. Mär 2014
Postgrey
- Hinweis zu StartSSL.com und Postgrey (Whitelist)
12. Mär 2014
Dovecot
- De-/Aktivierung einer Domäne in Postfixadmin nun möglich ("user_query")
- Optional: Simple Quota-Implementierung
11. Mär 2014
Dovecot, Postfixadmin, Postfix
- De-/Aktivierung einer Mailbox in Postfixadmin durch "user_query"
- "MD5-CRYPT" wieder als Verschlüsselungsmethode in der Datenbank
- Submission Optionen in "master.cf" verbessert
10. Mär 2014
Postifx, Rsyslog
- "reject_unknown_reverse_client_hostname" anstatt "reject_unknown_client_hostname" - weniger streng
- "postgrey" als Option für Postfix
- "rsyslog.conf" Modifikation verbessert
Nun wird die notwendige Datenbank angelegt und die Berechtigungen gesetzt, das Passwort nicht vergessen zu ändern:
mysql -uroot -p -e "CREATE DATABASE postfixdb; GRANT ALL PRIVILEGES ON postfixdb.* TO 'postfix'@'localhost' IDENTIFIED BY 'MYSQLPW'; FLUSH PRIVILEGES;"
Postfixadmin in das Webroot laden und entpacken. Das Verzeichnis soll rekursiv www-data gehören (natürlich anzupassen, falls der Webserver nicht als Benutzer www-data ausgeführt wird):
cd /var/www
wget --content-disposition http://sourceforge.net/projects/postfixadmin/files/latest/download?source=files
tar xfvz postfixadmin-*.tar.gz
mv postfixadmin*/ postfixadmin
chown www-data:www-data -R postfixadmin
cd postfixadmin
nano config.inc.php
Im Editor folgende Werte anpassen, gesucht werden kann in Nano mit STRG+W:
Um die Domain in der Datei nicht überall manuell zu ersetzen, kann auch sed eingesetzt werden:
sed -i "s/change-this-to-your.domain.tld/domain.tld/g" config.inc.php
Weitere (einfache) Einstellungen wie Links im Footer etc., können jetzt auch schon eingestellt werden.
Um das Setup zu starten, wird die setup.php angesurft:
http://domain.tld/postfixadmin/setup.php
Die Abhängigkeiten sollten nun alle auf „OK“ stehen. Falls später noch einmal das Setup ausgeführt werden soll, kann nun ein Setup Passwort festgelegt werden.
Die angezeigte Zeile für $CONF[’setup_password‘] muss in der config.php gesucht und eingefügt werden.
Surft erneut die setup.php an, gebt das festgelegte Passwort ein und definiert einen Admin. Achtung! Die als Admin hinterlegte E-Mailadresse ist nur für den Login gedacht, sie wird noch nicht als vom Server verwaltete Adresse angelegt. Um eine fiktive oder woanders gehostete E-Mailadresse zu verwenden, kann in der config.inc.php folgender Wert festgelegt werden:
$CONF['emailcheck_resolve_domain']='NO';
Wurde der Admin angelegt, kann mit der Konfiguration im Terminal fortgefahren werden.
Postfix
Als nächstes werden Benutzer und Gruppe für die virtuelle Mailverwaltung angelegt sowie der Speicherort erstellt und die Berechtigungen gesetzt:
Es werden verschiedene Eigenschaften abgefragt, die frei einzustellen sind, jedoch ist es wichtig, dass der „Common Name“ der Adresse entspricht, unter der später die E-Mails abgerufen werden (z.B. der IMAP-Server in Thunderbird):
Common Name (e.g. server FQDN or YOUR name) []:mail.domain.tld
Keys sind sensible Daten, daher werden sie vor fremden Zugriff geschützt:
chmod go-rwx mailserver.key
Nun zur Postfix-Konfiguration.
WICHTIG: In der Datei „/etc/postfix/main.cf“ sicherstellen, dass der Parameter „mydestination“ NICHT die öffentliche Domain enthält! Das ist wichtig, da es hier nur um die lokale Mail-Zustellung geht!
In die Datei – immer noch „/etc/postfix/main.cf“ – Folgendes einfügen:
Achtung: „local_transport = virtual“ bewirkt, dass auch für Benutzer auf dem lokalen System, der Versand und Empfang über das hier erstellte Mail-System verläuft. Ich habe diesen Eintrag hinzugefügt (08.12.2014: auskommentiert), um für einige Benutzer Probleme mit dem Empfang zu lösen. Die lokalen Benutzer im Anschluss als Alias anlegen ODER ein eigenes Postfach für diese einrichten! Das gilt auch für root! Falls nicht gewünscht, sollte der Eintrag weg gelassen werden!
Achtung #2: „reject_unverified_sender“ überprüft die Absender auf Gültigkeit. Und damit jeden Absender. Bei sehr hohem Mailaufkommen ist diese Option nur noch bedingt von Vorteil. Hierzu ein Lesezeichen, welches das Für und Wider abwägt.
Achtung #3: Seit dem 10. März 2014 findet sich hier der Eintrag „reject_unknown_reverse_client_hostname“ unter „smtpd_recipient_restrictions“.
Wenn es vermehrt zu abgewiesenen Mails kommt, dann bitte diese Option (nur „reject_unknown_reverse_client_hostname“) entfernen! Dies kann schon der Fall sein, wenn der Absender fehlerhaft konfiguriert ist. Bei sehr hohem Mailaufkommen besser direkt verzichten.
Immer noch in der Datei main.cf, werden folgende zwei Zeilen gesucht und für TLS angepasst:
Für eine ausgehende Kommunikation von Server zu Server, wird nun ebenfalls TLS aktiviert. Ist eine solche sichere Verbindung nicht möglich, wird darauf verzeichtet („may“). Am 08.12.2014 habe ich noch ein einige sichere Cipher hinzugefügt und SSLv2,3 deaktiviert.
Sind Einträge bereits vorhanden, diese bitte ersetzen.
Aber Vorsicht: Bitte darauf achten, dass hier um „smtp_tls_cert_file“ geht, im vorherigen Schritt war es „smtpD_tls_key_file“ – auf keinen Fall ersetzen, da es sich um zwei verschiedene Parameter handelt:
Außerdem kann hier Folgendes noch geändert werden:
smtpd_banner = $myhostname
Die Einstellung bewirkt, dass „Postfix“ sowie „Debian“ beim Verbinden als Produktname nicht angezeigt werden. Dies hat keine Auswirkung auf die Funktionalität, ist jedoch zur Sicherheit zu empfehlen.
Als nächstes die Datei „/etc/postfix/master.cf“ editieren:
dovecot unix - n n - - pipe
flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient}
Achtung! Die Einrückung der zweiten Zeile ist wichtig!
Immer noch in der Datei master.cf, nun den Submission-Listener aktivieren. Dafür folgende Zeilen einfügen:
Wo diese Zeilen eingefügt werden, spielt keine Rolle. Der Logik/Übersicht halber würde ich sie jedoch an einer oberen Stelle platzieren. Im Standard existiert der Eintrag „submission“ bereits, ist jedoch auskommentiert. Auch hier die Einrückung bestehen lassen!
Nun werden vier Dateien für die Datenbankverbindung erstellt. Nicht vergessen, das Passwort anzupassen: /etc/postfix/mysql_virtual_alias_maps.cf
hosts = localhost
user = postfix
password = MYSQLPW
dbname = postfixdb
query = SELECT goto FROM alias WHERE address='%s' AND active = '1'
/etc/postfix/mysql_virtual_mailbox_maps.cf
hosts = localhost
user = postfix
password = MYSQLPW
dbname = postfixdb
query = SELECT maildir FROM mailbox WHERE username='%s' AND active = '1'
/etc/postfix/mysql_sender_login_maps.cf
hosts = localhost
user = postfix
password = MYSQLPW
dbname = postfixdb
query = SELECT username AS allowedUser FROM mailbox WHERE username="%s" AND active = 1 UNION SELECT goto FROM alias WHERE address="%s" AND active = 1
/etc/postfix/mysql_virtual_domains_maps.cf
hosts = localhost
user = postfix
password = MYSQLPW
dbname = postfixdb
query = SELECT domain FROM domain WHERE domain='%s' AND active = '1'
Wichtig: Die Rechte für die Dateien ändern, damit kein unbefugter Zugriff erfolgt.
cd /etc/postfix
chmod o-rwx,g+r mysql_*
chgrp postfix mysql_*
Neuer Hinweis vom 22. Januar 2015: Bitte stellt zum Schluss noch sicher, dass unter „myhostname“ ein FQDN eingetragen ist, Beispiel:
myhostname = name.domain.tld
Das gleiche gilt für die Datei „/etc/mailname“, auch in diese bitte den FQDN des Servers eintragen:
Hinweise: Die Postmaster-Adresse kann an dieser Stelle natürlich angepasst werden.
Zudem darf in Zeile 7, "protocols = imap pop3", "pop3" oder "imap" vollkommen weg gelassen werden. Für beide Protokolle gilt, dass neben Port 110 und 143 auch die reinen SSL-Ports 993 (IMAPS) und 995 (POP3S) geöffnet werden.
Um nur Port 993 und 995 zu öffnen, kann am Ende Folgendes eingefügt werden. Vorsicht: Damit verliert der Server die Möglichkeit zur Aufwertung der Verbindung durch STARTTLS.
Randnotiz: Die Ports 993 und 995 sind vom Kontakt an verschlüsselt. "IMAPS" und "POP3S" wurden verwendet, als STARTTLS noch nicht verfügbar war. Die Protokolle IMAP und POP3 wurden einfach "in SSL gewickelt". State of the Art ist STARTTLS.
service imap-login {
inet_listener imap {
port=0
}
}
service pop3-login {
inet_listener pop3 {
port=0
}
}
Für die MySQL-Anbindung folgende Datei erstellen...
nano /etc/dovecot/dovecot-mysql.conf
...und diesen Inhalt einfügen. Auch hier wieder in zweiter Zeile das Passwort für die Datenbank anpassen:
driver = mysql
connect = "host=localhost dbname=postfixdb user=postfix password=MYSQLPW"
default_pass_scheme = MD5-CRYPT
password_query = SELECT password FROM mailbox WHERE username = '%u'
user_query = SELECT CONCAT('maildir:/var/vmail/',maildir) AS mail, 5000 AS uid, 5000 AS gid FROM mailbox INNER JOIN domain WHERE username = '%u' AND mailbox.active = '1' AND domain.active = '1'
An dieser Stelle noch einmal herzlichen Dank an das großartige How-To auf wyden.com!
Eine E-Mailadresse anlegen
Um eine E-Mailadresse anzulegen, wird postfixadmin im Browser angesurft. Einloggen als Admin und folgende Schritte abarbeiten:
Domain Liste > Neue Domain.
Als Domain wird die Domain definiert, für die der Server zuständig ist.
Standard-Aliase können hinzugefügt werden, dabei handelt es sich etwa um postmaster, hostmaster etc. Der Server ist kein Backup MX.
Um ein Postfach für die Domain zu erstellen, gilt folgendes:
Virtual Liste > Mailbox hinzufügen
Die Einstellungen sind selbsterklärend. Mit diesen Daten authentifiziert sich der Benutzer am Mailserver.
OPTIONAL: Spam- und Virenfilter
Ich habe bewußt die Anpassungen der Postfix-Konfiguration oben weg gelassen, um die Installation optional durchführen zu können.
Zu Beginn werden die notwendigen Pakete installiert. Unter anderem unrar, unzip etc., um Anhänge zu scannen.
Sollte eines der Pakete nicht gefunden werden, so muss vorab das non-free Repository aktiviert werden:
sed -i 's/wheezy main/wheezy main non-free/g' /etc/apt/sources.list \
&& apt-get update
Oder manuell die Datei /etc/apt/sources.list bearbeiten und für das Debian Repository am Ende (nach main) non-free einfügen, z.B. so:
deb http://ftp.de.debian.org/debian/ wheezy main non-free
Auch in diesem Fall: apt-get update
Es ist möglich, dass während der Installation folgende Fehlermeldung erscheint:
[FAIL] Clamav signatures not found in /var/lib/clamav ... failed!
[FAIL] Please retrieve them using freshclam ... failed!
[FAIL] Then run '/etc/init.d/clamav-daemon start' ... failed!
Hier besteht kein größeres Problem. In diesem Fall wird der clamav-daemon nach der Installation (neu)gestartet:
/etc/init.d/clamav-daemon restart
Nun zwei Gruppenzugehörigkeiten erstellen:
adduser clamav amavis
adduser amavis clamav
ClamAV aktualisiert die Virusdatenbank im Hintergrund eigenständig. Das Intervall beträgt 24mal am Tag (zu diesem Zeitpunkt), ergo jede Stunde. Dieses kann in der Datei "/etc/clamav/freshclam.conf" geändert werden (> "Checks 24").
Damit Spamassassin aktiviert wird und auch diese Datenbank sich automatisch aktualisieren kann, werden in der Datei "/etc/default/spamassassin" folgende Einträge verändert:
ENABLED=1
CRON=1
Die Änderungen übernehmen, indem der Dienst neugestartet wird:
/etc/init.d/spamassassin restart
Amavis ist eine Schnittstelle zwischen dem Mailagent und der Filtersoftware (ClamAV und Spamassassin).
Zur Bereitstellung der Schnittstelle wird die Datei "15-content_filter_mode" geöffnet und folgende Blöcke aktiviert (die Rauten werden entfernt):
Es folgt ein Eintrag in die Datei "50-user", durch welchen der Spam-Filter auf allen virtuellen Domänen aktivieren wird (vielen Dank an Christian!):
Diesen Eintrag bitte VOR der letzten Zeile in die Datei einfügen und den Benutzernamen, das Passwort sowie den Datenbanknamen der MySQL-Installation anpassen!
/etc/amavis/conf.d/50-user:
@lookup_sql_dsn = (
['DBI:mysql:database=postfixdb;host=127.0.0.1;port=3306',
'postfix',
'MYSQLPW']);
$sql_select_policy = 'SELECT "Y" as local FROM alias WHERE address IN (%k)';
Weiter Änderungen der Amavis Konfiguration: /etc/amavis/conf.d/01-debian:
Optional kann zusätzlich Folgendes eingestellt werden (Danke an Jan!).
Diese Option ebenfalls unbedingt VOR der letzten Zeile unterbringen! /etc/amavis/conf.d/50-user:
Diese Optionen bewirken, dass "postmaster@domain.tld" über blockierte E-Mails benachrichtigt wird. Durch "$final_spam_destiny = D_PASS;" würde eine als Spam markierte Nachricht letztendlich an den Benutzer weitergeleitet werden, was durchaus Vorteile hat.
Abschließend Amavis (neu)starten:
/etc/init.d/amavis restart
Um Amavis in Postfix zu aktivieren, werden weitere Schritte benötigt. Zuerst die main.cf mit folgendem Befehl anpassen:
Nach einem finalen reload des Postfix Dienstes, ist dieser um einen Spam- und Virenfilter reicher:
/etc/init.d/postfix reload
"netstat -tulpen" sollte nun die Bindungen 127.0.0.1:10025 und 127.0.0.1:10024 anzeigen. Auf "heise" findet sich außerdem die Möglichkeit, eine Test E-Mail mit dem harmlosen EICAR "Virus" zu versenden. Dieser richtet keinen Schaden an und wird ausschließlich dazu eingesetzt, Anti-Viren Funktionen zu überprüfen.
OPTIONAL: Postgrey für Greylisting
Greylisting fordert unbekannte Mailserver eines Absenders dazu auf, seinen Zustellversuch später zu wiederholen. Die Nachricht wird nicht abgelehnt, viel mehr wird mitgeteilt, dass die Zustellung im Moment nicht möglich ist. Dieses Verhalten ist Standardkonform, aber keine Pflicht.
Postgrey ist seit 2011 in der stabilen Version 1.34 vorhanden. Die Paketquellen Wheezys beinhalten diese Version. Zur Information: Ubuntu ab 12.04 LTS ebenfalls.
Die Installation:
apt-get install postgrey
Kam es beim Start des Dienstes zu einem Fehler, so bitte folgende Datei öffnen:
nano /etc/default/postgrey
Der Parameter POSTGREY_OPTS ist im Debian-Standardpaket auf --inet=10023 gesetzt, was in diesem Artikel einsetzbar wäre.
Ungültige Werte wären 10024 oder 10025 - falls der Spam- und Virenfilter eingerichtet wurde.
Der Dienst sollte nach einem "service postgrey restart" lauffähig sein.
Nun Postfix konfigurieren, hierzu die Datei "main.cf" öffnen:
nano /etc/postfix/main.cf
Hier findet sich folgender Eintrag ("reject_unknown_reverse_client_hostname" etc. könnten hier ebenfalls stehen, siehe Hinweis aus der Postfix-Konfiguration):
Diesen ändern und um "check_policy_service" erweitern/an das Ende anfügen. Der Port "10023" muss dem Port der Datei "/etc/default/postgrey" entsprechen:
Nach dem Speichern werden Postfix die Änderungen mitgeteilt:
postfix reload
Zum Testen kann eine E-Mail von einem externen Server gesendet werden.
Nach Erhalt der Nachricht:
cat /var/log/mail.log | grep greylist
Die Ausgabe sollte nicht leer sein.
Soll Postgrey für einen oder mehrere Empfänger deaktiviert werden, so reicht eine Änderung folgender Datei:
nano /etc/postgrey/whitelist_recipients
Zu sehen ist, dass E-Mails an "postmaster" sowie "abuse" bereits vom Nutzen des Greylistings ausgeschlossen sind.
Im selben Format kann hier untereinander jeder weitere Empfänger eingetragen werden.
Eine Domäne hinter "@" ist nicht notwendig, kann aber eingetragen werden, falls mehrere Domains konfiguriert sind. Um eine gesamte Domäne auszuschließen, einfach den Domänennamen eintragen, etwa "domain.tld".
Ebenso besteht eine Whitelist für Absender. Die Debian-Installation bringt bereits einige mit. Diese Absender sind dafür bekannt, entweder gar nicht oder nur sehr langsam einen erneuten Versand anzustoßen.
Der Pfad zur Datei lautet "/etc/postgrey/whitelist_clients". Hinweis: StartSSL.com bietet kostenlose (validierte) Zertifikate. Möchte ich dort meine E-Mailadresse verifizieren, blockiert Postgrey den Eingang und der Vorgang bricht an. Daher empfehle ich an dieser Stelle "gateway.startcom.org" einzufügen.
OPTIONAL: Sieve installieren und Spam in den Ordner "Spam" verschieben
Ich habe mich dazu entschieden, die Installation von Sieve ebenfalls als optional anzuhängen.
Zusätzlich erkläre ich die Einrichtung einer globalen Sieve Regel zum verschieben von Spam in den jeweiligen Spam-Ordner.
Natürlich beziehe ich mich auf die oben eingerichtete Installation zuzüglich des Spam-Filters.
Das eben erstellte Script muss durch sievec noch kompiliert werden:
sievec /var/lib/dovecot/sieve/default.sieve
Die Rechte rekursiv an "vmail" vergeben:
chown -R vmail:vmail /var/lib/dovecot
Es folgen einige Änderungen der Datei "/etc/dovecot/dovecot.conf":
Zwei Optionen steuern die automatische Erstellung- sowie das Abonnement (im Mail-Client) von Unterordnern. Danke Christian für den Hinweis in den Kommentaren!
Durch Sieve sollte nun der Port 4190 offen für Verbindungen sein, zu Überprüfen via "netstat -tulpen | grep -i dovecot": Netstat mit Dovecot, Sieve
Hinweis: Das Mailverzeichnis des jeweiligen Benutzers ("homedir") wird nach einer eigenen Sieve Konfiguration abgesucht. Exisitiert keine, so gelten die in "sieve_global_path" definiverten Regeln. Die Regeln eines Benutzers überschreiben die Globalen!
Ganz einfach und ohne viel Aufwand, lässt sich eine allgemeine Quota in Dovecot einrichten. Diese Quota benutzt nicht die Tabelle "quota2" aus der MySQL-Datenbank, hierzu ist einiges mehr an Konfiguration notwendig, auf die ich erst einmal verzichte.
Die Änderungen finden alle in der Datei "dovecot.conf" statt:
nano /etc/dovecot.conf
Folgende Zusätze einfügen, "mail_plugins" an den Anfang setzen:
Um eine Quota nicht zu erzwingen, kann "quota" in der Sektion "plugin" um die Option "nonenforcing" ergänzt werden:
quota = maildir:User quota:noenforcing
Weiterhin darf der Parameter "quota_exceeded_message" nach eigenen Wünschen angepasst werden.
Die Quota-Regeln ("quota_rule") sind ein Beispiele. Es können beliebig viele erweitert werden, Zusätze werden durchnummeriert ("quota_rule4", "quota_rule5" usw.).
Die erste Regel im Beispiel limitiert die Mailboxen auf 1GB, anstatt "1024M" darf auch mit "1GB" gearbeitet werden.
Zweite Regel erweitert die Quota um 10MB für Nachrichten im Papierkorb.
Dritte Regel ignoriert den Ordner Spam, falls vorhanden.
Anschließend den Diest neustarten:
service dovecot restart
Kleiner Tipp: Via Konsole eine Abfrage des Kontingents eines Benutzers starten:
doveadm quota get -u benutzer.name
OPTIONAL: Attacken durch Fail2Ban reduzieren
Leider ist es so, dass der neue Mail-Server bereits nach einigen Stunden von Spammern attackiert wird. Das lässt sich - wenigstens minimal - durch Fail2Ban verhindern. Bruteforce Attacken können jedenfalls relativ erfolgreich verhindert werden.
Hinweis für Debian Squeeze: Auch wenn nicht ausdrücklich von diesem Artikel abgedeckt, findet ihr HIER eine kleine Hilfe für die Installation eines Filters in Debian Squeeze, da dieser nicht Teil des "Fail2ban" Paketes aus den offiziellen Quellen zu sein scheint. (Danke Funjack für den Hinweis!)
Ist "Fail2Ban" noch nicht installiert, so kann dies folgendermaßen nachgeholt werden:
sudo apt-get install fail2ban
In der Datei "/etc/fail2ban/jail.local" (wird neu angelegt!) folgendes einfügen:
Genauer möchte ich an diesem Punkt nicht auf Fail2Ban eingehen. Mit der Installation wird automatisch auch SSH überwacht. Wer das nicht möchte, muss diese Funktion deaktivieren.
"Bantimes" und mehr global in "jail.conf" definieren oder oben ergänzen. Globale Einstellungen unter "Default" in dieser Konfiguration werden immer überschrieben.
OPTIONAL: Logging nur nach /var/log/mail*
Soll das Syslog vom Maildienst verschont bleiben und Ereignisse nur nach "/var/log/mail*" geschrieben werden, wird der zugehörige Dienst "rsyslog" entsprechend konfiguriert:
sed "s/*.*;auth,authpriv.none/*.*;auth,mail.none,authpriv.none/" -i /etc/rsyslog.conf
Der Befehl ersetzt die zugehörige Zeile durch eine neue, modifizierte Zeile.
Selbstverständlich hat diese Einstellung keinen Einfluss auf das Log-Level.
Einrichtung am Client
Der eingerichtete Mailserver kann nun auf verschiedenen Ports angesprochen werden.
IMAP * Port 143 verschlüsselt nach STARTTLS - TLS wird nach Connect initiiert
Port 993 unmittelbar verschlüsselt, TLS Handshake erfolgt sofort (keine besonderen Vorteile)
Authentifizierungsmethode: PLAIN oder LOGIN, in Thunderbird z.B. "Passwort, normal" Hinweis: Unverschlüsselte "plain text" Authentifizierung ist deaktiviert.
POP3 (falls nicht deaktiviert) * Port 110 verschlüsselt nach STARTTLS - TLS wird nach Connect initiiert
Port 995 unmittelbar verschlüsselt, TLS Handshake erfolgt sofort (keine besonderen Vorteile)
Authentifizierungsmethode: PLAIN oder LOGIN, in Thunderbird z.B. "Passwort, normal" Hinweis: Unverschlüsselte "plain text" Authentifizierung ist deaktiviert.
SMTP
Port 25 unverschlüsselt, Authentifizierung jedoch nicht möglich
Port 25 verschlüsselt nach STARTTLLS - TLS wird nach Connect initiiert * Port 587 verschlüsselt nach STARTTLS - TLS wird nach Connect initiiert Hinweis: Ein User speist seine Nachrichten vorrangig auf dem Submission Port 587 in Postfix ein. Hinter Port 25 lauert gelegentlich ein strengeres Regelwerk (in diesem Artikel ist das nicht der Fall), das Verbindungen von Usern ablehnen könnte. Daher bitte nicht angewöhnen über Port 25 zu mailen, außer es ist ausdrücklich Vorschrift.