Wem ein Raspberry Pi hardwareseitig zu schwachbrüstig ist, um ein Projekt wie einen eigenen Homeserver in „Self-Hosting“-Manier zu realisieren, der schaut sich nach etwas anderem um. Das ist bei mir nun – als Ersatz ähnlich “kleiner” Vorgänger – eine Beebox N3000 von Asrock, ein ca. 10×10 cm kleiner, völlig lautlos zu betreibender MiniPC. In der Beebox werkelt ein Intel Celeron N3000 Dualcore Prozessor mit 1,04GHz (Turbo 2,08GHz), flankiert von (eigentlich überdimensionierten) 16 GB RAM und einer 250 GB großen (preiswerten) SSD. Die kleine Box verfügt darüber hinaus über 4x USB 3.0 Anschlüsse, 2x HDMI, Gigabit-LAN und WLAN usw. und ist im Handel als Barebone (ohne Festplatte und ohne RAM) ab ca. 130 € erhältlich. Da die Beebox eigentlich fürs heimische Wohnzimmer – etwa zum Filme-Streamen – gedacht ist, liegt ihr sogar eine Fernbedienung bei (für mein Vorhaben derzeit unerheblich).
Warum ein eigener Server?
Eigentlich ist mein Homeserver momentan nur ein Mailserver: derzeit sammelt er lediglich meine Mails und die der ganzen Familie von diversen externen Konten via getmail/POP3 ein – obwohl er mehr Funktionen bereit stellen würde. Das heißt, er klappert insgesamt knapp 20 Mailpostfächer mit je eigenen Zugangsdaten für mich ab, holt neue Mails, schickt sie durch einen Spam- und Virenfilter und speichert sie in einem IMAP-Konto. Dieses kann ich dann mit meinen Geräten vom Homeserver abrufen. Das Versenden übernimmt der jeweilige Mailclient dann individuell, etwa Thunderbird vom Desktop-PC oder KaitenMail vom Smartphone.
Für mich hat eine solche Mailserver-Lösung den entscheidenden Vorteil, dass ich mir nur die Zugangsdaten für einen Server merken muss. Das ist praktisch, wenn ich z.B. einen neuen PC oder ein Smartphone einrichte, was doch öfter mal vorkommt.
Maileinsammeln
Andererseits lagern meine Mails so nicht irgendwo in der Wolke, sondern befinden sich physisch bei mir im Arbeitszimmer daheim. Bis ca. 2007 habe ich für das Maileinsammeln Googles Emaildienst genutzt. Aber wieso mein digitales Mailarchiv, das immerhin jetzt knapp 10GB groß ist und noch Mails seit Ende der 90er umfasst, dieser Allwissenheitsmaschine auch noch in den Rachen schieben?
Eben.
Der Mailserver hängt über meine FritzBox und einen DynDNS-Dienst (ich nutze den dt. Dienst DynDNS und lass mich das 5,88 € pro Jahr kosten) am Netz und ist auch von außen über das Internet über SSL-Verbindung erreichbar. So läuft z.B. der Webmailer RoundCube und alternativ ist auch Sogo als komplette Groupware installiert. Für mich ist diese Erreichbarkeit wichtig, damit ich z.B. im Büro auch schnellen Zugriff auf meine privaten Mails habe.
Die Nethserver-Distribution als “Instantserver”
Meine “verflossenen” Homeserver bislang hatte ich unter Debian, Suse und mittels der “Instantserver”-Distribution SME-Server realisiert. Zufällig bin ich bei der Websuche auf Nethserver gestoßen – ebenfalls eine Distribution, die als “Instantserver” daher kommt. Ein Instantserver ist übrigens nix anderes als ein ganz normales Linux – mit dem Vorteil, dass bestimmte Dienste bereits fix und fertig konfiguriert sind und einfach per Mausklick über eine Browser-Oberfläche aktiviert werden können. Also quasi: einmal umrühren, fertig. Läuft.
Na ja, fast.
Nethserver basiert (wie SME-Server auch) auf CentOS – eine Distribution, mit der ich in freier Wildbahn bislang noch nichts zu tun hatte. Aber gut: verpackt als Instantserver schreckt mich das als ubuntu-/Debian-Jünger nicht. Vergleicht man Nethserver mit SME-Server so entdeckt man schnell, dass Nethserver quasi die modernere Variante von SME ist. Beide gehen den gleichen Weg: vorkonfigurierte Serverdienste bereitstellen, die über ein Webmodul konfiguriert werden.
In jedem Fall ist es hilfreich, vor und während der Installation über leidlich gute English-Kenntnisse zu verfügen. Bis man an den Punkt kommt, an dem man die Sprache umstellen kann, ist der Installvorgang natürlich in Englisch.
Installation
Nethserver ist in der aktuellen 7er-Version schnell heruntergeladen und mit
dd if=nethserver-7.3.1611-x86_64.iso of=/dev/sdc (=>Pfad zum USB-Medium)
fix auf einen USB-Stick gebannt. Alternativ funktioniert natürlich auch das Brennen auf CD, das ISO-Abbild des Systems ist ca. 775 MB groß.
Wer schon einmal Fedora installiert hat, dem wird der Installer bekannt vorkommen. Ich persönlich finde ihn nicht so geglückt, mir sagt vor allem das von der Debian-/ubuntu-Installation bekannte Partitionsnierungstool mehr zu als das Pedant von Nethserver zur Einteilung der Festplatte, das für mich einfach nicht schlüssig zu bedienen ist. Andererseits kann man diese Hürde bei einer Nethserver-Installation ganz einfach meistern, indem man abnickt, was sowieso passiert: Nethserver “nimmt” immer die ganze Ziel-Festplatte in Beschlag – eine Parallelinstallation neben Windows etwa ist gar nicht erst vorgesehen.
Die Installation selbst läuft einfach durch. Wer schon einmal ein Linux-System aufgesetzt hat, sollte damit klar kommen. Es gilt ein Root-Passwort zu setzen, Tastaturlayout und Sprache einzustellen, das Installationsziel auszuwählen, also die Festplatte, auf der Nethserver installiert werden soll, sowie die Netzwerkeinstellungen vorzunehmen. Hier ist es sinnvoll, eine feste IP für den Server zu vergeben. Sehr gut fand ich übrigens, dass nicht nur mein Ethernet, sondern auch mein WLAN-Modul auf den ersten Versuch korrekt erkannt wurde – ohne spezielle Treiber-Installation. Das habe ich bei SME-Server auch schon einmal anders erlebt.
Vergisst man, etwas zu konfigurieren, dann erinnert der Installer, was noch getan werden muss, um das System auf die eigene Platte zu bringen. Ein sehr hilfreiches Installations-Tutorial für den Nethserver findet sich übrigens hier.
Einrichtung und Inbetriebnahme
Hat die Installation geklappt, sollte man von einem anderen PC aus (!) versuchen, sich mit dem neuen Server zu verbinden, um die ersten Einrichtungsschritte zu durchlaufen. Zu erreichen ist der Server dann unter der Adresse:
http://192.168.0.2:980 (=>IP ist beispielhaft)
Da der Server ein selbstsigniertes SSL-Zertifikat verwendet, erscheint dort vermutlich zunächst einmal eine übliche, aber hier unbedenkliche Sicherheitswarnung. Hier muss angeben, dass das selbstausgestellte Zertifikat vom Browser akzeptiert wird.
Hat man diese Ausnahme gespeichert wird man dann schon von einem Login-Fenster erwartet. Hier kann man sich mit dem Benutzer root und dem während der Installation erstelltem Passwort anmelden und findet sich alsbald dann auf der Webseite des Servers wieder, über die alle Einstellungen getroffen werden können, Dienste gestartet und gestoppt werden und zusätzliche Software oder auch Updates installiert werden.
Zugegeben: Wer das erste Mal auf der Admin-Oberfläche landet, fühlt sich ein wenig “lost in space”. Denn die vielfältigen Optionen (Menupunkte am linken schwarzen Rand) erschließen sich nicht unbedingt immer durch die vorgenommen Beschriftung der Menupunkte. Auch die Gruppierung der einzelnen Optionen ist auf den ersten Blick willkürlich: Sinnvoll gewesen wäre es, z.B. alle Optionen, die mit dem Mailserver-Betrieb zu tun haben, unter einem Oberpunkt zu versammeln. So aber muss man erst in manche Punkte hineinschauen, um zu sehen, was sie bedeuten und sich die benötigten Funktionen etwas zusammensuchen.
Um einen Mailserver in Betrieb zu nehmen, empfehlen sich grundlegend folgende vier Arbeitsschritte:
- schauen, ob die benötigte Software installiert ist, gegebenenfalls dann nachinstallieren: Adminstration -> Software-Center
- Benutzer anlegen und für diese ein lokales Postfach erstellen
- den POP3-Connector aufsuchen und externe Mailboxen eintragen
- Emailfilter für Viren- und Spamschutz aktivieren und einen externen SMTP-Server (den sog. Smarthost) eintragen, über den Mails vom lokalen Webmailer aus verschickt werden können (wenn man dies möchte)
Benötigte Software installieren
Nethserver hat die Software-Verwaltung recht einfach gelöst, Programme lassen sich per Mausklick installierten. Über Adminstration -> Software-Center erreicht man die Software-Verwaltung, die in drei Tabs gegliedert ist: Mögliche Software, bereits installierte Software, Updates. Sollte die Oberfläche nach dem Login noch auf Englisch erscheinen, findet man hier auch eine deutsche Lokalisierung zum Nachinstallieren.
Um unseren Mailserver in Gang zu bringen, wählen wir mit der Maus diese Pakete aus:
- eMail: eMail-Server und Filter
- Pop3 Connector: Nachrichten abholen von externen Mailaccounts mit Pop3 oder Imap
- Roundcube Webmail
- SOGo groupware (optional – aber ich bin neugierig)
Wer mag, kann auch weitere nützliche Pakete auswählen und etwa nextcloud installieren, um es im lokalen Netzwerk als Speicherlösung zu verwenden.
Benutzer und Postfächer anlegen
Danach empfiehlt es sich, die benötigten Benutzer anzulegen. Dies geschieht über den Menupunkt: Verwaltung -> Benutzer und Gruppen
- Zuerst lege ich eine neue Gruppe namens “user” oder “benutzer” an, der alle folgenden Benutzer zugeordnet werden
- Danach kann ich beginnen, einzelne Nutzer anzulegen
Mit dem Anlegen erhält jeder Benutzer quasi auch eine interne Mailadresse, die so wie gewohnt aufgebaut ist: benutzername@servername. Über diese interne Mailadresse kann man übrigens auch Mails an anderen Nutzer des lokalen Nethservers verschicken. In der Hauptsache dient sie aber als das Postfach, in das dann gleich die Mails von externen Mailservern einsortiert werden sollen.
POP3-Connector einrichten
Damit die Mails auf externen Mailservern eingesammelt werden können, gibt es den sogenannten POP3-Connector. Dahinter steht das Linux-Tool getmail, dem über den Menupunkt Verwaltung -> Pop3-Connector mitgeteilt wird, wo mit welchen Zugangsdaten in Zukunft Mails abgeholt werden dürfen.
Was man hier einstellt bzw. in die gebotene Maske eingibt, entspricht ziemlich genau den Angaben, die man auch in sein Mailprogramm eingeben muss, um Mails abzuholen. Leider ist hier die Umstellung auf die deutsche Sprache noch nicht wirklich angekommen, was aber zum Glück nicht weiter stört.
Wichtig ist hier vor allem, das lokale Postfach anzugeben, in dem die abgeholte Mail dann eingeliefert bzw. abgespeichert werden soll. Desweiteren kann festgelegt werden, in welchem Zeitintervall der Nethserver das entsprechende Postfach abrufen soll und ob die Mail dort nach dem Abrufen sofort gelöscht werden soll oder nicht. Empfehlenswert ist es, beim letzteren Punkt erst einmal einzustellen, dass die Mail auf dem Ursprungsserver vorrübergehend erhalten bleibt. Erst wenn alle Funktionstests glatt verlaufen sind, sollte man hier die sofortige Löschung der Mails auf dem externen Server festlegen.
Emailfilter für Viren- und Spamschutz aktivieren und einen externen SMTP-Server festlegen
Für den letzten Schritt muss man idiotischer Weise die Admin-Oberfläche ganz herunterscrollen und findet dann unten im Punkt Einstellungen -> eMail versteckt genau das, was man braucht, um die Konfiguration zu vervollständigen.
- Unter dem Tab “Filter” kann ich einstellen, dass Mails auf Viren- und Spam geprüft werden oder dass Mails mit ausführbaren Dateien im Anhang geblockt werden.
- Unter dem Tab “Mailboxen” wird eingestellt, wie der Zugriff auf den Nethserver/Mailserver erfolgt: ich habe hier nur IMAP eingestellt und einen unverschlüsselten Zugriff nicht erlaubt.
- Unter dem Tab “Nachrichten” kann ich einstellen, wie groß maximal die Mailwarteschlange sein soll. Hier kann man den eingestellten Wert belassen.
- Wenn man vom Nethserver bzw. dem darauf laufenden Webmailer RoundCube auch Mails verschicken möchte, so trägt man unter dem Tab “Smarthost” einen externen SMTP-Server ein. Dies muss ein SMTP-Server sein, der sog. Mail-Relaying erlaubt. Damit ist gemeint: habe ich mich einmal auf diesem SMTP-Server angemeldet, kann ich von dort Mails mit beliebigem Absender verschicken. Server verschiedener Anbieter erlauben dies: etwa T-Online oder 1und1.
Warum ist das mit dem Smarthost überhaupt notwendig? Nethserver bringt zwar einen SMTP-Server selbst mit, dieser wird jedoch ohne eine feste, öffentliche IP-Adresse, ohne Domainnamen (FQDN = Full Qualified Domain Name) und ohne ordentliche Zertifikate von den Empfänger-Servern als potentielle Spam-Schleuder abgelehnt.
Letzte Arbeiten und habe fertig
So, das wars im Prinzip schon.
Unter Status -> Dienste kann ich nun nachsehen, ob die vom Mailserver benötigten Dienste alle laufen. Das sind beim Nethserver in der hier vorgestellten Konfiguration:
- amavisd (Mail-Virus und Antispamscanner)
- dovecot (IMAP)
- httpd (HTTP) Webserver für Webmail
- postfix (SMTP)
- spamassassin
- sogod (Groupware – falls installiert/gewünscht)
Für einen ersten Test empfehle ich, Thunderbird für den Zugriff auf Nethserver einzurichten, ansonsten sollte auch der Webmailer RoundCube schon funktionieren, der unter https://192.168.0.2/webmail aufrufbar ist. Hat man die – im übrigens sehr schicke! – SOGo Groupware mit oder als Alternative zu RoundCube installiert, ruft man https://192.168.0.2/SOGo auf (IP ist nur ein Beispiel, durch eigene ersetzen).
Soll der Nethserver von außen erreichbar sein, müssen einige Einstellungen in DSL-Router vorgenommen werden: ein DynDNS-Client muss eingerichtet werden und Ports müssen freigegeben werden. In meiner FritzBox sind dies die Ports 993 für IMAP und 443 für https, die für die interne IP, die ich dem Nethserver zugewiesen habe, freigegeben sind. Zugriffe von außen auf diese offenen Ports werden sofort von der Fritzbox an meine Beebox/Nethserver weitergeleitet. Somit kann ich Mails von überall auf der Welt auf meinem Nethserver abrufen und schreiben – solange meine DSL-Leitung daheim für Verbindung ins Internet sorgt.
Natürlich ist Nethserver nicht nur als Mailserver zu gebrauchen, er bringt sozusagen alles mit, um als “eierlegende Milchsau” alles mögliche zu bedienen und anzubieten. Weniger ist aber hier auch unter reinen Sicherheitsaspekten mehr. So habe ich den ssh-Zugang von außerhalb meinen Heimnetzwerkes gar nicht erst erlaubt. Sicher wäre der Server von der Hardwareseite her potent genug, um noch den ein oder anderen Zusatzjob zu verrichten. Denkbar wäre hier ein FTP- oder Samba-Server, ein Jabber-Server, ein Web-Proxy usw. – alles Dienste, die Nethserver bereits mitbringt. Mir reichen allerdings die selbstverwalteten Maildienste aus, die er diskret und auffällig, dabei für meine Bedürfnisse sehr zuverlässig und performant erledigt.
Danke für die feine Zusammenfassung!
Ich überlege schon seit langem, zusätzlich zu meinem Fileserver (ein HP ProLiant 54G mit openmediavault), der nur netzintern genutzt wird, auch einen von außen erreichbaren kleinen Server ins Haus zustellen. Irgendwie ist mir bei dem Gedanken unwohl, meine gesammelten Privatdaten wie Bilder, Videos, Bücher und Textsammlungen auf der gleichen Maschine wie NextCloud etc. zu lagern…
Deshalb gleich mal die Frage an die Mitlesenden: wie haltet ihr das mit der Trennung von Daten und Diensten?
@Christian Meine Daten kommen auf eine externe Festplatte.
Aber das mit den Mails auf einem Homeserver gefällt mir gut.
@Uli Frißt dieser Homeserver viel Strom?
Was dieser DynDNS-Dienst bedeutet, ist mir noch nicht klar. Würde es nicht reichen, so eine Box mit einem Betriebssystem + Nethserver zu bestücken und an den Router zu stöpseln?
@Thorn:
Nein, dieser Homeserver frisst sehr wenig Strom, ist sogar sehr energiesparend im Vergleich zu einem normalen Desktop-PC.
DynDNS ist ein Dienst, an dem sich Dein Router – bei mir die FritzBox – automatisch (wieder) anmeldet, wenn Deine IP wechselt. In der Regel wechselt Deine IP, die Deinem Internetanschluss von Deinem Anbieter zugeteilt wird, bei einer Flatrate daheim einmal am Tag. Da die IP täglich wechselt, müsstest Du immer wissen, wie die aktuelle IP Deines Homeservers ist.
Hier springt DynDNS ein. DynDNS stellt Deinem Router eine feste Internet-Adresse, z.B. also http://thornserver.dyndns.org zur Verfügung. Nach dem Wechsel Deiner IP-Adresse ändert DynDNS automatisch und schnell auch den dazugehörigen Domaineintrag http://thornserver.dyndns.org. Über diese Adresse kannst Du also Deinen Homerouter auch dann erreichen, wenn er sich neu verbindet.
Damit Du Deinen Home-Server erreichen kannst (und nicht auf der Oberfläche des Routers landest), musst Du desweiteren eine oder mehrere Portweiterleitung (oder auch Portfreigabe) in Deinem Router einstellen. Für den Webserver ist das z.B. die Portweiterleitung HTTP/TCP Port 80. Diese musst Du dann für die interne IP Deines Servers (z.B. 192.168…) freischalten.
Erst wenn beide Schritte auf dem Router eingerichtet sind, erreichst Du Deinen Homeserver über die immer gleiche Internetadresse, z.B. mit dem Browser oder auch Deinem Mail-Programm (gesicherter IMAP-Port ist z.B.: 993)
@Christian:
Ich halte die Trennung der Dienste für sehr sinnvoll. Man kann natürlich überlegen, ob eine Maschine, die wenig ausgelastet ist, nicht noch einen weiteren Dienst anbieten kann. Aber der Dienst sollte zu dem eigentlichen Zweck doch passen und den Server nicht noch weiter unnötig exponieren. Wenn es um persönliche Daten geht lieber: Sicherheit zuerst.
Hallo, danke für deinen ausführlichen Bericht. Ich würde auch gerne Nethserver auf einem Atomboard einsetzen. Leider verfügt dieses nur über die be*****ne GMA3600 (PowerVR) Grafik. D.h. der Anaconda Installer bleibt schwarz. Gibt es irgendeine Möglichkeit, diesen Installer als Textversion aufzurufen bzw. VESA VGA Grafik in Grub zu erwzwingen? Ein drücken von “e” im Bootscreen funktioniert leider nicht.
VG
Christian
Nethserver basiert ja auf CentOS. Dazu habe ich folgendes gefunden:
“When you see install centos menu option press the tab key, add ‘text’ to the end of any existing installer command line arguments and then press the return key.
This will tell the installer (Anaconda) to install the OS in text mode.”
also:
“Wenn die Menüoption “Centos installieren” angezeigt wird, drücken Sie die Tabulatortaste, fügen Sie die Option ‘text’ am Ende aller vorhandenen Installationsbefehlszeilenargumente hinzu und drücken Sie dann die Eingabetaste.
Dadurch wird das Installationsprogramm (Anaconda) angewiesen, das Betriebssystem im Textmodus zu installieren.”
Danke, komme aus der *buntu Welt, da war mir das nicht geläufig. Die “Unattended Installation” läuft jetzt im Textmodus 🙂 Die Distro ist wirklich gut vorkonfiguriert, alleine das automatische Software RAID1 ist richtig klasse. Grüße aus dem Rheinland