# Mail-Benutzer Zugriff



## AfroQue (7. November 2007)

Hallo,

ein Kumpel hat mich für sein Unternehmen gebeten eine Seite aufzusetzen. Das Problem ist, dass die für alle Ihre Mitarbeiter Webmail-Funktionalität integriert haben möchten. Das ganze soll sich dann auch noch in das Seitenlayout vom Aussehen her einpassen. Zudem soll es bestimmte Benutzer geben (Mail-Admins), welche über eine einfache Oberfläche neue Benutzer für die Mail-Oberfläche hinzufügen und löschen können sollen (confixx und ähnliches ist denen schon zu kompliziert). Das Anzeigen aller Benutzer für die entsprechende Domain soll der Benutzer natürlich auch können.

Nun habe ich verschiede Hoster angefragt ob die eine derartige Schnittstelle für mich zur Verfügung stellen können und alle haben abgewinkt oder gar nicht zurückgeantwortet. Ich musste somit zwangsweise ein eigenen Server mieten und aufsetzen.

Ohne weiter auf die Einrichtung des Servers weiter einzugehen wollte ich gerne fragen wie ihr das machen würdet, so dass dadurch nicht ein riesiges Sicherheitsloch entsteht.


----------



## Sinac (8. November 2007)

Installier dir Postfix und richte es ordentlich ein. Dann würde ich vielleicht eine MySQL Anbindung machen für die Domains und User und als FrontEnd Squirrelmail.


----------



## AfroQue (8. November 2007)

Hallo Sinac und danke für deine Antwort.

Postfix ist auch meine Wahl gewesen. qmail soll da ja auch effizient sein, da dass aber von den Updates her nicht unterstützt wird habe ich mich für postfix entschieden.

Bei der MySQL-Anbindung tritt ja auch schon das Problem der Sicherheit auf. Ich verstehe nicht ganz die Möglichkeiten und Abhängigkeiten zur Einrichtung einer MySQL-Verbindung auf. Zumindest habe ich im Internet HowTos gefunden, bei denen anscheinend die Struktur der MySQL-Daten vom verwendeten MDA abhängt (also courier oder cyrus). 

Mir wäre es halt wichtig, dass wenn ich schon einem Benutzer auf dem Server den Zugriff auf die Mailkonten per MySQL zulassen, dass dieser nicht für alle möglichen Domains EMail-Adressen anlegen kann, sondern nur für den von diesem Menschen bestellte Domain. Ist das sowohl bei courier wie auch bei cyrus möglich? Oder hängt es von denen gar nicht ab? Das verstehe ich noch nicht ganz.

EDIT:
Würdet ihr neben courier oder cyrus ein anderen MDA in diesem Zusammeng empfehlen? Welchen?


----------



## Sinac (8. November 2007)

Die Mysql Datenbank dient ja nur der Ablage der Daten, also E-Mail Adressen, User, Passwörter, Domains, Forwardings etc. und der eingerichtete MySQL User ist für die Anbindung von Postfix, Courier etc. Ich habe sowas bis jetzt nur in Verbindung mit Courier gemacht, aber ich denke mal andere können das auch. Habt ihr denn vor verschiedene Domains zu verwalten?

Schau dir vielleicht mal dieses Howto an:
http://wiki.freakempire.de/doku.php/linux/virtueller_e-mail_server_unter_debian_etch_und_postfix


----------



## AfroQue (8. November 2007)

Was so generell in der MySQL-Datenbank steht habe ich auch gelesen. Ich denke nur in die Zukunft und überlege mir, was wenn ich irgendwann mal eine andere Domain auf dem Server draufladen würde.

