ubuntuusers.de

Mail Auth System verstehen...

Status: Gelöst | Ubuntu-Version: Ubuntu 6.06 (Dapper Drake)
Antworten |

Team-Lab22.de

Avatar von Team-Lab22.de

Anmeldungsdatum:
9. Mai 2007

Beiträge: 620

Wohnort: Gurlach

Hallo liebe Community,

ich hab eine echt wichtige Frage an euch (zumindest für mich) ☺
ein mailsystem mit postfix, sasl, cyrus, pam, mysql kann man ja immer per howto aufsetzten.. aber zu verstehen was dahinter steckt ist ja schon eine ganz andere geschichte. vorallem hilft es bei der fehler suche weiter.

also, so weit bin ich selber schon gekommen:

PAM.D wird unter /etc/pam.d/imap so eingerichtet, das es anfragen welche über cyrus->sasl kommen mit der Datenbank authentifiziert und an cyrus zurück gibt.
jedoch muss man in den meisten howtos mit:

saslpasswd2 -c <user> <pw>


einen sasl account für cyrus erstellen? wofür genau? ich dachte immer cyrus übergibt an den sasld dieser dann weiter an pam?! muss man sich extra nochmal an der sasldb authentifizieren bis die auth anfrage an pam weiter gegeben wird?

was ich auch nicht ganz verstehe, ist wie z.B. postfix authentifiziert. also smtp_auth?!

die Datei /etc/postfix/sasl/smtp.conf sieht so aus:

pwcheck_method: saslauthd
mech_list: PLAIN LOGIN

dadurch geh ich doch davon aus, das auch postfix sich über sasl authentifiziert? aber wieso musste ich dann für cyrus einen sasl user anlegen und für postfix nicht?
was mich dann halt ein bisschen verwundert sind die dateien:

-rw-r--r-- 1 root root 314 2007-05-25 08:18 mysql-canonical.cf
-rw-r--r-- 1 root root 244 2007-05-25 08:19 mysql-mydestination.cf
-rw-r--r-- 1 root root 272 2007-05-25 08:19 mysql-virtual.cf

in der Datei main.cf steht ja:

virtual_alias_maps = mysql:/etc/postfix/mysql-virtual.cf
sender_canonical_maps = mysql:/etc/postfix/mysql-canonical.cf
mydestination = mysql:/etc/postfix/mysql-mydestination.cf

Also im Prinzip findet für smtp auth, eine authentifiezierung über SASL, pam.d statt, wobei durch diese dateien gezeigt wird wo er nachzuschauen hat?

könnte mir vielleicht einmal jemand erklären, wer gegen was authentifiziert?

Vielen Dank!

Das Howto hier benutze ich meist: http://wiki.hetzner.de/index.php/DebianMailserver3
Mfg,
7

otzenpunk Team-Icon

Avatar von otzenpunk

Anmeldungsdatum:
17. Oktober 2005

Beiträge: 8691

Wohnort: Hamburg-Altona

7lifes hat geschrieben:

PAM.D wird unter /etc/pam.d/imap so eingerichtet, das es anfragen welche über cyrus->sasl kommen mit der Datenbank authentifiziert und an cyrus zurück gibt.
jedoch muss man in den meisten howtos mit:

saslpasswd2 -c <user> <pw>


einen sasl account für cyrus erstellen? wofür genau? ich dachte immer cyrus übergibt an den sasld dieser dann weiter an pam?! muss man sich extra nochmal an der sasldb authentifizieren bis die auth anfrage an pam weiter gegeben wird?

SASL ist ein Framework, mit dem man über mehrere Arten authentifizieren kann. Der Saslauthd wird dabei von SASL verwendet, um Passwörter mit der /etc/shadow-Datei abzugleichen. Wenn man nur diesen Mechanismus verwendet, benötigt man auch kein saslpasswd2. Die SASL-Passwortdatenbank, die man über den auxprop-Mechanismus abfragt, existiert dagegen unabhängig von der /etc/shadow-Datei. Diesen Mechanismus verwendet man, wenn man nicht jedem Mailbenutzer gleich ein Linuxkonto einrichten möchte.

