"Enter" drücken, um zum Inhalt weiterzugehen

Cubietruck als Mailserver [Update]

Cubietruck
Größenverhältnis: Der Cubietruck ist nicht mal so breit, wie ein Filzstift lang ist.

Wem ein Raspberry Pi hardwareseitig zu schwachbrüstig ist, um ein Projekt wie einen eigenen Home-Mailserver in „Self-Hosting“-Manier zu realisieren, der schaut sich nach etwas anderem um. So legte ich mir nach etwas Suchen einen Cubietruck zu, dessen Vorteile auf der Hand liegen: neben einer stärkeren CPU und mehr Speicher bietet der Cubietruck die Möglichkeit, eine Festplatte via SATA-Schnittstelle direkt am Board anzuschließen, was Lese- und Schreibzugriffe gegenüber einem Raspi doch deutlich beschleunigt und mir für mein Projekt, einen IMAP-Mailserver daheim einzurichten, besser geeignet erschien.

Der Cubietruck: die Hardware-Eckdaten

Das Cubietruck-Board ist eine überarbeitete Version des Cubieboard 2 und basiert auf einer Allwinner A20 (Dual Core ARM Cortex-A7) CPU. Onboard findet man 2 GB DDR3 RAM, 8GB Flash, je einen HDMI/VGA Ausgang, 1Gbit Ethernet, WiFi. Dazu gibts 2 x USB 2.0, 1 x Mini-USB OTG, 1 x Toslink (SPDIF optical), 1 x IR, 4 x LEDs und 1 Kopfhörer-Buchse.

Alles in allem eine Hardware also, mit der man einiges machen kann. Diese kommt komplett mit Acrylplatten, auf die man das Board aufschrauben kann. Ich habe mir jedoch ein richtiges Gehäuse gegönnt, das schwarze Ewell-Ccase für den CubieTruck. Das sieht schick aus, kostet keine 12 Euro und außerdem ist das nette Cubie-Maskottchen mit drauf ;-). Leider nimmt die Oberfläche des Gehäuses quasi jeden Fingerabdruck auf – aber bei einem Server(chen) stört das ja auch nicht weiter.

Warum ein eigener Mailserver?

Eigentlich ist mein Mailserver kein „richtiger“ Mailserver. Er soll für mich nämlich lediglich meine Mails und die der ganzen Familie von diversen externen Konten via fetchmail/POP3 einsammeln. Das Versenden übernimmt der jeweilige Mailclient dann individuell.
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 regelmäßig vorkommt. Der Mailserver hängt über meine FritzBox und einen DynDNS-Dienst am Netz und ist auch von außen erreichbar. So läuft z.B. der Webmailer RoundCube.

Vorgeschichte

Cubietruck und Booksize-PC
Goliath gegen David: der alte Atom-Booksize-Server neben dem Cubietruck. Der Cubie ist winzig dagegen, hängt ihn leistungsmäßig aber locker ab.

Vor dem Cubietruck besaß ich schon seit 2009 – hier dokumentiert – einen eigenen Mail-Einsammel-Server. Der bestand aus einem µITX-Board und einem entsprechenden Booksize-Gehäuse, in dem eine Atom-CPU der ersten Generation im Verbund mit einer eher lahmen 160-GB-Festplatte und 500 MB RAM die Arbeit tat.
Allerdings wurde der Betrieb dieser Kombination mit den steigenden Ansprüchen immer schwieriger: der Online-Konsum der ganzen Familie wuchs stetig und damit auch der Mailverkehr. Entscheidendes Manko aber war der Einschaltknopf des Gehäuses: nach vier Jahren war er defekt, so dass das Wiedereinschalten des Servers – etwa nach einem Stromausfall – zuletzt ein Geduldsspiel wurde. Er kam zwar immer irgendwie wieder hoch, aber auf Dauer musste eine andere Lösung her.

InstantServer: SME-Server

Gerne hätte ich den Mailserver übrigens wieder mit der SME-Server-Distribution realisiert. Ich bin in Bezug auf meine IT ein bequemer Mensch, die Distribution war ich gewöhnt und SME hat mich über die Jahre nie hängen lassen. Die von mir verwendete SME-Version 6.5 war jedoch bereits so alt, dass sie nicht mehr mit Updates versorgt wurde.

Da der Cubietruck wie der Raspberry Pi mit einem ARM-Prozessor ausgestattet ist, kam dennoch leider SME in einer aktuellen Version nicht mehr in Frage. Schade, denn die SME-Distribution kann ich für solche Projekte generell sehr empfehlen, weil sie so etwas wie die eierlegende Wollmilchsau ist und einfach „quick and dirty“ ihren Job macht – zudem komfortabel über den Webbrowser administrierbar.
Meine Wahl für die Umsetzung des Mailservers auf dem Cubie fiel darum softwareseitig schnell auf Debian, das ich häufig auch auf dem Desktop verwende.

Die Cubian-Installation

Die speziell auf den Cubietruck angepasste Debian-Variante nennt sich Cubian und beruht aktuell auf Wheezy. Das entsprechende Cubian-Image ist schnell aus dem Netz gezogen und mittels
dd if=cubian.img of=/dev/sdX
(evtl. Pfad zum Image anpassen; sdX ersetzen durch die korrekte Devicebezeichnung der MicroSD-Karte)

