Virtual Users | Verständnisfrage

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

Virtual Users | Verständnisfrage

Stefanie Leisestreichler
Hallo.

Ich hätte noch eine Verständnisfrage zu Virtual Users.

In main.cf habe ich folgende Optionen gesetzt:
virtual_mailbox_base = /var/spool/virtual_mailboxes
smtpd_recipient_restrictions = permit_mynetworks,
reject_unauth_destination, check_policy_service inet:127.0.0.1:60000

In /etc/postfix/virtual_mailboxes_recipients habe ich folgenden Eintrag:
[hidden email]           ppim_kontakt

Für diesen User habe ich auch einen Eintrag in /etc/dovecot/users:
[hidden email]:{SHA512-CRYPT}$6$2gekürzt.:::::::

Nehme ich den Eintrag in der /etc/postfix/virtual_mailboxes_recipients
für [hidden email] raus, ist Mail an
[hidden email] nicht mehr zustellbar mit folgender
Fehlermeldung: Recipient address rejected: User unknown in virtual
mailbox table. Das ist wohl auf reject_unauth_destination zurück zu
führen, wie ich denke.

Überhaupt auf die Idee gekommen, diesen Eintrag zu entfernen bin ich,
weil unter /var/spool/virtual_mailboxes/ kein Verzeichnis ppim_kontakt/
vorhanden ist, sondern lediglich unter dem Home-Verzeichnis der Virtual
User, die ich in Dovecot definiert habe, nämlich unter
/home/vmail/[hidden email]/Maildir/ (Dort landet
die Mail auch).

Dazu hätte ich 2 Fragen:
1) Ist meine Konfiguration in /etc/postfix/virtual_mailboxes_recipients
überhaupt richtig und falls ja, warum gibt man dort dann ein Verzeichnis
an, welches nicht genutzt wird?

2) Gibt es eine Möglichkeit auf die unter Dovecot definierten
Mailboxen/UserDB zu prüfen sodass man sich die doppelten Einträge sparen
kann?

Oder habe ich das komplett falsch verstanden?

Danke,
Steffi
Reply | Threaded
Open this post in threaded view
|

Re: Virtual Users | Verständnisfrage

Patrick Ben Koetter-2
Hallo Steffi,

* Stefanie Leisestreichler <[hidden email]>:

> Ich hätte noch eine Verständnisfrage zu Virtual Users.
>
> In main.cf habe ich folgende Optionen gesetzt:
> virtual_mailbox_base = /var/spool/virtual_mailboxes
> smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination,
> check_policy_service inet:127.0.0.1:60000
>
> In /etc/postfix/virtual_mailboxes_recipients habe ich folgenden Eintrag:
> [hidden email]           ppim_kontakt
>
> Für diesen User habe ich auch einen Eintrag in /etc/dovecot/users:
> [hidden email]:{SHA512-CRYPT}$6$2gekürzt.:::::::
>
> Nehme ich den Eintrag in der /etc/postfix/virtual_mailboxes_recipients für
> [hidden email] raus, ist Mail an
> [hidden email] nicht mehr zustellbar mit folgender
> Fehlermeldung: Recipient address rejected: User unknown in virtual mailbox
> table. Das ist wohl auf reject_unauth_destination zurück zu führen, wie ich
> denke.
>
> Überhaupt auf die Idee gekommen, diesen Eintrag zu entfernen bin ich, weil
> unter /var/spool/virtual_mailboxes/ kein Verzeichnis ppim_kontakt/ vorhanden
> ist, sondern lediglich unter dem Home-Verzeichnis der Virtual User, die ich
> in Dovecot definiert habe, nämlich unter
> /home/vmail/[hidden email]/Maildir/ (Dort landet die
> Mail auch).
>
> Dazu hätte ich 2 Fragen:
> 1) Ist meine Konfiguration in /etc/postfix/virtual_mailboxes_recipients
> überhaupt richtig und falls ja, warum gibt man dort dann ein Verzeichnis an,
> welches nicht genutzt wird?
>
> 2) Gibt es eine Möglichkeit auf die unter Dovecot definierten
> Mailboxen/UserDB zu prüfen sodass man sich die doppelten Einträge sparen
> kann?
>
> Oder habe ich das komplett falsch verstanden?

