Quantcast
Aktuelles
Digital Eliteboard - Das Digitale Technik Forum

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Der ultimative eigene Mailserver

Registriert
11. Juni 2010
Beiträge
4.080
Reaktionspunkte
2.847
Punkte
373
Hallo Zusammen,

lang hats gedauert.
Nun aber hier das HowTo für euren eigenen, nur von euch kontrollierten ultimativen Mailserver.

Die Motivation:
Jeder von euch kennt es.
Man hat mal bei Google, eine bei Yahoo und dann vielleicht auch noch eine GMX Mailadresse.
Wir leben in Zeiten, wo die Kommunikation durchaus auch einmal nicht mitgelesen werden soll oder für irgendwelche Webbot Geschichten wie bei Google verwendet werden soll.

Letztendlich ist mir persönlich eine gewisse Privatsspähre wichtig.
Daher habe ich bereits 2015 angefangen, meinen eigenen Mailserver für die wichtige Kommunikation zu betreiben.

Es hat sich einiges getan....mein Mailserver war noch eine komplette manuelle Installation:
Postfix, Dovecot, Roundcube. Nun aber stelle ich euch dieses Tutorial zur Verfügung, damit auch Ihr euren eigenen Mailserver betreiben könnt.

Ich gehe in diesem HowTo davon aus, dass Ihr euch komplett von Google etc. frei machen wollt. Aber eben auch von Strato etc. unabhängig sein wollt.

Daher müssen folgende Voraussetzungen geschaffen werden:
  1. Hosten einer eigenen Domäne:
    Klingt kompliziert, ist aber in Endeffekt ziemlich einfach. Beispielsweise könnt Ihr Namecheap als recht günstigen Anbieter nutzen, oder eben einen Service Anbieter wie myvirtualserver wo Ihr euch auch euren VPS als Mailserver hosten könnt.
  2. Mieten eines VPS:
    Natürlich könnt Ihr euch auch einen Dedicated mieten. Ein VPS allerdings bietet sich aufgrund des Zeitaufwands an. Wichtig: Nutzt kein OpenVZ Server mehr, da der Kernel nicht mehr weiterentwickelt wird. Ab Ubuntu 17.04 beispielsweise ist Feierabend. Daher rate ich zu einem KVM mit mind. 1GB RAM und mind 25 GB HDD.
Habt Ihr beides erledigt könnt Ihr los legen.
In diesem Tutorial nutzen wir die exemplarische Domäne !
Als weitere Grundvoraussetzung nehmen wir als Betriebssystem Ubuntu 16.04 oder ein Debian System. Ihr könnt natürlich auch SELinux oder CentOS nutzen.
Code:
apt update && apt-get upgrade -y && apt dist-upgrade -y
Wichtig hier vorab:
Ihr müsst eindeutige Hostnamen für eure Server nutzen.
Bei den meisten Anbietern könnt Ihr diese im Interface setzen, alternativ natürlich während der Installation des VPS.

Wir nennen unseren neuen Mailserver in diesem Fall mail.beispiel.de

Nun gehts rund!

Vorbereitungen:
Update des Systems
Code:
apt update && apt upgrade -y && apt dist-upgrade -y
Jetzt müssen wir noch ein paar Tools installieren:
Code:
apt install nano git build-essentials letsencrypt
Anschließend müssen wir nun das Git Repository von Mailcow clonen, welches uns eigentlich die ganze Arbeit abnimmt...

Zu Mailcow:
Bei Mailcow handelt sich um ein Projekt welches sich zur Aufgabe gemacht hat, einen automatisierten Prozess zur Installation des eigenen Mailservers bereit zu stellen. Hinzu kommen nette Erweiterungen wie ein schönes Webinterface für Postfix, Dovecot, Spamassasin Settings etc. Und natürlich auch die sehr gute Userverwaltung.
Code:
cd /opt
git clone https://github.com/andryyy/mailcow
cd mailcow
Nun müssen wir die mailcow.conf anpassen:
Code:
cd mailcow
nano mailcow.conf
Hier ist es jetzt wichtig folgende Settings zu setzen:
  • sys_hostname - Der Hostname eure Servers, in diesem Fall mail
  • sys_domain - Der Name der Domäne, in diesem Fall beispiel.de
  • httpd_platform - Nginx und Apache2 stehen zur Wahl. Ich persönlich rate zu Apache2.
  • mailing_platform - Hier gehts um das Webmailer Interface. Roundcube hat seine Vorteile darin, dass es schlank und ziemlich schnell ist. SOGo sieht besser aus und bietet viele Features, da es eine Groupware ist und man so beispielsweise auch Kalender teilen kann oder freigegebene Ordner. Ich rate aufgrund des Umfangs zu SOGo.
Beispiel Konfiguration
# ==================================
# Your servers new hostname and timezone.
# FQDN will be "sys_hostname.sys_domain"
# Example for valid timezone data:
# If you plan to use "@sub.example.com" as mail domain, do NOT use "sub" as hostname!
# ==================================

