Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
mailserver:mailserver [2012/08/27 20:46]
chrisge [Hinweis: IPv6]
mailserver:mailserver [2018/09/11 21:07] (aktuell)
chrisge
Zeile 8: Zeile 8:
 **Softwarevoraussetzungen:​** Paketverwaltung | Texteditor | [[Mailserver#​Voraussetzungen |siehe weiter unten]] \\ **Softwarevoraussetzungen:​** Paketverwaltung | Texteditor | [[Mailserver#​Voraussetzungen |siehe weiter unten]] \\
 **Schwierigkeitsgrad:​** Schwer \\ **Schwierigkeitsgrad:​** Schwer \\
-**Ausgetestet mit folgenden Betriebssystemen:​** Ubuntu ​(Jaunty bis Precise) ​| Debian ​(Lenny, Squeeze, Wheezy teilweise Probleme bei Dovecot-Postfix Integration) ​| teilweise auch andere Distributionen+**Ausgetestet mit folgenden Betriebssystemen:​** Ubuntu | Debian | teilweise auch andere Distributionen
 </​WRAP>​ </​WRAP>​
  
-<​WRAP ​left important 68%> +<​WRAP ​alert important 68%> 
-**Achtung! //sudo//:**  +**Archiv:** Diese Anleitung ​behandelt ältere Softwareversionen, kann aber noch als Referenz verwendet ​werden. ​Der vorstellte Ansatz mit arcor als Relayhost funktioniert nicht mehr! Hier muss man zu bezahlten Relayhosts ​oder Mailaccounts bei Hostern wie mailbox.org oder Posteo ​(erlauben teilweise die Nutzung einer eignen Domainzurückgreifen. ​
-In dieser ​Anleitung ​verdeutlicht der Befehl ''​sudo''​dass die folgende Codezeile mit Root-Rechten ausgeführt werden muss.  +
-In normalen **Ubuntu** Installationen (Root-/​VServer siehe Debian) ​kann dies durch den Befehl ''​sudo''​ erreicht ​werden. ​\\ +
-Bei **Debian** wird bei der Installation ein Passwort für den Root-Benutzer festgelegt, so kann man sich entweder direkt als Root  ​oder als "​normaler"​ Benutzer mit Eingabe von ''​su'' ​ als Root einloggen ​(Root-Passwort benötigt-> ''​sudo''​ bleibt dann überflüssig!+
 </​WRAP>​ </​WRAP>​
  
Zeile 25: Zeile 22:
   - Weiterleitung von Port 25 an den Host mit dem Mailserver   - Weiterleitung von Port 25 an den Host mit dem Mailserver
   - du hast den Beitrag [[Einführung]] gelesen   - du hast den Beitrag [[Einführung]] gelesen
-Wenn du alle erfüllt hast, kannst du nun mit den einzelnen Diensten starten. Falls du Fragen hast, kannst du dich per E-Mail an mich wenden (support[at]mein.homelinux[dot]com).+Wenn du alle erfüllt hast, kannst du nun mit den einzelnen Diensten starten. Falls du Fragen hast, kannst du dich per E-Mail an mich wenden (cw[at]chrisge[dot]org).
  
 ==== Funktionen ==== ==== Funktionen ====
Zeile 42: Zeile 39:
 Folgende Pakete werden benötigt: Folgende Pakete werden benötigt:
 <​code>​ <​code>​
-postfix ​            #das "​Grundpaket"​ +postfix ​            # das "​Grundpaket"​ 
-libsasl2-modules ​   #weil wir uns bei Arcor authentifizieren müssen +libsasl2-modules ​   # weil wir uns bei Arcor authentifizieren müssen 
-mailutils ​          #um das Ganze zu testen ​+mailutils ​          # um das Ganze zu testen ​
 </​code>​ </​code>​
 <WRAP right info 40%> <WRAP right info 40%>
Zeile 101: Zeile 98:
 und füllen sie mit folgendem Inhalt (Kommentarzeichen (''#''​) weglassen): und füllen sie mit folgendem Inhalt (Kommentarzeichen (''#''​) weglassen):
 <​code>​ <​code>​
-mail.arcor.de username:​passwort ​   #username durch Benutzername bei arcor ersetzen, passwort durch das Login-Passwort für den Account bei arcor ersetzen. +mail.arcor.de username:​passwort ​   # username durch Benutzername bei arcor ersetzen, passwort durch das Login-Passwort für den Account bei arcor ersetzen. 
-mail.arcor.de ich:​meinpasswort ​    #​Beispiel+mail.arcor.de ich:​meinpasswort ​    # Beispiel
 </​code>​ </​code>​
  
Zeile 108: Zeile 105:
 Danach führen wir diese Befehle aus: Danach führen wir diese Befehle aus:
 <code bash> <code bash>
-user@server:​~$ sudo chmod 600 /​etc/​postfix/​sasl_password ​      #​Rechte anpassen +user@server:​~$ sudo chmod 600 /​etc/​postfix/​sasl_password ​      # Rechte anpassen 
-user@server:​~$ sudo postmap /​etc/​postfix/​sasl_password ​        #In Datenbank umwandeln +user@server:​~$ sudo postmap /​etc/​postfix/​sasl_password ​        # In Datenbank umwandeln 
-user@server:​~$ sudo /​etc/​init.d/​postfix restart ​               #Postfix neustarten+user@server:​~$ sudo service ​postfix restart ​               # Postfix neustarten
 </​code>​ </​code>​
  
Zeile 119: Zeile 116:
 und in dem anderen versenden wir eine Mail: und in dem anderen versenden wir eine Mail:
 <code bash> <code bash>
-user@server:​~$ echo "​Testtext"​ | mailx -s "​Testbetreff" ​ Empfänger@provider.de ​  #​Empfänger darf nicht lokal sein! (also nicht: ich@localhost) +user@server:​~$ echo "​Testtext"​ | mailx -s "​Testbetreff" ​ Empfänger@provider.de ​  # Empfänger darf nicht lokal sein! (also nicht: ich@localhost) 
-user@server:​~$ echo "hallo wie gehts?"​ | mailx -s "​hallo" ​ herbert.gerhardt@gmail.com ​       #Beispiel+user@server:​~$ echo "hallo wie gehts?"​ | mailx -s "​hallo" ​ herbert.gerhardt@gmail.com ​       # Beispiel
 </​code>​ </​code>​
  
Zeile 143: Zeile 140:
 und fügen folgendes ein: und fügen folgendes ein:
 <​code>​ <​code>​
-www-data noreply@dynDNS ​  #nun hat www-data nicht mehr den Absender www-data sonder noreply, dynDNS sollte durch die eigene dynamische DNS ersetzt werden. +www-data noreply@dynDNS ​  # nun hat www-data nicht mehr den Absender www-data sonder noreply, dynDNS sollte durch die eigene dynamische DNS ersetzt werden. 
-user1 user2@dynDNS ​       #hier verschickt user1 unter dem Absender von user2 +user1 user2@dynDNS ​       # hier verschickt user1 unter dem Absender von user2 
-user3 user2@gmail.com ​    #und hier user3 unter seiner/​einer gmail Adresse+user3 user2@gmail.com ​    # und hier user3 unter seiner/​einer gmail Adresse
 </​code>​ </​code>​
 Nun führt man noch folgende Befehle aus: Nun führt man noch folgende Befehle aus:
 <code bash> <code bash>
 user@server:​~$ sudo postmap /​etc/​postfix/​sender_canonical user@server:​~$ sudo postmap /​etc/​postfix/​sender_canonical
-user@server:​~$ sudo /​etc/​init.d/​postfix restart ​+user@server:​~$ sudo service ​postfix restart ​
 </​code>  ​ </​code>  ​
 und die Absender sind manipuliert! und die Absender sind manipuliert!
Zeile 159: Zeile 156:
 <code bash>​user@server:​~$ sudo nano /​etc/​aliases</​code>​ <code bash>​user@server:​~$ sudo nano /​etc/​aliases</​code>​
 der Inhalt wird folgendermaßen festgelegt: der Inhalt wird folgendermaßen festgelegt:
-<​code>​postmaster:​ root                #mail, die an postmaster gerichtet ist, wird an root weitergeleitet</​code>​+<​code>​postmaster:​ root                # Mail, die an postmaster gerichtet ist, wird an root weitergeleitet</​code>​
 In dieser Art kann weiter ergänzt werden (Beispiele)(auf ":"​ achten): In dieser Art kann weiter ergänzt werden (Beispiele)(auf ":"​ achten):
 <​code>​ <​code>​
 #interne weiterleitung:​ #interne weiterleitung:​
-webmaster: root       #mail, die an webmaster gerichtet ist, geht an root +webmaster: root       # ​Mail, die an webmaster gerichtet ist, geht an root 
-www-data: root        #mail, die an www-data soll, kommt bei root an +www-data: root        # Mail, die an www-data soll, kommt bei root an 
-root: user1           #mail, die für root bestimmt ist, geht an user1+root: user1           # ​Mail, die für root bestimmt ist, geht an user1
 #externe weiterleitung:​ #externe weiterleitung:​
-user2: user2@gmail ​   #mail für user2 wird an seine gmail-adresse geschickt+user2: user2@gmail ​   # Mail für user2 wird an seine gmail-adresse geschickt
 #"​nicks"​ #"​nicks"​
-coolz: user3          #user3 ist nun unter coolz@dynDNS erreichbar +coolz: user3          # user3 ist nun unter coolz@dynDNS erreichbar 
-icke: user4           #und user4 hat noch seine alias icke, so lassen sich extra mailboxen für jeden seiner Nicknamen einsparen, durch Anlegen eines Alias+icke: user4           # und user4 hat noch seine alias icke, so lassen sich extra mailboxen für jeden seiner Nicknamen einsparen, durch Anlegen eines Alias
 </​code>​ </​code>​
 Nach erfolgreicher Änderung sind noch folgende Befehle nötig: Nach erfolgreicher Änderung sind noch folgende Befehle nötig:
 <code bash> <code bash>
-user@server:​~$ sudo newaliases ​                   #aliase ​übernehmen +user@server:​~$ sudo newaliases ​                   # Aliase ​übernehmen 
-user@server:​~$ sudo /​etc/​init.d/​postfix restart ​  #​postfix neustartem+user@server:​~$ sudo service ​postfix restart ​  # postfix neustartem
 </​code>​ </​code>​
  
Zeile 186: Zeile 183:
 smtpd_use_tls = yes smtpd_use_tls = yes
 </​code>​ </​code>​
-und zwar ohne # davor!+und zwar ohne # davor!\\ 
 + 
 +<WRAP right important 35%>** 
 +Achtung:** Clients die kein TSL/SSL anbieten werden dann abgewiesen! Somit kann Mail von Providern/​ISPs/​Servern,​ die kein TSL/SSL sprechen nicht angenommen werden! Diese Einstellung sollte gut überlegt und abgewogen werden! 
 +</​WRAP>​ 
 +Soll TLS/SSL nicht nur angeboten, sondern auch erzwungen werden, kann noch folgende Zeile eingefügt werden: 
 +<​code>​ 
 +smtpd_enforce_tls = yes 
 +</​code>​ 
 + 
 + 
 +=== Veraltet: SMTPS === 
 +Früher erfolgte die TLS/SSL Verschlüsselung nicht über den normalen SMTP Port (25), sondern über den seperaten [[wpde>​SMTPS|SMTPS]] Port (465). Wenn wie oben beschrieben TLS/SSL für Postfix eingerichtet wurde ist dieser Schritt somit nur noch bei Verwendung sehr alter Mailclients oder gesperrtem SMTP Port nötig.\\ 
 +Um nun SMTPS zu aktivieren öffnet man ''/​etc/​postfix/​master.cf'':​ 
 +<code bash> 
 +user@server:​~$ sudo nano /​etc/​postfix/​master.cf 
 +</​code>​ 
 +und entfernt dort vor folgenden Zeilen das ''#''​-Zeichen:​ 
 +<​code>​ 
 +smtps     ​inet ​ n       ​- ​      ​- ​      ​- ​      ​- ​      ​smtpd 
 +  -o smtpd_tls_wrappermode=yes 
 +  -o smtpd_sasl_auth_enable=yes 
 +</​code>​ 
 +Anschließend sollte man postfix noch neustarten:​ 
 +<code bash> 
 +user@server:​~$ sudo service postfix restart 
 +</​code>​
 ===== Dovecot ===== ===== Dovecot =====
 Dovecot ist ein leicht zu konfigurierender IMAP und POP3 Server, der sich unter anderem in postfix integrieren lässt. Dovecot ist ein leicht zu konfigurierender IMAP und POP3 Server, der sich unter anderem in postfix integrieren lässt.
Zeile 193: Zeile 216:
 Folgende Pakete werden benötigt Folgende Pakete werden benötigt
 <​code>​ <​code>​
-dovecot-common ​      #​dovecot +dovecot-common ​      # dovecot 
-dovecot-postfix ​     #​Integration in postfix (in Debian nicht enthalten) +dovecot-postfix ​     # Integration in postfix (in Debian nicht enthalten) 
-dovecot-imapd ​       #​Unterstützung für IMAP +dovecot-imapd ​       # Unterstützung für IMAP 
-dovecot-pop3d ​       #​Unterstützung für POP3+dovecot-pop3d ​       # Unterstützung für POP3 
 +dovecot-sieve ​       # Unterstützung für Sieve (erst ab Wheezy bzw. Precise (12.04 LTS) nötig!)
 </​code>​ </​code>​
 === Ubuntu === === Ubuntu ===
 Unter Ubuntu installieren wir die Pakete wie folgt: Unter Ubuntu installieren wir die Pakete wie folgt:
 <code bash>​user@server:​~$ sudo apt-get install dovecot-common dovecot-imapd dovecot-pop3d dovecot-postfix</​code>​ <code bash>​user@server:​~$ sudo apt-get install dovecot-common dovecot-imapd dovecot-pop3d dovecot-postfix</​code>​
-Das Paket ''​dovecot-postfix''​ integriert darauf hin dovecot in postfix.  +Das Paket ''​dovecot-postfix''​ integriert darauf hin dovecot in postfix. ​Ab Precise (12.04 LTS) sollte zusätzlich noch das Paket ''​dovecot-sieve''​ installiert werden: 
 +<code bash>​user@server:​~$ sudo apt-get install dovecot-sieve</​code>​
 == Hinweise zu dovecot-postfix == == Hinweise zu dovecot-postfix ==
 Dieses Paket ändert den ''​mailbox_command''​ in Postfix. Darüber hinaus werden bestimmte Paramter, die in ''/​etc/​dovecot/​dovecot.conf''​ gesetzt werden durch Konfigurationsdateien in ''/​etc/​dovecot/​conf.d/''​ überschrieben. Im Normalfall ist dies nicht tragisch, sondern sogar erwünscht. Bei besonderen Konfigurationen kann dies jedoch der Grund eines Fehlverhaltens sein. Wenn Konfigurationsparameter nicht übernommen werden, sollte man zuerst einen Blick in folgende Dateien werfen (falls jene existieren):​ Dieses Paket ändert den ''​mailbox_command''​ in Postfix. Darüber hinaus werden bestimmte Paramter, die in ''/​etc/​dovecot/​dovecot.conf''​ gesetzt werden durch Konfigurationsdateien in ''/​etc/​dovecot/​conf.d/''​ überschrieben. Im Normalfall ist dies nicht tragisch, sondern sogar erwünscht. Bei besonderen Konfigurationen kann dies jedoch der Grund eines Fehlverhaltens sein. Wenn Konfigurationsparameter nicht übernommen werden, sollte man zuerst einen Blick in folgende Dateien werfen (falls jene existieren):​
 <​code>​ <​code>​
-/​etc/​dovecot/​conf.d/​01-mail-stack-delivery.conf ​    #Bis jetzt nur bei Natty entdeckt +/​etc/​dovecot/​conf.d/​01-mail-stack-delivery.conf ​    # Bis jetzt nur bei Natty entdeckt 
-/​etc/​dovecot/​conf.d/​01-dovecot-postfix.conf ​        #Bis jetzt bei Lucid entdeckt (evtl. auch bei anderen Ubuntu-Version vorhanden??​) +/​etc/​dovecot/​conf.d/​01-dovecot-postfix.conf ​        # Bis jetzt bei Lucid entdeckt (evtl. auch bei anderen Ubuntu-Version vorhanden??​) 
-/​etc/​dovecot/​conf.d/​* ​                              #​Falls keine der oberen Dateien, das Ganze mit einer Wildcard (''​*''​) versuchen+/​etc/​dovecot/​conf.d/​* ​                              # Falls keine der oberen Dateien, das Ganze mit einer Wildcard (''​*''​) versuchen
 </​code>​ </​code>​
 === Debian === === Debian ===
 ''​dovecot-postfix''​ scheint es unter Debian nicht zu geben, deshalb integrieren wir Dovecot dort nachher manuell in Postfix. Die Pakete werden unter Debian so installiert:​ ''​dovecot-postfix''​ scheint es unter Debian nicht zu geben, deshalb integrieren wir Dovecot dort nachher manuell in Postfix. Die Pakete werden unter Debian so installiert:​
 <code bash>​user@server:​~$ sudo apt-get install dovecot-common dovecot-imapd dovecot-pop3d</​code>​ <code bash>​user@server:​~$ sudo apt-get install dovecot-common dovecot-imapd dovecot-pop3d</​code>​
 +Ab Wheezy sollte noch ''​dovecot-sieve''​ installiert werden:
 +<code bash>​user@server:​~$ sudo apt-get install dovecot-sieve</​code>​
  
 === Hinweis: IPv6 === === Hinweis: IPv6 ===
Zeile 236: Zeile 262:
 (..) #noch mehr Fehler dieser Art (..) #noch mehr Fehler dieser Art
 </​code>​ </​code>​
-..., kann dieser Fehler behoben werden, wenn IPv6 aktiviert wird: +..., kann dieser Fehler behoben werden, wenn IPv6 aktiviert wird und anschließend die Pakete nochmals konfiguriert/​installiert werden
-<code bash>​user@server:​~$ sudo modprobe ipv6</​code>​+<code bash>​user@server:​~$ sudo modprobe ipv6 
 +user@server:​~$ sudo apt-get -f install</​code>​
 ==== Konfiguration ==== ==== Konfiguration ====
 Bevor die Konfiguration beginnen kann, muss zunächst überprüft werden, welche Version von Dovecot auf dem System installiert ist: Bevor die Konfiguration beginnen kann, muss zunächst überprüft werden, welche Version von Dovecot auf dem System installiert ist:
Zeile 334: Zeile 361:
 } }
 (...) (...)
 +</​code>​
 +
 +Soll es für Sieve später möglich sein nicht existierende Unterordner anzulegen, können in obiger Datei gleich noch folgende Parameter geändert werden (optional):
 +<​code>​
 +# Should saving a mail to a nonexistent mailbox automatically create it?
 +lda_mailbox_autocreate = yes
 +
 +# Should automatically created mailboxes be also automatically subscribed?
 +lda_mailbox_autosubscribe = yes
 </​code>​ </​code>​
  
Zeile 344: Zeile 380:
 <​code>​mailbox_command = /​usr/​lib/​dovecot/​deliver </​code>​ <​code>​mailbox_command = /​usr/​lib/​dovecot/​deliver </​code>​
 ..und starten Postfix neu (''​reload''​ reicht unter Umständen auch schon aus): ..und starten Postfix neu (''​reload''​ reicht unter Umständen auch schon aus):
-<code bash>​user@server:​~$ sudo /​etc/​init.d/​postfix restart</​code>​+<code bash>​user@server:​~$ sudo service ​postfix restart</​code>​
 Anschließend kann auch Sieve mit Debian verwendet werden. Anschließend kann auch Sieve mit Debian verwendet werden.
 <WRAP left important 90%> <WRAP left important 90%>
Zeile 357: Zeile 393:
 === Dovecot neustarten === === Dovecot neustarten ===
 Nun starten wir Dovecote neu: Nun starten wir Dovecote neu:
-<code bash>​user@server:​~$ sudo /​etc/​init.d/​dovecot restart</​code>​+<code bash>​user@server:​~$ sudo service ​dovecot restart</​code>​
  
 ==== Testen ==== ==== Testen ====
Zeile 377: Zeile 413:
 Als letztes greifen wir mit einem E-mail Clienten (z.B.: Evolution) auf den Mailserver zurück (via IMAP oder POP3) mit den Benutzerdaten (Benutzername/​Passwort) eines Systembenutzers,​ dabei müsste diese Nachricht in den Logs auftauchen: Als letztes greifen wir mit einem E-mail Clienten (z.B.: Evolution) auf den Mailserver zurück (via IMAP oder POP3) mit den Benutzerdaten (Benutzername/​Passwort) eines Systembenutzers,​ dabei müsste diese Nachricht in den Logs auftauchen:
 <​code>​Aug 20 23:03:19 HOST dovecot: imap-login: Login: user=<​user>,​ method=PLAIN,​ rip=127.0.0.1,​ lip=127.0.0.1,​ TLS</​code>​ <​code>​Aug 20 23:03:19 HOST dovecot: imap-login: Login: user=<​user>,​ method=PLAIN,​ rip=127.0.0.1,​ lip=127.0.0.1,​ TLS</​code>​
-..und der Mailclient ruft schön die gerade eben versendete Mail ab...+...und der Mailclient ruft schön die gerade eben versendete Mail ab...
 \\ \\
 === Problembehebung === === Problembehebung ===
Zeile 396: Zeile 432:
  
 <​code>​ <​code>​
-#wenn mbox verwendet werden soll+# wenn mbox verwendet werden soll
 mail_location = mbox:​~/​mail:​INBOX=/​var/​mail/​%u  ​ mail_location = mbox:​~/​mail:​INBOX=/​var/​mail/​%u  ​
-#bei verwendung ​von maildir:+# bei Verwendung ​von maildir:
 mail_location = maildir:​~/​Maildir  ​ mail_location = maildir:​~/​Maildir  ​
 </​code>​ </​code>​
Zeile 404: Zeile 440:
 Bei **Dovecot 2.x** in der ''/​etc/​dovecot/​conf.d/​10-mail.conf''​ den Parameter ''​mail_location''​ wie folgt setzen: Bei **Dovecot 2.x** in der ''/​etc/​dovecot/​conf.d/​10-mail.conf''​ den Parameter ''​mail_location''​ wie folgt setzen:
 <​code>​ <​code>​
-#wenn mbox verwendet werden soll+# wenn mbox verwendet werden soll
 mail_location = mbox:​~/​mail:​INBOX=/​var/​mail/​%u  ​ mail_location = mbox:​~/​mail:​INBOX=/​var/​mail/​%u  ​
-#bei verwendung von maildir:+# bei verwendung von maildir:
 mail_location = maildir:​~/​Maildir  ​ mail_location = maildir:​~/​Maildir  ​
 </​code>​ </​code>​
Zeile 427: Zeile 463:
 Dovecot lässt standardmäßig keine root-Logins zu, deshalb müssen z.B. Dockstar-Benutzer ein extra Benutzer angelegen, auf den die Mails umgeleitet werden: Dovecot lässt standardmäßig keine root-Logins zu, deshalb müssen z.B. Dockstar-Benutzer ein extra Benutzer angelegen, auf den die Mails umgeleitet werden:
 <code bash> <code bash>
-user@server:​~$ sudo adduser BENUTZER ​   #BENUTZER durch zu erstellenden Benutzer ersetzten +user@server:​~$ sudo adduser BENUTZER ​   # BENUTZER durch zu erstellenden Benutzer ersetzten 
-user@server:​~$ sudo adduser ich         #​Beispiel mit Benutzer ich+user@server:​~$ sudo adduser ich         # Beispiel mit Benutzer ich
 </​code>​ </​code>​
  
Zeile 435: Zeile 471:
 und fügt am Ende der Datei folgendes ein und fügt am Ende der Datei folgendes ein
 <​code>​ <​code>​
-root: BENUTZER ​          #​BENUTZER durch denn erstellten Benutzer ersetzten +root: BENUTZER ​          # BENUTZER durch denn erstellten Benutzer ersetzten 
-root: ich                #Beispiel mit Benutzer ich+root: ich                # Beispiel mit Benutzer ich
 </​code>​ </​code>​
 danach ladet man die Aliase neu und startet Postfix neu: danach ladet man die Aliase neu und startet Postfix neu:
 <code bash> <code bash>
 user@server:​~$ sudo newaliases user@server:​~$ sudo newaliases
-user@server:​~$ sudo /​etc/​init.d/​postfix restart+user@server:​~$ sudo service ​postfix restart
 </​code>​ </​code>​
  
Zeile 459: Zeile 495:
  
 ==== Filter definieren ==== ==== Filter definieren ====
-In diesem Tutorial werden wir nicht alle Sieve Möglichkeiten durch nehmen. Es geht hier nur um das Grundlagenverständnis. Eine sehr umfangreiche Anleitung findet sich auf [[http://​www.tty1.net/​blog/​2011-07-16-sieve-tutorial_en.html |tty1.net]]. Weitere Informationen finden sich in der [[http://​en.wikipedia.org/​wiki/​Sieve_%28mail_filtering_language%29#​Example |Wikipedia]] und auf [[http://​wiki.ubuntuusers.de/​Archiv/​sieve |ubuntuusers.de]].In diesem Fall wird unser Server wird nicht über ''​sieveshell''​ angesprochen! Die Filterdatei muss nur unter ''​~/​.dovecot.sieve''​ abgelegt werden.+In diesem Tutorial werden wir nicht alle Sieve Möglichkeiten durch nehmen. Es geht hier nur um das Grundlagenverständnis. Eine sehr umfangreiche Anleitung findet sich auf [[http://​www.tty1.net/​blog/​2011-07-16-sieve-tutorial_en.html |tty1.net]]. Weitere Informationen finden sich in der [[http://​en.wikipedia.org/​wiki/​Sieve_%28mail_filtering_language%29#​Example |Wikipedia]] und auf [[http://​wiki.ubuntuusers.de/​Archiv/​sieve |ubuntuusers.de]]. Zusätzlich ist ein Blick in die Referenz auf [[http://​sieve.mozdev.org/​reference.html|mozdev.org]] empfehlenswert. In diesem Fall wird unser Server wird nicht über ''​sieveshell''​ angesprochen! Die Filterdatei muss nur unter ''​~/​.dovecot.sieve''​ abgelegt werden.
  
 === Einfaches Beispiel === === Einfaches Beispiel ===
Zeile 471: Zeile 507:
 Anschließend folgt das Skript: Anschließend folgt das Skript:
 <​code>​ <​code>​
-if header :contains "​from"​ ["​amazon.de",​ "​amazon.com"​] { fileinto "​INBOX.amazon";​ }                                  #wenn der Header der E-Mail als Absender "​amazon.de"​ oder "​amazon.com"​ enthällt landet sie im Posteingang im Ordner "​amazon"​ +if header :contains "​from"​ ["​amazon.de",​ "​amazon.com"​] { fileinto "​INBOX.amazon";​ }                                  # wenn der Header der E-Mail als Absender "​amazon.de"​ oder "​amazon.com"​ enthällt landet sie im Posteingang im Ordner "​amazon"​ 
-elsif header :is "​subject"​ "​weekly newsletter"​ { fileinto "​INBOX.newsletter.weekly-newsletter";​ }                    #wenn der Header als Betreff "​weekly newsletter"​ genau enthällt wird er nach "​INBOX.newsletter.weekly-newsletter"​ verschoben+elsif header :is "​subject"​ "​weekly newsletter"​ { fileinto "​INBOX.newsletter.weekly-newsletter";​ }                    # wenn der Header als Betreff "​weekly newsletter"​ genau enthällt wird er nach "​INBOX.newsletter.weekly-newsletter"​ verschoben
 elsif allof (header :contains "​from"​ "​neu@web.de",​ header :contains "​subject"​ "​news"​) { fileinto "​INBOX.sinnlos";​ }  # wenn der Header also Absender "​neu@web.de"​ und Betreff "​news"​ enthällt, wird er nach "​INBOX.sinnlos"​ verschoben. elsif allof (header :contains "​from"​ "​neu@web.de",​ header :contains "​subject"​ "​news"​) { fileinto "​INBOX.sinnlos";​ }  # wenn der Header also Absender "​neu@web.de"​ und Betreff "​news"​ enthällt, wird er nach "​INBOX.sinnlos"​ verschoben.
-else { fileinto "​INBOX";​ }                                                                                           #​alles andere landet im Posteingang (INBOX)+else { fileinto "​INBOX";​ }                                                                                           # alles andere landet im Posteingang (INBOX)
 </​code>​ </​code>​
  
 Nochmal zum Aufbau: Nochmal zum Aufbau:
 <​code>​ <​code>​
-if      #startet mit "​if"​ +if      # startet mit "​if"​ 
-elsif   #​ansonsten,​ wenn...+elsif   # ansonsten, wenn...
 elsif elsif
 elsif elsif
-(..)    #noch mehr "​elsif"​ (so viele du brauchst)+(..)    # noch mehr "​elsif"​ (so viele du brauchst)
 elsif elsif
-else    #der Rest, auf den keine der Kriterien zutreffen steht am Schluss mit "​else"​+else    # der Rest, auf den keine der Kriterien zutreffen steht am Schluss mit "​else"​
 </​code>​ </​code>​
 \\ \\
Zeile 531: Zeile 567:
 <​code>​ <​code>​
 ## Allgemeine Einstellungen ## Allgemeine Einstellungen
-set postmaster "​richard" ​     #postmaster eintragen; hier: richard+set postmaster "​richard" ​     # postmaster eintragen; hier: richard
 set bouncemail set bouncemail
 set no spambounce set no spambounce
 set properties ""​ set properties ""​
 set syslog set syslog
-set daemon 300                #alle wie viel Sekunden solle Fetchmail ausgeführt werden.+set daemon 300                # alle wie viel Sekunden solle Fetchmail ausgeführt werden.
  
  
Zeile 544: Zeile 580:
  
 ## Beispiel: ​ ## Beispiel: ​
-#hier holt der Systembenutzer richard seine Mails per POP3 von web.de mit seinem Nutzernamen richard@web.de +# hier holt der Systembenutzer richard seine Mails per POP3 von web.de mit seinem Nutzernamen richard@web.de 
-#sein Passwort bei web.de ist "​sagichnicht"​ +# sein Passwort bei web.de ist "​sagichnicht"​ 
-#die Mails werden auf dem Server nicht gelöscht (keep) und verschlüsselt abgerufen (ssl) +# die Mails werden auf dem Server nicht gelöscht (keep) und verschlüsselt abgerufen (ssl) 
-#er setzt interval3, so dass fetchmail nur alle 3 Mal Ausführen seine Mails holt (web.de freemail Nutzer können nur alle 15 Minuten E-Mails abholen)+# er setzt interval3, so dass fetchmail nur alle 3 Mal Ausführen seine Mails holt (web.de freemail Nutzer können nur alle 15 Minuten E-Mails abholen)
 poll pop3.web.de with proto POP3 interval 3 poll pop3.web.de with proto POP3 interval 3
        user '​richard@web.de'​ there with password '​sagichnicht'​ is '​richard'​ here options keep ssl        user '​richard@web.de'​ there with password '​sagichnicht'​ is '​richard'​ here options keep ssl
Zeile 553: Zeile 589:
  
 ## anderes Beispiel: ## anderes Beispiel:
-#Der Systembenutzer herbert holt seine Mails vom IMAP-Server von Googlemail. +# Der Systembenutzer herbert holt seine Mails vom IMAP-Server von Googlemail. 
-#dort hat er den Nutzernamen "​herbert.seigel",​ mit seinem Passwort "​bekommstdunicht"​ +# dort hat er den Nutzernamen "​herbert.seigel",​ mit seinem Passwort "​bekommstdunicht"​ 
-#anders als richard löscht fetchmail die gerade eben abgeholten E-Mails ("​keep"​ fehlt) +# anders als richard löscht fetchmail die gerade eben abgeholten E-Mails ("​keep"​ fehlt) 
-#auch er lädt seine Mails verschlüsselt ("​ssl"​)+# auch er lädt seine Mails verschlüsselt ("​ssl"​)
 poll imap.googlemail.com with proto IMAP  poll imap.googlemail.com with proto IMAP 
        user "​herbert.seigel@googlemail.com"​ there with password "​bekommstdunicht"​ is "​herbert"​ here ssl        user "​herbert.seigel@googlemail.com"​ there with password "​bekommstdunicht"​ is "​herbert"​ here ssl
Zeile 564: Zeile 600:
 ==== Fetchmail als Daemon ==== ==== Fetchmail als Daemon ====
 Um die Mails nun regelmäßig abzurufen, müssen wir fetchmail noch als Daemon starten, dazu öffnen wir die Datei ''/​etc/​default/​fetchmail'':​ Um die Mails nun regelmäßig abzurufen, müssen wir fetchmail noch als Daemon starten, dazu öffnen wir die Datei ''/​etc/​default/​fetchmail'':​
- +<code bash>​user@server:​~$ ​sudo nano /​etc/​default/​fetchmail</​code>​
-<code bash>​user@server:​~$ ​udo nano /​etc/​default/​fetchmail</​code>​+
 und setzen ''​START_DAEMON''​ von ''"​no"'':​ und setzen ''​START_DAEMON''​ von ''"​no"'':​
 <​code>​ <​code>​
Zeile 576: Zeile 611:
 START_DAEMON=yes START_DAEMON=yes
 </​code>​ </​code>​
-\\ 
 danach starten wir fetchmail: danach starten wir fetchmail:
-<code bash>​user@server:​~$ sudo /​etc/​init.d/​fetchmail start</​code>​+<code bash>​user@server:​~$ sudo service ​fetchmail start</​code>​
  
 ==== Testen ==== ==== Testen ====
Zeile 593: Zeile 627:
 Wenn der [[http://​de.wikipedia.org/​wiki/​Internetdienstanbieter|ISP]] die Emails nicht, oder nur unzulänglich auf Viren und Spam überprüft,​ oder der Homeserver der direkte Empfänger für eine Domain ist, empfiehlt es sich Möglichkeiten zur Spam- und Virenbekämpfung zu installieren. Maßnahmen zur Spam- und Virenbekämpfung sind für den Betrieb eines einfachen Mailservers keine Voraussetzung,​ und daher natürlich optional. Diese 3 Programme sind die Grundbausteine für ein einfache und schnelle Grundinstallation zur Spam- und Virenbekämpfung. Wenn der [[http://​de.wikipedia.org/​wiki/​Internetdienstanbieter|ISP]] die Emails nicht, oder nur unzulänglich auf Viren und Spam überprüft,​ oder der Homeserver der direkte Empfänger für eine Domain ist, empfiehlt es sich Möglichkeiten zur Spam- und Virenbekämpfung zu installieren. Maßnahmen zur Spam- und Virenbekämpfung sind für den Betrieb eines einfachen Mailservers keine Voraussetzung,​ und daher natürlich optional. Diese 3 Programme sind die Grundbausteine für ein einfache und schnelle Grundinstallation zur Spam- und Virenbekämpfung.
 <​code>​ <​code>​
-amavisd-new #​dient zur Integration von Spam- und Virenfiltern in einen MTA +amavisd-new #​ dient zur Integration von Spam- und Virenfiltern in einen MTA 
-clamav-daemon #​Virenscanner +clamav-daemon #​ Virenscanner 
-spamassassin #​Spamfilter+spamassassin #​ Spamfilter
 </​code>​ </​code>​
 <code bash>​user@server:​~$ sudo apt-get install amavisd-new clamav-daemon spamassassin</​code>​ <code bash>​user@server:​~$ sudo apt-get install amavisd-new clamav-daemon spamassassin</​code>​
Zeile 629: Zeile 663:
 \\ \\
 Nun muss der Daemon noch neu gestartet werden um unsere Änderungen zu übernehmen. Nun muss der Daemon noch neu gestartet werden um unsere Änderungen zu übernehmen.
-<code bash>​user@server:​~$ sudo /​etc/​init.d/​clamav-daemon restart</​code>​+<code bash>​user@server:​~$ sudo service ​clamav-daemon restart</​code>​
  
 ==== SpamAssassin ==== ==== SpamAssassin ====
Zeile 641: Zeile 675:
 # spamassassin'​s rules on a nightly basis # spamassassin'​s rules on a nightly basis
 CRON=1</​code>​ CRON=1</​code>​
-<code bash>​user@server:​~$ sudo /​etc/​init.d/​spamassassin start</​code>​+<code bash>​user@server:​~$ sudo service ​spamassassin start</​code>​
  
 == Razor und Pyzor == == Razor und Pyzor ==
 Falls die Filterregeln von SpamAssassin nicht ausreichen, können weitere Datenbanken hinzugefügt werden. Die Pakete ''​razor''​ und ''​pyzor''​ werden automatisch erkannt und können einzeln oder gemeinsam nachinstalliert werden. ​ Falls die Filterregeln von SpamAssassin nicht ausreichen, können weitere Datenbanken hinzugefügt werden. Die Pakete ''​razor''​ und ''​pyzor''​ werden automatisch erkannt und können einzeln oder gemeinsam nachinstalliert werden. ​
 <code bash>​user@server:​~$ sudo apt-get install razor pyzor</​code>​ <code bash>​user@server:​~$ sudo apt-get install razor pyzor</​code>​
-<code bash>​user@server:​~$ sudo /​etc/​init.d/​spamassassin restart</​code>​\\+<code bash>​user@server:​~$ sudo service ​spamassassin restart</​code>​\\
 Abhängig von der Hardware des Homeservers und der installierten Programme können diese beiden Pakete nicht nur die Mailzustellung ausbremsen, sondern auch das gesamte System verlangsamen. [[http://​wiki.apache.org/​spamassassin/​FasterPerformance|How do I get SpamAssassin to run faster?]] Abhängig von der Hardware des Homeservers und der installierten Programme können diese beiden Pakete nicht nur die Mailzustellung ausbremsen, sondern auch das gesamte System verlangsamen. [[http://​wiki.apache.org/​spamassassin/​FasterPerformance|How do I get SpamAssassin to run faster?]]
  
Zeile 694: Zeile 728:
 </​code>​\\ </​code>​\\
 Nun muss der Daemon noch neu gestartet werden, um alle Einstellungen zu übernehmen. Nun muss der Daemon noch neu gestartet werden, um alle Einstellungen zu übernehmen.
-<code bash>​user@server:​~$ sudo /​etc/​init.d/​amavis restart </​code>​+<code bash>​user@server:​~$ sudo service ​amavis restart </​code>​
  
 ==== Integration in Postfix ==== ==== Integration in Postfix ====
Zeile 700: Zeile 734:
 <code bash>​user@server:​~$ sudo postconf -e content_filter=smtp-amavis:​[127.0.0.1]:​10024</​code>​ <code bash>​user@server:​~$ sudo postconf -e content_filter=smtp-amavis:​[127.0.0.1]:​10024</​code>​
 <WRAP left info 90%> <WRAP left info 90%>
-**Hinweis:​** Der Befehl ''​postconf -e''​ fügt den angebenen Parameter direkt in die Konfigurationsdatei ''/​etc/​postfix/​main.cf''​ ein, und lädt die Konfiguration von Postfix anschließend neu. Bestehende Parameter werden dabei überschrieben,​ was die Konfigurationsdatei einfach und frei von Redundanzen hält. Durch das automatische Einlesen der Datei wird die neue Konfiguration sofort übernommen,​ und die zusätzliche Eingabe von ''​postfix reload''​ oder ''​/​etc/​init.d/​postfix reload''​ ist nicht mehr notwendig.+**Hinweis:​** Der Befehl ''​postconf -e''​ fügt den angebenen Parameter direkt in die Konfigurationsdatei ''/​etc/​postfix/​main.cf''​ ein, und lädt die Konfiguration von Postfix anschließend neu. Bestehende Parameter werden dabei überschrieben,​ was die Konfigurationsdatei einfach und frei von Redundanzen hält. Durch das automatische Einlesen der Datei wird die neue Konfiguration sofort übernommen,​ und die zusätzliche Eingabe von ''​postfix reload''​ oder ''​service ​postfix reload''​ ist nicht mehr notwendig.
 </​WRAP>​ </​WRAP>​
 +\\
 +\\
 +\\
 \\ \\
 \\ \\
Zeile 836: Zeile 873:
 ==== Sieve-Filter mit Thunderbird verwalten ==== ==== Sieve-Filter mit Thunderbird verwalten ====
  
-Eine bequeme Möglichkeit die Filter von [[mailserver#​Sieve|Sieve]] aus der Ferne zu bearbeiten bietet das von Mozilla entwickelte Thunderbird-Addon [[https://​addons.mozilla.org/​de/​thunderbird/​addon/​sieve/​ | Sieve]]. Um dem Addon den Zugriff auf die Imap-Ordner zu erlauben muss lediglich ​eine kleine Änderung an der Konfigurationsdatei von Dovecot vorgenommen werden. Dazu muss sie mit Root-Rechten editiert werden: +Eine bequeme Möglichkeit die Filter von [[mailserver#​Sieve|Sieve]] aus der Ferne zu bearbeiten bietet das von Mozilla entwickelte Thunderbird-Addon [[https://​addons.mozilla.org/​de/​thunderbird/​addon/​sieve/​ | Sieve]]. Um dem Addon den Zugriff auf die Imap-Ordner zu erlauben muss in Dovecot ​lediglich ''​managesieve'' ​aktiviert werdenDies ist im Abschnitt [[mailserver:mailserver#EinfacherManageSieve|ManageSieve]] beschrieben.\\
-<code bash>​user@server:​~$ sudo nano /​etc/​dovecot/​dovecot.conf</​code>​ +
-Bereits am Anfang sollte die Zeile mit den erlaubten Protokollen zu finden sein. Falls noch nicht vorhanden wird dort ''​managesieve'' ​hinzugefügtDas sollte dann etwa so aussehen: +
-<​code>​ +
-Protocols we want to be serving: imap imaps pop3 pop3s managesieve +
-# If you only want to use dovecot-auth,​ you can set this to "​none"​. +
-#protocols = imap imaps +
-protocols = imap imaps pop3 pop3s managesieve +
-</​code>​ +
-Um die Änderung zu übernehmen wird Dovecot neu gestartet:​ +
-<code bash>​user@server:​~$ sudo /etc/init.d/dovecot restart</​code>​ +
-\\+
 Sobald das Addon in Thunderbird installiert und dieser neu gestartet wurde, erscheint dort ein weiterer Punkt in der Kontenverwaltung namens ''​Sieve-Einstellungen''​. Dort muss zuerst der Punkt ''​Ja,​ dieser Server unterstützt Sieve''​ aktiviert werden, dann können auch schon die Einstellungen für das E-Mail-Konto vorgenommen werden. Das Addon verwendet in der Standardkonfiguration die selben Zugangsdaten wie das E-Mail-Konto;​ das sollte im Allgemeinen korrekt sein, und muss nicht verändert werden. Sobald auf ''​Filter bearbeiten''​ geklickt wird, versucht das Addon bereits mit dem Server Kontakt aufzunehmen. Um Fehler bei der Authentifikation leichter zu finden öffnen wir zuerst eine Konsole und überwachen das Log: Sobald das Addon in Thunderbird installiert und dieser neu gestartet wurde, erscheint dort ein weiterer Punkt in der Kontenverwaltung namens ''​Sieve-Einstellungen''​. Dort muss zuerst der Punkt ''​Ja,​ dieser Server unterstützt Sieve''​ aktiviert werden, dann können auch schon die Einstellungen für das E-Mail-Konto vorgenommen werden. Das Addon verwendet in der Standardkonfiguration die selben Zugangsdaten wie das E-Mail-Konto;​ das sollte im Allgemeinen korrekt sein, und muss nicht verändert werden. Sobald auf ''​Filter bearbeiten''​ geklickt wird, versucht das Addon bereits mit dem Server Kontakt aufzunehmen. Um Fehler bei der Authentifikation leichter zu finden öffnen wir zuerst eine Konsole und überwachen das Log:
 <code bash>​user@server:​~$ tail -f /​var/​log/​mail.log</​code>​ <code bash>​user@server:​~$ tail -f /​var/​log/​mail.log</​code>​
Zeile 855: Zeile 881:
 </​code>​ </​code>​
 Die Kommunikation zwischen unserem E-Mail-Client und dem Server funktioniert nun, und es können die ersten Filter erstellt (und aktiviert) werden. Es gelten dabei die selben Vorgaben wie [[mailserver#​filter_definieren|hier]] beschrieben. ​ Die Kommunikation zwischen unserem E-Mail-Client und dem Server funktioniert nun, und es können die ersten Filter erstellt (und aktiviert) werden. Es gelten dabei die selben Vorgaben wie [[mailserver#​filter_definieren|hier]] beschrieben. ​
- --- //[[chrisge@mein.homelinux.com|chrisge]] ​2012/08/20 02:06//+\\ 
 + 
 +---- 
 + --- //[[cw@chrisge.org|chrisge]] ​2018/05/26 01:34//