Authentifizierung am Cyrus IMAP per Sasl-Datenbank, wie???

Binfort

Well-Known Member
Hallo,

ich hab einen Cyrus - IMAP Server am laufen.
Um auf die Postfächer zuzugreifen, muß für den jeweiligen Postfachinhaber ein Nutzeraccount in der master.passwd existieren. Grund dafür ist der Eintrag: saslauthd_flags="-a getpwent" in meiner rc.conf.

Jetzt möchte ich aber das die Nutzer anhand der Sasldatenbank überprüft werden, wie muß der obige Eintrag abgeändert werden???

PS: mit saslpasswd2 -c <userxxx> wurden schon Nutzer angelegt
 
Danke für die schnelle Antwort,

mein IMAP ist ja schon konfiguriert und läuft prima, nur muß jeder Mailboxinhaber im als BSD User angelegt sein, deswegen möchte ich ja die Sasldatenbank nutzen...

ich hab in Deinem Tip den Eintrag: sasl_pwcheck_method: saslauthd für die imapd.conf gefunden, da steht in meiner noch was anderes (kann leider erst morgen sagen was genau.....)

weißt Du manchmal ob es dann ausreicht den saslauthd_enable="YES" Eintrag in der rc.conf zu lassen oder ob mein anderer Eintrag genauso angepasst werden muss... denn über das autom. Starten ist wenig zu lesen gewesen
 
j_t schrieb:
[...]
Gute Doku zum Thema gibt es zum Beispiel hier: http://asg.web.cmu.edu/cyrus/download/imapd/

Was das Thema SASL angeht:
Etwas schlechteres an Dokumentation ist kaum zu finden.

Patrick Koetter bezeichnet die Dokumentation zu SASL in seinem Vortrag:
http://www.state-of-mind.de/vortraege/cyrus_sasl_vortrag_mailserver-konferenz.pdf
als "verantwortungslos"

Wenn man ein plaintext login ueber ssl gegen die sasldb machen will,
braucht man eine Datei /usr/lib/sasl2/saslpasswd.conf, die ungefaehr so aussieht:

pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: PLAIN LOGIN
log_level: 3

Es koennte sein, dass die ersten 3 Zeilen in abgewandelter Form auch noch einmal in die /etc/imapd.conf eingetragen werden muessen:

sasl_pwcheck_method: auxprop
sasl_auxprop_plugin: sasldb
sasl_mech_list: PLAIN LOGIN

Der saslauthd wird dann in der Tat nicht mehr benoetigt und es muss auch kein
Postfachinhaber mehr einen Systemaccount in der /etc/master.passwd besitzen.
 
Ich halte es eher fuer verantwortungslos einen Mailserver zu betreiben, ohne die Doku des Herstellers zu kennen. Einen Vortrag ueber die Materie betrachte ich hoechstens als Zuckerl. "auxprop_plugin: sasldb" ist uebrigens default.
 
ich hab den Eintrag: sasl_pwcheck_method: auxprop in der imapd.conf angepasst

sasl_auxprop_plugin: sasldb mußte ich zusätzlich eintragen und sasl_mech_list: PLAIN LOGIN war noch von meiner alten saslauthd Geschichte vorhanden

die "/usr/lib/sasl2/saslpasswd.conf" habe ich nicht erstellt, zum einen weil es in meinem System diesen Ordner nicht gibt, der naheliegenste wäre /usr/local/lib/sasl2" und die saslpasswd.conf müßte ich dann dort erstellen - aber im Vortrag von Koetter (welcher Gott sei Dank in Deutsch ist) stand das die .conf Datei nach der Anwendung benannt sein muß und das wäre bei mir dann ja "saslpasswd2.conf", oder???

anschließend hab ich den Saslauthd über das Script in /usr/local/etc/rc.d gestoppt und den Eintrag saslauthd_enable="NO" gesetzt

leider funktioniert das Ganze im Moment noch nicht so wie gewünscht

den User hab ich mit saslpasswd2 -c angelegt, muß da noch der Programmname mit übergeben werden?
 
Binfort schrieb:
[...]

die "/usr/lib/sasl2/saslpasswd.conf" habe ich nicht erstellt, zum einen weil es in meinem System diesen Ordner nicht gibt, der naheliegenste wäre /usr/local/lib/sasl2" und die saslpasswd.conf müßte ich dann dort erstellen - aber im Vortrag von Koetter (welcher Gott sei Dank in Deutsch ist) stand das die .conf Datei nach der Anwendung benannt sein muß und das wäre bei mir dann ja "saslpasswd2.conf", oder???