sys_hostname="mail"
sys_domain="beispiel.de"
sys_timezone="Europe/Berlin"

# ==================================
# mailcow administrator
# Password policy: At least 8 characters long, including 2 numbers, an uppercase letter, and a lowercase letter.
# Recommended settings: Leave "genpasswd" to generate a secure password.
# ==================================

mailcow_admin_user="admin"
mailcow_admin_pass=`genpasswd`
#mailcow_admin_pass="MyOwnPassword123"

# ==================================
# Try Let's Encrypt -after- installation
# Needs valid A records. Will install a weekly cronjob for renewal.
# Keeps key at renewal to prevent TLSA from becoming invalid.
# Use 3 1 1 TLSA records if you plan to.
# Certificate owner will be postmaster@sys_domain, so create this address
# ==================================

use_lets_encrypt="yes"

# ==================================
# Choose a webserver platform
# Valid values are "nginx" or "apache2"
# ==================================

httpd_platform="apache2"

# ==================================
# Choose a mailing software
# SOGo is expensive in ressources while it also provides DAV and EAS.
# SOGo needs a x86_64 os.
# ==================================

#mailing_platform="roundcube"
mailing_platform="sogo"

# ==================================
# MySQL/MariaDB configuration.
# Password policy: Not empty.
# Recommended password setting: Leave "genpasswd" to generate a secure password.
# Please use MySQL if you encounter problems with SOGo or read
#
# ===============

# root password
my_rootpw=`genpasswd`

# mailcow database
# Will be used by SOGo if mailing platform is "sogo"
my_mailcowdb="mailcow"
my_mailcowuser="mailcow"
my_mailcowpass=`genpasswd`

# Roundcube database
# IGNORE if mailing platform is "sogo"
my_rcdb="roundcubedb"
my_rcuser="roundcube"
my_rcpass=`genpasswd`

# Use MariaDB instead of MySQL
# Not available when mailing platform is "sogo"
my_usemariadb="no"

# **************************
# ADVANCED SQL CONFIGURATION
# Leave as-is for a
# default installation
# **************************

# IP or hostname of database server
# Only localhost or 127.0.0.1 are recognized as local database servers
my_dbhost="localhost"

# Use your current MySQL root password to connect to the existing database
#my_rootpw="MyCurrentMySQLRootPassword"

# ==================================
# Misc configuration option
# ==================================

# Set to no to skip "Press any key to continue"
inst_confirm_proceed="yes"

# Be verbose
inst_debug="no"
Nach der Bearbeitung muss die Datei mit STRG+O gespeichert werden.

Nun können wir die Installation starten.
Ihr braucht eigentlich nichts weiter tun als Enter zu drücken, wenn Ihr aufgefordert werdet.
Code:
./install.sh

Während die Installation am laufen ist, könnt Ihr euch den Einstellungen eurer Domäne widmen. Oder sagen wir mal so: Ihr müsst es definitiv tun!

  1. Loggt euch bei eurem Domänen Provider ein und geht zur DNS Verwaltung
    Hinweis:
    Bei Namecheap beispielsweise müsst Ihr bei den Mail Settings MXE Record auswählen und dort eure IP-Adresse des Servers eintragen.
  2. Erstellt einen Host A Eintrag
    Name: mail
    Inhalt: 10.166.22.199 <-- Die IP-Adresse eures Mailservers!
  3. SPF (Sender Policy Framework) erstellen:
    Typ: TXT
    Name: mail
    Inhalt: "v=spf1 a mx ~all"
  4. DMARC (Domain-based Message Authentication Reporting and Conformance) erstellen:
    Typ: TXT
    Name: _dmarc.beispiel.de
    Inhalt: "v=DMARC1; p=none; sp=none; rua=mailto:info@beispiel.de; ruf=mailto:info@beispiel; rf=afrf; pct=100; ri=86400"
  5. Host A Eintrag:
    Typ: A
    Name: autoconfig.beispiel.de
    Inhalt: 10.166.22.199 <-- Die IP-Adresse eures Mailservers!
  6. Host A Eintrag:
    Typ: A
    Name: autodiscover.beispiel.de
    Inhalt: 10.166.22.199 <-- Die IP-Adresse eures Mailservers!
  7. Host A Eintrag:
    Typ: A
    Name: imap.beispiel.de
    Inhalt: 10.166.22.199 <-- Die IP-Adresse eures Mailservers!
  8. Host A Eintrag:
    Typ: A
    Name: smtp.beispiel.de
    Inhalt: 10.166.22.199 <-- Die IP-Adresse eures Mailservers!
Nach Abschluss der Installation, setzt euch das Script die Anmeldedaten in die Konsole.
Dieses könnt Ihr nun einmal kopieren.

Nun öffnet euren Browser und geht zu eurem Mailserver:


Dort loggt Ihr euch nun als Domain Administrator ein:
Username: admin
Passwort: Das kopierte aus dem Terminalfenster

