Exim: Virtuelle Domains + Users

Postfix, QMail, Sendmail, Dovecot, Cyrus, Courier, Anti-Spam
kase
RSAC
Posts: 1041
Joined: 2002-10-14 22:56

Exim: Virtuelle Domains + Users

Post by kase » 2003-06-12 08:25

Hi, wie ist es möglich , in Exim Mailboxen zu erstellen, ohne dass es einen localuser gibt.

Ich habe bereits viel in der Exim Doku und in HowTos gelesen, auch im Abschnitt VirtualDomains, allerdings ist dies dafür nicht brauchbar.

Dabei wird nämlich eine Aliasfile erstellt, mit der man dann eine virtuelle Domain an eine andere E-Mail-Adresse oder an user@localhost "weiterleiten" kann. Im 1. Fall benötigt man trotzdem eine weitere Mailbox, und im 2. Fall muss der User local existieren.

Wie kann ich Exim sagen, dass einfach nur eine Mail an user@domain.tld gespeichert wird im Postfach /var/spool/mail/user@domain.tld/ ohne jedes Mal einen localen Benutzer anlegen zu müssen.

jtb
Posts: 599
Joined: 2002-08-18 16:41
Location: Darmstadt

Re: Exim: Virtuelle Domains + Users

Post by jtb » 2003-06-12 09:02

Hi,

ich wollte schon sagen, benutz die Suchfunktion, aber meine früheren Threads über Exim sind nicht mehr da :cry:

Ein Problem bei Exim ist, dass es keinen "richtigen" Weg gibt. Durch die Möglichkeiten bei der Config kannst du (fast) alles machen. Du wirst nur durch die Schnittstellen zu anderen Programmen (POP3/IMAP) eingeschränkt..

Entweder du stellst zuerst deine Software-Collection zusammen oder erst die Config.. Beides hat Vor- und Nachteile..

Für meine Exim-Config hat mir http://www.world-email.cx gut geholfen!

kase
RSAC
Posts: 1041
Joined: 2002-10-14 22:56

Re: Exim: Virtuelle Domains + Users

Post by kase » 2003-06-12 09:08

Ich benutz ein fertig eingerichtetes Courier-IMAP + Horde/Imp als Webmail. Wenn ich für jeden Mail-User einen echten localen User anlege, läuft bereits alles. Hoffe mal, ich kann diese Kombination von Software auch bei VirtualDomains + VirtualUsers nutzen.

Edit: World-Exim kenne ich bereits, schon bis zum Umfallen gelesen. Auch die Exim-Doku ist mom mein bester Freund.

Dort steht nur bei BEIDEN, dass ich eine Alias-File anlegen soll, für jede Domain, in der dann steht:

user: wo.es.hingehnsoll@domain.de

und das wo.es.hingehnsoll@domain.tld ist mein Problem, mom geh ich halt über lokale User und lass die Mail dann an user@localhost gehn, klappt auch wunderbar, aber ich brauch halt für jede Virtuelle Domain einen echten User.

jtb
Posts: 599
Joined: 2002-08-18 16:41
Location: Darmstadt

Re: Exim: Virtuelle Domains + Users

Post by jtb » 2003-06-12 09:20

auch schon http://www.world-email.cx/exim/exim-help.phtml#i4a gelesen?

Vom Prinzip her, erstellst du virtuelle User.. Wie das gemacht werden kann, gibt dir Courier-IMAP vor.

captaincrunch
Userprojekt
Userprojekt
Posts: 7225
Joined: 2002-10-09 14:30
Location: Dorsten

Re: Exim: Virtuelle Domains + Users

Post by captaincrunch » 2003-06-12 09:21

Ansonsten hier mal ein Auszug aus meinem noch unfertigen HowTo dazu :
Die Besonderheit der virtuellen Domains besteht darin, dass sämtliche local-parts (wie z.B. webmaster@domain.tld) reine Aliase auf andere Adressen sind, und es daher keine "echten" Postfächer gibt, wobei das Ziel des Alias natürlich auch auf dem selben Server liegen kann.

Da für jede virtuelle Domain ein eigenes Aliasfile angelegt werden kann, wäre es möglich, die Pflege des Aliasfiles durch jemand anderen (z.B. den Kunden) vornehmen zu lassen.

Um Virtual Domains nutzen zu können, ist zunächst ein neuer Director in der /etc/exim/exim.com zu erstellen. Aus Performancegründen ist es ratsam, diesen vor den anderen (standardmäßig ist der erste Director real_local) zu plazieren.

Der Director sieht dann wie folgt aus :


