ISPConfig 3: Externer Mailserver

neurex

Member
An Deiner Stelle würde ich das wie folget machen. Du installierst ein neues opensuse system nach perfect setup, lässt aber den courier und maildrop kram aus und nimmst stattdessen dovecot. Dann sicherst Du die opensuse dovecot. Konfiguration für alle fälle und installierst ispconfig 3 svn version, spielst ggf. die dovecot Konfig von suse zurück und schaust was Du alles ändern musst, bis das mailsystem geht.

Okay openSUSE 11.2 funktioniert. Gibt sogar ein Perfekt Setup HowTo von Falko ;)

So nun aber mal eine andere Frage. In dem Thread steht ja, ein paar Seiten vor mir schon die Lösung für Dovecot allerdings nur in Verbindung mit maildrop. Du schreibst aber ich solle maildrop nicht installieren aber wie wird das dann mit den Filtern und allem auf Debian geregelt?
 

Till

Administrator
Die filter sind in Sieve neu implementiert und es wird auch eine andere maildir struktur für dovecot verwendet, da man ansonsten ja eh den kompletten courier inkl. authdaemon installieren müsste und somit die Verwendung von Dovecot keine Vorteile bringt.
 

neurex

Member
Sag mal irgendwo hängts bei mir (vielleicht hab ich zuviel nicht installiert). SASLAUTH wird nicht benötigt, oder?
 

Till

Administrator
sasl barchst Du glaube ich nicht, bin mir da aber nicht ganz sicher. hast Du denn external auth in dovecot und postfix konfiguriert? Dann schalte doch mal debugging in dovecot ein und mysql logging um zu sehen, ob er überhaupt eine Passwortabfrage versucht.
 

neurex

Member
Also so langsam aber sicher steig ich absolut nichtmehr durch.

Vielleicht kommt ja jemand von euch auf die entsprechende Lösung. Hier einmal die Fehler welche in der mail.log stehen wenn ich versuche über telnet eine Mail an eine zuvor per ISPC3 angelegte Mailbox zu senden:

Feb 1 20:25:22 linux dovecot: dovecot: Killed with signal 15 (by pid=15185 uid=0 code=kill)
Feb 1 20:25:22 linux dovecot: Dovecot v1.2.9 starting up (core dumps disabled)
Feb 1 20:25:22 linux dovecot: auth-worker(default): mysql: Connected to localhost (dbispconfig)
Feb 1 20:25:23 linux postfix/smtpd[14759]: connect from work.net[192.168.0.45]
Feb 1 20:25:39 linux postfix/smtpd[14759]: A8E412FC95: client=work.net[192.168.0.45]
Feb 1 20:25:43 linux postfix/cleanup[15242]: A8E412FC95: message-id=<20100201192539.A8E412FC95@linux.work.net>
Feb 1 20:25:43 linux postfix/qmgr[13134]: A8E412FC95: from=<neurex@work.net>, size=329, nrcpt=1 (queue active)
Feb 1 20:25:43 linux amavis[2667]: (02667-07) (!!)WARN: all primary virus scanners failed, considering backups
Feb 1 20:25:44 linux postfix/smtpd[14759]: disconnect from work.net[192.168.0.45]
Feb 1 20:25:49 linux postfix/qmgr[13134]: B4EB82FC9A: from=<neurex@work.net>, size=740, nrcpt=1 (queue active)
Feb 1 20:25:49 linux postfix/smtpd[15248]: warning: connect to private/tlsmgr: No such file or directory
Feb 1 20:25:49 linux dovecot: deliver(work@work.net): mail_location: Ambiguous mail location setting, don't know what to do with it: /var/vmail/work.net/work/Maildir (try prefixing it with mbox: or maildir:)
Feb 1 20:25:49 linux dovecot: deliver(work@work.net): Fatal: Namespace initialization failed
Feb 1 20:25:49 linux postfix/pipe[15254]: B4EB82FC9A: to=<work@work.net>, relay=dovecot, delay=1163, delays=1162/0.11/0/0.09, dsn=4.3.0, status=deferred (temporary failure)
Feb 1 20:25:50 linux postfix/smtpd[15248]: warning: connect to private/tlsmgr: No such file or directory
Feb 1 20:25:50 linux postfix/smtpd[15248]: warning: problem talking to server private/tlsmgr: No such file or directory
Feb 1 20:25:50 linux postfix/smtpd[15248]: warning: no entropy for TLS key generation: disabling TLS support
Feb 1 20:25:50 linux postfix/smtpd[15248]: connect from unknown[127.0.0.1]
Feb 1 20:25:50 linux postfix/smtpd[15248]: 3DBCA2FC9E: client=unknown[127.0.0.1]
Feb 1 20:25:50 linux postfix/cleanup[15242]: 3DBCA2FC9E: message-id=<20100201192539.A8E412FC95@linux.work.net>
Feb 1 20:25:50 linux postfix/qmgr[13134]: 3DBCA2FC9E: from=<neurex@work.net>, size=740, nrcpt=1 (queue active)
Feb 1 20:25:50 linux postfix/smtpd[15248]: disconnect from unknown[127.0.0.1]
Feb 1 20:25:50 linux amavis[2667]: (02667-07) Passed CLEAN, MYNETS LOCAL [192.168.0.45] [192.168.0.45] <neurex@work.net> -> <work@work.net>, Message-ID: <20100201192539.A8E412FC95@linux.work.net>, mail_id: veekMBMbwGd0, Hits: -0.155, size: 329, queued_as: 3DBCA2FC9E, 6947 ms
Feb 1 20:25:50 linux postfix/smtp[15245]: A8E412FC95: to=<work@work.net>, relay=127.0.0.1[127.0.0.1]:10024, delay=18, delays=11/0.04/0.02/6.9, dsn=2.0.0, status=sent (250 2.0.0 Ok, id=02667-07, from MTA([127.0.0.1]:10025): 250 2.0.0 Ok: queued as 3DBCA2FC9E)
Feb 1 20:25:50 linux postfix/qmgr[13134]: A8E412FC95: removed
Feb 1 20:25:50 linux dovecot: deliver(work@work.net): mail_location: Ambiguous mail location setting, don't know what to do with it: /var/vmail/work.net/work/Maildir (try prefixing it with mbox: or maildir:)
Feb 1 20:25:50 linux dovecot: deliver(work@work.net): Fatal: Namespace initialization failed
Feb 1 20:25:50 linux postfix/pipe[15254]: 3DBCA2FC9E: to=<work@work.net>, relay=dovecot, delay=0.17, delays=0.04/0/0/0.13, dsn=4.3.0, status=deferred (temporary failure)
So, genannter Order /var/vmail/work.net... existiert nur bis in den vmail Ordner. Wie wird dieser normalerweiße angelegt?

