Unterschiede zwischen den Revisionen 1 und 4 (über 3 Versionen hinweg)
Revision 1 vom 2009-01-04 00:03:54
Größe: 2364
Autor: DanielHess
Kommentar:
Revision 4 vom 2009-01-18 20:42:36
Größe: 7483
Autor: localhost
Kommentar: converted to 1.6 markup
Gelöschter Text ist auf diese Art markiert. Hinzugefügter Text ist auf diese Art markiert.
Zeile 2: Zeile 2:
Mit der Speicherpflicht nach §113a des TKG wurde eine neue Möglichkeit zur
sicheren Aufbewarung von Verbindungsdaten notwendig. Wenn schon Verbindungsdaten
für 6 Monate gespeichert werden müssen, dann aber so, dass sichergestellt ist,
dass kein Zugriff auf die Daten für andere Zwecke geschehen kann.
Mit der Speicherpflicht nach §113a des TKG wurde eine neue Möglichkeit zur sicheren Aufbewarung von Verbindungsdaten notwendig. Wenn schon Verbindungsdaten für 6 Monate gespeichert werden müssen, dann aber so, dass sichergestellt ist, dass kein Zugriff auf die Daten für andere Zwecke geschehen kann.
Zeile 7: Zeile 4:
Sicher gibt es sicher nie, aber einfach Logfiles herumliegen zu lassen, trifft
es bestimmt nicht. Daher wurden folgende Vorgaben getroffen:
Sicher gibt es sicher nie, aber einfach Logfiles herumliegen zu lassen, trifft es bestimmt nicht. Daher wurden folgende Vorgaben getroffen:
Zeile 12: Zeile 8:
   wiederherstellbar sein   . wiederherstellbar sein
Zeile 14: Zeile 10:
   aufwendiger Prozess um das Erstellungsdatum heruaszufinden)
  . aufwendiger Prozess um das Erstellungsdatum heruaszufinden)