virtuals:
driver = aliasfile
domains = /etc/exim/virtuals
file =/home/$domain/aliases
search_type = lsearch
no_more


Zur Vorgehensweise :

In der Datei /etc/exim/virtuals werden sämtliche Domainnamen für die virtuellen Domains eingetragen. Sofern man Wildcardeinträge im DNS für die Domains nutzt, bietet sich hierfür die Form


*.virtdomain.tld


an, da Subdomains sonst nicht erfasst würden.

Die eigentlichen Aliasfiles sollten dann unter /home/virtualdomain.tld angelegt, und dem User / Kunden ein Scheibrecht dafür eingeräumt werden, damit er / sie die Aliase selbst pflegen kann. Je nach Aufbau des Systems muss hier natürlich der richtige Pfad angegeben werden.
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc

kase
RSAC
Posts: 1041
Joined: 2002-10-14 22:56

Re: Exim: Virtuelle Domains + Users

Post by kase » 2003-06-12 09:27

ja klar, eben gerade zum 20 Mal ^^

Code: Select all

Angelegt wird:
 /var/spool/virtual/meinelangedomain.org
 /etc/exim/virtual/meinelangedomain.org/aliases
  Format:
  [username]:	da.solls@hin.und.weg.de, und@da.solls.auch.hin.de
Da ist mein Problem. da.solls@hin.und.weg.de, was soll da verflucht noch ma hin ? :D
Wie gesagt, bisher habe ich echte User angelegt, und dann user@localhost eingetragen, das klappt aber NUR, wenn es ein ECHTER User ist.

Außerdem steht, dass man einen virtual_deliver anlegen soll, steht aber nirgends der Aufbau eines Virtualdeliver, und ich weiß auch nicht genau, was genau da gemeint ist.

Aber CaptainCrunch hat da bereits was noch nicht veröffentliches in debianhowto.de, nicht, dass wir hier jetzt doppelte Arbeit machen. Aber ich denke, von 2 Usern kann nur besser sein, als nur von einem, wenns jetzt nicht genau exakt das gleichei st.

jtb
Posts: 599
Joined: 2002-08-18 16:41
Location: Darmstadt

Re: Exim: Virtuelle Domains + Users

Post by jtb » 2003-06-12 09:38

ok, ich poste mal meine Config und hoffe, dass es dir was hilft..
Das ganze musst du dann noch an Courier-IMAP anpassen:

Transports:

Code: Select all

virtual_localdelivery:
  driver = appendfile
  create_directory = true
  directory_mode = 700
  file = /var/spool/virtual/${domain}/${local_part}
  headers_remove = "Bcc"
  user = mail
  group = mail
  mode = 660
Directors:

Code: Select all

virtual_localuser:
   driver = aliasfile
   transport = virtual_localdelivery
   domains = partial-lsearch;/etc/exim/virtual/domains
   file = /etc/exim/virtual/${domain}/passwd
   search_type = lsearch
 
virtual_alias:
   driver = aliasfile
   domains = partial-lsearch;/etc/exim/virtual/domains
   file = /etc/exim/virtual/${domain}/aliases
   search_type = lsearch*
   user = mail   
   qualify_preserve_domain

kase
RSAC
Posts: 1041
Joined: 2002-10-14 22:56

Re: Exim: Virtuelle Domains + Users

Post by kase » 2003-06-12 09:39

Das selbe gilt übrigens auch für deinen Text Captain. Das ZIEL, was ist das ? Das Ziel MUSS doch ein echtes Postfach sein, und so eins gibts ja scheinbar nur für einen echten User. Also zB echter_user@localhost, wie ich es bisher gemacht habe ?

So wie ich das sehe, ist das nur dafür gut, wenn ein User kase existiert, dann könnte man SO ihm auch bla@domain.tld und nochmabla@domain.tld zuweisen, aber NUR, weil es bereits ein echtes Postfach für den User Kase gibt, nämlich kase@localhost.



Aber ich glaube, ich bin gerade auf dem total falschen Dampfer, wäre nett, wenn ihr mich da mal Schritt für Schriit aufklärt.

captaincrunch
Userprojekt
Userprojekt
Posts: 7225
Joined: 2002-10-09 14:30
Location: Dorsten

Re: Exim: Virtuelle Domains + Users

Post by captaincrunch » 2003-06-12 09:41

Das selbe gilt übrigens auch für deinen Text Captain. Das ZIEL, was ist das ? Das Ziel MUSS doch ein echtes Postfach sein, und so eins gibts ja scheinbar nur für einen echten User. Also zB echter_user@localhost, wie ich es bisher gemacht habe ?
Das Ziel kann jedes mögliche Postfach sein, egal, ob das auf dem Server selber liegt, der Grundgedanke der Virtual Domains ist aber, genau davon wegzukommen. Stell's dir einfach als bessere Weiterleitung auf eine andere Adresse (aliasing) vor.
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc

kase
RSAC
Posts: 1041
Joined: 2002-10-14 22:56

Re: Exim: Virtuelle Domains + Users

Post by kase » 2003-06-12 09:41

postest du mal bitte, wie deine aliases für eine Domain aussieht ?

Dann seh ich endlich mal, was dieses mysteriöse ZIEL ist :)

kase
RSAC
Posts: 1041
Joined: 2002-10-14 22:56

Re: Exim: Virtuelle Domains + Users

Post by kase » 2003-06-12 09:49

CaptainCrunch wrote: Das Ziel kann jedes mögliche Postfach sein, egal, ob das auf dem Server selber liegt, der Grundgedanke der Virtual Domains ist aber, genau davon wegzukommen. Stell's dir einfach als bessere Weiterleitung auf eine andere Adresse (aliasing) vor.
Es ist ja genau mein Ziel, ein Postfach anzulegen, mit einer virtuallen Domain und einem virtuellen User.

Wenn ich dafür eh ein echtes Postfach eines echten Users brauch, dann bringt mir das Aliasing herzlich wenig, dann kann ich auch jedes Mal gleich ein echten User anlegen.

Ich will einfach nur, dass eine Mail an user@domain.tld im Maildir-Format in /var/spool/mail/domain/user/ gespeichert wird, das wars schon, den Rest kann ich mit Courier einstellen.

Vermutlich mach ich mich schon lächerlich, oder wir reden irgendwie aneinander vorbei :D

kase
RSAC
Posts: 1041
Joined: 2002-10-14 22:56

Re: Exim: Virtuelle Domains + Users

Post by kase » 2003-06-12 16:45

So, ich habe mir gerade mal CaptainCrunchs HowTo durchgelesen, aber das ist nicht das, was ich will.

In dem HowTo wird lediglich beschrieben, wie ich mehrere Domains bzw EMail-Adressen auf ein bestehendes Postfach umleiten kann. Mal angenommen, es existiert das Postfach kase@domain.tld, dann könnte ich das HowTo dafür nutzen, webmaster,info,mail,... ebenfalls auf dieses Postfach umzulenken, ohne dafür jeweils extra Postfächer bzw EMail Adressen anzulegen.

ABER das ist NICHT das, was ich WILL.

Ok, ich beschreibe es mal an einem konkreten Beispiel.

Ich möchte dem User "Flo" ein eigenes Postfach geben, mit dem er Mails verschicken kann, abholen kann, per POP/IMAP.

Meine vorgehensweise BISHER:

Ich habe den User lokal angelegt, und dann in meine Alias-File geschrieben (von meiner Domain):

user: user@localhost
zB
kase: kase@localhost

So sind alle E-Mails von kase@domain.tld zu kase@localhost geleitet worden, und kase@localhost ist ja der echte "ShellUser". Wenn ich jetzt zB auch webmaster, ino @domain.tld haben wollte, habe ich die Alias File um folgende Einträge ergänzt:

webmaster: kase@localhost
info: kase@localhost
...

Klappt auch alles wunderbar, nur ist eben genau NICHT das, was ich will, da kase dann ein echter User sein muss.


Was ich will: Ich möchte einem User ("flo") ein eigenes Postfach geben. Allerdings will ich dafür keinen echten User in passwd anlegen. Dies hätte wiederrum zur Folge, ich kann in meiner Aliasfile flo: flo@localhost nicht nutzen, da ja Flo auf localhost nicht existiert, da kein echter User.

Ok, ganz konkrete Frage, wie kann ich dem User Flo ein Postfach geben, ohne ihn als echten user anzulegen ?

Hoffe, dass wir jetzt endlich nicht mehr aneinander vorbeireden. Viel deutlicher denke ich, kann ich es nicht ausdrücken.

mstuebner
RSAC
Posts: 184
Joined: 2002-06-19 00:05
Location: 84424 Isen

Re: Exim: Virtuelle Domains + Users

Post by mstuebner » 2003-06-12 16:58

kase wrote:ABER das ist NICHT das, was ich WILL.
Ich kann gut nachvollziehen wie es Dir geht, denn vor dem selben Problem stand ich mit Postfix auch und bin gescheitert.

Das eizige was ich beitragen kann ist Dir zu sagen dass ich, allerdings zusammen mit QMail, das mit vpopmail mache. Dann hast Du wirklich nur noch virtuelle User. Aber ob und wie man das mit Deiner Konfiguration zusammengebastelt bekommt kann ich Dir nicht sagen.

