ISPConfig 3: Externer Mailserver

neurex

Member
Ich kenn mich mit dem maildrop leider nicht richtig aus daher folgende Frage.

Wie stellt maildrop die Mails/Daten an den IMAP/POP3 durch? Hat maildrop irgendwo ein configfile welches ich nicht finde in dem man den IMAP/POP3 angibt?

Habe mir den maildrop standalone installiert...
 

Till

Administrator
Führe mal aus:

ls -la /home/vmail/

dann siehst Du das maildrop config file, es gibt dann je nach Userkonfiguration noch userspezifische Includes. An dem Config File musst Du aber nichts ändern, Du musst nur dovecot sagen wo die maildirs in einer ISPConfig Configuration liegen.
 

Till

Administrator
Das Verzeichnis kann /home/vmail, /var/vmail oder ien beliebiges anderes Verzeichnis sein, Du kannst es bei den Server Einstellungen in ISPConfig einstellen.
 

neurex

Member
Ahhh... jetztert...

Okay aktueller Stand ist folgender: Dovecot legt die Domain und Userverzeichnise im richtigen Pfad an allerdings hängt die Mailzustellung meiner Meinung nach an maildrop.

Auszug aus der mail.log

Dec 14 12:10:06 ispc3 postfix/qmgr[2958]: 08C3E19ECF: from=<hallo@neu.de>, size=323, nrcpt=1 (queue active)
Dec 14 12:10:07 ispc3 amavis[2824]: (02824-01) (!!)WARN: all primary virus scanners failed, considering backups
Dec 14 12:10:08 ispc3 postfix/smtpd[3407]: disconnect from localhost[127.0.0.1]
Dec 14 12:10:23 ispc3 postfix/smtpd[3479]: warning: connect to private/tlsmgr: Connection refused
Dec 14 12:10:23 ispc3 postfix/smtpd[3479]: warning: problem talking to server private/tlsmgr: Connection refused
Dec 14 12:10:24 ispc3 postfix/smtpd[3479]: warning: connect to private/tlsmgr: Connection refused
Dec 14 12:10:24 ispc3 postfix/smtpd[3479]: warning: problem talking to server private/tlsmgr: Connection refused
Dec 14 12:10:24 ispc3 postfix/smtpd[3479]: warning: no entropy for TLS key generation: disabling TLS support
Dec 14 12:10:24 ispc3 postfix/smtpd[3479]: connect from unknown[127.0.0.1]
Dec 14 11:10:24 ispc3 postfix/smtpd[3479]: 418FE19FF6: client=unknown[127.0.0.1]
Dec 14 12:10:24 ispc3 postfix/cleanup[3417]: 418FE19FF6: message-id=<20081214111001.08C3E19ECF@ispc3.localhost>
Dec 14 12:10:24 ispc3 postfix/qmgr[2958]: 418FE19FF6: from=<hallo@neu.de>, size=732, nrcpt=1 (queue active)
Dec 14 12:10:24 ispc3 amavis[2824]: (02824-01) Passed CLEAN, MYNETS LOCAL [127.0.0.1] [127.0.0.1] <hallo@neu.de> -> <neu@neu.de>, Message-ID: <20081214111001.08C3E19ECF@ispc3.localhost>, mail_id: OKNtACryrtFZ, Hits: 1.294, size: 323, queued_as: 418FE19FF6, 17653 ms
Dec 14 12:10:24 ispc3 postfix/smtp[3467]: 08C3E19ECF: to=<neu@neu.de>, relay=127.0.0.1[127.0.0.1]:10024, delay=32, delays=14/0.13/0.05/18, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 418FE19FF6)
Dec 14 12:10:24 ispc3 postfix/qmgr[2958]: 08C3E19ECF: removed
Dec 14 11:10:24 ispc3 postfix/smtpd[3479]: disconnect from unknown[127.0.0.1]
Dec 14 12:10:24 ispc3 postfix/pipe[3481]: 418FE19FF6: to=<neu@neu.de>, relay=maildrop, delay=0.16, delays=0.04/0.04/0/0.08, dsn=5.1.1, status=bounced (user unknown. Command output: Invalid user specified. )
Dec 14 12:10:24 ispc3 postfix/cleanup[3417]: 6850E19FF8: message-id=<20081214111024.6850E19FF8@ispc3.localhost>
Dec 14 12:10:24 ispc3 postfix/bounce[3483]: 418FE19FF6: sender non-delivery notification: 6850E19FF8
Dec 14 12:10:24 ispc3 postfix/qmgr[2958]: 418FE19FF6: removed
Dec 14 12:10:24 ispc3 postfix/qmgr[2958]: 6850E19FF8: from=<>, size=2512, nrcpt=1 (queue active)
Dec 14 12:10:24 ispc3 postfix/pipe[3481]: 6850E19FF8: to=<hallo@neu.de>, relay=maildrop, delay=0.04, delays=0.02/0/0/0.01, dsn=5.1.1, status=bounced (user unknown. Command output: Invalid user specified. )
Dec 14 12:10:24 ispc3 postfix/qmgr[2958]: 6850E19FF8: removed
Allerdings bin ich noch nicht dahintergekommen wie maildrop richtig funktioniert um daraus schließen zu können wo der Fehler liegt...

