PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Postfix/SASL: fatal: no SASL authentication mechanisms



Ikarisan
28.12.04, 15:57
Hi !

Ich weiß das dieses Thema vor einigen Monaten schon einmal aufgetaucht ist, aber ich komme trotzdem nicht wirklich weiter.

Ich würde gerne Postfix so konfigurieren, dass Mails an lokale IMAP Benutzer immer angenommen und Mails an externe Adressen nur nach einer Authentifizierung relayed werden. (unter Debian/sarge)

Dazu soll Postfix halt über SASL2 => pam die mySQL Datenbank mit den Benutzern für die Autentifizierung verwenden. Aber was bei Cyrus so schön funktioniert klappt bei Postfix irgendwie überhaupt nicht. :-(

Sobald ich eine Mail über den Server senden will füllt sich das syslog mit:


Dec 28 16:02:24 peter postfix/smtpd[9379]: fatal: no SASL authentication mechanisms
Dec 28 16:02:24 peter postfix/master[9370]: warning: process /usr/lib/postfix/smtpd pid 9379 exit status 1
Dec 28 16:02:24 peter postfix/master[9370]: warning: /usr/lib/postfix/smtpd: bad command startup -- throttling

Und in der auth.log steht:



Dec 28 16:49:20 peter postfix/smtpd[10692]: sql_select option missing
Dec 28 16:49:20 peter postfix/smtpd[10692]: auxpropfunc error no mechanism available
Dec 28 16:49:20 peter postfix/smtpd[10692]: _sasl_plugin_load failed on sasl_auxprop_plug_init for plugin: sql

Meine /etc/postfix/sasl/smtpd.conf sieht so aus:


pwcheck_method: saslauthd
mech_list: PLAIN LOGIN


Ich habe auch schon einmal verschiedene auxprop Methoden probiert.
Z.B.:

pwcheck_method: auxprop
auxprop_plugin: sql

Eine /etc/pam.d/smtp habe ich auch angelegt in der über

auth sufficient pam_mysql.so .....
account required pam_mysql.so ....

die mySQL Datenbank abgefragt werden sollte.

Wenn ich die smtpd.conf Datei lösche darf ich immerhin im Mailclient mein Passwort angeben und im syslog steht dann:



Dec 28 16:17:02 peter postfix/smtpd[9740]: warning: SASL authentication failure: no secret in database
Dec 28 16:17:02 peter postfix/smtpd[9740]: warning: p5084A13F.dip0.t-ipconnect.de[80.132.161.63]: SASL CRAM-MD5 authentication failed

Wie geht das denn jetzt, wenn Postfix über sasl2 ==> pam eine mysql Datenbank abfragen soll? Ich finde dazu leider nichts eindeutiges im Netz. Jeder macht es anders und nichts davon funktioniert. Vor allem da die meisten Anleitungen auf alten Versionen von Postfix und sasl1 aufbauen, bei denen die ganzen sasl Parameter wieder komplett anders zu sein scheinen. :-(

===
Postfix, Postfix-tls, Postfix-mysql: 2.1.4-5
sasl2: 2.1.19-1.5
===

Gruß
Thorsten

Tomek
28.12.04, 16:13
Du willst also, dass sich die User über die MySQL-Datenbank authentifizieren? Dann fehlt dir einiges:

1) installiere das Paket libsasl2-modules-sql
2) die Datei /etc/pam.d/smtp ist in diesem Fall nicht nötig
3) die Datei /etc/postfix/sasl/smtpd.conf sollte ungefähr so aussehen:

pwcheck_method: auxprop
auxprop_plugin: sql
mech_list: plain login cram-md5 digest-md5
sql_engine: mysql
sql_hostnames: localhost
sql_user: dbuser_ändern
sql_passwd: dbpass_ändern
sql_database: db_ändern
sql_select: select password from mail_users where email='%u@%r'
Es finden sich hierzu aber auch einige Dokumentationen bei Google, z.B. diese hier:
http://workaround.org/articles/ispmail-sarge/