captaincrunch
Userprojekt
Userprojekt
Posts: 7225
Joined: 2002-10-09 14:30
Location: Dorsten

Re: Exim: Virtuelle Domains + Users

Post by captaincrunch » 2003-06-12 17:04

OK, hier also mal ein paar Code-Snippets ausgehend von meinem (noch kommenden) HowTo :

Code: Select all

virtual_localdelivery:
  driver = appendfile
  create_directory = true
  directory_mode = 700
  file = /var/spool/virtual/${domain}/${local_part}
  headers_remove = "Bcc"
  user = mail
  group = mail
  mode = 660
Das ist dann der zugehörige Transport, den du an geeigneter Stelle einfügen musst.
Das Verzeichnis /var/spool/virtual (sowie alle Unterverzehcnisse sollten mail:mail gehören, du musst es erst anlegen. Dort landen dann die Mail für den User.

Der zuständige Director sähe dann wie folgt aus :

Code: Select all

virtual_localuser:
   driver = aliasfile
   transport = virtual_localdelivery
   domains = lsearch;/etc/exim/virtuals
   file = /home/${domain}/aliases
   search_type = lsearch
Die /etc/exim/virtuals sollte dann das von dir schon genannte Format haben.

Testen kannst du das ganze dann per exim -d4 -bt username@domain.tld

Hth
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc

kase
RSAC
Posts: 1041
Joined: 2002-10-14 22:56

Re: Exim: Virtuelle Domains + Users

Post by kase » 2003-06-12 17:48

Ok, dann gibts Mal Infos jetzt :D :D

exim/mainlog

Code: Select all

2003-06-12 17:49:14 19QUKA-0003B2-00 <= root@legendz.de U=root P=local S=328
2003-06-12 17:49:14 19QUKA-0003B2-00 == flo@legendz.de T=virtual_localdelivery defer (-4): mailbox /var/spool/virtual/legendz.de/flo/ is not a regular file
2003-06-12 17:49:14 19QUKA-0003B7-00 <= <> R=19QUKA-0003B2-00 U=mail P=local S=579
2003-06-12 17:49:14 19QUKA-0003B2-00 Frozen

Code: Select all

:/var/spool/virtual/legendz.de/flo# exim -d4 -bt flo@legendz.de
Exim version 3.35 debug level 4 uid=0 gid=0
Berkeley DB: Sleepycat Software: Berkeley DB 3.2.9: (March 19, 2002)
Caller is an admin user
Caller is a trusted user
user name "root" extracted from gecos field "root"
virtual_localuser director: lsearch key=flo
  file="/etc/exim/aliases/legendz.de"
queued for virtual_localdelivery transport: local_part=flo domain=legendz.de
  errors_to=NULL
  domain_data= local_part_data=NULL
virtual_localuser director succeeded for flo
flo@legendz.de
  deliver to flo in domain legendz.de
  director = virtual_localuser, transport = virtual_localdelivery

Code: Select all

virtual_localdelivery:
  driver = appendfile
  create_directory = true
  directory_mode = 700
  file = /var/spool/virtual/${domain}/${local_part}/
  headers_remove = "Bcc"
  user = mail
  group = mail
  mode = 660
  maildir_format     <----

Code: Select all

virtual_localuser:
   driver = aliasfile
   transport = virtual_localdelivery
   domains = lsearch;/etc/exim/localdomains.dat
   file = /etc/exim/aliases/${domain}
   search_type = lsearch
Edit: Mir fällt gerade ein, dies könnte was mit dem MailDir Format zu tun haben, ok, jetzt seid ihr wieder dran :D :D

Edit2:

Code: Select all

:/var/spool/virtual/legendz.de# ls -l
total 8
drwx------    2 mail     mail         4096 Jun 12 17:50 flo
drwx------    5 mail     mail         4096 Jun 12 17:50 kase

captaincrunch
Userprojekt
Userprojekt
Posts: 7225
Joined: 2002-10-09 14:30
Location: Dorsten

Re: Exim: Virtuelle Domains + Users

Post by captaincrunch » 2003-06-12 17:53

Hast du /var/spool/virtuals/legendz.de/flo als Directory angelegt ?

Die Meldung : "mailbox /var/spool/virtual/legendz.de/flo/ is not a regular file" deutet eigentlich genau darauf hin ...

Immer diese editiererei ... ;)

Lösch das Verzeichnis "flo", es wird automatisch durch Exim als File angelegt.
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc

kase
RSAC
Posts: 1041
Joined: 2002-10-14 22:56

