ICalendar mit WebDAV

Aus Linupedia
Wechseln zu: Navigation, Suche

Einführung

Es wird im Folgenden geschildert, wie man einen Apache-Server so konfiguriert, dass man den Sunbird/Lightning-Kalender als Netzwerkkalender betreiben kann. Sunbird/Lightning im Netzwerkbetrieb bringt den Vorteil mit sich, dass auch von verschiedenen Rechnern aus ein Kalender leicht und bequem auf dem neusten Stand gehalten werden kann.

Funktionsweise

Die Funktionsweise des Sunbird/Lightning-Kalenders ist sehr einfach. Sämtliche Termine und Aufgaben werden in einer ics-Datei gespeichert. Sunbird liest diese Datei aus und setzt die Werte an der vorgesehenen Stelle im Kalender ein. Im Einzelplatzbetrieb liegt diese Datei lokal auf einem Rechner. Im Netzwerkbetrieb wird diese Datei ausgelagert. Der Server muss daher so konfiguriert werden, dass man die iCalendar-Datei ersteinmal auslesen kann und weitergehend, dass man schreibzugriff auf sie bekommt um Änderungen sofort übernehmen zu können. Außerdem ist es von Vorteil, dass man den Server so absichert, dass nur ausgewählte Personen auf die ics-Datei zugreifen können.

Voraussetzungen

  • Apache-Webserver
  • Mozilla Sunbird oder Lightning als Add-on für Mozilla Thunderbird

Konfiguration von WebDAV

Diese Beschreibung wurde mit folgenden Distributionen getestet:
  • openSuSE 10.3

Benötige Apache-Module

  • dav
  • dav_fs

Optional zur Sicherheit:

  • auth_digest

Apache2 verfügt über eine vielzahl von Modulen mit denen zusätzliche Aufgaben bewältigt werden können. Die Module, die hier freigeschaltet werden müssen, heißen dav dav_fs und auth_digest. Die ersten Beiden aktivieren WebDAV. Für einen sicheren Zugriff auf die Freigaben sollte man auth_digest hinzuziehen.

Einrichtung des Apache

Standardmäßig werden eine Vielzahl von Apache-Modulen benutzt. Die Auswahl der Module sind in der Datei apache2 in /etc/sysconfig festgelegt.

Dort tragen wir in die Zeile APACHE_MODULES dav und dav_fs ein. Für den sicheren Zugriff sollte dort auch auth_digest stehen."

Ausschnitt aus /etc/sysconfig/apache2:

...
APACHE_MODULES="... auth_digest ... dav dav_fs ..."
...

Die neuhinzugefügten Apache-Module werden nach dem Neustart des Dienstes geladen.

Freigaben erstellen und absichern

Als Erstes wird ein Ordner erstellt auf den später zugegriffen und geschrieben werden soll. Dieser sollte unterhalb des DocumentRoot liegen.

Wir erstellen den Ordner mit den Namen dav für die WebDAV-Freigaben.

mkdir /srv/www/htdocs/dav

Nun noch einen Ordner, indem unser Testuser Otto später seinen Kalender ablegen kann.

mkdir /srv/www/htdocs/dav/otto

Wir ändern die Zugriffsrechte für Benutzer und Gruppe um Konflikte mit dem Apache zu vermeiden.

chown -R -v wwwrun:www /srv/www/htdocs/dav

Um sicherzugehen, dass kein anderer Benutzer an die Dateien im Ordner otto kommt empfehle ich Folgendes:

chmod 700 /srv/www/htdocs/dav/otto

Das Grundgerüst steht nun. Jetzt muss das WebDAV-Modul nur noch wissen, welche Ordner wir gerne freigeben wollen. Die Konfigurationsdateien des Apache liegen weitesgehend alle in /etc/apache2. Wir erstellen eine neue Konfigurationsdatei, die abklärt, welche Ornder wir freigeben und wer darauf zugreifen darf. Sie trägt hier den Namen webdav.conf. Wem dies zu unkreativ ist, der kann sich gerne etwas anderes überlegen. Der Inhalt der Datei kann einfach kopiert und angepasst werden.

/etc/apache2/conf.d/webdav.conf:

DavLockDB /var/lib/apache2/DavLockDB

<Location /dav/otto>
       DAV On
       DAVDepthInfinity on
       Options FollowSymlinks Indexes MultiViews
       AllowOverride None
       AuthType Digest
       AuthName "WebDAV"
       AuthUserFile /etc/apache2/passwords/webdav.htdigest.access
       Require user otto
</Location>

In der Konfigurationsdatei wurde die Zugriffsmethode Digest schon vorausgenommen. Nun kommen wir zur Absicherung, die wir schon erwähnt hatten. Der Benutzer Otto soll für seine Freigabe ein Passwort bekommen.

Zuerst legen wir eine Datei an, die die Kennwörter speichert. Es ist eigentlich egal, wo ihr diese Datei abspeichert. Hier liegt sie in /etc/apache2/passwords.

htdigest2 -c webdav.htdigest.access WebDAV otto

Dieser Befehl erstellt eine Datei webdav.htdigest.access. (Wem das zu lang ist als Name für eine Datei, kann hier kreativ zu Werke schreiten.) Der Benutzer Otto wird an den Freigabebereich "WebDAV" gebunden. Außerdem erhält er ein Passwort, mit der er sich Zugriff auf diesen verschaffen kann.

Achtung: Wer weitere Benutzer in die Datei aufnehmen möchte muss das Anhängsel -c weglassen, da sonst die Datei überschrieben wird und wichtige Einstellungen verloren gehen.

Nach dem alle Einstellungen vorgenommen worden sind, muss der Apache-Server neugestartet werden.

rcapache2 restart

Einfacher Test

Um den Erfolg der Einrichtung zu überprüfen:

http://hostname/dav/otto

Es sollte im Webbrowser ein Feld auftauchen, indem ein Benutzername samt Passwort abgefragt wird. Dies ist ein gutes Zeichen. Funktioniert auch die Anmeldung mit Name und Passwort, so sind alle Einstellungen in Ordnung.

Sunbird/Lightning konfigurieren

Neuer Kalender... > Im Netzwerk > Adresse: "http://hostname/dav/otto/ottos_kalender.ics" > Name: "ottos_kalender" > Fertig stellen

Weblinks