PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PAM Modul für vBulletin Passwortauthentifizierung


Zombie79
20.01.2006, 19:57
Hallo,

ich stelle für die Mods unseres Forums zur Zeit E-Mail Adressen zur Verfügung, die aber nur als Weiterleitung verwendet werden können, um unkontrolliertes Relaying über den Mailserver zu verhindern.

Meine Idee, um vollwertige E-Mail Accounts zur Verfügung zu stellen und den Konfigurationsoverhead in Grenzen zu halten, ist nun folgende:
Die Clients authentifizieren sich am Postfix Mailserver per SMTP-AUTH. Postfix führt SMTP-AUTH über SASL durch und der saslauthd authentifiziert den User über PAM. Jetzt kommt der springende Punkt: Mir fehlt noch ein Modul für PAM, mit dem ich die Zugangsdaten direkt mit dem Passwort in der vBulletin DB gegenchecken kann. Bevor ich mich in die Materie einarbeite und ein entsprechendes Modul selbst schreibe, frage ich euch, ob jemand so etwas schonmal gemacht hat oder vielleicht noch eine andere Lösung kennt.

Die Authentifizierung der vBulletin User per PAM würde ich dann auch für FTP-Accounts verwenden wollen. Die sich damit bietenden Möglichkeiten sind IMO recht interessant.

Gruß
Zombie

dlutt
20.01.2006, 21:09
Mir fehlt noch ein Modul für PAM, mit dem ich die Zugangsdaten direkt mit dem Passwort in der vBulletin DB gegenchecken kann. Bevor ich mich in die Materie einarbeite und ein entsprechendes Modul selbst schreibe, frage ich euch, ob jemand so etwas schonmal gemacht hat oder vielleicht noch eine andere Lösung kennt.

Die Authentifizierung der vBulletin User per PAM würde ich dann auch für FTP-Accounts verwenden wollen. Die sich damit bietenden Möglichkeiten sind IMO recht interessant.


Schonmal pam-mysql (http://pam-mysql.sourceforge.net/) versucht? Unterstützt password, crypt, md5 etc.

Über pam-mysql lässt sich die Authentifizierung von Benutzern bequem über eine MySQL Datenbank erledigen. Also FTP wäre kein Problem und mit der User-Table von vBulletin sollte das auch funktionieren.

Daniel

Zombie79
20.01.2006, 23:00
[...] und mit der User-Table von vBulletin sollte das auch funktionieren. [...]
Da bin ich mir nicht so sicher, denn vBulletin benutzt keine Standardfunktion zum Speichern des Passworts in der DB. Dort wird ein MD5-Hashwert abgelegt, der aus dem MD5-Hashwert des Passworts plus dem Salt-Wert des Users zusammengesetzt wird. Das unterstützt pam_mysql IMO nicht. Oder irre ich mich und du kennst eine Möglichkeit, das per pam_mysql zu realisieren?

Das Passwort wird so in der DB gespeichert:
md5(md5($password) . $salt)

/edit1:
Wenn ich das Ganze richtig sehe, benötigt pam_mysql das Passwort in entschlüsselter Form, oder als MD5(), ENCRYPT() bzw. PASSWORD() Hashwert. Diesen Wert kann ich der vBulletin DB aber nicht mit einer SQL-Abfrage entlocken. Vielleicht mache ich aber auch nur noch einen Denkfehler...?!

/edit2:
pam_mysql bekommt das Passwort im Plaintext geliefert und kann es nur per MD5(), ENCRYPT() oder PASSWORD() übersetzen. Er müsste aber MD5(CONCAT(MD5(%p), user.salt)) mit user.password vergleichen, damit das Ergebnis positiv wird. Das lässt sich IMO mit pam_mysql nicht umsetzen, denn der Rückgabewert der SQL-Abfrage muss entweder das plaintext Passwort bzw. ein Hashwert per MD5(), ENCRYPT() oder PASSWORD() sein.

/edit3:
Ich habe pam_mysql jetzt als Grundlage für ein eigenes Modul genommen.

Danke für den Tipp. Problem gelöst. :)
Wenn Interesse besteht, veröffentliche ich den Quellcode und die Konfiguration des Mailservers.