Problem mit Mailserver und sql

Dieses Thema im Forum "Fragen zu Howtos" wurde erstellt von fLuffy, 13. Juni 2011.

  1. fLuffy

    fLuffy New Member

    Guten Tag,

    ich habe ein Problem mit einem Mailserver, welchen ich schon seit Monaten einrichte. Eigentlich ist das wahrscheinlich der vorletzte Schritt, ich komme aber einfach nicht weiter - egal was ich versuche. Solange linux-benutzer mit einer Domain genutzt wurden, war alles bestens, aber mit virtuellen Nutzern klappt es nicht mehr.

    Der Server läuft mit Debian Squeeze. Installiert sind
    - Postfix
    - courier-imap
    - SASL
    - mySQL
    - spamassassin
    - mehrere email Domains
    - all das mit SSL / STARTTLS


    Ich will die Email Domains mit virtuellen Benutzern betreiben. Ich habe also die Tabellen in mySQL erstellt und ich habe Änderungen in SASL und courier-imap vorgenommen. Aber stets heisst es in der 'mail.info' dann beim Versuch sich mit einem Mailprogramm einloggen:
    Code:
    Jun 13 15:34:47 robo46 imapd: LOGIN FAILED, method=PLAIN, ip=[::ffff:xx.xx.xx.128]
    Jun 13 15:34:47 robo46 imapd: authentication error: Input/output error
    Jun 13 15:34:47 robo46 imapd: LOGIN FAILED, method=PLAIN, ip=[::ffff:xx.xx.xx.128]
    Jun 13 15:34:47 robo46 imapd: authentication error: Input/output error
    Jun 13 15:34:52 robo46 postfix/smtpd[25692]: connect from 174.xxx.xxx.xxx.static.mundo-r.com[xxx.xxx.xxx.174]
    Jun 13 15:34:53 robo46 postfix/trivial-rewrite[25356]: warning: connect to mysql server 127.0.0.1: Access denied for user 'mailuser'@'localhost' (using password: YES)
    Jun 13 15:34:53 robo46 postfix/trivial-rewrite[25356]: fatal: mysql:/etc/postfix/mysql-virtual-alias-maps.cf(0,lock|fold_fix): table lookup problem
    Jun 13 15:34:54 robo46 postfix/master[25346]: warning: process /usr/lib/postfix/trivial-rewrite pid 25356 exit status 1
    Jun 13 15:34:55 robo46 postfix/pickup[25353]: 0C0F15642D5: uid=0 from=<root>
    Jun 13 15:34:55 robo46 postfix/cleanup[3202]: warning: 2E6F35642D5: virtual_alias_maps map lookup problem for root@domain1.tld
    Jun 13 15:34:55 robo46 postfix/trivial-rewrite[25696]: warning: connect to mysql server 127.0.0.1: Access denied for user 'mailuser'@'localhost' (using password: YES)
    Jun 13 15:34:55 robo46 postfix/trivial-rewrite[25696]: fatal: mysql:/etc/postfix/mysql-virtual-alias-maps.cf(0,lock|fold_fix): table lookup problem
    Jun 13 15:34:56 robo46 postfix/smtpd[25692]: warning: problem talking to service rewrite: Success
    Jun 13 15:34:56 robo46 postfix/cleanup[25355]: warning: problem talking to service rewrite: Connection reset by peer
    Jun 13 15:34:56 robo46 postfix/master[25346]: warning: process /usr/lib/postfix/trivial-rewrite pid 25696 exit status 1
    Jun 13 15:34:56 robo46 postfix/master[25346]: warning: /usr/lib/postfix/trivial-rewrite: bad command startup -- throttling
    
    Das ist mein Problem. So wie ich das sehe, liegt es nicht am Benutzer der Email, sondern daran, daß der mySQL Benutzer ( "mailuser" ) der Datenbank "mailserver" nicht akzeptiert wird. Endweder wg. seines logins oder wg. seines Passwortes. Und erst dann kann sich ein email Benutzer in seiner Mailbox anmelden, wenn courier mit mySQL Verbindung herstellen kann.

    Meine config Dateien

    postconf -n
    Code:
    alias_database = hash:/etc/aliases
    alias_maps = hash:/etc/aliases
    broken_sasl_auth_clients = yes
    config_directory = /etc/postfix
    home_mailbox = Maildir/
    html_directory = /usr/share/doc/postfix/html
    inet_interfaces = all
    inet_protocols = ipv4
    mailbox_command = procmail -a "$EXTENSION"
    mailbox_size_limit = 0
    mydestination = $myhostname, $mydomain, localhost, localhost.$mydomain
    mydomain = domain1.tld
    myhostname = robo46.domain1.tld
    mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
    myorigin = $mydomain
    readme_directory = /usr/share/doc/postfix
    recipient_delimiter = +
    relay_domains = domain2.tld, domain3.tld
    relayhost =
    smtp_tls_note_starttls_offer = yes
    smtp_tls_security_level = may
    smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
    smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
    smtpd_helo_required = 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
    smtpd_sasl_auth_enable = yes
    smtpd_sasl_security_options = noanonymous
    smtpd_tls_cert_file = /etc/ssl/certs/postfix.pem
    smtpd_tls_key_file = /etc/ssl/private/postfix.pem
    smtpd_tls_loglevel = 1
    smtpd_tls_received_header = yes
    smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
    smtpd_tls_session_cache_timeout = 3600s
    smtpd_use_tls = yes
    strict_rfc821_envelopes = yes
    tls_random_prng_update_period = 3600s
    tls_random_source = dev:/dev/urandom
    virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf
    virtual_gid_maps = static:5000
    virtual_mailbox_base = /home/mailusers/Maildir
    virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
    virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
    virtual_uid_maps = static:5000
    smtpd.conf (sasl)
    Code:
    pwcheck_method: saslauthd
    mech_list: digest-md5 cram-md5 login plain
    auxprop_plugin: mysql
    sql_hostnames: 127.0.0.1
    sql_user: vmailuser
    sql_passwd: abcdEFG123456
    sql_database: vmailserver
    sql_select: select password from users where email = '%u'
    imapd.cf
    Code:
    ADDRESS=0
    PORT=143
    MAXDAEMONS=40
    MAXPERIP=20
    PIDFILE=/var/run/courier/imapd.pid
    TCPDOPTS="-nodnslookup -noidentlookup"
    LOGGEROPTS="-name=imapd"
    IMAP_CAPABILITY="IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE"
    IMAP_KEYWORDS=1
    IMAP_ACL=1
    IMAP_CAPABILITY_ORIG="IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA AUTH=CRAM-MD5 AUTH=CRAM-SHA1 AUTH=CRAM-SHA256 IDLE"
    IMAP_PROXY=0
    IMAP_PROXY_FOREIGN=0
    IMAP_IDLE_TIMEOUT=60
    IMAP_MAILBOX_SANITY_CHECK=1
    IMAP_CAPABILITY_TLS="$IMAP_CAPABILITY AUTH=PLAIN"
    IMAP_CAPABILITY_TLS_ORIG="$IMAP_CAPABILITY_ORIG AUTH=PLAIN"
    IMAP_DISABLETHREADSORT=0
    IMAP_CHECK_ALL_FOLDERS=0
    IMAP_OBSOLETE_CLIENT=0
    IMAP_UMASK=022
    IMAP_ULIMITD=131072
    IMAP_USELOCKS=1
    IMAP_SHAREDINDEXFILE=/etc/courier/shared/index
    IMAP_ENHANCEDIDLE=0
    IMAP_TRASHFOLDERNAME=Trash
    IMAP_EMPTYTRASH=Trash:7
    IMAP_MOVE_EXPUNGE_TO_TRASH=0
    SENDMAIL=/usr/sbin/sendmail
    HEADERFROM=X-IMAP-Sender
    IMAPDSTART=YES
    MAILDIRPATH=Maildir
    AUTHMODULES="authdaemon"
    
    authdaemonrc
    Code:
    authmodulelist="authmysql"
    authmodulelistorig="authuserdb authpam authpgsql authldap authmysql authcustom authpipe"
    daemons=5
    authdaemonvar=/var/run/courier/authdaemon
    DEBUG_LOGIN=0
    DEFAULTOPTIONS=""
    LOGGEROPTS=""
    authmysqlrc
    Code:
    MYSQL_SERVER            localhost
    MYSQL_USERNAME          mailuser
    MYSQL_PASSWORD          abcdEFG123456
    MYSQL_PORT              0
    MYSQL_OPT               0
    MYSQL_DATABASE          mailserver
    MYSQL_USER_TABLE        virtual_users
    MYSQL_CRYPT_PWFIELD     password
    MYSQL_UID_FIELD         uid
    MYSQL_GID_FIELD         gid
    MYSQL_LOGIN_FIELD       email
    MYSQL_HOME_FIELD        "/home/mailusers"
    MYSQL_NAME_FIELD        name
    MYSQL_MAILDIR_FIELD CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/')
    /etc/postfix/virtual_domains
    Code:
    domain1.tld,
    domain2.tld,
    domain3.tld,
    /etc/postfix/virtual_mailbox_aliases
    Code:
    golum@domain2.tld            golum@domain2.tld
    golum@domain1.tld            golum@domain1.tld
    
    postmaster@domain2.tld       golum@domain2.tld
    abuse@domain2.tld            golum@domain2.tld
    
    postmaster@domain1.tld       golum@domain1.tld
    abuse@domain1.tld            golum@domain1.tld
    /etc/postfix/virtual_recipients
    Code:
    golum@domain2.tld        domain2.tld/golum/
    golum@domain1.tld        domain1.tld/golum/
    /etc/postfix/virtual_alias
    Code:
    golum@domain1.tld          user1
    smurf@domain1.tld            user1
    goblin@domain1.tld          user1
    drache@domain1.tld       user1
    zwerg@domain1.tld          user1
    golum@domain2.tld          user_2
    hexe@domain2.tld            user_2
    /etc/postfix/mysql-virtual-alias-maps.cf
    Code:
    user = mailuser
    hosts = 127.0.0.1
    dbname = mailserver
    query = SELECT destination FROM virtual_aliases WHERE source='%s'
    /etc/postfix/mysql-virtual-mailbox-domains.cf
    Code:
    user = mailuser
    hosts = 127.0.0.1
    dbname = mailserver
    query = SELECT 1 FROM virtual_domains WHERE name='%s'
    Auf dem Server gibt es neben root nur 2 Benutzer - "user1" und "user_2". Schreibweise ist ähnlich, die Namen durch "user" ersetzt. Aber an dem Unterstrich wird es wohl nicht liegen? Es gibt darüber hinaus ein Pfad "/home/mailusers/Maildir" und dann die einzelnen Postfächer.

    mySQL


    Es existiert wirklich eine mySQL Datenbank "mailserver", es wurde der Benutzer "mailuser" angelegt - nur das PW wurde natürlich ersetzt. Der mySQL Port ist jetzt 0, aber mit 3306 ging es auch nicht.

    In der Tabelle "mailserver" gibt es 3 Tabellen
    'virtual_domains', 'virutal_users' und 'virtual_aliases'

    Die erste Tabelle - 'virutal_users' - enthält folgende Spalten:
    Code:
    'id'
    'domain_id'
    'passwort'
    'email'
    Die Tabelle 'virtual_domains' folgende Spalten:
    Code:
    'id'
    'name'
    In der Tabelle 'virtual_aliases' folgende:
    Code:
    'id'
    'domain_id'
    'source'
    'destination'
    
     
    Zuletzt bearbeitet: 21. Juni 2011
  2. fLuffy

    fLuffy New Member

    Code:
    netstat -tap | grep mysql
    tcp        0      0 localhost:mysql         *:*                     LISTEN      1440/mysqld
    tcp        0      0 localhost:mysql         localhost:56314         TIME_WAIT   -
    tcp        0      0 localhost:mysql         localhost:56311         TIME_WAIT   -
    tcp        0      0 localhost:mysql         localhost:56315         TIME_WAIT   -
    tcp        0      0 localhost:mysql         localhost:56313         TIME_WAIT   -
    tcp        0      0 localhost:mysql         localhost:56312         TIME_WAIT   -
    
    Ich habe schon soviel ausprobiert, soviel gelesen und soviel eingegeben, daß ich überhaupt nicht mehr durchblicke - es ist absolut verwirrend und unerträglich komplex geworden.
    Ich hatte einiges zu den virtuellen email Benutzern von hier gehabt: HowtoForge Linux Tutorials » Virtuelle Benutzer und Domains Mit Postfix, Courier Und MySQL (Ubuntu 7.10) das ging aber alles nicht

    Leider nicht alles, denn ich fing mit der Arbeit an, bevor ich dieses Tutorial hier fand.

    Vielleicht kann mir jemand netterweise behilflich sein?
     
  3. Till

    Till Administrator

    Dein aktuelles setup ist ein mischmasch aus einem Linux User setup und einem mysql virtual User setup. Das macht so nicht viel Sinn und wird auch nicht sauber funktionieren denn postfix kommt damit nicht klar.

    Mehrere Tutorials zu mischen bei einer Installation geht an sich immer schief, zumindest wenn man nicht ein Linux Crack ist. Daher würde ich Dir empfehlen einfach mal das System zu formatieren und nur einem Tutorial zu folgen um es neu aufzusetzen.
     
  4. fLuffy

    fLuffy New Member

    Hi,
    wieso denn missmatch? Es ist doch im Grunde fast gleich, bis auf einige Details.

    Ein "Neuaufsetzen" kommt garnicht in Frage.
     
  5. fLuffy

    fLuffy New Member

Diese Seite empfehlen