Du willst die Mail mit Postfix (nach Prüfung) annehmen und dann soll Dovecot
sie erhalten und an den Account ausliefernm, ja?

In diesem Fall kannst Du Dir das Setup vereinfachen:

- Postfix routet und filtert, aber es verwaltet keine Mailboxen mehr
- Postfix betrachtet die Empfängerdomain als relay_domain
- Postfix übergibt alle Nachrichten an diese relay_domain an dovecot
- Dovecot betreibt einen LMTP-Server und nimmt die Nachrichten an
- Dovecot wendet serverseitige SIEVE-Filter an (optional)
- Dovecot legt die Nachrichten in Mailboxen ab

Konfiguriere Dir Dovecot dazu so, dass es einen LMTP-Server auf
127.0.0.1:24 startet. Dann trage in Postfix die Empfängerdomain in
$relay_domains ein.

Damit Postfix Nachrichten für die Empfängerdomain zu dovecot routet braucht
Postfix eine $transport_maps:

empfaengerdomain               lmtp:127.0.0.1:24

Jetzt kannst Du Nachrichten an Mailboxen in dovecot senden.

Möglicherweise hast Du jetzt aber ein Zustellproblem, denn Deine Mailbox in
Dovecot heißt [hidden email] und Du willst auch
Nachrichten von [hidden email] in diese Mailbox routen.

Das löst Du mit einer Alias-Tabelle. Es muss eine $virtual_alias_maps-Tabelle
sein, weil Postfix diese *vor* den transport_maps auswertet und dann mit dem
richtigen Ziel in der transport_maps weitersucht. Das sähe dann im Beispiel so
aus:

[hidden email]     [hidden email]


Grüße

p@rick

--
[*] sys4 AG
 
https://sys4.de, +49 (89) 30 90 46 64
Schleißheimer Straße 26/MG,80333 München
 
Sitz der Gesellschaft: München, Amtsgericht München: HRB 199263
Vorstand: Patrick Ben Koetter, Marc Schiffbauer, Wolfgang Stief
Aufsichtsratsvorsitzender: Florian Kirstein
 
Reply | Threaded
Open this post in threaded view
|

Re: Virtual Users | Verständnisfrage

Stefanie Leisestreichler

Am 21.02.19 um 15:32 schrieb Patrick Ben Koetter:

> Du willst die Mail mit Postfix (nach Prüfung) annehmen und dann soll Dovecot
> sie erhalten und an den Account ausliefernm, ja?
>
> In diesem Fall kannst Du Dir das Setup vereinfachen:
>
> - Postfix routet und filtert, aber es verwaltet keine Mailboxen mehr
> - Postfix betrachtet die Empfängerdomain als relay_domain
> - Postfix übergibt alle Nachrichten an diese relay_domain an dovecot
> - Dovecot betreibt einen LMTP-Server und nimmt die Nachrichten an
> - Dovecot wendet serverseitige SIEVE-Filter an (optional)
> - Dovecot legt die Nachrichten in Mailboxen ab
>
> Konfiguriere Dir Dovecot dazu so, dass es einen LMTP-Server auf
> 127.0.0.1:24 startet. Dann trage in Postfix die Empfängerdomain in
> $relay_domains ein.
>
> Damit Postfix Nachrichten für die Empfängerdomain zu dovecot routet braucht
> Postfix eine $transport_maps:
>
> empfaengerdomain               lmtp:127.0.0.1:24
>
> Jetzt kannst Du Nachrichten an Mailboxen in dovecot senden.
>
> Möglicherweise hast Du jetzt aber ein Zustellproblem, denn Deine Mailbox in
> Dovecot heißtkontakt.[hidden email]  und Du willst auch
> Nachrichten [hidden email]  in diese Mailbox routen.
>
> Das löst Du mit einer Alias-Tabelle. Es muss eine $virtual_alias_maps-Tabelle
> sein, weil Postfix diese*vor*  den transport_maps auswertet und dann mit dem
> richtigen Ziel in der transport_maps weitersucht. Das sähe dann im Beispiel so
> aus:
>
> [hidden email]      [hidden email]