Re: Exim: Virtuelle Domains + Users

Post by kase » 2003-06-12 17:58

Code: Select all

:/var/spool/virtual/legendz.de# ls -l
total 8
drwx------    2 mail     mail         4096 Jun 12 18:03 flo
drwx------    5 mail     mail         4096 Jun 12 18:03 kase
:/var/spool/virtual/legendz.de# rmdir flo
:/var/spool/virtual/legendz.de# mail -s endlich2 flo@legendz.de
buh
.
Cc:
:/var/spool/virtual/legendz.de# ls -l
total 8
drwx------    2 mail     mail         4096 Jun 12 18:03 flo
drwx------    5 mail     mail         4096 Jun 12 18:03 kase
Hmm :)

captaincrunch
Userprojekt
Userprojekt
Posts: 7225
Joined: 2002-10-09 14:30
Location: Dorsten

Re: Exim: Virtuelle Domains + Users

Post by captaincrunch » 2003-06-12 18:00

Hast du das "maildir_format" noch drin ?
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc

kase
RSAC
Posts: 1041
Joined: 2002-10-14 22:56

Re: Exim: Virtuelle Domains + Users

Post by kase » 2003-06-12 18:03

Hab den Fehler gefunden...

Ich habe hier:

file = /var/spool/virtual/${domain}/${local_part}/

einen abschließenden / gemacht, weil ich in irgendeinem HowTo gelesen habe, dass bei maildir_format dieser da hin muss, und ich habe ja im deliver maildir_format angegeben, sonst kann mein Courier nix damit anfangen.

Und dann hat er eigentlich richtigerweise das als DIR angelegt.

Habe den / entfernt, jetzt ists ne File, aber irgendwie trotz Option maidir_format im deliver ist davon nicht viel zu sehn.

kase
RSAC
Posts: 1041
Joined: 2002-10-14 22:56

Re: Exim: Virtuelle Domains + Users

Post by kase » 2003-06-12 18:04

Hab mich komisch ausgedrückt. Es funktioniert jetzt, aber es ist OBWOHL maildir_format im Deliver eine einzige File, und die mag Courier ganz und gar nicht.

captaincrunch
Userprojekt
Userprojekt
Posts: 7225
Joined: 2002-10-09 14:30
Location: Dorsten

Re: Exim: Virtuelle Domains + Users

Post by captaincrunch » 2003-06-12 18:09

Dann mach's mal wie folgt :

Code: Select all

virtual_localdelivery: 
  driver = appendfile 
  create_directory = true 
  directory_mode = 700 
  directory = /var/spool/virtual/${domain}/${local_part}/
  headers_remove = "Bcc" 
  user = mail 
  group = mail 
  mode = 660 
  maildir_format     
Last edited by captaincrunch on 2003-06-12 18:09, edited 1 time in total.
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc

kase
RSAC
Posts: 1041
Joined: 2002-10-14 22:56

Re: Exim: Virtuelle Domains + Users

Post by kase » 2003-06-12 18:09

Omg, das passiert bei zuviel Copy&Paste...

Bei maildir_format ist natürlich file=... durch directory=... zu ersetzen, mal schaun, ob er es frisst...

Edit: Extrem Doppelposting... :D

kase
RSAC
Posts: 1041
Joined: 2002-10-14 22:56

Re: Exim: Virtuelle Domains + Users

Post by kase » 2003-06-12 18:15

Ok, passt
* CaptainCrunch ganz doll knuddel*

Jetzt muss ich nur noch Courier den neuen Mail-Path beibringen (was ein Kinderspiel sein sollte) und Exim, dass er meine auth.dat auch bei Virtuellen Usern frisst (dabei bin ich mir alles andere als sicher, wie es geht...)

kase
RSAC
Posts: 1041
Joined: 2002-10-14 22:56

Re: Exim: Virtuelle Domains + Users

Post by kase » 2003-06-12 18:30

OK, das mit dem SMTP Auth funktioniert ohne Probleme.

Eine Frage noch zum Schluss:

Wie verhält sich das ganze jetzt:
localuser <=> virtualuser

Gibt es eine Möglichkeit, jegliche Mail an irgendeinen localuser umzuleiten an den virtualuser kase@legendz.de ?

Edit: Vielleicht mit einem Aliasfile für die Domain localhost ?
*: kase@legendz.de

???

captaincrunch
Userprojekt
Userprojekt
Posts: 7225
Joined: 2002-10-09 14:30
Location: Dorsten

Re: Exim: Virtuelle Domains + Users

Post by captaincrunch » 2003-06-12 20:05

Wäre das, was ich machen würde ...
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc