Exim4 smarthost mit LDAP-Anbindung funktioniert nicht

GreatCornholio

New Member
Hallo!

Durch google bin ich auf dieses Forum gestoßen und hoffe, dass mir hier jemand helfen kann.

Und zwar geht es um folgendes:
Ich bin gerade dabei mir für unser Familien-LAN einen kleinen Mailserver aufzusetzen.
Dieser soll Mails von verschiedenen Konten bei verschiedenen Anbietern abholen und in Maildirs von virtuellen Usern verteilen. Dort werden sie dann über IMAP zur Verfügung gestellt. Die Informationen hierfür werden über LDAP verwaltet, damit ich mir die spätere Wartung einfacher mache.

Ich habe hierzu ein LDAP-Schema erstellt, mit dem ich die Benutzerkonten verwalten kann.
Das würde dann für einen Benutzer in etwa so aussehen (Passwörter und Benutzernamen wurden natürlich verändert):
Code:
dn: uid=user1#gmx.net,ou=users,dc=intra,dc=lan
objectClass: uidObject
objectClass: simpleSecurityObject
objectClass: ExtMail
uid: user1#gmx.net
userPassword: geheimesBenutzerpasswort
ExtMailAddress: user1@gmx.net
ExtMailUserName: user1@gmx.net
ExtMailUserPasswd: geheimesMailpasswort
ExtMailReceiveServer: pop.gmx.de
ExtMailReceiveServerType: pop3
ExtMailReceiveServerOptions: keep
ExtMailSendServer: mail.gmx.de
Mit uid und userPassword meldet er sich mit seinem Mailprogramm am Server an, alles was mit "ExtMail" beginnt ist von mir erstellt und dient zum Abholen und Verschicken von Mails.

Diese Konten werden durch ein Bash-Script abgerufen und auf die Postfächer verteilt, das funktioniert soweit schon. Der Zugriff auf die Postfächer mit IMAP funktioniert auch schon.

Aber jetzt zu meinem Problem: Ich will mir einen Smarthost erstellen, der die Mails nach der Absenderadresse dem richtigen Anbieter weiterleitet.
Diesen suche ich mir über ein lookup heraus. Aber irgendwas funktioniert mit der Liste noch nicht ganz...
Code:
smarthost_auto:
	driver = manualroute
	domains = !+local_domains
	transport = remote_smtp

#	Wenn ich es so schreibe, löst er den lookup nicht auf, 
#	weil der ":" bei ldap fälschlicherweise als Trenner erkannt wird
	route_list = * ${lookup ldap{user=cn=manager,ou=users,dc=intra,dc=lan pass=geheim \
		ldap:///ou=users,dc=intra,dc=lan?ExtMailSendServer?sub?(ExtMailAddress=$sender_address)}}

#	Das selbe, wenn ich alles in Anführungszeichen setze:
	route_list = "* ${lookup ldap{user=cn=manager,ou=users,dc=intra,dc=lan pass=geheim \
		ldap:///ou=users,dc=intra,dc=lan?ExtMailSendServer?sub?(ExtMailAddress=$sender_address)}}"

#	Den Dopelpunkt durch "::" oder "\:" zu ersetzen hat auch nichts gebracht
#	Also hab ich mal das Listentrennzeichen geändert (hab ich in der Doku gefunden). 
#	Dann löst er zwar den lookup richtig auf, aber das Ergebnis ist nicht verwertbar, 
#	da er es als [B]einen[/B] string interpretiert und nicht als Liste.
	route_list = <;"* ${lookup ldap{user=cn=manager,ou=users,dc=intra,dc=lan pass=geheim \
		ldap:///ou=users,dc=intra,dc=lan?ExtMailSendServer?sub?(ExtMailAddress=$sender_address)}}"

#	Wenn ich es direkt eintrage funktioniert es wie es soll:
	route_list = * mail.gmx.de
Wie bekomme ich das hin, das es auch mit dem LDAP-Lookup funktioniert?
Ich bin echt am Verzweifeln und hab schon stundenlang gesucht und alles probiert was ich gefunden habe.
 
Kommt schon, hat echt keiner ne Idee?

Bin ich wirklich der Erste, der sowas machen will? Kann ich mir irgendwie nicht ganz vorstellen...

Oder braucht ihr vielleicht noch irgendwas?
Logs, mehr Config-Files, was immer ihr haben wollt...
 
Bin ich wirklich der Erste, der sowas machen will?

Naja, das Ganze ist jetzt schon etwas "fortgeschrittener" und geht deutlich über das hinaus, was hier die meisten Leute mit ihren verhältnismäßig kleinen (v)Servern machen. LDAP lohnt sich in den meisten Fällen bei nur einem Rechner noch nicht so ganz und wird auch von vielen Verwaltungsoberflächen (Plesk, etc) nicht unterstützt.

Wahrscheinlich wirst Du in einem dedizierten LDAP oder Exim-Forum mehr Erfolg haben.

Viele Grüße,
LinuxAdmin
 
Back
Top