SASL in /etc/pam.d konfiguriert hab ich noch nie und wusste bisher auch nicht, dass das geht. Mailserver wie Cyrus oder Postfix greifen auch direkt auf SASL zu, wenn man sie so konfiguriert.
7lifes hat geschrieben:

was ich auch nicht ganz verstehe, ist wie z.B. postfix authentifiziert. also smtp_auth?!

Postfix kann auch SASL benutzen. Siehe z.B. Postfix/Erweiterte_Konfiguration. Es gibt neben auxprop und saslauthd auch noch eine SASL-Methode rimap, die sich für Postfix besonders eignen sollte. Bei dieser Methode authentifiziert Postfix gegen einen IMAP-Server. Man muss also die eigentliche Konfiguration nur beim IMAP-Server durchführen und verweist von Postfix quasi dorthin.
7lifes hat geschrieben:

dadurch geh ich doch davon aus, das auch postfix sich über sasl authentifiziert? aber wieso musste ich dann für cyrus einen sasl user anlegen und für postfix nicht?
was mich dann halt ein bisschen verwundert sind die dateien:

Anscheinend hast du jetzt Cyrus so konfiguriert, dass er über auxprop authentifiziert, und Postfix über saslauthd.
7lifes hat geschrieben:

-rw-r--r-- 1 root root 314 2007-05-25 08:18 mysql-canonical.cf
-rw-r--r-- 1 root root 244 2007-05-25 08:19 mysql-mydestination.cf
-rw-r--r-- 1 root root 272 2007-05-25 08:19 mysql-virtual.cf

in der Datei main.cf steht ja:

virtual_alias_maps = mysql:/etc/postfix/mysql-virtual.cf
sender_canonical_maps = mysql:/etc/postfix/mysql-canonical.cf
mydestination = mysql:/etc/postfix/mysql-mydestination.cf

Also im Prinzip findet für smtp auth, eine authentifiezierung über SASL, pam.d statt, wobei durch diese dateien gezeigt wird wo er nachzuschauen hat?

Diese Dateien haben mit der Authentifizierung nichts zu tun. Sie legen nur fest, dass die Tabellen für Adressumschreibung für Empfänger, Absender, und die Zieldomains, wofür der Server sich zuständig fühlt, über MySQL abgerufen werden sollen. Folgende Manpages erklären das alles genauer:

man 5 mysql_table
man 5 postconf

Edit: Ich sehe gerade auf der Seite, dass gar nicht PAM den SASL aufrufen soll, sondern dass das umgekehrt ist. Der saslauthd ruft PAM auf, und PAM fragt die MySQL-Datenbank ab. Das SASL-Passwort braucht man nur für den Cyrus-Benutzer, weil das cyradm-Tool den auxprop-Mechanismus und nicht saslauthd nutzt.

Ich weiß ja nicht, wofür du den Mailserver benutzen willst, aber wenn du nur einen Mailserver für dich selber benötigst, kannst du auf MySQL auch getrost verzichten. So ein Overkill lohnt sich nur dann, wenn Postfächer von Benutzern über eine Weboberfläche selbstständig eingerichtet werden sollen, oder wenn die Zahl der Postfächer in die Hunderte geht.

Team-Lab22.de

(Themenstarter)
Avatar von Team-Lab22.de

Anmeldungsdatum:
9. Mai 2007

Beiträge: 620

Wohnort: Gurlach

erstmal vielen dank für deine antwort.

also mein System ist so gestrickt : ☺

1. MYSQL Datenbank zur USER-AUTH - bzw.. Festlegung der Virtual, Alias etc..
2. Pam zur Übergabe an die MYSQL Datenbank, bzw. Abfrage
3. SASL → Framework zur entgegennahme von Auth Anfragen des Cyrus, und weiterleitung an PAM->MYSQL.

Sodale was ich noch nicht verstehe:

Cyrus als als sasl_mech: SASLAUTHD. Dies bedeutet ja, er soll die Anfragen weitergeben, an den SASL. Der SASL ist wiederrum
so konfiguriert, das er alles an PAM.D → MYSQL weitergibt.