Wow. Genau so werde ich es machen!
1000 Dank.

Steffi
Reply | Threaded
Open this post in threaded view
|

Re: Virtual Users | Verständnisfrage

Stefanie Leisestreichler
In reply to this post by Patrick Ben Koetter-2

Am 21.02.19 um 15:32 schrieb Patrick Ben Koetter:
> Konfiguriere Dir Dovecot dazu so, dass es einen LMTP-Server auf
> 127.0.0.1:24 startet. Dann trage in Postfix die Empfängerdomain in
> $relay_domains ein.
>
> Damit Postfix Nachrichten für die Empfängerdomain zu dovecot routet braucht
> Postfix eine $transport_maps:
>
> empfaengerdomain               lmtp:127.0.0.1:24


Ich hatte bereits das dovecot lmtp in meiner Konfiguration genutzt,
allerdings über einen unix socket.

Diesen habe ich anstelle des von Dir vorgeschlagenen TCP/IP Sockets
hierfür genutzt. Das scheint zu funktionieren. Spricht etwas dagegen den
unix socket zu verwenden?

Ich habe all das hier auskommentiert, was nach meinem Verständnis dann
nicht mehr notwendig ist und nur noch die folgenden Einstellungen behalten:

# Virtual Mailbox Domains
#virtual_uid_maps = static:2222
#virtual_gid_maps = static:2222
#virtual_mailbox_domains = mxtest.example.de, example.de
#virtual_mailbox_base = /var/spool/virtual_mailboxes
#virtual_mailbox_maps = hash:/etc/postfix/virtual_mailboxes_recipients
virtual_alias_maps = hash:/etc/postfix/virtual_mailboxes_aliases
# Use Dovecot LMTP Service to deliver Mails to Dovecot ######
#virtual_transport = lmtp:unix:private/dovecot-lmtp
# Definition, wie Postfix die  Mail für bestimmte Domains befördern soll:
# Diese Definition soll für example.de ziehen:
transport_maps = hash:/etc/postfix/transport
# Hier kommen die Domains, die so behandelt werden sollen:
relay_domains = mxtest.example.de, example.de

In der /etc/postfix/transport habe ich entsprechend folgendes stehen:
mxtest.example.de     lmtp:unix:private/dovecot-lmtp

Ist das so auch OK?

Danke,
Steffi
Reply | Threaded
Open this post in threaded view
|

Re: Virtual Users | Verständnisfrage

Patrick Ben Koetter-2
* Stefanie Leisestreichler <[hidden email]>:

>
> Am 21.02.19 um 15:32 schrieb Patrick Ben Koetter:
> > Konfiguriere Dir Dovecot dazu so, dass es einen LMTP-Server auf
> > 127.0.0.1:24 startet. Dann trage in Postfix die Empfängerdomain in
> > $relay_domains ein.
> >
> > Damit Postfix Nachrichten für die Empfängerdomain zu dovecot routet braucht
> > Postfix eine $transport_maps:
> >
> > empfaengerdomain               lmtp:127.0.0.1:24
>
>
> Ich hatte bereits das dovecot lmtp in meiner Konfiguration genutzt,
> allerdings über einen unix socket.
>
> Diesen habe ich anstelle des von Dir vorgeschlagenen TCP/IP Sockets hierfür
> genutzt. Das scheint zu funktionieren. Spricht etwas dagegen den unix socket
> zu verwenden?

Es spricht sogar viele dafür. In der Transport map muss dann folgendes stehen:

domain                  lmtp:unix:/pfad/zu/socket

Wenn Postfix chrooted läuft, sollte dovecot den socket in das chroot von
Postfix legen. Sonst 'sieht' Postfix den nicht.