Die main.cf von Postfix sieht folgendermaßen aus:

inet_protocols = all
biff = no
mail_spool_directory = /var/mail
canonical_maps = hash:/etc/postfix/canonical
virtual_alias_domains =
relocated_maps = hash:/etc/postfix/relocated
transport_maps = proxy:mysql:/etc/postfix/mysql-virtual_transports.cf
sender_canonical_maps = hash:/etc/postfix/sender_canonical
masquerade_exceptions = root
masquerade_classes = envelope_sender, header_sender, header_recipient
myhostname = linux.work.net
delay_warning_time = 1h
message_strip_characters = \0
program_directory = /usr/lib/postfix
inet_interfaces = all
masquerade_domains =
mydestination = linux.work.net, localhost, localhost.localdomain
defer_transports =
mynetworks_style = subnet
disable_dns_lookups = no
relayhost =
content_filter = amavis:[127.0.0.1]:10024
mailbox_command =
mailbox_transport =
strict_8bitmime = no
disable_mime_output_conversion = no
smtpd_sender_restrictions = check_sender_access mysql:/etc/postfix/mysql-virtual_sender.cf
smtpd_client_restrictions = check_client_access mysql:/etc/postfix/mysql-virtual_client.cf
smtpd_helo_required = no
smtpd_helo_restrictions =
strict_rfc821_envelopes = no
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, check_recipient_access mysql:/etc/postfix/mysql-virtual_recipient.cf, reject_unauth_destination
smtp_sasl_auth_enable = no
smtpd_sasl_auth_enable = yes
smtpd_use_tls = yes
smtp_use_tls = no
alias_maps = hash:/etc/aliases
mailbox_size_limit = 0
message_size_limit = 0
mynetworks = 127.0.0.0/8 [::1]/128
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_domains.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailboxes.cf
virtual_mailbox_base = /var/vmail
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
broken_sasl_auth_clients = yes
smtpd_sasl_authenticated_header = yes
smtpd_tls_security_level = may
smtpd_tls_cert_file = /etc/postfix/smtpd.cert
smtpd_tls_key_file = /etc/postfix/smtpd.key
relay_recipient_maps = mysql:/etc/postfix/mysql-virtual_relayrecipientmaps.cf
virtual_create_maildirsize = yes
virtual_maildir_extended = yes
#virtual_mailbox_limit_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailbox_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_maildir_limit_message = "The user you are trying to reach is over quota."
virtual_overquota_bounce = yes
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps
maildrop_destination_concurrency_limit = 1
maildrop_destination_recipient_limit = 1
virtual_transport = dovecot
header_checks = regexp:/etc/postfix/header_checks
mime_header_checks = regexp:/etc/postfix/mime_header_checks
nested_header_checks = regexp:/etc/postfix/nested_header_checks
body_checks = regexp:/etc/postfix/body_checks
dovecot_destination_recipient_limit = 1
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
receive_override_options = no_address_mappings

