Am Thursday 07 December 2006 09:34 schrieb Sandy Drobic:
ldd /usr/lib/cyrus/bin/imapd | grep libsasl2
libsasl2.so.2 => /usr/lib64/libsasl2.so.2 (0x00002acd9cab1000) sieht ganz gut aus...
Nur, wenn saslauthd auf PAM zugreift und unter PAM das SQL-Plugin konfiguriert wird, kann man in Postfix/Cyrus sagen, dass über Saslauthd authentifiziert werden soll.
So hatte ich mir das vorgestellt.
Dann greift saslauthd auf PAM zu und das SQL-Modul muss entsprechend konfiguriert werden, damit es auf die richtige Benutzerdatenbank zugreift und dafür auch den erlaubten User verwendet.
So sieht das bei mir aus. Ich hatte das auch schon über den saslauthd probiert (und nicht über auxprop) cat /etc/pam.d/smtp auth sufficient pam_mysql.so user=mail passwd=MAILPASSWORD host=localhost \ db=mail table=accountuser usercolumn=username \ passwdcolumn=password crypt=1 logtable=log \ logmsgcolumn=msg logusercolumn=user loghostcolumn=host \ logpidcolumn=pid logtimecolumn=time account required pam_mysql.so user=mail passwd=MAILPASSWAORD host=localhost \ db=mail table=accountuser usercolumn=username \ passwdcolumn=password crypt=1 logtable=log \ logmsgcolumn=msg logusercolumn=user loghostcolumn=host \ logpidcolumn=pid logtimecolumn=time
Müssen hier eigentlich die Backslashes weg?
Wenn ich das richtig sehe, benutzt du einen Patch für Cyrus SASL, um die Passwörter verschlüsselt in der SQL-Datenbank abzulegen.
Woran siehst Du das? Dieser Patch wird für das sql-Auxprop Plugin benötigt, nicht für saslauthd/pam/pam_mysql.
Damit wird jedoch wieder die Möglichkeit versperrt, Shared-Secret-Mechanismen wie Digest-MD5 und Cram-MD5 zu verwenden, es bleiben also tatsächlich nur PLAIN und LOGIN als Mechanismen übrig.
Jetzt hoffe ich mal, dass die Kompilation von Cyrus Sasl sauber funktioniert hat (inklusive des Patches).
Nur zur Information: sollten Sicherheitslücken auftreten in Cyrus/Cyrus Sasl, wirst du aus den Quellen neu kompilieren müssen. (^-^)
Ob die PAM-Konfiguration richtig ist, kann ich nicht sagen, ich habe das bisher nicht über PAM gemacht.
Gibt es die entsprechenden User auch in passwd?
Setze mal deine Daten ein in /usr/lib64/sasl2/smtpd.conf: pwcheck_method: auxprop auxprop_plugin: sql mech_list: plain login cram-md5 digest-md5 sql_engine: mysql sql_hostnames: localhost sql_user: mysql-user sql_passwd: mysql-password sql_database: mysql-database sql_statement: select Password from userdatabase where EmailAddress='%s'
%s ist der eingegebene Suchstring. Einzelheiten kannst du nachlesen unter "man 5 mysql_table". Dort stehen die verschiedenen Suchstrings beschrieben.
Hier müssten wohl einge Tabellen miteinander verknüpft werden, da ich die Datenbankstruktur von web-cyradm benutzt habe: # Database : `mail` # -------------------------------------------------------- # Table structure for table `accountuser` #
CREATE TABLE accountuser ( username varchar(255) binary NOT NULL default '', password varchar(30) binary NOT NULL default '', prefix varchar(50) NOT NULL default '', domain_name varchar(255) NOT NULL default '', UNIQUE KEY username (username) ) TYPE=MyISAM;
# --------------------------------------------------------
Die Passwörter liegen also in accountuser und sind mit ENCRYPT einwegverschlüsselt.
Habe noch eine Verständnisfrage: Der %s Suchstring sollte doch nicht die Emailadresse sein oder?
%s ist die Eingabe, die in die Abfrage einfließt. Du kannst dies trennen mit %u (localpart) und %d (domain).
sql_statement: select password from accountuser where username = '%u' and domain_name = '%d'
Dann wird usera@example.com aufgeteilt in:
select password from accountuser where username = usera and domain_name = example.com
Hmm, es gibt im sql Auxprop Plugin von Cyrus-SASL lediglich 4 Variablen. %u Username %r Realm %v Meist "userPassword" %p Password Die letzten beiden werden nur zum Ändern von Passwörtern gebraucht. Es gibt kein %s oder %d. -- Andreas -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org