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. |