minidlna: Einrichtung unter Ubuntu

minidlna stellt einen DLNA-Server zur Verfügung. Jeder Linux-Rechner wird damit zum Medienserver (Bilder, Videos, Hörbücher, etc.) für alle digitalen Geräte, die DLNA unterstützen und an das Heimnetz angeschlossen sind. DLNA/UPnP-Geräte erkennen den Medienserver automatisch. Die Inhalte des Medienservers werden auf den Geräten angezeigt und sind von dort als Stream abrufbar.

…schreibt http://wiki.ubuntuusers.de/MiniDLNA

Getestet habe ich es unter Ubuntu 12.04, 13.04 und 13.10. Ich denke nicht, dass sich sonderlich viel in zukünftigen Versionen ändern wird.

Die Einrichtung läuft wie folgt ab; zuerst die Installation:

Nun die Konfiguration als root öffnen, dazu sudo und einen Editor verwenden:

Folgende Punkte sind zu ändern:

media_dir: Das vorangestellte „V“ steht für Video. Möglich sind außerdem A (Audio), P (Pictures) oder nichts (media_dir=/path).
db_- und log_dir empfehle ich zu setzen, um bei Fehlern einfacher debuggen zu können.
Das log_level „warn“ ist recht ruhig, trotzdem noch hilfreich.
inotify dient zum automatischen scannen von Änderungen. Durch inotify werden neue Dateien quasi sofort erkannt.
friendly_name ist lediglich der Anzeigenarme des Servers im Netzwerk. Kann beliebig verändert werden.
Achtung! Ohne Erweiterung der „max_user_watches“ für inotify, könnte eine große Bibliothek in minidlna schnell Probleme machen, daher wird diese via /etc/sysctl.conf erhöht:

An das Ende einzufügen:

Die Datei speichern, schließen und die Änderungen wirksam machen:

Abschließend den minidlna Dienst reloaden:

Die aktuelle Datenbank mit indizierten Dateien, kann ganz einfach im Browser aufgerufen werden:

„ls“: Dateien mit numerischer Berechtigung anzeigen

Ein kurzer Snippet für ein Bash-Alias, das die Dateiberechtigung auch numerisch anzeigt.

Wer es global (alle Benutzer) verwenden will, schreibt es in die Datei „/etc/bash.bashrc„.
Für einen einzelnen Benutzer, kommt die Zeile in die „~/.bashrc
 
 
 
 

Aufgerufen wird der Befehl (/Alias) entsprechend mit „lmod„.

Ich habe es als „Linux Allgemein“ getaggt, da es alle Distributionen mit Bash betrifft. Wirklich alte Bash-Versionen, !könnten! allerdings Probleme damit haben.

Natürlich kann man auch „alias ls“ verwenden.

MPC-HC: Audio zu leise auf Stereo Systemen (Downmix zu Stereo)

Als kleiner Tipp für diejenigen, die wie ich gerne mal einen Film mit dem MPC-HC auf dem Computer schauen wollen und kein 5.1 System- oder gar nur Monitor-Lautsprecher besitzen:

In den Optionen („O“) findet sich unter „Interne Filter“ die Einstellung für den Audio-Decoder. Hier kann im Reiter „Mixing“ die „Output Speaker Configuration“ „Stereo“ gesetzt werden. Der Ton ist anschließend wesentlich lauter.

MPC-HC: Downmix zu Stereo in den Optionen.

Copy.com Client ohne GUI als Dienst auf Debian Wheezy (x86 und x86_64) installieren – Install-Script v1.1

Copy.com

Changelog

  • 12. Mär 2014 – Init-Script: Fix für „status“

Copy.com ist wie Dropbox ein Dienst, um Daten in der Cloud abzuspeichern. Im Gegensatz zu Dropbox bekommt man hier ganze 15GB kostenlosen Speicher.

5GB Extra-Speicher gibt es mit Einladung/Ref.-Link, meiner lautet: https://copy.com?r=ul6OfL

Um die Installation zu erleichtern, habe ich ein Install-Script in Bash geschrieben, um den Client herunterzuladen, in /opt/copycom_agent zu installieren und einem unpriviligierten Benutzer zuzuweisen. Die Architektur des Systems wird automatisch erkannt.

Das Script installiert zudem ein INIT-Script, um den Client beim hochfahren mitzustarten.
Das Passwort wird NICHT plain-text gespeichert. Es wird eine Initialisierung durchgeführt, die das Passwort verschlüsselt im Anwendungsverzeichnis speichert. Im INIT-Script wird diese Angabe daher nicht mehr benötigt.

Abhängigkeiten
– Copy.com Accunt
– Curl
– Bash