Dort steht auch die von mir auskommertierte Zeile

virtual_mailbox_limit_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailbox_limit_maps.cf

drin. Die schreibt der Installer mitrein, legt die Datei aber nicht an. Ist das normal so? Und wieso werden in den anderen Dateien die Hosts für die MySQL Datenbank mit IP Adressen und nicht mit Domainnamen angegeben?
 
Code:
mail_location: Ambiguous mail location setting, don't know what to do with it

Das ist ein Fehler in Dovecot genauso wie.

Code:
Fatal: Namespace initialization failed

Poste doch mal die dovecot.conf
 

neurex

Member
Liegt im Anhang. Ging leider nur als ZIP wegen Zeichen und Größenbeschränkung... sorry.
 

Anhänge

  • dovecot.zip
    33,3 KB · Aufrufe: 640
Versuch mal

Code:
protocol lda {
    log_path = /ANPASSEN/vmail/dovecot-deliver.log
    auth_socket_path = /var/run/dovecot/auth-master
    postmaster_address = test@example.com
    #mail_plugins = sieve quota expire
}
Code:
Ist nicht unbedingt nötig, kann aber auch nicht schaden
namespace private {
    separator = .
    prefix = INBOX.
    inbox = yes           
    subscriptions = yes
}
Eventuell must du den auth_socket_path anpassen. Ansonsten schalte mal das Debugging von Dovecot ein. Wenn das so nicht klappt nimm mal den user_query aus der dovecot-sql raus, und setzt dann das Maildir per Hand, nur um erstmal zuschauen ob es geht. Dazu noch:

Code:
Muß zum Maildir passen.
userdb static {
    args = uid=5000 gid=5000 home=/ANPASSEN/vmail/%d/%n allow_all_users=yes
}
 

neurex

Member
Okay aktueller Fehlerbericht:

Feb 4 22:09:03 linux postfix/master[14440]: terminating on signal 15
Feb 4 22:09:03 linux postfix/postfix-script[14707]: starting the Postfix mail system
Feb 4 22:09:04 linux postfix/master[14708]: daemon started -- version 2.6.1, configuration /etc/postfix
Feb 4 22:09:05 linux postfix/qmgr[14723]: 2F39127C33: from=<wwwrun@linux.work.net>, size=2347, nrcpt=1 (queue active)
Feb 4 22:09:05 linux dovecot: deliver(work@work.net): userdb lookup: connect(/var/run/dovecot/auth-master) failed: No such file or directory
Feb 4 22:09:05 linux postfix/pipe[14738]: 2F39127C33: to=<work@work.net>, relay=dovecot, delay=1903, delays=1903/0.08/0/0.03, dsn=4.3.0, status=deferred (temporary failure)
Feb 4 22:09:05 linux dovecot: Dovecot v1.2.9 starting up (core dumps disabled)
Feb 4 22:09:05 linux dovecot: auth-worker(default): mysql: Connected to localhost (dbispconfig)

Die Datei auth-master existiert, keine Ahnung warum er diese nicht findet aber ab und an meldet er mir einen setgid(5000) Fehler. Okay 5000 soll normalerweiße der User/Group vmail sein. Unter openSUSE ist das aber mittlerweile nichtmehr 5000 sondern 303. In der main.cf von postfix hab ich das schon angepasst aber irgendwo muss noch die 5000 erwähnt werden. Kann es sein das er sich diese aus der Datenbank holt?
 

Till

Administrator
Schau mal in ispconfig unter system > server config > Server 1 auf dem mail tab. Änderungen dort gelten aber nur für neu angelegte mail user, für existierende müsstest Du die Einträge in der mail_user Tabelle manuell ändern.
 

neurex

Member
Ah jetzt hab ich immerhin schonmal einen Teilerfolg.

Also. Habe die GID und die UID in ISPC3 entsprechend umgestellt und in der dovecot.conf die folgenden Parameter angepasst:

mail_location = maildir:/var/vmail/%d/%n/Maildir

und

