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-ID: 167560

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

Ausgedruckt am: 25.11.2024 um 19:11 Uhr

Hitman4021
Hitman4021 15.06.2011 um 22:18:10 Uhr
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
Rocknrolla
Rocknrolla 16.06.2011 um 15:00:11 Uhr
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.
Hitman4021
Hitman4021 16.06.2011 um 15:13:07 Uhr
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
Rocknrolla
Rocknrolla 16.06.2011 um 16:41:41 Uhr
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.
Hitman4021
Hitman4021 19.06.2011 um 23:42:46 Uhr
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
Rocknrolla
Rocknrolla 20.06.2011 um 08:21:09 Uhr
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.
Hitman4021
Hitman4021 20.06.2011 um 11:00:40 Uhr
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ß
Hitman4021
Hitman4021 20.06.2011 um 13:33:55 Uhr
Goto Top
Hallo,

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

Die Anleitung ist zimlich gut ;)

Gruß Hitman
Rocknrolla
Rocknrolla 21.06.2011 um 04:49:46 Uhr
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?
Hitman4021
Hitman4021 21.06.2011 um 08:50:14 Uhr
Goto Top
Hallo,

wie hast du den die Datenbank angelegt?

Gruß
Rocknrolla
Rocknrolla 21.06.2011 um 15:57:49 Uhr
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'  
Rocknrolla
Rocknrolla 23.06.2011 um 16:21:35 Uhr
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.