PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Saslauth problem



Halaster
06.04.09, 14:10
Hallo.

Ich habe auf meinem Root-Server (Opensuse 11.1) einen IMAP-Server eingerichtet, und zwar Cyrus mit postfix. Der läuft, soweit ich das beurteilen kann (sprich: imtest gibt OK zurück). Ich kann mich auch als user "cyrus" am cyradm anmelden und habe auch ein paar mailboxen angelegt. Zu diesen Mailboxen existierten im System Nutzer, diese haben ein Passwort und einen Eintrag in der sasldb. Wenn ich nun versuche, mich mit einem Mailclient an diesem Server anzumelden, gibt der einen Fehler zurück. Und siehe da testsaslauthd gibt für alle User außer "cyrus" ebenfalls "NO: authentication failed" zurück. Woran kann das liegen? sasldblistusers2 gibt alle User zurück. In Yast habe ich die User auch. Nur anmelden können sie sich nicht.

Meine /etc/sysconfig/saslauthd:

## Path: System/Security/SASL
## Type: list(getpwent,kerberos5,pam,rimap,shadow,ldap)
## Default: pam
## ServiceRestart: saslauthd
#
# Authentication mechanism to use by saslauthd.
# See man 8 saslauthd for available mechanisms.
#
SASLAUTHD_AUTH=pam
## Path: System/Security/SASL
## Type: integer(0:)
## Default: 5
## ServiceRestart: saslauthd
#
# Number of processes that saslauthd should fork to responding to
# authentication queries. A value of zero will indicate that saslauthd
# should fork an individual process for each connection.
#
SASLAUTHD_THREADS=5

## Path: System/Security/SASL
## Type: string
## Default: ""
## ServiceRestart: saslauthd
#
# Additional parameters to use by saslauthd.
# See the saslauthd(8) manpage for available parameters.
#
SASLAUTHD_PARAMS=""

die /etc/imapd.conf:

configdirectory: /var/lib/imap
partition-default: /var/spool/imap
sievedir: /var/lib/sieve
admins: cyrus
sasl_mech_list: plain
allowanonymouslogin: no
allowplaintext: yes
autocreatequota: 10000
reject8bit: no
quotawarn: 90
timeout: 30
poptimeout: 10
dracinterval: 0
drachost: localhost
sasl_pwcheck_method: saslauthd
lmtp_overquota_perm_failure: no
lmtp_downcase_rcpt: yes
unixhierarchysep: 1
#
# if you want TLS, you have to generate certificates and keys
#
#tls_cert_file: /usr/ssl/certs/cert.pem
#tls_key_file: /usr/ssl/certs/skey.pem
#tls_ca_file: /usr/ssl/CA/CAcert.pem
#tls_ca_path: /usr/ssl/CA

und zu guter Letzt die /etc/cyrus.conf:

START {
# do not delete this entry!
recover cmd="ctl_cyrusdb -r"

# this is only necessary if using idled for IMAP IDLE
idled cmd="idled"
}

# UNIX sockets start with a slash and are put into /var/lib/imap/socket
SERVICES {
# add or remove based on preferences
imap cmd="imapd" listen="imap" prefork=0
# imaps cmd="imapd -s" listen="imaps" prefork=0
pop3 cmd="pop3d" listen="pop3" prefork=0
# pop3s cmd="pop3d -s" listen="pop3s" prefork=0
sieve cmd="timsieved" listen="sieve" prefork=0

# at least one LMTP is required for delivery
# lmtp cmd="lmtpd" listen="lmtp" prefork=0
lmtpunix cmd="lmtpd" listen="/var/lib/imap/socket/lmtp" prefork=0

# this is only necessary if using notifications
# notify cmd="notifyd" listen="/var/lib/imap/socket/notify" proto="udp" prefork=1
}

EVENTS {
# this is required
checkpoint cmd="ctl_cyrusdb -c" period=30

# this is only necessary if using duplicate delivery suppression
delprune cmd="cyr_expire -E 3" at=0400

# this is only necessary if caching TLS sessions
tlsprune cmd="tls_prune" at=0400

# Uncomment the next entry, if you want to automatically remove
# old messages of EVERY user.
# This example calls ipurge every 60 minutes and ipurge will delete
# ALL messages older then 30 days.
# enter 'man 8 ipurge' for more details

# cleanup cmd="ipurge -d 30 -f" period=60


Ich habe den Verdacht, daß es irgendwas total dämliches ist. Ich blicke einfach bei dieser ganzen Geschichte nicht recht durch, die Lernkurve ist doch recht steil, und ich habe jetzt schon einige Dutzend Howtos und Tutorials durch und mir schwirrt der Kopf. Wäre also dankbar für Hilfe.

CU,
André

hessijens
07.04.09, 11:11
Du vermischt cyrus-sasl und saslauthd

Du verwendest für Cyrus imap saslauthd -> /etc/imapd.conf.

sasl_pwcheck_method: saslauthd

Den saslauthd hast Du gesagt er soll pam verwenden -> /etc/sysconfig/saslauthd

SASLAUTHD_AUTH=pam

Somit hat das alles nichts mehr mit cyrus-sasl zu tun. Deine sasldb2 ist somit außen vor. cyrus-sasl ist ein Autorisierungsprotokol mit dem Backend sasldb2. Saslauthd ist ein Autorisierungs Hilfprogramm mit ebenfalls div. Backends.

Wenn sich die Benutzen bei gegebener Konfiguration nicht anmelden können, können sich diese auch nicht am Maiserver tun.

Wenn Du für das Mailsystem die sasldb2 nutzen möchtes sollte in Deiner /etc/imapd.conf folgendes stehen.

sasl_pwcheck_method: auxprop
sasl_auxprop_plugin: sasldb

Aber bitte nicht blind abtippen. Die Bezeichnung ändern sich je nach Cyrus Version. Kontaktiere daher bitte voher unbedingt die Manpage.

EDIT:
Zum Nachlesen hier der passende Link:
http://www.lichteblau.com/ldapvi/cyrus-sasl/sysadmin.html

Halaster
08.04.09, 08:11
Danke für den Hinweis. Das hat mir etwas Klarheit verschafft und ich konnte den Fehler finden. Pam klappt nämlich nur, wenn der User sich auch am System anmelden kann. Und da YaST das aus irgendeinem Grunde bei den Nutzern, die ich angelegt hatte, "Login disabled" auf "ja" gesetzt hatte, konnten die sich nicht anmelden, also auch nicht SASL-authentifizieren. Der bei der Cyrus-Installation angelegte Nutzer dagegen durfte das. Einfach Anmeldung erlaubt und es ging auch für die anderen Nutzer.

Nun habe ich das nächste Problem, nämlich das Postfix einen Relay Access Denied Fehler zurückschickt. Dazu mach ich aber wohl besser einen neuen Thread auf....

CU,
André