Rechteproblem mit Postfix + virtuelle Domänen + Courier

Postfix, QMail, Sendmail, Dovecot, Cyrus, Courier, Anti-Spam
johor
Posts: 5
Joined: 2006-05-24 18:13

Rechteproblem mit Postfix + virtuelle Domänen + Courier

Post by johor » 2006-05-24 19:30

Ich hänge schon den ganzen Tag an diesem scheinbar einfachen Problem:

ich habe auf meinem Server (Debian Sarge) versucht nach dem Tutorial 'ISP-ähnlicher Email Service mit Debian-Sarge und Postfix 2.1' von Christoph Haas den Email Service einzurichten.

Ich bin bis zum Schritt 9 gekommen. Hier verläuft der Test mit der Email an einen Benutzer nicht erfolgreich.
Im /var/log/mail.log erhalte ich folgende Warnung:

Code: Select all

...
May 24 17:50:22 y035 postfix/virtual[8607]: A94161973AB: to=<username@mydomain>, relay=virtual, delay=12696, status=deferred (maildir delivery failed: create /home/vmail/mydomain/user/tmp/1148485822.P8607.localhost: Permission denied)
May 24 17:50:22 y035 postfix/virtual[8607]: warning: maildir access problem for UID/GID=5000/5000: create /home/vmail/mydomain/user/tmp/1148485822.P8607.localhost: Permission denied
May 24 17:50:22 y035 postfix/virtual[8607]: warning: perhaps you need to create the maildirs in advance
...
Eigendliche eine schöne, klar formulierte Fehlermeldung :)
Aber:
Die Mailverzeichnisse sollte Postfix selbständig beim Erhalt der ersten Mail anlegen. Tut es aber nicht, da die Rechte angeblich nicht passen.
UID=5000 ist der Pseudo-User vmail und GID=5000 seine Gruppe vmail.
Das Home-Verzeichnis '/home/vmail/' ist der UID 5000 und der GID 5000 zugeordnet.
Damit Postfix auch das Home-Verzeichnis und die entsprechende UID/GID verwendet steht in der /etc/postfix/main.cf:

Code: Select all

...
virtual_mailbox_base = /home/vmail
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
...
Die Mailuser sind in der MySQL-Datenbank angelegt und dem Courier die entsprechenden Informationen über die Datenbank in der /etc/courier/authmysqlrc mitgeteilt:

Code: Select all

...
MYSQL_UID_FIELD 5000
MYSQL_GID_FIELD 5000
MYSQL_LOGIN_FIELD email
MYSQL_HOME_FIELD "/home/vmail"
MYSQL_MAILDIR_FIELD CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/')
...
Das funktioniert auch, da in der Warnung im /var/log/mail.log die richtigen Verzeichnisse angezeigt werden.
Auch verwendet Postfix die UID/GID=5000/5000 wie man in der Logdatei sehen kann.

Ein Hinweis den ich über Google gefunden habe, daß das Home-Verzeichniss keine 'ausführen' Rechte für 'others' haben könnte, trifft nicht zu.
Zu Testzwecken habe ich die Rechte für alles ab /home/vmail auf 777 gesetzt. Ohne Erfolg, die Fehlermeldung bleibt identisch!
Auch wenn ich die Verzeichnisse für die Mailuser von Hand anlege und ebenfalls chmod 777 mache kommt die gleiche Fehlermeldung.
Ein anderer hatte berichtet, wenn er chown -R postfix: /home/vmail macht funktioniert es, da Postfix als postfix ausgeführt wird...
Obwohl das bei mir nicht zutrifft ('virtual_uid_maps=static:5000', etc.) habe ich es dennoch probiert und die Fehlermeldung änderte sich ebenfalls nicht.
Postfix und Konsorten habe ich auch regelmäßig neugestartet.

Ich bin momentan ratlos...
Wo könnte ich noch ansetzen um den Fehler zufinden?

Alle Ideen und Hinweise sind willkommen!

squize
Userprojekt
Userprojekt
Posts: 741
Joined: 2003-05-19 16:46
Location: Karlsruhe

Re: Rechteproblem mit Postfix + virtuelle Domänen + Courier

Post by squize » 2006-05-27 22:59

Hallo Johor,
folgende Ideen kommen mir in den Kopf:

1. virtual_mailbox_base = /home/vmail -> virtual_mailbox_base = /home/vmail/

2. Existiert das Verzeichniss /home/vmail/mydomain ?
3. Existiert das Verzeichniss /home/vmail/mydomain/user ?
4. Existiert das Verzeichniss /home/vmail/mydomain/user/tmp/ ?

Ich habe jetzt nicht die Postfix-Doku gelesen, aber ein normales mkdir z.B. kann auch nur eine weitere Stufe anlegen ( mehrere mit mkdir -p )

Gruss

