{"id":1390,"date":"2015-06-19T09:57:18","date_gmt":"2015-06-19T07:57:18","guid":{"rendered":"http:\/\/www.dirk-hagedorn.de\/?page_id=1390"},"modified":"2021-02-17T08:53:39","modified_gmt":"2021-02-17T07:53:39","slug":"mailserver-mit-ubuntu-14-04-1-lts","status":"publish","type":"page","link":"https:\/\/www.dirk-hagedorn.de\/?page_id=1390","title":{"rendered":"Mailserver mit Ubuntu 14.04.1 LTS"},"content":{"rendered":"<p>Vor geraumer Zeit hatte ich bereits mit Fetchmail und Postfix herumgespielt, um &#8222;irgendwann einmal&#8220; einen Mailserver aufzusetzen. Da ein paar Stunden Zeit vorhanden waren, wollte ich das Thema wieder aufgreifen und einen Server aufsetzen, der<\/p>\n<ol>\n<li>E-Mails regelm\u00e4\u00dfig vom (Web-\/Mail-)Hoster abholt,<\/li>\n<li>Eingehende E-Mails auf Viren und SPAM untersucht (optional),<\/li>\n<li>E-Mails im Intranet \u00fcber IMAP mehreren Benutzern zur Verf\u00fcgung stellt und<\/li>\n<li>E-Mails-Backups auf der Server-Seite erm\u00f6glicht<\/li>\n<\/ol>\n<p>Sprich Dinge, die man prima in einer mehrk\u00f6pfigen Familie oder einem kleinen Unternehmen gut gebrauchen kann.<\/p>\n<p>Frei nach dem Motto &#8222;das kann doch alles nicht so schwer sein&#8220; bin ich ganz unbedarft und mit Google bewaffnet an die Sache herangegangen und hier locker aufgeschrieben. Am Ende dieser Seite findet man eine Liste mit Links zu Seiten, die mir beim Aufsetzen des Mailservers behilflich waren.<\/p>\n<h2>Disclaimer<\/h2>\n<p>Ich bin kein Experte f\u00fcr Mailserver! Im Zweifel habe ich unrecht und die Manpages und FAQs von fetchmail, postfix und dovecot wissen es sicherlich besser! Wer sich aufgrund dieses Tutorials E-Mails unwiederbringlich l\u00f6scht, der ist selbst schuld! Bei mir funktioniert es. Und das bedeutet nicht, dass es mit einer anderen Konstellation nicht in die Hose geht! Zu Test- und Installationszwecken niemals nie mit wichtigen\/richtigen Accounts und E-Mails herumprobieren!<\/p>\n<p>Wer mitgez\u00e4hlt hat: das waren f\u00fcnf Ausrufezeichen, die da nicht umsonst stehen. \ud83d\ude09<\/p>\n<h2>Begriffe<\/h2>\n<p>Damit ab nun nicht durcheinander ger\u00e4t, werde ich versuchen die folgenden Begriffe immer einheitlich zu verwenden:<\/p>\n<ul>\n<li>Benutzer: Der Mensch, der vor seinem E-Mail-Programm sitzt<\/li>\n<li>Mailserver: Die Linux-Kiste, auf dem wir das hier alles installieren<\/li>\n<li>User: Der Linux-Account des Benutzers auf unserem Mailserver<\/li>\n<li>Mailhoster: Das ist dort, wo wir mit unserem Mailserver die E-Mails einsammeln (GMX, 1&#038;1, Strato, &#8230;)<\/li>\n<\/ul>\n<h2>Beispiel-Installation<\/h2>\n<p>Bei der folgenden Installation werden wir E-Mails f\u00fcr eine nicht-existente Familie Meier abrufen, die \u00fcber einen Webhoster die Domain &#8222;familie-meier.test&#8220; reserviert hat. Die Familie besteht aus Vater Horst, Mutter Ursula, Sohn Kevin und Tochter Chantal. F\u00fcr jedes Familienmitglied ist beim Webhoster eine eigene Mailbox vorname@familie-meier.test angelegt. Zus\u00e4tzlich gibt es drei Sammel-Mailboxen: Mails an eltern@familie-meiser.test sollen an die Eltern verteilt werden, Mails an kinder@familie-meier.test an die Kinder und Mails an alle@familie-meier.test an alle vier. Abschlie\u00dfend legen wir noch eine administratives Postfach &#8222;postmann&#8220; an, kann ja nie schaden. Beim Webhoster sind demnach insgesamt acht Mailboxen* eingerichtet: horst, ursula, kevin, chantal, eltern, kinder, alle und postmann.<\/p>\n<p>* Es gibt bei manchen Webhostern M\u00f6glichkeiten, E-Mails schon dort mit passenden Weiterleitungsregeln in die einzelnen Mailboxen zu verteilen, aber wir tun mal so, als ob das nicht m\u00f6glich w\u00e4re und wir die Verteilung auf unserem Mailserver durchf\u00fchren m\u00fcssen.<\/p>\n<h2>Linux installieren<\/h2>\n<p>Zu Beginn installiere man ein frisches, m\u00f6glichst schlankes Linux (ohne Desktop\/X11) auf unserem Mailserver, den wir &#8222;kiste&#8220; nennen. Zum \u00dcben empfehle ich eine Installation in einer virtuellen Maschine (<a href=\"https:\/\/www.virtualbox.org\/\" target=\"_blank\" rel=\"noopener\">VirtualBox<\/a>, <a href=\"http:\/\/xenserver.org\/\" target=\"_blank\" rel=\"noopener\">XenServer<\/a>, <a href=\"http:\/\/www.vmware.com\/\" target=\"_blank\" rel=\"noopener\">VMWare<\/a>, &#8230;). Ich habe mich f\u00fcr ein <a href=\"http:\/\/www.ubuntu.com\/server\" target=\"_blank\" rel=\"noopener\">Ubuntu Server 14.04.1 LTS<\/a> entschieden, ein <a href=\"https:\/\/www.debian.org\/distrib\/netinst\" target=\"_blank\" rel=\"noopener\">Debian 7.x Minimal<\/a> oder ein anderes Linux wird genauso gut funktionieren.<\/p>\n<p>Bei der Paketauswahl w\u00e4hrend der Installation von Ubuntu\/Debian habe ich alles (auch Verwendung als Mailserver) deaktiviert und nur den OpenSSH-Server zwecks Fernadministration \u00fcber SSH aktiviert. Alles weitere kann anschlie\u00dfend per apt-get nachinstalliert werden, sofern es ben\u00f6tigt wird.<\/p>\n<p>Nach dem ersten Booten begr\u00fc\u00dft uns Ubuntu mit einem Prompt. Wir melden uns mit unserem Standard-Benutzer an und bringen das System erst einmal auf den neuesten Stand:<\/p>\n<pre>sudo apt-get update\r\nsudo apt-get upgrade\r\n<\/pre>\n<p>Nun sollten wir ein aktuelles System haben, das bootet und zu dem man sich mittels ssh verbinden kann.<\/p>\n<p>Bevor es weitergeht, noch ein kleiner Tipp: Wen das dauernde sudo-Getippe unter Ubuntu st\u00f6rt, hole sich mit &#8222;<em>sudo bash<\/em>&#8220; eine root-Shell und verzichte anschlie\u00dfend auf das sudo.<\/p>\n<h2>User anlegen<\/h2>\n<p>Unser Mailserver wird <a href=\"http:\/\/www.dovecot.org\/\" target=\"_blank\" rel=\"noopener\">dovecot<\/a> als IMAP-Server verwenden, wobei dovecot E-Mails im Maildir-Format ablegen wird. &#8222;Maildir&#8220; bedeutet, dass E-Mails im Filesystem gespeichert werden; IMAP-Ordner sind auch im Filesystem Ordner, f\u00fcr jede E-Mail wird eine Datei erzeugt. Die Dateistruktur wird unterhalb des Homeverzeichnisses des Users abgelegt. Somit m\u00fcssen wir f\u00fcr jeden E-Mail-Benutzer auch einen entsprechenden Linux-User anlegen. Unter Ubuntu und Debian macht man das am besten mittels <em>adduser<\/em>:<\/p>\n<p><em>sudo adduser USERNAME<\/em><\/p>\n<p>Beim folgenden Frage-Antwortspiel geben man zun\u00e4chst ein Passwort f\u00fcr den Benutzer ein (das auch sp\u00e4ter standardm\u00e4\u00dfig als IMAP-Passwort dienen wird) sowie den kompletten Namen (&#8222;Full Name&#8220;), welcher in E-Mails als Absendername verwendet wird.<\/p>\n<pre>chef@kiste:~$ sudo adduser horst\r\n[sudo] password for chef:\r\nLege Benutzer \u00bbhorst\u00ab an ...\r\nLege neue Gruppe \u00bbhorst\u00ab (1001) an ...\r\nLege neuen Benutzer \u00bbhorst\u00ab (1001) mit Gruppe \u00bbhorst\u00ab an ...\r\nErstelle Home-Verzeichnis \u00bb\/home\/horst\u00ab ...\r\nKopiere Dateien aus \u00bb\/etc\/skel\u00ab ...\r\nGeben Sie ein neues UNIX-Passwort ein:\r\nGeben Sie das neue UNIX-Passwort erneut ein:\r\npasswd: password updated successfully\r\nChanging the user information for horst\r\nEnter the new value, or press ENTER for the default\r\n        Full Name []: Horst Meier\r\n        Room Number []:\r\n        Work Phone []:\r\n        Home Phone []:\r\n        Other []:\r\nSind diese Informationen korrekt? [J\/n]\r\n<\/pre>\n<p>Das Prozedere wiederholen wir nun analog noch f\u00fcr Mutter, Sohn und Tochter:<\/p>\n<pre>sudo adduser ursula\r\nsudo adduser kevin\r\nsudo adduser chantal\r\n<\/pre>\n<p>Dazu legen wir noch einen User an, an den sp\u00e4ter administrative E-Mails gehen sollen, die ebenfalls mittels IMAP-Zugriff abgerufen werden k\u00f6nnen. Nennen wir ihn der Einfachheit halber postmann (mit zwei n):<\/p>\n<pre>sudo adduser postmann\r\n<\/pre>\n<p>Damit haben wir nun folgende User angelegt:<\/p>\n<pre>chef@kiste:~$ ls \/home\r\nchantal chef horst kevin postmann ursula\r\n<\/pre>\n<h2>Pakete installieren<\/h2>\n<p>Wir installieren nun die Pakete, die wir f\u00fcr unseren Mailserver ben\u00f6tigen. Fetchmail wird die E-Mails vom Mailhoster abholen, Dovecot wird die E-Mails speichern und per IMAP an die E-Mail-Programme der Benutzer (Thunderbird, Outlook, &#8230;) ausliefern, Postfix wird eingehende E-Mails zwischen Fetchmail und Dovecot sowie ausgehende E-Mails zwischen Dovecot und Mailhoster transportieren. Sp\u00e4ter werden in die Transportkette noch Viren- und SPAM-Filter zwischengeschaltet werden, sobald ich wei\u00df, wie das funktioniert.<\/p>\n<p>Folgende Pakete werden wir auf jeden Fall ben\u00f6tigen: ntp um die Uhrzeit zu korrigieren, die mailutils um testweise Mails von der Kommandozeile aus zu verschicken:<\/p>\n<pre>sudo apt-get install ntp ntp-doc mailutils mailutils-doc mailutils-common\r\n<\/pre>\n<p>Nun installieren wir die wichtigen Pakete f\u00fcr fetchmail, postfix und dovecot. Nach Eingabe von &#8230;<\/p>\n<pre>sudo apt-get install fetchmail postfix dovecot-core\r\n<\/pre>\n<p>&#8230; schl\u00e4gt uns apt-get weitere Pakete vor, von denen wir anschlie\u00dfend ein paar installieren. Erst einmal werden die drei und die automatisch von apt-get ausgew\u00e4hlten Pakete installiert und konfiguriert.<\/p>\n<p>Bei der Paketkonfiguration von dovecot-core werden wir gefragt, ob wir ein selbstsigiertes SSL-Zertifikat erstellen wollen: Ja. Als Rechnernamen belassen wir das vorgeschlagene &#8222;localhost&#8220;.<\/p>\n<p>Bei der Paketkonfiguration von postfix w\u00e4hlen wir das vorgeschlagene &#8222;Internet-Site&#8220;. Als System-E-Mail-Name verwenden wir &#8222;kiste.localdomain&#8220;<\/p>\n<p>Wir fahren fort mit &#8230;<\/p>\n<pre>sudo apt-get install dovecot-imapd sasl2-bin postfix-doc \r\n<\/pre>\n<p>Das war es schon.<\/p>\n<h2>Dovecot konfigurieren<\/h2>\n<p>Zun\u00e4chst stellen wir Dovecot so um, dass die E-Mails im Maildir-Format in die Homeverzeichnisse der User abgelegt werden:<\/p>\n<pre>sudo vi \/etc\/dovecot\/conf.d\/10-mail.conf\r\n...\r\n# mail_location = mbox:~\/mail:INBOX=\/var\/mail\/%u\r\nmail_location = maildir:~\/Maildir\r\n...\r\n<\/pre>\n<p>Wir suchen in der Datei nach der Zeile, die mit <em>mail_location<\/em> beginnt, kommentieren sie durch ein # am Zeilenanfang aus und f\u00fcgen die neue Zeile &#8222;<em>mail_location = maildir&#8230;<\/em>&#8220; ein, speichern und beenden.<\/p>\n<p>Du wei\u00dft nicht, wie man den vi bedient? Mit den Cursortasten an den Anfang der Zeile gehen, &#8222;i&#8220; dr\u00fccken (Insert-Mode), &#8222;# &#8220; eingeben, ESC dr\u00fccken (Insert-Mode beenden), &#8222;A&#8220; (Shift-Taste + a) dr\u00fccken (Append-Mode), RETURN dr\u00fccken (= neue Zeile einf\u00fcgen), Inhalt der neuen Zeile eingeben (siehe oben), ESC dr\u00fccken (Append-Mode verlassen), &#8222;:wq&#8220; eingeben (Speichern und Beenden). Oder einen anderen Editor verwenden. \ud83d\ude09<\/p>\n<pre>sudo vi \/etc\/dovecot\/conf.d\/15-lda.conf\r\n...\r\npostmaster_address = postmann@familie-meier.test\r\n...\r\n<\/pre>\n<p>Dieser Konfigurationseintrag ist erforderlich, damit Dovecot sp\u00e4ter nicht mit der Fehlermeldung &#8222;Invalid settings: postmaster_address setting not given lda&#8220; nervt.<\/p>\n<h2>Postfix konfigurieren<\/h2>\n<p>F\u00fcr Postfix gibt es ein wenig mehr zu konfigurieren und aufzurufen. Wir m\u00fcssen&#8230;<\/p>\n<ul>\n<li>den SMTP-Server unseres Mailhosters eintragen,<\/li>\n<li>die Authentifizierung mit dem SMTP-Server regeln,<\/li>\n<li>die Netzwerkmaske unseres Intranets eintragen,<\/li>\n<li>die Mailauslieferung auf Dovecot umstellen,<\/li>\n<li>eine &#8222;Canonical Map&#8220; f\u00fcr ausgehende E-Mails anlegen,<\/li>\n<li>eine &#8222;Virtual Map&#8220; f\u00fcr E-Mails anlegen,<\/li>\n<li>Postfix ebenfalls auf das Maildir-Format umstellen<\/li>\n<\/ul>\n<p>Bei der nun folgenden Konfiguration suche man die vielleicht schon vorhandenen Zeilen und \u00e4ndere sie entsprechend. Findet man sie nicht, f\u00fcgt man sie als neue Zeile ein.<\/p>\n<p>Los geht es mit der Konfiguration des SMPT-Servers unseres Mailhosters (= der Server, an den unser Mailserver ausgehende E-Mails liefert). Das folgende Beispiel funktioniert f\u00fcr 1&#038;1.<\/p>\n<pre>sudo vi \/etc\/postfix\/main.cf\r\n...\r\nrelayhost = smtp.1und1.de:587\r\nsmtp_sasl_auth_enable = yes\r\nsmtp_sasl_password_maps =  hash:\/etc\/postfix\/sasl_passwd\r\nsmtp_sasl_security_options = noanonymous\r\n...\r\n<\/pre>\n<p>In die Datei <em>\/etc\/postfix\/sasl_passwd<\/em> muss nun eine der vorhandenen E-Mail-Adressen und das zugeh\u00f6rige Passwort des Postfachs bei 1&#038;1 eingetragen werden:<\/p>\n<pre>smtp.1und1.de horst@familie-meier.test:Geheim1234\r\n<\/pre>\n<p>Mittels postmap wird diese Datei nun in das postfix-interne Datenbankformat umgewandelt:<\/p>\n<pre>cd \/etc\/postfix\/\r\nsudo postmap sasl_passwd\r\n<\/pre>\n<p>Der SMTP-Zugriff ist damit erledigt, tragen wir nun die Netzmaske unseres Intranets (die Rechner haben Adressen zwischen 192.168.0.1 und 192.168.0.254) in die main.cf ein:<\/p>\n<pre>sudo vi \/etc\/postfix\/main.cf\r\nmynetworks = 127.0.0.0\/8 <strong>192.168.0.0\/24<\/strong> [::ffff:127.0.0.0]\/104 [::1]\/128\r\n<\/pre>\n<p>Mit der folgenden Zeile teilen wir postfix mit, dass E-Mails \u00fcber dovecot zu verteilen sind. M\u00f6glicherweise ist bereits ein Eintrag f\u00fcr procmail vorhanden, diesen dann zuvor entfernen oder auskommentieren und den folgenden einf\u00fcgen:<\/p>\n<pre>sudo vi \/etc\/postfix\/main.cf\r\n...\r\nmailbox_command = \/usr\/lib\/dovecot\/deliver\r\n...\r\n<\/pre>\n<p>\u00dcber die &#8222;Canonical Map&#8220; erfolgt f\u00fcr ausgehende E-Mail eine Umsetzung von lokalen User-Namen (horst, ursula, &#8230;) auf externe E-Mail-Adressen (horst@familie-meier.test, ursula@familie-meier.test). Wir legen zun\u00e4chst die Datei an &#8230;<\/p>\n<pre>cd \/etc\/postfix\r\nsudo vi sender_canonical\r\nhorst    horst@familie-meier.test\r\nursula   ursula@familie-meier.test\r\nkevin    kevin@familie-meier.test\r\nchantal  chantal@familie-meier.test\r\npostmann postmann@familie-meier.test\r\n<\/pre>\n<p>&#8230; erzeugen aus der Datei mittels postmap die postfix-interne Datenbank &#8230;<\/p>\n<pre>sudo postmap sender_canonical\r\n<\/pre>\n<p>und aktivieren sie schlie\u00dflich in der main.cf:<\/p>\n<pre>sudo vi main.cf\r\n...\r\nsender_canonical_maps = hash:\/etc\/postfix\/sender_canonical\r\n...\r\n<\/pre>\n<p>\u00dcber die &#8222;Virtual Map&#8220; wird geregelt, wie eintreffende E-Mails weiterverteilt werden. \u00dcber diese Datei werden auch die Verteilerlisten &#8222;eltern&#8220;, &#8222;kinder&#8220; und &#8222;alle&#8220; abgewickelt. Auf der linken Seite der Datei stehen die internen Adressen, auf der rechten Seite der\/die User, in dessen\/deren Postf\u00e4cher die E-Mails einsortiert werden.<\/p>\n<p>Wie im obigen Fall legen wir eine Datei mit den notwendigen Eintr\u00e4gen an, speichern diese, erzeugen die postfix-interne Datenbank und konfigurieren sie in der main.cf:<\/p>\n<pre>cd \/etc\/postfix\r\nsudo vi virtual\r\nhorst      horst\r\nursula     ursula\r\nkevin      kevin\r\nchantal    chantal\r\npostmann   postmann\r\neltern     horst,ursula\r\nkinder     kevin,chantal\r\nalle       horst,ursula,kevin,chantal\r\n\r\nhorst@familie-meier.test     horst\r\nursula@familie-meier.test    ursula\r\nkevin@familie-meier.test     kevin\r\nchantal@familie-meier.test   chantal\r\npostmann@familie-meier.test  postmann\r\neltern@familie-meier.test    horst,ursula\r\nkinder@familie-meier.test    kevin,chantal\r\nalle@familie-meier.test      horst,ursula,kevin,chantal\r\n<\/pre>\n<pre>sudo postmap virtual\r\n<\/pre>\n<pre>sudo vi main.cf\r\n...\r\nvirtual_maps = hash:\/etc\/postfix\/virtual\r\n...\r\n<\/pre>\n<p>Zum Abschluss teilen wir Postfix noch mit, dass E-Mails im Maildir-Format abgelegt werden. Hinweis: Ich bin mir nicht sicher, ob das erforderlich ist, wenn an dovecot verteilt wird, aber jedenfalls l\u00e4uft es so. \ud83d\ude09<\/p>\n<pre>sudo vi \/etc\/postfix\/main.cf\r\n...\r\nhome_mailbox = Maildir\/\r\n...\r\n<\/pre>\n<p>Damit ist die Konfiguration von Postfix abgeschlossen.<\/p>\n<h2>Fetchmail konfigurieren<\/h2>\n<p>Zum Schluss noch die Konfiguration von Fetchmail. Hierf\u00fcr bitte die Adressen und Kennw\u00f6rter der Postf\u00e4cher bereithalten, die wir beim Mailhoster abrufen wollen. In unserem Beispiel sind das die seit oben bekannten Familienpostf\u00e4cher, die bei 1&#038;1 gehostet und \u00fcber den dortigen POP3-Server abgerufen werden.<\/p>\n<p>Da noch keine Konfigurationsdatei in \/etc bereit liegt, kopieren wir die Beispieldatei dort hin, \u00e4ndern den Eigent\u00fcmer auf fetchmail, \u00e4ndern die Zugriffsrechte &#8230;<\/p>\n<pre>cd \/etc\r\nsudo cp \/usr\/share\/doc\/fetchmail\/examples\/fetchmailrc.example fetchmailrc\r\nsudo chown fetchmail fetchmailrc\r\nsudo chmod 0600 fetchmailrc\r\n<\/pre>\n<p>&#8230; und bearbeiten sie anschlie\u00dfend:<\/p>\n<pre>sudo vi fetchmailrc\r\n...\r\nset daemon 60\r\n...\r\npoll pop.1und1.de with protocol pop3\r\n  user 'horst@familie-meier.test'    there with password 'geheim' is 'horst' here\r\n  user 'ursula@familie-meier.test'   there with password 'geheim' is 'ursula' here\r\n  user 'kevin@familie-meier.test'    there with password 'geheim' is 'kevin' here\r\n  user 'chantal@familie-meier.test'  there with password 'geheim' is 'chantal' here\r\n  user 'eltern@familie-meier.test'   there with password 'geheim' is 'eltern' here\r\n  user 'kinder@familie-meier.test'   there with password 'geheim' is 'kinder' here\r\n  user 'alle@familie-meier.test'     there with password 'geheim' is 'alle' here\r\n  user 'postmann@familie-meier.test' there with password 'geheim' is 'postmann' here\r\n...\r\n<\/pre>\n<p>\u00dcber &#8222;<em>set daemon 60<\/em>&#8220; wird der fetchmail-Hintergrundprozess angewiesen, alle 60 Sekunden nach neuen E-Mails zu schauen und abzurufen. Er ist den eigenen Bed\u00fcrfnissen anzupassen. Bei einer Familie wird es vielleicht ausreichen alle f\u00fcnf Minuten (&#8222;<em>set daemon 300<\/em>&#8220; = default), in einem kleinen Unternehmen m\u00f6chte man nach einem Anruf &#8222;ich habe Ihnen gerade eine E-Mail geschickt&#8220; nicht immer die Geduld f\u00fcr f\u00fcnf Minuten haben.<\/p>\n<p>Die folgenden Zeilen sollten gr\u00f6\u00dftenteils selbsterkl\u00e4rend sein. Bei &#8222;geheim&#8220; ist das hoffentlich ordentliche Kennwort des jeweiligen Postfaches einzutragen.<\/p>\n<p>Nach Speichern der Konfiguration aktivieren wir nun noch den fetchmail-Hintergrundprozess durch das \u00c4ndern eines &#8222;no&#8220; in ein &#8222;yes&#8220;:<\/p>\n<pre>sudo vi \/etc\/default\/fetchmail\r\n...\r\nSTART_DAEMON=<strong>yes<\/strong>\r\n...\r\n<\/pre>\n<p>Damit ist auch die Konfiguration von fetchmail abgeschlossen.<\/p>\n<h2>Services (neu) starten<\/h2>\n<p>Der gro\u00dfe Moment ist nun gekommen, unseren Mailserver in Betrieb zu nehmen und zu schauen, ob wir alles korrekt konfiguriert haben. Ich empfehle, mehrere Shells auf der Kiste zu \u00f6ffnen und die Logfiles <em>\/var\/log\/syslog<\/em> bzw. <em>\/var\/log\/mail.err<\/em> oder <em>\/var\/log\/mail.log<\/em> mit tail -f zu verfolgen. Tipp: <a href=\"http:\/\/mobaxterm.mobatek.net\/\" target=\"_blank\" rel=\"noopener\">MobaXterm<\/a> und der View &#8222;4 terminals mode&#8220; eignet sich vorz\u00fcglich daf\u00fcr.<\/p>\n<p>Was noch laufen sollte, stoppen wir erst einmal, danach starten wir die als Hintergrunddienste laufenden Mailprozesse erneut:<\/p>\n<pre>sudo service fetchmail stop\r\nsudo service postfix stop\r\nsudo service dovecot stop\r\n<\/pre>\n<p>Vor dem Starten der Prozesse bitte noch einmal den Disclaimer oben lesen! Zum Starten der Prozesse dann eingeben:<\/p>\n<pre>sudo service dovecot start\r\nsudo service postfix start\r\nsudo service fetchmail start\r\n<\/pre>\n<p>Zum Testen des E-Mail-Versandes logge man sich mit den angelegten Usern ein und schicke per Kommandozeile mal kreuz und quer ein paar E-Mails auf die Reise, betrachtet dabei die Logfiles, ob irgendwelche Fehler auftreten.<\/p>\n<pre>horst@kiste:~$ echo \"Test\" | mailx -s \"horst an ursula\" ursula\r\nhorst@kiste:~$ echo \"Test\" | mailx -s \"horst an ursula@...\" ursula@familie-meier.test\r\nhorst@kiste:~$ echo \"Test\" | mailx -s \"horst an eltern\" eltern\r\n<\/pre>\n<p>Danach schicke man von extern ein paar Testmails an alle Adressen und schaue, ob fetchmail die auch brav abholt. Abschlie\u00dfend ruft man per externem Mailclient (z.B. Thunderbird) die Mails vom Mailserver ab, l\u00f6scht ein paar, archiviert sie, schaut dabei ob die IMAP-Ordner korrekt angelegt werden, betrachtet auf der Kiste die Ver\u00e4nderungen in den Mail-Verzeichnissen, &#8230;<\/p>\n<p>Sollten Fehler auftreten, empfiehlt es sich wie immer, einfach nach den wichtigsten Teilen der Fehlermeldung per Copy&#038;Paste bei Google zu suchen. Die Wahrscheinlichkeit ist hoch, dass irgendjemand bereits \u00fcber genau diesen Fehler gestolpert ist und die L\u00f6sung im Web zu finden ist.<\/p>\n<h2>Und jetzt?<\/h2>\n<p>Jetzt werde ich selbst auf Basis dieser Installation schauen, ob alles genau so funktioniert, wie ich mir das vorstelle. Falls nicht, werde ich die notwendigen \u00c4nderungen oben dokumentieren.<\/p>\n<p>Anschlie\u00dfend mache ich mich an die Arbeit Richtung Filterung von SPAM oder des Virenschutzes sowie \u00dcberlegungen, wie man den Server m\u00f6glichst geschmeidig im laufenden Betrieb oder mitten in der Nacht sichern kann&#8230;<\/p>\n<h2>Update: Fetchmail nicht als System Daemon verwenden<\/h2>\n<p>M\u00f6chte man fetchmail nicht als systemweiten D\u00e4mon laufen lassen &#8211; bspw. weil man nicht pausenlos nach der konfigurierten Wartezeit die Postf\u00e4cher f\u00fcr alle Benutzer nacheinander gleich oft auf neue E-Mails zu \u00fcberpr\u00fcfen, setze in der \/etc\/default\/fetchmail den Konfigurationswert auf &#8222;no&#8220;. Sollte der D\u00e4mon\/Service noch laufen, ihn vorher noch stoppen:<\/p>\n<pre>sudo service fetchmail stop\r\n<\/pre>\n<pre>sudo vi \/etc\/default\/fetchmail\r\n...\r\nSTART_DAEMON=<strong>no<\/strong>\r\n...\r\n<\/pre>\n<p>Nun kann\/muss man die Fetchmailkonfiguration pro Benutzer im jeweiligen Homeverzeichnis in der Datei <em>.fetchmailrc<\/em> vornehmen. Wie oben kopieren wir erst einmal das Beispiel her\u00fcber und passen die Benutzerrechte an:<\/p>\n<pre>horst@kiste:~$ sudo cp \/usr\/share\/doc\/fetchmail\/examples\/fetchmailrc.example .fetchmailrc\r\nhorst@kiste:~$ sudo chmod 0700 .fetchmailrc\r\n<\/pre>\n<p>Nun tragen wir die POP3-Abrufinformationen speziell f\u00fcr diesen Benutzer hinein:<\/p>\n<pre>horst@kiste:~$ sudo vi .fetchmailrc\r\n...\r\npoll pop.1und1.de with protocol pop3\r\n  user 'horst@familie-meier.test' there with password 'geheim' is 'horst' here\r\n...\r\n<\/pre>\n<p>E-Mails lassen sich nun manuell abrufen, ein einfacher Aufruf von &#8222;<em>fetchmail<\/em>&#8220; reicht. &#8222;<em>fetchmail -v<\/em>&#8220; macht fetchmail gespr\u00e4chiger, &#8222;<em>fetchmail -v -v<\/em>&#8220; noch gespr\u00e4chiger.<\/p>\n<p>Mit &#8222;<em>fetchmail -d 123<\/em>&#8220; startet der Benutzer seinen eigenen fetchmail-D\u00e4mon, bei dem alle 123 Sekunden nach neuen E-Mails geschaut wird. Mit &#8222;<em>fetchmail &#8211;quit<\/em>&#8220; wird der Benutzer-D\u00e4mon wieder abgeschossen (die Prozess-ID steht in <em>.fetchmail.pid<\/em>). Was man sonst noch alles konfigurieren und per Commandline-Optionen \u00fcbergeben kann, findet man unter &#8222;<em>fetchmail &#8211;help<\/em>&#8220; und nat\u00fcrlich &#8222;<em>man fetchmail<\/em>&#8222;.<\/p>\n<p>Hinweis: Ich werde vermutlich f\u00fcr meine sp\u00e4teren Zwecke fetchmail \u00fcber die crontab steuern und \u00fcber &#8222;<em>&#8211;syslog<\/em>&#8220; ins Syslog protokollieren lassen.<\/p>\n<h2>Links<\/h2>\n<ul>\n<li><a href=\"http:\/\/www.debian.org\/\" target=\"_blank\" rel=\"noopener\">Debian<\/a><\/li>\n<li><a href=\"http:\/\/www.dovecot.org\/\" target=\"_blank\" rel=\"noopener\">Dovecot<\/a><\/li>\n<li><a href=\"http:\/\/www.fetchmail.info\/\" target=\"_blank\" rel=\"noopener\">Fetchmail<\/a><\/li>\n<li><a href=\"http:\/\/www.postfix.org\/\" target=\"_blank\" rel=\"noopener\">Postfix<\/a><\/li>\n<li><a href=\"http:\/\/www.ubuntu.com\/\" target=\"_blank\" rel=\"noopener\">Ubuntu<\/a><\/li>\n<li><a href=\"https:\/\/www.virtualbox.org\/\" target=\"_blank\" rel=\"noopener\">VirtualBox<\/a><\/li>\n<li><a href=\"http:\/\/www.vmware.com\/\" target=\"_blank\" rel=\"noopener\">VMWare<\/a><\/li>\n<li><a href=\"http:\/\/xenserver.org\/\" target=\"_blank\" rel=\"noopener\">XenServer<\/a><\/li>\n<li><a href=\"http:\/\/mobaxterm.mobatek.net\/\" target=\"_blank\" rel=\"noopener\">MobaXterm<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Vor geraumer Zeit hatte ich bereits mit Fetchmail und Postfix herumgespielt, um &#8222;irgendwann einmal&#8220; einen Mailserver aufzusetzen. Da ein paar Stunden Zeit vorhanden waren, wollte ich das Thema wieder aufgreifen und einen Server aufsetzen, der E-Mails regelm\u00e4\u00dfig vom (Web-\/Mail-)Hoster abholt, Eingehende E-Mails auf Viren und SPAM untersucht (optional), E-Mails im Intranet \u00fcber IMAP mehreren Benutzern <a class=\"more-link\" href=\"https:\/\/www.dirk-hagedorn.de\/?page_id=1390\">Weiterlesen\u00a0\u2026<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":785,"menu_order":0,"comment_status":"open","ping_status":"open","template":"","meta":{"footnotes":""},"class_list":["post-1390","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.dirk-hagedorn.de\/index.php?rest_route=\/wp\/v2\/pages\/1390","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dirk-hagedorn.de\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.dirk-hagedorn.de\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.dirk-hagedorn.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dirk-hagedorn.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1390"}],"version-history":[{"count":21,"href":"https:\/\/www.dirk-hagedorn.de\/index.php?rest_route=\/wp\/v2\/pages\/1390\/revisions"}],"predecessor-version":[{"id":2000,"href":"https:\/\/www.dirk-hagedorn.de\/index.php?rest_route=\/wp\/v2\/pages\/1390\/revisions\/2000"}],"up":[{"embeddable":true,"href":"https:\/\/www.dirk-hagedorn.de\/index.php?rest_route=\/wp\/v2\/pages\/785"}],"wp:attachment":[{"href":"https:\/\/www.dirk-hagedorn.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1390"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}