userdb static {

args = uid=303 gid=303 home=/var/vmail/%d/%n/Maildir allow_all_users=yes

}

So, damit legt er die entsprechenden Mailverzeichnise unter /var/vmail an und ich kann darauf auch zugreifen und der Mailversand über Postfix/Dovecot zu diesen Usern klappt. Wenn ich das ganze userdb static jetzt wieder auskommentiere und dafür userdb sql reinnehme kann ich immernoch connecten ABER nur wenn die Verzeichnisse für den Mailuser schon existieren! Ist dies nicht der Fall beendet Dovecot sofort die Verbindung. In der deliver-log taucht dann folgendes auf:

2010-02-07 13:26:52 pop3-login: Info: Login: user=<work@work.net>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, secured
2010-02-07 13:26:52 POP3(work@work.net): Error: mail_location: Ambiguous mail location setting, don't know what to do with it: /var/vmail/work.net/work/Maildir (try prefixing it with mbox: or maildir:)
2010-02-07 13:26:52 POP3(work@work.net): Fatal: Namespace initialization failed
Ich hab aber mittlerweile absolut keine Ahnung woher das kommt...
 
Zuletzt bearbeitet:

Till

Administrator
Wenn ich das ganze userdb static jetzt wieder auskommentiere und dafür userdb sql reinnehme kann ich immernoch connecten ABER nur wenn die Verzeichnisse für den Mailuser schon existieren!

Die Verzeichnisse werden ja auch durch das mail plugin von ispconfig angelegt, sie sind also für jeden mail account bereits vorhanden und müssen nicht durch dovecot angelegt werden.

Überprüf bitte mal, dass Du in ispconfig auch unter system > server config auf dem mail tab bei pop3/ imap daemon "dovecot" und bei mailfilter syntax "Sieve" ausgewählt hast.
 

neurex

Member
Ah... gut zu wissen.

Ja, es steht Dovecot und Sieve drin!

Ich kann dir ja gerne mal meine Dovecot und Postfix confs zukommenlassen, weil wie gesagt sobald die Verzeichnisse angelegt sind klappt alles.
 
Zuletzt bearbeitet:

Till

Administrator
Ich kann dir ja gerne mal meine Dovecot und Postfix confs zukommenlassen, weil wie gesagt sobald die Verzeichnisse angelegt sind klappt alles.
Ja, das wäre gut. Schick sie bitte an dev [at] ispconfig [dot] org

Wird denn bei Dir kein neues Verzeichnis durch ispconfig angelegt, also wenn Du eine neue mailbox anlegst, dann wartest bis im monitor der eintrag aus der jobqueue entfernt ist und dann nachsiehst, ob das maildir existiert?
 

neurex

Member
Ja, das wäre gut. Schick sie bitte an dev [at] ispconfig [dot] org

Okay, mach ich.

Wird denn bei Dir kein neues Verzeichnis durch ispconfig angelegt, also wenn Du eine neue mailbox anlegst, dann wartest bis im monitor der eintrag aus der jobqueue entfernt ist und dann nachsiehst, ob das maildir existiert?

Nein, deswegen dachte ich ja auch das es ein Konfigurationsfehler meinerseits mit Dovecot/Postfix ist und diese beiden eigentlich die Verzeichnisse anlegen sollten...

Habe dem Verzeichnis (also /var/vmail) schon volle Rechte für alles eingeräumt aber tun tut sich nichts...

EDIT: Okay E-Mail ist raus!
 
Zuletzt bearbeitet:

Till

Administrator
Schalte mal debugging in ispconfig ein, dann leg ein neues postfach an und poste mal, was er ins ispconfig log oder auf die shell schreibt, wenn du server.sh aufrufst. An den rechten sollte es nicht liegen denke ich, da das server.sh script als root läuft.
 

neurex

Member
Okay mach ich gleich mal aber vorher noch kurz hast du meine E-Mail gekriegt? Weil irgendwie hab ich ne rejectete im Eingang...
 

neurex

Member
Schalte mal debugging in ispconfig ein, dann leg ein neues postfach an und poste mal, was er ins ispconfig log oder auf die shell schreibt, wenn du server.sh aufrufst. An den rechten sollte es nicht liegen denke ich, da das server.sh script als root läuft.

Also hab zwar in der config.inc.php den Loglevel auf 0 gesetzt aber schreiben tut er in die Logdatei trotzdem nichts.

Beim aufruf der server.sh bekomme ich nur ein "finished."
 

Till

Administrator
Du setzt ja eine SV Version ein, da wird das in den Server settings eingestellt und nicht mehr über die config Datei.
 

Werbung

Top