Usage
chmod +x installer.sh
./installer.sh COPY_LOGIN COPY_PASSWD RUNAS

Nach der Installation kann der Service via „service copycom start/stop/restart“ gesteuert werden.

  • COPY_LOGIN ist die E-Mailadresse, mit der sich bei Copy.com eingeloggt werden kann
  • COPY_PASSWD das zugehörige Passwort
  • RUNAS ist der lokale Benutzer (mit Shell), der den Client ausführen soll

Alle Dateien werden in den Ordner „/opt/copycom_anget/data“ synchronisiert, das Anwendungsdaten-Verzeichnis lautet „/opt/copycom_agent/appdata“.

Changelog
v1.1
– Run-as-root Check
– Cleanup Funktion
– Abhängigkeiten überprüfen
– Small fixes

Download

Copy.com Installer v1.1

Der Code

Mailserver: Postfix und Dovecot mit MySQL-Anbindung auf Debian Wheezy

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
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:

ÄnderungsdatumBetroffene PaketeBeschreibung
22. Mär 2015OpenSSL, Dovecot- SSL-Zertifikat: SHA1 ist out-dated
- Sieve-Script: "Junk" anstatt "Spam" verwenden
23. Januar 2015Dovecot- Verschiedene Mailboxen automatisch erstellen und abonnieren
22. Januar 2015Postfix- Hinweis zu Hostnamen
02. Jan 2015Dovecot
Allgemein
- "disable_plaintext_auth", um Authentifizierungsversuche ohne TLS abzulehnen
- Einrichtung am Client verändert
11. Dez 2014Postfix- Goodbye SMTPS (Überfällig, da deprecated), Submission ist nun Standard
08. Dez 2014Postfix, 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 2014Postfix (Spamabwehr)- "reject_rbl_client" mit ZEN Spamhaus Blacklist in "smtpd_recipient_restrictions"
- "reject_unauth_pipelining" als "data restriction"
17. Juni 2014PostifxSMTP TLS, betrifft ausgehende Verbindungen
02. Juni 2014Postfix"reject_unverified_sender" hinzugefügt. Unbedingt "Achtung #2" an jeweiliger Stelle beachten!
22. Mai 2014AmavisAlle Domänen in den Spam-Filter miteinbeziehen (Danke, Christian!)
06. Mai 2014Dovecot- POP3 Deaktivierung: Syntaxfehler behoben (danke für den Hinweis!)
13. Mär 2014Postgrey- Hinweis zu StartSSL.com und Postgrey (Whitelist)
12. Mär 2014Dovecot- De-/Aktivierung einer Domäne in Postfixadmin nun möglich ("user_query")
- Optional: Simple Quota-Implementierung
11. Mär 2014Dovecot, 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 2014Postifx, Rsyslog- "reject_unknown_reverse_client_hostname" anstatt "reject_unknown_client_hostname" - weniger streng
- "postgrey" als Option für Postfix
- "rsyslog.conf" Modifikation verbessert
09. Mär 2014Dovecot- Optional nur IMAPS/POP3S benutzen (als Hinweis)
05. Mär 2014Postfix- "reject_unknown_client_hostname" hinzugefügt (Hinweis beachten)
18. Feb 2014Allgemein- Hinweise hinzugefügt
17. Feb 2014Dovecot- LDA-Optionen im Bereich Spam
14. Feb 2014Fail2Ban- Hinweise zu "jail.local"
01. Jan 2014Postfix- Submission hinzugefügt
23. Nov 2013Dovecot: Sieve- Automatisches Verschieben von Spam
21. Nov 2013Postfix, Fail2Ban- "smtp_banner" in main.cf
- Wichtige Erklärung zu "local_transport = virtual"
- Fail2Ban: Minimale Ergänzung
19. Nov 2013Postfix- "local_transport = virtual" in main.cf

Voraussetzungen / Abhängigkeiten

An der ein- oder anderen Stelle gehe ich etwas mehr ins Detail, jedoch setze auch ich folgendes voraus:

– Eine vorhandene Webserver Installation mit PHP (inkl. „php5-imap“ Paket) und Webroot /var/www
– Einen vorhandenen MySQL Server

Es wird von folgender Datenbankkonfiguration ausgegangen:

Database: postfixdb
Benutzer: postfix
Passwort: MYSQLPW

Zuerst werden die Paketquellen aktualisiert und die notwendigen Pakete installiert, exim4 wird hierbei – falls installiert – entfernt:

Bei der Installation wird von Postfix folgendes abgefragt:

Standardkonfiguration: Internet-Site
System-E-Mail-Name: domain.tld

