Einführung / Konfiguration des FirstSpirit-Servers / Zusätzliche Sicherheitsmechanismen / Audit-Logging (Log4j2)
Audit-Logging in FirstSpirit
Inhaltsverzeichnis |
Um einen einwandfreien und sicheren Betrieb von FirstSpirit-Servern zu gewährleisten, bietet FirstSpirit bei Bedarf Möglichkeiten für ein Audit-Logging. Um dem Missbrauch von Rechten vorzubeugen, können hiermit verdächtige Aktivitäten nachvollzogen und zugeordnet werden.
Geloggte Aktivitäten
Die folgenden Aktivitäten können verfolgt und geloggt werden:
- Projekte anlegen / löschen
- Benutzer anlegen / löschen
- Gruppen anlegen / löschen
- Benutzer einem Projekt hinzufügen / aus Projekt entfernen
- Module installieren / aktualisieren / löschen
- Aufträge installieren / aktualisieren / löschen (global u. projekt-lokal)
- Aktionsvorlagen installieren / aktualisieren / löschen (global u. projekt-lokal)
- Alle Projektänderungen über den ServerManager mit Ausnahme von Font hinzufügen und Repository-Version ändern
Log-Level
Es existieren drei Log-Level für die Ausgabe: INFO, DEBUG und TRACE.
- INFO: Allgemeine Ausgabe, wer hat wo, welche Änderung vorgenommen. Das „Wer“ ist hierbei definiert durch den Benutzer-Namen, die Benutzer-ID sowie den Session-Kontext.
- DEBUG: Bei diesem Log-Level kommt eine leicht zu erfassende, minimalistisch gehaltene Vergleichsansicht der Änderungen hinzu.
- TRACE: Es erfolgt eine komplette Ausgabe aller geänderten Konfigurationen. Änderungen werden gut sichtbar hervorgehoben.
Audit-Logging aktivieren
Die Audit-Funktionalitäten sind per default zunächst deaktiviert. Sie können in der fs-server.conf durch Setzen des Parameters audit.logging.enabled=true aktiviert werden. Wenn aktiv, wird das Audit-Logging per default in der fs-server.log-Datei persistiert. Es wird empfohlen, das Verhalten des Audit-Logging durch die Log4j-Konfiguration anzupassen, und zumindest die Persistenz der Log-Ausgaben in einer eigenen Datei zu realisieren. Die Konfiguration erfolgt in der Datei fs-logging.xml (siehe Konfiguration Logging).
Rudimentäres Konfigurations-Beispiel
Beispielkonfiguration für einfaches Audit-Logging bis Ebene DEBUG mit Ausgabe in fs-audit.log:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" packages="de.espirit.firstspirit.server.logging">
<Appenders>
<!-- dated logging is used by server monitoring for log file display -->
<File name="audit" fileName="d:/firstspirit/log/fs-audit.log" bufferedIO="true" immediateFlush="true" append="true">
<PatternLayout>
<pattern>%d{DEFAULT} %p %C{10} [%t] %m %n</pattern>
</PatternLayout>
</File>
<FsAppender name="fs" consoleLogging="false" plainLogging="true"
datedLogging="true" maxFileSize="5MB" buffer="8192" flushCycle="10"/>
</Appenders>
<Loggers>
<Logger name="de.espirit.firstspirit.logging.audit" level="DEBUG" additivity="false">
<AppenderRef ref="audit"/>
</Logger>
<Logger name="org.eclipse.jetty" level="WARN" additivity="false">
<AppenderRef ref="fs"/>
</Logger>
<Logger name="org.apache" level="WARN" additivity="false">
<AppenderRef ref="fs"/>
</Logger>
<Logger name="org.apache.log4j.jmx" level="ERROR" additivity="false">
<AppenderRef ref="fs"/>
</Logger>
<Logger name="de.espirit.firstspirit.server.ExecutionManagerImpl" level="INFO" additivity="false">
<AppenderRef ref="fs"/>
</Logger>
<Logger name="httpclient.wire" level="INFO" additivity="false">
<AppenderRef ref="fs"/>
</Logger>
<Logger name="org.apache.commons.httpclient" level="INFO" additivity="false">
<AppenderRef ref="fs"/>
</Logger>
<Logger name="org.apache.http" level="INFO" additivity="false">
<AppenderRef ref="fs"/>
</Logger>
<Logger name="org.apache.http.impl.execchain.RetryExec" level="WARN" additivity="false">
<AppenderRef ref="fs"/>
</Logger>
<Root level="INFO">
<AppenderRef ref="fs"/>
</Root>
</Loggers>
</Configuration>
Beispielhafter Logging-Eintrag
Ein Logging-Eintrag auf INFO-Ebene bei Änderung der Mitglieder einer Projekt-Gruppe sieht beispielsweise wie folgt aus:
INFO 2018-07-10 08:34:50,443 (de.espirit.firstspirit.logging.audit.ProjectDTOLogger)
Benutzername ( id: 5471 ) changed project properties for
{ project : Mithras ; id : 296791 }
172.17.16.206 (fsSession=877290240094464842, fsLogin=FirstSpiritLogin,
session=SystemUser, client=Windows 10 10.0 amd64
(Java(TM) SE Runtime Environment 1.8.0_171-b11))
Zugriff auf die Log-Dateien per ServerMonitoring
Die durch das Audit-Logging angelegten Log-Dateien können über das ServerMonitoring heruntergeladen werden. Hierzu muss im ServerMonitoring unter dem Punkt FirstSpirit / Konfiguration / System auf „Datei-Download“ geklickt werden (siehe Screenshot). Nun den Ordner log öffnen und die gewünschte Datei auswählen.
![]() |
Um Dateien über den beschriebenen Weg herunterladen zu können, muss sichergestellt sein, dass sie sich im FirstSpirit Log-Verzeichnis befinden. Dies kann durch die Log4J 2-Konfiguration in der Datei fs-logging.xml sichergestellt werden. |