{"id":872,"date":"2015-01-25T10:45:33","date_gmt":"2015-01-25T08:45:33","guid":{"rendered":"https:\/\/www.my-it-brain.de\/wordpress\/?p=872"},"modified":"2016-03-19T15:41:47","modified_gmt":"2016-03-19T14:41:47","slug":"der-eigene-mailserver-teil-2","status":"publish","type":"post","link":"https:\/\/www.my-it-brain.de\/wordpress\/der-eigene-mailserver-teil-2\/","title":{"rendered":"Der eigene Mailserver &#8211; Teil 2"},"content":{"rendered":"<p>Herzlich willkommen zur\u00fcck bei der Artikelreihe &#8222;Der eigene Mailserver&#8220;.<\/p>\n<p>Der erste Artikel dieser Reihe handelte von dem zu Grunde liegenden Serverbetriebssystem, dem Remote-Zugriff \u00fcber SSH und der Installation der ersten Pakete.<\/p>\n<p>In dieser Ausgabe geht es vor allem um die folgenden drei Punkte:<\/p>\n<ol>\n<li>Erwerb und Installation eines <a href=\"#ssl-tls-zertifikat\">SSL\/TLS Zertifikats<\/a>.<\/li>\n<li><a href=\"#postfix-konfiguration\">Grundlegende Konfiguration von Postfix<\/a>, so dass E-Mails versendet und empfangen werden und Postfix mit Dovecot zusammenarbeitet.<\/li>\n<li><a href=\"#jetzt_geht_es_dovecot_an_den_kragen\">Grundlegende Konfiguration von Dovecot<\/a>. Es werden drei virtuelle Benutzer und Mailverzeichnisse angelegt.<\/li>\n<\/ol>\n<p>Und los geht&#8217;s!<\/p>\n<p><strong>Eine Sache noch&#8230;<\/strong><\/p>\n<p>Im ersten Artikel dieser Reihe habe ich geschrieben, dass der Betrieb eines Mailservers im Internet eine verantwortungsvolle Aufgabe ist. Dabei habe ich darauf hingewiesen, dass man stets die Sicherheit des eigenen Systems im Blick haben sollte. Daher ist es, denke ich, ein guter Zeitpunkt, an dieser Stelle zu pr\u00fcfen, ob es Updates f\u00fcr den eigenen Server gibt und diese zu installieren.<\/p>\n<p>Bei einem Ubuntu Server kann dies ganz einfach mit dem folgenden Befehl durchgef\u00fchrt werden.<\/p>\n<pre>:~$ sudo apt-get update &amp;&amp; sudo apt-get upgrade\r\n<\/pre>\n<p>&nbsp;<\/p>\n<h2 id=\"ssl-tls-zertifikat\">SSL\/TLS Zertifikat<\/h2>\n<p>Bei der Installation von Postfix und Dovecot im letzten Artikel wurde gefragt, ob man ein selbstsigniertes Zertifikat f\u00fcr Dovecot nutzen m\u00f6chte. Dies habe ich verneint. Denn f\u00fcr einen Mailserver im Internet ben\u00f6tigt man ein g\u00fcltiges und vertrauensw\u00fcrdiges Zertifikat.<\/p>\n<p>G\u00fcltig und vertrauensw\u00fcrdig bedeutet in diesem Fall, dass das Zertifikat von einer anerkannten <a title=\"Wikipedia: Digitale Zertifizierungsstelle\" href=\"https:\/\/de.wikipedia.org\/wiki\/Zertifizierungsstelle\" target=\"_blank\">Zertifizierungsstelle<\/a> ausgegeben wurde. Dieses Zertifikat wird vom Mailserver genutzt, um sich anderen Mailservern gegen\u00fcber zu identifizieren. Selbstsignierte Zertifikate oder jene der gemeinschaftlichen Zertifizierungsstelle <a title=\"Wikipedia: CAcert\" href=\"https:\/\/de.wikipedia.org\/wiki\/CAcert\" target=\"_blank\">CAcert<\/a> werden von anderen Mailservern in der Regel nicht akzeptiert.<\/p>\n<p>Zum Gl\u00fcck gibt es f\u00fcr Privatpersonen die M\u00f6glichkeit, kostenlos ein SSL\/TLS Zertifikat z.B. bei der Zertifizierungsstelle <a title=\"Website StartSSL\" href=\"https:\/\/www.startssl.com\/\" target=\"_blank\">StartSSL<\/a>[1. <a title=\"Website StartSSL\" href=\"https:\/\/www.startssl.com\/\" target=\"_blank\">StartSSL<\/a>] zu erhalten. Da ich noch kein Zertifikat besitze, werde ich im folgenden die Schritte dokumentieren, um ein Zertifikat von StartSSL zu erhalten. F\u00fcr die folgenden Schritte muss JavaScript im Webbrowser aktiviert sein.<\/p>\n<p>Wer bereits \u00fcber ein g\u00fcltiges und vertrauensw\u00fcrdiges Zertifikat verf\u00fcgt, kann dieses nat\u00fcrlich auch verwenden und diesen Abschnitt \u00fcberspringen.<\/p>\n<div id=\"attachment_874\" style=\"width: 635px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.my-it-brain.de\/wordpress\/wp-content\/uploads\/2014\/12\/startssl-express-lane.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-874\" class=\"size-large wp-image-874\" src=\"https:\/\/www.my-it-brain.de\/wordpress\/wp-content\/uploads\/2014\/12\/startssl-express-lane-800x452.png\" alt=\"startssl-express-lane\" width=\"625\" height=\"353\" srcset=\"https:\/\/www.my-it-brain.de\/wordpress\/wp-content\/uploads\/2014\/12\/startssl-express-lane-800x452.png 800w, https:\/\/www.my-it-brain.de\/wordpress\/wp-content\/uploads\/2014\/12\/startssl-express-lane-300x169.png 300w, https:\/\/www.my-it-brain.de\/wordpress\/wp-content\/uploads\/2014\/12\/startssl-express-lane-624x352.png 624w, https:\/\/www.my-it-brain.de\/wordpress\/wp-content\/uploads\/2014\/12\/startssl-express-lane.png 1422w\" sizes=\"auto, (max-width: 625px) 100vw, 625px\" \/><\/a><p id=\"caption-attachment-874\" class=\"wp-caption-text\">Startseite von StartSSL.com<\/p><\/div>\n<p>Mit der Express Lane geht es weiter zum n\u00e4chsten Schritt, wo die Daten zur Person abgefragt werden und die CA Policy akzeptiert werden muss. Anschlie\u00dfend erh\u00e4lt man einen Authentifizierungscode per E-Mail.<\/p>\n<p>Die Authentifizierung bei StartSSL erfolgt nicht wie gewohnt mit Benutzername und Passwort, sondern mittels eines Client-Zertifikats, welches mit Hilfe des Webbrowsers generiert und anschlie\u00dfend im Browser installiert wird.<\/p>\n\n\t\t<style type=\"text\/css\">\n\t\t\t#gallery-1 {\n\t\t\t\tmargin: auto;\n\t\t\t}\n\t\t\t#gallery-1 .gallery-item {\n\t\t\t\tfloat: left;\n\t\t\t\tmargin-top: 10px;\n\t\t\t\ttext-align: center;\n\t\t\t\twidth: 33%;\n\t\t\t}\n\t\t\t#gallery-1 img {\n\t\t\t\tborder: 2px solid #cfcfcf;\n\t\t\t}\n\t\t\t#gallery-1 .gallery-caption {\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\t\t\t\/* see gallery_shortcode() in wp-includes\/media.php *\/\n\t\t<\/style>\n\t\t<div id='gallery-1' class='gallery galleryid-872 gallery-columns-3 gallery-size-thumbnail'><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/www.my-it-brain.de\/wordpress\/wp-content\/uploads\/2014\/12\/generate-private-key.png'><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/www.my-it-brain.de\/wordpress\/wp-content\/uploads\/2014\/12\/generate-private-key-150x150.png\" class=\"attachment-thumbnail size-thumbnail\" alt=\"generate-private-key\" aria-describedby=\"gallery-1-876\" \/><\/a>\n\t\t\t<\/dt>\n\t\t\t\t<dd class='wp-caption-text gallery-caption' id='gallery-1-876'>\n\t\t\t\tGenerierung des privaten Schl\u00fcssels\n\t\t\t\t<\/dd><\/dl><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/www.my-it-brain.de\/wordpress\/wp-content\/uploads\/2014\/12\/install-certificate.png'><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/www.my-it-brain.de\/wordpress\/wp-content\/uploads\/2014\/12\/install-certificate-150x150.png\" class=\"attachment-thumbnail size-thumbnail\" alt=\"install-certificate\" aria-describedby=\"gallery-1-877\" \/><\/a>\n\t\t\t<\/dt>\n\t\t\t\t<dd class='wp-caption-text gallery-caption' id='gallery-1-877'>\n\t\t\t\tInstallation des Client Zertifikats\n\t\t\t\t<\/dd><\/dl><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/www.my-it-brain.de\/wordpress\/wp-content\/uploads\/2014\/12\/Congratulations.png'><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/www.my-it-brain.de\/wordpress\/wp-content\/uploads\/2014\/12\/Congratulations-150x150.png\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" aria-describedby=\"gallery-1-875\" \/><\/a>\n\t\t\t<\/dt>\n\t\t\t\t<dd class='wp-caption-text gallery-caption' id='gallery-1-875'>\n\t\t\t\tAbschluss der Installtion\n\t\t\t\t<\/dd><\/dl><br style=\"clear: both\" \/>\n\t\t<\/div>\n\n<p>Anschlie\u00dfend ist man direkt in seinem Account angemeldet und durchl\u00e4uft den Assistenten, um die eigene Domain zu verifizieren. Man folgt der Express Lane, bis man bei folgendem Schritt angelangt ist. Den privaten Schl\u00fcssel sollte man tunlichst <strong>nicht<\/strong> auf dieser Seite generieren![2. <a title=\"UU Wiki: Privaten-Schl\u00fcssel-erstellen\" href=\"http:\/\/wiki.ubuntuusers.de\/Apache\/SSL?highlight=CSR%20erstellen#Privaten-Schluessel-erzeugen\" target=\"_blank\">Privaten Schl\u00fcssel erstellen<\/a>]<\/p>\n<div id=\"attachment_879\" style=\"width: 635px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.my-it-brain.de\/wordpress\/wp-content\/uploads\/2014\/12\/generate-private-key2.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-879\" class=\"size-large wp-image-879\" src=\"https:\/\/www.my-it-brain.de\/wordpress\/wp-content\/uploads\/2014\/12\/generate-private-key2-800x350.png\" alt=\"generate-private-key2\" width=\"625\" height=\"273\" srcset=\"https:\/\/www.my-it-brain.de\/wordpress\/wp-content\/uploads\/2014\/12\/generate-private-key2-800x350.png 800w, https:\/\/www.my-it-brain.de\/wordpress\/wp-content\/uploads\/2014\/12\/generate-private-key2-300x131.png 300w, https:\/\/www.my-it-brain.de\/wordpress\/wp-content\/uploads\/2014\/12\/generate-private-key2-624x273.png 624w, https:\/\/www.my-it-brain.de\/wordpress\/wp-content\/uploads\/2014\/12\/generate-private-key2.png 980w\" sizes=\"auto, (max-width: 625px) 100vw, 625px\" \/><\/a><p id=\"caption-attachment-879\" class=\"wp-caption-text\">Privater Schl\u00fcssel f\u00fcr Domain-Zertifikat<\/p><\/div>\n<p>Den privaten Schl\u00fcssel sollte man immer auf einem der eigenen Systeme generieren. Dieser geh\u00f6rt niemals in die H\u00e4nde von Dritten. Auch nicht in die einer Zertifizierungsstelle. Daher erstellen wir den privaten Schl\u00fcssel und den Certificate Signing Request (<a title=\"Wikipedia: Certificate Signing Request\" href=\"https:\/\/de.wikipedia.org\/wiki\/Certificate_Signing_Request\" target=\"_blank\">CSR<\/a>) auf dem eigenen Server.<\/p>\n<p>Da f\u00fcr die folgenden Schritte root-Rechte ben\u00f6tigt werden, wechseln wir mit folgendem Kommando den Benutzer, um uns die Arbeit ein wenig zu erleichtern.<\/p>\n<pre>johndoe@server:~$ sudo su\r\nroot@server:\/home\/johndoe#\r\n<\/pre>\n<p>Nun erstellt man mit dem folgenden Befehl den privaten Schl\u00fcssel. Dieser wird als domainname-private-ssl.key gespeichert.<\/p>\n<pre>root@server:\/home\/johndoe# openssl genrsa -out \/home\/johndoe\/domainname-private-ssl.key 4096\r\n<\/pre>\n<p>Die Angabe 4096 stellt die St\u00e4rke bzw. L\u00e4nge des Schl\u00fcssels in Bit dar. <em>Achtung:<\/em> Schl\u00fcssel mit einer L\u00e4nge von unter 2048 Bit gelten heute nicht mehr als sicher.<\/p>\n<p>Nun kann mit dem n\u00e4chsten Befehl der CSR erstellt werden. Die Angaben im Code unten stellen dabei Beispiele dar. Beim Common Name ist der Name einzutragen, unter dem der Server sp\u00e4ter im Internet erreichbar sein wird. Es wird kein &#8222;challenge password&#8220; vergeben. Dies m\u00fcsste sp\u00e4ter bei jedem Neustart des Webservers eingegeben werden oder im Klartext in einer Textdatei hinterlegt werden. Der erste Fall ist extrem unpraktisch und der zweite extrem unsicher.<\/p>\n<pre>root@server:\/home\/johndoe# openssl req -new -key domainname-private-ssl.key -out \/home\/johndoe\/domainname.csr\r\nYou are about to be asked to enter information that will be incorporated\r\ninto your certificate request.\r\nWhat you are about to enter is what is called a Distinguished Name or a DN.\r\nThere are quite a few fields but you can leave some blank\r\nFor some fields there will be a default value,\r\nIf you enter '.', the field will be left blank.\r\n-----\r\nCountry Name (2 letter code) [AU]:DE\r\nState or Province Name (full name) [Some-State]:Nordrhein-Westfalen\r\nLocality Name (eg, city) []:.\r\nOrganization Name (eg, company) [Internet Widgits Pty Ltd]:.\r\nOrganizational Unit Name (eg, section) []:.\r\nCommon Name (e.g. server FQDN or YOUR name) []:server.domainname.tld\r\nEmail Address []:webmaster@domainname.tld\r\n\r\nPlease enter the following 'extra' attributes\r\nto be sent with your certificate request\r\nA challenge password []:\r\nAn optional company name []:\r\njohndoe@server:\/home\/johndoe#\r\n<\/pre>\n<p>Den Inhalt des CSR kopiert man nun in das Eingabefeld des Certification Wizard von StartSSL. Man befolgt die weiteren Schritte des Assistenten und am Ende wird das neu erstellte SSL-Zertifikat angezeigt. Dieses kopieren wir nun in die Datei <em>\/etc\/ssl\/private\/ssl-cert-mail-yourdomain.pem.<\/em> Verwendet man dabei einen Editor wie <em>vim,<\/em> nutzt man <em>:set paste,<\/em> bevor man den Text des Zertifikats einf\u00fcgt. Den im vorhergehenden Schritt erstellten privaten Schl\u00fcssel und den CSR kopiert man ebenfalls in das Verzeichnis <em>\/etc\/ssl\/private<\/em>. Jetzt l\u00e4dt man noch das Intermediate Zertifikat von StartSSL mittels des folgenden Befehls in das gleiche Verzeichnis herunter.<\/p>\n<pre>root@server:\/home\/johndoe# cd \/etc\/ssl\/private\/\r\nroot@server:\/etc\/ssl\/private# wget https:\/\/www.startssl.com\/certs\/sub.class1.server.ca.pem\r\n--2014-12-20 14:09:08--  https:\/\/www.startssl.com\/certs\/sub.class1.server.ca.pem\r\nResolving www.startssl.com (www.startssl.com)... 192.116.242.20\r\nConnecting to www.startssl.com (www.startssl.com)|192.116.242.20|:443... connected.\r\nHTTP request sent, awaiting response... 200 OK\r\nLength: 2212 (2,2K) [application\/x509-ca-cert]\r\nSaving to: \u2018sub.class1.server.ca.pem\u2019\r\n\r\n100%[========================================================================================================================================&gt;] 2.212       --.-K\/s   in 0s      \r\n\r\n2014-12-20 14:09:09 (63,3 MB\/s) - \u2018sub.class1.server.ca.pem\u2019 saved [2212\/2212]\r\n\r\nroot@server:\/etc\/ssl\/private#\r\n<\/pre>\n<p>Als n\u00e4chstes verkn\u00fcpft man das Zertifikat mit dem Intermediate-Zertifikat der Zertifizierungsstelle zu einem sogenannten &#8222;chain-certificate&#8220;. Das sind zwei Zertifikate in einer Datei. Dies erm\u00f6glicht es einem Client, die komplette Zertifizierungskette zu \u00fcberpr\u00fcfen.<\/p>\n<pre>:\/etc\/ssl\/private# cat ssl-cert-mail-domainname.pem sub.class1.server.ca.pem &gt; ssl-chain-mail-domainname.pem\r\n<\/pre>\n<p>Das soeben erstelle Zertifikat wird sp\u00e4ter sowohl f\u00fcr Postfix, als auch f\u00fcr Dovecot benutzt. Doch bevor wir fortfahren, sch\u00fctzen wir noch unseren privaten Schl\u00fcssel vor unbefugtem Zugriff, indem wir einzig dem root-Benutzer Leserechte auf diese Datei einr\u00e4umen.<\/p>\n<pre>chmod 400 my-it-brain-private-ssl.key\r\n<\/pre>\n<p>Jetzt wo ich alle Zertifikate in der Reihe habe, geht es an die Konfiguration von Postfix.<\/p>\n<h2 id=\"postfix-konfiguration\">\/etc\/postfix\/main.cf<\/h2>\n<p>Los geht&#8217;s mit:<\/p>\n<pre>$ sudo vim \/etc\/postfix\/main.cf\r\n<\/pre>\n<p>Im Folgenden wird die <code>main.cf<\/code> dargestellt, wie sie nach der Bearbeitung aussieht. Diese Datei ist nicht f\u00fcr Copy &amp; Paste geeignet. Zum einen funktioniert die Datei nicht und zum Anderen m\u00f6chte man ja auch erst verstehen, was dort passiert ist. Wer in die Tiefen der Postfix Konfiguration eintauchen m\u00f6chte, dem sei die offizielle Dokumentation ans Herz gelegt.[3. <a title=\"Postfix Documentation\" href=\"http:\/\/www.postfix.org\/documentation.html\" target=\"_blank\">Postfix Documentation<\/a>] Die wesentlichen Elemente der Konfigurationsdatei werden im Folgenden n\u00e4her beschrieben.<\/p>\n<pre># See \/usr\/share\/postfix\/main.cf.dist for a commented, more complete version\r\n\r\n\r\n# Debian specific:  Specifying a file name will cause the first\r\n# line of that file to be used as the name.  The Debian default\r\n# is \/etc\/mailname.\r\nmyorigin = \/etc\/mailname\r\n\r\n## Customized smtpd parameters\r\nsmtpd_banner = $myhostname ESMTP\r\nsmtpd_helo_required = yes\r\nsmtpd_helo_restrictions = permit_mynetworks, reject_non_fqdn_helo_hostname, reject_invalid_helo_hostname, reject_unknown_helo_hostname, permit\r\nsmtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unknown_client_hostname, reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_unauth_pipelining, reject_unauth_destination, reject_invalid_hostname, reject_non_fqdn_sender\r\nsmtpd_sender_restrictions = reject_unknown_sender_domain, reject_sender_login_mismatch, reject_unknown_sender_domain\r\nsmtpd_sender_login_maps = $virtual_mailbox_maps\r\n\r\n## Dealing with rejection: use permanent 550 errors to stop retries\r\nunknown_address_reject_code = 550\r\nunknown_hostname_reject_code = 550\r\nunknown_client_reject_code = 550\r\n\r\nbiff = no\r\n\r\n# appending .domain is the MUA's job.\r\nappend_dot_mydomain = no\r\n\r\n# Uncomment the next line to generate \"delayed mail\" warnings\r\n#delay_warning_time = 4h\r\n\r\nreadme_directory = no\r\n\r\n# TLS parameters\r\nsmtpd_use_tls = yes\r\nsmtpd_tls_session_cache_database = btree:${data_directory}\/smtpd_scache\r\nsmtp_tls_session_cache_database = btree:${data_directory}\/smtp_scache\r\n\r\n# See \/usr\/share\/doc\/postfix\/TLS_README.gz in the postfix-doc package for\r\n# information on enabling SSL in the smtp client.\r\n\r\nsmtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination\r\nmyhostname = mx.domainname.de\r\nalias_maps = hash:\/etc\/aliases\r\nalias_database = hash:\/etc\/aliases\r\nmyorigin = \/etc\/mailname\r\nmydestination = mx.domainname.de, domainname.de, h2381200.stratoserver.net, localhost.stratoserver.net, localhost, localhost.domainname.de\r\nrelayhost = \r\nmynetworks = 127.0.0.0\/8 [::ffff:127.0.0.0]\/104 [::1]\/128\r\nmailbox_command = \/usr\/lib\/dovecot\/deliver -c \/etc\/dovecot\/dovecot.conf -m \"${EXTENSION}\"\r\nmailbox_size_limit = 0\r\nrecipient_delimiter = +\r\ninet_interfaces = all\r\nhome_mailbox = Maildir\/\r\nsmtpd_sasl_auth_enable = yes\r\nsmtpd_sasl_type = dovecot\r\nsmtpd_sasl_path = private\/dovecot-auth\r\nsmtpd_sasl_authenticated_header = yes\r\nsmtpd_sasl_security_options = noanonymous\r\nsmtpd_sasl_local_domain = $myhostname\r\nbroken_sasl_auth_clients = yes\r\nsmtp_use_tls = yes\r\nsmtpd_tls_received_header = yes\r\nsmtpd_tls_mandatory_protocols = SSLv3, TLSv1\r\nsmtpd_tls_mandatory_ciphers = medium\r\nsmtpd_tls_auth_only = yes\r\ntls_random_source = dev:\/dev\/urandom\r\n\r\n## customized TLS parameters\r\nsmtpd_tls_ask_ccert = yes\r\nsmtpd_tls_cert_file = \/etc\/ssl\/private\/ssl-chain-mail-domainname.pem\r\nsmtpd_tls_key_file = \/etc\/ssl\/private\/domainname-private-ssl.key\r\nsmtpd_tls_CAfile = \/etc\/ssl\/certs\/ca-certificates.crt\r\nsmtpd_tls_ciphers = high\r\nsmtpd_tls_loglevel = 1\r\nsmtpd_tls_security_level = may\r\nsmtpd_tls_session_cache_timeout = 3600s\r\n\r\n## Customized Dovecot and virtual user-specific settings\r\ncanonical_maps = hash:\/etc\/postfix\/canonical\r\nhome_mailbox = Maildir\/\r\nmessage_size_limit = 104857600\r\nvirtual_alias_maps = hash:\/etc\/postfix\/virtual\r\nvirtual_mailbox_domains = hash:\/etc\/postfix\/virtual-mailbox-domains\r\nvirtual_mailbox_maps = hash:\/etc\/postfix\/virtual-mailbox-users\r\nvirtual_transport = dovecot\r\n\r\n## This setting will generate an error if you restart Postfix before\r\n## adding the appropriate service definition in master.cf, so make\r\n## sure to get that taken care of!\r\ndovecot_destination_recipient_limit = 1\r\n\r\n## Other customized mail server settings\r\ndefault_destination_concurrency_limit = 5\r\ndisable_vrfy_command = yes\r\nrelay_destination_concurrency_limit = 1\r\nsmtp_tls_note_starttls_offer = yes\r\n<\/pre>\n<p>Ziemlich zu Beginn der Konfigurationsdatei steht die Variable <code>myorigin<\/code>. Diese enth\u00e4lt den Namen des Mailservers. Auf einem debianbasierten System steht dieser Name in der Datei <em>\/etc\/mailname<\/em>.<\/p>\n<p>Es gibt einige <code>smtpd_sasl<\/code> Optionen in der Datei. <a title=\"Wikipedia: Simple Authentication and Security Layer Protocol\" href=\"https:\/\/de.wikipedia.org\/wiki\/Simple_Authentication_and_Security_Layer\" target=\"_blank\">SASL<\/a> ist das Protokoll, \u00fcber welches Dovcot und Postfix miteinander kommunizieren. Dank des unter Ubuntu verf\u00fcgbaren Metapakets <code>mail-stack-delivery<\/code>, welches im letzten Artikel installiert wurde, ist der Gro\u00dfteil der Konfiguration bereits erledigt.<\/p>\n<p><code>myhostname<\/code>, <code>mydestination<\/code> und <code>mynetworks<\/code> definieren, wer der Mailserver ist und wo (in welchem Netz) sich dieser befindet. Die erste Variable sollte als erstes den FQDN enthalten und nachfolgend einige alternative Namen, unter denen der Mailserver erreichbar ist. Die letzte Variable enth\u00e4lt die Netzadresse in <a title=\"Wikipedia: Classless Inter-Domain Routing\" href=\"https:\/\/de.wikipedia.org\/wiki\/Classless_Inter-Domain_Routing\" target=\"_blank\">CIDR<\/a>-Notation. Ihr Wert kann meist so belassen werden, wie man ihn vorfindet.<\/p>\n<p>Mit den <code>smtpd<\/code> Parametern geht es ans Eingemachte. Denn diese Parameter nehmen direkten Einfluss auf die Arbeitsweise des Mailservers.<\/p>\n<p>Die Option <code>smtpd_banner<\/code> legt fest, wie sich der Server gegen\u00fcber anderen Mailservern identifiziert. Bei Ubuntu enth\u00e4lt diese Option meist noch die Variablen <code>$myhostname<\/code> und <code>$mail_name<\/code> zusammen mit dem Zusatz <code>Ubuntu<\/code>. Um m\u00f6glichen Angreifern so wenig wie m\u00f6glich \u00fcber das eigene System zu verraten, kann diese Option auf das absolut notwendige Minimum gek\u00fcrzt werden.<\/p>\n<pre>smtpd_banner = $myhostname ESMTP\r\n<\/pre>\n<p><code>smtpd_helo_required = yes<\/code> sorgt daf\u00fcr, dass sich andere SMTP-Server erst identifizieren m\u00fcssen, bevor Postfix SMTP-Kommandos von diesen akzeptiert. Mit Hilfe dieser und der n\u00e4chsten Option wird festgelegt, wie Postfix entscheidet, ob Mails akzeptiert oder abgewiesen werden. So wird mit <code>smtpd_helo_restrictions<\/code> festgelegt, welche HELO Nachrichten akzeptiert werden. <code>permit_mynetworks<\/code> legt fest, dass Clients aus dem eigenen Netz \u00fcbermitteln d\u00fcrfen, was sie wollen. Die \u00fcbrigen Optionen sind weitestgehend selbsterkl\u00e4rend. Sie weisen den Mailserver an, allen Servern, die einen Namen \u00fcbermitteln, der nicht \u00fcber einen DNS-Lookup aufgel\u00f6st werden kann, das internationale Zeichen der Freundschaft zu zeigen.<\/p>\n<p><strong>SSL\/TLS<\/strong><\/p>\n<p>Jetzt wird das SSL Zertifikat eingebaut. Zuerst wird mit der Option <code>smtpd_tls_ask_ccert = yes<\/code> festgelegt, dass Postfix andere Server auffordert, sich mit einem Zertifikat zu identifizieren. Die beiden Optionen <code>smtpd_tls_cert_file<\/code> und <code>smtpd_tls_key_file<\/code> enthalten den vollst\u00e4ndigen Pfad zum SSL-Zertifikat und der Datei mit dem privaten Schl\u00fcssel, welcher zum Zertifikat geh\u00f6rt. <code>smtpd_tls_CAfile<\/code> enth\u00e4lt den vollst\u00e4ndigen Pfad <code>\/etc\/ssl\/certs\/ca-certificates.crt<\/code> und hilft Postfix, die Zertifikate anderer Server zu \u00fcberpr\u00fcfen.<\/p>\n<p>Die Option <code>smtp_tls_ciphers = high<\/code> verbietet Postfix, schwache Verschl\u00fcsselungs-Chiffren zu verwenden. <code>smtpd_tls_security_level = may<\/code> weist Postfix an, SSL\/TLS zu verwenden, wenn der entfernte Server dies ebenfalls unterst\u00fctzt. Damit folgt die Konfiguration dem <a title=\"RFC 2487\" href=\"http:\/\/tools.ietf.org\/html\/rfc2487\" target=\"_blank\">RFC 2487<\/a>.<\/p>\n<p><strong>master.cf<\/strong><\/p>\n<p>Es gibt noch eine Konfigurationsdatei, welche bearbeitet werden muss. <em>\/etc\/postfix\/master.cf<\/em> steuert, wie Postfix mit anderen Diensten, wie z.B. Dovecot, interagiert. Hier wird festgelegt, dass Postfix auch auf Port 587 auf eingehende E-Mails lauscht und wie er sich mit Dovecot verbindet. Dazu sind zwei \u00c4nderungen notwendig.<\/p>\n<p>Die folgende Zeile ist durch Entfernen des <code>#<\/code> einzukommentieren:<\/p>\n<pre>#submission inet n       -       -       -       -       smtpd\r\n<\/pre>\n<p>Am Ende der Datei wird der folgende Code eingef\u00fcgt. Wichtig dabei ist, den Zeileneinzug der zweiten und dritten Zeile beizubehalten:<\/p>\n<pre>dovecot   unix  -       n       n       -       -       pipe\r\n  flags=DRhu user=vmail:vmail argv=\/usr\/lib\/dovecot\/deliver\r\n  -f ${sender} -d ${recipient}\r\n<\/pre>\n<p><strong>Map Files<\/strong><\/p>\n<p>In den Postfix Konfigurationsdateien finden sich Verweise auf &#8222;maps&#8220; und &#8222;hashes&#8220;. Dies sind Orte, wo Postfix Informationen speichert. Diese werden im Folgenden n\u00e4her erl\u00e4utert.<\/p>\n<p>Die Datei <em>\/etc\/aliases<\/em> legt fest, welche lokalen Benutzerkonten welchen E-Mail Adressen zugeordnet sind. Damit kann gesteuert werden, an welche E-Mail Adressen Statusmeldungen gesendet werden, die von unterschiedlichen Anwendungen generiert werden. Ich habe meine Datei nach dem folgenden Muster aufgebaut:<\/p>\n<pre>postmaster: webmaster@yourdomain.com\r\nroot: webmaster@yourdomain.com\r\nwww-data: webmaster@yourdomain.com\r\n<\/pre>\n<p>Damit werden alle lokalen Mails an eine echte E-Mail Adresse gesendet.<\/p>\n<p>Postfix liest seine Informationen jedoch aus einer Bin\u00e4rdatei. Diese wird mit dem folgenden Befehl erstellt.<\/p>\n<pre>sudo newaliases\r\n<\/pre>\n<h3 id=\"virtuelle_benutzer\">Virtuelle Benutzer<\/h3>\n<p>Jetzt geht es darum, wie Postfix entscheidet, wie und wohin er E-Mails zustellt.<\/p>\n<p>Zuerst wird die Datei <em>\/etc\/postfix\/virtual-mailbox-domains<\/em> erstellt, welche die Domain(s) beinhaltet, f\u00fcr die der Mailserver zust\u00e4ndig ist. Der Inhalt der Datei ist simpel und sieht wie folgt aus.<\/p>\n<pre>yourdomain.tld\t\tOK\r\n<\/pre>\n<p>Aus dieser Map machen wir mit dem folgenden Kommando eine Hash-Datei.<\/p>\n<pre>postmap \/etc\/postfix\/virtual-mailbox-domains\r\n<\/pre>\n<p>Als n\u00e4chstes wird die Datei <em>\/etc\/postfix\/virtual-mailbox-users<\/em> erstellt, welche Postfix mitteilt, f\u00fcr welche Benutzer er zust\u00e4ndig ist. Diese Datei besteht aus zwei Spalten. Ganz einfach ausgedr\u00fcckt wird damit sichergestellt, dass wenn man sich als &#8222;name@domainname.tld&#8220; am Dovecot anmeldet, Postfix wei\u00df, dass man E-Mails von der Adresse &#8222;name@domainname.tld&#8220; aus versenden darf.<\/p>\n<p>Beispielinhalt der Datei:<\/p>\n<pre>you@domainname.tld\t\t\tyou@domainname.tld\r\npostbot@domainname.tld\t\t\tpostbot@domainname.tld\r\nwebmaster@domainname.tld\t\twebmaster@domainname.tld\r\n<\/pre>\n<p>Wenn die Datei angelegt ist, f\u00fchrt man erneut das <code>postmap<\/code>-Kommando aus.<\/p>\n<pre>postmap \/etc\/postfix\/virtual-mailbox-users\r\n<\/pre>\n<p>Zuletzt wird noch die Map <em>\/etc\/postfix\/virtual<\/em> erstellt. Mit Hilfe dieser Map k\u00f6nnen Alias-E-Mail Adressen den echten E-Mail Adressen zugeordnet werden. Die Aliase stehen dabei in der ersten, die ihnen zugeordneten &#8222;echten&#8220; E-Mail Adressen in der zweiten Spalte.<\/p>\n<p>Beispiel:<\/p>\n<pre>you@domainname.tld\t\tyou@domainname.tld\r\npostbot@domainname.tld\t\tpostbot@domainname.tld\r\nwebmaster@domainname.tld\twebmaster@domainname.tld\r\npostmaster@domainname.tld\twebmaster@domainname.tld\r\nroot@mail.domainname.tld\twebmaster@domainname.tld\r\nroot@domainname.tld\t\twebmaster@domainname.tld\r\nabuse@domainname.tld\t\twebmaster@domainname.tld\r\nhostmaster@domainname.tld\twebmaster@domainname.tld\r\n<\/pre>\n<p>Ben\u00f6tigt man eine sogenannte Catch-All Adresse, f\u00fcgt man noch folgende Zeile in die soeben erstellte Datei ein:<\/p>\n<pre>@domainname.tld              you@domainname.tld\r\n<\/pre>\n<p>Ist man mit der Erstellung der Datei fertig, ist es wieder Zeit f\u00fcr <code>postmap<\/code>:<\/p>\n<pre>postmap \/etc\/postfix\/virtual\r\n<\/pre>\n<p>Ok. Zeit kurz durchzuatmen. Als n\u00e4chstes legen wir einen Benutzer und ein Verzeichnis an, wo die Mails f\u00fcr unsere virtuellen Benutzer abgelegt werden. Ich halte mich hier an das Tutorial von ars technica und verwende f\u00fcr den ben\u00f6tigten lokalen Benutzer ebenfalls die UID 5000 und die GID 5000.[4. <a title=\"ars technica: Taking e-mail back, part 2: Arming your server with Postfix and Dovecot\" href=\"Taking e-mail back, part 2: Arming your server with Postfix and Dovecot Our self-hosting e-mail series continues as we get our ducks\u2014and doves\u2014in a row.\" target=\"_blank\">Lee Hutchinsoen: Taking e-mail back, part 2: Arming your server with Postfix and Dovecot:<br \/>\nOur self-hosting e-mail series continues as we get our ducks\u2014and doves\u2014in a row.<\/a>] Im Dateisystem des Linux Root-Servers existiert bereits das Verzeichnis <em>\/var\/mail<\/em>. Hier landen die Mails f\u00fcr die lokalen Benutzer des Systems. Hier wird auch ein Verzeichnis angelegt, wo zuk\u00fcnftig alle Mails der virtuellen Benutzer landen. Dazu werden die beiden folgenden Befehle in einer root shell ausgef\u00fchrt.<\/p>\n<pre>groupadd -g 5000 vmail\r\nuseradd -g vmail -u 5000 vmail -d \/var\/mail\/vmail -m\r\n<\/pre>\n<h3 id=\"jetzt_geht_es_dovecot_an_den_kragen\">Jetzt geht es Dovecot an den Kragen.<\/h3>\n<p>Als erstes \u00f6ffnet man die Datei <em>\/etc\/dovecot\/conf.d\/10-ssl.conf<\/em> und kommentiert die Zeilen 12 und 13 aus. Dies erspart \u00c4rger mit der SSL-Konfiguration. Schlie\u00dflich soll das eigens f\u00fcr den Mailserver erstellte SSL-Zertifikat verwendet werden.<\/p>\n<p>Bevor es an die eigentliche Konfiguration geht, werden noch einige Zeilen in ein paar anderen Konfigurationsdateien auskommentiert, damit die Konfiguration sp\u00e4ter nicht durch diese Optionen \u00fcberschrieben wird.<\/p>\n<ul>\n<li>Zeile <code>mail_location<\/code> in <em>10-mail.conf<\/em> auskommentieren<\/li>\n<li>Zeile <code>auth_mechanisms = plain<\/code> in <em>10-auth.conf<\/em> auskommentieren<\/li>\n<li>Die Sektion <code>passdb<\/code> in der Datei <em>auth-system.conf.ext<\/em> auskommentieren<\/li>\n<li>Die Sektion <code>userdb<\/code> in der Datei auth-systems.conf.ext ebenfalls auskommentieren<\/li>\n<\/ul>\n<p>Ist das erledigt, geht es nun der Datei <em>99-mail-stack-delivery.conf<\/em> an den Kragen. Nach der Bearbeitung sollte diese wie folgt aussehen.<br \/>\n<code># \/etc\/dovecot\/conf.d\/99-mail-stack-delivery.conf<br \/>\n# Some general options<br \/>\nprotocols = imap sieve<br \/>\ndisable_plaintext_auth = yes<br \/>\nssl = yes<br \/>\nssl_cert = &lt;\/etc\/ssl\/private\/ssl-chain-mail-cert.pem<br \/>\nssl_key = &lt;\/etc\/ssl\/private\/private-ssl.key<br \/>\nssl_client_ca_dir = \/etc\/ssl\/certs<br \/>\nssl_cipher_list = ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:R<br \/>\nSA+AES:RSA+3DES:!ADH:!AECDH:!MD5:!DSS<br \/>\nmail_home = \/var\/mail\/vmail\/%d\/%n<br \/>\nmail_location = maildir:\/var\/mail\/vmail\/%d\/%n\/mail:LAYOUT=fs<br \/>\nauth_username_chars = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@<\/code><\/p>\n<p># IMAP configuration<br \/>\nprotocol imap {<br \/>\nmail_max_userip_connections = 10<br \/>\nimap_client_workarounds = delay-newmail tb-extra-mailbox-sep<br \/>\n}<\/p>\n<p># LDA configuration<br \/>\nprotocol lda {<br \/>\npostmaster_address = webmaster@my-it-brain.de<br \/>\nmail_plugins = sieve<br \/>\nquota_full_tempfail = yes<br \/>\ndeliver_log_format = msgid=%m: %$<br \/>\nrejection_reason = Your message to &lt;%t&gt; was automatically rejected:%n%r<br \/>\n}<\/p>\n<p># Managesieve configuration<br \/>\n#protocol managesieve {<br \/>\n#listen = 127.0.0.1:2000<br \/>\n#login_executable = \/usr\/lib\/dovecot\/managesieve-login<br \/>\n#mail_executable = \/usr\/lib\/dovecot\/managesieve<br \/>\n#managesieve_max_line_length = 65536<br \/>\n#}<\/p>\n<p># Plugins configuration<br \/>\nplugin {<br \/>\nsieve=~\/.dovecot.sieve<br \/>\nsieve_dir=~\/sieve<br \/>\nsieve_before = \/var\/mail\/vmail\/sieve-before<br \/>\nsieve_after = \/var\/mail\/vmail\/sieve-after<br \/>\n}<\/p>\n<p># Authentication configuration<br \/>\nauth_mechanisms = plain login<\/p>\n<p>passdb {<br \/>\ndriver = passwd-file<br \/>\nargs = username_format=%u scheme=ssha512 \/etc\/dovecot\/passwd.db<br \/>\ndeny = no<br \/>\nmaster = no<br \/>\npass = no<br \/>\nskip = never<br \/>\nresult_failure = continue<br \/>\nresult_internalfail = continue<br \/>\nresult_success = return-ok<br \/>\n}<\/p>\n<p>userdb {<br \/>\ndriver = static<br \/>\nargs = uid=5000 gid=5000 home=\/var\/mail\/vmail\/%d\/%n<br \/>\n}<\/p>\n<p># Log all failed authentication attempts<br \/>\nauth_verbose=yes<\/p>\n<p>service auth {<br \/>\n# Postfix smtp-auth<br \/>\nunix_listener \/var\/spool\/postfix\/private\/dovecot-auth {<br \/>\nmode = 0660<br \/>\nuser = postfix<br \/>\ngroup = postfix<br \/>\n}<br \/>\n}<\/p>\n<p>Was ist hier alles passiert?<\/p>\n<p>Als Erstes wurde das POP3 Protokoll entfernt, da ich nur IMAP und Sieve nutzen werde. Sieve erm\u00f6glicht die Erstellung umfangreicher und flexibler Mailfilter-Regeln. Doch mehr dazu in Teil 3.<\/p>\n<p>Als N\u00e4chstes wird SSL aktiviert und Dovecot der Ort des SSL-Zertifikats, des privaten Schl\u00fcssels und das Verzeichnis mit den Zertifikaten der Root CAs mitgeteilt.<\/p>\n<p>Die <code>mail_home<\/code> und <code>mail_location<\/code> Direktiven legen fest, wo Dovecot die E-Mails zustellt. Hier sind zwei Variablen enthalten. &#8222;%d&#8220; steht f\u00fcr die genutzte Maildomain. &#8222;%n&#8220; steht f\u00fcr den Namen der virtuellen Benutzer. Dies bedeutet, dass eine E-Mail an &#8222;webmaster@domainname.tld&#8220; im Verzeichnis <em>\/var\/mail\/vmail\/domainname.tld\/webmaster<\/em> zugestellt wird.<\/p>\n<p>Die <code>mail_location<\/code> Direktive legt fest, dass das &#8222;maildir&#8220; Format[5. <a title=\"Wikipedia: Maildir\" href=\"https:\/\/de.wikipedia.org\/wiki\/Maildir\" target=\"_blank\">Wikipedia: Maildir<\/a>] genutzt wird. Das bedeutet, der Posteingang und weitere Verzeichnisse existieren auf dem Server in Form ganz normaler Verzeichnisse. Maildir ist eines von zwei weit verbreiteten E-Mail Speicherverfahren. Das andere ist <a title=\"Wikipedia: mbox\" href=\"https:\/\/de.wikipedia.org\/wiki\/Mbox\" target=\"_blank\">MBOX<\/a>, welches alle Nachrichten in einer einzigen langen Datei speichert. Ich habe mich f\u00fcr die Verwendung von Maildir entschieden, da ich so besser einzelne Nachrichten auf der Kommandozeile behandeln kann. Dies ist von Vorteil bei der Konfiguration und dem Training des Anti-Spam Systems in Teil 3 dieser Artikelreihe.<\/p>\n<p>In der Sektion <code>passdb<\/code> wird definiert, wie und wo die Passw\u00f6rter der virtuellen Benutzer gespeichert werden. Die Optionen in dieser Sektion stellen sicher, dass ein Benutzer, der ein falsches Passwort eingibt, keinen Zugriff auf ein Postfach erh\u00e4lt.<\/p>\n<p>Mit den Optionen unter <code>userdb<\/code> wird festgelegt, dass ein virtueller Benutzer namens &#8222;vmail&#8220; verwendet wird.<\/p>\n<p>Bevor die Konfiguration von Dovecot beendet werden kann, sind noch die Passw\u00f6rter f\u00fcr die virtuellen Benutzer zu vergeben, so dass diese sich mit einem Mailclient mit dem Server verbinden k\u00f6nnen, um E-Mails zu versenden und zu empfangen. Die Passw\u00f6rter werden in diesem Fall in der verschl\u00fcsselten Datei <em>\/etc\/dovecot\/passwd.db<\/em> gespeichert. Die Passw\u00f6rter werden interaktiv in der Konsole generiert, damit sie nicht in der Bash-History gespeichert werden. Dabei hilft das doveadm Tool:<\/p>\n<pre>doveadm pw -s SSHA512\r\n<\/pre>\n<p>Das Tool fordert dazu auf, ein Passwort einzugeben und dieses zu best\u00e4tigen. Anschlie\u00dfend gibt es den verschl\u00fcsselten und gesalzenen String aus. Anschlie\u00dfend wird die Datei <em>\/etc\/dovecot\/passwd.db<\/em> erstellt und nach diesem Muster gef\u00fcllt:<\/p>\n<pre>you@yourdomain.com:{SSHA512}OeR5ulGD3LZ0OHuj9muNqSvKB7hxsxnTquSd8AjK8QXrtOAGqxhxdRs093CzcuaX1PXmOkBGXbQCftYc0tpbo83uZ7Y=\r\npostbot@yourdomain.com:{SSHA512}BPhYH6qtRAtcpCpHxZ919HAve7GGYc4QIIGPIIPCQ2JHhsfVJkzbEsITNL9dvf20YsPNec68LjfLi+TXwS35RrOnElE=\r\nwebmaster@yourdomain.com:{SSHA512}o0LG4pTPeHkTZDvqeQufuULcY07YPb2EyA46M5yYtZOAcLI2k4Ee7ADkHSePl\/mYdinapCkc7ZEYDvOsi3wg\/ungtos=\r\n<\/pre>\n<p>Jede Zeile startet mit der E-Mail Adresse des dazugeh\u00f6rigen E-Mail Kontos, gefolgt von einem Doppelpunkt und dem kompletten String f\u00fcr das verschl\u00fcsselte Passwort.<\/p>\n<h3 id=\"der_posteingang_und_alles_andere\">Der Posteingang und alles Andere<\/h3>\n<p>Die wirklich letzte zu bearbeitende Datei ist <em>15-mailboxes.conf<\/em>, wo konfiguriert wird, welche Verzeichnisse f\u00fcr jeden virtuellen Benutzer erstellt werden. Hier wird sichergestellt, dass jeder Benutzer seinen eigenen Gesendet-, Entw\u00fcrfe-, Spam-Ordner und Papierkorb bekommt. Es befinden sich bereits Ordnerdefinitionen in dieser Datei. Diesen f\u00fcgen wir die Zeile <code>auto = subscribe<\/code> hinzu. Die Datei sollte ohne Kommentare in etwa wie folgt aussehen:<\/p>\n<pre>namespace inbox {\r\n\tmailbox Drafts {\r\n\t\tspecial_use = \\Drafts\r\n\t\tauto = subscribe\r\n\t}\r\n\tmailbox Junk {\r\n\t\tspecial_use = \\Junk\r\n\t\tauto = subscribe\r\n\t }\r\n\tmailbox Trash {\r\n\t\tspecial_use = \\Trash\r\n\t\tauto = subscribe\r\n\t}\r\n\tmailbox Sent {\r\n\t\tspecial_use = \\Sent\r\n\t\tauto = subscribe\r\n\t  }\r\n}\r\n<\/pre>\n<p>Dovecot wird neugestartet und anschlie\u00dfend testet man die Konfiguration mit<\/p>\n<pre>dovecot -n\r\n<\/pre>\n<p>\u00c4hnelt die Ausgabe der folgenden, ist alles korrekt.<\/p>\n<pre>$ dovecot -n\r\n# 2.2.9: \/etc\/dovecot\/dovecot.conf\r\n# OS: Linux 3.13.0-042stab092.3 x86_64 Ubuntu 14.04.1 LTS reiserfs\r\nauth_mechanisms = plain login\r\nauth_verbose = yes\r\nmail_home = \/var\/mail\/vmail\/%d\/%n\r\nmail_location = maildir:\/var\/mail\/vmail\/%d\/%n\/mail:LAYOUT=fs\r\nmanagesieve_notify_capability = mailto\r\nmanagesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date ihave\r\nnamespace inbox {\r\n  inbox = yes\r\n  location = \r\n  mailbox Drafts {\r\n    auto = subscribe\r\n    special_use = \\Drafts\r\n  }\r\n  mailbox Junk {\r\n    auto = subscribe\r\n    special_use = \\Junk\r\n  }\r\n  mailbox Sent {\r\n    auto = subscribe\r\n    special_use = \\Sent\r\n  }\r\n  mailbox Trash {\r\n    auto = subscribe\r\n    special_use = \\Trash\r\n  }\r\n  prefix = \r\n}\r\npassdb {\r\n  args = username_format=%u scheme=ssha512 \/etc\/dovecot\/passwd.db\r\n  driver = passwd-file\r\n}\r\nplugin {\r\n  sieve = ~\/.dovecot.sieve\r\n  sieve_after = \/var\/mail\/vmail\/sieve-after\r\n  sieve_before = \/var\/mail\/vmail\/sieve-before\r\n  sieve_dir = ~\/sieve\r\n}\r\nprotocols = imap sieve\r\nservice auth {\r\n  unix_listener \/var\/spool\/postfix\/private\/dovecot-auth {\r\n    group = postfix\r\n    mode = 0660\r\n    user = postfix\r\n  }\r\n}\r\nssl_cert =  was automatically rejected:%n%r\r\n}\r\nprotocol imap {\r\n  imap_client_workarounds = delay-newmail tb-extra-mailbox-sep\r\n  mail_max_userip_connections = 10\r\n}\r\n<\/pre>\n<p>Damit ist das Ende von Teil 2 erreicht. Postfix und Dovecot sind fast vollst\u00e4ndig konfiguriert. Was ist noch zu tun?<\/p>\n<p>In Teil 3 dieser Artikelreihe geht es um DNS. Es werden DNS Eintr\u00e4ge ben\u00f6tigt, damit Clients den Mailserver finden und auch E-Mails an den richtigen Server geroutet werden k\u00f6nnen. Au\u00dferdem wird es noch um ein paar spezielle DNS-Records gehen, die anderen Servern beweisen sollen, dass wir legitime E-Mails und keinen Spam versenden.<\/p>\n<p>Ebenfalls wird es um eine Anti-Spam L\u00f6sung gehen. Spamassassin in Kombination mit einem Virenscanner. Der Mailserver wird nochmal auf Herz und Nieren gepr\u00fcft und dann im gro\u00dfen weiten Internet bekannt gemacht.<\/p>\n<p>Zum guten Schluss geht es in Teil 4 darum, wie der Webmailer Roundcube installiert und konfiguriert wird. Dieser Teil ist optional, da der Webserver bereist am Ende von Teil 3 fertig f\u00fcr den produktiven Einsatz ist. Aber mal ehrlich, was ist ein Mailsystem schon ohne Webmail?<\/p>\n<p>Bis n\u00e4chste Woche.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Herzlich willkommen zur\u00fcck bei der Artikelreihe &#8222;Der eigene Mailserver&#8220;. Der erste Artikel dieser Reihe handelte von dem zu Grunde liegenden Serverbetriebssystem, dem Remote-Zugriff \u00fcber SSH und der Installation der ersten Pakete. In dieser Ausgabe geht es vor allem um die folgenden drei Punkte: Erwerb und Installation eines SSL\/TLS Zertifikats. Grundlegende Konfiguration von Postfix, so dass<span class=\"continue-reading\"> <a href=\"https:\/\/www.my-it-brain.de\/wordpress\/der-eigene-mailserver-teil-2\/\">[Weiterlesen&#8230;]<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_metis_text_type":"","_metis_text_length":0,"_post_count":0,"footnotes":""},"categories":[51],"tags":[280,75,275,58,305,230,35,37,231,60],"class_list":["post-872","post","type-post","status-publish","format-standard","hentry","category-linux","tag-dovecot","tag-e-mail","tag-imap","tag-linux","tag-planet","tag-postfix","tag-server","tag-sicherheit","tag-smtp","tag-ubuntu"],"_links":{"self":[{"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/posts\/872","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/comments?post=872"}],"version-history":[{"count":17,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/posts\/872\/revisions"}],"predecessor-version":[{"id":1375,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/posts\/872\/revisions\/1375"}],"wp:attachment":[{"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/media?parent=872"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/categories?post=872"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/tags?post=872"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}