Setze ich den Dovecot LDA ein klappts auf anhieb... falls jemand weiß was da falsch sein könnte wäre ich über einen Denkanstoss sehr erfreut...
 

Till

Administrator
Die Domain und Userverzeichnisse werden von ISPConfig angelegt und nicht Dovecot. Maildrop liefert die Mails in die korrekten Verzeichnisse aus, wenn Du die Standardkonfiguration von ISPConfig nimmst, daran ist also nichts zu ändern. Du musst lediglich die dovecot Konfigurationsdatei anpassen, dass er sich gegen die richtige mysql Tabelle authentifiziert und das dort im Feld homedir hinterlegte Emailverzeichnis benutzt.

Am einfachsten reinstallierts Du ISPConfig einfach nochmal, so dass der Postfix und Maildrop Teil richtig funktioniert und passt dann die Dovecot Konfigurationsdatei an.
 

neurex

Member
Mit was werden denn die Passwörter in der mail_user verschlüsselt? MD5 ist das nicht so wie es aussieht...

Gibts irgendwie eine SQL Abfrage mit der man in der Tabelle mail_user, Spalte email die dort vorhandene E-Mailadresse (Beispiel: halo@ispc.de) zerlegen kann in "hallo" und "ispc.de"?

Momentan funktioniert der Abruf und die Zustellung in die Verzeichnisse allerdings möchte ich noch etwas optimieren um die Abfragen zur MySQL Datenbank geringer zu kriegen und endlich das von ISPC verschlüsselte Passwort zu nutzen statt mein manuell eingegebenes PW ;)
 
Zuletzt bearbeitet:

neurex

Member
Till du Genie - vielen Dank! Okay aktueller Stand ist es funktioniert soweit bis auf das er momentan noch nicht "merkt" ob POP3/IMAP aktiv oder deaktiv sind (daran arbeite ich noch).

Wäre aber nett wenn du es schoneinmal so, wie es atm ist in ISPC3 aufnehmen könntest damit es ein paar testen können. Der Rest ist jetzt eh nur noch als statische Änderung des sql-config Files zu sehen.

Werde am Wochenende mal das Ergebnis posten. Heute und morgen komme ich leider nichtmehr dazu.
 

neurex

Member
So, wie versprochen die aktuelle Konfiguration. Rot markierte Teile müssen durch den Installer angepasst werden! Anbei auch immer eine kleine Erklärung hierzu.

/etc/dovecot/dovecot-sql.conf
siehe Anhang!

"host" definiert die URL wo der MySQL Server liegt, "port" den Port des MySQL Servers (weiß jetzt gar nicht ob der vom Installer überhaupt abgefragt wird, notfalls kann man diesen Eintrag auch weglassen dann wird automatisch der Standardport genommen), "dbname" definiert die Datenbank in der die ISPConfig3 Tabellen liegen, "user" sollte einer sein der Zugriff auf die MySQL Datenbank hat, muss aber nicht root sein. Ich würde vorschlagen den zu nehmen der auch vom Courier benutzt werden würde. "password" sollte jedem klar sein, muss nur zum "user" passen.

/etc/dovecot/dovecot.conf
siehe Anhang!

"protocols = imap pop3 imaps pop3s"
-> Aktiviert IMAP/POP3 und dies auch mit alternativer SSL Variante

"disable_plaintext_auth = no"
-> Hier bin ich mir jetzt auch nicht so sicher was das setzen dieser Einstellung angeht. Setzt man diese auf yes so kann man eigentlich die IMAP/POP3 Protokolle ohne SSL oben wieder herausnehmen und lässt keine unverschlüsselten Logins mehr zu. Setzt man den Wert auf no lässt man beide Varianten (mit und ohne SSL) zu aber eben auch unverschlüsselte Logins. Ich bin aus Gründen der kompatibilität eher für no.

"ssl_disable = no"
-> Aktiviert den SSL/TLS support (notwendig für die IMAPS/POP3S Varianten)

"ssl_cert_file = /etc/ssl/certs/dovecot.pem"
"ssl_key_file = /etc/ssl/private/dovecot.pem"
-> Pfad zum Cert- und Keyfile für den SSL/TLS Transport (vielleicht sollte man das unabhängiger Speichern und nicht im jeweiligen Mailserver Ordner wie es momentan bei Courier der Fall ist.

"pop3_uidl_format = %08Xu%08Xv"
-> Ist ein Standardwert der aber nicht standardmässig aktiviert ist. Die Einstellung ist nur zu ändern wenn Dovecot einen anderen Mailserver übernimmt.

"auth_username_chars = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_"
-> Bestimmt welche Zeichen ein Username haben darf.

"auth_username_format = %n"
-> Muss wegen des SQL-Configfiles unbedingt gesetzt sein!

"passdb pam"
-> Unbedingt auskommertieren! Lokale Benutzer würden hier nur stören.

"passdb sql"
-> Gibt an das sich Dovecot die User/Passwortdaten aus der Datenbank holen soll.

"userdb passwd"
-> Unbedingt auskommertieren!

"userdb sql"
-> Siehe passdb sql ;)

