• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Schon wieder - Postfix Cyrus sasldb2 Verständnisproblem

Status
Für weitere Antworten geschlossen.

enabler

Newbie
Hallo ihr Kundigen!

Ich lese seit ca. 2 Wochen in diesem Forum zum Thema Postfix, sowie alle extern angegebenen Links. Habe eine Suse 9.1 am laufen und möchte hiermit nun einen Mailserver betreiben. Es soll nur eine Domain versorgt werden.
Nach einzelnen Vorbetrachtungen bin ich zu dem Schluss gekommen, das eine Kombination von Postfix, Cyrus IMAP, Cyrus sasl und fetchmail gut funktionieren müsste. Die Idee, Mail-Benutzer nur in einer separaten Datenbank anzulegen und diesen hiermit komplett den Zugriff auf das eigentliche System zu verweigern gefiel mir sehr gut. Gesagt, getan, soweit alle notwendigen Programme installiert, funktioniert auch zum Teil.

Was funktioniert:
vom Client kann ich mich per in sasldb2 hinterlegten Zugangsdaten gegenüber cyrus autentifizieren und auf das Postfach und Unterordner zugreifen.

Mails können vom MUA über den MTA an externe Empfänger problemlos versandt werden. Die hierbei eingesetzte vorherige SMTP-auth Authentifikation via sasldb2 funktioniert.

Was nicht funktioniert:

Nun mein generelles Verständnisproblem:
Ich möchte erreichen, das Mailbox-User nur über die salsdb2 authentifiziert werden. Auf dem Server sollen nur die Standard-User existieren (root, postfix, usw.). Das Anlegen lokaler System-User soll unbedingt vermieden werden. Wenn ich nun lokal Mail verschicken möchte
z.B. user1@meine.domain an user2@meine.domain, (beide existieren nur in der sasldb2) meint postfix, das der zu erreichende User nicht existieren würde... Wie bekomme ich Postfix dazu, die Abfrage, ob der betreffende User in dieser Domain existiert ausschliesslich über die sasldb2 zu realisieren ? wie gesagt alles über die sasldb2 Authentifizierung. Wo liegt mein Denk-(wissens)Fehler?

Nochmal in Kurzform:
(Am Mailserver zum Versand anmelden) SMTP auth: sasldb2
(Per Mailclient auf die IMAP Ordner zugreifen) IMAP : sasldb2
(Mail an lokale(sasldb2)User versenden): sasldb2?

Welche Alternativen gibt es ausser MySQL?
Welchen Thread habe ich noch nicht zweimal gelesen? :roll:

An welcher Stelle (wo) nimmt Postfix die Prüfung vor, ob ein User existiert oder nicht?
Wie kann man Postfix dazu bewegen, diese Informationen aus der sasldb2 zu beziehen ?
 

ThomasF

Hacker
Hmmm,

habe den Post zwar nur überflogen, aber meine erste Idee ist :

Authentifizierung ist nicht gleich Mailzustellung, will heißen Postfix oder Cyrus-Imap interessiert es als erstes einmal ob ein Postfach für diesen User existiert ..... Dann wird geschaut ob ein Account vorhanden ist und dann wird die Mail erst zugestellt.

Selbst wenn es umgekehrt geprüft wird es müssen immer beide vorhanden sein ;-)

Gibt es für jeden User den Du bei den Test-Mails probiert hast ein Postfach in Cyrus ?
Die Postfächer in Cyrus werden meiner Meinung nach nicht automatisch angelegt, das muß man per Hand machen ...

Oder gibt es überhaupt einen User mit Postfach und sasldb2 Account dem Du eine Mail schicken kannst ?

So long

ThomasF
 
OP
E

enabler

Newbie
Ja, es existieren für diese Benutzer mit cyradm angelegt Postfächer in der Form user.user1 unter /var/spool/imap.

Die Benutzer existieren auch mit dem gleichen Namen (user1) in der /etc/sasldb2, angelegt mit saslpasswd2.

Wo/Wann/womit prüft Postfix das Vorhandensein eines lokalen Kontos?
 

ThomasF