[...]

den User hab ich mit saslpasswd2 -c angelegt, muß da noch der Programmname mit übergeben werden?


cd /usr/lib
ln -s /usr/local/lib/sasl2 sasl2

Probier' beide - saslpasswd.conf und saslpasswd2.conf aus.

Um einen User in der sasldb anzulegen reicht:
cd /usr/local/sbin
./saslpasswd2 $username
voellig aus.

Unbedingt logfiles
/var/log/imapd.log und
/var/log/sasl.log pruefen.

Falls nicht vorhanden in /etc/syslog.conf folgendermassen anlegen:
local6.debug /var/log/imapd.log
auth.debug /var/log/sasl.log
 
@Walt: okay das hab ich alles erledigt wenn ich "imtest -u Username und anschließend das Kennwort übergebe, erhalte ich folgendes in der "imapd.log":
Code:
Apr 20 18:06:41 www imap[53837]: accepted connection
Apr 20 18:06:44 www imap[53837]: badlogin: [i]Servername[/i] [192.168.10.1] plaintext root SASL(-13): 
user not found: checkpass failed
und folgendes in der "sasl.log"
Code:
Apr 20 18:06:44 www imap[53837]: no user in db
die "imtest" Meldung sieht folgendermaßen aus:
Code:
WARNING: no hostname supplied, assuming localhost
S: * OK [i]Jail-Name[/i] Cyrus IMAP4 v2.2.13 server ready C: C01 CAPABILITY S: * CAPABILITY IMAP4 IMAP4rev1 ACL QUOTA
LITERAL+ MAILBOX-REFERRALS NAMESPACE UIDPLUS ID NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND BINARY SORT
THREAD=ORDEREDSUBJECT THREAD=REFERENCES ANNOTATEMORE IDLE
S: C01 OK Completed
Please enter your password:
C: L01 LOGIN root {8}
S: + go ahead C: <omitted>
S: L01 NO Login failed: user not found Authentication failed. generic failure Security strength factor: 0
der Auszug aus "sasldblistusers":
Code:
user@[i]Jail-Name[/i]: userPassword
Ich hab mich genau an Deine Anweisungen gehalten. Kann es sein, das die Probleme auftreten weil ich das Ganze in einem Jail, welcher eine andere Bezeichnung als der Host hat, konfigurieren möchte?
 
Zuletzt bearbeitet:
Binfort schrieb:
[...]
Kann es sein, das die Probleme auftreten weil ich das Ganze in einem Jail, welcher eine andere Bezeichnung als der Host hat, konfigurieren möchte?

Ja, selbstverstaendlich!
Wie kannst Du so eine wichtige Information unerwaehnt lassen ?

Wenn Du in Deinem Jail keine /etc/sasldb hast, kann er auch keine User finden.
 
die Datei /etc/sasldb hab ich wirklich nicht, allerdings in /usr/local/etc gibts eine sasldb2.db

ich hab die Konfiguration meines IMAP Servers vorher in einer lokalen Testumgebung durchgespielt, allerdings mit saslauthd Authentifizierung, ich versuch jetzt mal dort die Authentifizierung auf auxprop umzustellen
 
Zuletzt bearbeitet:
ich hab in der lokalen Testumgebung nur die imapd.conf und die rc.conf angepasst und es funktioniert

folgende Änderungen:

in imapd.conf:

sasl_pwcheck_method: auxprop
sasl_auxprop_plugin: sasldb

der Eintrag "sasl_mech_list: plain login" war vorhanden und wurd nicht verändert,

dann noch in der rc.conf den saslauthd auf "NO" und beendet, den Cyrus/Imap neugestartet

mit "saslpasswd2 -c cyrus" angelegt und schon konnte ich lokal mit "cyradm -u cyrus localhost" meinen IMAP administrieren

Vorher wurde per saslauthd die master.passwd abgefragt jetzt halt die sasldb...
im Jail hat das natürlich so nicht hingehauen - ich nehme jetzt mal schrittweise die Konfigurationen zurück und sehe dann weiter

Update: Mittlerweile habe ich die Konfiguration ins Jail übertragen, der Cyrus lässt sich jetzt auch per Sasldb Authentifizierung administrieren - allerdings nur von einem Remotesystem auf welchem das Cyradm auch installiert ist - die User existieren aber in der Sasldb des Jails, mit dem Ergebnis kann ich ganz gut leben...
 
Zuletzt bearbeitet:
Zurück
Oben