Wahrscheinlich ist es die beste Methode, Postfix, Cyrus, MySQL und WebCyrAdm zu installieren und Schritt für Schritt einzubinden. Es muss jedoch sichergestellt werden, dass Postfix und Cyrus wirklich mit MySQL-Unterstützung kompiliert wurden.
Wenn das nicht der Fall ist, muss über PAM gegangen werden und das MySQL-Modul für die Dienste konfiguriert werden.
Prüfe doch mal, ob Postfix und Cyrus mit MySQL-Sasl-Unterstützung kompiliert wurden:
# ldd /usr/lib/postfix/smtpd linux-gate.so.1 => (0xffffe000) libssl.so.0.9.7 => /usr/lib/libssl.so.0.9.7 (0x40023000) libcrypto.so.0.9.7 => /usr/lib/libcrypto.so.0.9.7 (0x40054000) => libmysqlclient.so.12 => /usr/lib/libmysqlclient.so.12 (0x40145000) libz.so.1 => /lib/libz.so.1 (0x4017c000) libm.so.6 => /lib/tls/libm.so.6 (0x4018d000) => libsasl2.so.2 => /usr/lib/libsasl2.so.2 (0x401b0000) libpcre.so.0 => /usr/lib/libpcre.so.0 (0x401c5000) libdb-4.2.so => /usr/lib/tls/libdb-4.2.so (0x401d2000) libldap-2.2.so.7 => /usr/lib/libldap-2.2.so.7 (0x402a7000) liblber-2.2.so.7 => /usr/lib/liblber-2.2.so.7 (0x402da000) libnsl.so.1 => /lib/libnsl.so.1 (0x402e7000) libresolv.so.2 => /lib/libresolv.so.2 (0x402fd000) libc.so.6 => /lib/tls/libc.so.6 (0x40310000) libdl.so.2 => /lib/libdl.so.2 (0x40427000) libcrypt.so.1 => /lib/libcrypt.so.1 (0x4042b000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) libpthread.so.0 => /lib/tls/libpthread.so.0 (0x4045d000) Das sind meine Ausgaben: # ldd /usr/lib/postfix/smtpd libpostfix-master.so.1 => /usr/lib64/libpostfix-master.so.1 (0x00002b397c581000) libpostfix-tls.so.1 => /usr/lib64/libpostfix-tls.so.1 (0x00002b397c688000) libpostfix-dns.so.1 => /usr/lib64/libpostfix-dns.so.1 (0x00002b397c794000) libpostfix-global.so.1 => /usr/lib64/libpostfix-global.so.1 (0x00002b397c899000) libpostfix-util.so.1 => /usr/lib64/libpostfix-util.so.1 (0x00002b397c9c7000) libldap-2.3.so.0 => /usr/lib64/libldap-2.3.so.0 (0x00002b397caf4000) liblber-2.3.so.0 => /usr/lib64/liblber-2.3.so.0 (0x00002b397cc2f000) libpcre.so.0 => /usr/lib64/libpcre.so.0 (0x00002b397cd3c000) libsasl2.so.2 => /usr/lib64/libsasl2.so.2 (0x00002b397ce67000) libssl.so.0.9.8 => /usr/lib64/libssl.so.0.9.8 (0x00002b397cf80000) libcrypto.so.0.9.8 => /usr/lib64/libcrypto.so.0.9.8 (0x00002b397d0c6000) libdb-4.3.so => /usr/lib64/libdb-4.3.so (0x00002b397d329000) libnsl.so.1 => /lib64/libnsl.so.1 (0x00002b397d51e000) libresolv.so.2 => /lib64/libresolv.so.2 (0x00002b397d634000) libc.so.6 => /lib64/libc.so.6 (0x00002b397d748000) libdl.so.2 => /lib64/libdl.so.2 (0x00002b397d979000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00002b397da7d000) /lib64/ld-linux-x86-64.so.2 (0x00002b397c464000)
Demnach sieht es so aus, als ob die mysql-Unterstützung nicht dabei ist.
# ldd /usr/lib/cyrus/bin/imapd linux-gate.so.1 => (0xffffe000) => libsasl2.so.2 => /usr/lib/libsasl2.so.2 (0x40023000) libresolv.so.2 => /lib/libresolv.so.2 (0x40039000) libdb-4.2.so => /usr/lib/tls/libdb-4.2.so (0x4004c000) libssl.so.0.9.7 => /usr/lib/libssl.so.0.9.7 (0x40121000) libcrypto.so.0.9.7 => /usr/lib/libcrypto.so.0.9.7 (0x40151000) libwrap.so.0 => /lib/libwrap.so.0 (0x40242000) libnsl.so.1 => /lib/libnsl.so.1 (0x4024a000) libc.so.6 => /lib/tls/libc.so.6 (0x40261000) libdl.so.2 => /lib/libdl.so.2 (0x40377000) libpthread.so.0 => /lib/tls/libpthread.so.0 (0x4037b000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
# ldd /usr/lib/cyrus/bin/imapd libsasl2.so.2 => /usr/lib64/libsasl2.so.2 (0x00002b6d5e5d5000) libssl.so.0.9.8 => /usr/lib64/libssl.so.0.9.8 (0x00002b6d5e6ed000) libcrypto.so.0.9.8 => /usr/lib64/libcrypto.so.0.9.8 (0x00002b6d5e833000) libdb-4.3.so => /usr/lib64/libdb-4.3.so (0x00002b6d5ea97000) libwrap.so.0 => /lib64/libwrap.so.0 (0x00002b6d5ec8b000) libnsl.so.1 => /lib64/libnsl.so.1 (0x00002b6d5ed94000) libc.so.6 => /lib64/libc.so.6 (0x00002b6d5eeab000) libdl.so.2 => /lib64/libdl.so.2 (0x00002b6d5f0db000) libresolv.so.2 => /lib64/libresolv.so.2 (0x00002b6d5f1df000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00002b6d5f2f4000) /lib64/ld-linux-x86-64.so.2 (0x00002b6d5e4b8000)
Bei mir ist Postfix also bereit für MySQL und Sasl, aber Cyrus nur für Sasl.
Die MySQL-Unterstützung in Postfix existiert auch nur, weil ich sie einkompiliert habe, da unter meiner alten Suse 9.2 MySQL-Unterstützung noch rar ist. Bei Suse 10.x sieht das AFAIK besser aus. Da hat sich etwas getan.
Ein postconf -m besagt mir aber, dass mysql als Datenbank unterstützt wird: postconf -m btree cidr environ hash ldap mysql nis pcre proxy regexp sdbm static tcp unix
Könnte ich im Augenblick nicht sagen, ich habe bisher nicht mit WebCyrAdm gearbeitet. Ich glaube aber, dass es eine Konfig-Einstellung ist, ob das Passwort verschlüsselt ist oder nicht. Habe eben mal nachgesehen: ja, dies ist eine Einstellungssasche in der conf.php von web-cyradm
# Defines if passwords are encrypted or not. # Valid Values: # - plain 0 No encription is used # - crypt 1 (shadow compatible encription) # - mysql 2 (MySQL PASSWORD function) # - md5 3 (MD5 digest) $CRYPT = "crypt"; Ich würde ganz gerne allerdings die Passwörter in der Datenbank verschlüsselt stehen lassen. Die SQL-Abfragen sollte man entsprechend umschreiben können.
Ist halt ein komplexes Thema. Hier der Überblick:
Postfix kennt ...
Mein Ziel ist es etwa 10 Domains auf den Server zu transferieren. domain1 sollte 1 Postfach haben, etwa 10 Mailadressen sollen auf dieses Postfach zeigen, 3 Weiterleitungen der Mailadressen an externe Mailadressen (z.B. bei T-Online, Gmx, etc.) domain2 sollte 1 Postfach haben, 2 Mailadressen als Verweis darauf domain3, 1 Postfach, 1 Mailadresse zeigt darauf domain4, 3 Postfächer, ca. 40 Weiterleitungen der Mailadressen an externe Mailadressen (z.B. bei T-Online, Gmx, etc.) domain5-10 nur Weiterleitungen auf Postfach von domain1 Die Mailclients sind i.d.R. Windows-Clients (bis auf 2 Ausnahmen), Thunderbird, MS Outlook u.ä. Vorerst wird der Server nur unter einer IP-Adresse erreichbar sein.
smtpd_delay_reject = no
Das kann zu Problemen führen mit manchen Clients, die erwarten, dass die Verbindung erst nach der Angabe des Empfängers beurteilt wird und nicht vorher abgelehnt wird. Das habe ich nur zu Debugging-Zwecken eingeschaltet, um zu sehen, wo Fehler auftreten
Du kannst dafür postmap verwenden. Dafür muss die Konfiguration noch nicht einmal in Postfix aktiv sein. Du kannst vorher testen, ob die Konfiguration funktioniert und danach dann die Konfiguration einbinden.
# postmap -q user1@example.com mysql:/etc/postfix/relayrecipients.cf # user1@example.com
Wenn ein Ergebnis kommt, ist die Abfrage gültig.
# postmap -q user2@example.com mysql:/etc/postfix/relayrecipients.cf #
user2@example1.com existiert also nicht.
/etc/postfix/relay_recipients.cf: user=mysqluser password=mysqlpasswort dbname=mysqldatenbank hosts=localhost query = SELECT valid_users from relayrecipients where valid_users = '%s'
Hier braucht die Datenbank nur eine Spalte haben (valid_users). Habe nun die /etc/postfix/relay_recipients.cf angelegt und auch die Tabelle in der Datenbank mit 2 Testusern (test1, test2) angelegt. Das scheint zu klappen:
# postmap -q test1 mysql:/etc/postfix/relay_recipients.cf test1 # postmap -q test3 mysql:/etc/postfix/relay_recipients.cf #
Ich benenne den Thread mal um, mit saslauthd Logging hat das wirklich nichts mehr zu tun.
Prima, danke. Ingbert -- 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