Zeile 19: Zeile 14:
Die eigendlichen Logdaten werden von den Programmen, bei dennen sie anfallen
(z.B. Radius-Server für Einwahl), zusammengefasst (es wird meist mehr als ein
Datum pro Dienst verlangt) und an den Logger-Dämon übertragen.
Die eigentlichen Logdaten werden von den Programmen, bei denen sie anfallen (z.B. Radius-Server für Einwahl), zusammengefasst (es wird meist mehr als ein Datum pro Dienst verlangt) und an den Logger-Dämon übertragen.
Zeile 23: Zeile 16:
Für die Übertragung zum Logger-Dämon, der als Instanz auf allen System läuft,
auf den
nen entsprechende Daten anfallen, geschieht dabei über
Unix-Domain-Sockets (AF_LOCAL). Durch die Repräsentation als Datei im
Dateisystem und im Zusammenspiel mit den Unix-Berechtigungen, ist so auch
sichergestellt, dass ein Zugriff auf den Kommunikationskanal nur mit
entsprechenden Berechtigungen aus den Systemen selber möglich ist.
Die Übertragung zum Logger-Dämon, der als Instanz auf allen System läuft, auf denen entsprechende Daten anfallen, geschieht dabei über Unix-Domain-Sockets (AF_LOCAL). Durch die Repräsentation als Datei im Dateisystem und im Zusammenspiel mit den Unix-Berechtigungen, ist so auch sichergestellt, dass ein Zugriff auf den Kommunikationskanal nur mit entsprechenden Berechtigungen aus den Systemen selber möglich ist.
Zeile 30: Zeile 18:
Der Logger-Dämon speichert alle ihm zugetragenen Daten in einer mit AES
verschlüsslten Datei zusammen. Der symetrische Schlüssel für das AES-Logfile
wird dabei beim starten des Dämons und nach spätestens 24 Stunden aus
Zufallszahlen generiert. Die Schlüssel werden für den späteren Zugriff auf die
Log-Dateien durch eine entsprechende Schachtelung von OpenPGP-Blöcken so
gesichert, dass nur zwei Vorstandsmitglieder zusammen auf an die Schlüssel
gelangen können. Jedes Miglied des geschäftsführenden Vorstandes (nach BGB) hält
dabei einen (selber erstellten) Schlüssel.
Der Logger-Dämon speichert alle ihm zugetragenen Daten in einer mit AES verschlüsselten Datei zusammen. Der symmetrische Schlüssel für das AES-Logfile wird dabei beim Starten des Dämons und nach spätestens 24 Stunden aus Zufallszahlen generiert. Die Schlüssel werden für den späteren Zugriff auf die Log-Dateien durch eine entsprechende Schachtelung von OpenPGP-Blöcken so gesichert, dass nur zwei Vorstandsmitglieder zusammen an die Schlüssel gelangen können. Jedes Miglied des geschäftsführenden Vorstandes (nach BGB) hält dabei einen (selber erstellten) Schlüssel.
Zeile 40: Zeile 21:
Um Daten vom log113ad speichern zu lassen ist zum einen der Dämon selber und zum
anderen entspechend angepasste Programme erforderlich.
Um Daten vom log113ad speichern zu lassen, sind zum einen der Dämon selber und zum anderen entspechend angepasste Programme erforderlich.
Zeile 44: Zeile 24:
Die Installation des log113ad geschieht entweder direkt aus dem ausgepackten [[http://www.ping.de/~dh/log113ad/|Quelltext]], oder auf Debian (Etch) Systemen über ein Debian-Paket.

==== Installation aus dem Source ====
Der log113ad verwendet die GNU-Autotools und kann daher wie jedes andere (GNU) Programm übersetzt und installiert werden.

Der Übersetzungs- und Installationsvorgang kann somit wie folgt geschehen:
{{{
daniel@random:~/log113ad-0.30$ ./configure
...
daniel@random:~/log113ad-0.30$ make
...
daniel@random:~/log113ad-0.30$ sudo make install
}}}

Nach dem Aufruf von {{{make install}}} befindet sich in {{{/usr/local/sbin}}} ein {{{log113ad}}} Binary.

Neben dem {{{log113ad}}}-Binary werden noch Installationen von GnuPG, sowie AESPipe benötigt.

Der normale Quelltext beinhaltet (im Gegensatz zum Debian-Paket) noch kein Init-Script, dies ist für eine
spätere Version geplant. Viele Betriebssystem bieten allerdings einen Mechanismus der nach dem Start des
Systems eigene Dienste starten kann (vergl. {{{rc.local}}}).

Anstelle von einem Init-Script kann allerdings auch ein System zur Überwachung von Server-Prozessen wie
z.B. die [[http://cr.yp.to/daemontools.html|Daemontools]] von Dan Bernstein verwendet werden. Ein
{{{run}}}-Script könnte dabei wie folgt aussehen:
{{{
#!/bin/sh

exec env - HOME=/var/lib/log113ad PATH=$PATH /usr/local/sbin/log113ad -k 0xA3833AB7F9354A2B -k 0xB02C3D69174E895F \
        -k 0x0769691F1E18DE98 -k 0x73F96642CC433098 -F -u log113ad \
        -g log113ad -s /var/run/log113ad/socket -p /var/run/log113ad/pid \
        -d /var/log/log113ad -G /usr/bin/gpg -A /usr/bin/aespipe
}}}

Wie dabei dem Aufruf entnommen werden kann, empfiehlt es sich den {{{log113ad}}} unter einer eigenen Benutzerkennung
zu starten. Diese kann mittels den Parametern {{{-u}}} oder {{{--user}}} (für den Benutzer) bzw. {{{-g}}} oder
{{{--group}}} (für die Gruppe) gesetzt werden. Fehlen die beiden Parameter versucht {{{log113ad}}} eine gleichnamigen
Benutzer und eine gleichnamige Gruppe zu verwenden.

Neben dem zu verwendenden Benutzer und der zu verwendenden Gruppe können auch einige weitere Optionen gesetzt werden.
Mit dem Parameter {{{-s}}} oder {{{--socket}}} kann das zu verwendende Unix-Domain-Socket angegeben werden. Es handelt
sich dabei um eine Datei, die beim Start des {{{log113ad}}} angelegt wird. Somit ist zu beachten, dass der Benutzer, mit
dessen Rechte der {{{log113ad}}} ausgeführt wird, die benötigten Rechte besitzt um im angegebenen Pfad Dateien anlegen
und löschen zu können. Wird der Parameter nicht angegeben, wird {{{/var/run/log113ad/socket}}} angenommen.

Analog dazu verhält es sich bei dem Parameter {{{-p}}} bzw. {{{--pid}}}. Diese Datei wird beim starten angelegt und
beinhaltet die Prozess-ID des Server-Prozesses. Wird der Parameter nicht angegeben, wird {{{/var/run/log113ad/pid}}}
angenommen.

Der letzte wichtige Parameter ist {{{-d}}} bzw. {{{--dir}}}, welcher das Logverzeichnis angibt. Hier werden sowohl
die verschlüsselten Log-Dateien angelegt, als auch die GPG-Verschlüsselten Schlüssel zu diesen. Wird der Parameter
nicht angegeben, wird {{{/var/log/log113ad}}} als Vorgabe verwendet.

Für die restlichen Parameter sei erstmal auf die Online-Hilfe, die mit dem Parameter {{{-h}}} bzw. {{{--help}}}
eingesehen werden kann, verwiesen. Für eine spätere Version ist geplant diese Informationen in eine Mangepage
zu übernehmen.

==== Installation auf einem Debian (Etch) System ====
Für die Installation auf einen Debian-System kann das PING Pakete-Repository verwendet werden. Hierfür sind
in die Datei {{{/etc/apt/sources.list}}} folgende Zeilen einzutragen:
{{{
deb http://donotdisturb.ping.de/pingian etch local
deb-src http://donotdisturb.ping.de/pingian etch local
}}}

Danach kann das Paket und alle Abhängigkeiten über {{{apt-get install log113ad}}} installiert werden.

Es wird automatisch ein Benutzer angelegt und die benötigten Verzeichnisse erstellt.
Bevor der {{{log113ad}}}-Dämon allerdings in der Datei {{{/etc/defaults/log113ad}}} konfiguriert und
gestartet werden kann sind noch ein paar Dinge von Hand zu erledigen.

==== Installation der GnuPG-Schlüssel ====
Der {{{log113ad}}}-Dämon benötigt zur Arbeit die Kennung (Key-ID) von vier PGP-Schlüsseln. Diese müssen
dem GnuPG des Benutzers, unter dessen Kennung der Dämon läuft, bekannt sein.

Der Import der Schlüssel geschieht dabei auf normalen Wege. Nähere Informationen hierzu ist der GnuPG-Dokumentation
zu entnehmen.

In einigen GnuPG-Versionen ist es des Weiteren erforderlich das Trust-Level auf Ultimate (5) zu setzen, da GnuPG sonst
beim Verwenden der Schlüssel nachfragt.

Sind alle Schlüssel importiert und wird ihnen ausreichend vertraut, müssen die Key-IDs als Parameter dem
{{{log113ad}}}-Dämon übergeben werden. Dies kann z.B. so aussehen:
{{{
log113ad -k 0xA3833AB7F9354A2B -k 0xB02C3D69174E895F -k 0x0769691F1E18DE98 -k 0x73F96642CC433098
}}}

Wird das Debian-Paket verwendet, werden diese Parameter in der Datei {{{/etc/defaults/log113ad}}} konfiguriert.

Der PING »Dante sicher loggen«-Dämon

Mit der Speicherpflicht nach §113a des TKG wurde eine neue Möglichkeit zur sicheren Aufbewarung von Verbindungsdaten notwendig. Wenn schon Verbindungsdaten für 6 Monate gespeichert werden müssen, dann aber so, dass sichergestellt ist, dass kein Zugriff auf die Daten für andere Zwecke geschehen kann.

Sicher gibt es sicher nie, aber einfach Logfiles herumliegen zu lassen, trifft es bestimmt nicht. Daher wurden folgende Vorgaben getroffen:

  • Die Daten sollen verschlüsselt gespeichert werden
  • Der Schlüssel für die Daten soll nicht durch eine Person alleine
    • wiederherstellbar sein
  • Die Daten sollen, nach Ablauf der 6 Monatsfrist, einfach löschbar sein (kein
    • aufwendiger Prozess um das Erstellungsdatum heruaszufinden)

Für diesen Zweck wurde das Projekt »log113ad« begonnen.

Funktionsweise

Die eigentlichen Logdaten werden von den Programmen, bei denen sie anfallen (z.B. Radius-Server für Einwahl), zusammengefasst (es wird meist mehr als ein Datum pro Dienst verlangt) und an den Logger-Dämon übertragen.

Die Übertragung zum Logger-Dämon, der als Instanz auf allen System läuft, auf denen entsprechende Daten anfallen, geschieht dabei über Unix-Domain-Sockets (AF_LOCAL). Durch die Repräsentation als Datei im Dateisystem und im Zusammenspiel mit den Unix-Berechtigungen, ist so auch sichergestellt, dass ein Zugriff auf den Kommunikationskanal nur mit entsprechenden Berechtigungen aus den Systemen selber möglich ist.

Der Logger-Dämon speichert alle ihm zugetragenen Daten in einer mit AES verschlüsselten Datei zusammen. Der symmetrische Schlüssel für das AES-Logfile wird dabei beim Starten des Dämons und nach spätestens 24 Stunden aus Zufallszahlen generiert. Die Schlüssel werden für den späteren Zugriff auf die Log-Dateien durch eine entsprechende Schachtelung von OpenPGP-Blöcken so gesichert, dass nur zwei Vorstandsmitglieder zusammen an die Schlüssel gelangen können. Jedes Miglied des geschäftsführenden Vorstandes (nach BGB) hält dabei einen (selber erstellten) Schlüssel.

Inbetriebnahme

Um Daten vom log113ad speichern zu lassen, sind zum einen der Dämon selber und zum anderen entspechend angepasste Programme erforderlich.

Installation und Inbetriebnahme des »log113ad«

Die Installation des log113ad geschieht entweder direkt aus dem ausgepackten Quelltext, oder auf Debian (Etch) Systemen über ein Debian-Paket.

Installation aus dem Source

Der log113ad verwendet die GNU-Autotools und kann daher wie jedes andere (GNU) Programm übersetzt und installiert werden.

Der Übersetzungs- und Installationsvorgang kann somit wie folgt geschehen:

daniel@random:~/log113ad-0.30$ ./configure
...
daniel@random:~/log113ad-0.30$ make
...
daniel@random:~/log113ad-0.30$ sudo make install

Nach dem Aufruf von make install befindet sich in /usr/local/sbin ein log113ad Binary.

Neben dem log113ad-Binary werden noch Installationen von GnuPG, sowie AESPipe benötigt.

Der normale Quelltext beinhaltet (im Gegensatz zum Debian-Paket) noch kein Init-Script, dies ist für eine spätere Version geplant. Viele Betriebssystem bieten allerdings einen Mechanismus der nach dem Start des Systems eigene Dienste starten kann (vergl. rc.local).

Anstelle von einem Init-Script kann allerdings auch ein System zur Überwachung von Server-Prozessen wie z.B. die Daemontools von Dan Bernstein verwendet werden. Ein run-Script könnte dabei wie folgt aussehen:

exec env - HOME=/var/lib/log113ad PATH=$PATH /usr/local/sbin/log113ad -k 0xA3833AB7F9354A2B -k 0xB02C3D69174E895F \
        -k 0x0769691F1E18DE98 -k 0x73F96642CC433098 -F -u log113ad \
        -g log113ad -s /var/run/log113ad/socket -p /var/run/log113ad/pid \
        -d /var/log/log113ad -G /usr/bin/gpg -A /usr/bin/aespipe

Wie dabei dem Aufruf entnommen werden kann, empfiehlt es sich den log113ad unter einer eigenen Benutzerkennung zu starten. Diese kann mittels den Parametern -u oder --user (für den Benutzer) bzw. -g oder --group (für die Gruppe) gesetzt werden. Fehlen die beiden Parameter versucht log113ad eine gleichnamigen Benutzer und eine gleichnamige Gruppe zu verwenden.

Neben dem zu verwendenden Benutzer und der zu verwendenden Gruppe können auch einige weitere Optionen gesetzt werden. Mit dem Parameter -s oder --socket kann das zu verwendende Unix-Domain-Socket angegeben werden. Es handelt sich dabei um eine Datei, die beim Start des log113ad angelegt wird. Somit ist zu beachten, dass der Benutzer, mit dessen Rechte der log113ad ausgeführt wird, die benötigten Rechte besitzt um im angegebenen Pfad Dateien anlegen und löschen zu können. Wird der Parameter nicht angegeben, wird /var/run/log113ad/socket angenommen.

Analog dazu verhält es sich bei dem Parameter -p bzw. --pid. Diese Datei wird beim starten angelegt und beinhaltet die Prozess-ID des Server-Prozesses. Wird der Parameter nicht angegeben, wird /var/run/log113ad/pid angenommen.

Der letzte wichtige Parameter ist -d bzw. --dir, welcher das Logverzeichnis angibt. Hier werden sowohl die verschlüsselten Log-Dateien angelegt, als auch die GPG-Verschlüsselten Schlüssel zu diesen. Wird der Parameter nicht angegeben, wird /var/log/log113ad als Vorgabe verwendet.

Für die restlichen Parameter sei erstmal auf die Online-Hilfe, die mit dem Parameter -h bzw. --help eingesehen werden kann, verwiesen. Für eine spätere Version ist geplant diese Informationen in eine Mangepage zu übernehmen.

Installation auf einem Debian (Etch) System

Für die Installation auf einen Debian-System kann das PING Pakete-Repository verwendet werden. Hierfür sind in die Datei /etc/apt/sources.list folgende Zeilen einzutragen:

deb http://donotdisturb.ping.de/pingian etch local
deb-src http://donotdisturb.ping.de/pingian etch local

Danach kann das Paket und alle Abhängigkeiten über apt-get install log113ad installiert werden.

Es wird automatisch ein Benutzer angelegt und die benötigten Verzeichnisse erstellt. Bevor der log113ad-Dämon allerdings in der Datei /etc/defaults/log113ad konfiguriert und gestartet werden kann sind noch ein paar Dinge von Hand zu erledigen.

Installation der GnuPG-Schlüssel

Der log113ad-Dämon benötigt zur Arbeit die Kennung (Key-ID) von vier PGP-Schlüsseln. Diese müssen dem GnuPG des Benutzers, unter dessen Kennung der Dämon läuft, bekannt sein.

Der Import der Schlüssel geschieht dabei auf normalen Wege. Nähere Informationen hierzu ist der GnuPG-Dokumentation zu entnehmen.

In einigen GnuPG-Versionen ist es des Weiteren erforderlich das Trust-Level auf Ultimate (5) zu setzen, da GnuPG sonst beim Verwenden der Schlüssel nachfragt.

Sind alle Schlüssel importiert und wird ihnen ausreichend vertraut, müssen die Key-IDs als Parameter dem log113ad-Dämon übergeben werden. Dies kann z.B. so aussehen:

log113ad -k 0xA3833AB7F9354A2B -k 0xB02C3D69174E895F -k 0x0769691F1E18DE98 -k 0x73F96642CC433098

Wird das Debian-Paket verwendet, werden diese Parameter in der Datei /etc/defaults/log113ad konfiguriert.

Software/log113ad (zuletzt geändert am 2010-02-14 18:47:18 durch BodoBellut)