Unter Administrator bearbeiten, könnt Ihr das Passwort für diesen User ändern.
Aber auch unter Domain-Administratoren weitere hinzufügen.

Im Grunde können diese Settings jetzt alle so übernommen werden.
Einzig auf DKIM-Records muss jetzt was getan werden.
Dort geht Ihr wie folgt vor:
Im Feld Domain tragt Ihr eure Domäne ein.
Im Feld Selector zum Beispiel key1
Bei DKIM Schlüssellänge wählt ihr 1024 aus und klickt auf Hinzufügen / Add
Daraufhin seht Ihr den DKIM Eintrag. Der gesamte Inhalt muss jetzt von euch kopiert werden und wir müssen noch einmal in die DNS Verwaltung.

Hier erstellt Ihr einen weiteren Eintrag:
Typ: TXT
Name: key1._domainkey
Inhalt:
v=DKIM1;k=rsa;t=s;s=email;p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCSLfTSnoCPw5kH0Xfu/2HZdsmGGPD1R2QTTQJelMt1kVFGardgP8MYP1y7DS1x5c0V6X/h/VVjcrSAYtOEDA4cF5He3CvL9T5B915sXCu8ToH6bVBZjqYSr0OpJK3Ky9oGLEbnmWVvjIzefgnKv67OfQ0pzoNGWji0izM4G+7XrQIDAQAB

Zu beachten ist hier das Ihr euren Inhalt dort rein kopiert und nicht diesen!
Nun wechselt wieder auf das Mailcow Interface und klickt oben Rechts auf KOnfiguration / Configuration und wählt Mailboxen aus.

Erst einmal muss die Domäne hinzugefügt werden:
Du musst Regestriert sein, um das angehängte Bild zusehen.

Abschließend die Änderungen speichern.
Nun legen wir die Mailboxen an...in diesem Fall einfach info@beispiel.de:
Du musst Regestriert sein, um das angehängte Bild zusehen.

Bei Domain bitte eure Domäne auswählen!
Aliase brauchen wir hier vorerst weiter nicht!

Nach dem Speichern könnt Ihr euch oben rechts aus dem Admin Interface abmelden.
Im nächsten Schritt auf der Mailcow Startseite klickt auf Mailbox Benutzer und meldet euch mit eurer kompletten Mailadresse (Beispiel: info@beispiel.de) dort an:
Du musst Regestriert sein, um das angehängte Bild zusehen.

In diesem Interfacekönnt Ihr euer Passwort anpassen und Einstellungen an der Spamfilter etc. vornehmen. Da wir die ausgehenden Mails Grundverschlüsseln wollen, wählen wir Verschlüsselungsrichtlinie und stellen TLS Ausgehend Erzwingen auf ein:
Du musst Regestriert sein, um das angehängte Bild zusehen.

Abschließend die Änderungen speichern.
Hier könnt Ihr euch jetzt auch wieder abmelden.
Auf der Mailcow Startseite wählt nun SOGo, dass eigentliche Webmailer Interface aus:
Du musst Regestriert sein, um das angehängte Bild zusehen.


Im SOGo Webmailer könnt Ihr euch jetzt mit eurer kompletten Mailadresse und dem Passwort einloggen und munter drauf los mailen!

Dank SOGo ist auch die Einrichtung am Handy ein Kinderspiel.
Achtet darauf, dass Ihr beim Anmelde bzw. Benutzernamen immer die komplette Mailadresse nutzt!

Kleiner Hinweis noch:
Die Letsencrypt Implementierung bei Mailcow funktioniert noch nicht korrekt.
Daher ist es empfehlenswert das ganze selbst noch einmal durchzuführen. Eine Orientierung bietet mein Howto für Letsencrypt

Die Zertifikate müssen dann in der 000-0-mailcow.conf im Pfad /etc/apache2/sites-enabled/ angepasst werden.

Desweiteren ist es empfehlenswert in der ports.conf für den Apache den Port 80 ebenfalls mit SSL abzusichern.

Folgende Ports werden für die Firewall benötigt:
Postfix Submission TCP 587
Postfix SMTPS TCP 465
Postfix SMTP TCP 25
Dovecot IMAP TCP 143
Dovecot IMAPS TCP 993
Dovecot POP3 TCP 110
Dovecot POP3S TCP 995
Dovecot ManageSieve TCP 4190
HTTP(S) TCP 80/443
HowTo für Firewall
 

Anhänge

Du musst angemeldet sein, um die Anhangsliste zu sehen.
Anbei noch ein paar Links zu den Themen



Außerdem solltet Ihr immer euren rDNS (Reverse DNS) konfigurieren!
 
Schade, funktioniert leider nicht mit Debian 9 Stretch
 
Naja auf einem PI würde ich das auch nicht laufen lassen.
Ich betreibe inzwischen zwei VPS mit Mailcow.

Beide haben je 4 Kerne und 8 GB RAM.
 
Zurück
Oben