> Ich habe all das hier auskommentiert, was nach meinem Verständnis dann nicht
> mehr notwendig ist und nur noch die folgenden Einstellungen behalten:
>
> # Virtual Mailbox Domains
> #virtual_uid_maps = static:2222
> #virtual_gid_maps = static:2222
> #virtual_mailbox_domains = mxtest.example.de, example.de
> #virtual_mailbox_base = /var/spool/virtual_mailboxes
> #virtual_mailbox_maps = hash:/etc/postfix/virtual_mailboxes_recipients
> virtual_alias_maps = hash:/etc/postfix/virtual_mailboxes_aliases
> # Use Dovecot LMTP Service to deliver Mails to Dovecot ######
> #virtual_transport = lmtp:unix:private/dovecot-lmtp
> # Definition, wie Postfix die  Mail für bestimmte Domains befördern soll:
> # Diese Definition soll für example.de ziehen:
> transport_maps = hash:/etc/postfix/transport
> # Hier kommen die Domains, die so behandelt werden sollen:
> relay_domains = mxtest.example.de, example.de
>
> In der /etc/postfix/transport habe ich entsprechend folgendes stehen:
> mxtest.example.de     lmtp:unix:private/dovecot-lmtp
>
> Ist das so auch OK?

Sieht gut aus.

p@rick


--
[*] sys4 AG
 
https://sys4.de, +49 (89) 30 90 46 64
Schleißheimer Straße 26/MG,80333 München
 
Sitz der Gesellschaft: München, Amtsgericht München: HRB 199263
Vorstand: Patrick Ben Koetter, Marc Schiffbauer, Wolfgang Stief
Aufsichtsratsvorsitzender: Florian Kirstein
 
Reply | Threaded
Open this post in threaded view
|

Re: Virtual Users | Verständnisfrage

Stefanie Leisestreichler
Am 21.02.19 um 19:28 schrieb Patrick Ben Koetter:
>> # Virtual Mailbox Domains
>> #virtual_uid_maps = static:2222
>> #virtual_gid_maps = static:2222
>> #virtual_mailbox_domains = mxtest.example.de, example.de
>> #virtual_mailbox_base = /var/spool/virtual_mailboxes

^^ Die unter /var/spool/virtual_mailboxes angelegten Verzeichnisse
lösche ich somit.

Ebenso die unter /var/mail/$user angelegten Verzeichnisse der Virtuellen
User beabsichtige ich zu löschen.

>> #virtual_mailbox_maps = hash:/etc/postfix/virtual_mailboxes_recipients
>> virtual_alias_maps = hash:/etc/postfix/virtual_mailboxes_aliases
>> # Use Dovecot LMTP Service to deliver Mails to Dovecot ######
>> #virtual_transport = lmtp:unix:private/dovecot-lmtp
>> # Definition, wie Postfix die  Mail für bestimmte Domains befördern soll:
>> # Diese Definition soll für example.de ziehen:
>> transport_maps = hash:/etc/postfix/transport
>> # Hier kommen die Domains, die so behandelt werden sollen:
>> relay_domains = mxtest.example.de, example.de
>>
>> In der /etc/postfix/transport habe ich entsprechend folgendes stehen:
>> mxtest.example.de     lmtp:unix:private/dovecot-lmtp
>>
>> Ist das so auch OK?
> Sieht gut aus.

Perfekt. Dann bleibt das jetzt so und ich dokumentiere das entsprechend.

Jetzt ist das auch für mein Verständnis irgendwie runder geworden.

Noch nicht ganz verstanden habe ich jedoch in Verbindung mit den Virtual
Users, dass ich mit der "alten" Konfiguration in der
virtual_mailbox_maps Mailaccounts auf User mappen musste, deren
Verzeichnisse unter /var/spool/virtual_mailboxes/$user oder
/var/mail/$user nie - im Gegensatz zu den lokalen Usern - irgendwelche
Inhalte hatten. Ohne diese Definitionen funktionierte jedoch die
Zustellung an die Virtuellen User, die per dovecot definiert waren,
nicht. Ich frage mich, warum das in dieser Konstellation nur so
umsetzbar war und an welcher Stelle im Workflow das scheiterte, wenn die
Definition nicht vorhanden war.