Postfixadmin Grundeinrichtung

Nun wird die notwendige Datenbank angelegt und die Berechtigungen gesetzt, das Passwort nicht vergessen zu ändern:

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):

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:

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:

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:

Anschließend den Speicherort für die SSL-Zertifikate erstellen, in diesen wechseln und ein Zertifikat erstellen:

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:

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:

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:

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

/etc/postfix/mysql_virtual_mailbox_maps.cf

/etc/postfix/mysql_sender_login_maps.cf

/etc/postfix/mysql_virtual_domains_maps.cf

 
 
Wichtig: Die Rechte für die Dateien ändern, damit kein unbefugter Zugriff erfolgt.

Neuer Hinweis vom 22. Januar 2015: Bitte stellt zum Schluss noch sicher, dass unter „myhostname“ ein FQDN eingetragen ist, Beispiel:

Das gleiche gilt für die Datei „/etc/mailname“, auch in diese bitte den FQDN des Servers eintragen:

Als Inhalt lediglich den FQDN:

Soweit zu Postfix.

Dovecot

Zunächst sichern wir die Standardkonfiguration:

Nun eine neue Konfiguration anlegen…

…und folgenden Inhalt einfügen:

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.

Für die MySQL-Anbindung folgende Datei erstellen…

…und diesen Inhalt einfügen. Auch hier wieder in zweiter Zeile das Passwort für die Datenbank anpassen:

Im Abschluss den Zugriff auf die Datei absichern:

Die Dienste für Postfix und Dovecot neustarten, um den Mailserver bereitzustellen:

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:

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:

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:

Nun zwei Gruppenzugehörigkeiten erstellen:

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:

Die Änderungen übernehmen, indem der Dienst neugestartet wird:

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):

/etc/amavis/conf.d/15-content_filter_mode:

Weitere Einstellungen sind notwendig.

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:

Weiter Änderungen der Amavis Konfiguration:
/etc/amavis/conf.d/01-debian:

/etc/amavis/conf.d/05-node_id:

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:

Um Amavis in Postfix zu aktivieren, werden weitere Schritte benötigt. Zuerst die main.cf mit folgendem Befehl anpassen:

Weiter mit der Datei „/etc/postfix/master.cf„, diese mit einem Editor öffnen und folgendes am Ende einfügen:

Wieder die Einrückungen beachten und beibehalten!

Immer noch in der Datei master.cf, wird eine weitere Änderung vorgenommen.
Aus

wird

Natürlich wieder mit Einrückungen.

Nach einem finalen reload des Postfix Dienstes, ist dieser um einen Spam- und Virenfilter reicher:

„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:

Kam es beim Start des Dienstes zu einem Fehler, so bitte folgende Datei öffnen:

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:

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:

Zum Testen kann eine E-Mail von einem externen Server gesendet werden.
Nach Erhalt der Nachricht:

Die Ausgabe sollte nicht leer sein.

Soll Postgrey für einen oder mehrere Empfänger deaktiviert werden, so reicht eine Änderung folgender Datei:

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.

 
Zwei zusätzliche Pakete installieren:

Folgendes Verzeichnis anlegen:

Nun hier die Datei „default.sieve“ erstellen und die Regel zum Verschieben von Spam in den jeweiligen Ordner eintragen:

/var/lib/dovecot/sieve/default.sieve

Das eben erstellte Script muss durch sievec noch kompiliert werden:

Die Rechte rekursiv an „vmail“ vergeben:

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!

„sieve“ zu den Protokollen hinzufügen:

Das „homedir“ der Benutzer definieren, einfach unter „protocols“ als eigene Zeile einfügen:

Innerhalb des Protokolls „lda“ die Zeile „mail_plugins = $mail_plugins sieve“ einfügen, z.B.:

An das Ende der Datei noch folgendes anfügen:

Die gesamte dovecot.conf !kann! dann beispielsweise so aussehen:

Den Dovecot-Dienst im Anschluss neustarten:

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
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!
 
 
Um sich zum Testen Spam zusenden zulassen – natürlich einmalig ;) -, empfehle ich diesen Dienst:
http://www.maysoft.com/selfservespam.nsf/dl

OPTIONAL: Allgemeine Quota

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:

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:

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:

Kleiner Tipp: Via Konsole eine Abfrage des Kontingents eines Benutzers starten:

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:

In der Datei „/etc/fail2ban/jail.local“ (wird neu angelegt!) folgendes einfügen:

Anschließend den Dienst neustarten:

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:

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.

Allgemein
Server: mail.domain.tld
Benutzer: user.name@domain.tld
Passwort: XYZ

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.

* = empfohlen/gängig