[linux-l] Mailserver

Volker Grabsch vog at notjusthosting.com
So Mai 20 16:14:08 CEST 2007


On Thu, May 17, 2007 at 12:05:49PM +0200, Thomas Schmidt wrote:
> Ich suche einen Weg, einen Mailserver unter Debian Etch ohne Klimmzüge zu 
> installieren. Es scheint allerdings mit einem einfachen apt-get und ein paar 
> Einstellungen, möglichst dpkg-reconfigure, nicht machbar zu sein.

Deine Ansprüche sind relativ hoch. Es ist eine sehr alte Geschichte.
Jeder, der einen Hosting-Server aufsetzt, trifft relativ schnell auf
dieses Problem.

Der Knackpunkt ist dabei genau dein erster Anforderung:

> -Mehrere Domains mit unterschiedlichen Adressen

Hier musst du eine wichtige Entscheidung treffen:

a) Pro Mail-User einen System-Account anlegen. Benötigt keine extra
   Datenbank, aber ein entsprechendes Mapping-File muss gepflegt werden.

b) Mail-User in Datenbank halten. Wir machen das bei uns via LDAP
   (slapd), weil das am naheliegendsten ist und man die Autorisierung
   komplett auf den Server abschieben kann. Alternativ kann man auch
   ne SQL-Datenbank nehmen. Die Struktur des LDAP-Baum bzw. der SQL-
   Tabellen ist nebensächlich, zumindest beim Exim kann man das frei
   konfigurieren. Courier kann das Zeug ebenfalls nutzen.

Es gibt noch andere Methoden (vpopmail, etc.), aber die sind nur
auf den ersten Blick einfacher, und man hat weniger Kontrolle darüber
als bei einer offenen Schnittstelle wie SQL oder LDAP.

Auch einen Blick wert ist VHCS2, aber das will sich auch gleich um
Webserver, etc. kümmern. Im Prinzip wie Confixx oder Plesk, aber
freie Software und weniger "intrusiv". Installation unter Debian
ist sehr einfach (fertiges Paket, konfiguriert sich automatisch),
aber mir persönlich etwas unheimlich.

Willst du Hosting machen, probier's mit VHCS2. Willst du nur nen
Mailserver, lass besser die Finger davon und mach a) oder b).

> -Mails von autorisierten Clients annehmen und in alle Welt schicken

Wie authentifizieren sich Clients?

Per SMTP-Auth + Passwort? Kein Problem.

Per Client-Zertifikat? Geht auch, braucht aber ein extra Feld in der DB.
    (extra Attribut in LDAP, extra Spalte in SQL)

> -Mails von jedem für unsere Domains annehmen

Versteht sich von selbst. :-)

> -Auf Wunsch verschlüsselter Empfang für autorisierte Clients (SMTP)

Versteht sich auch von selbst.

Exim und Postfix können beide TLS. Und wenn du unbedingt willst,
auch SSL.

> -Auf Wunsch verschlüsseltes Abholen (IMAP)

IMAP und POP, auch via SSL, kriegst du problemlos mit Courier hin.
> -Die selbe Benutzerverwaltung für SMTP und IMAP,
>          welche (/etc/shadow, Datenbank oder so) ist egal

Exim/Postfix und Courier müssen gleich konfiguriert sein.

Der Knackpunkt ist hier wirklich Postfix bzw. Exim.
Wenn du das erstmal hast, ist Courier ein Kinderspiel.
Courier braucht da relativ wenig Konfiguration.

Cyrus dürfte das alles auch hinkriegen, aber den würd ich nur bei
Performance-Problemen einsetzen, weil der die Mails in einem eigenen
Format ablegt. Courier hingegen macht alles über Maildirs.

> -Spamfilter, der direkt aus einem Mailprogramm per IMAP trainiert werden kann

Damit kenne ich mich leider nicht aus, aber "dspam" könnte das
sein, was du suchst. Spielt AFAIK super mit Exim zusammen,
wahrscheinlich auch mit Postfix.

> Ich habe mich mit Exim und Postfix intensiv auseinandergesetzt und keine 
> einfache Möglichkeit gefunden, obwohl mein Vorhaben nichts Besonderes sein 
> dürfte.

Dieses "Vorhaben" ist ein Klassiker unter den Problemen, die einfach
aussehen, aber keine einfache Lösung haben.

Das Problem ist, dass hier mehrere Programme gemeinsam konfiguriert
werden müssen. Es gibt vorgefertigte.

Das einfachste ist a), also im Wesentlichen das manuelle Pflegen einer
"Virtual-Domain"-Datei, die eine Zuordnung "mail at adresse -> accountname"
enthält. Dazu brauchst du kaum etwas konfigurieren. Unter Debian sollten
ein normales Exim (mit dpkg-reconfigure exim) und Courier mit minimaler
Änderung laufen.

Ebenfalls relativ leicht ist VHCS2, da kriegst du sogar ein Administrations-
Webinterface mit geschenkt. Hab das für einen Kunden eingerichtet. Für
mich ist das nichts.

Das IMHO beste wäre b), und VHCS2 macht ja schon sowas ähnliches. Aber
es hat eben Vorteile, über die Struktur der Tabellen bzw. LDAP-Bäume
frei bestimmen zu können. Dafür gibt es Howtos, und "real" hab ich das
gesehen mit Exim+OpenLDAP+Courier und Postfix+MySQL+Courier. Ist
aufwändiger, aber bei deiner Liste von Ansprüchen letzten Endes
vielleicht doch am einfachsten, wenn du alles im Griff hast.

----------------------------------------------------------------------

Noch ne Anmerkung zu b): Bei uns läuft Exim+OpenLDAP+Courier. Damals
hatte uns Ruben Puettmann sehr geholfen. Er hatte auch eine entsprechende
Projektseite, und ich steuerte ihm kleine Verbesserungen bei. Leider
ist dieses Projekt schon veraltet. Ein Umstieg Exim3 -> Exim4 ist nie
passiert. Ich werde das irgendwann mal nachholen, aber dazu muss zuerst
ne Testumgebung her, ich dachte an separate Test-Mail-Domains, die von
einem eigenen VServer verwaltet werden, mit ein paar (Python-)Scripten,
die dort systematisch Mail hin senden und mit IMAP abholen. Ohne solch
eine Umgebung könnte ich nämlich niemals einen verlässlichen Mailserver
konfigurieren, dazu ist das Thema einfach zu komplex.

Ein Webinterface für diesen LDAP-Zugang hatte ich auch geschrieben
gehabt (PLEAZ), aber es läuft momentan nur bei uns, und es kann nicht
alles automatisch machen. In unfähigen Händen kann es Schaden anrichten,
und ohne Rubens Konfigurations-Projekt ist es ohnehin unbrauchbar.

Kurz: Man müsste einfach mal sehr viel Zeit investieren und sowas wie
VHCS2 für Mailserver bauen, nur flexibler und leichtgewichtiger. Ein
Konfigfile für Exim, eines für slapd, zwei oder drei für Courier, und
ein Webinterface. Sowas fehlt schon seit Jahren, und bisher hat jeder,
der mit dem Thema zu tun hatte, sich selbst durchgeschlagen und für
seinen Spezialfall ne kleine Howto geschrieben.

Eigentlich gehen meine "Pläne" noch viel weiter: Mail über CGI-Scripte,
passwortloser (aber trotzdem sicherer) DB- und Mail-Zugriff durch CGI-Scripte.
Subdomains anlegen ohne Webinterface/Konfigurationsdatei. Naja, das ganze
Hosting-Zeug halt. Wenn man's intelligent hochzieht, kann man viele Probleme
sehr elegant lösen, und büßt nur sehr wenig Freiheiten ein (die man, wenn
man sie braucht, eh lieber per Hand konfigurieren sollte). Die Klassiker
Confixx, Plesk und VHCS gehen da genau den anderen Weg: Die Probleme werden
kompliziert gelöst, und die Komplexität wird automatisiert. Die
Weboberflächen bieten einen Haufen Zeugs an, von denen kleinere Hoster
nur einen Bruchteil tatsächlich gebrauchen können. Vor einiger Zeit
habe ich da einige Gedanken zusammengetragen:

    http://wiki.njh.eu/Server-System_f%C3%BCr_Hosting

Vielleicht ist VHCS genau das, was du suchst, und ich denke über
Probleme nach, die es heute gar nicht mehr gibt. Vielleicht sind
meine Gedanken auch gut, aber die Realisierung nicht lohnenswert.

Musst du selbst einschätzen. Aber die Welt ist noch nicht so weit
fortgeschritten, dass diese Problematik "trivial" geworden ist.


Viele Grüße,

    Volker

-- 
Volker Grabsch
---<<(())>>---
Administrator
NotJustHosting GbR



Mehr Informationen über die Mailingliste linux-l