Hacker
Also das Wo/Wann/Womit kann ich Dir nicht sagen ...

Welches Modul das jetzt genau überprüft ist aber relativ egal, aber wenn es Dich interessiert such/frag doch mal in der Mailingliste vom Postfix-Buch.

Also ich gehe auch über SASL aber verzweige dann über PAM nach LDAP, weil ich die User auch für die Linux Authentifizierung brauche.

Was steht den bei Dir in der /etc/sysconfig/saslauthd ?

So long

ThomasF
 
OP
E

enabler

Newbie
In der /etc/sysconfig/saslauthd steht eine Zeile:

SASLAUTHD_AUTHMECH=pam

Sollte ich hier etwas entscheidendes übersehen haben. Könnte es sein, das hier der Hinweis auf das auxprop, sasldb2 hingehört ?

Bis dann
 

ThomasF

Hacker
Hmm,

Auszug aus man saslauthd

Code:
 sasldb     (All platforms)

                Authenticate against the SASL authentication database.  Note
                that this is probabally not what you want to be using, and is
                even disabled at compile-time by default.  If you want to use
                sasldb with the SASL library, you probably want to use the
                pwcheck_method of "auxprop" along with the sasldb auxprop plu-
                gin instead.

Also wenn ich das richtig verstehe ist die Benutzung von /etc/sasldb2 standardmässig nicht mit kompiliert, aber vielleicht hat SuSE es doch mit reingenommen ;-)

Versuch doch einfach mal anstatt pam sasldb einzutragen ...

Ansonsten hast Du die Wahl entweder das Paket neu zu kompilieren oder eventuell doch auch auf LDAP umzusteigen ... ;-)

So long

Thomas
 

oc2pus

Ultimate Guru
liest du hier:
http://www.pl-berichte.de/t_netzwerk/postfix-UCE-HOWTO-de.html
http://fn.neuroflex.de/tn/postfixsasl.html
http://www.daniel-lewin.de/id/srv_mail.html
http://www.linux-tin.org/

postfix regelt den erlaubten Zugriff über die smtp_*_restrictions bzw smtpd_*_restrictions

wenn der Postfix gegen sasldb2 authentifizieren soll lautet die Option: permit_sasl_authenticated

ansonsten sind hier schon sehr viele Threads zum Thema sasldb2 Authentifizierung gelaufen :)
 
OP
E

enabler

Newbie
Oh oc2pus, :)

gerade weil hier die sasldb2 so ausführlich und für alle Lebenslagen diskutiert und behandelt wird, bin ich voller Hoffnung auch in meinem besonderen Fall irgenwie ein Lösung erarbeiten zu können - auch wenn es die Stammgäste hier manchmal fast schon nerven dürfte. Ich habe alle angegebenen Links durchgelesen, der von http://www.pl-berichte.de/t_netzwerk/postfix-UCE-HOWTO-de.html war wirklich sehr aufschlussreich, hat mir sehr geholfen, da ich genau diese Informationen nirgendwo anders in dieser Form gefunden habe.

Es ist exakt so, wie du es beschreibst, in den Anweisungen
smtp_*_restrictions bzw smtpd_*_restrictions ist natürlich die Option permit_sasl_authenticated angegeben. Trotzdem antwortet postfix beim Versuch per telnet einem User der NUR in der sasldb2 angegeben ist eine Mail zu schreiben mit:

450 <user1@meine.domain>: Recipient address rejected: User unknown in local recipient table

Er soll doch nicht in der local recipient table nachsehen, sondern in meiner sasldb2.... Ich glaube hier liegt der Hase im Pfeffer. Deswegen nannte ich den thread auch "... Verständnisproblem"
Sorry für mein zur Zeit beschränktes Wissen. Wie biege ich diese Abfrage "um"?

Ein tail -f von /var/log/messages und /var/log/mail gibt auch keine weiteren Hinweise.
 

oc2pus

Ultimate Guru
dann setz einfach mal in der main.cf
local_recipient_maps =

also auf NIX :)

ansonten main.cf posten ... denn meine Glaskugel will heute nicht so wie ich will ;)
 
Status
Für weitere Antworten geschlossen.
Oben