Ikarisan
28.12.04, 16:33
Hi!

Danke für die Hilfe !!

Das libsasl2-modules-sql Modul habe ich schon lange drin.
Nur habe ich das, zumindest unter Cyrus, nicht wirklich
ans laufen bekommen. Aber ich probier das auf jeden
Fall einmal aus. Ist ja viel besser als dieser pam Müll.

Seit 10 Sekunden läuft es aber auch über pam.
Und was war der Fehler?
Ganz einfach. In meiner main.conf stand aus irgendeinem
Grund

smtpd_sasl_security_options = noanonymous, noplaintext

Habe das noplaintext weggemacht und jetzt geht es erst mal. :-)

Sollte ich heute Abend noch die Zeit finden stelle ich das aber
alles auf auxprop um.

Dann muss ich nur noch hinbekommen das meine Mails nicht mehr
von peter0001@server kommen sondern von benutzername@server.

Gruß
Thorsten

Ikarisan
28.12.04, 16:55
Mmm, so einfach scheint es nicht zu gehen.
Bei mir steht jetzt:

pwcheck_method: auxprop
auxprop_plugin: sql
mech_list: plain login cram-md5 digest-md5
sql_engine: mysql
sql_hostnames: localhost
sql_user: mail
sql_passwd: ******
sql_database: mail
sql_select: select password from accountuser where username='%u'

Aber die Passwörter in der Tabelle sind alle mit crypt verschlüsselt.
Kann ich dem auxprop Plugin irgendwie sagen es soll crypt
verwenden? Also irgendwie so

sql_passwd_hash: crypt

??

Gruß
Thorsten

Terran Marine
28.12.04, 22:42
Aber die Passwörter in der Tabelle sind alle mit crypt verschlüsselt.
Kann ich dem auxprop Plugin irgendwie sagen es soll crypt
verwenden? Also irgendwie so


Standardmässig nicht. siehe hier :

http://brunny.com/content/view/12/0/

Gruß
Terran

Ikarisan
29.12.04, 07:19
Oh, genau das hatte ich schon befürchtet. :-(

Kann ich denn bei Debian jetzt einfach die Sourcen con cyrus-sasl runterladen und über das bestehende System mit 'make install' installieren?

Oder reicht es aus wenn ich ein einfaches 'make' ausführe und dann nur die benötigten Dateien überschreibe, welche auch immer das sind?
Und beim nächsten 'apt-get upgrade' alles wieder von vorne? :-(

Der Patch sollte offiziell in das Paket aufgenommen werden.
Genuso wie der Patch für Cyrus, damit der automatisch die Unterordner (Sent, Trash usw.) anlegt.


Gruß
Thorsten

Terran Marine
29.12.04, 08:50
Oh, genau das hatte ich schon befürchtet. :-(

Kann ich denn bei Debian jetzt einfach die Sourcen con cyrus-sasl runterladen und über das bestehende System mit 'make install' installieren?

Oder reicht es aus wenn ich ein einfaches 'make' ausführe und dann nur die benötigten Dateien überschreibe, welche auch immer das sind?
Und beim nächsten 'apt-get upgrade' alles wieder von vorne? :-(


Standardmässig müssen Programme ja per ./configure && make && make install kompiliert und installiert werden, denke auch, das dies bei cyrus-sasl genauso ist.

Richtig, eine Vermischung der standardmässigen Installationen per Paketmanager und selbstkompilierten Programmen kann bei Updates kritisch werden, bei einer Bibliothek wie SASL (ist nicht wirklich eine Bibliothek, ich weiß), würde ich diese Vermischung nicht machen, davon kann zuviel abhängen.




Der Patch sollte offiziell in das Paket aufgenommen werden.
Genuso wie der Patch für Cyrus, damit der automatisch die Unterordner (Sent, Trash usw.) anlegt.


Richtig, aber sag das nicht uns, sondern den Cyrus-SASL Entwicklern ;)

Gruß
Terran