So, damit sollte es soweit funktionieren.

Woran ich noch arbeite ist, wie gesagt das mit dem ob in ISPC3 POP3 oder IMAP aktiviert wurde. Für weitere Fragen zögert nicht.

Wie gesagt würde mich freuen wenn es in den Trunk kommt damit es mal ein paar testen.
 
Zuletzt bearbeitet:

neurex

Member
Okay - danke. Habe mich in der Zwischenzeit mit der Lösung dieser IMAP/POP3 aktiv/deaktiv Lösung befasst aber noch keinerlei Lösung gefunden.

So wie ich das sehe existiert zwar eine Variable (%s - siehe hier) allerdings bin ich noch nicht dahinter gekommen wie oder ob man diese im Zusammenhang damit einsetzen kann. Kennt sich damit jemand aus?
 

Till

Administrator
VErsuch doch mal Folgendes:

1) Mysql logging in my.cmf aktivieren und mysql neu starten.

2) Füge an eine Deiner auth Abfragen einfach mal an: "and foo = '%s'" und schau Dir an, was er im mysql log genau als Abfrage an die DB sendet (poste das dann bitte auch hier) und dann können wir versuchen, daraus eine funktionierende Abfrage zu bauen.
 

neurex

Member
Danke für die Antwort Till. Er sendet an den SQL-Server anstatt %s das entsprechende Protokoll (war in meinem Fall POP3).

/usr/sbin/mysqld, Version: 5.0.51a-log (SUSE MySQL RPM). started with:
Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock
Time Id Command Argument
081222 16:52:39 1 Connect root@localhost on dbispconfig
1 Query SELECT password FROM mail_user WHERE SUBSTRING_INDEX(email, '@', 1) = 'hallo' AND foo = 'POP3'

Bis jetzt fällt mir aber noch keine Abfrage dazu ein aber das kann noch kommen...

Wie ist das eigentlich. Was wird normalerweiße (also im Moment beim Courier) als Benutzername eingetragen? Angenommen die E-Mail heißt ich@meinweb.org. Wird da die komplette E-Mail eingetragen oder nur der Nutzer (in diesem Fall ich)? Bei mir ist momentan nur der Nutzer der Fall was ich auch bevorzugen würde. Warum alles doppelt eingeben?
 
Zuletzt bearbeitet:

Till

Administrator
In ISPConfig 3: Benutzername = emailadresse Es gibt doch garkein Feld für einen benutzernamen in der Tabelle und der Teil vor dem @ ist kein eindeutiger Bezeichner für den Account. Denk mal daran was passiert wenn Du ein paar hundert Domains aufd em Server hast und nur ein Account dürfte info heißen.
 

neurex

Member
Zu dem Benutzernamen: Es wird aber in dem Moment eindeutig wenn z.B. auf mail.meinweb.org connectet wird und der Benutzer hallo ist. Dann ist die E-Mail logischerweiße hallo@meinweb.org. Aber wenn dann als Benutername die E-Mailaddy fungieren soll ist das auch kein akt.

Bei folgender Abfrage erscheint in der Log:

081223 12:03:02 13 Connect ispconfig@localhost on
13 Init DB dbispconfig
13 Query SELECT updated FROM server WHERE server_id = 1
13 Init DB dbispconfig
13 Query SELECT count(server_id) as number from sys_datalog WHERE datalog_id > 11 AND (server_id = 1 OR server_id = 0)
13 Quit
12 Query SELECT password FROM mail_user WHERE SUBSTRING_INDEX(email, '@', 1) = 'hallo' AND disablepop3 = 0

und der Login scheitert mit einem Error.
 

Till

Administrator
Es wird aber in dem Moment eindeutig wenn z.B. auf mail.meinweb.org connectet wird und der Benutzer hallo ist.

nein, das ist es eben nicht. Wenn Du mehere Domains hast und webmail benutzt, connecten alle von localhost. Es muss immer die komplette Emailadresse für die Authentifizierung verwendet werden.


Du musst Deine SQL Abfragen umstellen. Die Abfrage muss z.B. lauten:

SELECT password FROM mail_user WHERE email = 'ich@meinweb.org' AND disablepop3 = 0

Teste das Ganze am Besten mal in phpmyadmin.
 

neurex

Member
Okay. Das mit dem Webmailer klingt einleuchtend. Die aktuelle Konfiguration findet sich nun, dank dir Till, im Anhang.

Falls noch irgendwo Probleme gibt sag Bescheid.

EDIT: Das mit dem Benutzernamen habe ich auch geändert!
 

Anhänge

  • dovecot.zip
    15,4 KB · Aufrufe: 609
Zuletzt bearbeitet:

Werbung

Top