auf einer MicroSD-Karte gespeichert. Wenn man den Cubietruck das erste Mal von MicroSD-Karte startet, werden grundlegende Konfigurationsschritte durchgeführt, die hier beschrieben sind. Standardmäßig bootet der Cubie vom eingebauten Nand-Speicher, auf dem ab Werk ein für mein Empfinden grottiges Android installiert ist, was aber als „Notsystem“ evtl. für manche Nutzer wichtig sein kann, denn die nun folgenden Schritte können auch fehlschlagen.

Nun gibt es Anleitungen im Netz, wie man Cubian von SD-Karte auf den Nand-Speicher kopiert, so dass theoretisch der Cubie direkt von dort bootet.

Probleme bei der Installation im Nand-Speicher

Ursprünglich war das auch mein Vorhaben.
cube2Ich habe in meinem Cubie eine 250 GB große SSD-Platte verbaut, und so erschien mir der Gedanke verlockend, die Cubian-Boot- und Root-Partitionen in den Nand zu verlegen – dort ist immer 8 GB schneller Speicher verbaut – und den Rest auf der SSD einzubinden. Leider scheiterte dieses Vorhaben, weil es mir nicht gelang, den Nand-Speicher mit Cubian startfähig zu machen.
Andere Nutzer haben übrigens dasselbe Problem, eine Diskussion mit weiteren Informationen dazu wird hier geführt.
Schließlich habe ich den Cubie so partitioniert, dass die Partition /boot auf der SD verbleibt und die restlichen Partitionen auf der SSD sind. Geholfen hat mir dabei diese Anleitung.
Die Bootzeit des Cubians ist so im Zusammenspiel mit der SSD trotz der „Bremse“ der MicroSD-Karte erfrischend schnell, so dass ich das Übergehen des Nand ganz gut verkraften kann. Allerdings hatte ich bei der Wahl der SD-Karte auch darauf geachtet, ein ausreichend schnelles Modell zu wählen.

exim4, dovecot, fetchmail – Einrichtung nach Schritt für Schritt-Anleitung aus dem Netz

Nachdem Debian installiert war und rund lief, ging es für mich nun daran, die passenden Serverkomponenten auszuwählen. Schwierig, denn Debian bietet ja quasi „alles“ – also welche Komponenten wählen für mein Mailserver-Projekt?

Meine Wahl fiel auf exim4 als MTA (Mail Transport Agent) und Dovecot als IMAP-Server. Für die Einrichtung gibt es etliche gute „Schritt-für-Schritt“-Anleitungen im Internet. Mir kam es auf eine möglichst schlanke und erprobte Lösung an.

Ich habe meine Konfiguration letztendlich nach der sehr guten Anleitung auf den Seiten der PC-Welt durchgeführt, die ich einfach Schritt für Schritt abgearbeitet habe. Lediglich in Punkt 5 der Anleitung („5. Nachrichten von E-Mail-Konten abholen“) , die sich mit der Einrichtung von fetchmail beschäftigt, habe ich eine Änderung vorgenommen: ich habe im Verzeichnis /etc eine globale fetchmailrc angelegt.

Die im PC-Welt-Artikel vorgeschlagene Lösung, in jedem /home-Ordner für jeden Benutzer eine eigene fetchmailrc anzulegen und fetchmail per Cronjob anzustoßen, war mir zu umständlich und fehleranfällig. Unter Cubian jedenfalls funktionierte die beschriebene Anleitung zur Mailabholung per fetchmail nicht zuverlässig. Mit einer globalen Konfigurationsdatei kann ich hingegen fetchmail als Daemon laufen lassen, was auch Speicher spart. Eine ausführliche Darstellung der beiden fetchmail-Konfigurationswege findet sich z.B. auf howtoforge.de.

Fazit

Der Cubietruck läuft jetzt seit mehr als einem Jahr als Mailserver und verrichtet unauffällig, lautlos, ausreichend schnell und zuverlässig seinen Dienst im Bücherregal. Kleinere Probleme waren z.B., dass manche Mails manchmal doppelt ausgeliefert werden oder dass der Cubie anfangs vor einem turnusmäßigen Check des Filesystems erstmal eine Tastatur-Eingabe erwartete, so dass ich mal kurz Bildschirm und Tastatur anklemmen musste. Vielleicht sinnvoll wäre noch eine Ergänzung mit einem Spamfilter. Allerdings lasse ich meine Mails bereits bei den jeweiligen Anbietern auf Spam checken, so dass die Zahl der Spam-Mails, die durchrutschen, überschaubar bleibt.

Der Zugriff auf den Cubie-Mailserver klappt aus dem Internet gut und im eigenen Home-Netz ist er sehr schnell, was sicher auch der verbauten SSD zu verdanken ist. Trotzdem mein Mailarchiv inzwischen 12 Jahre Mailverkehr umfasst, ist der verbrauchte Platz auf der Festplatte sehr gering, unter 5 Gigabyte. 256 GB sind darum völlig überdimensioniert, eigentlich hätte mir auch eine 32GB-SSD gereicht.

Inzwischen gibt es ja Version 3 des Raspberry Pi, die genug Power mitbringt, ebenfalls einen Mailserver antreiben zu können. Interessant…

2 Comments

  1. Alois 15. September 2016

    Gibt es den 2. Teil schn?

    • Ulrich Berens 15. September 2016

      Hallo Alois,

      ist halb fertig (schon seit Wochen) und ich komme nicht zum Fertigstellen. Was interessiert Dich besonders? Jedenfalls nehme ich Deine Rückfrage mal als Motivationsschub, den 2. Teil endlich fertig zu stellen.

      Gruß
      Uli

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert