rocknrolla
Goto Top

Mailserver - Postfix mit Courier und mySQL

Hilfe, mein Benutzer kann sich nicht einloggen

Tach allerseits.

Ich habe ein Mailproblem auf einem debian server.
- debian squeeze
- postfix
- courier imap

Ich habe 2 Domänen und habe den Server ganz frisch aufgesetzt, und da er vorher mit suse lief musste ich ihn komplett neu einrichten.

Für beide domänen gibt es Emails welche ich gerne verwenden möchte, aber ohne die lokalen Benutzer anzulegen. Daher habe ich nach den folgenden zwei Anleitungen gearbeitet:
1. http://workaround.org/ispmail/squeeze/database-setup
2. http://workaround.org/ispmail/squeeze/postfix-database-configuration

Ich habe die domäne "exampel.de" angelegt und auch den benutzer "tom@exampel.de" erstellt so wie das in der ersten Anleitung unter "TEST DATA" gezeigt wird.

Aber nachdem ich mit allen fertig war konnte ich mich nicht einloggen.

Die Ausgabe der logs ergibt folgendes:
Jun  6 19:01:26 carnival2 imapd: LOGIN FAILED, method=PLAIN, ip=[::ffff:xx.xx.xx.xx.xx]
Jun  6 19:01:31 carnival2 imapd: LOGIN FAILED, user=tom@exampel.de, ip=[::ffff:xx.xx.xx.xx.xx]
Jun  6 19:01:45 carnival2 imapd: LOGIN FAILED, method=PLAIN, ip=[::ffff:xx.xx.xx.xx.xx]
Jun  6 19:01:50 carnival2 imapd: LOGIN FAILED, user=tom@exampel.de, ip=[::ffff:xx.xx.xx.xx.xx]

Also wird das pw abgewiesen.

Der obigen Anleitung folgend - ist das passwort "summersun" und der benutzername "tom@exampel.de" die richtige Kombination oder sollte ich einen anderen benutzernamen wählen?
Ich versuche mit Thunderbird reinzukommen.

Content-Key: 167560

Url: https://administrator.de/contentid/167560

Printed on: April 24, 2024 at 09:04 o'clock

Member: Hitman4021
Hitman4021 Jun 15, 2011 at 20:18:10 (UTC)
Goto Top
Zitat von @Rocknrolla:
Tach allerseits.

Ich habe ein Mailproblem auf einem debian server.
- debian squeeze
- postfix
- courier imap
Hmm ist courier nicht etwas eingeschränkt habe mit Dovecot bessere Erfahrungen aber ist ws geschmakssahe


Für beide domänen gibt es Emails welche ich gerne verwenden möchte, aber ohne die lokalen Benutzer anzulegen. Daher
habe ich nach den folgenden zwei Anleitungen gearbeitet:
1. http://workaround.org/ispmail/squeeze/database-setup
2. http://workaround.org/ispmail/squeeze/postfix-database-configuration
Poste bitte deine main.conf

> Jun  6 19:01:26 carnival2 imapd: LOGIN FAILED, method=PLAIN, ip=[::ffff:xx.xx.xx.xx.xx]
> Jun  6 19:01:31 carnival2 imapd: LOGIN FAILED, user=tom@exampel.de, ip=[::ffff:xx.xx.xx.xx.xx]
> Jun  6 19:01:45 carnival2 imapd: LOGIN FAILED, method=PLAIN, ip=[::ffff:xx.xx.xx.xx.xx]
> Jun  6 19:01:50 carnival2 imapd: LOGIN FAILED, user=tom@exampel.de, ip=[::ffff:xx.xx.xx.xx.xx]
> 

Also wird das pw abgewiesen.
Das muss aber nicht heißen das du das Passwort oder den Benutzer falsch eingibst
Zumindest bei Dovecot ist Standardmäßig die "Plain" Login Methode gesperrt.
Ich kenne Courier zwar zu wenig aber soweit ich mich damit auskenne, Authentifizierst du sowol Postfix (SMTP) als auch Courier (IMAP) User am Backend von Courier welche dies mit der Datenbank synchronisiert.
Die Postfix MySql Anbindung ist rein für die Abfrage der Domains, Email Konten, Alias jedoch nicht für die Authentifizierung.

Wenn du willst kann ich dir eine Deutsche Schritt für Schritt Anleitung für Postfix, Dovecot, MySQL, Postfixadmin + kleinigkeiten zukommen lassen

mfg Hitman
Member: Rocknrolla
Rocknrolla Jun 16, 2011 at 13:00:11 (UTC)
Goto Top
Hi, hier ist die main.cf
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)



readme_directory = /usr/share/doc/postfix

smtpd_tls_cert_file=/etc/ssl/certs/postfix.pem
smtpd_tls_key_file=/etc/ssl/private/postfix.pem
smtpd_use_security_level = may
smtp_tls_security_level = may
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s

tls_random_source = dev:/dev/urandom
tls_random_prng_update_period = 3600s

mydomain = example1.com
myhostname = carnival2.example1.com
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_base = /home/mailusers/Maildir
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_aliases_maps = hash:/etc/postfix/virtual_mailbox_aliases
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf
alias_maps = hash:/etc/aliases
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
alias_database = hash:/etc/aliases
myorigin = $mydomain
mydestination = $myhostname, localhost
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

carnival2 = carnival2.example1.com
relayhost =
relay_domains = example4.com
html_directory = /usr/share/doc/postfix/html

smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes

smtpd_recipient_restrictions =
        reject_non_fqdn_sender,
        reject_non_fqdn_recipient,
        reject_unknown_sender_domain,
        reject_unknown_recipient_domain,
        permit_sasl_authenticated,
        permit_mynetworks,
        reject_rbl_client zen.spamhaus.org,
        reject_rbl_client ix.dnsbl.maintu.net,
        reject_unauth_destination,
        permit

inet_protocols = ipv4

smtpd_helo_required = yes
strict_rfc821_envelopes = yes
home_mailbox = Maildir/

mailbox_command = procmail -a "$EXTENSION"  

Leider trete ich weiterhin aufm Schlauch.
Member: Hitman4021
Hitman4021 Jun 16, 2011 at 13:13:07 (UTC)
Goto Top
Hast du die anmeldung schonmal über TLS/SSL versucht?

War zwar eigentlich nicht die Frage aber hast du die Reihenfolge bei den "smtpd_recipient_restrictions" beachtet?

Gruß Hitman
Member: Rocknrolla
Rocknrolla Jun 16, 2011 at 14:41:41 (UTC)
Goto Top
Ich habe mit SSL/TLS, STARTTLS, mit normalen PW und verschlüselten PW versucht - keine Veränderung.

Was meinst du mit der "Reihenfolge"? Die Reihenfolge in der main.cf stimmt so - ist genau wie es sein sollte.
Member: Hitman4021
Hitman4021 Jun 19, 2011 at 21:42:46 (UTC)
Goto Top
Zitat von @Rocknrolla:
Ich habe mit SSL/TLS, STARTTLS, mit normalen PW und verschlüselten PW versucht - keine Veränderung.
Ist das Passwort in der Datenbank im Klartext oder Verschlüsselt?
Wenn ja was für eine Verschlüsselung?

Willst du wirklich Courier nehmen und nicht Dovecot?

Gruß Hitman
Member: Rocknrolla
Rocknrolla Jun 20, 2011 at 06:21:09 (UTC)
Goto Top
Tja, ich will eigentlich courier, aber wenn nichts mehr hilft, dann nehme ich dovecot.

Das Passwort des Mailboxbenutzers ist - noch - unverschlüsselt. Man kann nur "ENCRYPT" wählen, aber was für Verschlüsselung das wohl ist? Wahrscheinlich MD5, aber wissen tue ich es nicht.
Member: Hitman4021
Hitman4021 Jun 20, 2011 at 09:00:40 (UTC)
Goto Top
Zitat von @Rocknrolla:
Tja, ich will eigentlich courier, aber wenn nichts mehr hilft, dann nehme ich dovecot.

Das Passwort des Mailboxbenutzers ist - noch - unverschlüsselt. Man kann nur "ENCRYPT" wählen, aber was
für Verschlüsselung das wohl ist? Wahrscheinlich MD5, aber wissen tue ich es nicht.
Du musst Postfix/Courier auch sagen das das Passwort im Klartext in der DB liegt?

Sry aber bei Courier kenne ich mich zuwenig aus um dir zusagen wo das geht

Gruß
Member: Hitman4021
Hitman4021 Jun 20, 2011 at 11:33:55 (UTC)
Goto Top
Hallo,

http://www.wyden.com/linux/mailserver/mailserver-mit-postfix-dovecot-po ...

Die Anleitung ist zimlich gut ;)

Gruß Hitman
Member: Rocknrolla
Rocknrolla Jun 21, 2011 at 02:49:46 (UTC)
Goto Top
Guten Morgen!

Ich habe den debuglevel von "/etc/courier/authdaemonrc" erhöht - jetzt bekomme ich über "/var/log/syslog" folgende Fehlermeldungen:

Jun 21 04:42:31 carnival2 imapd: Connection, ip=[::ffff:xx.xxx.xxx.38]
Jun 21 04:42:31 carnival2 authdaemond: received auth request, service=imap, authtype=login
Jun 21 04:42:31 carnival2 authdaemond: authmysql: trying this module
Jun 21 04:42:31 carnival2 authdaemond: authmysqllib: connected. Versions: header 50149, client 50157, server 50157
Jun 21 04:42:31 carnival2 authdaemond: SQL query: SELECT email, password, "", 5000, 5000, "/home/mailusers", CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/'), "", name, "" FROM virtual_users WHERE email = 'name_des_benutzers'  
Jun 21 04:42:31 carnival2 authdaemond: mysql_query failed, reconnecting: Unknown column 'name' in 'field list'  
Jun 21 04:42:31 carnival2 authdaemond: authmysqllib: connected. Versions: header 50149, client 50157, server 50157
Jun 21 04:42:32 carnival2 authdaemond: mysql_query failed second time, giving up: Unknown column 'name' in 'field list'  
Jun 21 04:42:32 carnival2 authdaemond: authmysql: TEMPFAIL - no more modules will be tried
Jun 21 04:42:32 carnival2 imapd: LOGIN FAILED, method=PLAIN, ip=[::ffff:xx.xxx.xxx.38]
Jun 21 04:42:32 carnival2 imapd: authentication error: Input/output error

Vielleicht ist das der entscheidende Hinweis?

Das Problem -
CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/'), "", name, "" FROM virtual_users WHERE email = 'name_des_benutzers'  
findet sich so nirgendwo. Vor allem das "name" ist nirgendwo zu finden.

Beim greppen sieht es dann so aus:
grep -ir "CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/'), "", name, "" FROM virtual_users WHERE email =" /etc/*  
grep: /etc/fonts/conf.d/30-defoma.conf: No such file or directory
grep: /etc/ssl/certs/f4bfcc1a.0: No such file or directory
grep: /etc/ssl/certs/0f745fd5.0: No such file or directory

Edit:
Offenbar fehlt die Kolumne "name" in der Tabelle "virtual_users" der mySQL Datenbank "mailserver" - habe ich das richtig verstanden? Mit mySQL kenn ich mich kaum aus - wie setzte ich das Feld nachträglich ein ?

Edit 2
Ich habe in der /etc/courier/authmysqlrc diese Zeile
MYSQL_NAME_FIELD        name
gefunden. Sicherlich hat es damit was zu tun. Sollte da etwas anderes als "name" stehen?
Member: Hitman4021
Hitman4021 Jun 21, 2011 at 06:50:14 (UTC)
Goto Top
Hallo,

wie hast du den die Datenbank angelegt?

Gruß
Member: Rocknrolla
Rocknrolla Jun 21, 2011 at 13:57:49 (UTC)
Goto Top
Hallo,

es existiert wirklich eine mySQL Datenbank "vmailserver", es wurde der Benutzer "vmuser" angelegt - nur das PW wurde natürlich ersetzt. Der mySQL Port ist 3306.

In der Tabelle "vmailserver" gibt es 3 Tabellen
'vdomains', 'vusers' und 'valiases'

Die erste Tabelle - 'vusers' - enthält folgende Spalten:
'id'  
'domain_id'  
'passwort'  
'email'  
Die Tabelle 'vdomains' folgende Spalten:
'id'  
'name'  
In der Tabelle 'valiases' folgende:
'id'  
'domain_id'  
'source'  
'destination'  
Member: Rocknrolla
Rocknrolla Jun 23, 2011 at 14:21:35 (UTC)
Goto Top
Oki, doki.

Ich habe das Problem behoben. In "/etc/courier/authdaemonrc" habe ich das logging auf "2" gesetzt. Seither sprach der authdaemon mit mir ausgiebig.

Danach musste ich in der "/etc/courier/authmysqlrc" die Zeile MYSQL_MAILDIR_FIELD so verändern:
MYSQL_MAILDIR_FIELD CONCAT('/home/mailusers/Maildir/',SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/')  

Damit klappt es.

Für alle, die mir irgendwann folgen und das gleiche Problem haben - bitte schaltet das logging auf "2" in der authmysqlrc. Sonst werdet Ihr nie erfahren was los ist. Und seid beharrlich face-wink

@ Hitman4021
Danke für Deine Bemühungen. Das alles war trotzdem wirklich sehr konstruktiv.