dynaperl

100% porentief rein

Artikel mit ‘ipv6’ getagged

Policyd-weight

Mittwoch, 31. Dezember 2008

Der Postfix Policy Daemon Policyd-Weight hat in letzter Zeit einige Änderungen erfahren. So wurde er bei mir in der letzten Version noch durch Postfix gestartet (aus der master.cf) wohingegen er nun als Daemon läuft. Weiterhin gibt es einen Cache-Mechanismus der bei mir auch gleich Probleme bereitete. Bei Tests ist wohl ein Lockfile (/tmp/.policyd-weight/cache_lock) übrig geblieben das nach einem Neustart folgende Fehlermeldung im Mail.log erzeugte:

postfix/policyd-weight[22463]: warning: cache_query: $csock couln’t be created: connect: No such file or directory, calling spawn_cache()

Laut Aussage des Autors sollte besagtes Verzeichnis wenn überhaupt nur ganz kurz existieren (ein Lock eben). Nach dem Löschen des Verzeichnisses gings dann auch.

IPv6 Support gibt es übrigens leider noch nicht. Bei einer IPv6 Mail fällt die Software auf DUNNO (nichts tun) zurück. Gleiches gilt übrigens für die neue Version 2 des postfix-policyd Greylisting Daemons. Allerdings gehen hier die Mails gar nicht durch. Es gibt die Fehlermeldung: ERROR: Protocol data validation error, required parameter ‚client_address‘ was not found or invalid format. Die alte 1er Version kommt mit IPv6 Adressen zurecht. Die Adressen werden zwar etwas verstümmelt in der Datenbanktabelle abgelegt aber es funktioniert trotzdem.

CalDav Kalender Server

Mittwoch, 10. Dezember 2008

Bisher hatten wir einige Kalender mit Apache_moddav realisiert. Das führte aber immer wieder zu Problemen beim gleichzeitigen Zugriff mehrer Clients auf einen Kalender. Dabei kam dann teilweise die ICS-Datei abhanden.

Ich habe mir jetzt mal freie CalDav Server angeguckt (die Java basierenden Versionen Cosmo und Bedework habe ich gleich außen vorgelassen). DAViCal macht einen ganz interessanten Eindruck setzt aber PostgreSQL als Backend voraus. Zudem war die Liste der Abhängigkeiten (Apache + tausende Perl und Php Pakete) mir etwas zu lang. Positiv fällt allerdings auf das man Davical unter Lenny einfach als Paket installieren kann.

Ich habe mich jetzt für den Darwin Calendar Server entschieden. Der ist in Python geschrieben und unter Lenny als Debian Paket zu beziehen. Abgesehen von den unangenehmen plist Konfigurationsdateien ist mir noch nichts negatives aufgefallen. Über zwei Dateien sind schnell User und Gruppen (/etc/caldavd/accounts.xml) angelegt, x509 Zertifikat installiert und SSL aktiviert  (/etc/caldavd/caldavd.plist). Schon kann es los gehen.

Auf der Projekte Website ist die Konfiguration der Gängigen Clients beschrieben. Was hilfreich ist da sich die richtige URL zwischen Apple-iCal und Sunbird unterscheidet. Dabei ist noch anzumerken das Apples iCal die Verbindung verweigert wenn man SSL mit einem selbst signierten Zertifikat verwendet. Bevor die Anmeldung kalppt muß man sein Root-CA (oder das von cacert wenn man hier ein Zertifikat geordert hat) in der Schlüsselbundverwaltung importieren. Dazu zieht man die PAM kodierte Zertifikats Datei auf Schlüsselbunde/Anmeldung, öffnet das Zertifikat mit einem Doppelklick, öffnet den Punkt vertrauen und stellt die Auswahl auf immer vertrauen.

Der Server legt jeden Termin als eigene ics-Datei ab. Als Index verwendet er ein SQL-light Datenbank File. So funktionieren auch gleichzeitige Änderungen an einem Kalender problemlos. Ändern mal zwei Sunbird-Clients auch noch den gleichen Termin bekommt der eine von beiden (der langsamere) eine Warnung das sich der Eintrag in der Zwischenzeit geändert hat. Man hat nun die Auswahl seine Änderungen zu verwerfen oder die fremden Änderungen zu überschreiben.  Apples iCal gibt keine Warnung aus. Die Änderung geht verlohren.

Leider unterstützt der Darwin Calendar Server noch kein IPv6:

twisted.internet.error.CannotListenError: Couldn’t listen on [2001:7f0:23::42]:80: (-2, ‚Name or service not known‘).

Update:

Der Server erkennt Änderungen an dem accounts.xml und liest das File neu ein. Das ist blöd wenn man einen Syntaxfehler gemacht hat und schön da man sich ein reload spart.

Offensichtlich kann man auch eine Directory Service wie LDAP oder Active Directory als Usersdatenbank verwenden. Das gucke ich mir dann als nächstes an. 🙂