Marc

johor
Posts: 5
Joined: 2006-05-24 18:13

Re: Rechteproblem mit Postfix + virtuelle Domänen + Courier

Post by johor » 2006-05-28 00:51

Danke squize,

für die neuen Ideen.
Den Slash habe ich gleich mal ausprobiert.... leider kein Erfolg :(

Die Verzeichnisse existieren normalerweise nicht, da sie erst mit dem Empfang der ersten Mail automatisch angelegt werden. Deswegen wird in der Doku empfohlen als erstes eine Wilkommens-Mail an den neuen User zuschicken. Aber genau die kommt nicht an, mit den genannten Fehlermeldungen.

Ich habe auch schon die ganze Verzeichnisstruktur von Hand angelegt und mit den 'killer' Rechten (chmod 777) versehen.... ebenfalls kein Erfolg :(

squize
Userprojekt
Userprojekt
Posts: 741
Joined: 2003-05-19 16:46
Location: Karlsruhe

Re: Rechteproblem mit Postfix + virtuelle Domänen + Courier

Post by squize » 2006-05-28 04:41

Dann würde ich dir empfehlen mal die ganze Config zu posten, damit man sich alles anschauen kann.


Zudem könntest du mal testen, ob du dir die Probleme durch die chroot Umgebung einhandelst.

Schau mal in der master.cf nach, ob dein daemon chrooted läuft oder nicht.

Andere Ideen habe ich gerad nicht und werden mir wohl ohne die komplette config nicht einfallen.

Gruss

Marc

johor
Posts: 5
Joined: 2006-05-24 18:13

Re: Rechteproblem mit Postfix + virtuelle Domänen + Courier

Post by johor » 2006-05-28 16:40

Hier meine postconf -n:

Code: Select all

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
broken_sasl_auth_clients = yes
config_directory = /etc/postfix
disable_vrfy_command = yes
inet_interfaces = all
mailbox_size_limit = 0
mydestination = localhost.$mydomain
myhostname = windstar-club.de
mynetworks = 127.0.0.0/8, windstar-club.de
myorigin = /etc/mailname
recipient_delimiter = +
relayhost =
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
smtpd_delay_reject = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, reject
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain =
smtpd_sasl_security_options = noanonymous
smtpd_tls_cert_file = /etc/postfix/smtpd.cert
smtpd_tls_key_file = /etc/postfix/smtpd.key
smtpd_use_tls = yes
strict_rfc821_envelopes = no
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual_forwardings.cf mysql:/etc/postfix/mysql-virtual_email2email.cf
virtual_gid_maps = static:5000
virtual_mailbox_base = /home/vmail
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual_domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual_mailboxes.cf
virtual_minimum_uid = 5000
virtual_transport = virtual
virtual_uid_maps = static:5000
und hier meine /etc/postfix/master.cf:

Code: Select all

# ==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (100)
# ==========================================================================
smtp      inet  n       -       -       -       -       smtpd -v
#submission inet n      -       -       -       -       smtpd
#       -o smtpd_etrn_restrictions=reject
#628      inet  n       -       -       -       -       qmqpd
pickup    fifo  n       -       -       60      1       pickup
cleanup   unix  n       -       -       -       0       cleanup
qmgr      fifo  n       -       -       300     1       qmgr
#qmgr     fifo  n       -       -       300     1       oqmgr
rewrite   unix  -       -       -       -       -       trivial-rewrite
bounce    unix  -       -       -       -       0       bounce
defer     unix  -       -       -       -       0       bounce
trace     unix  -       -       -       -       0       bounce
verify    unix  -       -       -       -       1       verify
flush     unix  n       -       -       1000?   0       flush
proxymap  unix  -       -       n       -       -       proxymap
smtp      unix  -       -       -       -       -       smtp
relay     unix  -       -       -       -       -       smtp
#       -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq     unix  n       -       -       -       -       showq
error     unix  -       -       -       -       -       error
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
lmtp      unix  -       -       n       -       -       lmtp
anvil     unix  -       -       n       -       1       anvil

maildrop  unix  -       n       n       -       -       pipe
  flags=Ru user=vmail argv=/usr/local/bin/maildrop -d ${recipient}
uucp      unix  -       n       n       -       -       pipe
  flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
ifmail    unix  -       n       n       -       -       pipe
  flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp     unix  -       n       n       -       -       pipe
  flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -d -t$nexthop -f$sender $recipient
scalemail-backend unix  -       n       n       -       2       pipe
  flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}

User avatar
Joe User
Project Manager
Project Manager
Posts: 11578
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Rechteproblem mit Postfix + virtuelle Domänen + Courier

Post by Joe User » 2006-05-28 16:56

Nachfolgend mal mein postconf -n

Code: Select all

allow_percent_hack = no
biff = no
broken_sasl_auth_clients = yes
disable_vrfy_command = yes
home_mailbox = .maildir/
mailbox_size_limit = 102400000
masquerade_exceptions = root
message_size_limit = 20480000
mydestination = localhost
mydomain = domain.tld
myhostname = mail.domain.tld
mynetworks_style = host
myorigin = $mydomain
receive_override_options = no_address_mappings
smtpd_data_restrictions =
  reject_unauth_pipelining,
  permit
smtpd_helo_required = yes
smtpd_recipient_restrictions =
  permit_mynetworks,
  permit_sasl_authenticated,
  reject_non_fqdn_hostname,
  reject_non_fqdn_sender,
  reject_non_fqdn_recipient,
  reject_unknown_sender_domain,
  reject_unknown_recipient_domain,
  reject_unauth_destination,
  reject_invalid_hostname,
  permit
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous
smtpd_tls_CAfile = /etc/postfix/ssl/demoCA/cacert.pem
smtpd_tls_cert_file = /etc/postfix/ssl/server-crt.pem
smtpd_tls_dh1024_param_file = /etc/postfix/ssl/dh_1024.pem
smtpd_tls_dh512_param_file = /etc/postfix/ssl/dh_512.pem
smtpd_tls_key_file = /etc/postfix/ssl/server-key.pem
smtpd_tls_session_cache_database = btree:/var/run/smtpd_tls_session_cache
smtpd_use_tls = yes
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_gid_maps = static:207
virtual_mailbox_base = /var/vmail
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_limit = 102400000
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_minimum_uid = 207
virtual_transport = virtual
virtual_uid_maps = static:207

Code: Select all

mail ~ # ls -alh /var/vmail
total 8.0K
drwxrwx--x 14 postfix postfix 4.0K 2006-02-08 22:34 .
drwxr-xr-x 15 root    root    4.0K 2006-05-21 10:31 ..
drwx------  6 postfix postfix   85 2006-04-25 11:37 user1@domain.tld
drwx------  6 postfix postfix   85 2006-05-20 09:06 user2@domain.tld
drwx------  6 postfix postfix   85 2006-05-27 18:30 user3@domain.tld
HTH
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

johor
Posts: 5
Joined: 2006-05-24 18:13

Re: Rechteproblem mit Postfix + virtuelle Domänen + Courier

Post by johor » 2006-05-28 17:54

Hallo Joe User,

deine uid/gid 207 ist postfix?

User avatar
Joe User
Project Manager
Project Manager
Posts: 11578
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Rechteproblem mit Postfix + virtuelle Domänen + Courier

Post by Joe User » 2006-05-28 18:02

Ja, allerdings musst Du uid/gid entsprechend der Konfiguration Deines Systems anpassen.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

johor
Posts: 5
Joined: 2006-05-24 18:13

Re: Rechteproblem mit Postfix + virtuelle Domänen + Courier

Post by johor » 2006-05-28 18:09

Ja, genau das hatte ich gemacht.

uid/gid 5000 ist bei mir vmail, dem auch die Verzeichnisse gehören.
Aber dein Auszug der Verzeichnisrechte war goldwert :-D

ich hatte zwar überall chmod 777, aber das scheint auch nicht immer alles zuerlauben :?:
Jedenfalls habe ich nur die Rechte genau wie bei dir gesetzt, die Eigentümer habe ich belassen wie sie waren und jetzt geht es :-D

Danke!

whyte
Posts: 61
Joined: 2006-01-09 14:21

Re: Rechteproblem mit Postfix + virtuelle Domänen + Courier

Post by whyte » 2006-05-29 10:36

Hallo,

du musst den "maildirmake"-Befehl vom Courier-Paket noch ausführen, um alle relevanten Verzeichnisse anzulegen:

Code: Select all

'maildirmake /home/vmail/domain/admin/Maildir && chown -R 10000:10000 /home/vmail/domain/admin/Maildir
Postfix legt von Haus aus keine Verzeichnisse an.

Quelle: http://www.server-wissen.de/linux/hilfe ... chten.html

Gruß
Marco

User avatar
Joe User
Project Manager
Project Manager
Posts: 11578
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Rechteproblem mit Postfix + virtuelle Domänen + Courier

Post by Joe User » 2006-05-29 10:48

Postfix legt die Maildirs sehr wohl automatisch (bei Eingang der ersten Mail) an.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

whyte
Posts: 61
Joined: 2006-01-09 14:21

Re: Rechteproblem mit Postfix + virtuelle Domänen + Courier

Post by whyte » 2006-05-29 12:49

hallo,

sorry, bei mir läuft danach der procmail mit einem deliver-Skript. Dazu muss natürlich das Verzeichnis existieren ... Postfix lass ich die mails nicht direkt ausliefern ...

gruß
marco