Jedoch läuft die Authentifizierung nur anscheind über SASLDB.
Wenn ich mein IMAP Konto öffne, also mich mit Passwort per PLAIN/LOGIN übern nen MUA einlogge.. erscheint nichts im MYSQL log.
Das gleiche beim versenden, also Passwort eingabe von SMTP Auth. Man sieht im Mysql.log nur, das er die Virtual Tables etc durchgeht.

Ist das so gewollt? Wird, wenn man den webcyradm installiert hat, immer über die SASLDB authentifiziert? Egal ob IMAP, SMTP-AUTH.. oder ob man
es von der Konsole per cyradm oder externen MUA macht?

Danke, das du dir soviel Zeit nimmst, es zu beantworten ☺

Edit:

Kommando zurück. Über den MUA Authentifiziert er doch bei imap und smtp-auth über mysql ☺

070601 10:32:30      36 Connect     mail@localhost on mail
                     36 Init DB     mail
                     36 Query       SELECT password FROM accountuser WHERE username = 'max.test123.de'
                     36 Quit       
                     37 Connect     mail@localhost on mail
                     37 Init DB     mail
                     37 Query       SELECT 0, password FROM accountuser WHERE username = 'max.test123.de'
                     37 Quit       
070601 10:33:13      38 Connect     mail@localhost on mail
                     38 Init DB     mail
                     38 Query       SELECT password FROM accountuser WHERE username = 'max.test123.de'
                     38 Quit       
                     39 Connect     mail@localhost on mail
                     39 Init DB     mail
                     39 Query       SELECT 0, password FROM accountuser WHERE username = 'max.test123.de'
                     39 Quit       
                     40 Connect     mail@localhost on mail
                     40 Query       SELECT domain_name FROM domain WHERE domain_name='test123.de'
                     41 Connect     mail@localhost on mail
                     41 Query       SELECT dest FROM virtual WHERE alias='test123.de' and status = '1'
                     42 Connect     mail@localhost on mail
                     42 Query       SELECT dest FROM virtual WHERE alias='max@test123.de' and status = '1'

Also versteh ich das richtig da cyradm nu "auxpro" bzw.. kein saslauth beherscht, wird der user cyrus in die sasldb geschrieben, da webcyradm alles
änderungen an postfächern etc, wohl über den user cyrus der sasldb und dem binary cyradm macht?? ☺

Hat SASLauthd eigentlcihen nen Cache.. Er fragt irgendwie immer nur einmal den account per mysql ab... erst bei neustart des saslauthd fragt er wieder die mysql datenbank nach den login informationen...??!!

otzenpunk Team-Icon

Avatar von otzenpunk

Anmeldungsdatum:
17. Oktober 2005

Beiträge: 8691

Wohnort: Hamburg-Altona

7lifes hat geschrieben:

Also versteh ich das richtig da cyradm nu "auxpro" bzw.. kein saslauth beherscht, wird der user cyrus in die sasldb geschrieben, da webcyradm alles änderungen an postfächern etc, wohl über den user cyrus der sasldb und dem binary cyradm macht?? ☺

Evtl. funktioniert cyradm --auth saslauthd, wenn ich die Manpage richtig interpretiere. Aber entweder wusste das der Autor des Hetzner-Howtos nicht, oder es funktioniert doch nicht so.
7lifes hat geschrieben:

Hat SASLauthd eigentlcihen nen Cache.. Er fragt irgendwie immer nur einmal den account per mysql ab... erst bei neustart des saslauthd fragt er wieder die mysql datenbank nach den login informationen...??!!

Hab's, wie gesagt, selber noch nie über MySQL laufen gehabt. Vielleicht cachet auch der mysqld?

Team-Lab22.de

(Themenstarter)
Avatar von Team-Lab22.de

Anmeldungsdatum:
9. Mai 2007

Beiträge: 620

Wohnort: Gurlach

vielen dank nochmal ☺

habs glaub ich nun verstanden.. und es rennt 😉
falls wer hilfe brauch postfix, mysql etc.. kann gerne fragen *g*

😀

Antworten |