Ziel dieser Anleitung ist die Anbindung von Fetchmail an einem LDAPv2 Server auf Basis einer Slackware-10.2 Distribution. Die Grundlage hierfür bildet die HowTo der LinuxUserGroup Wernigerode.
Vorwort Ich benutze im meinem LAN einen Verzeichnisdienst (OpenLDAP) für zentrale Administration des Netzes. Die User haben die Möglichkeit über fetchmail externe eMail-Accounts abzurufen und diese dann an den lokalen Mailserver zu übergeben. Die Zugangsdaten für die externen eMail-Konten werden dabei in der "fetchmailrc" der User hinterlegt. Damit die Zugangsdaten zentral verwaltet werden können, wird für fetchmail ein Schema erstellt und an den LDAP-Server angebunden. 1. Installation OpenLDAP Um fetchmail an LDAP anzubinden wird ein LDAP-Server, in diesem Fall OpenLDAP v.2.2.26 benötigt. Diesen kann hier (ein von mir erstelltes Paket) oder von Linuxpackages.net bezogen werden. Nach dem Download des Packetes wird es mit: installpkg /path/to/package in das System installiert. Bei der Konfiguration des Server wird nur die Basis beschrieben und nicht auf sicherheitsrelevante Aspekte eingegangen. 1.1 Konfiguration LDAP-Server Nachdem die Serversoftware installiert wurde, muss die Datei "slapd.conf" im Verzeichnis "/etc/openldap/" angepasst werden. Dieses betrifft die Abschnitte suffix, rootdn und rootpw. Diese sollten wie folgt aussehen: suffix "dc=local" rootdn "cn=Manager,dc=local" rootpw secret Nach Änderung der slapd.conf kann nun ein erster Start des LDAP-Server mit: sh /etc/rc.d/rc.ldap start durchgeführt werden. Ob der Server auch gestartet ist kann man in der Logdatei "/var/log/debug" nachverfolgen. 1.2 Schema installieren Damit fetchmail seine Informationen aus dem Verzeichnisdienst erhalten kann, wird ein Schema benötigt. Die Grundlage dafür bildet das Schema von der LUG-Wernigerode. Dieses wurde dahingehend modifiziert, daß alle Objekte und Objektklassen weltweit eindeutige OID's besitzen. Desweiteren wurden die Objekte für eine spätere Erweiterung angepasst. Das Schema, die .ldif Datei und das fetchmail-Script kann von hier bezogen werden. Nach dem Download kann das Archiv in ein Verzeichnis eurer Wahl entpackt werden. In diesem befinden sich drei Dateien, einmal das LDAP-Schema, dann die .ldif Datei und ein fetchmail-Script. Die Datei "fetchmail.schema" wird in das Verzeichnis "/etc/openldap/schema/" kopiert. In der Konfigurationsdatei "slapd.conf" wird der folgende Eintrag hinzugefügt: include /etc/openldap/schema/fetchmail.schema Der include Abschnitt sollte danach wie folgt aussehen, damit alle Objekte verifiziert werden können: ... include /etc/openldap/schema/core.schema include /etc/openldap/schema/cosine.schema include /etc/openldap/schema/nis.schema include /etc/openldap/schema/inetorgperson.schema include /etc/openldap/schema/fetchmail.schema ... Damit wird dem LDAP-Server mitgeteilt, daß er das fetchmail-Schema mit einbinden soll. Als nächstes werden die Änderungen mit dem Restart des Server wirksam gemacht: sh /etc/rc.d/rc.ldap restart Wenn der Neustart des Server ohne Fehlermeldungen verlief, kann die Verzeichnisstruktur erstellt werden. 1.3 Verzeichnisstruktur erstellen Da der LDAP-Server ein Verzeichnisdienst ist, muß eine Baumstruktur erstellt werden. Eine Beispielstruktur befindet sich in der "fetchmail-ldap.ldif". Die Struktur wird mit dem folgenden Kommando in der Server übertragen: slapadd -l /path/to/fetchmail-ldap.ldif Danach hat der Server die folgende Baumstruktur: dc=local | +- ou=Users | +- uid=testuser | +- ou=fetchmail | +-
Diese E-Mail Adresse ist gegen Spam Bots geschützt, du musst Javascript aktivieren, damit du sie sehen kannst
| +-
Diese E-Mail Adresse ist gegen Spam Bots geschützt, du musst Javascript aktivieren, damit du sie sehen kannst
| +- ... 2. Fetchmail starten Die Anpassung des LDAP-Server für die Anbindung von fetchmail ist nun abgeschlossen. Als nächstes muss fetchmail beigebracht werden den LDAP-Server zu benutzen und nicht die fetchmairc Dateien der Benutzer. Dieses wird mit dem Script "fetchmail-ldap.sh" bewerkstelligt. Das Script wird in das Verzeichnis "/usr/sbin/" kopiert und ausführbar gemacht. Wenn eine andere Verzeichnistruktur in dem LDAP-Server benutzt wird, als die in diesem Beispiel, dann muß das Script mit eienm Editor geöffnet werden und die Suchbasis und ads Kennwort angepasst werden. Abschließend muss nun nur noch fetchmail in regelmäßigen Abständen gestartet werden. Dieses kann man auf viele Wege erreichen, als Daemon, als Skript beim Aufbau einer Internetverbindung oder mit einem Cronjob was hier beschrieben wird. Mit dem bevorzugten Texteditor wird die Datei "/var/spool/cron/crontabs/root" geöffnet und die folgenden Textzeilen eingetragen: # run fetchmail-ldap after 2 hour 0 */2 * * * /usr/sbin/fetchmail-ldap.sh &> /dev/null Damit startet fetchmail aller zwei Stunden und holt die externen Mailkonten der User ab. Anregungen, Fragen, Verbesserungen Wenn ihr Fragen, Anregungen oder Verbessungsvorschläge habt, könnt ihr mir hier eine Nachricht hinterlassen. |