Bei courier habe ich in den Howtos gesehen steht in der Datenbank der volle E-Mail-Name. Wenn ich also ein MySQL-Benutzer anlege, welcher auf die Mail-Datenbank zugriff hat, wie kann ich diesem die Rechte verweigern z.B. auf E-Mail-Adressen anderer Domains auch lesend zuzugreifen. Und wie kann ich sicherstellen, dass dieser MySQL-Benutzer nur E-Mail-Adresse für Domain XY anlegt. Das ist im wesentlichen mein aktueller Punkt.

Bei cyrus scheint es die Möglichkeit zu geben Benutzer anzulegen welchen man tatsächlich die Möglichkeit bieten kann die oben beschriebenen Aktivitäten zu unterbinden bzw. erlauben. Aber genau weiss ich das nicht da die meisten HowTos dies in diesem Umfang nicht beschreiben. Deswegen habe ich zunächst generell gefragt was ihr da für Möglichkeiten seht. Oder vielleicht habe ich das mit cyrus falsch verstanden?


----------



## Sinac (8. November 2007)

Ich sehe da irgendwie nicht den großen Sinn drinne, es muss doch einen MySQL User geben der die Datenbank verwaltet! Das bedeutet ja noch nicht, dass die User, die später die einzelnen E-Mail Adressen verwalten, löschen und anlegen das auch alles dürfen. Ich könnte mir vorstellen das man es so aufbauen kann, das du für jede Domain einen eigenen MySQL User hast, aber ich halte das nicht für sinnvoll bzw. nötig. Den Zugriff auf die Informationen der anderen Domains kannst du ja später über eine Verwaltungsfrontend regeln. Es wird ja immer einen Admin geben der an alles rankommen sollte...


----------



## olqs (8. November 2007)

Hast du dir schonmal Open-Xchange angesehen?

Ich hab gleich den Link zur Community Version genommen, die ist kostenlos und bietet so ziemlich alles was du brauchst.

Es gibt dort eine Administrationsoberfläche in der man komfortabel Benutzer erstellen, Email adressen einrichten und Quotas vergeben kann.

Die Installation hat bei mir über die Anleitung im dortigen Wiki einwandfrei funktioniert, obwohl sie ziemlich umfangreich ist.

Das System setzt auf postfix, cyrus, mysql, apache + mod_jk auf.


----------



## AfroQue (8. November 2007)

@olgs: OpenXchange ist schon heftig. Ich werde das im Hinterkopf behalten.

@Sinac: Ich verstehe dich nicht ganz. Wie meinst du das genau? Den Anleitungen zu courier habe ich gesehen, dass in der Datenbank ein tabelle mit der spalte: email-adress (oder ähnlich) existiert. Dort wird die Mail+Domain (also person@domain.tld) gespeichert. Wie kann ich nun ein user anlegen, der zwar auf diese Tabelle zugreifen kann, aber nur Einträge mit dem inhalt (@domain.tld auslesen darf? Das geht meines wissens nicht ohne dass es in PHP selbst gemacht wird. Und da der benutzer ja zugriff auf die PHP-Dateien bekommen wird, kann er leicht den Aufruf abändern.

Wenn ich dich missverstehe, sorry. Wäre um eine klärung dankbar.


----------



## Sinac (8. November 2007)

Dochdoch, du hast das schon ganz richtig verstanden. Der MySQL User kann natürlich alles sehen, muss in der Konfiguration wie z.B. der oben genannten Anleitung auch. Entweder du überlegt dir eine Konfiguration bei der du wirklich für jede Domain einen eigenen User hast, was ich für sehr kompliziert halte, oder du "sicherst" die Daten der anderen Domains über ein PHP-FrontEnd. Warum sollte der Benutzer in diesem Fall den Zugriff über auf die PHP Dateien haben? Ich denke die "Admins" sollen wirklich nur Postfächer anlegen und löschen können?!


----------



## AfroQue (8. November 2007)

Generell hast du recht. Nur Admins sollten zu solch empfindlichen Daten zugriff haben. Hoffte darauf, dass es doch eine Möglichkeit gäbe die ich noch nicht kenne.


----------

