Archiv für: März 2009
Wozu dient /etc/ld.so.nohwcap?
März 15th, 2009Ausgangspunkt war das Problem ldap zu starten. Als ldap-Benutzer "openldap" schlug dies fehl, funktionierte jedoch als "root" Benutzer. Dies ist normalerweise ein Hinweis auf fehlerhafte Rechteeinstellungen. Also startete ich ldap mittels "strace" und eine Zeile, die immer wieder auftauchte, war folgende:
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
Nach einem Blick ins Dateisystem stellte ich fest, dass "/etc/ld.so.nohwcap" nicht vorhanden war. Also suchte ich im Internet nach Hinweisen und kam zu dem Ergebnis, dass es sich um ein undekomentiertes Feature handelt. Soweit, so gut, aber wie muss diese Datei aussehen und welche Bedeutung hat sie?
Ein Foreneintrag, der Erklärungen lieferte, hätte mich fast dazu verleitet, ihm zu folgen, was fatale Auswirkungen gehabt hätte. Darin stand geschrieben, dass ein Anlegen von "/etc/ld.so.nohwcap" dazu geführt hätte, dass das System schneller arbeitet. Die darin beschriebene Ursache deutet jedoch darauf hin, dass es ein Problem mit hardwarespezifischen Bibliotheken gab.
Die Lösung des Rätsels lieferte Joey Hess: Dass die Datei "/etc/ld.so.nohwcap" nicht vorhanden ist, ist völlig normal. Diese Datei dient dazu, das Verwenden Hardware-optimierter Bibiotheken zu deaktivieren.
Lösung für Probleme bei der LDAP-Replikation (bdb_equality_candidates)
März 9th, 2009Seit meinem letzten Beitrag habe ich eine funktionsfähige Installation von OpenLDAP. Was nun naheliegend ist, wenn man mehrere Server verwendet, ist die automatische Synchronisation mehrerer LDAP-Installationen (Replikation). Dies ist in der Ubuntu-Anleitung auch ganz gut beschrieben.
Trotzdem gab es auch hier ein paar kleine Probleme: Nachdem alle Server die Startkonfiguration erhalten haben und auf einem der Server die Backend-Konfihuration eingespielt war (Punkt8), sollte eigentlich alles automatisch auf die anderen Server übertragen werden. Dies war jedoch nicht der Fall, sondern anstatt dessen fand sich im syslog folgende Fehlermeldung, die sich immer wieder wiederholte:
Mar 9 19:00:03 prometheus slapd[16207]: <= bdb_equality_candidates: (entryUUID) not indexed Mar 9 19:00:33 prometheus last message repeated 31 times Mar 9 19:01:03 prometheus last message repeated 24 times
Dies weist darauf hin, dass eine Überprüfung der Daten zweier Server auf Gleichheit fehlschlägt. Als Kandidat zur Verwendung zum Testen auf Gleichheit schlägt LDAP "entryUUID" vor. Hierzu findet schlägt logandzwon im Ubuntuforum folgendes vor: Zuerst legt man eine Datei "change_index.ldif" mit folgendem Inhlat an:
dn: olcDatabase={1}hdb,cn=config
changetype: modify
replace: olcDbIndex
olcDbIndex: uid,entryUUID,uniqueMember,uidNumber,gidNumber,memberUid,objectclass eq
Diese Änderungen kann man dann mittels
ldapmodify -x -D cn=admin,cn=config -W -f change_index.ldif
durchführen. Es werden also mehrere eindeutige Datenfelder, darunter auch "entryUUID", für einen Index verwendet. Da dieser zum Vergleichen der Daten verwendet wird, ist das Problem an dieser Stelle gelöst.
Noch ein kleiner Hinweis am Rande: Das Übertragen auf die anderen Server geschieht automtisch. Hierbei muss man den einzelnen LDAP-Instanzen manchmal etwas Ziet geben und darf nicht zu ungeduldig sein.
Umbenennen der initialen OpenLDAP-Domäne
März 8th, 2009Der Titel hätte auch lauten können: "Wie man sich das Leben unnötig schwer machen kann." OpenLDAP (slapd) ist unter Ubuntu einfach zu installieren. Darüber hinaus gibt es eine gute Anleitung zur Konfiguration.
Ich hatte LDAP unter Ubuntu 8.10 installiert. In dieser Version gibt es die Konfigurationsdatei /etc/ldap/slapd.conf nicht mehr. Anstatt dessen wird eine Konfigurationsdatenbank (in /etc/ldap/slapd.d) verwendet. Da ich mir das Leben beim Befüllen der LDAP-Datenbank etwas leichter machen wollte, habe ich zusätzlich phpldapadmin instlliert. Hierbei handelt es sich um ein Webfrontend zu LDAP.
Stansdardmäßig ist nach der Installation die Domäne example.com angelegt. Ich wollte natürlich eine eigene Domäne verwenden. Den ersten Schritt beschreibt obige LDAP-Anleitung und zwar einfach folgendes aufrufen:
sudo dpkg-reconfigure slapd
Danach konnte ich mich über phpldapadmin bereits über den Admin-Account der neuen Domäne einloggen. Jedoch war im Navigationsframe immer noch example.com zu lesen. Dies verschwand weder nach einem Refresh, noch nach einem Neustart, noch nach Anlegen weiterer Daten in LDAP. Eigentlich sollte in der Navigation die Baumstruktur der Daten abgebildet sein, aber anstatt dessen war immer nur "example.com" zu lesen.
Ich war mir nicht sicher, ob die LDAP-Daten wirklich korrekt aufenommen wurden, da phpldap etwas anderes anzeigen sollte. Also habe ich mich auf die Suche gemacht, was in der LDAP-Konfiguration falsche gemacht oder vergessen haben könnte...
Dieses erfolglose Unterfangen stellte sich als ziemlich unnötig heraus, als mir auffiel, dass das Problem einfach darin bestand, dass phpldapadmin nicht korrekt konfiguriert war. Dort fanden sich in den Konfiguration mehrere Einträge für "example.com". Nachdem diese ersetzt waren, funktionierte alles tadellos.
IMAP-Server dovecot
März 6th, 2009Der neue Shooting Star unter den IMAP-Servern ist dovecot und dies nicht zu unrecht. Die aktuelle Version bietet Unterstützung für IMAP Version 4.1, POP3 und einige IMAP-Erweiterungen, wie z.B. SORT, THREAD und IDLE.
Dovecot unterstützt die Mailbox-Formate mbox und Maildir. Der Unteschiede liegt darin, wo die E-Mails gespeichert werden. mbox packt alle E-Mails in eine Datei, während Maildir für jede E-Mail eine Datei anlegt. Maildir benötigt kein Datei-Locking und ist in den meisten Fällem die bessere Wahl. Der Nachteil von Maildir, langsam im Einlesen der Mails zu sein, wird durch Suchindizes, die dovecot verwendet, wettgemacht.
Dovecot bietet auch eine sehr hohe Performanz und ist sehr stabil. Interessant ist auch ein Feature, das die Entwickler Selbstheilung nennt. Darunter zu verstehen ist die Fähigkeit Probleme selbst zu beheben und z.B. einen kaputten Index selbttätig wieder herzustellen.
Sicherheit bieten SSL und TLS. Die Authentifizierung kann auf vielfältige Wege erfolgen, wie passwd-Datei, PAM, Datenbanken, LDAP, etc. Man hat auch die Möglichkeit, die Authentifizierung mit echten Systemnutzern zu koppeln oder als Alternative virtuelle E-Mailnutzer zuverwenden.
Ein weiteres Plus sind die einfache Installierbarkeit und die gute Dokumentation. Letzteres ermöglicht eine Konfiguration nahezu im Handumdrehen.